@fluidframework/synthesize 2.0.0-dev.2.3.0.115467 → 2.0.0-dev.3.1.0.125672

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/README.md CHANGED
@@ -31,16 +31,16 @@ console.log(s.IFoo?.foo;)
31
31
 
32
32
  # API
33
33
 
34
- - [Providers](##Providers)
35
- - [`InstanceProvider`](###Instance-Provider)
36
- - [`SingletonProvider`](###Singleton-Provider)
37
- - [`ValueProvider`](###Value-Provider)
38
- - [`FactoryProvider`](###Factory-Provider)
39
- - [Synthesize](##Synthesize)
40
- - [Optional Types](###Optional-Types)
41
- - [Required Types](###Required-Types)
42
- - [Multiple Types](###Multiple-Types)
43
- - [Parent](##Parent)
34
+ - [Providers](##Providers)
35
+ - [`InstanceProvider`](###Instance-Provider)
36
+ - [`SingletonProvider`](###Singleton-Provider)
37
+ - [`ValueProvider`](###Value-Provider)
38
+ - [`FactoryProvider`](###Factory-Provider)
39
+ - [Synthesize](##Synthesize)
40
+ - [Optional Types](###Optional-Types)
41
+ - [Required Types](###Required-Types)
42
+ - [Multiple Types](###Multiple-Types)
43
+ - [Parent](##Parent)
44
44
 
45
45
  ## Fluid object Providers
46
46
 
@@ -55,10 +55,10 @@ There are four types of providers:
55
55
 
56
56
  ```typescript
57
57
  type FluidObjectProvider<T> =
58
- NonNullable<T>
59
- | Promise<NonNullable<T>>
60
- | ((dependencyContainer: IFluidDependencySynthesizer) => NonNullable<T>)
61
- | ((dependencyContainer: IFluidDependencySynthesizer) => Promise<NonNullable<T>>);
58
+ | NonNullable<T>
59
+ | Promise<NonNullable<T>>
60
+ | ((dependencyContainer: IFluidDependencySynthesizer) => NonNullable<T>)
61
+ | ((dependencyContainer: IFluidDependencySynthesizer) => Promise<NonNullable<T>>);
62
62
  ```
63
63
 
64
64
  ### Value Provider
@@ -155,19 +155,19 @@ is a TypeScript `type` that ensures the types being passed match the ones in the
155
155
 
156
156
  ### Optional Types
157
157
 
158
- Optional types will return a Promise to it's corresponding FluidObject or undefined. Because of this we need to do
158
+ Optional types will return a Promise to it's corresponding FluidObject or undefined. Because of this we need to do
159
159
  an if check to validate the object or use the `?` like in the example below.
160
160
 
161
161
  ```typescript
162
162
  const dc = new DependencyContainer<FluidObject<IFoo>>();
163
163
 
164
- const s = dc.synthesize<IFoo>({IFoo}, {});
164
+ const s = dc.synthesize<IFoo>({ IFoo }, {});
165
165
  const foo = await s.IFoo;
166
166
  console.log(foo?.foo);
167
167
  ```
168
168
 
169
- *Note: Because of how generics in TypeScript work we need to provide an empty `requiredTypes` object even though we don't
170
- need to provide the type.*
169
+ _Note: Because of how generics in TypeScript work we need to provide an empty `requiredTypes` object even though we don't
170
+ need to provide the type._
171
171
 
172
172
  ### Required Types
173
173
 
@@ -178,7 +178,7 @@ You can see below that we don't need to add the `?` to check our requested type.
178
178
  ```typescript
179
179
  const dc = new DependencyContainer<FluidObject<IFoo>>();
180
180
 
181
- const scope = dc.synthesize<{}, IFoo>({}, {IFoo});
181
+ const scope = dc.synthesize<{}, IFoo>({}, { IFoo });
182
182
  const foo = await s.IFoo;
183
183
  console.log(foo.foo);
184
184
  ```
@@ -190,7 +190,7 @@ You can declare multiple types for both Optional and Required using the `&` or c
190
190
  ```typescript
191
191
  const dc = new DependencyContainer<FluidObject<IFoo & IBar>>();
192
192
 
193
- const scope = dc.synthesize<IFoo & IBar>({IFoo, IBar}, {});
193
+ const scope = dc.synthesize<IFoo & IBar>({ IFoo, IBar }, {});
194
194
  const fooP = s.IFoo;
195
195
  const barP = s.IBar;
196
196
  const [foo, bar] = Promise.all([foo, bar]);
@@ -201,7 +201,7 @@ console.log(bar?.bar);
201
201
  ```typescript
202
202
  const dc = new DependencyContainer<FluidObject<IFoo & IBar>>();
203
203
 
204
- const scope = dc.synthesize<{}, IFoo & IBar>({}, {IFoo, IBar});
204
+ const scope = dc.synthesize<{}, IFoo & IBar>({}, { IFoo, IBar });
205
205
  const fooP = s.IFoo;
206
206
  const barP = s.IBar;
207
207
  const [foo, bar] = Promise.all([foo, bar]);
@@ -212,7 +212,7 @@ console.log(bar.bar);
212
212
  ```typescript
213
213
  const dc = new DependencyContainer<FluidObject<IFoo & IBar>>();
214
214
 
215
- const scope = dc.synthesize<IFoo, IBar>({IFoo}, {IBar});
215
+ const scope = dc.synthesize<IFoo, IBar>({ IFoo }, { IBar });
216
216
  const fooP = s.IFoo;
217
217
  const barP = s.IBar;
218
218
  const [foo, bar] = Promise.all([foo, bar]);
@@ -224,4 +224,3 @@ console.log(bar.bar);
224
224
 
225
225
  The `DependencyContainer` takes one optional parameter which is the `parent`. When resolving providers the `DependencyContainer` will first
226
226
  check the current container then look in the parent.
227
-
@@ -8,7 +8,7 @@ export interface IProvideFluidDependencySynthesizer {
8
8
  IFluidDependencySynthesizer: IFluidDependencySynthesizer;
9
9
  }
10
10
  /**
11
- * IFluidDependencySynthesizer can generate IFluidObjects based on the IProvideFluidObject pattern.
11
+ * IFluidDependencySynthesizer can generate FluidObjects based on the IProvideFluidObject pattern.
12
12
  * It allow for registering providers and uses synthesize to generate a new object with the optional
13
13
  * and required types.
14
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"IFluidDependencySynthesizer.d.ts","sourceRoot":"","sources":["../src/IFluidDependencySynthesizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,wBAAwB,EACxB,yBAAyB,EAC5B,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,2BAA2B,EAAE,MAAM,kCACb,CAAC;AAEpC,MAAM,WAAW,kCAAkC;IAC/C,2BAA2B,EAAE,2BAA2B,CAAC;CAC5D;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kCAAkC;IACnF;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC3C,aAAa,EAAE,yBAAyB,CAAC,CAAC,CAAC,EAC3C,aAAa,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAC1D,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAElC;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B"}
1
+ {"version":3,"file":"IFluidDependencySynthesizer.d.ts","sourceRoot":"","sources":["../src/IFluidDependencySynthesizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAE9E,eAAO,MAAM,2BAA2B,EAAE,MAAM,kCAClB,CAAC;AAE/B,MAAM,WAAW,kCAAkC;IAClD,2BAA2B,EAAE,2BAA2B,CAAC;CACzD;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kCAAkC;IACtF;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAClD,aAAa,EAAE,yBAAyB,CAAC,CAAC,CAAC,EAC3C,aAAa,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GACnD,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAElC;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"IFluidDependencySynthesizer.js","sourceRoot":"","sources":["../src/IFluidDependencySynthesizer.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAOU,QAAA,2BAA2B,GAClC,6BAA6B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n AsyncFluidObjectProvider,\n FluidObjectSymbolProvider,\n} from \"./types\";\n\nexport const IFluidDependencySynthesizer: keyof IProvideFluidDependencySynthesizer\n = \"IFluidDependencySynthesizer\";\n\nexport interface IProvideFluidDependencySynthesizer {\n IFluidDependencySynthesizer: IFluidDependencySynthesizer;\n}\n\n/**\n * IFluidDependencySynthesizer can generate IFluidObjects based on the IProvideFluidObject pattern.\n * It allow for registering providers and uses synthesize to generate a new object with the optional\n * and required types.\n */\nexport interface IFluidDependencySynthesizer extends IProvideFluidDependencySynthesizer {\n /**\n * synthesize takes optional and required types and returns an object that will fulfill the\n * defined types based off objects that has been previously registered.\n *\n * @param optionalTypes - optional types to be in the Scope object\n * @param requiredTypes - required types that need to be in the Scope object\n */\n synthesize<O, R = undefined | Record<string, never>>(\n optionalTypes: FluidObjectSymbolProvider<O>,\n requiredTypes: Required<FluidObjectSymbolProvider<R>>,\n ): AsyncFluidObjectProvider<O, R>;\n\n /**\n * Check if a given type is registered\n * @param type - Type to check\n */\n has(type: string): boolean;\n}\n"]}
1
+ {"version":3,"file":"IFluidDependencySynthesizer.js","sourceRoot":"","sources":["../src/IFluidDependencySynthesizer.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIU,QAAA,2BAA2B,GACvC,6BAA6B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AsyncFluidObjectProvider, FluidObjectSymbolProvider } from \"./types\";\n\nexport const IFluidDependencySynthesizer: keyof IProvideFluidDependencySynthesizer =\n\t\"IFluidDependencySynthesizer\";\n\nexport interface IProvideFluidDependencySynthesizer {\n\tIFluidDependencySynthesizer: IFluidDependencySynthesizer;\n}\n\n/**\n * IFluidDependencySynthesizer can generate FluidObjects based on the IProvideFluidObject pattern.\n * It allow for registering providers and uses synthesize to generate a new object with the optional\n * and required types.\n */\nexport interface IFluidDependencySynthesizer extends IProvideFluidDependencySynthesizer {\n\t/**\n\t * synthesize takes optional and required types and returns an object that will fulfill the\n\t * defined types based off objects that has been previously registered.\n\t *\n\t * @param optionalTypes - optional types to be in the Scope object\n\t * @param requiredTypes - required types that need to be in the Scope object\n\t */\n\tsynthesize<O, R = undefined | Record<string, never>>(\n\t\toptionalTypes: FluidObjectSymbolProvider<O>,\n\t\trequiredTypes: Required<FluidObjectSymbolProvider<R>>,\n\t): AsyncFluidObjectProvider<O, R>;\n\n\t/**\n\t * Check if a given type is registered\n\t * @param type - Type to check\n\t */\n\thas(type: string): boolean;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyContainer.d.ts","sourceRoot":"","sources":["../src/dependencyContainer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EAGtB,MAAM,SAAS,CAAC;AACjB,OAAO,EACH,2BAA2B,EAC9B,MAAM,+BAA+B,CAAC;AAEvC;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,IAAI,CAAE,YAAW,2BAA2B;IACzE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmD;IAC7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,IAAW,2BAA2B,SAAmB;gBAEtC,GAAI,OAAO,EAAE,CAAC,2BAA2B,GAAG,SAAS,CAAC,EAAE;IAI3E;;;;;OAKG;IACI,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI;IAQ/G;;;OAGG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;IAMzC;;OAEG;IACI,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACtD,aAAa,EAAE,yBAAyB,CAAC,CAAC,CAAC,EAC3C,aAAa,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GACtD,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IAQjC;;;OAGG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO;IAS3D;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,eAAe;CA0C1B"}
1
+ {"version":3,"file":"dependencyContainer.d.ts","sourceRoot":"","sources":["../src/dependencyContainer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EAGnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,IAAI,CAAE,YAAW,2BAA2B;IAC5E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmD;IAC7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,IAAW,2BAA2B,SAErC;gBAEkB,GAAG,OAAO,EAAE,CAAC,2BAA2B,GAAG,SAAS,CAAC,EAAE;IAI1E;;;;;OAKG;IACI,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,GAAG,MAAM,IAAI,EAChD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAC1C,IAAI;IAUP;;;OAGG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;IAMzC;;OAEG;IACI,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACzD,aAAa,EAAE,yBAAyB,CAAC,CAAC,CAAC,EAC3C,aAAa,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GACnD,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IAQjC;;;OAGG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO;IAS3D;;OAEG;IACH,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,eAAe;CAwCvB"}
@@ -15,7 +15,9 @@ class DependencyContainer {
15
15
  this.providers = new Map();
16
16
  this.parents = parents.filter((v) => v !== undefined);
17
17
  }
18
- get IFluidDependencySynthesizer() { return this; }
18
+ get IFluidDependencySynthesizer() {
19
+ return this;
20
+ }
19
21
  /**
20
22
  * Add a new provider
21
23
  * @param type - Name of the Type T being provided
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyContainer.js","sourceRoot":"","sources":["../src/dependencyContainer.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n AsyncFluidObjectProvider,\n FluidObjectSymbolProvider,\n FluidObjectProvider,\n AsyncOptionalFluidObjectProvider,\n AsyncRequiredFluidObjectProvider,\n} from \"./types\";\nimport {\n IFluidDependencySynthesizer,\n} from \"./IFluidDependencySynthesizer\";\n\n/**\n * DependencyContainer is similar to a IoC Container. It takes providers and will\n * synthesize an object based on them when requested.\n */\nexport class DependencyContainer<TMap> implements IFluidDependencySynthesizer {\n private readonly providers = new Map<keyof TMap, FluidObjectProvider<any>>();\n private readonly parents: IFluidDependencySynthesizer[];\n public get IFluidDependencySynthesizer() { return this; }\n\n public constructor(... parents: (IFluidDependencySynthesizer | undefined)[]) {\n this.parents = parents.filter((v): v is IFluidDependencySynthesizer => v !== undefined);\n }\n\n /**\n * Add a new provider\n * @param type - Name of the Type T being provided\n * @param provider - A provider that will resolve the T correctly when asked\n * @throws - If passing a type that's already registered\n */\n public register<T extends keyof TMap = keyof TMap>(type: T, provider: FluidObjectProvider<Pick<TMap, T>>): void {\n if (this.providers.has(type)) {\n throw new Error(`Attempting to register a provider of type ${type} that already exists`);\n }\n\n this.providers.set(type, provider);\n }\n\n /**\n * Remove a provider\n * @param type - Name of the provider to remove\n */\n public unregister(type: keyof TMap): void {\n if (this.providers.has(type)) {\n this.providers.delete(type);\n }\n }\n\n /**\n * {@inheritDoc (IFluidDependencySynthesizer:interface).synthesize}\n */\n public synthesize<O, R = undefined | Record<string, never>>(\n optionalTypes: FluidObjectSymbolProvider<O>,\n requiredTypes: Required<FluidObjectSymbolProvider<R>>,\n ): AsyncFluidObjectProvider<O, R> {\n const base: AsyncFluidObjectProvider<O, R> = {} as any;\n this.generateRequired<R>(base, requiredTypes);\n this.generateOptional<O>(base, optionalTypes);\n Object.defineProperty(base, IFluidDependencySynthesizer, { get: () => this });\n return base;\n }\n\n /**\n * {@inheritDoc (IFluidDependencySynthesizer:interface).has}\n * @param excludeParents - If true, exclude checking parent registries\n */\n public has(type: string, excludeParents?: boolean): boolean {\n if (this.providers.has(type as keyof TMap)) {\n return true;\n }\n if (excludeParents !== true) {\n return this.parents.some((p: IFluidDependencySynthesizer) => p.has(type));\n }\n return false;\n }\n /**\n * @deprecated Needed for backwards compatability.\n */\n private getProvider(provider: string & keyof TMap) {\n // this was removed, but some partners have trouble with back compat where they\n // use invalid patterns with FluidObject and IFluidDependencySynthesizer\n // this is just for back compat until those are removed\n if (this.has(provider)) {\n if (this.providers.has(provider)) {\n return this.providers.get(provider);\n }\n for (const parent of this.parents) {\n if (parent instanceof DependencyContainer) {\n return parent.getProvider(provider);\n } else {\n // older implementations of the IFluidDependencySynthesizer exposed getProvider\n const maybeGetProvider: { getProvider?(provider: string & keyof TMap); } = parent as any;\n if (maybeGetProvider?.getProvider !== undefined) {\n return maybeGetProvider.getProvider(provider);\n }\n }\n }\n }\n }\n\n private generateRequired<T>(\n base: AsyncRequiredFluidObjectProvider<T>,\n types: Required<FluidObjectSymbolProvider<T>>,\n ) {\n if (types === undefined) { return; }\n for (const key of Object.keys(types) as unknown as (keyof TMap)[]) {\n const provider = this.resolveProvider(key);\n if (provider === undefined) {\n throw new Error(`Object attempted to be created without registered required provider ${key}`);\n }\n Object.defineProperty(\n base,\n key,\n provider,\n );\n }\n }\n\n private generateOptional<T>(\n base: AsyncOptionalFluidObjectProvider<T>,\n types: FluidObjectSymbolProvider<T>,\n ) {\n if (types === undefined) { return; }\n for (const key of Object.keys(types) as unknown as (keyof TMap)[]) {\n // back-compat: in 0.56 we allow undefined in the types, but we didn't before\n // this will keep runtime back compat, eventually we should support undefined properties\n // rather than properties that return promises that resolve to undefined\n const provider = this.resolveProvider(key) ?? { get: async () => undefined };\n Object.defineProperty(\n base,\n key,\n provider,\n );\n }\n }\n\n private resolveProvider<T extends keyof TMap>(t: T): PropertyDescriptor | undefined {\n // If we have the provider return it\n const provider = this.providers.get(t);\n if (provider === undefined) {\n for (const parent of this.parents) {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const sp = { [t]: t } as FluidObjectSymbolProvider<Pick<TMap, T>>;\n const syn = parent.synthesize<Pick<TMap, T>, Record<string, unknown>>(\n sp,\n {});\n const descriptor = Object.getOwnPropertyDescriptor(syn, t);\n if (descriptor !== undefined) {\n return descriptor;\n }\n }\n return undefined;\n }\n\n // The double nested gets are required for lazy loading the provider resolution\n if (typeof provider === \"function\") {\n return {\n get() {\n if (provider && typeof provider === \"function\") {\n return Promise.resolve(this[IFluidDependencySynthesizer])\n .then(async (fds): Promise<any> => provider(fds))\n .then((p) => p?.[t]);\n }\n },\n };\n }\n return {\n get() {\n if (provider) {\n return Promise.resolve(provider).then((p) => {\n if (p) {\n return p[t];\n }\n });\n }\n },\n };\n }\n}\n"]}
1
+ {"version":3,"file":"dependencyContainer.js","sourceRoot":"","sources":["../src/dependencyContainer.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tAsyncFluidObjectProvider,\n\tFluidObjectSymbolProvider,\n\tFluidObjectProvider,\n\tAsyncOptionalFluidObjectProvider,\n\tAsyncRequiredFluidObjectProvider,\n} from \"./types\";\nimport { IFluidDependencySynthesizer } from \"./IFluidDependencySynthesizer\";\n\n/**\n * DependencyContainer is similar to a IoC Container. It takes providers and will\n * synthesize an object based on them when requested.\n */\nexport class DependencyContainer<TMap> implements IFluidDependencySynthesizer {\n\tprivate readonly providers = new Map<keyof TMap, FluidObjectProvider<any>>();\n\tprivate readonly parents: IFluidDependencySynthesizer[];\n\tpublic get IFluidDependencySynthesizer() {\n\t\treturn this;\n\t}\n\n\tpublic constructor(...parents: (IFluidDependencySynthesizer | undefined)[]) {\n\t\tthis.parents = parents.filter((v): v is IFluidDependencySynthesizer => v !== undefined);\n\t}\n\n\t/**\n\t * Add a new provider\n\t * @param type - Name of the Type T being provided\n\t * @param provider - A provider that will resolve the T correctly when asked\n\t * @throws - If passing a type that's already registered\n\t */\n\tpublic register<T extends keyof TMap = keyof TMap>(\n\t\ttype: T,\n\t\tprovider: FluidObjectProvider<Pick<TMap, T>>,\n\t): void {\n\t\tif (this.providers.has(type)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Attempting to register a provider of type ${type} that already exists`,\n\t\t\t);\n\t\t}\n\n\t\tthis.providers.set(type, provider);\n\t}\n\n\t/**\n\t * Remove a provider\n\t * @param type - Name of the provider to remove\n\t */\n\tpublic unregister(type: keyof TMap): void {\n\t\tif (this.providers.has(type)) {\n\t\t\tthis.providers.delete(type);\n\t\t}\n\t}\n\n\t/**\n\t * {@inheritDoc (IFluidDependencySynthesizer:interface).synthesize}\n\t */\n\tpublic synthesize<O, R = undefined | Record<string, never>>(\n\t\toptionalTypes: FluidObjectSymbolProvider<O>,\n\t\trequiredTypes: Required<FluidObjectSymbolProvider<R>>,\n\t): AsyncFluidObjectProvider<O, R> {\n\t\tconst base: AsyncFluidObjectProvider<O, R> = {} as any;\n\t\tthis.generateRequired<R>(base, requiredTypes);\n\t\tthis.generateOptional<O>(base, optionalTypes);\n\t\tObject.defineProperty(base, IFluidDependencySynthesizer, { get: () => this });\n\t\treturn base;\n\t}\n\n\t/**\n\t * {@inheritDoc (IFluidDependencySynthesizer:interface).has}\n\t * @param excludeParents - If true, exclude checking parent registries\n\t */\n\tpublic has(type: string, excludeParents?: boolean): boolean {\n\t\tif (this.providers.has(type as keyof TMap)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (excludeParents !== true) {\n\t\t\treturn this.parents.some((p: IFluidDependencySynthesizer) => p.has(type));\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t * @deprecated Needed for backwards compatability.\n\t */\n\tprivate getProvider(provider: string & keyof TMap) {\n\t\t// this was removed, but some partners have trouble with back compat where they\n\t\t// use invalid patterns with FluidObject and IFluidDependencySynthesizer\n\t\t// this is just for back compat until those are removed\n\t\tif (this.has(provider)) {\n\t\t\tif (this.providers.has(provider)) {\n\t\t\t\treturn this.providers.get(provider);\n\t\t\t}\n\t\t\tfor (const parent of this.parents) {\n\t\t\t\tif (parent instanceof DependencyContainer) {\n\t\t\t\t\treturn parent.getProvider(provider);\n\t\t\t\t} else {\n\t\t\t\t\t// older implementations of the IFluidDependencySynthesizer exposed getProvider\n\t\t\t\t\tconst maybeGetProvider: { getProvider?(provider: string & keyof TMap) } =\n\t\t\t\t\t\tparent as any;\n\t\t\t\t\tif (maybeGetProvider?.getProvider !== undefined) {\n\t\t\t\t\t\treturn maybeGetProvider.getProvider(provider);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate generateRequired<T>(\n\t\tbase: AsyncRequiredFluidObjectProvider<T>,\n\t\ttypes: Required<FluidObjectSymbolProvider<T>>,\n\t) {\n\t\tif (types === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const key of Object.keys(types) as unknown as (keyof TMap)[]) {\n\t\t\tconst provider = this.resolveProvider(key);\n\t\t\tif (provider === undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Object attempted to be created without registered required provider ${key}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tObject.defineProperty(base, key, provider);\n\t\t}\n\t}\n\n\tprivate generateOptional<T>(\n\t\tbase: AsyncOptionalFluidObjectProvider<T>,\n\t\ttypes: FluidObjectSymbolProvider<T>,\n\t) {\n\t\tif (types === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const key of Object.keys(types) as unknown as (keyof TMap)[]) {\n\t\t\t// back-compat: in 0.56 we allow undefined in the types, but we didn't before\n\t\t\t// this will keep runtime back compat, eventually we should support undefined properties\n\t\t\t// rather than properties that return promises that resolve to undefined\n\t\t\tconst provider = this.resolveProvider(key) ?? { get: async () => undefined };\n\t\t\tObject.defineProperty(base, key, provider);\n\t\t}\n\t}\n\n\tprivate resolveProvider<T extends keyof TMap>(t: T): PropertyDescriptor | undefined {\n\t\t// If we have the provider return it\n\t\tconst provider = this.providers.get(t);\n\t\tif (provider === undefined) {\n\t\t\tfor (const parent of this.parents) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\tconst sp = { [t]: t } as FluidObjectSymbolProvider<Pick<TMap, T>>;\n\t\t\t\tconst syn = parent.synthesize<Pick<TMap, T>, Record<string, unknown>>(sp, {});\n\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(syn, t);\n\t\t\t\tif (descriptor !== undefined) {\n\t\t\t\t\treturn descriptor;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// The double nested gets are required for lazy loading the provider resolution\n\t\tif (typeof provider === \"function\") {\n\t\t\treturn {\n\t\t\t\tget() {\n\t\t\t\t\tif (provider && typeof provider === \"function\") {\n\t\t\t\t\t\treturn Promise.resolve(this[IFluidDependencySynthesizer])\n\t\t\t\t\t\t\t.then(async (fds): Promise<any> => provider(fds))\n\t\t\t\t\t\t\t.then((p) => p?.[t]);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tif (provider) {\n\t\t\t\t\treturn Promise.resolve(provider).then((p) => {\n\t\t\t\t\t\tif (p) {\n\t\t\t\t\t\t\treturn p[t];\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,6 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  export { DependencyContainer } from "./dependencyContainer";
6
- export { IFluidDependencySynthesizer, IProvideFluidDependencySynthesizer } from "./IFluidDependencySynthesizer";
6
+ export { IFluidDependencySynthesizer, IProvideFluidDependencySynthesizer, } from "./IFluidDependencySynthesizer";
7
7
  export { AsyncFluidObjectProvider, AsyncOptionalFluidObjectProvider, AsyncRequiredFluidObjectProvider, FluidObjectProvider, FluidObjectSymbolProvider, } from "./types";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AAChH,OAAO,EACN,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,mBAAmB,EACnB,yBAAyB,GACzB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACN,2BAA2B,EAC3B,kCAAkC,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,mBAAmB,EACnB,yBAAyB,GACzB,MAAM,SAAS,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,6EAAgH;AAAvG,0IAAA,2BAA2B,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { DependencyContainer } from \"./dependencyContainer\";\nexport { IFluidDependencySynthesizer, IProvideFluidDependencySynthesizer } from \"./IFluidDependencySynthesizer\";\nexport {\n\tAsyncFluidObjectProvider,\n\tAsyncOptionalFluidObjectProvider,\n\tAsyncRequiredFluidObjectProvider,\n\tFluidObjectProvider,\n\tFluidObjectSymbolProvider,\n} from \"./types\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,6EAGuC;AAFtC,0IAAA,2BAA2B,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { DependencyContainer } from \"./dependencyContainer\";\nexport {\n\tIFluidDependencySynthesizer,\n\tIProvideFluidDependencySynthesizer,\n} from \"./IFluidDependencySynthesizer\";\nexport {\n\tAsyncFluidObjectProvider,\n\tAsyncOptionalFluidObjectProvider,\n\tAsyncRequiredFluidObjectProvider,\n\tFluidObjectProvider,\n\tFluidObjectSymbolProvider,\n} from \"./types\";\n"]}
@@ -20,11 +20,17 @@ const mockHandleContext = {
20
20
  },
21
21
  };
22
22
  class MockLoadable {
23
- get IFluidLoadable() { return this; }
24
- get handle() { return new datastore_1.FluidObjectHandle(this, "", mockHandleContext); }
23
+ get IFluidLoadable() {
24
+ return this;
25
+ }
26
+ get handle() {
27
+ return new datastore_1.FluidObjectHandle(this, "", mockHandleContext);
28
+ }
25
29
  }
26
30
  class MockFluidRouter {
27
- get IFluidRouter() { return this; }
31
+ get IFluidRouter() {
32
+ return this;
33
+ }
28
34
  async request() {
29
35
  return {
30
36
  mimeType: "",
@@ -82,7 +88,9 @@ describe("Routerlicious", () => {
82
88
  const dc = new __1.DependencyContainer();
83
89
  const mock = new MockLoadable();
84
90
  dc.register(core_interfaces_1.IFluidLoadable, mock);
85
- const s = dc.synthesize(undefined, { IFluidLoadable: core_interfaces_1.IFluidLoadable });
91
+ const s = dc.synthesize(undefined, {
92
+ IFluidLoadable: core_interfaces_1.IFluidLoadable,
93
+ });
86
94
  const loadable = await s.IFluidLoadable;
87
95
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
88
96
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
@@ -92,7 +100,9 @@ describe("Routerlicious", () => {
92
100
  const dc = new __1.DependencyContainer();
93
101
  const mock = new MockLoadable();
94
102
  dc.register(core_interfaces_1.IFluidLoadable, Promise.resolve(mock));
95
- const s = dc.synthesize(undefined, { IFluidLoadable: core_interfaces_1.IFluidLoadable });
103
+ const s = dc.synthesize(undefined, {
104
+ IFluidLoadable: core_interfaces_1.IFluidLoadable,
105
+ });
96
106
  const loadable = await s.IFluidLoadable;
97
107
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
98
108
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
@@ -103,7 +113,9 @@ describe("Routerlicious", () => {
103
113
  const mock = new MockLoadable();
104
114
  const factory = () => mock;
105
115
  dc.register(core_interfaces_1.IFluidLoadable, factory);
106
- const s = dc.synthesize(undefined, { IFluidLoadable: core_interfaces_1.IFluidLoadable });
116
+ const s = dc.synthesize(undefined, {
117
+ IFluidLoadable: core_interfaces_1.IFluidLoadable,
118
+ });
107
119
  const loadable = await s.IFluidLoadable;
108
120
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
109
121
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
@@ -114,7 +126,9 @@ describe("Routerlicious", () => {
114
126
  const mock = new MockLoadable();
115
127
  const factory = async () => mock;
116
128
  dc.register(core_interfaces_1.IFluidLoadable, factory);
117
- const s = dc.synthesize(undefined, { IFluidLoadable: core_interfaces_1.IFluidLoadable });
129
+ const s = dc.synthesize(undefined, {
130
+ IFluidLoadable: core_interfaces_1.IFluidLoadable,
131
+ });
118
132
  const loadable = await s.IFluidLoadable;
119
133
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
120
134
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
@@ -169,7 +183,9 @@ describe("Routerlicious", () => {
169
183
  });
170
184
  it(`Required Provider not registered should throw`, async () => {
171
185
  const dc = new __1.DependencyContainer();
172
- assert_1.strict.throws(() => dc.synthesize(undefined, { IFluidLoadable: core_interfaces_1.IFluidLoadable }), Error);
186
+ assert_1.strict.throws(() => dc.synthesize(undefined, {
187
+ IFluidLoadable: core_interfaces_1.IFluidLoadable,
188
+ }), Error);
173
189
  });
174
190
  it(`Optional Provider found in Parent`, async () => {
175
191
  const parentDc = new __1.DependencyContainer();
@@ -213,7 +229,9 @@ describe("Routerlicious", () => {
213
229
  const mock = new MockLoadable();
214
230
  parentDc.register(core_interfaces_1.IFluidLoadable, mock);
215
231
  const dc = new __1.DependencyContainer(parentDc);
216
- const s = dc.synthesize(undefined, { IFluidLoadable: core_interfaces_1.IFluidLoadable });
232
+ const s = dc.synthesize(undefined, {
233
+ IFluidLoadable: core_interfaces_1.IFluidLoadable,
234
+ });
217
235
  const loadable = await s.IFluidLoadable;
218
236
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
219
237
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
@@ -240,7 +258,9 @@ describe("Routerlicious", () => {
240
258
  const dc = new __1.DependencyContainer(parentDc);
241
259
  const loadableMock = new MockLoadable();
242
260
  dc.register(core_interfaces_1.IFluidLoadable, loadableMock);
243
- const s = dc.synthesize(undefined, { IFluidLoadable: core_interfaces_1.IFluidLoadable });
261
+ const s = dc.synthesize(undefined, {
262
+ IFluidLoadable: core_interfaces_1.IFluidLoadable,
263
+ });
244
264
  const loadable = await s.IFluidLoadable;
245
265
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
246
266
  (0, assert_1.strict)(loadable === loadableMock, "IFluidLoadable is expected");
@@ -291,7 +311,9 @@ describe("Routerlicious", () => {
291
311
  it(`Parent Resolved from Child`, async () => {
292
312
  const parentDc = new __1.DependencyContainer();
293
313
  const loadableToHandle = async (fds) => {
294
- const loadable = fds.synthesize(undefined, { IFluidLoadable: core_interfaces_1.IFluidLoadable });
314
+ const loadable = fds.synthesize(undefined, {
315
+ IFluidLoadable: core_interfaces_1.IFluidLoadable,
316
+ });
295
317
  return (await loadable.IFluidLoadable).handle;
296
318
  };
297
319
  parentDc.register(core_interfaces_1.IFluidHandle, loadableToHandle);
@@ -299,13 +321,13 @@ describe("Routerlicious", () => {
299
321
  const loadableMock = new MockLoadable();
300
322
  dc.register(core_interfaces_1.IFluidLoadable, loadableMock);
301
323
  const deps = dc.synthesize({ IFluidHandle: core_interfaces_1.IFluidHandle }, undefined);
302
- (0, assert_1.strict)(await deps.IFluidHandle !== undefined, "handle undefined");
324
+ (0, assert_1.strict)((await deps.IFluidHandle) !== undefined, "handle undefined");
303
325
  });
304
326
  it(`Undefined Provider is not Undefined`, async () => {
305
327
  const dc = new __1.DependencyContainer();
306
328
  const deps = dc.synthesize({ IFluidLoadable: core_interfaces_1.IFluidLoadable }, {});
307
329
  (0, assert_1.strict)(deps.IFluidLoadable !== undefined, "handle undefined");
308
- (0, assert_1.strict)(await deps.IFluidLoadable === undefined, "handle undefined");
330
+ (0, assert_1.strict)((await deps.IFluidLoadable) === undefined, "handle undefined");
309
331
  });
310
332
  it(`test getProvider backcompat`, async () => {
311
333
  const dc = new __1.DependencyContainer();
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyContainer.spec.js","sourceRoot":"","sources":["../../src/test/dependencyContainer.spec.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { strict as assert } from \"assert\";\n\nimport {\n IFluidLoadable,\n IFluidHandleContext,\n IFluidHandle,\n IProvideFluidLoadable,\n IProvideFluidRouter,\n IProvideFluidHandle,\n FluidObject,\n IFluidRouter,\n} from \"@fluidframework/core-interfaces\";\nimport { FluidObjectHandle } from \"@fluidframework/datastore\";\n\nimport { DependencyContainer } from \"..\";\nimport { IFluidDependencySynthesizer } from \"../IFluidDependencySynthesizer\";\nimport { AsyncFluidObjectProvider, FluidObjectProvider, FluidObjectSymbolProvider } from \"../types\";\n\nconst mockHandleContext: IFluidHandleContext = {\n absolutePath: \"\",\n isAttached: false,\n IFluidHandleContext: undefined as any,\n\n attachGraph: () => {\n throw new Error(\"Method not implemented.\");\n },\n resolveHandle: () => {\n throw new Error(\"Method not implemented.\");\n },\n};\n\nclass MockLoadable implements IFluidLoadable {\n public get IFluidLoadable() { return this; }\n public get handle() { return new FluidObjectHandle(this, \"\", mockHandleContext); }\n}\n\nclass MockFluidRouter implements IFluidRouter {\n public get IFluidRouter() { return this; }\n public async request() {\n return {\n mimeType: \"\",\n status: 200,\n value: \"\",\n };\n }\n}\n\ndescribe(\"Routerlicious\", () => {\n describe(\"Aqueduct\", () => {\n describe(\"DependencyContainer\", () => {\n it(`One Optional Provider registered via value`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, mock);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Optional Provider registered via Promise value`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, Promise.resolve(mock));\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Optional Provider registered via factory`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n const factory = () => mock;\n dc.register(IFluidLoadable, factory);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Optional Provider registered via Promise factory`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n const factory = async () => mock;\n dc.register(IFluidLoadable, factory);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via value`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, mock);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via Promise value`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n dc.register(IFluidLoadable, Promise.resolve(mock));\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via factory`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n const factory = () => mock;\n dc.register(IFluidLoadable, factory);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`One Required Provider registered via Promise factory`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n const factory = async () => mock;\n dc.register(IFluidLoadable, factory);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`Two Optional Modules all registered`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidRouter>>();\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n const routerMock = new MockFluidRouter();\n dc.register(IFluidRouter, routerMock);\n\n const s = dc.synthesize<IFluidLoadable & IFluidRouter>(\n { IFluidLoadable, IFluidRouter }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const router = await s.IFluidRouter;\n assert(router, \"Optional IFluidRouter was registered\");\n assert(router === routerMock, \"IFluidRouter is expected\");\n });\n\n it(`Two Optional Modules one registered`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidRouter>>();\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const s = dc.synthesize<IFluidLoadable & IFluidRouter>(\n { IFluidLoadable, IFluidRouter }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const router = await s.IFluidRouter;\n assert(!router, \"Optional IFluidRouter was not registered\");\n });\n\n it(`Two Optional Modules none registered`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidRouter>>();\n\n const s = dc.synthesize<IFluidLoadable & IFluidRouter>(\n { IFluidLoadable, IFluidRouter }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(!loadable, \"Optional IFluidLoadable was not registered\");\n const router = await s.IFluidRouter;\n assert(!router, \"Optional IFluidRouter was not registered\");\n });\n\n it(`Two Required Modules all registered`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidRouter>>();\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n const routerMock = new MockFluidRouter();\n dc.register(IFluidRouter, routerMock);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable & IProvideFluidRouter>(\n undefined, { IFluidLoadable, IFluidRouter });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const router = await s.IFluidRouter;\n assert(router, \"Required IFluidRouter was registered\");\n assert(router === routerMock, \"IFluidRouter is expected\");\n });\n\n it(`Required Provider not registered should throw`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\n assert.throws(() => dc.synthesize<undefined, IProvideFluidLoadable>(\n undefined,\n { IFluidLoadable },\n ), Error);\n });\n\n it(`Optional Provider found in Parent`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n parentDc.register(IFluidLoadable, mock);\n const dc = new DependencyContainer(parentDc);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`Optional Modules found in Parent and Child`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const loadableMock = new MockLoadable();\n parentDc.register(IFluidLoadable, loadableMock);\n const dc = new DependencyContainer<FluidObject<IFluidRouter>>(parentDc);\n const routerMock = new MockFluidRouter();\n dc.register(IFluidRouter, routerMock);\n\n const s = dc.synthesize<IFluidLoadable & IFluidRouter>(\n { IFluidLoadable, IFluidRouter }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const router = await s.IFluidRouter;\n assert(router, \"Optional IFluidRouter was registered\");\n assert(router === routerMock, \"IFluidRouter is expected\");\n });\n\n it(`Optional Provider found in Parent and Child resolves Child`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n parentDc.register(IFluidLoadable, new MockLoadable());\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>(parentDc);\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Optional IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n });\n\n it(`Required Provider found in Parent`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const mock = new MockLoadable();\n parentDc.register(IFluidLoadable, mock);\n const dc = new DependencyContainer(parentDc);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === mock, \"IFluidLoadable is expected\");\n assert(loadable?.handle.absolutePath === mock.handle.absolutePath, \"IFluidLoadable is valid\");\n });\n\n it(`Required Modules found in Parent and Child`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const loadableMock = new MockLoadable();\n parentDc.register(IFluidLoadable, loadableMock);\n const dc = new DependencyContainer<FluidObject<IFluidRouter>>(parentDc);\n const routerMock = new MockFluidRouter();\n dc.register(IFluidRouter, routerMock);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable & IProvideFluidRouter>(\n undefined, { IFluidLoadable, IFluidRouter });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n const router = await s.IFluidRouter;\n assert(router, \"Required IFluidRouter was registered\");\n assert(router === routerMock, \"IFluidRouter is expected\");\n });\n\n it(`Required Provider found in Parent and Child resolves Child`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n parentDc.register(IFluidLoadable, new MockLoadable());\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>(parentDc);\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n const loadable = await s.IFluidLoadable;\n assert(loadable, \"Required IFluidLoadable was registered\");\n assert(loadable === loadableMock, \"IFluidLoadable is expected\");\n });\n\n it(`Registering`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n dc.register(IFluidLoadable, new MockLoadable());\n assert(dc.has(IFluidLoadable), \"DependencyContainer has IFluidLoadable\");\n });\n\n it(`Registering the same type twice throws`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n dc.register(IFluidLoadable, new MockLoadable());\n assert.throws(() => dc.register(IFluidLoadable, new MockLoadable()), Error);\n });\n\n it(`Registering then Unregistering`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n dc.register(IFluidLoadable, new MockLoadable());\n dc.unregister(IFluidLoadable);\n assert(!dc.has(IFluidLoadable), \"DependencyContainer doesn't have IFluidLoadable\");\n });\n\n it(`Registering then Unregistering then Registering`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n dc.register(IFluidLoadable, new MockLoadable());\n dc.unregister(IFluidLoadable);\n dc.register(IFluidLoadable, new MockLoadable());\n assert(dc.has(IFluidLoadable), \"DependencyContainer has IFluidLoadable\");\n });\n\n it(`has() resolves correctly in all variations`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidRouter>>();\n dc.register(IFluidLoadable, new MockLoadable());\n dc.register(IFluidRouter, new MockFluidRouter());\n assert(dc.has(IFluidLoadable), \"Manager has IFluidLoadable\");\n assert(dc.has(IFluidRouter), \"Manager has IFluidRouter\");\n assert(\n dc.has(IFluidLoadable) && dc.has(IFluidRouter),\n \"Manager has IFluidLoadable & IFluidRouter\");\n });\n\n it(`Child has Parent modules`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const loadableMock = new MockLoadable();\n parentDc.register(IFluidLoadable, loadableMock);\n const dc = new DependencyContainer<FluidObject<IFluidRouter>>(parentDc);\n const routerMock = new MockFluidRouter();\n dc.register(IFluidRouter, routerMock);\n\n assert(dc.has(IFluidLoadable), \"has includes parent registered\");\n assert(!dc.has(IFluidLoadable, true), \"has does not include excluded parent registered\");\n assert(dc.has(IFluidRouter), \"has includes registered\");\n assert(!dc.has(IFluidHandle), \"does not include not registered\");\n });\n\n it(`Parent Resolved from Child`, async () => {\n const parentDc = new DependencyContainer<FluidObject<IFluidHandle>>();\n const loadableToHandle: FluidObjectProvider<IProvideFluidHandle> =\n async (fds: IFluidDependencySynthesizer) => {\n const loadable =\n fds.synthesize<undefined, IProvideFluidLoadable>(undefined, { IFluidLoadable });\n return (await loadable.IFluidLoadable).handle;\n };\n parentDc.register(IFluidHandle, loadableToHandle);\n\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>(parentDc);\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n\n const deps = dc.synthesize<IFluidHandle>({ IFluidHandle }, undefined);\n assert(await deps.IFluidHandle !== undefined, \"handle undefined\");\n });\n\n it(`Undefined Provider is not Undefined`, async () => {\n const dc = new DependencyContainer();\n const deps = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, {});\n assert(deps.IFluidLoadable !== undefined, \"handle undefined\");\n assert(await deps.IFluidLoadable === undefined, \"handle undefined\");\n });\n\n it(`test getProvider backcompat`, async () => {\n const dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n const loadableMock = new MockLoadable();\n dc.register(IFluidLoadable, loadableMock);\n const testGetProvider = (deps: IFluidDependencySynthesizer, scenario: string) => {\n const old = deps as any as {\n getProvider(key: \"IFluidLoadable\"): FluidObjectProvider<FluidObject<IFluidLoadable>>;\n };\n const provider = old.getProvider(\"IFluidLoadable\");\n assert.equal(provider, loadableMock, scenario);\n };\n testGetProvider(dc, \"direct\");\n testGetProvider(new DependencyContainer(dc), \"parent\");\n testGetProvider(new PassThru<FluidObject<IFluidLoadable>>(dc), \"pass thru\");\n testGetProvider(new DependencyContainer(new PassThru<FluidObject<IFluidLoadable>>(dc)),\n \"pass thru as child\");\n });\n });\n });\n});\n\nclass PassThru<TMap> implements IFluidDependencySynthesizer {\n constructor(private readonly parent: IFluidDependencySynthesizer) {}\n synthesize<O, R = Record<string, never> | undefined>(\n optionalTypes: FluidObjectSymbolProvider<O>, requiredTypes: Required<FluidObjectSymbolProvider<R>>,\n ): AsyncFluidObjectProvider<O, R> {\n return this.parent.synthesize(optionalTypes, requiredTypes);\n }\n has(type: string): boolean {\n return this.parent.has(type);\n }\n readonly IFluidDependencySynthesizer = this;\n\n getProvider<K extends keyof TMap>(key: K): FluidObjectProvider<TMap[K]> | undefined {\n const maybe = this.parent as any as Partial<this>;\n if (maybe.getProvider) {\n return maybe.getProvider(key);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"dependencyContainer.spec.js","sourceRoot":"","sources":["../../src/test/dependencyContainer.spec.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { strict as assert } from \"assert\";\n\nimport {\n\tIFluidLoadable,\n\tIFluidHandleContext,\n\tIFluidHandle,\n\tIProvideFluidLoadable,\n\tIProvideFluidRouter,\n\tIProvideFluidHandle,\n\tFluidObject,\n\tIFluidRouter,\n} from \"@fluidframework/core-interfaces\";\nimport { FluidObjectHandle } from \"@fluidframework/datastore\";\n\nimport { DependencyContainer } from \"..\";\nimport { IFluidDependencySynthesizer } from \"../IFluidDependencySynthesizer\";\nimport { AsyncFluidObjectProvider, FluidObjectProvider, FluidObjectSymbolProvider } from \"../types\";\n\nconst mockHandleContext: IFluidHandleContext = {\n\tabsolutePath: \"\",\n\tisAttached: false,\n\tIFluidHandleContext: undefined as any,\n\n\tattachGraph: () => {\n\t\tthrow new Error(\"Method not implemented.\");\n\t},\n\tresolveHandle: () => {\n\t\tthrow new Error(\"Method not implemented.\");\n\t},\n};\n\nclass MockLoadable implements IFluidLoadable {\n\tpublic get IFluidLoadable() {\n\t\treturn this;\n\t}\n\tpublic get handle() {\n\t\treturn new FluidObjectHandle(this, \"\", mockHandleContext);\n\t}\n}\n\nclass MockFluidRouter implements IFluidRouter {\n\tpublic get IFluidRouter() {\n\t\treturn this;\n\t}\n\tpublic async request() {\n\t\treturn {\n\t\t\tmimeType: \"\",\n\t\t\tstatus: 200,\n\t\t\tvalue: \"\",\n\t\t};\n\t}\n}\n\ndescribe(\"Routerlicious\", () => {\n\tdescribe(\"Aqueduct\", () => {\n\t\tdescribe(\"DependencyContainer\", () => {\n\t\t\tit(`One Optional Provider registered via value`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, mock);\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\tassert(\n\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`One Optional Provider registered via Promise value`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, Promise.resolve(mock));\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\tassert(\n\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`One Optional Provider registered via factory`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tconst factory = () => mock;\n\t\t\t\tdc.register(IFluidLoadable, factory);\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\tassert(\n\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`One Optional Provider registered via Promise factory`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tconst factory = async () => mock;\n\t\t\t\tdc.register(IFluidLoadable, factory);\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\tassert(\n\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`One Required Provider registered via value`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, mock);\n\n\t\t\t\tconst s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, {\n\t\t\t\t\tIFluidLoadable,\n\t\t\t\t});\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Required IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\tassert(\n\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`One Required Provider registered via Promise value`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, Promise.resolve(mock));\n\n\t\t\t\tconst s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, {\n\t\t\t\t\tIFluidLoadable,\n\t\t\t\t});\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Required IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\tassert(\n\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`One Required Provider registered via factory`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tconst factory = () => mock;\n\t\t\t\tdc.register(IFluidLoadable, factory);\n\n\t\t\t\tconst s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, {\n\t\t\t\t\tIFluidLoadable,\n\t\t\t\t});\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Required IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\tassert(\n\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`One Required Provider registered via Promise factory`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tconst factory = async () => mock;\n\t\t\t\tdc.register(IFluidLoadable, factory);\n\n\t\t\t\tconst s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, {\n\t\t\t\t\tIFluidLoadable,\n\t\t\t\t});\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Required IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\tassert(\n\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`Two Optional Modules all registered`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidRouter>>();\n\t\t\t\tconst loadableMock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, loadableMock);\n\t\t\t\tconst routerMock = new MockFluidRouter();\n\t\t\t\tdc.register(IFluidRouter, routerMock);\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable & IFluidRouter>(\n\t\t\t\t\t{ IFluidLoadable, IFluidRouter },\n\t\t\t\t\tundefined,\n\t\t\t\t);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n\t\t\t\tconst router = await s.IFluidRouter;\n\t\t\t\tassert(router, \"Optional IFluidRouter was registered\");\n\t\t\t\tassert(router === routerMock, \"IFluidRouter is expected\");\n\t\t\t});\n\n\t\t\tit(`Two Optional Modules one registered`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidRouter>>();\n\t\t\t\tconst loadableMock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, loadableMock);\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable & IFluidRouter>(\n\t\t\t\t\t{ IFluidLoadable, IFluidRouter },\n\t\t\t\t\tundefined,\n\t\t\t\t);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n\t\t\t\tconst router = await s.IFluidRouter;\n\t\t\t\tassert(!router, \"Optional IFluidRouter was not registered\");\n\t\t\t});\n\n\t\t\tit(`Two Optional Modules none registered`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidRouter>>();\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable & IFluidRouter>(\n\t\t\t\t\t{ IFluidLoadable, IFluidRouter },\n\t\t\t\t\tundefined,\n\t\t\t\t);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(!loadable, \"Optional IFluidLoadable was not registered\");\n\t\t\t\tconst router = await s.IFluidRouter;\n\t\t\t\tassert(!router, \"Optional IFluidRouter was not registered\");\n\t\t\t});\n\n\t\t\tit(`Two Required Modules all registered`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidRouter>>();\n\t\t\t\tconst loadableMock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, loadableMock);\n\t\t\t\tconst routerMock = new MockFluidRouter();\n\t\t\t\tdc.register(IFluidRouter, routerMock);\n\n\t\t\t\tconst s = dc.synthesize<undefined, IProvideFluidLoadable & IProvideFluidRouter>(\n\t\t\t\t\tundefined,\n\t\t\t\t\t{ IFluidLoadable, IFluidRouter },\n\t\t\t\t);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Required IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n\t\t\t\tconst router = await s.IFluidRouter;\n\t\t\t\tassert(router, \"Required IFluidRouter was registered\");\n\t\t\t\tassert(router === routerMock, \"IFluidRouter is expected\");\n\t\t\t});\n\n\t\t\tit(`Required Provider not registered should throw`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\n\t\t\t\tassert.throws(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tdc.synthesize<undefined, IProvideFluidLoadable>(undefined, {\n\t\t\t\t\t\t\tIFluidLoadable,\n\t\t\t\t\t\t}),\n\t\t\t\t\tError,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`Optional Provider found in Parent`, async () => {\n\t\t\t\tconst parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tparentDc.register(IFluidLoadable, mock);\n\t\t\t\tconst dc = new DependencyContainer(parentDc);\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\tassert(\n\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`Optional Modules found in Parent and Child`, async () => {\n\t\t\t\tconst parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst loadableMock = new MockLoadable();\n\t\t\t\tparentDc.register(IFluidLoadable, loadableMock);\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidRouter>>(parentDc);\n\t\t\t\tconst routerMock = new MockFluidRouter();\n\t\t\t\tdc.register(IFluidRouter, routerMock);\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable & IFluidRouter>(\n\t\t\t\t\t{ IFluidLoadable, IFluidRouter },\n\t\t\t\t\tundefined,\n\t\t\t\t);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n\t\t\t\tconst router = await s.IFluidRouter;\n\t\t\t\tassert(router, \"Optional IFluidRouter was registered\");\n\t\t\t\tassert(router === routerMock, \"IFluidRouter is expected\");\n\t\t\t});\n\n\t\t\tit(`Optional Provider found in Parent and Child resolves Child`, async () => {\n\t\t\t\tconst parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tparentDc.register(IFluidLoadable, new MockLoadable());\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>(parentDc);\n\t\t\t\tconst loadableMock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, loadableMock);\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\t\t\t});\n\n\t\t\tit(`Required Provider found in Parent`, async () => {\n\t\t\t\tconst parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tparentDc.register(IFluidLoadable, mock);\n\t\t\t\tconst dc = new DependencyContainer(parentDc);\n\n\t\t\t\tconst s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, {\n\t\t\t\t\tIFluidLoadable,\n\t\t\t\t});\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Required IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\tassert(\n\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`Required Modules found in Parent and Child`, async () => {\n\t\t\t\tconst parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst loadableMock = new MockLoadable();\n\t\t\t\tparentDc.register(IFluidLoadable, loadableMock);\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidRouter>>(parentDc);\n\t\t\t\tconst routerMock = new MockFluidRouter();\n\t\t\t\tdc.register(IFluidRouter, routerMock);\n\n\t\t\t\tconst s = dc.synthesize<undefined, IProvideFluidLoadable & IProvideFluidRouter>(\n\t\t\t\t\tundefined,\n\t\t\t\t\t{ IFluidLoadable, IFluidRouter },\n\t\t\t\t);\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Required IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\n\t\t\t\tconst router = await s.IFluidRouter;\n\t\t\t\tassert(router, \"Required IFluidRouter was registered\");\n\t\t\t\tassert(router === routerMock, \"IFluidRouter is expected\");\n\t\t\t});\n\n\t\t\tit(`Required Provider found in Parent and Child resolves Child`, async () => {\n\t\t\t\tconst parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tparentDc.register(IFluidLoadable, new MockLoadable());\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>(parentDc);\n\t\t\t\tconst loadableMock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, loadableMock);\n\n\t\t\t\tconst s = dc.synthesize<undefined, IProvideFluidLoadable>(undefined, {\n\t\t\t\t\tIFluidLoadable,\n\t\t\t\t});\n\t\t\t\tconst loadable = await s.IFluidLoadable;\n\t\t\t\tassert(loadable, \"Required IFluidLoadable was registered\");\n\t\t\t\tassert(loadable === loadableMock, \"IFluidLoadable is expected\");\n\t\t\t});\n\n\t\t\tit(`Registering`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tdc.register(IFluidLoadable, new MockLoadable());\n\t\t\t\tassert(dc.has(IFluidLoadable), \"DependencyContainer has IFluidLoadable\");\n\t\t\t});\n\n\t\t\tit(`Registering the same type twice throws`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tdc.register(IFluidLoadable, new MockLoadable());\n\t\t\t\tassert.throws(() => dc.register(IFluidLoadable, new MockLoadable()), Error);\n\t\t\t});\n\n\t\t\tit(`Registering then Unregistering`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tdc.register(IFluidLoadable, new MockLoadable());\n\t\t\t\tdc.unregister(IFluidLoadable);\n\t\t\t\tassert(!dc.has(IFluidLoadable), \"DependencyContainer doesn't have IFluidLoadable\");\n\t\t\t});\n\n\t\t\tit(`Registering then Unregistering then Registering`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tdc.register(IFluidLoadable, new MockLoadable());\n\t\t\t\tdc.unregister(IFluidLoadable);\n\t\t\t\tdc.register(IFluidLoadable, new MockLoadable());\n\t\t\t\tassert(dc.has(IFluidLoadable), \"DependencyContainer has IFluidLoadable\");\n\t\t\t});\n\n\t\t\tit(`has() resolves correctly in all variations`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable & IFluidRouter>>();\n\t\t\t\tdc.register(IFluidLoadable, new MockLoadable());\n\t\t\t\tdc.register(IFluidRouter, new MockFluidRouter());\n\t\t\t\tassert(dc.has(IFluidLoadable), \"Manager has IFluidLoadable\");\n\t\t\t\tassert(dc.has(IFluidRouter), \"Manager has IFluidRouter\");\n\t\t\t\tassert(\n\t\t\t\t\tdc.has(IFluidLoadable) && dc.has(IFluidRouter),\n\t\t\t\t\t\"Manager has IFluidLoadable & IFluidRouter\",\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tit(`Child has Parent modules`, async () => {\n\t\t\t\tconst parentDc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst loadableMock = new MockLoadable();\n\t\t\t\tparentDc.register(IFluidLoadable, loadableMock);\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidRouter>>(parentDc);\n\t\t\t\tconst routerMock = new MockFluidRouter();\n\t\t\t\tdc.register(IFluidRouter, routerMock);\n\n\t\t\t\tassert(dc.has(IFluidLoadable), \"has includes parent registered\");\n\t\t\t\tassert(\n\t\t\t\t\t!dc.has(IFluidLoadable, true),\n\t\t\t\t\t\"has does not include excluded parent registered\",\n\t\t\t\t);\n\t\t\t\tassert(dc.has(IFluidRouter), \"has includes registered\");\n\t\t\t\tassert(!dc.has(IFluidHandle), \"does not include not registered\");\n\t\t\t});\n\n\t\t\tit(`Parent Resolved from Child`, async () => {\n\t\t\t\tconst parentDc = new DependencyContainer<FluidObject<IFluidHandle>>();\n\t\t\t\tconst loadableToHandle: FluidObjectProvider<IProvideFluidHandle> = async (\n\t\t\t\t\tfds: IFluidDependencySynthesizer,\n\t\t\t\t) => {\n\t\t\t\t\tconst loadable = fds.synthesize<undefined, IProvideFluidLoadable>(undefined, {\n\t\t\t\t\t\tIFluidLoadable,\n\t\t\t\t\t});\n\t\t\t\t\treturn (await loadable.IFluidLoadable).handle;\n\t\t\t\t};\n\t\t\t\tparentDc.register(IFluidHandle, loadableToHandle);\n\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>(parentDc);\n\t\t\t\tconst loadableMock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, loadableMock);\n\n\t\t\t\tconst deps = dc.synthesize<IFluidHandle>({ IFluidHandle }, undefined);\n\t\t\t\tassert((await deps.IFluidHandle) !== undefined, \"handle undefined\");\n\t\t\t});\n\n\t\t\tit(`Undefined Provider is not Undefined`, async () => {\n\t\t\t\tconst dc = new DependencyContainer();\n\t\t\t\tconst deps = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, {});\n\t\t\t\tassert(deps.IFluidLoadable !== undefined, \"handle undefined\");\n\t\t\t\tassert((await deps.IFluidLoadable) === undefined, \"handle undefined\");\n\t\t\t});\n\n\t\t\tit(`test getProvider backcompat`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst loadableMock = new MockLoadable();\n\t\t\t\tdc.register(IFluidLoadable, loadableMock);\n\t\t\t\tconst testGetProvider = (deps: IFluidDependencySynthesizer, scenario: string) => {\n\t\t\t\t\tconst old = deps as any as {\n\t\t\t\t\t\tgetProvider(\n\t\t\t\t\t\t\tkey: \"IFluidLoadable\",\n\t\t\t\t\t\t): FluidObjectProvider<FluidObject<IFluidLoadable>>;\n\t\t\t\t\t};\n\t\t\t\t\tconst provider = old.getProvider(\"IFluidLoadable\");\n\t\t\t\t\tassert.equal(provider, loadableMock, scenario);\n\t\t\t\t};\n\t\t\t\ttestGetProvider(dc, \"direct\");\n\t\t\t\ttestGetProvider(new DependencyContainer(dc), \"parent\");\n\t\t\t\ttestGetProvider(new PassThru<FluidObject<IFluidLoadable>>(dc), \"pass thru\");\n\t\t\t\ttestGetProvider(\n\t\t\t\t\tnew DependencyContainer(new PassThru<FluidObject<IFluidLoadable>>(dc)),\n\t\t\t\t\t\"pass thru as child\",\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t});\n});\n\nclass PassThru<TMap> implements IFluidDependencySynthesizer {\n\tconstructor(private readonly parent: IFluidDependencySynthesizer) {}\n\tsynthesize<O, R = Record<string, never> | undefined>(\n\t\toptionalTypes: FluidObjectSymbolProvider<O>,\n\t\trequiredTypes: Required<FluidObjectSymbolProvider<R>>,\n\t): AsyncFluidObjectProvider<O, R> {\n\t\treturn this.parent.synthesize(optionalTypes, requiredTypes);\n\t}\n\thas(type: string): boolean {\n\t\treturn this.parent.has(type);\n\t}\n\treadonly IFluidDependencySynthesizer = this;\n\n\tgetProvider<K extends keyof TMap>(key: K): FluidObjectProvider<TMap[K]> | undefined {\n\t\tconst maybe = this.parent as any as Partial<this>;\n\t\tif (maybe.getProvider) {\n\t\t\treturn maybe.getProvider(key);\n\t\t}\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"program":{"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.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.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.es2020.bigint.d.ts","../../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../common/core-interfaces/dist/fluidObject.d.ts","../../../../common/core-interfaces/dist/fluidRouter.d.ts","../../../../common/core-interfaces/dist/provider.d.ts","../../../../common/core-interfaces/dist/handles.d.ts","../../../../common/core-interfaces/dist/fluidLoadable.d.ts","../../../../common/core-interfaces/dist/fluidPackage.d.ts","../../../../common/core-interfaces/dist/index.d.ts","../../../../runtime/datastore/dist/fluidHandle.d.ts","../../../../../node_modules/@fluidframework/common-definitions/dist/disposable.d.ts","../../../../../node_modules/@fluidframework/common-definitions/dist/events.d.ts","../../../../../node_modules/@fluidframework/common-definitions/dist/logger.d.ts","../../../../../node_modules/@fluidframework/common-definitions/dist/index.d.ts","../../../../../node_modules/@types/node/assert.d.ts","../../../../../node_modules/@types/node/globals.d.ts","../../../../../node_modules/@types/node/async_hooks.d.ts","../../../../../node_modules/@types/node/buffer.d.ts","../../../../../node_modules/@types/events/index.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/dns.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.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/repl.d.ts","../../../../../node_modules/@types/node/stream.d.ts","../../../../../node_modules/@types/node/string_decoder.d.ts","../../../../../node_modules/@types/node/timers.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/querystring/decode.d.ts","../../../../../node_modules/querystring/encode.d.ts","../../../../../node_modules/querystring/index.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/globals.global.d.ts","../../../../../node_modules/@types/node/index.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/users.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/clients.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/config.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/consensus.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/date.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/protocol.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/scopes.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/tokens.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/sockets.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/storage.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/summary.d.ts","../../../../../node_modules/@fluidframework/protocol-definitions/dist/index.d.ts","../../../../common/container-definitions/dist/audience.d.ts","../../../../common/container-definitions/dist/fluidPackage.d.ts","../../../../common/container-definitions/dist/browserPackage.d.ts","../../../../common/container-definitions/dist/deltas.d.ts","../../../../common/container-definitions/dist/error.d.ts","../../../../common/driver-definitions/dist/urlResolver.d.ts","../../../../common/driver-definitions/dist/driverError.d.ts","../../../../common/driver-definitions/dist/storage.d.ts","../../../../common/driver-definitions/dist/index.d.ts","../../../../common/container-definitions/dist/runtime.d.ts","../../../../common/container-definitions/dist/fluidModule.d.ts","../../../../common/container-definitions/dist/loader.d.ts","../../../../common/container-definitions/dist/tokenProvider.d.ts","../../../../common/container-definitions/dist/index.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/assert.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/bufferNode.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/hashFileNode.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/performanceIsomorphic.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/performanceNode.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/indexNode.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/base64Encoding.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/disposal.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/typedEventEmitter.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/eventForwarder.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/heap.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/logger.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/promiseCache.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/promises.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/rangeTracker.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/rateLimiter.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/safeParser.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/timer.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/trace.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/unreachable.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/lazy.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/delay.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/bufferShared.d.ts","../../../../../node_modules/@fluidframework/common-utils/dist/index.d.ts","../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts","../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts","../../../../runtime/runtime-definitions/dist/garbageCollection.d.ts","../../../../runtime/runtime-definitions/dist/protocol.d.ts","../../../../runtime/runtime-definitions/dist/summary.d.ts","../../../../runtime/runtime-definitions/dist/dataStoreContext.d.ts","../../../../runtime/runtime-definitions/dist/index.d.ts","../../../../runtime/datastore-definitions/dist/storage.d.ts","../../../../runtime/datastore-definitions/dist/dataStoreRuntime.d.ts","../../../../runtime/datastore-definitions/dist/channel.d.ts","../../../../runtime/datastore-definitions/dist/jsonable.d.ts","../../../../runtime/datastore-definitions/dist/serializable.d.ts","../../../../runtime/datastore-definitions/dist/index.d.ts","../../../../runtime/datastore/dist/dataStoreRuntime.d.ts","../../../../runtime/datastore/dist/index.d.ts","../types.d.ts","../IFluidDependencySynthesizer.d.ts","../dependencyContainer.d.ts","../index.d.ts","../../src/test/dependencyContainer.spec.ts","../../../../../node_modules/@fluidframework/synthesize-previous/dist/types.d.ts","../../../../../node_modules/@fluidframework/synthesize-previous/dist/IFluidDependencySynthesizer.d.ts","../../../../../node_modules/@fluidframework/synthesize-previous/dist/dependencyContainer.d.ts","../../../../../node_modules/@fluidframework/synthesize-previous/dist/index.d.ts","../../src/test/types/validateSynthesizePrevious.generated.ts","../../../../../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"c0c5dc0360cc745a411de41c30c8a8fe7a145cbc25f1a34e02476b73ecb2f4c5","766d8c595f94c9fe9dbb779b60d7a4d6d7a6526ef22090ccedbc658c2d8c77e0","9854b932fac96f1fbec20a3457567aeb9c9d5605e1cb6075089d9e31e91207f0","5b847af60891d3784a181de27c00d9208987d01acfe004541ff1c26495c71b93","8692a1ed3a979fa000b62e01f8d33cf940e030b7af50945176428f9cdd4dca80","235c362ebe5951d11275e27dda418f8ccb0eeca9e2f9767919d021528ca7f822","bf7ca48d1976904f17ee160aaa96ff34044209d0da9cc765ebf2b83e009b4e9f","470866668f63e372951091f09b059c8c3e93d2683db5ce81ae3aba6babb85b2f","739e7da9825029dead52b83a8e58525f8ecc5881ed25eb09744c9cad3ad90233","471510298742cdd3a5613a7eb84efd472abc2ef8bae510a767ac0bff05d3ae9d","d2de12ae0f86d9dae881b4c1534063fce79b19035c1b507954b11b062ece6dc7","910acae3ceaba3aba35fb52656476aca547b1585f4a10cc272acb50bb08692a6","4c2c4f53e8eedd970f8afa369d7371544fb6231bf95e659f8602e09abe74d5a5",{"version":"dc5f6951bbf5b544349cbdef895c08dee6929818abd27d7d53c38cf1209091b3","affectsGlobalScope":true},"64e2803203b14d7f104f570f2152fde13abb6edc17b2ddb33d81ad86cf43d494","2c8d9e3331aec52d9a6d4040352c00282c3abaf48053ed0944528a4845c9caa3","400db42c3a46984118bff14260d60cec580057dc1ab4c2d7310beb643e4f5935","9b2a8f604e7c0482a9061755f00b287cc99bd8718dc82d8207dd74c599b6dc43","d0fc76a91c828fbe3f0be5d683273634b7b101068333ceed975a8a9ac464137b",{"version":"1a048ff164b8d9609f5de3139d4e37f6e8a82af82087ac414b9208f52ef8aac7","affectsGlobalScope":true},"3111079f3cb5f2b9c812ca3f46161562bce5bfb355e915f46ed46c41714dc1c3","64576aba4ff801004122056ccd049f0597aa471dcfd7670a6a0b877ee8dd97c0","b32b6b16cb0bda68199582ad6f22242d07ee75fac9b1f28a98cd838afc5eea45","4441ee4119824bfaebc49308559edd7545978f9cb41a40f115074e1031dde75f",{"version":"60693a88462d0e97900123b5bf7c73e146ce0cc94da46a61fe6775b430d2ff05","affectsGlobalScope":true},{"version":"588c69eda58b9202676ec7ca11a72c3762819b46a0ed72462c769846153c447c","affectsGlobalScope":true},"cc829932ffaf5c49092f878bec18af1fa5d8591b45a45e2b7f757f793cb3b4ed","47db10fdc4e76c4f4598cf7c91ba6bfde6cf6d8082c51860fe751643bf359739","05d7d95e24bc2897bf20ce041c3dc3cca814e07148a93999145b1a0ad491094c","d1080e49778c0b2ce656042ebfa43f89dffb96ac00f86a34762188a21857ffd4","0ce99c641ea20b0c0c09d093fc28f18f5ab31dc80033707a1ac3154399de2559","f0c33a0b325d3499cc9aded7d32886f998c9a27b465097c6cc136944d0aafdaa","44e42ed6ec9c4451ebe89524e80ac8564e9dd0988c56e6c58f393c810730595d","03c91e8833eef54dc44db99d7deb469b5e3cec82f23054b4286a2380e0e00996","1606ea615c0a5ea9f5c1376a33e34c0e1112e8dee31a5b3b8a74ce781893aa6f","9fef9de633d01cb7f01f68195626a890ededd25cf96a1e785617d08c8668230d","4455c78d226d061b1203c7614c6c6eb5f4f9db5f00d44ff47d0112de8766fbc4",{"version":"bf89ceb26132596b859cd4d129ce3f447134b444dec87966ba65cd7e8e9e0cb0","affectsGlobalScope":true},"4465a636f5f6e9665a90e30691862c9e0a3ac2edc0e66296704f10865e924f2a","9af781f03d44f5635ed7844be0ce370d9d595d4b4ec67cad88f0fac03255257e","f9fd4c3ef6de27fa0e256f4e75b61711c4be05a3399f7714621d3edc832e36b0","e49290b7a927995c0d7e6b2b9c8296284b68a9036d9966531de65185269258d7","a11d4ba43bf0825d7285d54dec6cb951685cd458a4de3c5c1800f7cbf7799009","874ca809b79276460011480a2829f4c8d4db29416dd411f71efbf8f497f0ac09","82e1723b20fa0b15a7da0d1a03fec88348f82f640f7a2f308d6c0fac780cfc7c","e0202c3e09775b86b902f21623e55896cea98750efbdf0691ca7473af06fe551","23a28f834a078986bbf58f4e3705956983ff81c3c2493f3db3e5f0e8a9507779","4febdf7f3ec92706c58e0b4e8159cd6de718284ef384260b07c9641c13fc70ce","ad7e61eca7f2f8bf47e72695f9f6663b75e41d87ef49abdb17c0cb843862f8aa","ecba2e44af95b0599c269a92628cec22e752868bce37396740deb51a5c547a26","46a9fb41a8f3bc7539eeebc15a6e04b9e55d7537a081615ad3614220d34c3e0f","a2666b43d889b4882ac6ede1c48128bac351886854e94f832b20d3730e5062c5","7335933d9f30dcfd2c4b6080a8b78e81912a7fcefb1dafccb67ca4cb4b3ac23d","a6bfe9de9adef749010c118104b071d14943802ff0614732b47ce4f1c3e383cd","4c3d0e10396646db4a1e917fb852077ee77ae62e512913bef9cccc2bb0f8bd0e","3b220849d58140dcc6718f5b52dcd29fdb79c45bc28f561cbd29eb1cac6cce13","0ee22fce41f7417a24c808d266e91b850629113c104713a35854393d55994beb","22d1b1d965baba05766613e2e6c753bb005d4386c448cafd72c309ba689e8c24",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"2a7d39ea70e483d3ebcde44031b6552940f295349bee8d486e8bdf6380162302","7da49d6be542ee6f7f8810a19ffe351a93562ea99ac68a93d0a701f344389b05","c21365787186bd17f0ed204809bdfd0b50130494593fd1c0657b5b1a2d87afcc","3e429571f8c1d2355f0c105b706308a24d39b8949ca5868173cf0f75f8e40f49","0f75868c59fb4a2a90c582e505f1430589b7b1e104717bb8e815b20be65d6aa2","7c3f74377e2f69f3af629df55db463ac4925387856002def14fe1315b8d510f3","9e7837caf43767e2f545a9eecf95e7dbf35bc8f2bb18ca862e7a176613016571","66489d246ba00e82db76453f7be5be7cd675c142889b72a1ff55ca0217eb1d79","57c96478eedfdd3475a42d496d9657d8630923f67f948ecbb778c6b648816fb8","3688605c5b12fec84e5df13f5c929eb7587ec78ff0d24c66b5aa5d9efb0e3bcc","d630dd5a555d7beaf46fb9c7eab8189bb9f2fe92162a51d7a9c4093779df052c","1e1d138e69649922c821f854eb00ba9810589aebef9b4750ca0da9b245aa5854","aed2635e02adec91ce142ee599b4fdef2f1be7dcf453f3257243bad8017dfca6","7fac3714b8020ef54b5a93bc6c733b238d731ad6e0208f75cc00b3bb835935b0","58387e8de574c692d78eaa4dfc42889e8e454f616eedff84419ab6726f752f88","b7cf610e8c794ad23f19212c6038eb3b08eda1d55ed49eba4fc1349e3cf7196e","79ae25859e3e272b7ceaf65092296f5e985b1ef0c021ef1615a2356dd3a9fa0e","072d23340169d69d5f6900a984c5789a9ebb8cf2d349dbcd7bd3acefbdb4d3d7","b7de5d211bb5573ee43bd2375c4e13f70ca23aa2eedb74dc2cc96cb7490518fd","bdd1a4eb5add7f7fa8d887b8353c869a7772f523faa39d4ac95b81584c61d668","91d0fc7b66f1288e1b7a95795f6948998b560712cc300533f7011ab3af818d39","0a0e3819381a68aa4688d493c5bb5d45f08c2662bd13367e7a5aeae88409a4f3","d079d08669b17121c798a2c6e3f250efd6ecf8bddc3015eadff0411f356cc09e","8023ac345236d4f16563d8dee36b7db6a3b58d2d478c2de674cbd70ce0249737","9bd82c5098afd99aea4f4f1f9a0b59724e89e3d416eed86ada3ef68d7735cebb","f9d3eab09c70e0814795277ab9c3f22625cd9dd09c3ab486f6e63974d6795a3d","9deda341814a3807d9217e4ffea19b10d9fb899864e2cd410b8f0a32f2c2174f","e1818e0fda127bd741e88a7e542cf693606de95ce3fb3a3fb91146e5658cb67d","5e95a5824c77f06f492ec61f3abb3898ff8d56d3130bbacc745853e49d28cd1d","3ad0fff4a0d23d591ab29a6efc91d224600285fe23281e3d0b5c643aa1b4bee5","38af778857e4f07da8ddf6d1dcda7bf4b501455252a2c98006f7c3344fd7f526","a10937d6dfa554517552385abaedbd1bc6fdcb9701aee152e102aac5a2c82746","a61f941a5856cf50ccfdf50137c6d295ed6704b12fb91372dd959809db54b319","37dd666433e9359830531617aa7f0c69de6ad40e2b96637620322978a5724505","be19f779f44110e9967b2b159640113936a3b28804a988048ac90ccde21e58c3","ea220a6083461917eeb9ed97acbbcf40be1d901d100cfa2f99f64be481449415","086590542697953a90746a49e0b45e2ac0b79af34a005159f06cb70a977742d1","3492be117d889e6ed80e99603f4fc105b533ee66853587e8a6affdb335cda68a","7bdadb8403a58ae96b264bd47fab0dd5fa989a943bd15ee779688a2aaaad1766","145a2f2032abdf710a7da87db76147469c9187f8326ff36013bb310bf7983280","3e83be6adc13f0ba2b0bb5ef2fef29516877660f158ed6fdd777de2c27f7bbad","27a8c3b5f6ffc0145fa9ce6d3abe875def31c5d06b171811948457a030959a6f","bf888e7b557ad080706efcd90f51fa17aae3e218974a7fd3d0592cc1ba878206","827bbb801acea177785b6be117e03778ccc507d66a02649468cb2f4f29487bb9","f7594c36bb7e4a4936df3ba1e078f39009a0f3a39bc76899a075d1c690752002","df5f5ef444206c89f7f28b04ce9f4e0592cdeb7b3fb0534490487edb1654c4f4","504625fd2aff6b50298999996a66c6da9ffa84f8de390df20f4c53e6905c0ff3","da77abbc2aa8976ccdff0e03552ca451291855ea252ff13681f9a799c0e55104","fabf53b6038fb84d618fe396f864979f8f6b26b18bd25d9cb01f153b07309047","83f8377dca0b114c1517321df5d9870b2459c49289aec0bd9c23fe5c01244f2b","089b5af01fb5c2bd2abea8f54004f09ea11cb1615dd2d7b31fe96e61afd88f76","bcb2b5ec9bb438a4a2ec0b66e7c623ed32784dedc3ef49b6ef48c700085dd803","eff90c8fb7521204ef889ea0684748a7ff8a1b62a7e0cc23ace822a96d1bff44","05052617c59958a57d11a6515a865c39893f645b5577452f0212c7c77a71c621","77ba40eacbb53542ece9394583ad424c8ee677543b0f85948d2387da8483afc9","e12405a206f85209fc1bb433148aa114eb97fc140e567f63f0e2bf141311f544","0345f70f00cc93f0605376ef9f5c6fc5024955cc0df1fb2b1d7ff9613e52c1a1","6fa486fe0704647a54b02b65af64f8e5db5b7cfb5cfcaf107a0725adab66c41a","f2f75931453414c93a462e16d1c8705792402836c8337616de10260a7740606e","a2b82a64a833ef41d32312d831b5de044309448b026c8be6a1d178ca3bb003c7","40827adcc9d689a9de0fee0f1c9d69876c8842ff4028fc32a1a9367a6605ffe6","829c10c3b482cb6b308f1b4c38a650f08e81cad6eb92218d0ba269b2f525c412","4875b165a1ebddf149079cce60a3146443e6f6798e094c2dc5f3c109e2ecf14b","abbf1765db6f993626afd099d576225f1aa90b2bf6b01553a756ce2049c3394f","61f3b2bb0dbfedd63632d02d4b2fa8b248da5daaf03d4008f60c332a614db2e4","ad9d4046f9283edf3f803118d70afd0736bd4b0bd0d3d5e4e06d8a9df121cfc8","0019f06f88e66fa5371d8eebb0e81dc749e54a8f65f8ec9b59760c77e759e46e","a15809b8be1e3dd5a4f89df2886c9609eff56afa7b5e262adae346dc81d80a19","f00155eae1bf0b4edea1230126aff57c010a14f8542291a2848dd3846db4cc5d","eb65d522c01da9d259e18e93d456b0a1ff37a44a27d07b864ab877e005044f37","1f88664bb73956faed0b07795f6b2e380e7ed9a0ddd1abfbb3903c6ff5abca23","0019f06f88e66fa5371d8eebb0e81dc749e54a8f65f8ec9b59760c77e759e46e","a15809b8be1e3dd5a4f89df2886c9609eff56afa7b5e262adae346dc81d80a19","f00155eae1bf0b4edea1230126aff57c010a14f8542291a2848dd3846db4cc5d","eb65d522c01da9d259e18e93d456b0a1ff37a44a27d07b864ab877e005044f37","9437b0e2af0c8f755ccd8f988ed65b9b0ef43498d7c384d5284ea3f01da9f011",{"version":"3f6d6465811321abc30a1e5f667feed63e5b3917b3d6c8d6645daf96c75f97ba","affectsGlobalScope":true}],"options":{"declaration":false,"declarationMap":false,"esModuleInterop":true,"inlineSources":true,"module":1,"noImplicitAny":false,"noUnusedLocals":true,"outDir":"./","rootDir":"../../src/test","sourceMap":true,"strict":true,"target":4},"fileIdsList":[[38,39,40],[41],[41,55,124],[117],[116,119,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138],[117,118,120],[119],[41,55],[90],[41,91],[90,91,92,93,94,95,96,97,98,99,100],[91,92,95,97],[94],[160],[160,161],[160,161,162],[163],[42],[44],[45],[47,55,56,63,72],[47,48,55,63],[49,82],[50,51,56,64],[51,72],[52,53,55,63],[53],[54,55],[55],[55,56,57,72,81],[56,57],[58,63,72,81],[55,56,58,59,63,72,75,81],[58,60,72,75,81],[42,43,44,45,47,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,81,82,83,84,85,86,87,88],[55,61],[62,81],[53,55,63,72],[64],[65],[44,66],[67,77],[68],[69],[55,70],[70,71,82,84],[55,72],[73],[74],[63,75],[76],[63,77],[69,81],[82],[72,83],[84],[85],[55,57,72,81,84,86],[72,87],[78,79],[55,89,101],[103],[41,101],[36,103,107,111],[102,103,104,105,106,111,112,113,114],[36,41,101,102,103,105,106,107,110,111,112],[36,41,101,102,103,105,106,107,110,113],[33],[31,32,34],[30,31,32,33,34,35],[107],[107,108,109],[41,101,107,108],[36,107],[155],[155,156],[155,156,157],[158],[36,42,107,154,155,156,158],[158,163],[36,101,107,146,147,148],[36,41,101,107,115,146,152],[147,148,149,150,151],[36,107,150],[36,41,101,107,115,139,146,152],[37,153],[36,41,101,107,110,115,140,141,142,143,144],[145],[140],[140,141,142,143,144,145],[101],[41,101,142]],"referencedMap":[[41,1],[123,2],[125,3],[118,4],[139,5],[121,6],[127,2],[120,7],[124,8],[91,9],[93,10],[101,11],[98,12],[99,13],[97,9],[161,14],[162,15],[163,16],[160,17],[42,18],[44,19],[45,20],[47,21],[48,22],[49,23],[50,24],[51,25],[52,26],[53,27],[54,28],[55,29],[56,30],[57,31],[58,32],[59,33],[60,34],[89,35],[61,36],[62,37],[63,38],[64,39],[65,40],[66,41],[67,42],[68,43],[69,44],[70,45],[71,46],[72,47],[73,48],[74,49],[75,50],[76,51],[77,52],[81,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[80,60],[102,61],[104,62],[105,63],[106,2],[112,64],[115,65],[113,66],[111,67],[34,68],[33,69],[36,70],[108,71],[110,72],[109,73],[107,74],[156,75],[157,76],[158,77],[155,78],[159,79],[164,80],[149,81],[148,82],[152,83],[151,84],[153,85],[37,74],[154,86],[145,87],[140,88],[141,89],[146,90],[143,91],[144,92]],"exportedModulesMap":[[41,1],[123,2],[125,3],[118,4],[139,5],[121,6],[127,2],[120,7],[124,8],[91,9],[93,10],[101,11],[98,12],[99,13],[97,9],[161,14],[162,15],[163,16],[160,17],[42,18],[44,19],[45,20],[47,21],[48,22],[49,23],[50,24],[51,25],[52,26],[53,27],[54,28],[55,29],[56,30],[57,31],[58,32],[59,33],[60,34],[89,35],[61,36],[62,37],[63,38],[64,39],[65,40],[66,41],[67,42],[68,43],[69,44],[70,45],[71,46],[72,47],[73,48],[74,49],[75,50],[76,51],[77,52],[81,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[80,60],[102,61],[104,62],[105,63],[106,2],[112,64],[115,65],[113,66],[111,67],[34,68],[33,69],[36,70],[108,71],[110,72],[109,73],[107,74],[156,75],[157,76],[158,77],[155,78],[159,79],[164,80],[149,81],[148,82],[152,83],[151,84],[153,85],[37,74],[154,86],[145,87],[140,88],[141,89],[146,90],[143,91],[144,92]],"semanticDiagnosticsPerFile":[38,39,41,40,116,122,117,138,137,123,125,118,126,139,121,136,127,119,120,128,129,130,131,132,133,134,124,135,91,92,93,94,101,95,96,98,99,100,97,90,161,162,163,160,46,165,42,44,45,47,48,49,50,51,52,53,54,55,56,57,43,88,58,59,60,89,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,81,82,83,84,85,86,87,78,79,80,6,7,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,1,29,102,104,105,106,112,103,115,113,111,114,34,30,35,31,33,36,32,108,110,109,107,156,157,158,155,159,164,149,148,152,150,151,147,153,37,154,145,140,141,142,146,143,144]},"version":"4.5.5"}
1
+ {"program":{"fileNames":["../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es5.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.dom.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../common/core-interfaces/dist/fluidRouter.d.ts","../../../../common/core-interfaces/dist/provider.d.ts","../../../../common/core-interfaces/dist/handles.d.ts","../../../../common/core-interfaces/dist/fluidLoadable.d.ts","../../../../common/core-interfaces/dist/fluidPackage.d.ts","../../../../common/core-interfaces/dist/index.d.ts","../../../../runtime/datastore/dist/fluidHandle.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-definitions@0.20.1/node_modules/@fluidframework/common-definitions/dist/disposable.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-definitions@0.20.1/node_modules/@fluidframework/common-definitions/dist/events.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-definitions@0.20.1/node_modules/@fluidframework/common-definitions/dist/logger.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-definitions@0.20.1/node_modules/@fluidframework/common-definitions/dist/index.d.ts","../../../../../node_modules/.pnpm/@types+events@3.0.0/node_modules/@types/events/index.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/users.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/clients.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/config.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/consensus.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/date.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/protocol.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/scopes.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/tokens.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/sockets.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/storage.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/summary.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.1.0/node_modules/@fluidframework/protocol-definitions/dist/index.d.ts","../../../../common/container-definitions/dist/audience.d.ts","../../../../common/container-definitions/dist/fluidPackage.d.ts","../../../../common/container-definitions/dist/browserPackage.d.ts","../../../../common/container-definitions/dist/deltas.d.ts","../../../../common/container-definitions/dist/error.d.ts","../../../../common/driver-definitions/dist/urlResolver.d.ts","../../../../common/driver-definitions/dist/driverError.d.ts","../../../../common/driver-definitions/dist/storage.d.ts","../../../../common/driver-definitions/dist/index.d.ts","../../../../common/container-definitions/dist/runtime.d.ts","../../../../common/container-definitions/dist/fluidModule.d.ts","../../../../common/container-definitions/dist/loader.d.ts","../../../../common/container-definitions/dist/tokenProvider.d.ts","../../../../common/container-definitions/dist/index.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/assert.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/bufferNode.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/hashFileNode.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/performanceIsomorphic.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/performanceNode.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/indexNode.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/base64Encoding.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/disposal.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/typedEventEmitter.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/eventForwarder.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/heap.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/logger.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/promiseCache.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/promises.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/rangeTracker.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/rateLimiter.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/safeParser.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/timer.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/trace.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/unreachable.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/lazy.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/delay.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/bufferShared.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.0.0/node_modules/@fluidframework/common-utils/dist/index.d.ts","../../../../runtime/runtime-definitions/dist/attribution.d.ts","../../../../runtime/runtime-definitions/dist/dataStoreFactory.d.ts","../../../../runtime/runtime-definitions/dist/dataStoreRegistry.d.ts","../../../../runtime/runtime-definitions/dist/garbageCollection.d.ts","../../../../runtime/runtime-definitions/dist/protocol.d.ts","../../../../runtime/runtime-definitions/dist/summary.d.ts","../../../../runtime/runtime-definitions/dist/dataStoreContext.d.ts","../../../../runtime/runtime-definitions/dist/index.d.ts","../../../../runtime/datastore-definitions/dist/storage.d.ts","../../../../runtime/datastore-definitions/dist/dataStoreRuntime.d.ts","../../../../runtime/datastore-definitions/dist/channel.d.ts","../../../../runtime/datastore-definitions/dist/jsonable.d.ts","../../../../runtime/datastore-definitions/dist/serializable.d.ts","../../../../runtime/datastore-definitions/dist/index.d.ts","../../../../runtime/datastore/dist/dataStoreRuntime.d.ts","../../../../runtime/datastore/dist/index.d.ts","../types.d.ts","../IFluidDependencySynthesizer.d.ts","../dependencyContainer.d.ts","../index.d.ts","../../src/test/dependencyContainer.spec.ts","../../../../../node_modules/.pnpm/@fluidframework+synthesize@2.0.0-internal.3.0.0/node_modules/@fluidframework/synthesize/dist/types.d.ts","../../../../../node_modules/.pnpm/@fluidframework+synthesize@2.0.0-internal.3.0.0/node_modules/@fluidframework/synthesize/dist/IFluidDependencySynthesizer.d.ts","../../../../../node_modules/.pnpm/@fluidframework+synthesize@2.0.0-internal.3.0.0/node_modules/@fluidframework/synthesize/dist/dependencyContainer.d.ts","../../../../../node_modules/.pnpm/@fluidframework+synthesize@2.0.0-internal.3.0.0/node_modules/@fluidframework/synthesize/dist/index.d.ts","../../src/test/types/validateSynthesizePrevious.generated.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/assert.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/globals.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/buffer.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/child_process.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/cluster.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/console.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/constants.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/crypto.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/dgram.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/dns.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/domain.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/events.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/fs.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/http.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/http2.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/https.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/inspector.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/module.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/net.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/os.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/path.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/process.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/punycode.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/querystring.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/readline.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/repl.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/stream.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/timers.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/tls.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/trace_events.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/tty.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/url.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/util.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/v8.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/vm.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/wasi.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/zlib.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/globals.global.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.36/node_modules/@types/node/ts4.8/index.d.ts","../../../../../node_modules/.pnpm/@types+mocha@9.1.1/node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"766d8c595f94c9fe9dbb779b60d7a4d6d7a6526ef22090ccedbc658c2d8c77e0","9854b932fac96f1fbec20a3457567aeb9c9d5605e1cb6075089d9e31e91207f0","5b847af60891d3784a181de27c00d9208987d01acfe004541ff1c26495c71b93","8692a1ed3a979fa000b62e01f8d33cf940e030b7af50945176428f9cdd4dca80","4426d86955701c6eb4c29141a9f95bb38506be1430fca5c468367bd9f605b13c","85aae8290e234b6331257b6154eacce06827b9f65356c484e378cd52c1ad4066","470866668f63e372951091f09b059c8c3e93d2683db5ce81ae3aba6babb85b2f","739e7da9825029dead52b83a8e58525f8ecc5881ed25eb09744c9cad3ad90233","471510298742cdd3a5613a7eb84efd472abc2ef8bae510a767ac0bff05d3ae9d","d2de12ae0f86d9dae881b4c1534063fce79b19035c1b507954b11b062ece6dc7","910acae3ceaba3aba35fb52656476aca547b1585f4a10cc272acb50bb08692a6","400db42c3a46984118bff14260d60cec580057dc1ab4c2d7310beb643e4f5935","7da49d6be542ee6f7f8810a19ffe351a93562ea99ac68a93d0a701f344389b05","c21365787186bd17f0ed204809bdfd0b50130494593fd1c0657b5b1a2d87afcc","3e429571f8c1d2355f0c105b706308a24d39b8949ca5868173cf0f75f8e40f49","0f75868c59fb4a2a90c582e505f1430589b7b1e104717bb8e815b20be65d6aa2","7c3f74377e2f69f3af629df55db463ac4925387856002def14fe1315b8d510f3","9e7837caf43767e2f545a9eecf95e7dbf35bc8f2bb18ca862e7a176613016571","66489d246ba00e82db76453f7be5be7cd675c142889b72a1ff55ca0217eb1d79","57c96478eedfdd3475a42d496d9657d8630923f67f948ecbb778c6b648816fb8","3688605c5b12fec84e5df13f5c929eb7587ec78ff0d24c66b5aa5d9efb0e3bcc","d630dd5a555d7beaf46fb9c7eab8189bb9f2fe92162a51d7a9c4093779df052c","1e1d138e69649922c821f854eb00ba9810589aebef9b4750ca0da9b245aa5854","aed2635e02adec91ce142ee599b4fdef2f1be7dcf453f3257243bad8017dfca6","62cccb71cc5f41ae03c8167140da03f442a7cd816a0a987136419fbb87d89227","58387e8de574c692d78eaa4dfc42889e8e454f616eedff84419ab6726f752f88","b7cf610e8c794ad23f19212c6038eb3b08eda1d55ed49eba4fc1349e3cf7196e","b4b76de75dc44c32472bdfbdb1fb233a278b3a616c87274d8134cf940415a0b7","072d23340169d69d5f6900a984c5789a9ebb8cf2d349dbcd7bd3acefbdb4d3d7","e6b5d4b296fda4e1ea7fafab12d4f1c8c6b994865cff1f5537c3fc5989be82b3","83252a7bb14ddb994cb132956d6df94266b31ab0d36024e4a8489525d5431f52","1db88ac99f9e511f994439e9b2699f130f250a0ee7f5b5232f011a6069b6a3e7","0a0e3819381a68aa4688d493c5bb5d45f08c2662bd13367e7a5aeae88409a4f3","ced661bd37a65b3f6980b72645576969de731d7b214be41a4d9a8b8085f860df","8023ac345236d4f16563d8dee36b7db6a3b58d2d478c2de674cbd70ce0249737","f0680df8c367a6609de852664a2e2a516972c14686a852eb219c7a6ed5faebfb","f9d3eab09c70e0814795277ab9c3f22625cd9dd09c3ab486f6e63974d6795a3d","1263f9e48e0974c72663b9aab8dd7bc06deb5927f4547559d7a5be2a205312dd","e1818e0fda127bd741e88a7e542cf693606de95ce3fb3a3fb91146e5658cb67d","5e95a5824c77f06f492ec61f3abb3898ff8d56d3130bbacc745853e49d28cd1d","3ad0fff4a0d23d591ab29a6efc91d224600285fe23281e3d0b5c643aa1b4bee5","38af778857e4f07da8ddf6d1dcda7bf4b501455252a2c98006f7c3344fd7f526","a10937d6dfa554517552385abaedbd1bc6fdcb9701aee152e102aac5a2c82746","a61f941a5856cf50ccfdf50137c6d295ed6704b12fb91372dd959809db54b319","37dd666433e9359830531617aa7f0c69de6ad40e2b96637620322978a5724505","be19f779f44110e9967b2b159640113936a3b28804a988048ac90ccde21e58c3","ea220a6083461917eeb9ed97acbbcf40be1d901d100cfa2f99f64be481449415","086590542697953a90746a49e0b45e2ac0b79af34a005159f06cb70a977742d1","3492be117d889e6ed80e99603f4fc105b533ee66853587e8a6affdb335cda68a","7bdadb8403a58ae96b264bd47fab0dd5fa989a943bd15ee779688a2aaaad1766","145a2f2032abdf710a7da87db76147469c9187f8326ff36013bb310bf7983280","3e83be6adc13f0ba2b0bb5ef2fef29516877660f158ed6fdd777de2c27f7bbad","27a8c3b5f6ffc0145fa9ce6d3abe875def31c5d06b171811948457a030959a6f","bf888e7b557ad080706efcd90f51fa17aae3e218974a7fd3d0592cc1ba878206","827bbb801acea177785b6be117e03778ccc507d66a02649468cb2f4f29487bb9","f7594c36bb7e4a4936df3ba1e078f39009a0f3a39bc76899a075d1c690752002","df5f5ef444206c89f7f28b04ce9f4e0592cdeb7b3fb0534490487edb1654c4f4","504625fd2aff6b50298999996a66c6da9ffa84f8de390df20f4c53e6905c0ff3","da77abbc2aa8976ccdff0e03552ca451291855ea252ff13681f9a799c0e55104","fabf53b6038fb84d618fe396f864979f8f6b26b18bd25d9cb01f153b07309047","83f8377dca0b114c1517321df5d9870b2459c49289aec0bd9c23fe5c01244f2b","089b5af01fb5c2bd2abea8f54004f09ea11cb1615dd2d7b31fe96e61afd88f76","3f0f1dd07a93ee64076a79d9d4dadfbd239bd14f788c30fa3e2a738176c64b14","bcb2b5ec9bb438a4a2ec0b66e7c623ed32784dedc3ef49b6ef48c700085dd803","679b5b0c89d9f3dc3b64bbb73ac7172b8ca05b9e26ef502f52a71c3411c84723","9f60552d7e485c84c18e4b6456500b291e91467fb998efd27ff65b9a5443b6c1","159e48a2b2e5e45a9902696f1f0871cb883db2b33b34558a31848432abd53cea","2b1dceda3da68fccd9748dcfd8bb250fb7662a30814639cae63836e14d2ba666","490a0c77a9327df1a907930846187d2a1749bb89d8621066215dbe87ba3ab5e7","7a5dbf9e4c204b4dcae5d75d3977a8b2381739d0ee6e852e1822ae4a00cb744e","f2f75931453414c93a462e16d1c8705792402836c8337616de10260a7740606e","02761cbe7f2011ef30367eacdd672aae5a1d8e9c2ec4f55db8ccefa1a3cf2cc1","40827adcc9d689a9de0fee0f1c9d69876c8842ff4028fc32a1a9367a6605ffe6","829c10c3b482cb6b308f1b4c38a650f08e81cad6eb92218d0ba269b2f525c412","4875b165a1ebddf149079cce60a3146443e6f6798e094c2dc5f3c109e2ecf14b","89113d949c98774f47f96209bd076d6b53085b1b908fb86f694633873ddb8ca1","f26757acf56f9ba8ce2ff556c249b3559c14b427e81e7648f7c75f941d00ee6a","ad9d4046f9283edf3f803118d70afd0736bd4b0bd0d3d5e4e06d8a9df121cfc8","0019f06f88e66fa5371d8eebb0e81dc749e54a8f65f8ec9b59760c77e759e46e","b39f8ed8e78b9d2f7b2bf20ddb9a608a505ba770870e1104eef8e64e81d60c86","f00155eae1bf0b4edea1230126aff57c010a14f8542291a2848dd3846db4cc5d","2508a122a9fbd08c5b7351d50e055793e95aecf2abdff51de831959f54e3b100","38762efd41e9d74f16683df6090fa0e87a8268ab03035cf94b9d24f19387d262","0019f06f88e66fa5371d8eebb0e81dc749e54a8f65f8ec9b59760c77e759e46e","b39f8ed8e78b9d2f7b2bf20ddb9a608a505ba770870e1104eef8e64e81d60c86","f00155eae1bf0b4edea1230126aff57c010a14f8542291a2848dd3846db4cc5d","eb65d522c01da9d259e18e93d456b0a1ff37a44a27d07b864ab877e005044f37","9437b0e2af0c8f755ccd8f988ed65b9b0ef43498d7c384d5284ea3f01da9f011","4c2c4f53e8eedd970f8afa369d7371544fb6231bf95e659f8602e09abe74d5a5",{"version":"32ddf2b046fa7269050f64a87f1f3d2db10b92ad6302460681915af1207b1222","affectsGlobalScope":true},"c2b5085f47e41d6940bbc5b0d3bd7cc0037c752efb18aecd243c9cf83ad0c0b7","3143a5add0467b83150961ecd33773b561a1207aec727002aa1d70333068eb1b","9deb3a5eaf187df1428f0fee83c8c51eedb74f6da3442410bad9688e42a7e2b5","d0fc76a91c828fbe3f0be5d683273634b7b101068333ceed975a8a9ac464137b",{"version":"1a048ff164b8d9609f5de3139d4e37f6e8a82af82087ac414b9208f52ef8aac7","affectsGlobalScope":true},"3111079f3cb5f2b9c812ca3f46161562bce5bfb355e915f46ed46c41714dc1c3","db86f82fac051ae344b47e8fe7ac7990174b41db79b2b220a49dc5a47c71a9b5","b32b6b16cb0bda68199582ad6f22242d07ee75fac9b1f28a98cd838afc5eea45","4441ee4119824bfaebc49308559edd7545978f9cb41a40f115074e1031dde75f",{"version":"60693a88462d0e97900123b5bf7c73e146ce0cc94da46a61fe6775b430d2ff05","affectsGlobalScope":true},{"version":"588c69eda58b9202676ec7ca11a72c3762819b46a0ed72462c769846153c447c","affectsGlobalScope":true},"ae064ed4f855716b7ff348639ddcd6a6d354a72fae82f506608a7dc9266aa24c","92f019c55b21c939616f6a48f678e714ac7b109444cbbf23ad69310ce66ecbdc","cf0a69c71aedf2f8fe45925abd554fd3dc7301ce66d6ab7521fb8c3471c24dd8","56e6722c6013609b3e5e6ed4a8a7e01f41da6c5e3d6f0ecff3d09ef7a81414cf","139fd681eff7771a38d0c025d13c7a11c5474f6aab61e01c41511d71496df173","f614c3f61e46ccc2cb58702d5a158338ea57ee09099fde5db4cfc63ed0ce4d74","44e42ed6ec9c4451ebe89524e80ac8564e9dd0988c56e6c58f393c810730595d","d79fda68cbfb361c4ee9cd9ea169babb65887534d64017726cd01f54783d20a5","155865f5f76db0996cd5e20cc5760613ea170ee5ad594c1f3d76fcaa05382161","e92852d673c836fc64e10c38640abcd67c463456e5df55723ac699b8e6ab3a8a","4455c78d226d061b1203c7614c6c6eb5f4f9db5f00d44ff47d0112de8766fbc4",{"version":"ec369bb9d97c4dc09dd2a4093b7ca3ba69ad284831fccac8a1977785e9e38ce5","affectsGlobalScope":true},"4465a636f5f6e9665a90e30691862c9e0a3ac2edc0e66296704f10865e924f2a","9af781f03d44f5635ed7844be0ce370d9d595d4b4ec67cad88f0fac03255257e","f9fd4c3ef6de27fa0e256f4e75b61711c4be05a3399f7714621d3edc832e36b0","e49290b7a927995c0d7e6b2b9c8296284b68a9036d9966531de65185269258d7","c3689f70ce7563c2299f2dcb3c72efdf6f87ae510e7456fa6223c767d0ca99fc","874ca809b79276460011480a2829f4c8d4db29416dd411f71efbf8f497f0ac09","6c903bceaf3f3bc04f2d4c7dcd89ce9fb148b3ba0a5f5408d8f6de2b7eecc7ea","504d049d9e550a65466b73ca39da6469ab41786074ea1d16d37c8853f9f6ab2e","23a28f834a078986bbf58f4e3705956983ff81c3c2493f3db3e5f0e8a9507779","4febdf7f3ec92706c58e0b4e8159cd6de718284ef384260b07c9641c13fc70ce",{"version":"eabefc2999c1489cf870e0c85af908900462fa245822d9a4616780a1a129945d","affectsGlobalScope":true},"7335933d9f30dcfd2c4b6080a8b78e81912a7fcefb1dafccb67ca4cb4b3ac23d","a6bfe9de9adef749010c118104b071d14943802ff0614732b47ce4f1c3e383cd","4c3d0e10396646db4a1e917fb852077ee77ae62e512913bef9cccc2bb0f8bd0e","3b220849d58140dcc6718f5b52dcd29fdb79c45bc28f561cbd29eb1cac6cce13","0ee22fce41f7417a24c808d266e91b850629113c104713a35854393d55994beb","22d1b1d965baba05766613e2e6c753bb005d4386c448cafd72c309ba689e8c24",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"01c93adfc4c6555c559e7334b6b5f45b48c9e1f809144822088e45ba13e36d9f",{"version":"3f6d6465811321abc30a1e5f667feed63e5b3917b3d6c8d6645daf96c75f97ba","affectsGlobalScope":true}],"options":{"declaration":false,"declarationMap":false,"esModuleInterop":true,"inlineSources":true,"module":1,"noImplicitAny":false,"noUnusedLocals":true,"outDir":"./","rootDir":"../../src/test","sourceMap":true,"strict":true,"target":4},"fileIdsList":[[37,38,39],[40],[40,76,130],[69],[68,71,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],[69,70,72],[71],[40,130],[42],[40,43],[42,43,44,45,46,47,48,49,50,51,52],[43,44,47,49],[46],[113],[113,114],[113,114,115],[116],[118],[120],[121,126],[122,130,131,138,147],[122,123,130,138],[124,154],[125,126,131,139],[126,147],[127,128,130,138],[128],[129,130],[130],[130,131,132,147,153],[131,132],[133,138,147,153],[130,131,133,134,138,147,150,153],[133,135,147,150,153],[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],[130,136],[137,153],[128,130,138,147],[139],[140],[120,141],[142,152],[143],[144],[130,145],[145,146,154,156],[130,147],[148],[149],[138,147,150],[151],[138,152],[144,153],[154],[147,155],[156],[157],[130,132,147,153,156,158],[147,159],[53,130],[55],[40,53],[35,55,59,63],[54,55,56,57,58,63,64,65,66],[35,40,53,54,55,57,58,59,62,63,64],[35,40,53,54,55,57,58,59,62,65],[32],[30,31,33],[30,31,32,33,34],[59],[59,60,61],[40,53,59,60],[35,59],[108],[108,109],[108,109,110],[111],[35,59,107,108,109,111,118],[111,116],[35,53,59,99,100,101],[35,40,53,59,67,99,105],[100,101,102,103,104],[35,59,103],[35,40,53,59,67,91,99,105],[36,106],[53],[35,40,53,59,62,67,93,94,95,96,97],[98],[93],[92,93,94,95,96,97,98],[40,53,95]],"referencedMap":[[40,1],[75,2],[77,3],[70,4],[91,5],[73,6],[79,2],[72,7],[76,8],[43,9],[45,10],[53,11],[50,12],[51,13],[49,9],[114,14],[115,15],[116,16],[113,17],[118,18],[120,19],[121,20],[122,21],[123,22],[124,23],[125,24],[126,25],[127,26],[128,27],[129,28],[130,29],[131,30],[132,31],[133,32],[134,33],[135,34],[161,35],[136,36],[137,37],[138,38],[139,39],[140,40],[141,41],[142,42],[143,43],[144,44],[145,45],[146,46],[147,47],[148,48],[149,49],[150,50],[151,51],[152,52],[153,53],[154,54],[155,55],[156,56],[157,57],[158,58],[159,59],[54,60],[56,61],[57,62],[58,2],[64,63],[67,64],[65,65],[63,66],[33,67],[32,68],[35,69],[60,70],[62,71],[61,72],[59,73],[109,74],[110,75],[111,76],[108,77],[112,78],[117,79],[102,80],[101,81],[105,82],[104,83],[106,84],[36,73],[107,85],[92,86],[98,87],[93,88],[94,89],[99,90],[96,86],[97,91]],"exportedModulesMap":[[40,1],[75,2],[77,3],[70,4],[91,5],[73,6],[79,2],[72,7],[76,8],[43,9],[45,10],[53,11],[50,12],[51,13],[49,9],[114,14],[115,15],[116,16],[113,17],[118,18],[120,19],[121,20],[122,21],[123,22],[124,23],[125,24],[126,25],[127,26],[128,27],[129,28],[130,29],[131,30],[132,31],[133,32],[134,33],[135,34],[161,35],[136,36],[137,37],[138,38],[139,39],[140,40],[141,41],[142,42],[143,43],[144,44],[145,45],[146,46],[147,47],[148,48],[149,49],[150,50],[151,51],[152,52],[153,53],[154,54],[155,55],[156,56],[157,57],[158,58],[159,59],[54,60],[56,61],[57,62],[58,2],[64,63],[67,64],[65,65],[63,66],[33,67],[32,68],[35,69],[60,70],[62,71],[61,72],[59,73],[109,74],[110,75],[111,76],[108,77],[112,78],[117,79],[102,80],[101,81],[105,82],[104,83],[106,84],[36,73],[107,85],[92,86],[98,87],[93,88],[94,89],[99,90],[96,86],[97,91]],"semanticDiagnosticsPerFile":[37,38,40,39,68,74,69,90,89,75,77,70,78,91,73,88,79,71,72,80,81,82,83,84,85,86,76,87,43,44,45,46,53,47,48,50,51,52,49,42,114,115,116,113,41,162,118,120,121,122,123,124,125,126,127,128,129,130,131,132,119,160,133,134,135,161,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,6,7,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,1,29,54,56,57,58,64,55,67,65,63,66,33,34,30,32,35,31,60,62,61,59,109,110,111,108,112,117,102,101,105,103,104,100,106,36,107,92,98,93,94,95,99,96,97]},"version":"4.5.5"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,GAAG,CAAC;AAChD;;;;;;GAMG;AACH,oBAAY,yBAAyB,CAAC,CAAC,IAAI;KACtC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,oBAAY,gCAAgC,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG;KAC3F,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;CACxE,CAAC;AAEF;;;;GAIG;AACH,oBAAY,gCAAgC,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAC/D,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACrB;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEN;;GAEG;AACH,oBAAY,wBAAwB,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,IAC/C,gCAAgC,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,oBAAY,mBAAmB,CAAC,CAAC,IAC7B,WAAW,CAAC,CAAC,CAAC,GACZ,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,mBAAmB,EAAE,2BAA2B,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,GACtE,CAAC,CAAC,mBAAmB,EAAE,2BAA2B,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,GAAG,CAAC;AAChD;;;;;;GAMG;AACH,oBAAY,yBAAyB,CAAC,CAAC,IAAI;KACzC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,oBAAY,gCAAgC,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAClE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACrB;KACC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;CACpE,CAAC;AAEL;;;;GAIG;AACH,oBAAY,gCAAgC,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAClE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACrB;KACC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CACzC,CAAC;AAEL;;GAEG;AACH,oBAAY,wBAAwB,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,IAAI,gCAAgC,CAAC,CAAC,CAAC,GAC3F,gCAAgC,CAAC,CAAC,CAAC,CAAC;AAErC;;GAEG;AACH,oBAAY,mBAAmB,CAAC,CAAC,IAC9B,WAAW,CAAC,CAAC,CAAC,GACd,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,mBAAmB,EAAE,2BAA2B,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,GACtE,CAAC,CAAC,mBAAmB,EAAE,2BAA2B,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { IFluidDependencySynthesizer } from \".\";\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type mapped to a string representation\n * of that property.\n *\n * @example - \\{ IFoo: \"IFoo\" \\}\n */\nexport type FluidObjectSymbolProvider<T> = {\n [P in keyof T]?: P;\n};\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type mapped to an object that implements\n * the property.\n */\nexport type AsyncRequiredFluidObjectProvider<T> = T extends undefined ? Record<string, never> : {\n [P in keyof T]: Promise<NonNullable<Exclude<T[P], undefined | null>>>\n};\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type, mapped to an object that implements\n * the property or undefined.\n */\nexport type AsyncOptionalFluidObjectProvider<T> = T extends undefined\n ? Record<string, never>\n : {\n [P in keyof T]?: Promise<T[P] | undefined>;\n };\n\n/**\n * Combined type for Optional and Required Async Fluid object Providers\n */\nexport type AsyncFluidObjectProvider<O, R = undefined>\n = AsyncOptionalFluidObjectProvider<O> & AsyncRequiredFluidObjectProvider<R>;\n\n/**\n * Multiple ways to provide a Fluid object.\n */\nexport type FluidObjectProvider<T> =\n NonNullable<T>\n | Promise<NonNullable<T>>\n | ((dependencyContainer: IFluidDependencySynthesizer) => NonNullable<T>)\n | ((dependencyContainer: IFluidDependencySynthesizer) => Promise<NonNullable<T>>);\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { IFluidDependencySynthesizer } from \".\";\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type mapped to a string representation\n * of that property.\n *\n * @example - \\{ IFoo: \"IFoo\" \\}\n */\nexport type FluidObjectSymbolProvider<T> = {\n\t[P in keyof T]?: P;\n};\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type mapped to an object that implements\n * the property.\n */\nexport type AsyncRequiredFluidObjectProvider<T> = T extends undefined\n\t? Record<string, never>\n\t: {\n\t\t\t[P in keyof T]: Promise<NonNullable<Exclude<T[P], undefined | null>>>;\n\t };\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type, mapped to an object that implements\n * the property or undefined.\n */\nexport type AsyncOptionalFluidObjectProvider<T> = T extends undefined\n\t? Record<string, never>\n\t: {\n\t\t\t[P in keyof T]?: Promise<T[P] | undefined>;\n\t };\n\n/**\n * Combined type for Optional and Required Async Fluid object Providers\n */\nexport type AsyncFluidObjectProvider<O, R = undefined> = AsyncOptionalFluidObjectProvider<O> &\n\tAsyncRequiredFluidObjectProvider<R>;\n\n/**\n * Multiple ways to provide a Fluid object.\n */\nexport type FluidObjectProvider<T> =\n\t| NonNullable<T>\n\t| Promise<NonNullable<T>>\n\t| ((dependencyContainer: IFluidDependencySynthesizer) => NonNullable<T>)\n\t| ((dependencyContainer: IFluidDependencySynthesizer) => Promise<NonNullable<T>>);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IFluidDependencySynthesizer.js","sourceRoot":"","sources":["../src/IFluidDependencySynthesizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,CAAC,MAAM,2BAA2B,GAClC,6BAA6B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n AsyncFluidObjectProvider,\n FluidObjectSymbolProvider,\n} from \"./types\";\n\nexport const IFluidDependencySynthesizer: keyof IProvideFluidDependencySynthesizer\n = \"IFluidDependencySynthesizer\";\n\nexport interface IProvideFluidDependencySynthesizer {\n IFluidDependencySynthesizer: IFluidDependencySynthesizer;\n}\n\n/**\n * IFluidDependencySynthesizer can generate IFluidObjects based on the IProvideFluidObject pattern.\n * It allow for registering providers and uses synthesize to generate a new object with the optional\n * and required types.\n */\nexport interface IFluidDependencySynthesizer extends IProvideFluidDependencySynthesizer {\n /**\n * synthesize takes optional and required types and returns an object that will fulfill the\n * defined types based off objects that has been previously registered.\n *\n * @param optionalTypes - optional types to be in the Scope object\n * @param requiredTypes - required types that need to be in the Scope object\n */\n synthesize<O, R = undefined | Record<string, never>>(\n optionalTypes: FluidObjectSymbolProvider<O>,\n requiredTypes: Required<FluidObjectSymbolProvider<R>>,\n ): AsyncFluidObjectProvider<O, R>;\n\n /**\n * Check if a given type is registered\n * @param type - Type to check\n */\n has(type: string): boolean;\n}\n"]}
1
+ {"version":3,"file":"IFluidDependencySynthesizer.js","sourceRoot":"","sources":["../src/IFluidDependencySynthesizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,CAAC,MAAM,2BAA2B,GACvC,6BAA6B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AsyncFluidObjectProvider, FluidObjectSymbolProvider } from \"./types\";\n\nexport const IFluidDependencySynthesizer: keyof IProvideFluidDependencySynthesizer =\n\t\"IFluidDependencySynthesizer\";\n\nexport interface IProvideFluidDependencySynthesizer {\n\tIFluidDependencySynthesizer: IFluidDependencySynthesizer;\n}\n\n/**\n * IFluidDependencySynthesizer can generate FluidObjects based on the IProvideFluidObject pattern.\n * It allow for registering providers and uses synthesize to generate a new object with the optional\n * and required types.\n */\nexport interface IFluidDependencySynthesizer extends IProvideFluidDependencySynthesizer {\n\t/**\n\t * synthesize takes optional and required types and returns an object that will fulfill the\n\t * defined types based off objects that has been previously registered.\n\t *\n\t * @param optionalTypes - optional types to be in the Scope object\n\t * @param requiredTypes - required types that need to be in the Scope object\n\t */\n\tsynthesize<O, R = undefined | Record<string, never>>(\n\t\toptionalTypes: FluidObjectSymbolProvider<O>,\n\t\trequiredTypes: Required<FluidObjectSymbolProvider<R>>,\n\t): AsyncFluidObjectProvider<O, R>;\n\n\t/**\n\t * Check if a given type is registered\n\t * @param type - Type to check\n\t */\n\thas(type: string): boolean;\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { IFluidDependencySynthesizer, } from "./IFluidDependencySynthesizer";
5
+ import { IFluidDependencySynthesizer } from "./IFluidDependencySynthesizer";
6
6
  /**
7
7
  * DependencyContainer is similar to a IoC Container. It takes providers and will
8
8
  * synthesize an object based on them when requested.
@@ -12,7 +12,9 @@ export class DependencyContainer {
12
12
  this.providers = new Map();
13
13
  this.parents = parents.filter((v) => v !== undefined);
14
14
  }
15
- get IFluidDependencySynthesizer() { return this; }
15
+ get IFluidDependencySynthesizer() {
16
+ return this;
17
+ }
16
18
  /**
17
19
  * Add a new provider
18
20
  * @param type - Name of the Type T being provided
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyContainer.js","sourceRoot":"","sources":["../src/dependencyContainer.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n AsyncFluidObjectProvider,\n FluidObjectSymbolProvider,\n FluidObjectProvider,\n AsyncOptionalFluidObjectProvider,\n AsyncRequiredFluidObjectProvider,\n} from \"./types\";\nimport {\n IFluidDependencySynthesizer,\n} from \"./IFluidDependencySynthesizer\";\n\n/**\n * DependencyContainer is similar to a IoC Container. It takes providers and will\n * synthesize an object based on them when requested.\n */\nexport class DependencyContainer<TMap> implements IFluidDependencySynthesizer {\n private readonly providers = new Map<keyof TMap, FluidObjectProvider<any>>();\n private readonly parents: IFluidDependencySynthesizer[];\n public get IFluidDependencySynthesizer() { return this; }\n\n public constructor(... parents: (IFluidDependencySynthesizer | undefined)[]) {\n this.parents = parents.filter((v): v is IFluidDependencySynthesizer => v !== undefined);\n }\n\n /**\n * Add a new provider\n * @param type - Name of the Type T being provided\n * @param provider - A provider that will resolve the T correctly when asked\n * @throws - If passing a type that's already registered\n */\n public register<T extends keyof TMap = keyof TMap>(type: T, provider: FluidObjectProvider<Pick<TMap, T>>): void {\n if (this.providers.has(type)) {\n throw new Error(`Attempting to register a provider of type ${type} that already exists`);\n }\n\n this.providers.set(type, provider);\n }\n\n /**\n * Remove a provider\n * @param type - Name of the provider to remove\n */\n public unregister(type: keyof TMap): void {\n if (this.providers.has(type)) {\n this.providers.delete(type);\n }\n }\n\n /**\n * {@inheritDoc (IFluidDependencySynthesizer:interface).synthesize}\n */\n public synthesize<O, R = undefined | Record<string, never>>(\n optionalTypes: FluidObjectSymbolProvider<O>,\n requiredTypes: Required<FluidObjectSymbolProvider<R>>,\n ): AsyncFluidObjectProvider<O, R> {\n const base: AsyncFluidObjectProvider<O, R> = {} as any;\n this.generateRequired<R>(base, requiredTypes);\n this.generateOptional<O>(base, optionalTypes);\n Object.defineProperty(base, IFluidDependencySynthesizer, { get: () => this });\n return base;\n }\n\n /**\n * {@inheritDoc (IFluidDependencySynthesizer:interface).has}\n * @param excludeParents - If true, exclude checking parent registries\n */\n public has(type: string, excludeParents?: boolean): boolean {\n if (this.providers.has(type as keyof TMap)) {\n return true;\n }\n if (excludeParents !== true) {\n return this.parents.some((p: IFluidDependencySynthesizer) => p.has(type));\n }\n return false;\n }\n /**\n * @deprecated Needed for backwards compatability.\n */\n private getProvider(provider: string & keyof TMap) {\n // this was removed, but some partners have trouble with back compat where they\n // use invalid patterns with FluidObject and IFluidDependencySynthesizer\n // this is just for back compat until those are removed\n if (this.has(provider)) {\n if (this.providers.has(provider)) {\n return this.providers.get(provider);\n }\n for (const parent of this.parents) {\n if (parent instanceof DependencyContainer) {\n return parent.getProvider(provider);\n } else {\n // older implementations of the IFluidDependencySynthesizer exposed getProvider\n const maybeGetProvider: { getProvider?(provider: string & keyof TMap); } = parent as any;\n if (maybeGetProvider?.getProvider !== undefined) {\n return maybeGetProvider.getProvider(provider);\n }\n }\n }\n }\n }\n\n private generateRequired<T>(\n base: AsyncRequiredFluidObjectProvider<T>,\n types: Required<FluidObjectSymbolProvider<T>>,\n ) {\n if (types === undefined) { return; }\n for (const key of Object.keys(types) as unknown as (keyof TMap)[]) {\n const provider = this.resolveProvider(key);\n if (provider === undefined) {\n throw new Error(`Object attempted to be created without registered required provider ${key}`);\n }\n Object.defineProperty(\n base,\n key,\n provider,\n );\n }\n }\n\n private generateOptional<T>(\n base: AsyncOptionalFluidObjectProvider<T>,\n types: FluidObjectSymbolProvider<T>,\n ) {\n if (types === undefined) { return; }\n for (const key of Object.keys(types) as unknown as (keyof TMap)[]) {\n // back-compat: in 0.56 we allow undefined in the types, but we didn't before\n // this will keep runtime back compat, eventually we should support undefined properties\n // rather than properties that return promises that resolve to undefined\n const provider = this.resolveProvider(key) ?? { get: async () => undefined };\n Object.defineProperty(\n base,\n key,\n provider,\n );\n }\n }\n\n private resolveProvider<T extends keyof TMap>(t: T): PropertyDescriptor | undefined {\n // If we have the provider return it\n const provider = this.providers.get(t);\n if (provider === undefined) {\n for (const parent of this.parents) {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const sp = { [t]: t } as FluidObjectSymbolProvider<Pick<TMap, T>>;\n const syn = parent.synthesize<Pick<TMap, T>, Record<string, unknown>>(\n sp,\n {});\n const descriptor = Object.getOwnPropertyDescriptor(syn, t);\n if (descriptor !== undefined) {\n return descriptor;\n }\n }\n return undefined;\n }\n\n // The double nested gets are required for lazy loading the provider resolution\n if (typeof provider === \"function\") {\n return {\n get() {\n if (provider && typeof provider === \"function\") {\n return Promise.resolve(this[IFluidDependencySynthesizer])\n .then(async (fds): Promise<any> => provider(fds))\n .then((p) => p?.[t]);\n }\n },\n };\n }\n return {\n get() {\n if (provider) {\n return Promise.resolve(provider).then((p) => {\n if (p) {\n return p[t];\n }\n });\n }\n },\n };\n }\n}\n"]}
1
+ {"version":3,"file":"dependencyContainer.js","sourceRoot":"","sources":["../src/dependencyContainer.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tAsyncFluidObjectProvider,\n\tFluidObjectSymbolProvider,\n\tFluidObjectProvider,\n\tAsyncOptionalFluidObjectProvider,\n\tAsyncRequiredFluidObjectProvider,\n} from \"./types\";\nimport { IFluidDependencySynthesizer } from \"./IFluidDependencySynthesizer\";\n\n/**\n * DependencyContainer is similar to a IoC Container. It takes providers and will\n * synthesize an object based on them when requested.\n */\nexport class DependencyContainer<TMap> implements IFluidDependencySynthesizer {\n\tprivate readonly providers = new Map<keyof TMap, FluidObjectProvider<any>>();\n\tprivate readonly parents: IFluidDependencySynthesizer[];\n\tpublic get IFluidDependencySynthesizer() {\n\t\treturn this;\n\t}\n\n\tpublic constructor(...parents: (IFluidDependencySynthesizer | undefined)[]) {\n\t\tthis.parents = parents.filter((v): v is IFluidDependencySynthesizer => v !== undefined);\n\t}\n\n\t/**\n\t * Add a new provider\n\t * @param type - Name of the Type T being provided\n\t * @param provider - A provider that will resolve the T correctly when asked\n\t * @throws - If passing a type that's already registered\n\t */\n\tpublic register<T extends keyof TMap = keyof TMap>(\n\t\ttype: T,\n\t\tprovider: FluidObjectProvider<Pick<TMap, T>>,\n\t): void {\n\t\tif (this.providers.has(type)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Attempting to register a provider of type ${type} that already exists`,\n\t\t\t);\n\t\t}\n\n\t\tthis.providers.set(type, provider);\n\t}\n\n\t/**\n\t * Remove a provider\n\t * @param type - Name of the provider to remove\n\t */\n\tpublic unregister(type: keyof TMap): void {\n\t\tif (this.providers.has(type)) {\n\t\t\tthis.providers.delete(type);\n\t\t}\n\t}\n\n\t/**\n\t * {@inheritDoc (IFluidDependencySynthesizer:interface).synthesize}\n\t */\n\tpublic synthesize<O, R = undefined | Record<string, never>>(\n\t\toptionalTypes: FluidObjectSymbolProvider<O>,\n\t\trequiredTypes: Required<FluidObjectSymbolProvider<R>>,\n\t): AsyncFluidObjectProvider<O, R> {\n\t\tconst base: AsyncFluidObjectProvider<O, R> = {} as any;\n\t\tthis.generateRequired<R>(base, requiredTypes);\n\t\tthis.generateOptional<O>(base, optionalTypes);\n\t\tObject.defineProperty(base, IFluidDependencySynthesizer, { get: () => this });\n\t\treturn base;\n\t}\n\n\t/**\n\t * {@inheritDoc (IFluidDependencySynthesizer:interface).has}\n\t * @param excludeParents - If true, exclude checking parent registries\n\t */\n\tpublic has(type: string, excludeParents?: boolean): boolean {\n\t\tif (this.providers.has(type as keyof TMap)) {\n\t\t\treturn true;\n\t\t}\n\t\tif (excludeParents !== true) {\n\t\t\treturn this.parents.some((p: IFluidDependencySynthesizer) => p.has(type));\n\t\t}\n\t\treturn false;\n\t}\n\t/**\n\t * @deprecated Needed for backwards compatability.\n\t */\n\tprivate getProvider(provider: string & keyof TMap) {\n\t\t// this was removed, but some partners have trouble with back compat where they\n\t\t// use invalid patterns with FluidObject and IFluidDependencySynthesizer\n\t\t// this is just for back compat until those are removed\n\t\tif (this.has(provider)) {\n\t\t\tif (this.providers.has(provider)) {\n\t\t\t\treturn this.providers.get(provider);\n\t\t\t}\n\t\t\tfor (const parent of this.parents) {\n\t\t\t\tif (parent instanceof DependencyContainer) {\n\t\t\t\t\treturn parent.getProvider(provider);\n\t\t\t\t} else {\n\t\t\t\t\t// older implementations of the IFluidDependencySynthesizer exposed getProvider\n\t\t\t\t\tconst maybeGetProvider: { getProvider?(provider: string & keyof TMap) } =\n\t\t\t\t\t\tparent as any;\n\t\t\t\t\tif (maybeGetProvider?.getProvider !== undefined) {\n\t\t\t\t\t\treturn maybeGetProvider.getProvider(provider);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate generateRequired<T>(\n\t\tbase: AsyncRequiredFluidObjectProvider<T>,\n\t\ttypes: Required<FluidObjectSymbolProvider<T>>,\n\t) {\n\t\tif (types === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const key of Object.keys(types) as unknown as (keyof TMap)[]) {\n\t\t\tconst provider = this.resolveProvider(key);\n\t\t\tif (provider === undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Object attempted to be created without registered required provider ${key}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tObject.defineProperty(base, key, provider);\n\t\t}\n\t}\n\n\tprivate generateOptional<T>(\n\t\tbase: AsyncOptionalFluidObjectProvider<T>,\n\t\ttypes: FluidObjectSymbolProvider<T>,\n\t) {\n\t\tif (types === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const key of Object.keys(types) as unknown as (keyof TMap)[]) {\n\t\t\t// back-compat: in 0.56 we allow undefined in the types, but we didn't before\n\t\t\t// this will keep runtime back compat, eventually we should support undefined properties\n\t\t\t// rather than properties that return promises that resolve to undefined\n\t\t\tconst provider = this.resolveProvider(key) ?? { get: async () => undefined };\n\t\t\tObject.defineProperty(base, key, provider);\n\t\t}\n\t}\n\n\tprivate resolveProvider<T extends keyof TMap>(t: T): PropertyDescriptor | undefined {\n\t\t// If we have the provider return it\n\t\tconst provider = this.providers.get(t);\n\t\tif (provider === undefined) {\n\t\t\tfor (const parent of this.parents) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\tconst sp = { [t]: t } as FluidObjectSymbolProvider<Pick<TMap, T>>;\n\t\t\t\tconst syn = parent.synthesize<Pick<TMap, T>, Record<string, unknown>>(sp, {});\n\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(syn, t);\n\t\t\t\tif (descriptor !== undefined) {\n\t\t\t\t\treturn descriptor;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// The double nested gets are required for lazy loading the provider resolution\n\t\tif (typeof provider === \"function\") {\n\t\t\treturn {\n\t\t\t\tget() {\n\t\t\t\t\tif (provider && typeof provider === \"function\") {\n\t\t\t\t\t\treturn Promise.resolve(this[IFluidDependencySynthesizer])\n\t\t\t\t\t\t\t.then(async (fds): Promise<any> => provider(fds))\n\t\t\t\t\t\t\t.then((p) => p?.[t]);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tif (provider) {\n\t\t\t\t\treturn Promise.resolve(provider).then((p) => {\n\t\t\t\t\t\tif (p) {\n\t\t\t\t\t\t\treturn p[t];\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t}\n}\n"]}
package/lib/index.js CHANGED
@@ -3,5 +3,5 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  export { DependencyContainer } from "./dependencyContainer";
6
- export { IFluidDependencySynthesizer } from "./IFluidDependencySynthesizer";
6
+ export { IFluidDependencySynthesizer, } from "./IFluidDependencySynthesizer";
7
7
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAsC,MAAM,+BAA+B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { DependencyContainer } from \"./dependencyContainer\";\nexport { IFluidDependencySynthesizer, IProvideFluidDependencySynthesizer } from \"./IFluidDependencySynthesizer\";\nexport {\n\tAsyncFluidObjectProvider,\n\tAsyncOptionalFluidObjectProvider,\n\tAsyncRequiredFluidObjectProvider,\n\tFluidObjectProvider,\n\tFluidObjectSymbolProvider,\n} from \"./types\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACN,2BAA2B,GAE3B,MAAM,+BAA+B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { DependencyContainer } from \"./dependencyContainer\";\nexport {\n\tIFluidDependencySynthesizer,\n\tIProvideFluidDependencySynthesizer,\n} from \"./IFluidDependencySynthesizer\";\nexport {\n\tAsyncFluidObjectProvider,\n\tAsyncOptionalFluidObjectProvider,\n\tAsyncRequiredFluidObjectProvider,\n\tFluidObjectProvider,\n\tFluidObjectSymbolProvider,\n} from \"./types\";\n"]}
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { IFluidDependencySynthesizer } from \".\";\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type mapped to a string representation\n * of that property.\n *\n * @example - \\{ IFoo: \"IFoo\" \\}\n */\nexport type FluidObjectSymbolProvider<T> = {\n [P in keyof T]?: P;\n};\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type mapped to an object that implements\n * the property.\n */\nexport type AsyncRequiredFluidObjectProvider<T> = T extends undefined ? Record<string, never> : {\n [P in keyof T]: Promise<NonNullable<Exclude<T[P], undefined | null>>>\n};\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type, mapped to an object that implements\n * the property or undefined.\n */\nexport type AsyncOptionalFluidObjectProvider<T> = T extends undefined\n ? Record<string, never>\n : {\n [P in keyof T]?: Promise<T[P] | undefined>;\n };\n\n/**\n * Combined type for Optional and Required Async Fluid object Providers\n */\nexport type AsyncFluidObjectProvider<O, R = undefined>\n = AsyncOptionalFluidObjectProvider<O> & AsyncRequiredFluidObjectProvider<R>;\n\n/**\n * Multiple ways to provide a Fluid object.\n */\nexport type FluidObjectProvider<T> =\n NonNullable<T>\n | Promise<NonNullable<T>>\n | ((dependencyContainer: IFluidDependencySynthesizer) => NonNullable<T>)\n | ((dependencyContainer: IFluidDependencySynthesizer) => Promise<NonNullable<T>>);\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { IFluidDependencySynthesizer } from \".\";\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type mapped to a string representation\n * of that property.\n *\n * @example - \\{ IFoo: \"IFoo\" \\}\n */\nexport type FluidObjectSymbolProvider<T> = {\n\t[P in keyof T]?: P;\n};\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type mapped to an object that implements\n * the property.\n */\nexport type AsyncRequiredFluidObjectProvider<T> = T extends undefined\n\t? Record<string, never>\n\t: {\n\t\t\t[P in keyof T]: Promise<NonNullable<Exclude<T[P], undefined | null>>>;\n\t };\n\n/**\n * This is a condensed version of Record that requires the object has all\n * the FluidObject properties as its type, mapped to an object that implements\n * the property or undefined.\n */\nexport type AsyncOptionalFluidObjectProvider<T> = T extends undefined\n\t? Record<string, never>\n\t: {\n\t\t\t[P in keyof T]?: Promise<T[P] | undefined>;\n\t };\n\n/**\n * Combined type for Optional and Required Async Fluid object Providers\n */\nexport type AsyncFluidObjectProvider<O, R = undefined> = AsyncOptionalFluidObjectProvider<O> &\n\tAsyncRequiredFluidObjectProvider<R>;\n\n/**\n * Multiple ways to provide a Fluid object.\n */\nexport type FluidObjectProvider<T> =\n\t| NonNullable<T>\n\t| Promise<NonNullable<T>>\n\t| ((dependencyContainer: IFluidDependencySynthesizer) => NonNullable<T>)\n\t| ((dependencyContainer: IFluidDependencySynthesizer) => Promise<NonNullable<T>>);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/synthesize",
3
- "version": "2.0.0-dev.2.3.0.115467",
3
+ "version": "2.0.0-dev.3.1.0.125672",
4
4
  "description": "A library for synthesizing scope objects.",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -32,8 +32,8 @@
32
32
  "eslint": "eslint --format stylish src",
33
33
  "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
34
34
  "format": "npm run prettier:fix",
35
- "lint": "npm run eslint",
36
- "lint:fix": "npm run eslint:fix",
35
+ "lint": "npm run prettier && npm run eslint",
36
+ "lint:fix": "npm run prettier:fix && npm run eslint:fix",
37
37
  "prettier": "prettier --check . --ignore-path ../../../.prettierignore",
38
38
  "prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore",
39
39
  "test": "npm run test:mocha",
@@ -65,18 +65,18 @@
65
65
  "temp-directory": "nyc/.nyc_output"
66
66
  },
67
67
  "devDependencies": {
68
- "@fluid-tools/build-cli": "^0.7.0",
68
+ "@fluid-tools/build-cli": "^0.8.0",
69
69
  "@fluidframework/build-common": "^1.1.0",
70
- "@fluidframework/build-tools": "^0.7.0",
71
- "@fluidframework/core-interfaces": ">=2.0.0-dev.2.3.0.115467 <2.0.0-dev.3.0.0",
72
- "@fluidframework/datastore": ">=2.0.0-dev.2.3.0.115467 <2.0.0-dev.3.0.0",
73
- "@fluidframework/eslint-config-fluid": "^1.2.0",
74
- "@fluidframework/mocha-test-setup": ">=2.0.0-dev.2.3.0.115467 <2.0.0-dev.3.0.0",
75
- "@fluidframework/synthesize-previous": "npm:@fluidframework/synthesize@2.0.0-internal.2.2.0",
70
+ "@fluidframework/build-tools": "^0.8.0",
71
+ "@fluidframework/core-interfaces": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
72
+ "@fluidframework/datastore": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
73
+ "@fluidframework/eslint-config-fluid": "^2.0.0",
74
+ "@fluidframework/mocha-test-setup": ">=2.0.0-dev.3.1.0.125672 <2.0.0-dev.4.0.0",
75
+ "@fluidframework/synthesize-previous": "npm:@fluidframework/synthesize@2.0.0-internal.3.0.0",
76
76
  "@microsoft/api-extractor": "^7.22.2",
77
77
  "@rushstack/eslint-config": "^2.5.1",
78
78
  "@types/mocha": "^9.1.1",
79
- "@types/node": "^14.18.0",
79
+ "@types/node": "^14.18.36",
80
80
  "concurrently": "^6.2.0",
81
81
  "copyfiles": "^2.4.1",
82
82
  "cross-env": "^7.0.2",
@@ -88,9 +88,10 @@
88
88
  "typescript": "~4.5.5"
89
89
  },
90
90
  "typeValidation": {
91
- "version": "2.0.0-internal.2.3.0",
92
- "baselineRange": ">=2.0.0-internal.2.2.0 <2.0.0-internal.2.3.0",
93
- "baselineVersion": "2.0.0-internal.2.2.0",
91
+ "version": "2.0.0-internal.3.1.0",
92
+ "previousVersionStyle": "~previousMinor",
93
+ "baselineRange": ">=2.0.0-internal.3.0.0 <2.0.0-internal.3.1.0",
94
+ "baselineVersion": "2.0.0-internal.3.0.0",
94
95
  "broken": {}
95
96
  }
96
97
  }