@fluidframework/synthesize 2.0.0-dev.5.3.2.178189 → 2.0.0-dev.6.4.0.191258

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
@@ -13,9 +13,10 @@ When taking a dependency on a Fluid Framework library, we recommend using a `^`
13
13
  While Fluid Framework libraries may use different ranges with interdependencies between other Fluid Framework libraries,
14
14
  library consumers should always prefer `^`.
15
15
 
16
- Note that when depending on a library version of the form 2.0.0-internal.x.y.z, called the Fluid internal version
17
- scheme, you must use a `>= <` dependency range. Standard `^` and `~` ranges will not work as expected. See the
18
- [@fluid-tools/version-tools](https://github.com/microsoft/FluidFramework/blob/main/build-tools/packages/version-tools/README.md)
16
+ Note that when depending on a library version of the form `2.0.0-internal.x.y.z`, called the Fluid internal version scheme,
17
+ you must use a `>= <` dependency range (such as `>=2.0.0-internal.x.y.z <2.0.0-internal.w.0.0` where `w` is `x+1`).
18
+ Standard `^` and `~` ranges will not work as expected.
19
+ See the [@fluid-tools/version-tools](https://github.com/microsoft/FluidFramework/blob/main/build-tools/packages/version-tools/README.md)
19
20
  package for more information including tools to convert between version schemes.
20
21
 
21
22
  <!-- prettier-ignore-end -->
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyContainer.d.ts","sourceRoot":"","sources":["../src/dependencyContainer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,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;IAoBxB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,eAAe;CA0CvB"}
1
+ {"version":3,"file":"dependencyContainer.d.ts","sourceRoot":"","sources":["../src/dependencyContainer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,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;IAoBxB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,eAAe;CA2CvB"}
@@ -81,7 +81,7 @@ class DependencyContainer {
81
81
  else {
82
82
  // older implementations of the IFluidDependencySynthesizer exposed getProvider
83
83
  const maybeGetProvider = parent;
84
- if ((maybeGetProvider === null || maybeGetProvider === void 0 ? void 0 : maybeGetProvider.getProvider) !== undefined) {
84
+ if (maybeGetProvider?.getProvider !== undefined) {
85
85
  return maybeGetProvider.getProvider(provider);
86
86
  }
87
87
  }
@@ -101,7 +101,6 @@ class DependencyContainer {
101
101
  }
102
102
  }
103
103
  generateOptional(base, types) {
104
- var _a;
105
104
  if (types === undefined) {
106
105
  return;
107
106
  }
@@ -109,7 +108,7 @@ class DependencyContainer {
109
108
  // back-compat: in 0.56 we allow undefined in the types, but we didn't before
110
109
  // this will keep runtime back compat, eventually we should support undefined properties
111
110
  // rather than properties that return promises that resolve to undefined
112
- const provider = (_a = this.resolveProvider(key)) !== null && _a !== void 0 ? _a : { get: async () => undefined };
111
+ const provider = this.resolveProvider(key) ?? { get: async () => undefined };
113
112
  Object.defineProperty(base, key, provider);
114
113
  }
115
114
  }
@@ -131,11 +130,12 @@ class DependencyContainer {
131
130
  // The double nested gets are required for lazy loading the provider resolution
132
131
  if (typeof provider === "function") {
133
132
  return {
133
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
134
134
  get() {
135
135
  if (provider && typeof provider === "function") {
136
136
  return Promise.resolve(this[IFluidDependencySynthesizer_1.IFluidDependencySynthesizer])
137
137
  .then(async (fds) => provider(fds))
138
- .then((p) => p === null || p === void 0 ? void 0 : p[t]);
138
+ .then((p) => p?.[t]);
139
139
  }
140
140
  },
141
141
  };
@@ -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 { LazyPromise } from \"@fluidframework/core-utils\";\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 ${String(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 ${String(\n\t\t\t\t\t\tkey,\n\t\t\t\t\t)}`,\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 new LazyPromise(async () => {\n\t\t\t\t\t\treturn Promise.resolve(provider).then((p) => {\n\t\t\t\t\t\t\tif (p) {\n\t\t\t\t\t\t\t\treturn p[t];\n\t\t\t\t\t\t\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"]}
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 { LazyPromise } from \"@fluidframework/core-utils\";\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 ${String(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 ${String(\n\t\t\t\t\t\tkey,\n\t\t\t\t\t)}`,\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\t// eslint-disable-next-line @typescript-eslint/promise-function-async\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 new LazyPromise(async () => {\n\t\t\t\t\t\treturn Promise.resolve(provider).then((p) => {\n\t\t\t\t\t\t\tif (p) {\n\t\t\t\t\t\t\t\treturn p[t];\n\t\t\t\t\t\t\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"]}
@@ -51,7 +51,7 @@ describe("Routerlicious", () => {
51
51
  const loadable = await s.IFluidLoadable;
52
52
  (0, assert_1.strict)(loadable, "Optional IFluidLoadable was registered");
53
53
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
54
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
54
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
55
55
  });
56
56
  it(`One Optional Provider registered via Promise value`, async () => {
57
57
  const dc = new __1.DependencyContainer();
@@ -61,7 +61,7 @@ describe("Routerlicious", () => {
61
61
  const loadable = await s.IFluidLoadable;
62
62
  (0, assert_1.strict)(loadable, "Optional IFluidLoadable was registered");
63
63
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
64
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
64
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
65
65
  });
66
66
  it(`One Optional Provider registered via factory`, async () => {
67
67
  const dc = new __1.DependencyContainer();
@@ -72,7 +72,7 @@ describe("Routerlicious", () => {
72
72
  const loadable = await s.IFluidLoadable;
73
73
  (0, assert_1.strict)(loadable, "Optional IFluidLoadable was registered");
74
74
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
75
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
75
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
76
76
  });
77
77
  it(`One Optional Provider registered via Promise factory`, async () => {
78
78
  const dc = new __1.DependencyContainer();
@@ -83,7 +83,7 @@ describe("Routerlicious", () => {
83
83
  const loadable = await s.IFluidLoadable;
84
84
  (0, assert_1.strict)(loadable, "Optional IFluidLoadable was registered");
85
85
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
86
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
86
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
87
87
  });
88
88
  it(`One Optional Provider registered via LazyPromise factory`, async () => {
89
89
  const dc = new __1.DependencyContainer();
@@ -102,7 +102,7 @@ describe("Routerlicious", () => {
102
102
  const loadable = await loadable_promise;
103
103
  (0, assert_1.strict)(loadable, "Optional IFluidLoadable was registered");
104
104
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
105
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
105
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
106
106
  });
107
107
  });
108
108
  it(`One Required Provider registered via value`, async () => {
@@ -115,7 +115,7 @@ describe("Routerlicious", () => {
115
115
  const loadable = await s.IFluidLoadable;
116
116
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
117
117
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
118
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
118
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
119
119
  });
120
120
  it(`One Required Provider registered via Promise value`, async () => {
121
121
  const dc = new __1.DependencyContainer();
@@ -127,7 +127,7 @@ describe("Routerlicious", () => {
127
127
  const loadable = await s.IFluidLoadable;
128
128
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
129
129
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
130
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
130
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
131
131
  });
132
132
  it(`One Required Provider registered via factory`, async () => {
133
133
  const dc = new __1.DependencyContainer();
@@ -140,7 +140,7 @@ describe("Routerlicious", () => {
140
140
  const loadable = await s.IFluidLoadable;
141
141
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
142
142
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
143
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
143
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
144
144
  });
145
145
  it(`One Required Provider registered via Promise factory`, async () => {
146
146
  const dc = new __1.DependencyContainer();
@@ -153,7 +153,7 @@ describe("Routerlicious", () => {
153
153
  const loadable = await s.IFluidLoadable;
154
154
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
155
155
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
156
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
156
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
157
157
  });
158
158
  it(`One Required Provider registered via LazyPromise factory`, async () => {
159
159
  const dc = new __1.DependencyContainer();
@@ -174,7 +174,7 @@ describe("Routerlicious", () => {
174
174
  const loadable = await loadable_promise;
175
175
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
176
176
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
177
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
177
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
178
178
  });
179
179
  });
180
180
  it(`Two Optional Modules all registered`, async () => {
@@ -239,7 +239,7 @@ describe("Routerlicious", () => {
239
239
  const loadable = await s.IFluidLoadable;
240
240
  (0, assert_1.strict)(loadable, "Optional IFluidLoadable was registered");
241
241
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
242
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
242
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
243
243
  });
244
244
  it(`Optional Modules found in Parent and Child`, async () => {
245
245
  const parentDc = new __1.DependencyContainer();
@@ -278,7 +278,7 @@ describe("Routerlicious", () => {
278
278
  const loadable = await s.IFluidLoadable;
279
279
  (0, assert_1.strict)(loadable, "Required IFluidLoadable was registered");
280
280
  (0, assert_1.strict)(loadable === mock, "IFluidLoadable is expected");
281
- (0, assert_1.strict)((loadable === null || loadable === void 0 ? void 0 : loadable.handle.absolutePath) === mock.handle.absolutePath, "IFluidLoadable is valid");
281
+ (0, assert_1.strict)(loadable?.handle.absolutePath === mock.handle.absolutePath, "IFluidLoadable is valid");
282
282
  });
283
283
  it(`Required Modules found in Parent and Child`, async () => {
284
284
  const parentDc = 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\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 { LazyPromise } from \"@fluidframework/core-utils\";\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 Optional Provider registered via LazyPromise factory`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tlet lazyPromiseFlag = false;\n\t\t\t\tconst lazyFactory = new LazyPromise(async () => {\n\t\t\t\t\tlazyPromiseFlag = true;\n\t\t\t\t\treturn mock;\n\t\t\t\t});\n\t\t\t\tdc.register(IFluidLoadable, lazyFactory);\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n\t\t\t\tconst loadable_promise = s.IFluidLoadable;\n\t\t\t\t// This stacking of promises is done in order to make sure that the loadable_promise would have been executed by the time the assertion is done\n\t\t\t\tawait Promise.resolve().then(async () => {\n\t\t\t\t\tassert(!lazyPromiseFlag, \"Optional IFluidLoadable was correctly lazy loaded\");\n\t\t\t\t\tconst loadable = await loadable_promise;\n\t\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\t\tassert(\n\t\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t\t);\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(`One Required Provider registered via LazyPromise factory`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tlet lazyPromiseFlag = false;\n\t\t\t\tconst lazyFactory = new LazyPromise(async () => {\n\t\t\t\t\tlazyPromiseFlag = true;\n\t\t\t\t\treturn mock;\n\t\t\t\t});\n\t\t\t\tdc.register(IFluidLoadable, lazyFactory);\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_promise = s.IFluidLoadable;\n\t\t\t\t// This stacking of promises is done in order to make sure that the loadable_promise would have been executed by the time the assertion is done\n\t\t\t\tawait Promise.resolve().then(async () => {\n\t\t\t\t\tassert(!lazyPromiseFlag, \"Required IFluidLoadable was correctly lazy loaded\");\n\t\t\t\t\tconst loadable = await loadable_promise;\n\t\t\t\t\tassert(loadable, \"Required IFluidLoadable was registered\");\n\t\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\t\tassert(\n\t\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t\t);\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
+ {"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 { LazyPromise } from \"@fluidframework/core-utils\";\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 Optional Provider registered via LazyPromise factory`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tlet lazyPromiseFlag = false;\n\t\t\t\tconst lazyFactory = new LazyPromise(async () => {\n\t\t\t\t\tlazyPromiseFlag = true;\n\t\t\t\t\treturn mock;\n\t\t\t\t});\n\t\t\t\tdc.register(IFluidLoadable, lazyFactory);\n\n\t\t\t\tconst s = dc.synthesize<IFluidLoadable>({ IFluidLoadable }, undefined);\n\t\t\t\tconst loadable_promise = s.IFluidLoadable;\n\t\t\t\t// This stacking of promises is done in order to make sure that the loadable_promise would have been executed by the time the assertion is done\n\t\t\t\tawait Promise.resolve().then(async () => {\n\t\t\t\t\tassert(!lazyPromiseFlag, \"Optional IFluidLoadable was correctly lazy loaded\");\n\t\t\t\t\tconst loadable = await loadable_promise;\n\t\t\t\t\tassert(loadable, \"Optional IFluidLoadable was registered\");\n\t\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\t\tassert(\n\t\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t\t);\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(`One Required Provider registered via LazyPromise factory`, async () => {\n\t\t\t\tconst dc = new DependencyContainer<FluidObject<IFluidLoadable>>();\n\t\t\t\tconst mock = new MockLoadable();\n\t\t\t\tlet lazyPromiseFlag = false;\n\t\t\t\tconst lazyFactory = new LazyPromise(async () => {\n\t\t\t\t\tlazyPromiseFlag = true;\n\t\t\t\t\treturn mock;\n\t\t\t\t});\n\t\t\t\tdc.register(IFluidLoadable, lazyFactory);\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_promise = s.IFluidLoadable;\n\t\t\t\t// This stacking of promises is done in order to make sure that the loadable_promise would have been executed by the time the assertion is done\n\t\t\t\tawait Promise.resolve().then(async () => {\n\t\t\t\t\tassert(!lazyPromiseFlag, \"Required IFluidLoadable was correctly lazy loaded\");\n\t\t\t\t\tconst loadable = await loadable_promise;\n\t\t\t\t\tassert(loadable, \"Required IFluidLoadable was registered\");\n\t\t\t\t\tassert(loadable === mock, \"IFluidLoadable is expected\");\n\t\t\t\t\tassert(\n\t\t\t\t\t\tloadable?.handle.absolutePath === mock.handle.absolutePath,\n\t\t\t\t\t\t\"IFluidLoadable is valid\",\n\t\t\t\t\t);\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/.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/disposable.d.ts","../../../../common/core-interfaces/dist/logger.d.ts","../../../../common/core-interfaces/dist/index.d.ts","../../../../runtime/datastore/dist/fluidHandle.d.ts","../../../../common/core-utils/dist/compare.d.ts","../../../../common/core-utils/dist/lazy.d.ts","../../../../common/core-utils/dist/promiseCache.d.ts","../../../../common/core-utils/dist/index.d.ts","../../../../utils/telemetry-utils/dist/telemetryTypes.d.ts","../../../../utils/telemetry-utils/dist/config.d.ts","../../../../../node_modules/.pnpm/@types+ms@0.7.31/node_modules/@types/ms/index.d.ts","../../../../../node_modules/.pnpm/@types+debug@4.1.7/node_modules/@types/debug/index.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/assert.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/base64Encoding.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/bufferShared.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/delay.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/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/disposal.d.ts","../../../../../node_modules/.pnpm/@types+events@3.0.0/node_modules/@types/events/index.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/typedEventEmitter.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/eventForwarder.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/heap.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/bufferNode.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/hashFileNode.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/performanceIsomorphic.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/performanceNode.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/indexNode.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/lazy.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/logger.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/promiseCache.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/promises.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/rangeTracker.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/rateLimiter.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/safeParser.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/timer.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/trace.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/unreachable.d.ts","../../../../../node_modules/.pnpm/@fluidframework+common-utils@1.1.1/node_modules/@fluidframework/common-utils/dist/index.d.ts","../../../../utils/telemetry-utils/dist/logger.d.ts","../../../../utils/telemetry-utils/dist/debugLogger.d.ts","../../../../utils/telemetry-utils/dist/fluidErrorBase.d.ts","../../../../utils/telemetry-utils/dist/errorLogging.d.ts","../../../../utils/telemetry-utils/dist/eventEmitterWithErrorHandling.d.ts","../../../../utils/telemetry-utils/dist/events.d.ts","../../../../utils/telemetry-utils/dist/mockLogger.d.ts","../../../../utils/telemetry-utils/dist/thresholdCounter.d.ts","../../../../utils/telemetry-utils/dist/sampledTelemetryHelper.d.ts","../../../../utils/telemetry-utils/dist/utils.d.ts","../../../../utils/telemetry-utils/dist/index.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/users.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/clients.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/config.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/consensus.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/date.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/protocol.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/scopes.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/tokens.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/sockets.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/storage.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/summary.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.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/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/deltas.d.ts","../../../../common/container-definitions/dist/error.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/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/id-compressor/identifiers.d.ts","../../../../runtime/runtime-definitions/dist/id-compressor/persisted-types/0.0.1.d.ts","../../../../runtime/runtime-definitions/dist/id-compressor/persisted-types/index.d.ts","../../../../runtime/runtime-definitions/dist/id-compressor/idCompressor.d.ts","../../../../runtime/runtime-definitions/dist/id-compressor/index.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.5.2.0/node_modules/@fluidframework/synthesize/dist/types.d.ts","../../../../../node_modules/.pnpm/@fluidframework+synthesize@2.0.0-internal.5.2.0/node_modules/@fluidframework/synthesize/dist/IFluidDependencySynthesizer.d.ts","../../../../../node_modules/.pnpm/@fluidframework+synthesize@2.0.0-internal.5.2.0/node_modules/@fluidframework/synthesize/dist/dependencyContainer.d.ts","../../../../../node_modules/.pnpm/@fluidframework+synthesize@2.0.0-internal.5.2.0/node_modules/@fluidframework/synthesize/dist/index.d.ts","../../src/test/types/validateSynthesizePrevious.generated.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/assert.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/globals.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/buffer.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/child_process.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/cluster.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/console.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/constants.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/crypto.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/dgram.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/dns.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/domain.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/events.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/fs.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/http.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/http2.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/https.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/inspector.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/module.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/net.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/os.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/path.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/process.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/punycode.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/querystring.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/readline.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/repl.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/stream.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/timers.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/tls.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/trace_events.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/tty.d.ts","../../../../../node_modules/.pnpm/querystring@0.2.1/node_modules/querystring/decode.d.ts","../../../../../node_modules/.pnpm/querystring@0.2.1/node_modules/querystring/encode.d.ts","../../../../../node_modules/.pnpm/querystring@0.2.1/node_modules/querystring/index.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/url.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/util.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/v8.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/vm.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/wasi.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/zlib.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/node_modules/@types/node/ts4.8/globals.global.d.ts","../../../../../node_modules/.pnpm/@types+node@14.18.47/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","42f35378f00626bd70026a9d977901214a00c43c67477d3a53fa6bbf5979d153","8692a1ed3a979fa000b62e01f8d33cf940e030b7af50945176428f9cdd4dca80","4426d86955701c6eb4c29141a9f95bb38506be1430fca5c468367bd9f605b13c","e6a4c5d2de9826a3ba6ae980718b56288f7a63b7c3da3264eecd64005efb93e0","bb06d70baef2b4ce199e6fabb0e698a1cd33050aabe30a18835010d06b1aa2f2","4ae4bde8b45ee46f963238a7ea12c2907726e519a5353a26f2cbfbdd923850e6","470866668f63e372951091f09b059c8c3e93d2683db5ce81ae3aba6babb85b2f","173b80dafcefbeac9a023b545811698f9fff3d0bfd923e71949630c6662dc5c5","05c1168ca40f233c585515704176e9fff50bd696c6a704592db948fa15587a71","145a2f2032abdf710a7da87db76147469c9187f8326ff36013bb310bf7983280","9fc78d30c03569a212f87b4b2eb0713813c91ac60ac43d09aa5f1e45e72b0a78","19f45b384af756ddcce7b90b47101c1ae010be89cc6e56502a9df5da41fdd150","179e239873ff2be3f1aab2573609ffec7c80b29a2ace5c7e89386422a2c63996","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","78828b06c0d3b586954015e9ebde5480b009e166c71244763bda328ec0920f41","e1818e0fda127bd741e88a7e542cf693606de95ce3fb3a3fb91146e5658cb67d","37dd666433e9359830531617aa7f0c69de6ad40e2b96637620322978a5724505","83f8377dca0b114c1517321df5d9870b2459c49289aec0bd9c23fe5c01244f2b","fabf53b6038fb84d618fe396f864979f8f6b26b18bd25d9cb01f153b07309047","739e7da9825029dead52b83a8e58525f8ecc5881ed25eb09744c9cad3ad90233","471510298742cdd3a5613a7eb84efd472abc2ef8bae510a767ac0bff05d3ae9d","d2de12ae0f86d9dae881b4c1534063fce79b19035c1b507954b11b062ece6dc7","910acae3ceaba3aba35fb52656476aca547b1585f4a10cc272acb50bb08692a6","be19f779f44110e9967b2b159640113936a3b28804a988048ac90ccde21e58c3","400db42c3a46984118bff14260d60cec580057dc1ab4c2d7310beb643e4f5935","ea220a6083461917eeb9ed97acbbcf40be1d901d100cfa2f99f64be481449415","086590542697953a90746a49e0b45e2ac0b79af34a005159f06cb70a977742d1","3492be117d889e6ed80e99603f4fc105b533ee66853587e8a6affdb335cda68a","5e95a5824c77f06f492ec61f3abb3898ff8d56d3130bbacc745853e49d28cd1d","3ad0fff4a0d23d591ab29a6efc91d224600285fe23281e3d0b5c643aa1b4bee5","38af778857e4f07da8ddf6d1dcda7bf4b501455252a2c98006f7c3344fd7f526","a10937d6dfa554517552385abaedbd1bc6fdcb9701aee152e102aac5a2c82746","cbc30ee9638dfc01433d6744616e943a08ea49e612641a9d32cb591540f3b745","da77abbc2aa8976ccdff0e03552ca451291855ea252ff13681f9a799c0e55104","aeac02036e239ed2c449e54fbd332d14ae559da38fc9c2f1372313b5f6a38be2","145a2f2032abdf710a7da87db76147469c9187f8326ff36013bb310bf7983280","3e83be6adc13f0ba2b0bb5ef2fef29516877660f158ed6fdd777de2c27f7bbad","27a8c3b5f6ffc0145fa9ce6d3abe875def31c5d06b171811948457a030959a6f","bf888e7b557ad080706efcd90f51fa17aae3e218974a7fd3d0592cc1ba878206","827bbb801acea177785b6be117e03778ccc507d66a02649468cb2f4f29487bb9","f7594c36bb7e4a4936df3ba1e078f39009a0f3a39bc76899a075d1c690752002","df5f5ef444206c89f7f28b04ce9f4e0592cdeb7b3fb0534490487edb1654c4f4","504625fd2aff6b50298999996a66c6da9ffa84f8de390df20f4c53e6905c0ff3","abdbf9481ecd7286865ed77d5083fe36bfad7fc7d66c319bc95b2fc219212926","85d0bfd4563dd0076f81db827fa4d1947fee600ac62a0e7148f292c1564e6971","3bb64dbd0a1873e2518f36c9c2c34788ab54c45f809b5a06349e6732155e98d1","457107fc7be5fa5104c14505d06f626933b83507b4690620fb46ad2d3135a843","764cc00bf62af0e79dae1c54818e094c0719da96aaef9035dc07b4f907ab7d15","5bcb5b4554083521d963c22321c261d0586f5351c7d04638c3fdc230bc5f5619","81e0e32cf69d50c8ae13939fd90b2b37f1403ec8d7d1a02331817401a6d8a073","4174d10cfc4bd827e7b817efd7bd3e8e710dc4a5f452f4f11a2075ca96bc9170","a5abf69f7817f5dc8e4c3001991c95c77ebc111f0ec527de36164caa6246713e","070835ed63e12e4e59197cd6ff16bed4a3ef6bb20e8dbd60fcebce927248e7ed","0bb79bf94316aec0e1598aa849a8296c7c2d2e46855fae45996bbbcd8982413d","ae7048f2327b0d52223f51203fa73363deaedb2f1d397b5e37b0dedb24b2e7fb","7da49d6be542ee6f7f8810a19ffe351a93562ea99ac68a93d0a701f344389b05","c21365787186bd17f0ed204809bdfd0b50130494593fd1c0657b5b1a2d87afcc","3e429571f8c1d2355f0c105b706308a24d39b8949ca5868173cf0f75f8e40f49","0f75868c59fb4a2a90c582e505f1430589b7b1e104717bb8e815b20be65d6aa2","7c3f74377e2f69f3af629df55db463ac4925387856002def14fe1315b8d510f3","0cddcb7ba04b5b29e94625569b51a617c4c9cab53aef766a5e81525462e713c7","66489d246ba00e82db76453f7be5be7cd675c142889b72a1ff55ca0217eb1d79","57c96478eedfdd3475a42d496d9657d8630923f67f948ecbb778c6b648816fb8","3688605c5b12fec84e5df13f5c929eb7587ec78ff0d24c66b5aa5d9efb0e3bcc","a52c6afbe0ec23184e76be73d8ca1bcb49eba8a365ba14edc5a65f029ee70f13","1e1d138e69649922c821f854eb00ba9810589aebef9b4750ca0da9b245aa5854","aed2635e02adec91ce142ee599b4fdef2f1be7dcf453f3257243bad8017dfca6","62cccb71cc5f41ae03c8167140da03f442a7cd816a0a987136419fbb87d89227","58387e8de574c692d78eaa4dfc42889e8e454f616eedff84419ab6726f752f88","b7cf610e8c794ad23f19212c6038eb3b08eda1d55ed49eba4fc1349e3cf7196e","8b0a50352edc23ac84bf495e1aa20383202779c136584b2fc39f9cff09774888","681cc197a3dda661c77dfc404bc48db71228ffbdbb785000bc51199449648b1a","b533f0688fd08d51b1ec1bb549032167c27deca532bd1a85b20da91000ffca3b","2ed8643d1dfa5196c5ffcdeb68d11bf05385c168931c215bab03db31a426feaa","0a6997abe9bda69fa09d0d4ac2296df30525b231e7c38f209adcbbd00769c903","548af24393bbe7d771e46a33cfb7cc2dd03b156561d12469dad1cbdb839a3420","fce9d3a4e55394601f5a62a50ad37901a2f2faeedf5a4f56ebf64aa2dba02b58","8023ac345236d4f16563d8dee36b7db6a3b58d2d478c2de674cbd70ce0249737","4adb8bfbe85205b35edd58ddc92ce0fc07307083dbbf06a49355f1ebb5ae4470","32e3bfb86d5c8e7b6b6fc0d571a5397b1138e18af6febe034367373bd3cfcfa3","5b2debe8985bcff53d529e829cd163fc3dbfd172eab26eba2836efc4d093e198","bcb2b5ec9bb438a4a2ec0b66e7c623ed32784dedc3ef49b6ef48c700085dd803","679b5b0c89d9f3dc3b64bbb73ac7172b8ca05b9e26ef502f52a71c3411c84723","9f60552d7e485c84c18e4b6456500b291e91467fb998efd27ff65b9a5443b6c1","159e48a2b2e5e45a9902696f1f0871cb883db2b33b34558a31848432abd53cea","c194b78640eb0e427056ecf3bbe5e9703f08b281ead442354bcf1f6b7994e72c","e0c19c54361dbae30ecc8b49845230eed3f36209a717393bd3ead1ff7643e649","c48b614bb1becb2573740883e1b8c1cd0f182d49be7f74ddae3ff063c539e1ba","580a2117aabc8b1077710401f7ee90cd675bc5c2a28e4c00ef3ac3f139aabe25","e3ec0cbe82030d5f50c79438c280cc86bed1dabe581d59722134697d93146230","a3002007d937e78177933c60a3f3e16b9d8957cd7f2971f9cb49f46a28e5b650","8bf252ef6f7a409baeb42fcc9befa1ab94489ae394e6dd1c94ff779ed0f539b5","9dd8878b1333c3fdf16f714ee65be17625472044f6abe39b11379b4c13128d89","f2f75931453414c93a462e16d1c8705792402836c8337616de10260a7740606e","316b63eb3ed152f664526ea7fc177c9f5d9c1060feef3f39c8799b0cca93562a","28780f37a295567c6d2855a3ebe9cd72ce86e2ac7133cc8772e8411576c2b9e2","829c10c3b482cb6b308f1b4c38a650f08e81cad6eb92218d0ba269b2f525c412","4875b165a1ebddf149079cce60a3146443e6f6798e094c2dc5f3c109e2ecf14b","89113d949c98774f47f96209bd076d6b53085b1b908fb86f694633873ddb8ca1","86209cb1e5616a78a61dc7003d95b98a7c235c3bb1add4fed9f4564f3db35d0c","ad9d4046f9283edf3f803118d70afd0736bd4b0bd0d3d5e4e06d8a9df121cfc8","0019f06f88e66fa5371d8eebb0e81dc749e54a8f65f8ec9b59760c77e759e46e","b39f8ed8e78b9d2f7b2bf20ddb9a608a505ba770870e1104eef8e64e81d60c86","f00155eae1bf0b4edea1230126aff57c010a14f8542291a2848dd3846db4cc5d","2508a122a9fbd08c5b7351d50e055793e95aecf2abdff51de831959f54e3b100","ff32ff7b4cd23c94876e916295b3b16dd9f9591ece804ac9da6a1cc161c12b4f","0019f06f88e66fa5371d8eebb0e81dc749e54a8f65f8ec9b59760c77e759e46e","b39f8ed8e78b9d2f7b2bf20ddb9a608a505ba770870e1104eef8e64e81d60c86","f00155eae1bf0b4edea1230126aff57c010a14f8542291a2848dd3846db4cc5d","2508a122a9fbd08c5b7351d50e055793e95aecf2abdff51de831959f54e3b100","3b53dc0f9aff4280f9e4a59cf1ec8c5860a8c1d08672e7bea7e8b1bb57e9ff4d","4c2c4f53e8eedd970f8afa369d7371544fb6231bf95e659f8602e09abe74d5a5",{"version":"37c79b2172bf5b4cd35e0c47485bc38f34f07380cd6c98935bb5d5d0fd47ceaf","affectsGlobalScope":true},"c2b5085f47e41d6940bbc5b0d3bd7cc0037c752efb18aecd243c9cf83ad0c0b7","3143a5add0467b83150961ecd33773b561a1207aec727002aa1d70333068eb1b","f87191b7fafe7a0edad375710d99f900e49cef560b66bf309cf3f8e1b7177126","d0fc76a91c828fbe3f0be5d683273634b7b101068333ceed975a8a9ac464137b",{"version":"1a048ff164b8d9609f5de3139d4e37f6e8a82af82087ac414b9208f52ef8aac7","affectsGlobalScope":true},"3111079f3cb5f2b9c812ca3f46161562bce5bfb355e915f46ed46c41714dc1c3","db86f82fac051ae344b47e8fe7ac7990174b41db79b2b220a49dc5a47c71a9b5","b32b6b16cb0bda68199582ad6f22242d07ee75fac9b1f28a98cd838afc5eea45","4441ee4119824bfaebc49308559edd7545978f9cb41a40f115074e1031dde75f",{"version":"60693a88462d0e97900123b5bf7c73e146ce0cc94da46a61fe6775b430d2ff05","affectsGlobalScope":true},{"version":"588c69eda58b9202676ec7ca11a72c3762819b46a0ed72462c769846153c447c","affectsGlobalScope":true},"ae064ed4f855716b7ff348639ddcd6a6d354a72fae82f506608a7dc9266aa24c","92f019c55b21c939616f6a48f678e714ac7b109444cbbf23ad69310ce66ecbdc","cf0a69c71aedf2f8fe45925abd554fd3dc7301ce66d6ab7521fb8c3471c24dd8","97f837637f01e274ada9de388e99b1a5c5a82ae4184f8c924209fe201f4ffc9e","139fd681eff7771a38d0c025d13c7a11c5474f6aab61e01c41511d71496df173","f614c3f61e46ccc2cb58702d5a158338ea57ee09099fde5db4cfc63ed0ce4d74","44e42ed6ec9c4451ebe89524e80ac8564e9dd0988c56e6c58f393c810730595d","a504c109b872b0e653549bd258eb06584c148c98d79406c7516995865a6d5089","155865f5f76db0996cd5e20cc5760613ea170ee5ad594c1f3d76fcaa05382161","e92852d673c836fc64e10c38640abcd67c463456e5df55723ac699b8e6ab3a8a","4455c78d226d061b1203c7614c6c6eb5f4f9db5f00d44ff47d0112de8766fbc4",{"version":"ec369bb9d97c4dc09dd2a4093b7ca3ba69ad284831fccac8a1977785e9e38ce5","affectsGlobalScope":true},"4465a636f5f6e9665a90e30691862c9e0a3ac2edc0e66296704f10865e924f2a","9af781f03d44f5635ed7844be0ce370d9d595d4b4ec67cad88f0fac03255257e","f9fd4c3ef6de27fa0e256f4e75b61711c4be05a3399f7714621d3edc832e36b0","e49290b7a927995c0d7e6b2b9c8296284b68a9036d9966531de65185269258d7","aa95cc73ea5315e4f6fc8c6db43d49e3b7de3780cae20a4f1319032809013038","874ca809b79276460011480a2829f4c8d4db29416dd411f71efbf8f497f0ac09","6c903bceaf3f3bc04f2d4c7dcd89ce9fb148b3ba0a5f5408d8f6de2b7eecc7ea","504d049d9e550a65466b73ca39da6469ab41786074ea1d16d37c8853f9f6ab2e","23a28f834a078986bbf58f4e3705956983ff81c3c2493f3db3e5f0e8a9507779","4febdf7f3ec92706c58e0b4e8159cd6de718284ef384260b07c9641c13fc70ce","ad7e61eca7f2f8bf47e72695f9f6663b75e41d87ef49abdb17c0cb843862f8aa","ecba2e44af95b0599c269a92628cec22e752868bce37396740deb51a5c547a26","46a9fb41a8f3bc7539eeebc15a6e04b9e55d7537a081615ad3614220d34c3e0f",{"version":"7d0a3356909df08e5df9af2cfd43e8780f24bb12d07b00daaf7ed2a891fa60e5","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":[[51,52,53],[54],[54,57,155],[60],[47,48,49,50,55,57,58,59,62,64,65,66,67,68,69,70,71,72,73,74],[60,61,63],[62],[54,155],[87],[54,88],[87,88,89,90,91,92,93,94,95,96,97],[88,89,92,94],[91],[138],[138,139],[138,139,140],[141],[45],[143],[145],[146,151],[147,155,156,163,172],[147,148,155,163],[149,182],[150,151,156,164],[151,172],[152,153,155,163],[153],[154,155],[155],[155,156,157,172,181],[156,157],[158,163,172,181],[155,156,158,159,163,172,175,181],[158,160,172,175,181],[143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,181,182,183,184,185,186,187,188],[155,161],[162,181],[153,155,163,172],[164],[165],[145,166],[167,177],[168],[169],[155,170],[170,171,182,184],[155,172],[173],[174],[163,172,175],[176],[163,177],[158,169,181],[182],[172,183],[184],[185],[155,157,172,181,184,186],[172,187],[178,179],[98,155],[100],[37,54,98,102,105],[37,102],[37,100,102,108],[99,100,101,106,107,108,109,110],[37,54,98,99,100,102,105,106,107,108,109],[37,98,99,100,102,105,106,107,110],[32],[30,31,33],[30,31,32,33,34,35,36],[39,40,41],[102],[102,103,104],[37,54,98,102,103],[133],[133,134],[133,134,135],[136],[37,42,102,132,133,134,136,143],[136,141],[37,98,102,124,125,126],[37,54,98,102,111,124,130],[125,126,127,128,129],[37,102,128],[37,75,86,98,102,111,124,130],[38,131],[98],[37,54,98,102,105,111,113,114,115,116,117,122],[123],[113],[118,120],[118,120,121],[118],[119],[112,113,114,115,116,117,122,123],[37,98,102,115],[37,42,43,102],[37,46,76,102],[37,43,78,102],[54,75],[43,155],[43,44,76,77,78,79,80,81,82,83,84,85],[37,43,75,102],[37,43,76,102],[37,43,102],[43]],"referencedMap":[[54,1],[55,2],[58,3],[61,4],[75,5],[64,6],[66,2],[63,7],[57,8],[88,9],[90,10],[98,11],[95,12],[96,13],[94,9],[139,14],[140,15],[141,16],[138,17],[46,18],[143,19],[145,20],[146,21],[147,22],[148,23],[149,24],[150,25],[151,26],[152,27],[153,28],[154,29],[155,30],[156,31],[157,32],[158,33],[159,34],[160,35],[189,36],[161,37],[162,38],[163,39],[164,40],[165,41],[166,42],[167,43],[168,44],[169,45],[170,46],[171,47],[172,48],[173,49],[174,50],[175,51],[176,52],[177,53],[181,54],[182,55],[183,56],[184,57],[185,58],[186,59],[187,60],[180,61],[99,62],[101,63],[106,64],[107,65],[109,66],[111,67],[110,68],[108,69],[33,70],[32,71],[37,72],[42,73],[103,74],[105,75],[104,76],[102,65],[134,77],[135,78],[136,79],[133,80],[137,81],[142,82],[127,83],[126,84],[130,85],[129,86],[131,87],[38,65],[132,88],[112,89],[123,90],[113,91],[114,92],[121,93],[122,94],[119,95],[120,96],[124,97],[116,89],[117,98],[44,99],[77,100],[79,101],[80,102],[81,103],[78,65],[86,104],[76,105],[82,106],[84,107],[43,65],[83,108],[85,65]],"exportedModulesMap":[[54,1],[55,2],[58,3],[61,4],[75,5],[64,6],[66,2],[63,7],[57,8],[88,9],[90,10],[98,11],[95,12],[96,13],[94,9],[139,14],[140,15],[141,16],[138,17],[46,18],[143,19],[145,20],[146,21],[147,22],[148,23],[149,24],[150,25],[151,26],[152,27],[153,28],[154,29],[155,30],[156,31],[157,32],[158,33],[159,34],[160,35],[189,36],[161,37],[162,38],[163,39],[164,40],[165,41],[166,42],[167,43],[168,44],[169,45],[170,46],[171,47],[172,48],[173,49],[174,50],[175,51],[176,52],[177,53],[181,54],[182,55],[183,56],[184,57],[185,58],[186,59],[187,60],[180,61],[99,62],[101,63],[106,64],[107,65],[109,66],[111,67],[110,68],[108,69],[33,70],[32,71],[37,72],[42,73],[103,74],[105,75],[104,76],[102,65],[134,77],[135,78],[136,79],[133,80],[137,81],[142,82],[127,83],[126,84],[130,85],[129,86],[131,87],[38,65],[132,88],[112,89],[123,90],[113,91],[114,92],[121,93],[122,94],[119,95],[120,96],[124,97],[116,89],[117,98],[44,99],[77,100],[79,101],[80,102],[81,103],[78,65],[86,104],[76,105],[82,106],[84,107],[43,65],[83,108],[85,65]],"semanticDiagnosticsPerFile":[51,52,54,53,47,48,60,49,50,55,58,61,59,75,64,65,66,62,63,67,68,69,70,71,72,73,57,74,88,89,90,91,98,92,93,95,96,97,94,87,139,140,141,138,46,56,190,45,143,145,146,147,148,149,150,151,152,153,154,155,156,157,144,188,158,159,160,189,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,181,182,183,184,185,186,187,178,179,180,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,99,101,106,107,109,100,111,110,108,35,33,34,30,32,37,36,31,39,42,40,41,103,105,104,102,134,135,136,133,137,142,127,126,130,128,129,125,131,38,132,112,123,113,114,115,121,118,122,119,120,124,116,117,44,77,79,80,81,78,86,76,82,84,43,83,85]},"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.es2019.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.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.es2019.array.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2019.symbol.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.es2020.promise.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../node_modules/.pnpm/typescript@4.5.5/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../common/core-interfaces/dist/disposable.d.ts","../../../../common/core-interfaces/dist/error.d.ts","../../../../common/core-interfaces/dist/events.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/logger.d.ts","../../../../common/core-interfaces/dist/index.d.ts","../../../../runtime/datastore/dist/fluidHandle.d.ts","../../../../common/client-utils/dist/base64Encoding.d.ts","../../../../common/client-utils/dist/bufferShared.d.ts","../../../../../node_modules/.pnpm/@types+events@3.0.0/node_modules/@types/events/index.d.ts","../../../../common/client-utils/dist/typedEventEmitter.d.ts","../../../../common/client-utils/dist/eventForwarder.d.ts","../../../../common/client-utils/dist/bufferNode.d.ts","../../../../common/client-utils/dist/hashFileNode.d.ts","../../../../common/client-utils/dist/performanceIsomorphic.d.ts","../../../../common/client-utils/dist/performanceNode.d.ts","../../../../common/client-utils/dist/indexNode.d.ts","../../../../common/client-utils/dist/trace.d.ts","../../../../common/client-utils/dist/index.d.ts","../../../../common/core-utils/dist/assert.d.ts","../../../../common/core-utils/dist/compare.d.ts","../../../../common/core-utils/dist/delay.d.ts","../../../../common/core-utils/dist/heap.d.ts","../../../../common/core-utils/dist/lazy.d.ts","../../../../common/core-utils/dist/promiseCache.d.ts","../../../../common/core-utils/dist/promises.d.ts","../../../../common/core-utils/dist/timer.d.ts","../../../../common/core-utils/dist/unreachable.d.ts","../../../../common/core-utils/dist/index.d.ts","../../../../utils/telemetry-utils/dist/telemetryTypes.d.ts","../../../../utils/telemetry-utils/dist/logger.d.ts","../../../../utils/telemetry-utils/dist/config.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/users.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/clients.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/config.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/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/consensus.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/date.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/protocol.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/scopes.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/tokens.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/sockets.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/storage.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/summary.d.ts","../../../../../node_modules/.pnpm/@fluidframework+protocol-definitions@1.2.0/node_modules/@fluidframework/protocol-definitions/dist/index.d.ts","../../../../utils/telemetry-utils/dist/fluidErrorBase.d.ts","../../../../utils/telemetry-utils/dist/errorLogging.d.ts","../../../../utils/telemetry-utils/dist/error.d.ts","../../../../utils/telemetry-utils/dist/eventEmitterWithErrorHandling.d.ts","../../../../utils/telemetry-utils/dist/events.d.ts","../../../../utils/telemetry-utils/dist/mockLogger.d.ts","../../../../utils/telemetry-utils/dist/thresholdCounter.d.ts","../../../../utils/telemetry-utils/dist/sampledTelemetryHelper.d.ts","../../../../utils/telemetry-utils/dist/utils.d.ts","../../../../utils/telemetry-utils/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/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/deltas.d.ts","../../../../common/container-definitions/dist/error.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/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/id-compressor/identifiers.d.ts","../../../../runtime/runtime-definitions/dist/id-compressor/persisted-types/0.0.1.d.ts","../../../../runtime/runtime-definitions/dist/id-compressor/persisted-types/index.d.ts","../../../../runtime/runtime-definitions/dist/id-compressor/idCompressor.d.ts","../../../../runtime/runtime-definitions/dist/id-compressor/index.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.6.3.0/node_modules/@fluidframework/synthesize/dist/types.d.ts","../../../../../node_modules/.pnpm/@fluidframework+synthesize@2.0.0-internal.6.3.0/node_modules/@fluidframework/synthesize/dist/IFluidDependencySynthesizer.d.ts","../../../../../node_modules/.pnpm/@fluidframework+synthesize@2.0.0-internal.6.3.0/node_modules/@fluidframework/synthesize/dist/dependencyContainer.d.ts","../../../../../node_modules/.pnpm/@fluidframework+synthesize@2.0.0-internal.6.3.0/node_modules/@fluidframework/synthesize/dist/index.d.ts","../../src/test/types/validateSynthesizePrevious.generated.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/assert.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/assert/strict.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/globals.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/async_hooks.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/buffer.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/child_process.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/cluster.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/console.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/constants.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/crypto.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/dgram.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/dns.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/dns/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/domain.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/events.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/fs.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/fs/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/http.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/http2.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/https.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/inspector.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/module.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/net.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/os.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/path.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/perf_hooks.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/process.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/punycode.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/querystring.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/readline.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/repl.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream/consumers.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/stream/web.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/string_decoder.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/test.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/timers.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/timers/promises.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/tls.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/trace_events.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/tty.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/url.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/util.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/v8.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/vm.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/wasi.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/worker_threads.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/zlib.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/node_modules/@types/node/ts4.8/globals.global.d.ts","../../../../../node_modules/.pnpm/@types+node@16.18.38/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","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"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":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"e6a4c5d2de9826a3ba6ae980718b56288f7a63b7c3da3264eecd64005efb93e0","7f51c285f4b814e94a6261be290c1f5457985bb8822778dee63b1213a53ed295","1a79a355d81a5f4a13236abd8eab887231be0c1de5dd5596ee3579507738ad2f","766d8c595f94c9fe9dbb779b60d7a4d6d7a6526ef22090ccedbc658c2d8c77e0","886caa9a9dfc44747e78482fcfaf3efc3cf58e76e492c634be632c2e9455d20a","42f35378f00626bd70026a9d977901214a00c43c67477d3a53fa6bbf5979d153","8692a1ed3a979fa000b62e01f8d33cf940e030b7af50945176428f9cdd4dca80","23ecd927772206248ddfbccaaab19d44ed1de4c8974f1925fb2db71d3cf64259","b02a21f4246834a23a48220a152092b3ab9a62b466a7fd7a36ee12113101b1ce","66824e3d15fc78a3801cd65e9c0c6d1b49829d4ad4b95d0cbe188fd1ab073cc0","470866668f63e372951091f09b059c8c3e93d2683db5ce81ae3aba6babb85b2f","7112c0d71827b4364af0b1eff05155cc5cf6deb097db154fee91a655333d9cf1","076b6366d3b47a8a8ee77466bdc03b275275bd74683b4c39185b50dd6b1ea004","400db42c3a46984118bff14260d60cec580057dc1ab4c2d7310beb643e4f5935","6e935c98f94ea50e785203e05a61167ce4b49adc0a246c39ba7fc08603faf2df","088a3c9629bc5ebef938497adcd19eb477052700e8fa558d814d022632dc6281","14d13f9fbd45c6c7a945dce89597e27228f0c52fd77b0675e29f1c5daf48fdc5","4fb1c2c9198b2f4ef9d4d714fe2dea20bfa28faa267e4f178b0665e91ca19977","768154060c6e7683db7ee5ca06adcc8e0f7ed246c785843835ae006345876033","b0a1d2a01909faf47e60e66d8c11591fc09952882336fe6f179157c94e99e40f","cbc30ee9638dfc01433d6744616e943a08ea49e612641a9d32cb591540f3b745","273cafb90b9f1761407cb4a0e767458abec0045fc8c75048c724195954e0409b","16a6622b04269b445d26f79e1cfe294dbce606ab89ac031dfc5d897400c2a05c","cd907bda2734ba460eaf34446b8c6fb3a557c64fc1ef71bd2d4d969b3df466bc","173b80dafcefbeac9a023b545811698f9fff3d0bfd923e71949630c6662dc5c5","fabf53b6038fb84d618fe396f864979f8f6b26b18bd25d9cb01f153b07309047","3492be117d889e6ed80e99603f4fc105b533ee66853587e8a6affdb335cda68a","05c1168ca40f233c585515704176e9fff50bd696c6a704592db948fa15587a71","145a2f2032abdf710a7da87db76147469c9187f8326ff36013bb310bf7983280","4132fa047e6af739d2ce3d3b705ee7a748fb9aa1e7ae39d0df76afdd1ef3aa4a","f7594c36bb7e4a4936df3ba1e078f39009a0f3a39bc76899a075d1c690752002","d1d4798b6250562da877604a7271fda733d7b3e7b6bf9ea312b187bc5064ec5b","2e7c388cc40b7abe4d9f2fc6c3d76585e6b6df5cadac7a0cfaa03735377e10db","2be3c7c8992a2bc2f211671695e5f2521c1cfbebbdfa1c3c1d6c6d37b7f72a5f","a4cfa6181af45a6d26d59bb46dbf0a9fd2f59467c5f7a2f2288b0c07a6e5718f","19f5106dcc5d662da6dcd203b17047fb1b93257485a798a2ac8f1fd7c5a17dff","7da49d6be542ee6f7f8810a19ffe351a93562ea99ac68a93d0a701f344389b05","c21365787186bd17f0ed204809bdfd0b50130494593fd1c0657b5b1a2d87afcc","3e429571f8c1d2355f0c105b706308a24d39b8949ca5868173cf0f75f8e40f49","739e7da9825029dead52b83a8e58525f8ecc5881ed25eb09744c9cad3ad90233","471510298742cdd3a5613a7eb84efd472abc2ef8bae510a767ac0bff05d3ae9d","d2de12ae0f86d9dae881b4c1534063fce79b19035c1b507954b11b062ece6dc7","910acae3ceaba3aba35fb52656476aca547b1585f4a10cc272acb50bb08692a6","0f75868c59fb4a2a90c582e505f1430589b7b1e104717bb8e815b20be65d6aa2","7c3f74377e2f69f3af629df55db463ac4925387856002def14fe1315b8d510f3","0cddcb7ba04b5b29e94625569b51a617c4c9cab53aef766a5e81525462e713c7","66489d246ba00e82db76453f7be5be7cd675c142889b72a1ff55ca0217eb1d79","57c96478eedfdd3475a42d496d9657d8630923f67f948ecbb778c6b648816fb8","3688605c5b12fec84e5df13f5c929eb7587ec78ff0d24c66b5aa5d9efb0e3bcc","a52c6afbe0ec23184e76be73d8ca1bcb49eba8a365ba14edc5a65f029ee70f13","1e1d138e69649922c821f854eb00ba9810589aebef9b4750ca0da9b245aa5854","aed2635e02adec91ce142ee599b4fdef2f1be7dcf453f3257243bad8017dfca6","15c1facca408116f02bd56703edcec13f9cf7f6019d26efbab3f082d11222eb5","52cadac7aef71ef776fec121fd6fc585a38d2b9c46f241b7d797af6d44992777","cf51f0de6c7e4a99bd53ae051683643602513b1dcc9952b228ea34d44b16592f","4d9865a4442693fa12e6e77fa03c79c1ecdd29ea7853ac51de21d6c260c52949","3061ae5102975780a960039017f83cda8699f21bc335144cb59dcb8555093839","c988137eb41d93423ba0cfcf1158c80e91697cd1cf806aabc2e7fb6140036f82","a5abf69f7817f5dc8e4c3001991c95c77ebc111f0ec527de36164caa6246713e","4235efd3136ce2441c583051d084420c44aa5b7d4783be076ab4bf30429d9936","06fa11d659ece5e3a2fca4adcddcf2ff00be96c00b56c51f8d4c0a53ecb3399c","b068d31f0a519ab90a059fc53bf6f001e2728d995f955199e23cc777689365e5","62cccb71cc5f41ae03c8167140da03f442a7cd816a0a987136419fbb87d89227","f57abead101a3ccd12d52217a20e103de355f33a23eec82c360435ab2a95a531","65dd3e8a3b653eb75c9950f721af21d0bac57421fc05beb63a08b7fe1e1b7300","09fce7d86f377bdd2c4753c26b44034bec2ae51dd8239e538d601028b3a0cc1c","297bf92969564b1501ce6b9bb7a46783e4c6a12423832bf487cf8d4b26927d66","f0a2d0180d3d7bd9ac60187fb379e3ea1ce58a99cab4f40bea720a2df9025424","7d4f2764bec71a8a6d0705b9238c0330a97861626a2b0ea5ee1ede79863ee7ed","1ae9ee2f1a0b40e50a1a000c152034955ef493d0cc68525ed457c99fb96a9fee","f791fa974acb24c34324e79810db90643e82c13b32e41674f25582e44e7e4e72","d4952f0056e8a3cee21827e7d1d3c6b1655977992aaec06ce2bd37922e2e7ec1","8023ac345236d4f16563d8dee36b7db6a3b58d2d478c2de674cbd70ce0249737","72b1b01a46281e40a20bf45c63c9f0f5d16728923194bab73e920f0a4e007102","749a73fd7df5476b352b56f3e28f0349ac5b21bb45230c84b47fdefff1d62262","125cf8875d0223255292df81aa6cf525f9ea4743a8d6608e0c117ff0153218e5","bcb2b5ec9bb438a4a2ec0b66e7c623ed32784dedc3ef49b6ef48c700085dd803","679b5b0c89d9f3dc3b64bbb73ac7172b8ca05b9e26ef502f52a71c3411c84723","9f60552d7e485c84c18e4b6456500b291e91467fb998efd27ff65b9a5443b6c1","159e48a2b2e5e45a9902696f1f0871cb883db2b33b34558a31848432abd53cea","1b8af5914fca9b669953e9088a90dc3f64dc581cc2b04c680ed2c0f0feb1d8e0","331f38ebbf6919a32a355451bb5c64f453e77b47c4be2ae6993e5e3eba4c707b","a5b0987fcf322b1ed52c73640609c84c58be8c1a14812d3428b704812d24bc17","cec0fc2dc35982e8b1ac694faa6c689675a4f7a6114a42e0c19e1fe57f09d8a7","089e4f73ebd2e9c924dc844fe576340b544282f2aa5a958cc44934b14da08341","4094d791534eff678c749e986b5d242ac665ebdf8b845f371caff7de6a6634ee","a0635207a75a2c2698a18216b082429eef17c7c890501c530a7f5125b6a3c44a","6bc535080ef2e81c2003929a4c053b5a6f03468386d8c7fe116d0c53a360ac95","f2f75931453414c93a462e16d1c8705792402836c8337616de10260a7740606e","496a23c2c808f70a0e7421f9d115fbd91ac62765e21cfdbc05b20e9b8f112eeb","7168c1cc970fd8aa323edad4e28f9a2ce0a61004104f3ba8b3e7d2334ec0808c","9ff2dc9df708126b098716fdf58738ac48fc4ec11ca0de5347f71e9d35db4098","ba436229bac9b8d1d6dd7f28d17f6b55f8538e259a605bf918b0041a6c53cc9c","89113d949c98774f47f96209bd076d6b53085b1b908fb86f694633873ddb8ca1","b4b33eb1725bf4b411b5b631515d1d66d2f2555c00c0022dd0d14ee0dc01e943","ad9d4046f9283edf3f803118d70afd0736bd4b0bd0d3d5e4e06d8a9df121cfc8","8a22564ed47fbc78896a9dea2f7bb46dfb85605864f1532c2e51ad66fd421af3","b39f8ed8e78b9d2f7b2bf20ddb9a608a505ba770870e1104eef8e64e81d60c86","f00155eae1bf0b4edea1230126aff57c010a14f8542291a2848dd3846db4cc5d","2508a122a9fbd08c5b7351d50e055793e95aecf2abdff51de831959f54e3b100","ff32ff7b4cd23c94876e916295b3b16dd9f9591ece804ac9da6a1cc161c12b4f","0019f06f88e66fa5371d8eebb0e81dc749e54a8f65f8ec9b59760c77e759e46e","b39f8ed8e78b9d2f7b2bf20ddb9a608a505ba770870e1104eef8e64e81d60c86","f00155eae1bf0b4edea1230126aff57c010a14f8542291a2848dd3846db4cc5d","2508a122a9fbd08c5b7351d50e055793e95aecf2abdff51de831959f54e3b100","3b53dc0f9aff4280f9e4a59cf1ec8c5860a8c1d08672e7bea7e8b1bb57e9ff4d","d655233b800bf949a46bdf90c9830d1aa4e3017864e2f18ec25ad4c3511e891e","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"a558bcef01ec7b06465c6c754d0c2b47ecc8d3e877051eac3014afa11ed51248","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"ad0d1ec49330f9155698108dcd923031626500d80006e94cc07102c7be907ec8","affectsGlobalScope":true},"fa9257e0d44930c1c6765fec51133a65721a8cdfc385d92926b64f78c662b7bb","6816b69b0921d55c3fe01e614a11af57e87209b8ef96b73c09bcce827a71d7d7",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","6bf5e8ef80f3a5acb7350a8bfaf537da6102e823b43b5d324e2fbe98bcda76f0","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","1fe890b27eb2539f40c281729b863111453b8dd848188d0f6aa8676c2c03286c","18f177e442b4cdbc5efb82e7c344201a11e4a4342ff1f19f8765b849e254e2ec","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","06ccebc2c2db57d6bdbca63b71c4ae5e6ddc42d972fd8f122d4c1a28aa111b25",{"version":"81e8508d1e82278f5d3fee936f267e00c308af36219bfcee2631f9513c9c4017","affectsGlobalScope":true},"463efd627d153a27705e807a001106f9b8b3eb7f8ee17618b67ee35dfc226f5e","58e6ce808ad556f72c4b882546b7cd023c7f5804c854edf77b6a8a6b59b68644","4198acced75d48a039c078734c4efca7788ff8c78609c270a2b63ec20e3e1676","0034f55fd438f31ba1f0b340dceef3b77d9a89f5218e5875a990b4eff2a5714d","288dd0c774a5c6e3964084c7a2bc8cc6b746d70f44a9892d028d04f915cf7ebc","d61c7c41eb1960b1285e242fd102c162b65c0522985b839fadda59874308a170",{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true},"f7011a8d17a06e60dc591fd89b7bf40507d36a5a4d5913fa0eff4e18da001759","d10f4929cd610c26926d6784fc3f9f4120b789c03081b5d65fb2d2670a00fa04","fb0989383c6109f20281b3d31265293daefdd76d0d30551782c1654e93704f48","a4210a84a82b3e7a8cec5b2f3616e46d523f4f10cc1576d8f2fb89d0987b341e",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","22d48bfb37261136423ac687f1fa7bd4dda3083f767416d409a8260cf92bc8fc","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","1269471ffb1fe65ca0430877d1fd1200d8432505df65027dac78ec1a7e847a08","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","698ab660b477b9c2cd5ccbd99e7e7df8b4a6134c1f5711fa615ed7aab51cb7f7","33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637","a4471d2bdba495b2a6a30b8765d5e0282fa7009d88345a9528f73c37869d3b93",{"version":"aee7013623e7632fba449d4df1da92925b27d9b816cb05546044dbfe54c88ef4","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","c9d70d3d7191a66a81cb554557f8ed1cf736ea8397c44a864fe52689de18865a","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"77c64e668dc7e3db451a6c966e475bc9594678a3675489dc8fc2c1240b83c524","affectsGlobalScope":true},"fdf6f22ef3df566a42e056cd430623b691eccca7c83b1c3ba946c0cfb2595e32","196aeae43911b66bac5d87d7eba460c4d27561257737931f5a1e6e1babcf55a6","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"e3685a8957b4e2af64c3f04a58289ee0858a649dbcd963a2b897fe85858ae18a",{"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":7},"fileIdsList":[[191],[80,81,82,191],[77,191],[78,83,191],[77,78,79,84,85,86,87,88,89,90,91,191],[78,79,86,88,191],[85,191],[142,191],[142,143,191],[142,143,144,191],[145,191],[147,191],[150,191],[151,156,182,191],[152,162,163,170,179,190,191],[152,153,162,170,191],[154,191],[155,156,163,171,191],[156,179,187,191],[157,159,162,170,191],[158,191],[159,160,191],[161,162,191],[162,191],[162,163,164,179,190,191],[162,163,164,179,191],[165,170,179,190,191],[162,163,165,166,170,179,187,190,191],[165,167,179,187,190,191],[147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197],[162,168,191],[169,190,191],[159,162,170,179,191],[171,191],[172,191],[150,173,191],[174,189,191,195],[175,191],[176,191],[162,177,191],[177,178,191,193],[151,162,179,180,181,191],[151,179,181,191],[179,180,191],[182,191],[183,191],[162,185,186,191],[185,186,191],[156,170,187,191],[188,191],[170,189,191],[151,165,176,190,191],[156,191],[179,191,192],[191,193],[191,194],[151,156,162,164,173,179,190,191,193,195],[179,191,196],[50,55,106,162,191],[57,191],[52,53,55,56,59,61,62,191],[57,58,60,191],[59,191],[50,106,162,191],[92,162,191],[104,191],[50,92,106,109,191],[50,106,191],[50,104,106,112,191],[50,103,104,105,106,110,111,112,113,114,191],[50,92,103,104,106,109,110,111,112,113,191],[50,92,103,104,106,109,110,111,114,191],[46,191],[44,45,47,191],[41,42,43,44,45,46,47,48,49,191],[64,65,66,67,68,69,70,71,72,191],[106,191],[106,107,108,191],[50,92,106,107,191],[137,191],[137,138,191],[137,138,139,191],[140,191],[50,73,106,136,137,138,140,147,191],[140,145,191],[50,92,106,128,129,130,191],[50,92,106,115,128,134,191],[129,130,131,132,133,191],[50,106,132,191],[50,63,92,102,106,115,128,134,191],[51,135,191],[92,191],[50,92,106,109,115,117,118,119,120,121,126,191],[127,191],[117,191],[122,124,191],[122,124,125,191],[122,191],[123,191],[116,117,118,119,120,121,126,127,191],[50,92,106,119,191],[50,73,74,75,106,191],[50,92,93,94,106,191],[50,74,93,106,191],[50,63,106,191],[74,162,191],[74,75,76,93,94,95,96,97,98,99,100,101,191],[50,63,74,106,191],[50,74,106,191],[74,191]],"referencedMap":[[80,1],[81,1],[83,2],[82,1],[78,3],[79,1],[84,4],[85,1],[92,5],[86,1],[87,1],[89,6],[90,7],[91,1],[88,3],[77,1],[143,8],[144,9],[145,10],[142,11],[54,1],[199,1],[147,12],[148,12],[150,13],[151,14],[152,15],[153,16],[154,17],[155,18],[156,19],[157,20],[158,21],[159,22],[160,22],[161,23],[162,24],[163,25],[164,26],[149,1],[197,1],[165,27],[166,28],[167,29],[198,30],[168,31],[169,32],[170,33],[171,34],[172,35],[173,36],[174,37],[175,38],[176,39],[177,40],[178,41],[179,42],[181,43],[180,44],[182,45],[183,46],[184,1],[185,47],[186,48],[187,49],[188,50],[189,51],[190,52],[191,53],[192,54],[193,55],[194,56],[195,57],[196,58],[8,1],[9,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[4,1],[23,1],[20,1],[21,1],[22,1],[24,1],[25,1],[26,1],[5,1],[27,1],[28,1],[29,1],[30,1],[6,1],[31,1],[32,1],[33,1],[34,1],[7,1],[39,1],[35,1],[36,1],[37,1],[38,1],[1,1],[40,1],[52,1],[57,1],[53,1],[56,59],[58,60],[63,61],[61,62],[59,1],[60,63],[62,1],[55,64],[103,65],[105,66],[110,67],[111,68],[113,69],[104,1],[115,70],[114,71],[112,72],[41,1],[42,68],[43,1],[47,73],[48,1],[44,1],[46,74],[50,75],[49,1],[45,1],[64,1],[65,1],[66,1],[67,1],[73,76],[68,1],[69,1],[70,1],[71,1],[72,1],[107,77],[109,78],[108,79],[106,68],[138,80],[139,81],[140,82],[137,83],[141,84],[146,85],[131,86],[130,87],[134,88],[132,1],[133,89],[129,1],[135,90],[51,68],[136,91],[116,92],[127,93],[117,94],[118,95],[119,1],[125,96],[122,1],[126,97],[123,98],[124,99],[128,100],[120,92],[121,101],[76,102],[95,103],[94,104],[96,105],[97,106],[93,68],[102,107],[75,108],[98,109],[100,109],[74,68],[99,110],[101,68]],"exportedModulesMap":[[80,1],[81,1],[83,2],[82,1],[78,3],[79,1],[84,4],[85,1],[92,5],[86,1],[87,1],[89,6],[90,7],[91,1],[88,3],[77,1],[143,8],[144,9],[145,10],[142,11],[54,1],[199,1],[147,12],[148,12],[150,13],[151,14],[152,15],[153,16],[154,17],[155,18],[156,19],[157,20],[158,21],[159,22],[160,22],[161,23],[162,24],[163,25],[164,26],[149,1],[197,1],[165,27],[166,28],[167,29],[198,30],[168,31],[169,32],[170,33],[171,34],[172,35],[173,36],[174,37],[175,38],[176,39],[177,40],[178,41],[179,42],[181,43],[180,44],[182,45],[183,46],[184,1],[185,47],[186,48],[187,49],[188,50],[189,51],[190,52],[191,53],[192,54],[193,55],[194,56],[195,57],[196,58],[8,1],[9,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[4,1],[23,1],[20,1],[21,1],[22,1],[24,1],[25,1],[26,1],[5,1],[27,1],[28,1],[29,1],[30,1],[6,1],[31,1],[32,1],[33,1],[34,1],[7,1],[39,1],[35,1],[36,1],[37,1],[38,1],[1,1],[40,1],[52,1],[57,1],[53,1],[56,59],[58,60],[63,61],[61,62],[59,1],[60,63],[62,1],[55,64],[103,65],[105,66],[110,67],[111,68],[113,69],[104,1],[115,70],[114,71],[112,72],[41,1],[42,68],[43,1],[47,73],[48,1],[44,1],[46,74],[50,75],[49,1],[45,1],[64,1],[65,1],[66,1],[67,1],[73,76],[68,1],[69,1],[70,1],[71,1],[72,1],[107,77],[109,78],[108,79],[106,68],[138,80],[139,81],[140,82],[137,83],[141,84],[146,85],[131,86],[130,87],[134,88],[132,1],[133,89],[129,1],[135,90],[51,68],[136,91],[116,92],[127,93],[117,94],[118,95],[119,1],[125,96],[122,1],[126,97],[123,98],[124,99],[128,100],[120,92],[121,101],[76,102],[95,103],[94,104],[96,105],[97,106],[93,68],[102,107],[75,108],[98,109],[100,109],[74,68],[99,110],[101,68]],"semanticDiagnosticsPerFile":[80,81,83,82,78,79,84,85,92,86,87,89,90,91,88,77,143,144,145,142,54,199,147,148,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,149,197,165,166,167,198,168,169,170,171,172,173,174,175,176,177,178,179,181,180,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,27,28,29,30,6,31,32,33,34,7,39,35,36,37,38,1,40,52,57,53,56,58,63,61,59,60,62,55,103,105,110,111,113,104,115,114,112,41,42,43,47,48,44,46,50,49,45,64,65,66,67,73,68,69,70,71,72,107,109,108,106,138,139,140,137,141,146,131,130,134,132,133,129,135,51,136,116,127,117,118,119,125,122,126,123,124,128,120,121,76,95,94,96,97,93,102,75,98,100,74,99,101]},"version":"4.5.5"}
package/dist/types.d.ts CHANGED
@@ -8,7 +8,11 @@ import { IFluidDependencySynthesizer } from ".";
8
8
  * the FluidObject properties as its type mapped to a string representation
9
9
  * of that property.
10
10
  *
11
- * @example - \{ IFoo: "IFoo" \}
11
+ * @example
12
+ *
13
+ * ```typescript
14
+ * { IFoo: "IFoo" }
15
+ * ```
12
16
  */
13
17
  export declare type FluidObjectSymbolProvider<T> = {
14
18
  [P in keyof T]?: P;
@@ -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;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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,GAAG,CAAC;AAEhD;;;;;;;;;;GAUG;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\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
+ {"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/**\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\n *\n * ```typescript\n * { IFoo: \"IFoo\" }\n * ```\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"]}
@@ -78,7 +78,7 @@ export class DependencyContainer {
78
78
  else {
79
79
  // older implementations of the IFluidDependencySynthesizer exposed getProvider
80
80
  const maybeGetProvider = parent;
81
- if ((maybeGetProvider === null || maybeGetProvider === void 0 ? void 0 : maybeGetProvider.getProvider) !== undefined) {
81
+ if (maybeGetProvider?.getProvider !== undefined) {
82
82
  return maybeGetProvider.getProvider(provider);
83
83
  }
84
84
  }
@@ -98,7 +98,6 @@ export class DependencyContainer {
98
98
  }
99
99
  }
100
100
  generateOptional(base, types) {
101
- var _a;
102
101
  if (types === undefined) {
103
102
  return;
104
103
  }
@@ -106,7 +105,7 @@ export class DependencyContainer {
106
105
  // back-compat: in 0.56 we allow undefined in the types, but we didn't before
107
106
  // this will keep runtime back compat, eventually we should support undefined properties
108
107
  // rather than properties that return promises that resolve to undefined
109
- const provider = (_a = this.resolveProvider(key)) !== null && _a !== void 0 ? _a : { get: async () => undefined };
108
+ const provider = this.resolveProvider(key) ?? { get: async () => undefined };
110
109
  Object.defineProperty(base, key, provider);
111
110
  }
112
111
  }
@@ -128,11 +127,12 @@ export class DependencyContainer {
128
127
  // The double nested gets are required for lazy loading the provider resolution
129
128
  if (typeof provider === "function") {
130
129
  return {
130
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
131
131
  get() {
132
132
  if (provider && typeof provider === "function") {
133
133
  return Promise.resolve(this[IFluidDependencySynthesizer])
134
134
  .then(async (fds) => provider(fds))
135
- .then((p) => p === null || p === void 0 ? void 0 : p[t]);
135
+ .then((p) => p?.[t]);
136
136
  }
137
137
  },
138
138
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyContainer.js","sourceRoot":"","sources":["../src/dependencyContainer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAQzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAO/B,YAAmB,GAAG,OAAoD;QANzD,cAAS,GAAG,IAAI,GAAG,EAAwC,CAAC;QAO5E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACzF,CAAC;IAND,IAAW,2BAA2B;QACrC,OAAO,IAAI,CAAC;IACb,CAAC;IAMD;;;;;OAKG;IACI,QAAQ,CACd,IAAO,EACP,QAA4C;QAE5C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CACd,6CAA6C,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAC/E,CAAC;SACF;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,IAAgB;QACjC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC5B;IACF,CAAC;IAED;;OAEG;IACI,UAAU,CAChB,aAA2C,EAC3C,aAAqD;QAErD,MAAM,IAAI,GAAmC,EAAS,CAAC;QACvD,IAAI,CAAC,gBAAgB,CAAI,IAAI,EAAE,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,CAAI,IAAI,EAAE,aAAa,CAAC,CAAC;QAC9C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,2BAA2B,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,GAAG,CAAC,IAAY,EAAE,cAAwB;QAChD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAkB,CAAC,EAAE;YAC3C,OAAO,IAAI,CAAC;SACZ;QACD,IAAI,cAAc,KAAK,IAAI,EAAE;YAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAA8B,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1E;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACD;;OAEG;IACK,WAAW,CAAC,QAA6B;QAChD,+EAA+E;QAC/E,wEAAwE;QACxE,uDAAuD;QACvD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACvB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACjC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aACpC;YACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;gBAClC,IAAI,MAAM,YAAY,mBAAmB,EAAE;oBAC1C,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;iBACpC;qBAAM;oBACN,+EAA+E;oBAC/E,MAAM,gBAAgB,GACrB,MAAa,CAAC;oBACf,IAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,WAAW,MAAK,SAAS,EAAE;wBAChD,OAAO,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;qBAC9C;iBACD;aACD;SACD;IACF,CAAC;IAEO,gBAAgB,CACvB,IAAyC,EACzC,KAA6C;QAE7C,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,OAAO;SACP;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAA8B,EAAE;YAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC3B,MAAM,IAAI,KAAK,CACd,uEAAuE,MAAM,CAC5E,GAAG,CACH,EAAE,CACH,CAAC;aACF;YACD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;SAC3C;IACF,CAAC;IAEO,gBAAgB,CACvB,IAAyC,EACzC,KAAmC;;QAEnC,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,OAAO;SACP;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAA8B,EAAE;YAClE,6EAA6E;YAC7E,wFAAwF;YACxF,wEAAwE;YACxE,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mCAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;YAC7E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;SAC3C;IACF,CAAC;IAEO,eAAe,CAAuB,CAAI;QACjD,oCAAoC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;gBAClC,yEAAyE;gBACzE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAA8C,CAAC;gBAClE,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAyC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC9E,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC3D,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC7B,OAAO,UAAU,CAAC;iBAClB;aACD;YACD,OAAO,SAAS,CAAC;SACjB;QAED,+EAA+E;QAC/E,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YACnC,OAAO;gBACN,GAAG;oBACF,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;wBAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;6BACvD,IAAI,CAAC,KAAK,EAAE,GAAG,EAAgB,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;6BAChD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAG,CAAC,CAAC,CAAC,CAAC;qBACtB;gBACF,CAAC;aACD,CAAC;SACF;QACD,OAAO;YACN,GAAG;gBACF,IAAI,QAAQ,EAAE;oBACb,OAAO,IAAI,WAAW,CAAC,KAAK,IAAI,EAAE;wBACjC,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;4BAC3C,IAAI,CAAC,EAAE;gCACN,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;6BACZ;wBACF,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACH;YACF,CAAC;SACD,CAAC;IACH,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { LazyPromise } from \"@fluidframework/core-utils\";\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 ${String(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 ${String(\n\t\t\t\t\t\tkey,\n\t\t\t\t\t)}`,\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 new LazyPromise(async () => {\n\t\t\t\t\t\treturn Promise.resolve(provider).then((p) => {\n\t\t\t\t\t\t\tif (p) {\n\t\t\t\t\t\t\t\treturn p[t];\n\t\t\t\t\t\t\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"]}
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 { LazyPromise } from \"@fluidframework/core-utils\";\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 ${String(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 ${String(\n\t\t\t\t\t\tkey,\n\t\t\t\t\t)}`,\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\t// eslint-disable-next-line @typescript-eslint/promise-function-async\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 new LazyPromise(async () => {\n\t\t\t\t\t\treturn Promise.resolve(provider).then((p) => {\n\t\t\t\t\t\t\tif (p) {\n\t\t\t\t\t\t\t\treturn p[t];\n\t\t\t\t\t\t\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/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\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
+ {"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/**\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\n *\n * ```typescript\n * { IFoo: \"IFoo\" }\n * ```\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.5.3.2.178189",
3
+ "version": "2.0.0-dev.6.4.0.191258",
4
4
  "description": "A library for synthesizing scope objects.",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -18,7 +18,7 @@
18
18
  "dist/**/*",
19
19
  "lib/**/*"
20
20
  ],
21
- "nyc": {
21
+ "c8": {
22
22
  "all": true,
23
23
  "cache-dir": "nyc/.cache",
24
24
  "exclude": [
@@ -39,22 +39,21 @@
39
39
  "temp-directory": "nyc/.nyc_output"
40
40
  },
41
41
  "dependencies": {
42
- "@fluidframework/common-utils": "^1.1.1",
43
- "@fluidframework/core-utils": "2.0.0-dev.5.3.2.178189"
42
+ "@fluidframework/core-utils": "2.0.0-dev.6.4.0.191258"
44
43
  },
45
44
  "devDependencies": {
46
- "@fluid-tools/build-cli": "^0.21.0",
47
- "@fluidframework/build-common": "^1.2.0",
48
- "@fluidframework/build-tools": "^0.21.0",
49
- "@fluidframework/core-interfaces": "2.0.0-dev.5.3.2.178189",
50
- "@fluidframework/datastore": "2.0.0-dev.5.3.2.178189",
51
- "@fluidframework/eslint-config-fluid": "^2.0.0",
52
- "@fluidframework/mocha-test-setup": "2.0.0-dev.5.3.2.178189",
53
- "@fluidframework/synthesize-previous": "npm:@fluidframework/synthesize@2.0.0-internal.5.2.0",
45
+ "@fluid-tools/build-cli": "^0.22.0",
46
+ "@fluidframework/build-common": "^2.0.0",
47
+ "@fluidframework/build-tools": "^0.22.0",
48
+ "@fluidframework/core-interfaces": "2.0.0-dev.6.4.0.191258",
49
+ "@fluidframework/datastore": "2.0.0-dev.6.4.0.191258",
50
+ "@fluidframework/eslint-config-fluid": "^2.1.0",
51
+ "@fluidframework/mocha-test-setup": "2.0.0-dev.6.4.0.191258",
52
+ "@fluidframework/synthesize-previous": "npm:@fluidframework/synthesize@2.0.0-internal.6.3.0",
54
53
  "@microsoft/api-extractor": "^7.34.4",
55
54
  "@types/mocha": "^9.1.1",
56
- "@types/node": "^14.18.38",
57
- "concurrently": "^7.6.0",
55
+ "@types/node": "^16.18.38",
56
+ "c8": "^7.7.1",
58
57
  "copyfiles": "^2.4.1",
59
58
  "cross-env": "^7.0.3",
60
59
  "eslint": "~8.6.0",
@@ -62,7 +61,6 @@
62
61
  "mocha-json-output-reporter": "^2.0.1",
63
62
  "mocha-multi-reporters": "^1.5.1",
64
63
  "moment": "^2.21.0",
65
- "nyc": "^15.1.0",
66
64
  "prettier": "~2.6.2",
67
65
  "rimraf": "^4.4.0",
68
66
  "typescript": "~4.5.5"
@@ -78,7 +76,7 @@
78
76
  "build:esnext": "tsc --project ./tsconfig.esnext.json",
79
77
  "build:test": "tsc --project ./src/test/tsconfig.json",
80
78
  "ci:build:docs": "api-extractor run --typescript-compiler-folder ../../../node_modules/typescript && copyfiles -u 1 ./_api-extractor-temp/* ../../../_api-extractor-temp/",
81
- "clean": "rimraf dist lib *.tsbuildinfo *.build.log",
79
+ "clean": "rimraf --glob 'dist' 'lib' '*.tsbuildinfo' '*.build.log' '_api-extractor-temp' 'nyc'",
82
80
  "eslint": "eslint --format stylish src",
83
81
  "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
84
82
  "format": "npm run prettier:fix",
@@ -87,9 +85,8 @@
87
85
  "prettier": "prettier --check . --ignore-path ../../../.prettierignore",
88
86
  "prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore",
89
87
  "test": "npm run test:mocha",
90
- "test:coverage": "nyc npm test -- --reporter xunit --reporter-option output=nyc/junit-report.xml",
91
- "test:mocha": "mocha --ignore 'dist/test/types/*' --recursive dist/test -r node_modules/@fluidframework/mocha-test-setup --unhandled-rejections=strict",
92
- "test:mocha:multireport": "cross-env FLUID_TEST_MULTIREPORT=1 npm run test:mocha",
88
+ "test:coverage": "c8 npm test",
89
+ "test:mocha": "mocha --ignore 'dist/test/types/*' --recursive dist/test -r node_modules/@fluidframework/mocha-test-setup",
93
90
  "test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
94
91
  "tsc": "tsc",
95
92
  "typetests:gen": "fluid-type-test-generator",