graphql-modules 1.4.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/application/types.d.ts +2 -2
- package/{index.cjs.js → index.js} +24 -27
- package/{index.esm.js → index.mjs} +24 -27
- package/package.json +15 -5
- package/index.cjs.js.map +0 -1
- package/index.esm.js.map +0 -1
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ Just take a look at the build status on Github Actions and find "Publish Canary"
|
|
|
41
41
|
|
|
42
42
|
## Usage
|
|
43
43
|
|
|
44
|
-
More advanced usage at [graphql-modules.com](https://graphql-modules.com/docs/
|
|
44
|
+
More advanced usage at [graphql-modules.com](https://graphql-modules.com/docs/index)
|
|
45
45
|
|
|
46
46
|
```js
|
|
47
47
|
import { createModule, createApplication, gql } from 'graphql-modules';
|
package/application/types.d.ts
CHANGED
|
@@ -3,11 +3,11 @@ import type { Provider, Injector } from '../di';
|
|
|
3
3
|
import type { Resolvers, Module, MockedModule } from '../module/types';
|
|
4
4
|
import type { MiddlewareMap } from '../shared/middleware';
|
|
5
5
|
import type { ApolloRequestContext } from './apollo';
|
|
6
|
-
import type { Single
|
|
6
|
+
import type { Single } from '../shared/types';
|
|
7
7
|
import type { InternalAppContext } from './application';
|
|
8
8
|
declare type Execution = typeof execute;
|
|
9
9
|
declare type Subscription = typeof subscribe;
|
|
10
|
-
export declare type ApolloExecutor = (requestContext: ApolloRequestContext) =>
|
|
10
|
+
export declare type ApolloExecutor = (requestContext: ApolloRequestContext) => Promise<ExecutionResult>;
|
|
11
11
|
export interface MockedApplication extends Application {
|
|
12
12
|
replaceModule(mockedModule: MockedModule): MockedApplication;
|
|
13
13
|
addProviders(providers: ApplicationConfig['providers']): MockedApplication;
|
|
@@ -77,14 +77,13 @@ function instantiationError(injector, originalException, key) {
|
|
|
77
77
|
}, originalException);
|
|
78
78
|
}
|
|
79
79
|
function injectionError(injector, key, constructResolvingMessage, originalError) {
|
|
80
|
-
const error = (originalError
|
|
81
|
-
? wrappedError('', originalError)
|
|
82
|
-
: Error());
|
|
80
|
+
const error = (originalError ? wrappedError('', originalError) : Error());
|
|
83
81
|
error.addKey = addKey;
|
|
84
82
|
error.keys = [key];
|
|
85
|
-
error.constructResolvingMessage =
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
error.constructResolvingMessage =
|
|
84
|
+
function wrappedConstructResolvingMessage() {
|
|
85
|
+
return (constructResolvingMessage.call(this) + ` - in ${injector.displayName}`);
|
|
86
|
+
};
|
|
88
87
|
error.message = error.constructResolvingMessage();
|
|
89
88
|
error[ERROR_ORIGINAL_ERROR] = originalError;
|
|
90
89
|
return error;
|
|
@@ -1103,7 +1102,7 @@ const CONTEXT_ID = Symbol.for('context-id');
|
|
|
1103
1102
|
function apolloExecutorCreator({ createExecution, }) {
|
|
1104
1103
|
return function createApolloExecutor(options) {
|
|
1105
1104
|
const executor = createExecution(options);
|
|
1106
|
-
return function executorAdapter(requestContext) {
|
|
1105
|
+
return async function executorAdapter(requestContext) {
|
|
1107
1106
|
return executor({
|
|
1108
1107
|
schema: requestContext.schema,
|
|
1109
1108
|
document: requestContext.document,
|
|
@@ -1141,33 +1140,32 @@ function apolloSchemaCreator({ createSubscription, contextBuilder, schema, }) {
|
|
|
1141
1140
|
}
|
|
1142
1141
|
return wrap.wrapSchema({
|
|
1143
1142
|
schema,
|
|
1143
|
+
batch: true,
|
|
1144
1144
|
executor(input) {
|
|
1145
|
+
if (input.operationType === 'subscription') {
|
|
1146
|
+
return subscription({
|
|
1147
|
+
schema,
|
|
1148
|
+
document: input.document,
|
|
1149
|
+
variableValues: input.variables,
|
|
1150
|
+
contextValue: input.context,
|
|
1151
|
+
rootValue: input.rootValue,
|
|
1152
|
+
operationName: input.operationName,
|
|
1153
|
+
});
|
|
1154
|
+
}
|
|
1145
1155
|
// Create an execution context
|
|
1146
1156
|
const { context, destroy } = getSession(input.context);
|
|
1147
1157
|
// It's important to wrap the executeFn within a promise
|
|
1148
1158
|
// so we can easily control the end of execution (with finally)
|
|
1149
1159
|
return Promise.resolve()
|
|
1150
|
-
.then(() => {
|
|
1151
|
-
var _a;
|
|
1152
|
-
return graphql.execute({
|
|
1153
|
-
schema,
|
|
1154
|
-
document: input.document,
|
|
1155
|
-
contextValue: context,
|
|
1156
|
-
variableValues: input.variables,
|
|
1157
|
-
rootValue: (_a = input.info) === null || _a === void 0 ? void 0 : _a.rootValue,
|
|
1158
|
-
});
|
|
1159
|
-
})
|
|
1160
|
-
.finally(destroy);
|
|
1161
|
-
},
|
|
1162
|
-
subscriber(input) {
|
|
1163
|
-
var _a;
|
|
1164
|
-
return subscription({
|
|
1160
|
+
.then(() => graphql.execute({
|
|
1165
1161
|
schema,
|
|
1166
1162
|
document: input.document,
|
|
1163
|
+
contextValue: context,
|
|
1167
1164
|
variableValues: input.variables,
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
})
|
|
1165
|
+
rootValue: input.rootValue,
|
|
1166
|
+
operationName: input.operationName,
|
|
1167
|
+
}))
|
|
1168
|
+
.finally(destroy);
|
|
1171
1169
|
},
|
|
1172
1170
|
});
|
|
1173
1171
|
};
|
|
@@ -2220,7 +2218,7 @@ function visitTypes(schema, types, rootFields) {
|
|
|
2220
2218
|
});
|
|
2221
2219
|
}
|
|
2222
2220
|
if (hasInterfaces(type)) {
|
|
2223
|
-
type.interfaces.forEach(
|
|
2221
|
+
type.interfaces.forEach(i => {
|
|
2224
2222
|
collectType(resolveType(i));
|
|
2225
2223
|
});
|
|
2226
2224
|
}
|
|
@@ -2334,4 +2332,3 @@ exports.forwardRef = forwardRef;
|
|
|
2334
2332
|
exports.gql = gql;
|
|
2335
2333
|
exports.metadataFactory = metadataFactory;
|
|
2336
2334
|
exports.testkit = testkit;
|
|
2337
|
-
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -73,14 +73,13 @@ function instantiationError(injector, originalException, key) {
|
|
|
73
73
|
}, originalException);
|
|
74
74
|
}
|
|
75
75
|
function injectionError(injector, key, constructResolvingMessage, originalError) {
|
|
76
|
-
const error = (originalError
|
|
77
|
-
? wrappedError('', originalError)
|
|
78
|
-
: Error());
|
|
76
|
+
const error = (originalError ? wrappedError('', originalError) : Error());
|
|
79
77
|
error.addKey = addKey;
|
|
80
78
|
error.keys = [key];
|
|
81
|
-
error.constructResolvingMessage =
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
error.constructResolvingMessage =
|
|
80
|
+
function wrappedConstructResolvingMessage() {
|
|
81
|
+
return (constructResolvingMessage.call(this) + ` - in ${injector.displayName}`);
|
|
82
|
+
};
|
|
84
83
|
error.message = error.constructResolvingMessage();
|
|
85
84
|
error[ERROR_ORIGINAL_ERROR] = originalError;
|
|
86
85
|
return error;
|
|
@@ -1100,7 +1099,7 @@ const CONTEXT_ID = Symbol.for('context-id');
|
|
|
1100
1099
|
function apolloExecutorCreator({ createExecution, }) {
|
|
1101
1100
|
return function createApolloExecutor(options) {
|
|
1102
1101
|
const executor = createExecution(options);
|
|
1103
|
-
return function executorAdapter(requestContext) {
|
|
1102
|
+
return async function executorAdapter(requestContext) {
|
|
1104
1103
|
return executor({
|
|
1105
1104
|
schema: requestContext.schema,
|
|
1106
1105
|
document: requestContext.document,
|
|
@@ -1138,33 +1137,32 @@ function apolloSchemaCreator({ createSubscription, contextBuilder, schema, }) {
|
|
|
1138
1137
|
}
|
|
1139
1138
|
return wrapSchema({
|
|
1140
1139
|
schema,
|
|
1140
|
+
batch: true,
|
|
1141
1141
|
executor(input) {
|
|
1142
|
+
if (input.operationType === 'subscription') {
|
|
1143
|
+
return subscription({
|
|
1144
|
+
schema,
|
|
1145
|
+
document: input.document,
|
|
1146
|
+
variableValues: input.variables,
|
|
1147
|
+
contextValue: input.context,
|
|
1148
|
+
rootValue: input.rootValue,
|
|
1149
|
+
operationName: input.operationName,
|
|
1150
|
+
});
|
|
1151
|
+
}
|
|
1142
1152
|
// Create an execution context
|
|
1143
1153
|
const { context, destroy } = getSession(input.context);
|
|
1144
1154
|
// It's important to wrap the executeFn within a promise
|
|
1145
1155
|
// so we can easily control the end of execution (with finally)
|
|
1146
1156
|
return Promise.resolve()
|
|
1147
|
-
.then(() => {
|
|
1148
|
-
var _a;
|
|
1149
|
-
return execute$1({
|
|
1150
|
-
schema,
|
|
1151
|
-
document: input.document,
|
|
1152
|
-
contextValue: context,
|
|
1153
|
-
variableValues: input.variables,
|
|
1154
|
-
rootValue: (_a = input.info) === null || _a === void 0 ? void 0 : _a.rootValue,
|
|
1155
|
-
});
|
|
1156
|
-
})
|
|
1157
|
-
.finally(destroy);
|
|
1158
|
-
},
|
|
1159
|
-
subscriber(input) {
|
|
1160
|
-
var _a;
|
|
1161
|
-
return subscription({
|
|
1157
|
+
.then(() => execute$1({
|
|
1162
1158
|
schema,
|
|
1163
1159
|
document: input.document,
|
|
1160
|
+
contextValue: context,
|
|
1164
1161
|
variableValues: input.variables,
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
})
|
|
1162
|
+
rootValue: input.rootValue,
|
|
1163
|
+
operationName: input.operationName,
|
|
1164
|
+
}))
|
|
1165
|
+
.finally(destroy);
|
|
1168
1166
|
},
|
|
1169
1167
|
});
|
|
1170
1168
|
};
|
|
@@ -2217,7 +2215,7 @@ function visitTypes(schema, types, rootFields) {
|
|
|
2217
2215
|
});
|
|
2218
2216
|
}
|
|
2219
2217
|
if (hasInterfaces(type)) {
|
|
2220
|
-
type.interfaces.forEach(
|
|
2218
|
+
type.interfaces.forEach(i => {
|
|
2221
2219
|
collectType(resolveType(i));
|
|
2222
2220
|
});
|
|
2223
2221
|
}
|
|
@@ -2318,4 +2316,3 @@ const testkit = {
|
|
|
2318
2316
|
};
|
|
2319
2317
|
|
|
2320
2318
|
export { CONTEXT, ExecutionContext, Inject, Injectable, InjectionToken, Injector, MODULE_ID, Optional, Scope, createApplication, createModule, forwardRef, gql, metadataFactory, testkit };
|
|
2321
|
-
//# sourceMappingURL=index.esm.js.map
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "graphql-modules",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Create reusable, maintainable, testable and extendable GraphQL modules",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"peerDependencies": {
|
|
7
7
|
"graphql": "^14.0.0 || ^15.0.0"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@graphql-tools/schema": "^
|
|
11
|
-
"@graphql-tools/wrap": "^
|
|
10
|
+
"@graphql-tools/schema": "^8.1.1",
|
|
11
|
+
"@graphql-tools/wrap": "^8.3.1",
|
|
12
12
|
"@graphql-typed-document-node/core": "^3.1.0",
|
|
13
13
|
"ramda": "^0.27.1"
|
|
14
14
|
},
|
|
@@ -21,10 +21,20 @@
|
|
|
21
21
|
],
|
|
22
22
|
"author": "Kamil Kisiela",
|
|
23
23
|
"license": "MIT",
|
|
24
|
-
"main": "index.
|
|
25
|
-
"module": "index.
|
|
24
|
+
"main": "index.js",
|
|
25
|
+
"module": "index.mjs",
|
|
26
26
|
"typings": "index.d.ts",
|
|
27
27
|
"typescript": {
|
|
28
28
|
"definition": "index.d.ts"
|
|
29
|
+
},
|
|
30
|
+
"exports": {
|
|
31
|
+
".": {
|
|
32
|
+
"require": "./index.js",
|
|
33
|
+
"import": "./index.mjs"
|
|
34
|
+
},
|
|
35
|
+
"./*": {
|
|
36
|
+
"require": "./*.js",
|
|
37
|
+
"import": "./*.mjs"
|
|
38
|
+
}
|
|
29
39
|
}
|
|
30
40
|
}
|
package/index.cjs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../dist/graphql-modules/src/di/utils.js","../../dist/graphql-modules/src/di/errors.js","../../dist/graphql-modules/src/di/metadata.js","../../dist/graphql-modules/src/di/providers.js","../../dist/graphql-modules/src/application/execution-context.js","../../dist/graphql-modules/src/di/decorators.js","../../dist/graphql-modules/src/di/forward-ref.js","../../dist/graphql-modules/src/di/registry.js","../../dist/graphql-modules/src/di/resolution.js","../../dist/graphql-modules/src/di/injector.js","../../dist/graphql-modules/src/shared/errors.js","../../dist/graphql-modules/src/shared/utils.js","../../dist/graphql-modules/src/application/di.js","../../dist/graphql-modules/src/application/tokens.js","../../dist/graphql-modules/src/application/context.js","../../dist/graphql-modules/src/application/execution.js","../../dist/graphql-modules/src/application/subscription.js","../../dist/graphql-modules/src/application/apollo.js","../../dist/graphql-modules/src/application/operation-controller.js","../../dist/graphql-modules/src/application/application.js","../../dist/graphql-modules/src/module/metadata.js","../../dist/graphql-modules/src/shared/middleware.js","../../dist/graphql-modules/src/module/resolvers.js","../../dist/graphql-modules/src/module/type-defs.js","../../dist/graphql-modules/src/module/tokens.js","../../dist/graphql-modules/src/module/factory.js","../../dist/graphql-modules/src/module/module.js","../../dist/graphql-modules/src/shared/gql.js","../../dist/graphql-modules/src/testing/test-application.js","../../dist/graphql-modules/src/testing/test-module.js","../../dist/graphql-modules/src/testing/test-injector.js","../../dist/graphql-modules/src/testing/graphql.js","../../dist/graphql-modules/src/testing/di.js","../../dist/graphql-modules/src/testing/index.js"],"sourcesContent":["export const ERROR_TYPE = 'diType';\nexport const ERROR_ORIGINAL_ERROR = 'diOriginalError';\nexport const ERROR_LOGGER = 'diErrorLogger';\nexport function getType(error) {\n return error[ERROR_TYPE];\n}\nexport function getOriginalError(error) {\n return error[ERROR_ORIGINAL_ERROR];\n}\nfunction defaultErrorLogger(console, ...values) {\n // eslint-disable-next-line no-console\n console.error(...values);\n}\nexport function getErrorLogger(error) {\n return error[ERROR_LOGGER] || defaultErrorLogger;\n}\nexport function wrappedError(message, originalError) {\n const msg = `${message} caused by: ${originalError instanceof Error ? originalError.message : originalError}`;\n const error = Error(msg);\n error[ERROR_ORIGINAL_ERROR] = originalError;\n return error;\n}\nexport function stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (token == null) {\n return '' + token;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n//# sourceMappingURL=utils.js.map","import { stringify, wrappedError, ERROR_ORIGINAL_ERROR, getOriginalError, } from './utils';\nexport function invalidProviderError(provider) {\n return Error(`Invalid provider - only instances of Provider and Type are allowed, got: ${provider}`);\n}\nexport function noInjectableError(type) {\n return Error(`Missing @Injectable decorator for '${stringify(type)}'`);\n}\nexport function noAnnotationError(typeOrFunc, params) {\n const signature = [];\n for (let i = 0, len = params.length; i < len; i++) {\n const parameter = params[i];\n if (!parameter.type) {\n signature.push('?');\n }\n else {\n signature.push(stringify(parameter.type));\n }\n }\n return Error(\"Cannot resolve all parameters for '\" +\n stringify(typeOrFunc) +\n \"'(\" +\n signature.join(', ') +\n '). ' +\n \"Make sure that all the parameters are decorated with Inject or have valid type annotations and that '\" +\n stringify(typeOrFunc) +\n \"' is decorated with Injectable.\");\n}\nexport function cyclicDependencyError(injector, key) {\n return injectionError(injector, key, function () {\n return `Cannot instantiate cyclic dependency!${constructResolvingPath(this.keys)}`;\n });\n}\nexport function noProviderError(injector, key) {\n return injectionError(injector, key, function () {\n const first = stringify(this.keys[0].token);\n return `No provider for ${first}!${constructResolvingPath(this.keys)}`;\n });\n}\nexport function instantiationError(injector, originalException, key) {\n return injectionError(injector, key, function () {\n const first = stringify(this.keys[0].token);\n return `Error during instantiation of ${first}: ${getOriginalError(this).message}${constructResolvingPath(this.keys)}`;\n }, originalException);\n}\nfunction injectionError(injector, key, constructResolvingMessage, originalError) {\n const error = (originalError\n ? wrappedError('', originalError)\n : Error());\n error.addKey = addKey;\n error.keys = [key];\n error.constructResolvingMessage = function wrappedConstructResolvingMessage() {\n return (constructResolvingMessage.call(this) + ` - in ${injector.displayName}`);\n };\n error.message = error.constructResolvingMessage();\n error[ERROR_ORIGINAL_ERROR] = originalError;\n return error;\n}\nfunction constructResolvingPath(keys) {\n if (keys.length > 1) {\n const reversed = findFirstClosedCycle(keys.slice().reverse());\n const tokenStrs = reversed.map((k) => stringify(k.token));\n return ' (' + tokenStrs.join(' -> ') + ')';\n }\n return '';\n}\nfunction findFirstClosedCycle(keys) {\n const res = [];\n for (let i = 0; i < keys.length; ++i) {\n if (res.indexOf(keys[i]) > -1) {\n res.push(keys[i]);\n return res;\n }\n res.push(keys[i]);\n }\n return res;\n}\nfunction addKey(key) {\n this.keys.push(key);\n this.message = this.constructResolvingMessage();\n}\n//# sourceMappingURL=errors.js.map","import { noInjectableError } from './errors';\nexport const INJECTABLE = Symbol('di:injectable');\nexport function readInjectableMetadata(type, throwOnMissing) {\n const meta = type[INJECTABLE];\n if (!meta && throwOnMissing) {\n throw noInjectableError(type);\n }\n return meta;\n}\nexport function ensureInjectableMetadata(type) {\n if (!readInjectableMetadata(type)) {\n const meta = {\n params: [],\n };\n type[INJECTABLE] = meta;\n }\n}\n//# sourceMappingURL=metadata.js.map","import { readInjectableMetadata } from './metadata';\nexport const Type = Function;\n/// @ts-ignore\nexport class InjectionToken {\n constructor(_desc) {\n this._desc = _desc;\n }\n toString() {\n return `InjectionToken ${this._desc}`;\n }\n}\nexport function isToken(v) {\n return v && v instanceof InjectionToken;\n}\nexport function isType(v) {\n return typeof v === 'function' && v !== Object;\n}\nexport var Scope;\n(function (Scope) {\n Scope[Scope[\"Singleton\"] = 0] = \"Singleton\";\n Scope[Scope[\"Operation\"] = 1] = \"Operation\";\n})(Scope || (Scope = {}));\nexport function onlySingletonProviders(providers = []) {\n return providers.filter((provider) => {\n if (isType(provider)) {\n const { options } = readInjectableMetadata(provider, true);\n return (options === null || options === void 0 ? void 0 : options.scope) !== Scope.Operation;\n }\n else {\n return provider.scope !== Scope.Operation;\n }\n });\n}\nexport function onlyOperationProviders(providers = []) {\n return providers.filter((provider) => {\n if (isType(provider)) {\n const { options } = readInjectableMetadata(provider, true);\n return (options === null || options === void 0 ? void 0 : options.scope) === Scope.Operation;\n }\n else {\n return provider.scope === Scope.Operation;\n }\n });\n}\nexport function isClassProvider(provider) {\n return typeof provider.useClass !== 'undefined';\n}\nexport function isFactoryProvider(provider) {\n return typeof provider.useFactory !== 'undefined';\n}\n//# sourceMappingURL=providers.js.map","import { createHook, executionAsyncId } from 'async_hooks';\nconst executionContextStore = new Map();\nconst executionContextHook = createHook({\n init(asyncId, _, triggerAsyncId) {\n // Store same context data for child async resources\n if (executionContextStore.has(triggerAsyncId)) {\n executionContextStore.set(asyncId, executionContextStore.get(triggerAsyncId));\n }\n },\n destroy(asyncId) {\n if (executionContextStore.has(asyncId)) {\n executionContextStore.delete(asyncId);\n }\n },\n});\nexport const executionContext = {\n create(picker) {\n executionContextStore.set(executionAsyncId(), picker);\n },\n getModuleContext(moduleId) {\n const picker = executionContextStore.get(executionAsyncId());\n return picker.getModuleContext(moduleId);\n },\n getApplicationContext() {\n const picker = executionContextStore.get(executionAsyncId());\n return picker.getApplicationContext();\n },\n};\nlet executionContextEnabled = false;\nexport function enableExecutionContext() {\n if (!executionContextEnabled) {\n executionContextHook.enable();\n }\n}\n//# sourceMappingURL=execution-context.js.map","import { isType } from './providers';\nimport { INJECTABLE, readInjectableMetadata, ensureInjectableMetadata, } from './metadata';\nimport { enableExecutionContext } from '../application/execution-context';\nfunction ensureReflect() {\n if (!(Reflect && Reflect.getOwnMetadata)) {\n throw 'reflect-metadata shim is required when using class decorators';\n }\n}\nexport function Injectable(options) {\n return (target) => {\n var _a;\n ensureReflect();\n enableExecutionContext();\n const params = (Reflect.getMetadata('design:paramtypes', target) || []).map((param) => (isType(param) ? param : null));\n const existingMeta = readInjectableMetadata(target);\n const meta = {\n params: ((_a = existingMeta === null || existingMeta === void 0 ? void 0 : existingMeta.params) === null || _a === void 0 ? void 0 : _a.length) > 0 && params.length === 0\n ? existingMeta === null || existingMeta === void 0 ? void 0 : existingMeta.params\n : params.map((param, i) => {\n var _a;\n const existingParam = (_a = existingMeta === null || existingMeta === void 0 ? void 0 : existingMeta.params) === null || _a === void 0 ? void 0 : _a[i];\n return {\n type: (existingParam === null || existingParam === void 0 ? void 0 : existingParam.type) || param,\n optional: typeof (existingParam === null || existingParam === void 0 ? void 0 : existingParam.optional) === 'boolean'\n ? existingParam.optional\n : false,\n };\n }),\n options: {\n ...((existingMeta === null || existingMeta === void 0 ? void 0 : existingMeta.options) || {}),\n ...(options || {}),\n },\n };\n target[INJECTABLE] = meta;\n return target;\n };\n}\nexport function Optional() {\n return (target, _, index) => {\n ensureReflect();\n ensureInjectableMetadata(target);\n const meta = readInjectableMetadata(target);\n meta.params[index] = {\n ...meta.params[index],\n optional: true,\n };\n };\n}\nexport function Inject(type) {\n return (target, _, index) => {\n ensureReflect();\n ensureInjectableMetadata(target);\n const meta = readInjectableMetadata(target);\n meta.params[index] = {\n type,\n optional: false,\n };\n };\n}\nexport function ExecutionContext() {\n return (obj, propertyKey) => {\n ensureReflect();\n const target = obj.constructor;\n ensureInjectableMetadata(target);\n const meta = readInjectableMetadata(target);\n if (!meta.options) {\n meta.options = {};\n }\n if (!meta.options.executionContextIn) {\n meta.options.executionContextIn = [];\n }\n meta.options.executionContextIn.push(propertyKey);\n };\n}\n//# sourceMappingURL=decorators.js.map","import { stringify } from './utils';\nconst forwardRefSymbol = Symbol('__forward_ref__');\n/**\n * Useful in \"circular dependencies of modules\" situation\n */\nexport function forwardRef(forwardRefFn) {\n forwardRefFn[forwardRefSymbol] = forwardRef;\n forwardRefFn.toString = function () {\n return stringify(this());\n };\n return forwardRefFn;\n}\nexport function resolveForwardRef(type) {\n if (typeof type === 'function' &&\n type.hasOwnProperty(forwardRefSymbol) &&\n type[forwardRefSymbol] === forwardRef) {\n return type();\n }\n else {\n return type;\n }\n}\n//# sourceMappingURL=forward-ref.js.map","import { stringify } from './utils';\nimport { resolveForwardRef } from './forward-ref';\nexport class Key {\n constructor(token, id) {\n this.token = token;\n this.id = id;\n if (!token) {\n throw new Error('Token must be defined!');\n }\n }\n /**\n * Returns a stringified token.\n */\n get displayName() {\n return stringify(this.token);\n }\n static get(token) {\n return _globalKeyRegistry.get(resolveForwardRef(token));\n }\n}\nclass GlobalKeyRegistry {\n constructor() {\n this._allKeys = new Map();\n }\n get(token) {\n if (token instanceof Key) {\n return token;\n }\n if (this._allKeys.has(token)) {\n return this._allKeys.get(token);\n }\n const newKey = new Key(token, _globalKeyRegistry.numberOfKeys);\n this._allKeys.set(token, newKey);\n return newKey;\n }\n get numberOfKeys() {\n return this._allKeys.size;\n }\n}\nconst _globalKeyRegistry = new GlobalKeyRegistry();\n//# sourceMappingURL=registry.js.map","import { Type, isClassProvider, isFactoryProvider, } from './providers';\nimport { invalidProviderError, noAnnotationError } from './errors';\nimport { Key } from './registry';\nimport { resolveForwardRef } from './forward-ref';\nimport { readInjectableMetadata } from './metadata';\nconst _EMPTY_LIST = [];\nexport class ResolvedProvider {\n constructor(key, factory) {\n this.key = key;\n this.factory = factory;\n }\n}\nexport class ResolvedFactory {\n constructor(\n /**\n * Factory function which can return an instance of an object represented by a key.\n */\n factory, \n /**\n * Arguments (dependencies) to the `factory` function.\n */\n dependencies, \n /**\n * Methods invoked within ExecutionContext.\n */\n executionContextIn, \n /**\n * Has onDestroy hook\n */\n hasOnDestroyHook, \n /**\n * Is Global\n */\n isGlobal) {\n this.factory = factory;\n this.dependencies = dependencies;\n this.executionContextIn = executionContextIn;\n this.hasOnDestroyHook = hasOnDestroyHook;\n this.isGlobal = isGlobal;\n }\n}\nexport class Dependency {\n constructor(key, optional) {\n this.key = key;\n this.optional = optional;\n }\n static fromKey(key) {\n return new Dependency(key, false);\n }\n}\nexport function resolveProviders(providers) {\n const normalized = normalizeProviders(providers, []);\n const resolved = normalized.map(resolveProvider);\n const resolvedProviderMap = mergeResolvedProviders(resolved, new Map());\n return Array.from(resolvedProviderMap.values());\n}\nfunction resolveProvider(provider) {\n return new ResolvedProvider(Key.get(provider.provide), resolveFactory(provider));\n}\nfunction mergeResolvedProviders(providers, normalizedProvidersMap) {\n for (let i = 0; i < providers.length; i++) {\n const provider = providers[i];\n normalizedProvidersMap.set(provider.key.id, provider);\n }\n return normalizedProvidersMap;\n}\nfunction normalizeProviders(providers, res) {\n providers.forEach((token) => {\n if (token instanceof Type) {\n res.push({ provide: token, useClass: token });\n }\n else if (token &&\n typeof token === 'object' &&\n token.provide !== undefined) {\n res.push(token);\n }\n else if (token instanceof Array) {\n normalizeProviders(token, res);\n }\n else {\n throw invalidProviderError(token);\n }\n });\n return res;\n}\nfunction resolveFactory(provider) {\n let factoryFn;\n let resolvedDeps = _EMPTY_LIST;\n let executionContextIn = _EMPTY_LIST;\n let hasOnDestroyHook = false;\n let isGlobal;\n if (isClassProvider(provider)) {\n const useClass = resolveForwardRef(provider.useClass);\n factoryFn = makeFactory(useClass);\n resolvedDeps = dependenciesFor(useClass);\n executionContextIn = executionContextInFor(useClass);\n isGlobal = globalFor(useClass);\n hasOnDestroyHook = typeof useClass.prototype.onDestroy === 'function';\n }\n else if (isFactoryProvider(provider)) {\n factoryFn = provider.useFactory;\n resolvedDeps = constructDependencies(provider.useFactory, provider.deps || []);\n isGlobal = provider.global;\n if (provider.executionContextIn) {\n executionContextIn = provider.executionContextIn;\n }\n }\n else {\n factoryFn = () => provider.useValue;\n resolvedDeps = _EMPTY_LIST;\n isGlobal = provider.global;\n }\n return new ResolvedFactory(factoryFn, resolvedDeps, executionContextIn, hasOnDestroyHook, isGlobal !== null && isGlobal !== void 0 ? isGlobal : false);\n}\nfunction dependenciesFor(type) {\n const { params } = readInjectableMetadata(type, true);\n if (!params) {\n return [];\n }\n if (params.some((p) => p.type == null)) {\n throw noAnnotationError(type, params);\n }\n return params.map((p) => extractToken(p, params));\n}\nfunction executionContextInFor(type) {\n const { options } = readInjectableMetadata(type, true);\n if ((options === null || options === void 0 ? void 0 : options.executionContextIn) &&\n options.executionContextIn !== _EMPTY_LIST) {\n return options === null || options === void 0 ? void 0 : options.executionContextIn;\n }\n return [];\n}\nfunction globalFor(type) {\n var _a;\n const { options } = readInjectableMetadata(type);\n return (_a = options === null || options === void 0 ? void 0 : options.global) !== null && _a !== void 0 ? _a : false;\n}\nfunction constructDependencies(typeOrFunc, dependencies) {\n if (!dependencies) {\n return dependenciesFor(typeOrFunc);\n }\n else {\n const params = dependencies.map((d) => ({ type: d, optional: false }));\n return params.map((t) => extractToken(t, params));\n }\n}\nfunction extractToken(param, params) {\n const token = resolveForwardRef(param.type);\n if (token) {\n return createDependency(token, param.optional);\n }\n throw noAnnotationError(param.type, params);\n}\nfunction createDependency(token, optional) {\n return new Dependency(Key.get(token), optional);\n}\nfunction makeFactory(t) {\n return (...args) => new t(...args);\n}\n//# sourceMappingURL=resolution.js.map","import { resolveProviders, } from './resolution';\nimport { Key } from './registry';\nimport { noProviderError, cyclicDependencyError, instantiationError, } from './errors';\nconst _THROW_IF_NOT_FOUND = new Object();\nconst UNDEFINED = new Object();\nconst NOT_FOUND = new Object();\nfunction notInExecutionContext() {\n throw new Error('Not in execution context');\n}\n// Publicly available Injector.\n// We use ReflectiveInjector everywhere\n// but we don't want to leak its API to everyone\nexport class Injector {\n}\nexport class ReflectiveInjector {\n constructor({ name, providers, parent, fallbackParent, globalProvidersMap = new Map(), }) {\n this._constructionCounter = 0;\n this._executionContextGetter = notInExecutionContext;\n this.displayName = name;\n this._parent = parent || null;\n this._fallbackParent = fallbackParent || null;\n this._providers = providers;\n this._globalProvidersMap = globalProvidersMap;\n const len = this._providers.length;\n this._keyIds = new Array(len);\n this._objs = new Array(len);\n for (let i = 0; i < len; i++) {\n this._keyIds[i] = this._providers[i].key.id;\n this._objs[i] = UNDEFINED;\n }\n }\n static createFromResolved({ name, providers, parent, fallbackParent, globalProvidersMap, }) {\n return new ReflectiveInjector({\n name,\n providers,\n parent,\n fallbackParent,\n globalProvidersMap,\n });\n }\n static resolve(providers) {\n return resolveProviders(providers);\n }\n get parent() {\n return this._parent;\n }\n get fallbackParent() {\n return this._fallbackParent;\n }\n get(token, notFoundValue = _THROW_IF_NOT_FOUND) {\n return this._getByKey(Key.get(token), notFoundValue);\n }\n setExecutionContextGetter(getter) {\n this._executionContextGetter = getter;\n }\n _getByKey(key, notFoundValue) {\n let inj = this;\n function getObj() {\n while (inj instanceof ReflectiveInjector) {\n const inj_ = inj;\n const obj = inj_._getObjByKeyId(key.id);\n if (obj !== UNDEFINED) {\n return obj;\n }\n inj = inj_._parent;\n }\n return NOT_FOUND;\n }\n const resolvedValue = getObj();\n if (resolvedValue !== NOT_FOUND) {\n return resolvedValue;\n }\n // search in fallback Injector\n if (this._fallbackParent) {\n inj = this._fallbackParent;\n const resolvedFallbackValue = getObj();\n if (resolvedFallbackValue !== NOT_FOUND) {\n return resolvedFallbackValue;\n }\n }\n if (inj !== null) {\n return inj.get(key.token, notFoundValue);\n }\n return this._throwOrNull(key, notFoundValue);\n }\n _isObjectDefinedByKeyId(keyId) {\n for (let i = 0; i < this._keyIds.length; i++) {\n if (this._keyIds[i] === keyId) {\n return this._objs[i] !== UNDEFINED;\n }\n }\n return false;\n }\n _getObjByKeyId(keyId) {\n var _a, _b;\n if ((_a = this._globalProvidersMap) === null || _a === void 0 ? void 0 : _a.has(keyId)) {\n return (_b = this._globalProvidersMap.get(keyId)) === null || _b === void 0 ? void 0 : _b._getObjByKeyId(keyId);\n }\n for (let i = 0; i < this._keyIds.length; i++) {\n if (this._keyIds[i] === keyId) {\n if (this._objs[i] === UNDEFINED) {\n this._objs[i] = this._new(this._providers[i]);\n }\n return this._objs[i];\n }\n }\n return UNDEFINED;\n }\n _throwOrNull(key, notFoundValue) {\n if (notFoundValue !== _THROW_IF_NOT_FOUND) {\n return notFoundValue;\n }\n else {\n throw noProviderError(this, key);\n }\n }\n instantiateAll() {\n this._providers.forEach((provider) => {\n this._getByKey(provider.key, _THROW_IF_NOT_FOUND);\n });\n }\n _instantiateProvider(provider) {\n const factory = provider.factory.factory;\n let deps;\n try {\n deps = provider.factory.dependencies.map((dep) => this._getByDependency(dep));\n }\n catch (e) {\n if (e.addKey) {\n e.addKey(provider.key);\n }\n throw e;\n }\n let obj;\n try {\n obj = factory(...deps);\n // attach execution context getter\n if (provider.factory.executionContextIn.length > 0) {\n for (const prop of provider.factory.executionContextIn) {\n Object.defineProperty(obj, prop, {\n get: () => {\n return this._executionContextGetter();\n },\n });\n }\n }\n }\n catch (e) {\n throw instantiationError(this, e, provider.key);\n }\n return obj;\n }\n _getByDependency(dep) {\n return this._getByKey(dep.key, dep.optional ? null : _THROW_IF_NOT_FOUND);\n }\n _new(provider) {\n if (this._constructionCounter++ > this._getMaxNumberOfObjects()) {\n throw cyclicDependencyError(this, provider.key);\n }\n return this._instantiateProvider(provider);\n }\n _getMaxNumberOfObjects() {\n return this._objs.length;\n }\n toString() {\n return this.displayName;\n }\n}\n//# sourceMappingURL=injector.js.map","export class ModuleNonUniqueIdError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class ModuleDuplicatedError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class ExtraResolverError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class ExtraMiddlewareError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class ResolverDuplicatedError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class ResolverInvalidError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class NonDocumentNodeError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\n// helpers\nexport function useLocation({ dirname, id }) {\n return dirname\n ? `Module \"${id}\" located at ${dirname}`\n : [\n `Module \"${id}\"`,\n `Hint: pass __dirname to \"dirname\" option of your modules to get more insightful errors`,\n ].join('\\n');\n}\nexport function ExtendableBuiltin(cls) {\n function ExtendableBuiltin() {\n cls.apply(this, arguments);\n }\n ExtendableBuiltin.prototype = Object.create(cls.prototype);\n Object.setPrototypeOf(ExtendableBuiltin, cls);\n return ExtendableBuiltin;\n}\nexport function composeMessage(...lines) {\n return lines.join('\\n');\n}\n//# sourceMappingURL=errors.js.map","import { GraphQLSchema } from 'graphql';\nexport function flatten(arr) {\n return Array.prototype.concat(...arr);\n}\nexport function isDefined(val) {\n return !isNil(val);\n}\nexport function isNil(val) {\n return val === null || typeof val === 'undefined';\n}\nexport function isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\nexport function isPrimitive(val) {\n return ['number', 'string', 'boolean', 'symbol', 'bigint'].includes(typeof val);\n}\nexport function isAsyncIterable(obj) {\n return obj && typeof obj[Symbol.asyncIterator] === 'function';\n}\nexport function tapAsyncIterator(iterable, doneCallback) {\n const iteratorMethod = iterable[Symbol.asyncIterator];\n const iterator = iteratorMethod.call(iterable);\n function mapResult(result) {\n if (result.done) {\n doneCallback();\n }\n return result;\n }\n return {\n async next() {\n try {\n let result = await iterator.next();\n return mapResult(result);\n }\n catch (error) {\n doneCallback();\n throw error;\n }\n },\n async return() {\n try {\n const result = await iterator.return();\n return mapResult(result);\n }\n catch (error) {\n doneCallback();\n throw error;\n }\n },\n async throw(error) {\n doneCallback();\n return iterator.throw(error);\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\nexport function once(cb) {\n let called = false;\n return () => {\n if (!called) {\n called = true;\n cb();\n }\n };\n}\nexport function share(factory) {\n let cached = null;\n return (arg) => {\n if (!cached) {\n cached = factory(arg);\n }\n return cached;\n };\n}\nexport function uniqueId(isNotUsed) {\n let id;\n while (!isNotUsed((id = Math.random().toString(16).substr(2)))) { }\n return id;\n}\nexport function isNotSchema(obj) {\n return obj instanceof GraphQLSchema === false;\n}\nexport function merge(source, target) {\n const result = {\n ...source,\n ...target,\n };\n function attachSymbols(obj) {\n const symbols = Object.getOwnPropertySymbols(obj);\n for (const symbol of symbols) {\n result[symbol] = obj[symbol];\n }\n }\n if (source) {\n attachSymbols(source);\n }\n attachSymbols(target);\n return result;\n}\n//# sourceMappingURL=utils.js.map","import { Scope } from '../di';\nexport function instantiateSingletonProviders({ appInjector, modulesMap, }) {\n appInjector.instantiateAll();\n modulesMap.forEach((mod) => {\n mod.injector.instantiateAll();\n });\n}\nexport function createGlobalProvidersMap({ modules, scope, }) {\n const globalProvidersMap = {};\n const propType = scope === Scope.Singleton ? 'singletonProviders' : 'operationProviders';\n modules.forEach((mod) => {\n mod[propType].forEach((provider) => {\n if (provider.factory.isGlobal) {\n const key = provider.key.id;\n if (globalProvidersMap[key]) {\n throw duplicatedGlobalTokenError(provider, [\n mod.id,\n globalProvidersMap[key],\n ]);\n }\n globalProvidersMap[key] = mod.id;\n }\n });\n });\n return globalProvidersMap;\n}\nexport function attachGlobalProvidersMap({ injector, globalProvidersMap, moduleInjectorGetter, }) {\n injector._globalProvidersMap = {\n has(key) {\n return typeof globalProvidersMap[key] === 'string';\n },\n get(key) {\n return moduleInjectorGetter(globalProvidersMap[key]);\n },\n };\n}\nexport function duplicatedGlobalTokenError(provider, modules) {\n return Error([\n `Failed to define '${provider.key.displayName}' token as global.`,\n `Token provided by two modules: '${modules.join(\"', '\")}'`,\n ].join(' '));\n}\n//# sourceMappingURL=di.js.map","import { InjectionToken } from '../di';\n/**\n * @api\n * `CONTEXT` is an InjectionToken representing the provided `GraphQLModules.GlobalContext`\n *\n * @example\n *\n * ```typescript\n * import { CONTEXT, Inject, Injectable } from 'graphql-modules';\n *\n * (A)Injectable()\n * export class Data {\n * constructor((A)Inject(CONTEXT) private context: GraphQLModules.GlobalContext) {}\n * }\n * ```\n */\nexport const CONTEXT = new InjectionToken('context');\n//# sourceMappingURL=tokens.js.map","import { ReflectiveInjector } from '../di';\nimport { once, merge } from '../shared/utils';\nimport { attachGlobalProvidersMap } from './di';\nimport { CONTEXT } from './tokens';\nimport { executionContext } from './execution-context';\nexport function createContextBuilder({ appInjector, modulesMap, appLevelOperationProviders, singletonGlobalProvidersMap, operationGlobalProvidersMap, }) {\n // This is very critical. It creates an execution context.\n // It has to run on every operation.\n const contextBuilder = (context) => {\n // Cache for context per module\n let contextCache = {};\n // A list of providers with OnDestroy hooks\n // It's a tuple because we want to know which Injector controls the provider\n // and we want to know if the provider was even instantiated.\n let providersToDestroy = [];\n function registerProvidersToDestroy(injector) {\n injector._providers.forEach((provider) => {\n if (provider.factory.hasOnDestroyHook) {\n // keep provider key's id (it doesn't change over time)\n // and related injector\n providersToDestroy.push([injector, provider.key.id]);\n }\n });\n }\n let appContext;\n attachGlobalProvidersMap({\n injector: appInjector,\n globalProvidersMap: singletonGlobalProvidersMap,\n moduleInjectorGetter(moduleId) {\n return modulesMap.get(moduleId).injector;\n },\n });\n appInjector.setExecutionContextGetter(executionContext.getApplicationContext);\n function createModuleExecutionContextGetter(moduleId) {\n return function moduleExecutionContextGetter() {\n return executionContext.getModuleContext(moduleId);\n };\n }\n modulesMap.forEach((mod, moduleId) => {\n mod.injector.setExecutionContextGetter(createModuleExecutionContextGetter(moduleId));\n });\n const executionContextPicker = {\n getApplicationContext() {\n return appContext;\n },\n getModuleContext(moduleId) {\n return getModuleContext(moduleId, context);\n },\n };\n executionContext.create(executionContextPicker);\n // As the name of the Injector says, it's an Operation scoped Injector\n // Application level\n // Operation scoped - means it's created and destroyed on every GraphQL Operation\n const operationAppInjector = ReflectiveInjector.createFromResolved({\n name: 'App (Operation Scope)',\n providers: appLevelOperationProviders.concat(ReflectiveInjector.resolve([\n {\n provide: CONTEXT,\n useValue: context,\n },\n ])),\n parent: appInjector,\n });\n // Create a context for application-level ExecutionContext\n appContext = merge(context, {\n injector: operationAppInjector,\n });\n // Track Providers with OnDestroy hooks\n registerProvidersToDestroy(operationAppInjector);\n function getModuleContext(moduleId, ctx) {\n var _a;\n // Reuse a context or create if not available\n if (!contextCache[moduleId]) {\n // We're interested in operation-scoped providers only\n const providers = (_a = modulesMap.get(moduleId)) === null || _a === void 0 ? void 0 : _a.operationProviders;\n // Create module-level Operation-scoped Injector\n const operationModuleInjector = ReflectiveInjector.createFromResolved({\n name: `Module \"${moduleId}\" (Operation Scope)`,\n providers: providers.concat(ReflectiveInjector.resolve([\n {\n provide: CONTEXT,\n useFactory() {\n return contextCache[moduleId];\n },\n },\n ])),\n // This injector has a priority\n parent: modulesMap.get(moduleId).injector,\n // over this one\n fallbackParent: operationAppInjector,\n });\n // Same as on application level, we need to collect providers with OnDestroy hooks\n registerProvidersToDestroy(operationModuleInjector);\n contextCache[moduleId] = merge(ctx, {\n injector: operationModuleInjector,\n moduleId,\n });\n }\n return contextCache[moduleId];\n }\n const sharedContext = merge(\n // We want to pass the received context\n context || {}, {\n // Here's something very crutial\n // It's a function that is used in module's context creation\n ɵgetModuleContext: getModuleContext,\n });\n attachGlobalProvidersMap({\n injector: operationAppInjector,\n globalProvidersMap: operationGlobalProvidersMap,\n moduleInjectorGetter(moduleId) {\n return getModuleContext(moduleId, sharedContext).injector;\n },\n });\n return {\n ɵdestroy: once(() => {\n providersToDestroy.forEach(([injector, keyId]) => {\n // If provider was instantiated\n if (injector._isObjectDefinedByKeyId(keyId)) {\n // call its OnDestroy hook\n injector._getObjByKeyId(keyId).onDestroy();\n }\n });\n contextCache = {};\n }),\n ɵinjector: operationAppInjector,\n context: sharedContext,\n };\n };\n return contextBuilder;\n}\n//# sourceMappingURL=context.js.map","import { execute, } from 'graphql';\nimport { isNotSchema } from '../shared/utils';\nexport function executionCreator({ contextBuilder, }) {\n const createExecution = (options) => {\n // Custom or original execute function\n const executeFn = (options === null || options === void 0 ? void 0 : options.execute) || execute;\n return (argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) => {\n var _a;\n // Create an execution context\n const { context, ɵdestroy: destroy } = (_a = options === null || options === void 0 ? void 0 : options.controller) !== null && _a !== void 0 ? _a : contextBuilder(isNotSchema(argsOrSchema)\n ? argsOrSchema.contextValue\n : contextValue);\n const executionArgs = isNotSchema(argsOrSchema)\n ? {\n ...argsOrSchema,\n contextValue: context,\n }\n : {\n schema: argsOrSchema,\n document: document,\n rootValue,\n contextValue: context,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n };\n // It's important to wrap the executeFn within a promise\n // so we can easily control the end of execution (with finally)\n return Promise.resolve()\n .then(() => executeFn(executionArgs))\n .finally(destroy);\n };\n };\n return createExecution;\n}\n//# sourceMappingURL=execution.js.map","import { subscribe, } from 'graphql';\nimport { tapAsyncIterator, isAsyncIterable, isNotSchema, } from '../shared/utils';\nexport function subscriptionCreator({ contextBuilder, }) {\n const createSubscription = (options) => {\n // Custom or original subscribe function\n const subscribeFn = (options === null || options === void 0 ? void 0 : options.subscribe) || subscribe;\n return (argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) => {\n var _a;\n // Create an subscription context\n const { context, ɵdestroy: destroy } = (_a = options === null || options === void 0 ? void 0 : options.controller) !== null && _a !== void 0 ? _a : contextBuilder(isNotSchema(argsOrSchema)\n ? argsOrSchema.contextValue\n : contextValue);\n const subscriptionArgs = isNotSchema(argsOrSchema)\n ? {\n ...argsOrSchema,\n contextValue: context,\n }\n : {\n schema: argsOrSchema,\n document: document,\n rootValue,\n contextValue: context,\n variableValues,\n operationName,\n fieldResolver,\n subscribeFieldResolver,\n };\n let isIterable = false;\n // It's important to wrap the subscribeFn within a promise\n // so we can easily control the end of subscription (with finally)\n return Promise.resolve()\n .then(() => subscribeFn(subscriptionArgs))\n .then((sub) => {\n if (isAsyncIterable(sub)) {\n isIterable = true;\n return tapAsyncIterator(sub, destroy);\n }\n return sub;\n })\n .finally(() => {\n if (!isIterable) {\n destroy();\n }\n });\n };\n };\n return createSubscription;\n}\n//# sourceMappingURL=subscription.js.map","import { wrapSchema } from '@graphql-tools/wrap';\nimport { execute } from 'graphql';\nimport { uniqueId } from '../shared/utils';\nconst CONTEXT_ID = Symbol.for('context-id');\nexport function apolloExecutorCreator({ createExecution, }) {\n return function createApolloExecutor(options) {\n const executor = createExecution(options);\n return function executorAdapter(requestContext) {\n return executor({\n schema: requestContext.schema,\n document: requestContext.document,\n operationName: requestContext.operationName,\n variableValues: requestContext.request.variables,\n contextValue: requestContext.context,\n });\n };\n };\n}\nexport function apolloSchemaCreator({ createSubscription, contextBuilder, schema, }) {\n const createApolloSchema = () => {\n const sessions = {};\n const subscription = createSubscription();\n function getSession(ctx) {\n if (!ctx[CONTEXT_ID]) {\n ctx[CONTEXT_ID] = uniqueId((id) => !sessions[id]);\n const { context, ɵdestroy: destroy } = contextBuilder(ctx);\n sessions[ctx[CONTEXT_ID]] = {\n count: 0,\n session: {\n context,\n destroy() {\n if (--sessions[ctx[CONTEXT_ID]].count === 0) {\n destroy();\n delete sessions[ctx[CONTEXT_ID]];\n delete ctx[CONTEXT_ID];\n }\n },\n },\n };\n }\n sessions[ctx[CONTEXT_ID]].count++;\n return sessions[ctx[CONTEXT_ID]].session;\n }\n return wrapSchema({\n schema,\n executor(input) {\n // Create an execution context\n const { context, destroy } = getSession(input.context);\n // It's important to wrap the executeFn within a promise\n // so we can easily control the end of execution (with finally)\n return Promise.resolve()\n .then(() => {\n var _a;\n return execute({\n schema,\n document: input.document,\n contextValue: context,\n variableValues: input.variables,\n rootValue: (_a = input.info) === null || _a === void 0 ? void 0 : _a.rootValue,\n });\n })\n .finally(destroy);\n },\n subscriber(input) {\n var _a;\n return subscription({\n schema,\n document: input.document,\n variableValues: input.variables,\n contextValue: input.context,\n rootValue: (_a = input.info) === null || _a === void 0 ? void 0 : _a.rootValue,\n });\n },\n });\n };\n return createApolloSchema;\n}\n//# sourceMappingURL=apollo.js.map","export function operationControllerCreator(options) {\n const { contextBuilder } = options;\n return (input) => {\n const operation = contextBuilder(input.context);\n const ɵdestroy = input.autoDestroy ? operation.ɵdestroy : () => { };\n return {\n context: operation.context,\n injector: operation.ɵinjector,\n destroy: operation.ɵdestroy,\n ɵdestroy,\n };\n };\n}\n//# sourceMappingURL=operation-controller.js.map","import { makeExecutableSchema } from '@graphql-tools/schema';\nimport { ReflectiveInjector, onlySingletonProviders, onlyOperationProviders, Scope, } from '../di';\nimport { ModuleDuplicatedError, ModuleNonUniqueIdError, } from '../shared/errors';\nimport { flatten, isDefined } from '../shared/utils';\nimport { createGlobalProvidersMap, attachGlobalProvidersMap, instantiateSingletonProviders, } from './di';\nimport { createContextBuilder } from './context';\nimport { executionCreator } from './execution';\nimport { subscriptionCreator } from './subscription';\nimport { apolloSchemaCreator, apolloExecutorCreator } from './apollo';\nimport { operationControllerCreator } from './operation-controller';\n/**\n * @api\n * Creates Application out of Modules. Accepts `ApplicationConfig`.\n *\n * @example\n *\n * ```typescript\n * import { createApplication } from 'graphql-modules';\n * import { usersModule } from './users';\n * import { postsModule } from './posts';\n * import { commentsModule } from './comments';\n *\n * const app = createApplication({\n * modules: [\n * usersModule,\n * postsModule,\n * commentsModule\n * ]\n * })\n * ```\n */\nexport function createApplication(applicationConfig) {\n function applicationFactory(cfg) {\n const config = cfg || applicationConfig;\n const providers = config.providers && typeof config.providers === 'function'\n ? config.providers()\n : config.providers;\n // Creates an Injector with singleton classes at application level\n const appSingletonProviders = ReflectiveInjector.resolve(onlySingletonProviders(providers));\n const appInjector = ReflectiveInjector.createFromResolved({\n name: 'App (Singleton Scope)',\n providers: appSingletonProviders,\n });\n // Filter Operation-scoped providers, and keep it here\n // so we don't do it over and over again\n const appOperationProviders = ReflectiveInjector.resolve(onlyOperationProviders(providers));\n const middlewareMap = config.middlewares || {};\n // Validations\n ensureModuleUniqueIds(config.modules);\n // Create all modules\n const modules = config.modules.map((mod) => mod.factory({\n injector: appInjector,\n middlewares: middlewareMap,\n }));\n const modulesMap = createModulesMap(modules);\n const singletonGlobalProvidersMap = createGlobalProvidersMap({\n modules,\n scope: Scope.Singleton,\n });\n const operationGlobalProvidersMap = createGlobalProvidersMap({\n modules,\n scope: Scope.Operation,\n });\n attachGlobalProvidersMap({\n injector: appInjector,\n globalProvidersMap: singletonGlobalProvidersMap,\n moduleInjectorGetter(moduleId) {\n return modulesMap.get(moduleId).injector;\n },\n });\n // Creating a schema, flattening the typedefs and resolvers\n // is not expensive since it happens only once\n const typeDefs = flatten(modules.map((mod) => mod.typeDefs));\n const resolvers = modules.map((mod) => mod.resolvers).filter(isDefined);\n const schema = (applicationConfig.schemaBuilder || makeExecutableSchema)({\n typeDefs,\n resolvers,\n });\n const contextBuilder = createContextBuilder({\n appInjector,\n appLevelOperationProviders: appOperationProviders,\n modulesMap: modulesMap,\n singletonGlobalProvidersMap,\n operationGlobalProvidersMap,\n });\n const createOperationController = operationControllerCreator({\n contextBuilder,\n });\n const createSubscription = subscriptionCreator({ contextBuilder });\n const createExecution = executionCreator({ contextBuilder });\n const createSchemaForApollo = apolloSchemaCreator({\n createSubscription,\n contextBuilder,\n schema,\n });\n const createApolloExecutor = apolloExecutorCreator({\n createExecution,\n });\n instantiateSingletonProviders({\n appInjector,\n modulesMap,\n });\n return {\n typeDefs,\n resolvers,\n schema,\n injector: appInjector,\n createOperationController,\n createSubscription,\n createExecution,\n createSchemaForApollo,\n createApolloExecutor,\n ɵfactory: applicationFactory,\n ɵconfig: config,\n };\n }\n return applicationFactory();\n}\nfunction createModulesMap(modules) {\n var _a;\n const modulesMap = new Map();\n for (const module of modules) {\n if (modulesMap.has(module.id)) {\n const location = module.metadata.dirname;\n const existingLocation = (_a = modulesMap.get(module.id)) === null || _a === void 0 ? void 0 : _a.metadata.dirname;\n const info = [];\n if (existingLocation) {\n info.push(`Already registered module located at: ${existingLocation}`);\n }\n if (location) {\n info.push(`Duplicated module located at: ${location}`);\n }\n throw new ModuleDuplicatedError(`Module \"${module.id}\" already exists`, ...info);\n }\n modulesMap.set(module.id, module);\n }\n return modulesMap;\n}\nfunction ensureModuleUniqueIds(modules) {\n const collisions = modules\n .filter((mod, i, all) => i !== all.findIndex((m) => m.id === mod.id))\n .map((m) => m.id);\n if (collisions.length) {\n throw new ModuleNonUniqueIdError(`Modules with non-unique ids: ${collisions.join(', ')}`, `All modules should have unique ids, please locate and fix them.`);\n }\n}\n//# sourceMappingURL=application.js.map","import { visit, Kind, } from 'graphql';\nexport function metadataFactory(typeDefs, config) {\n const implemented = {};\n const extended = {};\n function collectObjectDefinition(node) {\n if (!implemented[node.name.value]) {\n implemented[node.name.value] = [];\n }\n if (node.fields && node.fields.length > 0) {\n implemented[node.name.value].push(...node.fields.map((field) => field.name.value));\n }\n if (node.kind === Kind.OBJECT_TYPE_DEFINITION) {\n implemented[node.name.value].push('__isTypeOf');\n }\n if (node.kind === Kind.OBJECT_TYPE_DEFINITION) {\n implemented[node.name.value].push('__resolveReference');\n implemented[node.name.value].push('__resolveObject');\n }\n if (node.kind === Kind.INTERFACE_TYPE_DEFINITION) {\n implemented[node.name.value].push('__resolveType');\n }\n }\n function collectObjectExtension(node) {\n if (node.fields) {\n if (!extended[node.name.value]) {\n extended[node.name.value] = [];\n }\n node.fields.forEach((field) => {\n extended[node.name.value].push(field.name.value);\n });\n }\n }\n for (const doc of typeDefs) {\n visit(doc, {\n // Object\n ObjectTypeDefinition(node) {\n collectObjectDefinition(node);\n },\n ObjectTypeExtension(node) {\n collectObjectExtension(node);\n },\n // Interface\n InterfaceTypeDefinition(node) {\n collectObjectDefinition(node);\n },\n InterfaceTypeExtension(node) {\n collectObjectExtension(node);\n },\n // Union\n UnionTypeDefinition(node) {\n if (!implemented[node.name.value]) {\n implemented[node.name.value] = [];\n }\n if (node.types) {\n implemented[node.name.value].push(...node.types.map((type) => type.name.value));\n }\n implemented[node.name.value].push('__resolveType');\n },\n UnionTypeExtension(node) {\n if (node.types) {\n if (!extended[node.name.value]) {\n extended[node.name.value] = [];\n }\n extended[node.name.value].push(...node.types.map((type) => type.name.value));\n }\n },\n // Input\n InputObjectTypeDefinition(node) {\n collectObjectDefinition(node);\n },\n InputObjectTypeExtension(node) {\n collectObjectExtension(node);\n },\n // Enum\n EnumTypeDefinition(node) {\n if (node.values) {\n if (!implemented[node.name.value]) {\n implemented[node.name.value] = [];\n }\n implemented[node.name.value].push(...node.values.map((value) => value.name.value));\n }\n },\n EnumTypeExtension(node) {\n if (node.values) {\n if (!extended[node.name.value]) {\n extended[node.name.value] = [];\n }\n extended[node.name.value].push(...node.values.map((value) => value.name.value));\n }\n },\n // Scalar\n ScalarTypeDefinition(node) {\n if (!implemented.__scalars) {\n implemented.__scalars = [];\n }\n implemented.__scalars.push(node.name.value);\n },\n });\n }\n return {\n id: config.id,\n typeDefs,\n implements: implemented,\n extends: extended,\n dirname: config.dirname,\n };\n}\n//# sourceMappingURL=metadata.js.map","import { mergeDeepWith } from 'ramda';\nimport { isDefined } from './utils';\nimport { ExtraMiddlewareError, useLocation } from './errors';\nexport function compose(middleware) {\n if (!Array.isArray(middleware)) {\n throw new TypeError('Middleware stack must be an array!');\n }\n for (const fn of middleware) {\n if (typeof fn !== 'function') {\n throw new TypeError('Middleware must be composed of functions!');\n }\n }\n return function composed(context, next) {\n // last called middleware\n let index = -1;\n function dispatch(i) {\n if (i <= index) {\n return Promise.reject(new Error('next() called multiple times'));\n }\n index = i;\n const fn = i === middleware.length ? next : middleware[i];\n if (!fn) {\n return Promise.resolve();\n }\n try {\n return Promise.resolve(fn(context, dispatch.bind(null, i + 1)));\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n return dispatch(0);\n };\n}\nexport function createMiddleware(path, middlewareMap) {\n const middlewares = middlewareMap ? pickMiddlewares(path, middlewareMap) : [];\n return compose(middlewares);\n}\nexport function mergeMiddlewareMaps(app, mod) {\n const merge = (left, right) => {\n return mergeDeepWith((l, r) => {\n if (Array.isArray(l)) {\n return l.concat(r || []);\n }\n return merge(l, r);\n }, left, right);\n };\n return merge(app, mod);\n}\nfunction pickMiddlewares(path, middlewareMap) {\n var _a;\n const middlewares = [];\n const [type, field] = path;\n if ((_a = middlewareMap['*']) === null || _a === void 0 ? void 0 : _a['*']) {\n middlewares.push(...middlewareMap['*']['*']);\n }\n const typeMap = middlewareMap[type];\n if (typeMap) {\n if (typeMap['*']) {\n middlewares.push(...typeMap['*']);\n }\n if (field && typeMap[field]) {\n middlewares.push(...typeMap[field]);\n }\n }\n return middlewares.filter(isDefined);\n}\nexport function validateMiddlewareMap(middlewareMap, metadata) {\n const exists = checkExistence(metadata);\n for (const typeName in middlewareMap.types) {\n if (middlewareMap.types.hasOwnProperty(typeName)) {\n const typeMiddlewareMap = middlewareMap[typeName];\n if (!exists.type(typeName)) {\n throw new ExtraMiddlewareError(`Cannot apply a middleware to non existing \"${typeName}\" type`, useLocation({ dirname: metadata.dirname, id: metadata.id }));\n }\n for (const fieldName in typeMiddlewareMap[typeName]) {\n if (typeMiddlewareMap[typeName].hasOwnProperty(fieldName)) {\n if (!exists.field(typeName, fieldName)) {\n throw new ExtraMiddlewareError(`Cannot apply a middleware to non existing \"${typeName}.${fieldName}\" type.field`, useLocation({ dirname: metadata.dirname, id: metadata.id }));\n }\n }\n }\n }\n }\n}\n/**\n * Helps to make sure a middleware has a corresponding type/field definition.\n * We don't want to pass a module-level middlewares that are not related to the module.\n * Not because it's dangerous but to prevent unused middlewares.\n */\nfunction checkExistence(metadata) {\n return {\n type(name) {\n var _a, _b;\n return isDefined(((_a = metadata.implements) === null || _a === void 0 ? void 0 : _a[name]) || ((_b = metadata.extends) === null || _b === void 0 ? void 0 : _b[name]));\n },\n field(type, name) {\n var _a, _b, _c, _d;\n return isDefined(((_b = (_a = metadata.implements) === null || _a === void 0 ? void 0 : _a[type]) === null || _b === void 0 ? void 0 : _b.includes(name)) ||\n ((_d = (_c = metadata.extends) === null || _c === void 0 ? void 0 : _c[type]) === null || _d === void 0 ? void 0 : _d.includes(name)));\n },\n };\n}\n//# sourceMappingURL=middleware.js.map","import { GraphQLScalarType, concatAST, Kind, defaultFieldResolver, } from 'graphql';\nimport { useLocation, ExtraResolverError, ResolverDuplicatedError, ResolverInvalidError, } from './../shared/errors';\nimport { isNil, isDefined, isPrimitive } from '../shared/utils';\nimport { createMiddleware, mergeMiddlewareMaps, validateMiddlewareMap, } from '../shared/middleware';\nconst resolverMetadataProp = Symbol('metadata');\nexport function createResolvers(config, metadata, app) {\n const ensure = ensureImplements(metadata);\n const normalizedModuleMiddlewareMap = config.middlewares || {};\n const middlewareMap = mergeMiddlewareMaps(app.middlewareMap, normalizedModuleMiddlewareMap);\n validateMiddlewareMap(normalizedModuleMiddlewareMap, metadata);\n const resolvers = addDefaultResolvers(mergeResolvers(config), middlewareMap, config);\n // Wrap resolvers\n for (const typeName in resolvers) {\n if (resolvers.hasOwnProperty(typeName)) {\n const obj = resolvers[typeName];\n if (isScalarResolver(obj)) {\n continue;\n }\n else if (isEnumResolver(obj)) {\n continue;\n }\n else if (obj && typeof obj === 'object') {\n for (const fieldName in obj) {\n if (obj.hasOwnProperty(fieldName)) {\n ensure.type(typeName, fieldName);\n const path = [typeName, fieldName];\n // function\n if (isResolveFn(obj[fieldName])) {\n const resolver = wrapResolver({\n config,\n resolver: obj[fieldName],\n middlewareMap,\n path,\n isTypeResolver: fieldName === '__isTypeOf' || fieldName === '__resolveType',\n isReferenceResolver: fieldName === '__resolveReference',\n isObjectResolver: fieldName === '__resolveObject',\n });\n resolvers[typeName][fieldName] = resolver;\n }\n else if (isResolveOptions(obj[fieldName])) {\n // { resolve }\n if (isDefined(obj[fieldName].resolve)) {\n const resolver = wrapResolver({\n config,\n resolver: obj[fieldName].resolve,\n middlewareMap,\n path,\n });\n resolvers[typeName][fieldName].resolve = resolver;\n }\n // { subscribe }\n if (isDefined(obj[fieldName].subscribe)) {\n const resolver = wrapResolver({\n config,\n resolver: obj[fieldName].subscribe,\n middlewareMap,\n path,\n });\n resolvers[typeName][fieldName].subscribe = resolver;\n }\n }\n }\n }\n }\n }\n }\n return resolvers;\n}\n/**\n * Wrap a resolver so we use module's context instead of app context.\n * Use a middleware if available.\n * Attach metadata to a resolver (we will see if it's helpful, probably in error handling)\n */\nfunction wrapResolver({ resolver, config, path, middlewareMap, isTypeResolver, isReferenceResolver, isObjectResolver, }) {\n if (isTypeResolver || isReferenceResolver) {\n const wrappedResolver = (root, context, info) => {\n const ctx = {\n root,\n context: context.ɵgetModuleContext(config.id, context),\n info,\n };\n return resolver(ctx.root, ctx.context, ctx.info);\n };\n writeResolverMetadata(wrappedResolver, config);\n return wrappedResolver;\n }\n if (isObjectResolver) {\n const wrappedResolver = (root, fields, context, info) => {\n const moduleContext = context.ɵgetModuleContext(config.id, context);\n return resolver(root, fields, moduleContext, info);\n };\n writeResolverMetadata(wrappedResolver, config);\n return wrappedResolver;\n }\n const middleware = createMiddleware(path, middlewareMap);\n const wrappedResolver = (root, args, context, info) => {\n const ctx = {\n root,\n args,\n context: context.ɵgetModuleContext(config.id, context),\n info,\n };\n return middleware(ctx, () => resolver(ctx.root, ctx.args, ctx.context, ctx.info));\n };\n writeResolverMetadata(wrappedResolver, config);\n return wrappedResolver;\n}\n/**\n * We iterate over every defined resolver and check if it's valid and not duplicated\n */\nfunction mergeResolvers(config) {\n if (!config.resolvers) {\n return {};\n }\n const resolvers = Array.isArray(config.resolvers)\n ? config.resolvers\n : [config.resolvers];\n const container = {};\n for (const currentResolvers of resolvers) {\n for (const typeName in currentResolvers) {\n if (currentResolvers.hasOwnProperty(typeName)) {\n const value = currentResolvers[typeName];\n if (isNil(value)) {\n continue;\n }\n else if (isScalarResolver(value)) {\n addScalar({ typeName, resolver: value, container, config });\n }\n else if (isEnumResolver(value)) {\n addEnum({ typeName, resolver: value, container, config });\n }\n else if (value && typeof value === 'object') {\n addObject({ typeName, fields: value, container, config });\n }\n else {\n throw new ResolverInvalidError(`Resolver of \"${typeName}\" is invalid`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n }\n }\n }\n return container;\n}\nfunction addObject({ typeName, fields, container, config, }) {\n if (!container[typeName]) {\n container[typeName] = {};\n }\n for (const fieldName in fields) {\n if (fields.hasOwnProperty(fieldName)) {\n const resolver = fields[fieldName];\n if (isResolveFn(resolver)) {\n if (container[typeName][fieldName]) {\n throw new ResolverDuplicatedError(`Duplicated resolver of \"${typeName}.${fieldName}\"`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n writeResolverMetadata(resolver, config);\n container[typeName][fieldName] = resolver;\n }\n else if (isResolveOptions(resolver)) {\n if (!container[typeName][fieldName]) {\n container[typeName][fieldName] = {};\n }\n // resolve\n if (isDefined(resolver.resolve)) {\n if (container[typeName][fieldName].resolve) {\n throw new ResolverDuplicatedError(`Duplicated resolver of \"${typeName}.${fieldName}\" (resolve method)`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n writeResolverMetadata(resolver.resolve, config);\n container[typeName][fieldName].resolve = resolver.resolve;\n }\n // subscribe\n if (isDefined(resolver.subscribe)) {\n if (container[typeName][fieldName].subscribe) {\n throw new ResolverDuplicatedError(`Duplicated resolver of \"${typeName}.${fieldName}\" (subscribe method)`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n writeResolverMetadata(resolver.subscribe, config);\n container[typeName][fieldName].subscribe = resolver.subscribe;\n }\n }\n }\n }\n}\nfunction addScalar({ typeName, resolver, container, config, }) {\n if (container[typeName]) {\n throw new ResolverDuplicatedError(`Duplicated resolver of scalar \"${typeName}\"`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n writeResolverMetadata(resolver.parseLiteral, config);\n writeResolverMetadata(resolver.parseValue, config);\n writeResolverMetadata(resolver.serialize, config);\n container[typeName] = resolver;\n}\nfunction addEnum({ typeName, resolver, container, config, }) {\n if (!container[typeName]) {\n container[typeName] = {};\n }\n for (const key in resolver) {\n if (resolver.hasOwnProperty(key)) {\n const value = resolver[key];\n if (container[typeName][key]) {\n throw new ResolverDuplicatedError(`Duplicated resolver of \"${typeName}.${key}\" enum value`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n container[typeName][key] = value;\n }\n }\n}\n/**\n * Helps to make sure a resolver has a corresponding type/field definition.\n * We don't want to pass resolve function that are not related to the module.\n */\nfunction ensureImplements(metadata) {\n return {\n type(name, field) {\n var _a, _b;\n const type = []\n .concat((_a = metadata.implements) === null || _a === void 0 ? void 0 : _a[name], (_b = metadata.extends) === null || _b === void 0 ? void 0 : _b[name])\n .filter(isDefined);\n if (type === null || type === void 0 ? void 0 : type.includes(field)) {\n return true;\n }\n const id = `\"${name}.${field}\"`;\n throw new ExtraResolverError(`Resolver of \"${id}\" type cannot be implemented`, `${id} is not defined`, useLocation({ dirname: metadata.dirname, id: metadata.id }));\n },\n scalar(name) {\n var _a;\n if ((((_a = metadata.implements) === null || _a === void 0 ? void 0 : _a.__scalars) || []).includes(name)) {\n return true;\n }\n throw new ExtraResolverError(`Resolver of \"${name}\" scalar cannot be implemented`, `${name} is not defined`, useLocation({ dirname: metadata.dirname, id: metadata.id }));\n },\n };\n}\nfunction writeResolverMetadata(resolver, config) {\n if (!resolver) {\n return;\n }\n resolver[resolverMetadataProp] = {\n moduleId: config.id,\n };\n}\nexport function readResolverMetadata(resolver) {\n return resolver[resolverMetadataProp];\n}\n/**\n * In order to use middlewares on fields\n * that are defined in SDL but have no implemented resolvers,\n * we would have to recreate GraphQLSchema and wrap resolve functions.\n *\n * Since we can't access GraphQLSchema on a module level\n * and recreating GraphQLSchema seems unreasonable,\n * we can create default resolvers instead.\n *\n * @example\n *\n * gql`\n * type Query {\n * me: User!\n * }\n *\n * type User {\n * name: String!\n * }\n * `\n *\n * The resolver of `Query.me` is implemented and resolver of `User.name` is not.\n * In case where a middleware wants to intercept the resolver of `User.name`,\n * we use a default field resolver from `graphql` package\n * and put it next to other defined resolvers.\n *\n * This way our current logic of wrapping resolvers and running\n * middleware functions stays untouched.\n */\nfunction addDefaultResolvers(resolvers, middlewareMap, config) {\n const container = resolvers;\n const sdl = Array.isArray(config.typeDefs)\n ? concatAST(config.typeDefs)\n : config.typeDefs;\n function hasMiddleware(typeName, fieldName) {\n var _a, _b, _c, _d, _e, _f;\n return ((((_b = (_a = middlewareMap['*']) === null || _a === void 0 ? void 0 : _a['*']) === null || _b === void 0 ? void 0 : _b.length) ||\n ((_d = (_c = middlewareMap[typeName]) === null || _c === void 0 ? void 0 : _c['*']) === null || _d === void 0 ? void 0 : _d.length) ||\n ((_f = (_e = middlewareMap[typeName]) === null || _e === void 0 ? void 0 : _e[fieldName]) === null || _f === void 0 ? void 0 : _f.length)) > 0);\n }\n sdl.definitions.forEach((definition) => {\n if (definition.kind === Kind.OBJECT_TYPE_DEFINITION ||\n definition.kind === Kind.OBJECT_TYPE_EXTENSION) {\n // Right now we only support Object type\n if (definition.fields) {\n const typeName = definition.name.value;\n definition.fields.forEach((field) => {\n var _a;\n const fieldName = field.name.value;\n if (!((_a = container[typeName]) === null || _a === void 0 ? void 0 : _a[fieldName]) &&\n hasMiddleware(typeName, fieldName)) {\n if (!container[typeName]) {\n container[typeName] = {};\n }\n container[typeName][fieldName] = defaultFieldResolver;\n }\n });\n }\n }\n });\n return container;\n}\n//\n// Resolver helpers\n//\nfunction isResolveFn(value) {\n return typeof value === 'function';\n}\nfunction isResolveOptions(value) {\n return isDefined(value.resolve) || isDefined(value.subscribe);\n}\nfunction isScalarResolver(obj) {\n return obj instanceof GraphQLScalarType;\n}\nfunction isEnumResolver(obj) {\n return Object.values(obj).every(isPrimitive);\n}\n//# sourceMappingURL=resolvers.js.map","import { Kind } from 'graphql';\nimport { NonDocumentNodeError, useLocation } from '../shared/errors';\n/**\n * Create a list of DocumentNode objects based on Module's config.\n * Add a location, so we get richer errors.\n */\nexport function createTypeDefs(config) {\n const typeDefs = Array.isArray(config.typeDefs)\n ? config.typeDefs\n : [config.typeDefs];\n ensureDocumentNode(config, typeDefs);\n return typeDefs;\n}\nfunction ensureDocumentNode(config, typeDefs) {\n function ensureEach(doc, i) {\n if ((doc === null || doc === void 0 ? void 0 : doc.kind) !== Kind.DOCUMENT) {\n throw new NonDocumentNodeError(`Expected parsed document but received ${typeof doc} at index ${i} in typeDefs list`, useLocation(config));\n }\n }\n typeDefs.forEach(ensureEach);\n}\n//# sourceMappingURL=type-defs.js.map","import { InjectionToken } from '../di';\n/**\n * @api\n * `MODULE_ID` is an InjectionToken representing module's ID\n *\n * @example\n * ```typescript\n * import { MODULE_ID, Inject, Injectable } from 'graphql-modules';\n *\n * (A)Injectable()\n * export class Data {\n * constructor((A)Inject(MODULE_ID) moduleId: string) {\n * console.log(`Data used in ${moduleId} module`)\n * }\n * }\n * ```\n */\nexport const MODULE_ID = new InjectionToken('module-id');\n//# sourceMappingURL=tokens.js.map","import { metadataFactory } from './metadata';\nimport { createResolvers } from './resolvers';\nimport { createTypeDefs } from './type-defs';\nimport { MODULE_ID } from './tokens';\nimport { ReflectiveInjector, onlySingletonProviders, onlyOperationProviders, } from '../di';\nimport { resolveProviders } from './../di/resolution';\nexport function moduleFactory(config) {\n const typeDefs = createTypeDefs(config);\n const metadata = metadataFactory(typeDefs, config);\n const providers = typeof config.providers === 'function'\n ? config.providers()\n : config.providers;\n // Filter providers and keep them this way\n // so we don't do this filtering multiple times.\n // Providers don't change over time, so it's safe to do it.\n const operationProviders = ReflectiveInjector.resolve(onlyOperationProviders(providers));\n const singletonProviders = ReflectiveInjector.resolve(onlySingletonProviders(providers));\n const mod = {\n id: config.id,\n config,\n metadata,\n typeDefs,\n providers,\n operationProviders,\n singletonProviders,\n // Factory is called once on application creation,\n // before we even handle GraphQL Operation\n factory(app) {\n const resolvedModule = mod;\n resolvedModule.singletonProviders = singletonProviders;\n resolvedModule.operationProviders = operationProviders;\n // Create a module-level Singleton injector\n const injector = ReflectiveInjector.createFromResolved({\n name: `Module \"${config.id}\" (Singleton Scope)`,\n providers: resolvedModule.singletonProviders.concat(resolveProviders([\n {\n // with module's id, useful in Logging and stuff\n provide: MODULE_ID,\n useValue: config.id,\n },\n ])),\n parent: app.injector,\n });\n // We attach injector property to existing `mod` object\n // because we want to keep references\n // that are later on used in testing utils\n resolvedModule.injector = injector;\n // Create resolvers object based on module's config\n // It involves wrapping a resolver with middlewares\n // and other things like validation\n resolvedModule.resolvers = createResolvers(config, metadata, {\n middlewareMap: app.middlewares,\n });\n return resolvedModule;\n },\n };\n return mod;\n}\n//# sourceMappingURL=factory.js.map","import { moduleFactory } from './factory';\n/**\n * @api\n * Creates a Module, an element used by Application. Accepts `ModuleConfig`.\n *\n * @example\n *\n * ```typescript\n * import { createModule, gql } from 'graphql-modules';\n *\n * export const usersModule = createModule({\n * id: 'users',\n * typeDefs: gql`\n * // GraphQL SDL\n * `,\n * resolvers: {\n * // ...\n * }\n * });\n * ```\n */\nexport function createModule(config) {\n return moduleFactory(config);\n}\n//# sourceMappingURL=module.js.map","import { parse, Kind } from 'graphql';\nexport function gql(literals) {\n const result = typeof literals === 'string' ? literals : literals[0];\n const parsed = parse(result);\n if (!parsed || parsed.kind !== Kind.DOCUMENT) {\n throw new Error('Not a valid GraphQL document.');\n }\n return parsed;\n}\n//# sourceMappingURL=gql.js.map","import { share } from '../shared/utils';\nexport function mockApplication(app) {\n function mockedFactory(newConfig) {\n const sharedFactory = share(() => app.ɵfactory(newConfig));\n return {\n get typeDefs() {\n return sharedFactory().typeDefs;\n },\n get resolvers() {\n return sharedFactory().resolvers;\n },\n get schema() {\n return sharedFactory().schema;\n },\n get injector() {\n return sharedFactory().injector;\n },\n createOperationController(options) {\n return sharedFactory().createOperationController(options);\n },\n createSubscription(options) {\n return sharedFactory().createSubscription(options);\n },\n createExecution(options) {\n return sharedFactory().createExecution(options);\n },\n createSchemaForApollo() {\n return sharedFactory().createSchemaForApollo();\n },\n createApolloExecutor() {\n return sharedFactory().createApolloExecutor();\n },\n get ɵfactory() {\n return sharedFactory().ɵfactory;\n },\n get ɵconfig() {\n return sharedFactory().ɵconfig;\n },\n replaceModule(newModule) {\n const config = sharedFactory().ɵconfig;\n return mockedFactory({\n ...config,\n modules: config.modules.map((mod) => mod.id === newModule.ɵoriginalModule.id ? newModule : mod),\n });\n },\n addProviders(newProviders) {\n const config = sharedFactory().ɵconfig;\n const existingProviders = typeof config.providers === 'function'\n ? config.providers()\n : config.providers;\n const providers = Array.isArray(existingProviders)\n ? existingProviders.concat(newProviders)\n : newProviders;\n return mockedFactory({\n ...config,\n providers,\n });\n },\n };\n }\n return mockedFactory();\n}\n//# sourceMappingURL=test-application.js.map","import { visit, Kind, concatAST, } from 'graphql';\nimport { moduleFactory } from '../module/factory';\nimport { createApplication } from '../application/application';\nimport { createModule } from '../module/module';\nexport function mockModule(testedModule, overrideConfig) {\n const sourceProviders = typeof testedModule.config.providers === 'function'\n ? testedModule.config.providers()\n : testedModule.config.providers;\n const overrideProviders = typeof overrideConfig.providers === 'function'\n ? overrideConfig.providers()\n : overrideConfig.providers;\n const newModule = createModule({\n ...testedModule.config,\n providers: [...(sourceProviders || []), ...(overrideProviders || [])],\n });\n newModule['ɵoriginalModule'] = testedModule;\n return newModule;\n}\nexport function testModule(testedModule, config) {\n var _a;\n const mod = transformModule(testedModule, config);\n const modules = [mod].concat((_a = config === null || config === void 0 ? void 0 : config.modules) !== null && _a !== void 0 ? _a : []);\n return createApplication({\n ...(config || {}),\n modules,\n providers: config === null || config === void 0 ? void 0 : config.providers,\n middlewares: config === null || config === void 0 ? void 0 : config.middlewares,\n });\n}\nfunction transformModule(mod, config) {\n const transforms = [];\n if (config === null || config === void 0 ? void 0 : config.replaceExtensions) {\n transforms.push((m) => moduleFactory({\n ...m.config,\n typeDefs: replaceExtensions(m.typeDefs),\n }));\n }\n if (config === null || config === void 0 ? void 0 : config.typeDefs) {\n transforms.push((m) => moduleFactory({\n ...m.config,\n typeDefs: m.typeDefs.concat(config.typeDefs),\n }));\n }\n if (config === null || config === void 0 ? void 0 : config.inheritTypeDefs) {\n transforms.push((m) => moduleFactory({\n ...m.config,\n typeDefs: inheritTypeDefs(m.typeDefs, config.inheritTypeDefs),\n }));\n }\n if (config === null || config === void 0 ? void 0 : config.resolvers) {\n transforms.push((m) => {\n const resolvers = m.config.resolvers\n ? Array.isArray(m.config.resolvers)\n ? m.config.resolvers\n : [m.config.resolvers]\n : [];\n return moduleFactory({\n ...m.config,\n resolvers: resolvers.concat(config.resolvers),\n });\n });\n }\n if (transforms) {\n return transforms.reduce((m, transform) => transform(m), mod);\n }\n return mod;\n}\nfunction inheritTypeDefs(originalTypeDefs, modules) {\n const original = concatAST(originalTypeDefs);\n const typeDefs = treeshakeTypesDefs(original, modules.reduce((typeDefs, externalMod) => typeDefs.concat(externalMod.typeDefs), []));\n return typeDefs;\n}\nfunction replaceExtensions(typeDefs) {\n const types = [];\n const extensions = [];\n // List all object types\n typeDefs.forEach((doc) => {\n visit(doc, {\n ObjectTypeDefinition(node) {\n types.push(node.name.value);\n },\n });\n });\n // turn object type extensions into object types\n return typeDefs.map((doc) => {\n return visit(doc, {\n ObjectTypeExtension(node) {\n // only if object type doesn't exist\n if (extensions.includes(node.name.value) ||\n types.includes(node.name.value)) {\n return node;\n }\n return {\n ...node,\n kind: Kind.OBJECT_TYPE_DEFINITION,\n };\n },\n });\n });\n}\nfunction treeshakeTypesDefs(originalSource, sources) {\n const namedTypes = originalSource.definitions.filter(isNamedTypeDefinition);\n const typesToVisit = namedTypes.map((def) => def.name.value);\n const rootFields = namedTypes.reduce((acc, node) => {\n const typeName = node.name.value;\n if (isRootType(typeName) && hasFields(node)) {\n if (!acc[typeName]) {\n acc[typeName] = [];\n }\n node.fields.forEach((field) => {\n acc[typeName].push(field.name.value);\n });\n }\n return acc;\n }, {});\n const schema = concatAST([originalSource].concat(sources));\n const involvedTypes = new Set(visitTypes(schema, typesToVisit, rootFields));\n return {\n kind: Kind.DOCUMENT,\n definitions: schema.definitions.filter((def) => {\n var _a, _b;\n if (isNamedTypeDefinition(def)) {\n const typeName = def.name.value;\n if (!involvedTypes.has(def.name.value)) {\n return false;\n }\n if ((_a = rootFields[typeName]) === null || _a === void 0 ? void 0 : _a.length) {\n const rootType = def;\n if ((_b = rootType.fields) === null || _b === void 0 ? void 0 : _b.every((field) => !rootFields[typeName].includes(field.name.value))) {\n return false;\n }\n }\n }\n return true;\n }),\n };\n}\nfunction isNamedTypeDefinition(def) {\n return (!!def &&\n def.kind !== Kind.SCHEMA_DEFINITION &&\n def.kind !== Kind.SCHEMA_EXTENSION);\n}\nfunction visitTypes(schema, types, rootFields) {\n const visitedTypes = [];\n const scalars = schema.definitions\n .filter((def) => def.kind === Kind.SCALAR_TYPE_DEFINITION ||\n def.kind === Kind.SCALAR_TYPE_EXTENSION)\n .map((def) => def.name.value);\n for (const typeName of types) {\n collectType(typeName);\n }\n return visitedTypes;\n function collectField(field, parentTypeName) {\n var _a;\n if (parentTypeName &&\n isRootType(parentTypeName) &&\n ((_a = rootFields[parentTypeName]) === null || _a === void 0 ? void 0 : _a.length) &&\n !rootFields[parentTypeName].includes(field.name.value)) {\n return;\n }\n collectType(resolveType(field.type));\n if (field.arguments) {\n field.arguments.forEach((arg) => {\n collectType(resolveType(arg.type));\n });\n }\n if (field.directives) {\n field.directives.forEach((directive) => {\n collectType(directive.name.value);\n });\n }\n }\n function collectType(typeName) {\n if (visitedTypes.includes(typeName)) {\n return;\n }\n if (isScalar(typeName)) {\n visitedTypes.push(typeName);\n return;\n }\n const types = findTypes(typeName);\n visitedTypes.push(typeName);\n types.forEach((type) => {\n if (hasFields(type)) {\n type.fields.forEach((field) => {\n collectField(field, typeName);\n });\n }\n if (hasTypes(type)) {\n type.types.forEach((t) => {\n collectType(resolveType(t));\n });\n }\n if (hasInterfaces(type)) {\n type.interfaces.forEach((i) => {\n collectType(resolveType(i));\n });\n }\n });\n }\n function resolveType(type) {\n if (type.kind === 'ListType') {\n return resolveType(type.type);\n }\n if (type.kind === 'NonNullType') {\n return resolveType(type.type);\n }\n return type.name.value;\n }\n function isScalar(name) {\n return scalars\n .concat(['String', 'Boolean', 'Int', 'ID', 'Float'])\n .includes(name);\n }\n function findTypes(typeName) {\n const types = schema.definitions.filter((def) => isNamedTypeDefinition(def) && def.name.value === typeName);\n if (!types.length) {\n throw new Error(`Missing type \"${typeName}\"`);\n }\n return types;\n }\n}\nfunction hasInterfaces(def) {\n return (hasPropValue(def, 'interfaces') &&\n [\n Kind.OBJECT_TYPE_DEFINITION,\n Kind.OBJECT_TYPE_EXTENSION,\n Kind.INTERFACE_TYPE_DEFINITION,\n Kind.INTERFACE_TYPE_EXTENSION,\n ].includes(def.kind));\n}\nfunction hasTypes(def) {\n return ([Kind.UNION_TYPE_DEFINITION, Kind.UNION_TYPE_EXTENSION].includes(def.kind) && hasPropValue(def, 'types'));\n}\nfunction hasFields(def) {\n return ([\n Kind.OBJECT_TYPE_DEFINITION,\n Kind.OBJECT_TYPE_EXTENSION,\n Kind.INTERFACE_TYPE_DEFINITION,\n Kind.INTERFACE_TYPE_EXTENSION,\n Kind.INPUT_OBJECT_TYPE_DEFINITION,\n Kind.INPUT_OBJECT_TYPE_EXTENSION,\n ].includes(def.kind) && hasPropValue(def, 'fields'));\n}\nfunction hasPropValue(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop) && obj[prop];\n}\nfunction isRootType(typeName) {\n return (typeName === 'Query' ||\n typeName === 'Mutation' ||\n typeName === 'Subscription');\n}\n//# sourceMappingURL=test-module.js.map","import { ReflectiveInjector } from '../di/injector';\nimport { CONTEXT } from '../application/tokens';\nimport { readInjectableMetadata } from '../di/metadata';\nexport function testInjector(providers) {\n const resolvedProviders = ReflectiveInjector.resolve([\n { provide: CONTEXT, useValue: {} },\n ...providers,\n ]);\n const injector = ReflectiveInjector.createFromResolved({\n name: 'test',\n providers: resolvedProviders,\n });\n injector.instantiateAll();\n return injector;\n}\nexport function readProviderOptions(provider) {\n return readInjectableMetadata(provider, true).options;\n}\n//# sourceMappingURL=test-injector.js.map","export function execute(app, inputs, options) {\n const executor = app.createExecution(options);\n return executor({\n schema: app.schema,\n ...inputs,\n });\n}\n//# sourceMappingURL=graphql.js.map","export function provideEmpty(token) {\n return {\n provide: token,\n useValue: {},\n };\n}\n//# sourceMappingURL=di.js.map","import { mockApplication } from './test-application';\nimport { testModule, mockModule } from './test-module';\nimport { testInjector, readProviderOptions } from './test-injector';\nimport { execute } from './graphql';\nimport { provideEmpty } from './di';\nexport const testkit = {\n mockApplication,\n mockModule,\n testModule,\n testInjector,\n readProviderOptions,\n provideEmpty,\n execute,\n};\n//# sourceMappingURL=index.js.map"],"names":["Scope","createHook","executionAsyncId","GraphQLSchema","execute","subscribe","wrapSchema","schema","makeExecutableSchema","Kind","visit","mergeDeepWith","concatAST","defaultFieldResolver","GraphQLScalarType","parse"],"mappings":"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"}
|
package/index.esm.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../dist/graphql-modules/src/di/utils.js","../../dist/graphql-modules/src/di/errors.js","../../dist/graphql-modules/src/di/metadata.js","../../dist/graphql-modules/src/di/providers.js","../../dist/graphql-modules/src/application/execution-context.js","../../dist/graphql-modules/src/di/decorators.js","../../dist/graphql-modules/src/di/forward-ref.js","../../dist/graphql-modules/src/di/registry.js","../../dist/graphql-modules/src/di/resolution.js","../../dist/graphql-modules/src/di/injector.js","../../dist/graphql-modules/src/shared/errors.js","../../dist/graphql-modules/src/shared/utils.js","../../dist/graphql-modules/src/application/di.js","../../dist/graphql-modules/src/application/tokens.js","../../dist/graphql-modules/src/application/context.js","../../dist/graphql-modules/src/application/execution.js","../../dist/graphql-modules/src/application/subscription.js","../../dist/graphql-modules/src/application/apollo.js","../../dist/graphql-modules/src/application/operation-controller.js","../../dist/graphql-modules/src/application/application.js","../../dist/graphql-modules/src/module/metadata.js","../../dist/graphql-modules/src/shared/middleware.js","../../dist/graphql-modules/src/module/resolvers.js","../../dist/graphql-modules/src/module/type-defs.js","../../dist/graphql-modules/src/module/tokens.js","../../dist/graphql-modules/src/module/factory.js","../../dist/graphql-modules/src/module/module.js","../../dist/graphql-modules/src/shared/gql.js","../../dist/graphql-modules/src/testing/test-application.js","../../dist/graphql-modules/src/testing/test-module.js","../../dist/graphql-modules/src/testing/test-injector.js","../../dist/graphql-modules/src/testing/graphql.js","../../dist/graphql-modules/src/testing/di.js","../../dist/graphql-modules/src/testing/index.js"],"sourcesContent":["export const ERROR_TYPE = 'diType';\nexport const ERROR_ORIGINAL_ERROR = 'diOriginalError';\nexport const ERROR_LOGGER = 'diErrorLogger';\nexport function getType(error) {\n return error[ERROR_TYPE];\n}\nexport function getOriginalError(error) {\n return error[ERROR_ORIGINAL_ERROR];\n}\nfunction defaultErrorLogger(console, ...values) {\n // eslint-disable-next-line no-console\n console.error(...values);\n}\nexport function getErrorLogger(error) {\n return error[ERROR_LOGGER] || defaultErrorLogger;\n}\nexport function wrappedError(message, originalError) {\n const msg = `${message} caused by: ${originalError instanceof Error ? originalError.message : originalError}`;\n const error = Error(msg);\n error[ERROR_ORIGINAL_ERROR] = originalError;\n return error;\n}\nexport function stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (token == null) {\n return '' + token;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n//# sourceMappingURL=utils.js.map","import { stringify, wrappedError, ERROR_ORIGINAL_ERROR, getOriginalError, } from './utils';\nexport function invalidProviderError(provider) {\n return Error(`Invalid provider - only instances of Provider and Type are allowed, got: ${provider}`);\n}\nexport function noInjectableError(type) {\n return Error(`Missing @Injectable decorator for '${stringify(type)}'`);\n}\nexport function noAnnotationError(typeOrFunc, params) {\n const signature = [];\n for (let i = 0, len = params.length; i < len; i++) {\n const parameter = params[i];\n if (!parameter.type) {\n signature.push('?');\n }\n else {\n signature.push(stringify(parameter.type));\n }\n }\n return Error(\"Cannot resolve all parameters for '\" +\n stringify(typeOrFunc) +\n \"'(\" +\n signature.join(', ') +\n '). ' +\n \"Make sure that all the parameters are decorated with Inject or have valid type annotations and that '\" +\n stringify(typeOrFunc) +\n \"' is decorated with Injectable.\");\n}\nexport function cyclicDependencyError(injector, key) {\n return injectionError(injector, key, function () {\n return `Cannot instantiate cyclic dependency!${constructResolvingPath(this.keys)}`;\n });\n}\nexport function noProviderError(injector, key) {\n return injectionError(injector, key, function () {\n const first = stringify(this.keys[0].token);\n return `No provider for ${first}!${constructResolvingPath(this.keys)}`;\n });\n}\nexport function instantiationError(injector, originalException, key) {\n return injectionError(injector, key, function () {\n const first = stringify(this.keys[0].token);\n return `Error during instantiation of ${first}: ${getOriginalError(this).message}${constructResolvingPath(this.keys)}`;\n }, originalException);\n}\nfunction injectionError(injector, key, constructResolvingMessage, originalError) {\n const error = (originalError\n ? wrappedError('', originalError)\n : Error());\n error.addKey = addKey;\n error.keys = [key];\n error.constructResolvingMessage = function wrappedConstructResolvingMessage() {\n return (constructResolvingMessage.call(this) + ` - in ${injector.displayName}`);\n };\n error.message = error.constructResolvingMessage();\n error[ERROR_ORIGINAL_ERROR] = originalError;\n return error;\n}\nfunction constructResolvingPath(keys) {\n if (keys.length > 1) {\n const reversed = findFirstClosedCycle(keys.slice().reverse());\n const tokenStrs = reversed.map((k) => stringify(k.token));\n return ' (' + tokenStrs.join(' -> ') + ')';\n }\n return '';\n}\nfunction findFirstClosedCycle(keys) {\n const res = [];\n for (let i = 0; i < keys.length; ++i) {\n if (res.indexOf(keys[i]) > -1) {\n res.push(keys[i]);\n return res;\n }\n res.push(keys[i]);\n }\n return res;\n}\nfunction addKey(key) {\n this.keys.push(key);\n this.message = this.constructResolvingMessage();\n}\n//# sourceMappingURL=errors.js.map","import { noInjectableError } from './errors';\nexport const INJECTABLE = Symbol('di:injectable');\nexport function readInjectableMetadata(type, throwOnMissing) {\n const meta = type[INJECTABLE];\n if (!meta && throwOnMissing) {\n throw noInjectableError(type);\n }\n return meta;\n}\nexport function ensureInjectableMetadata(type) {\n if (!readInjectableMetadata(type)) {\n const meta = {\n params: [],\n };\n type[INJECTABLE] = meta;\n }\n}\n//# sourceMappingURL=metadata.js.map","import { readInjectableMetadata } from './metadata';\nexport const Type = Function;\n/// @ts-ignore\nexport class InjectionToken {\n constructor(_desc) {\n this._desc = _desc;\n }\n toString() {\n return `InjectionToken ${this._desc}`;\n }\n}\nexport function isToken(v) {\n return v && v instanceof InjectionToken;\n}\nexport function isType(v) {\n return typeof v === 'function' && v !== Object;\n}\nexport var Scope;\n(function (Scope) {\n Scope[Scope[\"Singleton\"] = 0] = \"Singleton\";\n Scope[Scope[\"Operation\"] = 1] = \"Operation\";\n})(Scope || (Scope = {}));\nexport function onlySingletonProviders(providers = []) {\n return providers.filter((provider) => {\n if (isType(provider)) {\n const { options } = readInjectableMetadata(provider, true);\n return (options === null || options === void 0 ? void 0 : options.scope) !== Scope.Operation;\n }\n else {\n return provider.scope !== Scope.Operation;\n }\n });\n}\nexport function onlyOperationProviders(providers = []) {\n return providers.filter((provider) => {\n if (isType(provider)) {\n const { options } = readInjectableMetadata(provider, true);\n return (options === null || options === void 0 ? void 0 : options.scope) === Scope.Operation;\n }\n else {\n return provider.scope === Scope.Operation;\n }\n });\n}\nexport function isClassProvider(provider) {\n return typeof provider.useClass !== 'undefined';\n}\nexport function isFactoryProvider(provider) {\n return typeof provider.useFactory !== 'undefined';\n}\n//# sourceMappingURL=providers.js.map","import { createHook, executionAsyncId } from 'async_hooks';\nconst executionContextStore = new Map();\nconst executionContextHook = createHook({\n init(asyncId, _, triggerAsyncId) {\n // Store same context data for child async resources\n if (executionContextStore.has(triggerAsyncId)) {\n executionContextStore.set(asyncId, executionContextStore.get(triggerAsyncId));\n }\n },\n destroy(asyncId) {\n if (executionContextStore.has(asyncId)) {\n executionContextStore.delete(asyncId);\n }\n },\n});\nexport const executionContext = {\n create(picker) {\n executionContextStore.set(executionAsyncId(), picker);\n },\n getModuleContext(moduleId) {\n const picker = executionContextStore.get(executionAsyncId());\n return picker.getModuleContext(moduleId);\n },\n getApplicationContext() {\n const picker = executionContextStore.get(executionAsyncId());\n return picker.getApplicationContext();\n },\n};\nlet executionContextEnabled = false;\nexport function enableExecutionContext() {\n if (!executionContextEnabled) {\n executionContextHook.enable();\n }\n}\n//# sourceMappingURL=execution-context.js.map","import { isType } from './providers';\nimport { INJECTABLE, readInjectableMetadata, ensureInjectableMetadata, } from './metadata';\nimport { enableExecutionContext } from '../application/execution-context';\nfunction ensureReflect() {\n if (!(Reflect && Reflect.getOwnMetadata)) {\n throw 'reflect-metadata shim is required when using class decorators';\n }\n}\nexport function Injectable(options) {\n return (target) => {\n var _a;\n ensureReflect();\n enableExecutionContext();\n const params = (Reflect.getMetadata('design:paramtypes', target) || []).map((param) => (isType(param) ? param : null));\n const existingMeta = readInjectableMetadata(target);\n const meta = {\n params: ((_a = existingMeta === null || existingMeta === void 0 ? void 0 : existingMeta.params) === null || _a === void 0 ? void 0 : _a.length) > 0 && params.length === 0\n ? existingMeta === null || existingMeta === void 0 ? void 0 : existingMeta.params\n : params.map((param, i) => {\n var _a;\n const existingParam = (_a = existingMeta === null || existingMeta === void 0 ? void 0 : existingMeta.params) === null || _a === void 0 ? void 0 : _a[i];\n return {\n type: (existingParam === null || existingParam === void 0 ? void 0 : existingParam.type) || param,\n optional: typeof (existingParam === null || existingParam === void 0 ? void 0 : existingParam.optional) === 'boolean'\n ? existingParam.optional\n : false,\n };\n }),\n options: {\n ...((existingMeta === null || existingMeta === void 0 ? void 0 : existingMeta.options) || {}),\n ...(options || {}),\n },\n };\n target[INJECTABLE] = meta;\n return target;\n };\n}\nexport function Optional() {\n return (target, _, index) => {\n ensureReflect();\n ensureInjectableMetadata(target);\n const meta = readInjectableMetadata(target);\n meta.params[index] = {\n ...meta.params[index],\n optional: true,\n };\n };\n}\nexport function Inject(type) {\n return (target, _, index) => {\n ensureReflect();\n ensureInjectableMetadata(target);\n const meta = readInjectableMetadata(target);\n meta.params[index] = {\n type,\n optional: false,\n };\n };\n}\nexport function ExecutionContext() {\n return (obj, propertyKey) => {\n ensureReflect();\n const target = obj.constructor;\n ensureInjectableMetadata(target);\n const meta = readInjectableMetadata(target);\n if (!meta.options) {\n meta.options = {};\n }\n if (!meta.options.executionContextIn) {\n meta.options.executionContextIn = [];\n }\n meta.options.executionContextIn.push(propertyKey);\n };\n}\n//# sourceMappingURL=decorators.js.map","import { stringify } from './utils';\nconst forwardRefSymbol = Symbol('__forward_ref__');\n/**\n * Useful in \"circular dependencies of modules\" situation\n */\nexport function forwardRef(forwardRefFn) {\n forwardRefFn[forwardRefSymbol] = forwardRef;\n forwardRefFn.toString = function () {\n return stringify(this());\n };\n return forwardRefFn;\n}\nexport function resolveForwardRef(type) {\n if (typeof type === 'function' &&\n type.hasOwnProperty(forwardRefSymbol) &&\n type[forwardRefSymbol] === forwardRef) {\n return type();\n }\n else {\n return type;\n }\n}\n//# sourceMappingURL=forward-ref.js.map","import { stringify } from './utils';\nimport { resolveForwardRef } from './forward-ref';\nexport class Key {\n constructor(token, id) {\n this.token = token;\n this.id = id;\n if (!token) {\n throw new Error('Token must be defined!');\n }\n }\n /**\n * Returns a stringified token.\n */\n get displayName() {\n return stringify(this.token);\n }\n static get(token) {\n return _globalKeyRegistry.get(resolveForwardRef(token));\n }\n}\nclass GlobalKeyRegistry {\n constructor() {\n this._allKeys = new Map();\n }\n get(token) {\n if (token instanceof Key) {\n return token;\n }\n if (this._allKeys.has(token)) {\n return this._allKeys.get(token);\n }\n const newKey = new Key(token, _globalKeyRegistry.numberOfKeys);\n this._allKeys.set(token, newKey);\n return newKey;\n }\n get numberOfKeys() {\n return this._allKeys.size;\n }\n}\nconst _globalKeyRegistry = new GlobalKeyRegistry();\n//# sourceMappingURL=registry.js.map","import { Type, isClassProvider, isFactoryProvider, } from './providers';\nimport { invalidProviderError, noAnnotationError } from './errors';\nimport { Key } from './registry';\nimport { resolveForwardRef } from './forward-ref';\nimport { readInjectableMetadata } from './metadata';\nconst _EMPTY_LIST = [];\nexport class ResolvedProvider {\n constructor(key, factory) {\n this.key = key;\n this.factory = factory;\n }\n}\nexport class ResolvedFactory {\n constructor(\n /**\n * Factory function which can return an instance of an object represented by a key.\n */\n factory, \n /**\n * Arguments (dependencies) to the `factory` function.\n */\n dependencies, \n /**\n * Methods invoked within ExecutionContext.\n */\n executionContextIn, \n /**\n * Has onDestroy hook\n */\n hasOnDestroyHook, \n /**\n * Is Global\n */\n isGlobal) {\n this.factory = factory;\n this.dependencies = dependencies;\n this.executionContextIn = executionContextIn;\n this.hasOnDestroyHook = hasOnDestroyHook;\n this.isGlobal = isGlobal;\n }\n}\nexport class Dependency {\n constructor(key, optional) {\n this.key = key;\n this.optional = optional;\n }\n static fromKey(key) {\n return new Dependency(key, false);\n }\n}\nexport function resolveProviders(providers) {\n const normalized = normalizeProviders(providers, []);\n const resolved = normalized.map(resolveProvider);\n const resolvedProviderMap = mergeResolvedProviders(resolved, new Map());\n return Array.from(resolvedProviderMap.values());\n}\nfunction resolveProvider(provider) {\n return new ResolvedProvider(Key.get(provider.provide), resolveFactory(provider));\n}\nfunction mergeResolvedProviders(providers, normalizedProvidersMap) {\n for (let i = 0; i < providers.length; i++) {\n const provider = providers[i];\n normalizedProvidersMap.set(provider.key.id, provider);\n }\n return normalizedProvidersMap;\n}\nfunction normalizeProviders(providers, res) {\n providers.forEach((token) => {\n if (token instanceof Type) {\n res.push({ provide: token, useClass: token });\n }\n else if (token &&\n typeof token === 'object' &&\n token.provide !== undefined) {\n res.push(token);\n }\n else if (token instanceof Array) {\n normalizeProviders(token, res);\n }\n else {\n throw invalidProviderError(token);\n }\n });\n return res;\n}\nfunction resolveFactory(provider) {\n let factoryFn;\n let resolvedDeps = _EMPTY_LIST;\n let executionContextIn = _EMPTY_LIST;\n let hasOnDestroyHook = false;\n let isGlobal;\n if (isClassProvider(provider)) {\n const useClass = resolveForwardRef(provider.useClass);\n factoryFn = makeFactory(useClass);\n resolvedDeps = dependenciesFor(useClass);\n executionContextIn = executionContextInFor(useClass);\n isGlobal = globalFor(useClass);\n hasOnDestroyHook = typeof useClass.prototype.onDestroy === 'function';\n }\n else if (isFactoryProvider(provider)) {\n factoryFn = provider.useFactory;\n resolvedDeps = constructDependencies(provider.useFactory, provider.deps || []);\n isGlobal = provider.global;\n if (provider.executionContextIn) {\n executionContextIn = provider.executionContextIn;\n }\n }\n else {\n factoryFn = () => provider.useValue;\n resolvedDeps = _EMPTY_LIST;\n isGlobal = provider.global;\n }\n return new ResolvedFactory(factoryFn, resolvedDeps, executionContextIn, hasOnDestroyHook, isGlobal !== null && isGlobal !== void 0 ? isGlobal : false);\n}\nfunction dependenciesFor(type) {\n const { params } = readInjectableMetadata(type, true);\n if (!params) {\n return [];\n }\n if (params.some((p) => p.type == null)) {\n throw noAnnotationError(type, params);\n }\n return params.map((p) => extractToken(p, params));\n}\nfunction executionContextInFor(type) {\n const { options } = readInjectableMetadata(type, true);\n if ((options === null || options === void 0 ? void 0 : options.executionContextIn) &&\n options.executionContextIn !== _EMPTY_LIST) {\n return options === null || options === void 0 ? void 0 : options.executionContextIn;\n }\n return [];\n}\nfunction globalFor(type) {\n var _a;\n const { options } = readInjectableMetadata(type);\n return (_a = options === null || options === void 0 ? void 0 : options.global) !== null && _a !== void 0 ? _a : false;\n}\nfunction constructDependencies(typeOrFunc, dependencies) {\n if (!dependencies) {\n return dependenciesFor(typeOrFunc);\n }\n else {\n const params = dependencies.map((d) => ({ type: d, optional: false }));\n return params.map((t) => extractToken(t, params));\n }\n}\nfunction extractToken(param, params) {\n const token = resolveForwardRef(param.type);\n if (token) {\n return createDependency(token, param.optional);\n }\n throw noAnnotationError(param.type, params);\n}\nfunction createDependency(token, optional) {\n return new Dependency(Key.get(token), optional);\n}\nfunction makeFactory(t) {\n return (...args) => new t(...args);\n}\n//# sourceMappingURL=resolution.js.map","import { resolveProviders, } from './resolution';\nimport { Key } from './registry';\nimport { noProviderError, cyclicDependencyError, instantiationError, } from './errors';\nconst _THROW_IF_NOT_FOUND = new Object();\nconst UNDEFINED = new Object();\nconst NOT_FOUND = new Object();\nfunction notInExecutionContext() {\n throw new Error('Not in execution context');\n}\n// Publicly available Injector.\n// We use ReflectiveInjector everywhere\n// but we don't want to leak its API to everyone\nexport class Injector {\n}\nexport class ReflectiveInjector {\n constructor({ name, providers, parent, fallbackParent, globalProvidersMap = new Map(), }) {\n this._constructionCounter = 0;\n this._executionContextGetter = notInExecutionContext;\n this.displayName = name;\n this._parent = parent || null;\n this._fallbackParent = fallbackParent || null;\n this._providers = providers;\n this._globalProvidersMap = globalProvidersMap;\n const len = this._providers.length;\n this._keyIds = new Array(len);\n this._objs = new Array(len);\n for (let i = 0; i < len; i++) {\n this._keyIds[i] = this._providers[i].key.id;\n this._objs[i] = UNDEFINED;\n }\n }\n static createFromResolved({ name, providers, parent, fallbackParent, globalProvidersMap, }) {\n return new ReflectiveInjector({\n name,\n providers,\n parent,\n fallbackParent,\n globalProvidersMap,\n });\n }\n static resolve(providers) {\n return resolveProviders(providers);\n }\n get parent() {\n return this._parent;\n }\n get fallbackParent() {\n return this._fallbackParent;\n }\n get(token, notFoundValue = _THROW_IF_NOT_FOUND) {\n return this._getByKey(Key.get(token), notFoundValue);\n }\n setExecutionContextGetter(getter) {\n this._executionContextGetter = getter;\n }\n _getByKey(key, notFoundValue) {\n let inj = this;\n function getObj() {\n while (inj instanceof ReflectiveInjector) {\n const inj_ = inj;\n const obj = inj_._getObjByKeyId(key.id);\n if (obj !== UNDEFINED) {\n return obj;\n }\n inj = inj_._parent;\n }\n return NOT_FOUND;\n }\n const resolvedValue = getObj();\n if (resolvedValue !== NOT_FOUND) {\n return resolvedValue;\n }\n // search in fallback Injector\n if (this._fallbackParent) {\n inj = this._fallbackParent;\n const resolvedFallbackValue = getObj();\n if (resolvedFallbackValue !== NOT_FOUND) {\n return resolvedFallbackValue;\n }\n }\n if (inj !== null) {\n return inj.get(key.token, notFoundValue);\n }\n return this._throwOrNull(key, notFoundValue);\n }\n _isObjectDefinedByKeyId(keyId) {\n for (let i = 0; i < this._keyIds.length; i++) {\n if (this._keyIds[i] === keyId) {\n return this._objs[i] !== UNDEFINED;\n }\n }\n return false;\n }\n _getObjByKeyId(keyId) {\n var _a, _b;\n if ((_a = this._globalProvidersMap) === null || _a === void 0 ? void 0 : _a.has(keyId)) {\n return (_b = this._globalProvidersMap.get(keyId)) === null || _b === void 0 ? void 0 : _b._getObjByKeyId(keyId);\n }\n for (let i = 0; i < this._keyIds.length; i++) {\n if (this._keyIds[i] === keyId) {\n if (this._objs[i] === UNDEFINED) {\n this._objs[i] = this._new(this._providers[i]);\n }\n return this._objs[i];\n }\n }\n return UNDEFINED;\n }\n _throwOrNull(key, notFoundValue) {\n if (notFoundValue !== _THROW_IF_NOT_FOUND) {\n return notFoundValue;\n }\n else {\n throw noProviderError(this, key);\n }\n }\n instantiateAll() {\n this._providers.forEach((provider) => {\n this._getByKey(provider.key, _THROW_IF_NOT_FOUND);\n });\n }\n _instantiateProvider(provider) {\n const factory = provider.factory.factory;\n let deps;\n try {\n deps = provider.factory.dependencies.map((dep) => this._getByDependency(dep));\n }\n catch (e) {\n if (e.addKey) {\n e.addKey(provider.key);\n }\n throw e;\n }\n let obj;\n try {\n obj = factory(...deps);\n // attach execution context getter\n if (provider.factory.executionContextIn.length > 0) {\n for (const prop of provider.factory.executionContextIn) {\n Object.defineProperty(obj, prop, {\n get: () => {\n return this._executionContextGetter();\n },\n });\n }\n }\n }\n catch (e) {\n throw instantiationError(this, e, provider.key);\n }\n return obj;\n }\n _getByDependency(dep) {\n return this._getByKey(dep.key, dep.optional ? null : _THROW_IF_NOT_FOUND);\n }\n _new(provider) {\n if (this._constructionCounter++ > this._getMaxNumberOfObjects()) {\n throw cyclicDependencyError(this, provider.key);\n }\n return this._instantiateProvider(provider);\n }\n _getMaxNumberOfObjects() {\n return this._objs.length;\n }\n toString() {\n return this.displayName;\n }\n}\n//# sourceMappingURL=injector.js.map","export class ModuleNonUniqueIdError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class ModuleDuplicatedError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class ExtraResolverError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class ExtraMiddlewareError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class ResolverDuplicatedError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class ResolverInvalidError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\nexport class NonDocumentNodeError extends ExtendableBuiltin(Error) {\n constructor(message, ...rest) {\n super(composeMessage(message, ...rest));\n this.name = this.constructor.name;\n this.message = composeMessage(message, ...rest);\n }\n}\n// helpers\nexport function useLocation({ dirname, id }) {\n return dirname\n ? `Module \"${id}\" located at ${dirname}`\n : [\n `Module \"${id}\"`,\n `Hint: pass __dirname to \"dirname\" option of your modules to get more insightful errors`,\n ].join('\\n');\n}\nexport function ExtendableBuiltin(cls) {\n function ExtendableBuiltin() {\n cls.apply(this, arguments);\n }\n ExtendableBuiltin.prototype = Object.create(cls.prototype);\n Object.setPrototypeOf(ExtendableBuiltin, cls);\n return ExtendableBuiltin;\n}\nexport function composeMessage(...lines) {\n return lines.join('\\n');\n}\n//# sourceMappingURL=errors.js.map","import { GraphQLSchema } from 'graphql';\nexport function flatten(arr) {\n return Array.prototype.concat(...arr);\n}\nexport function isDefined(val) {\n return !isNil(val);\n}\nexport function isNil(val) {\n return val === null || typeof val === 'undefined';\n}\nexport function isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\nexport function isPrimitive(val) {\n return ['number', 'string', 'boolean', 'symbol', 'bigint'].includes(typeof val);\n}\nexport function isAsyncIterable(obj) {\n return obj && typeof obj[Symbol.asyncIterator] === 'function';\n}\nexport function tapAsyncIterator(iterable, doneCallback) {\n const iteratorMethod = iterable[Symbol.asyncIterator];\n const iterator = iteratorMethod.call(iterable);\n function mapResult(result) {\n if (result.done) {\n doneCallback();\n }\n return result;\n }\n return {\n async next() {\n try {\n let result = await iterator.next();\n return mapResult(result);\n }\n catch (error) {\n doneCallback();\n throw error;\n }\n },\n async return() {\n try {\n const result = await iterator.return();\n return mapResult(result);\n }\n catch (error) {\n doneCallback();\n throw error;\n }\n },\n async throw(error) {\n doneCallback();\n return iterator.throw(error);\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\nexport function once(cb) {\n let called = false;\n return () => {\n if (!called) {\n called = true;\n cb();\n }\n };\n}\nexport function share(factory) {\n let cached = null;\n return (arg) => {\n if (!cached) {\n cached = factory(arg);\n }\n return cached;\n };\n}\nexport function uniqueId(isNotUsed) {\n let id;\n while (!isNotUsed((id = Math.random().toString(16).substr(2)))) { }\n return id;\n}\nexport function isNotSchema(obj) {\n return obj instanceof GraphQLSchema === false;\n}\nexport function merge(source, target) {\n const result = {\n ...source,\n ...target,\n };\n function attachSymbols(obj) {\n const symbols = Object.getOwnPropertySymbols(obj);\n for (const symbol of symbols) {\n result[symbol] = obj[symbol];\n }\n }\n if (source) {\n attachSymbols(source);\n }\n attachSymbols(target);\n return result;\n}\n//# sourceMappingURL=utils.js.map","import { Scope } from '../di';\nexport function instantiateSingletonProviders({ appInjector, modulesMap, }) {\n appInjector.instantiateAll();\n modulesMap.forEach((mod) => {\n mod.injector.instantiateAll();\n });\n}\nexport function createGlobalProvidersMap({ modules, scope, }) {\n const globalProvidersMap = {};\n const propType = scope === Scope.Singleton ? 'singletonProviders' : 'operationProviders';\n modules.forEach((mod) => {\n mod[propType].forEach((provider) => {\n if (provider.factory.isGlobal) {\n const key = provider.key.id;\n if (globalProvidersMap[key]) {\n throw duplicatedGlobalTokenError(provider, [\n mod.id,\n globalProvidersMap[key],\n ]);\n }\n globalProvidersMap[key] = mod.id;\n }\n });\n });\n return globalProvidersMap;\n}\nexport function attachGlobalProvidersMap({ injector, globalProvidersMap, moduleInjectorGetter, }) {\n injector._globalProvidersMap = {\n has(key) {\n return typeof globalProvidersMap[key] === 'string';\n },\n get(key) {\n return moduleInjectorGetter(globalProvidersMap[key]);\n },\n };\n}\nexport function duplicatedGlobalTokenError(provider, modules) {\n return Error([\n `Failed to define '${provider.key.displayName}' token as global.`,\n `Token provided by two modules: '${modules.join(\"', '\")}'`,\n ].join(' '));\n}\n//# sourceMappingURL=di.js.map","import { InjectionToken } from '../di';\n/**\n * @api\n * `CONTEXT` is an InjectionToken representing the provided `GraphQLModules.GlobalContext`\n *\n * @example\n *\n * ```typescript\n * import { CONTEXT, Inject, Injectable } from 'graphql-modules';\n *\n * (A)Injectable()\n * export class Data {\n * constructor((A)Inject(CONTEXT) private context: GraphQLModules.GlobalContext) {}\n * }\n * ```\n */\nexport const CONTEXT = new InjectionToken('context');\n//# sourceMappingURL=tokens.js.map","import { ReflectiveInjector } from '../di';\nimport { once, merge } from '../shared/utils';\nimport { attachGlobalProvidersMap } from './di';\nimport { CONTEXT } from './tokens';\nimport { executionContext } from './execution-context';\nexport function createContextBuilder({ appInjector, modulesMap, appLevelOperationProviders, singletonGlobalProvidersMap, operationGlobalProvidersMap, }) {\n // This is very critical. It creates an execution context.\n // It has to run on every operation.\n const contextBuilder = (context) => {\n // Cache for context per module\n let contextCache = {};\n // A list of providers with OnDestroy hooks\n // It's a tuple because we want to know which Injector controls the provider\n // and we want to know if the provider was even instantiated.\n let providersToDestroy = [];\n function registerProvidersToDestroy(injector) {\n injector._providers.forEach((provider) => {\n if (provider.factory.hasOnDestroyHook) {\n // keep provider key's id (it doesn't change over time)\n // and related injector\n providersToDestroy.push([injector, provider.key.id]);\n }\n });\n }\n let appContext;\n attachGlobalProvidersMap({\n injector: appInjector,\n globalProvidersMap: singletonGlobalProvidersMap,\n moduleInjectorGetter(moduleId) {\n return modulesMap.get(moduleId).injector;\n },\n });\n appInjector.setExecutionContextGetter(executionContext.getApplicationContext);\n function createModuleExecutionContextGetter(moduleId) {\n return function moduleExecutionContextGetter() {\n return executionContext.getModuleContext(moduleId);\n };\n }\n modulesMap.forEach((mod, moduleId) => {\n mod.injector.setExecutionContextGetter(createModuleExecutionContextGetter(moduleId));\n });\n const executionContextPicker = {\n getApplicationContext() {\n return appContext;\n },\n getModuleContext(moduleId) {\n return getModuleContext(moduleId, context);\n },\n };\n executionContext.create(executionContextPicker);\n // As the name of the Injector says, it's an Operation scoped Injector\n // Application level\n // Operation scoped - means it's created and destroyed on every GraphQL Operation\n const operationAppInjector = ReflectiveInjector.createFromResolved({\n name: 'App (Operation Scope)',\n providers: appLevelOperationProviders.concat(ReflectiveInjector.resolve([\n {\n provide: CONTEXT,\n useValue: context,\n },\n ])),\n parent: appInjector,\n });\n // Create a context for application-level ExecutionContext\n appContext = merge(context, {\n injector: operationAppInjector,\n });\n // Track Providers with OnDestroy hooks\n registerProvidersToDestroy(operationAppInjector);\n function getModuleContext(moduleId, ctx) {\n var _a;\n // Reuse a context or create if not available\n if (!contextCache[moduleId]) {\n // We're interested in operation-scoped providers only\n const providers = (_a = modulesMap.get(moduleId)) === null || _a === void 0 ? void 0 : _a.operationProviders;\n // Create module-level Operation-scoped Injector\n const operationModuleInjector = ReflectiveInjector.createFromResolved({\n name: `Module \"${moduleId}\" (Operation Scope)`,\n providers: providers.concat(ReflectiveInjector.resolve([\n {\n provide: CONTEXT,\n useFactory() {\n return contextCache[moduleId];\n },\n },\n ])),\n // This injector has a priority\n parent: modulesMap.get(moduleId).injector,\n // over this one\n fallbackParent: operationAppInjector,\n });\n // Same as on application level, we need to collect providers with OnDestroy hooks\n registerProvidersToDestroy(operationModuleInjector);\n contextCache[moduleId] = merge(ctx, {\n injector: operationModuleInjector,\n moduleId,\n });\n }\n return contextCache[moduleId];\n }\n const sharedContext = merge(\n // We want to pass the received context\n context || {}, {\n // Here's something very crutial\n // It's a function that is used in module's context creation\n ɵgetModuleContext: getModuleContext,\n });\n attachGlobalProvidersMap({\n injector: operationAppInjector,\n globalProvidersMap: operationGlobalProvidersMap,\n moduleInjectorGetter(moduleId) {\n return getModuleContext(moduleId, sharedContext).injector;\n },\n });\n return {\n ɵdestroy: once(() => {\n providersToDestroy.forEach(([injector, keyId]) => {\n // If provider was instantiated\n if (injector._isObjectDefinedByKeyId(keyId)) {\n // call its OnDestroy hook\n injector._getObjByKeyId(keyId).onDestroy();\n }\n });\n contextCache = {};\n }),\n ɵinjector: operationAppInjector,\n context: sharedContext,\n };\n };\n return contextBuilder;\n}\n//# sourceMappingURL=context.js.map","import { execute, } from 'graphql';\nimport { isNotSchema } from '../shared/utils';\nexport function executionCreator({ contextBuilder, }) {\n const createExecution = (options) => {\n // Custom or original execute function\n const executeFn = (options === null || options === void 0 ? void 0 : options.execute) || execute;\n return (argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, typeResolver) => {\n var _a;\n // Create an execution context\n const { context, ɵdestroy: destroy } = (_a = options === null || options === void 0 ? void 0 : options.controller) !== null && _a !== void 0 ? _a : contextBuilder(isNotSchema(argsOrSchema)\n ? argsOrSchema.contextValue\n : contextValue);\n const executionArgs = isNotSchema(argsOrSchema)\n ? {\n ...argsOrSchema,\n contextValue: context,\n }\n : {\n schema: argsOrSchema,\n document: document,\n rootValue,\n contextValue: context,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n };\n // It's important to wrap the executeFn within a promise\n // so we can easily control the end of execution (with finally)\n return Promise.resolve()\n .then(() => executeFn(executionArgs))\n .finally(destroy);\n };\n };\n return createExecution;\n}\n//# sourceMappingURL=execution.js.map","import { subscribe, } from 'graphql';\nimport { tapAsyncIterator, isAsyncIterable, isNotSchema, } from '../shared/utils';\nexport function subscriptionCreator({ contextBuilder, }) {\n const createSubscription = (options) => {\n // Custom or original subscribe function\n const subscribeFn = (options === null || options === void 0 ? void 0 : options.subscribe) || subscribe;\n return (argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) => {\n var _a;\n // Create an subscription context\n const { context, ɵdestroy: destroy } = (_a = options === null || options === void 0 ? void 0 : options.controller) !== null && _a !== void 0 ? _a : contextBuilder(isNotSchema(argsOrSchema)\n ? argsOrSchema.contextValue\n : contextValue);\n const subscriptionArgs = isNotSchema(argsOrSchema)\n ? {\n ...argsOrSchema,\n contextValue: context,\n }\n : {\n schema: argsOrSchema,\n document: document,\n rootValue,\n contextValue: context,\n variableValues,\n operationName,\n fieldResolver,\n subscribeFieldResolver,\n };\n let isIterable = false;\n // It's important to wrap the subscribeFn within a promise\n // so we can easily control the end of subscription (with finally)\n return Promise.resolve()\n .then(() => subscribeFn(subscriptionArgs))\n .then((sub) => {\n if (isAsyncIterable(sub)) {\n isIterable = true;\n return tapAsyncIterator(sub, destroy);\n }\n return sub;\n })\n .finally(() => {\n if (!isIterable) {\n destroy();\n }\n });\n };\n };\n return createSubscription;\n}\n//# sourceMappingURL=subscription.js.map","import { wrapSchema } from '@graphql-tools/wrap';\nimport { execute } from 'graphql';\nimport { uniqueId } from '../shared/utils';\nconst CONTEXT_ID = Symbol.for('context-id');\nexport function apolloExecutorCreator({ createExecution, }) {\n return function createApolloExecutor(options) {\n const executor = createExecution(options);\n return function executorAdapter(requestContext) {\n return executor({\n schema: requestContext.schema,\n document: requestContext.document,\n operationName: requestContext.operationName,\n variableValues: requestContext.request.variables,\n contextValue: requestContext.context,\n });\n };\n };\n}\nexport function apolloSchemaCreator({ createSubscription, contextBuilder, schema, }) {\n const createApolloSchema = () => {\n const sessions = {};\n const subscription = createSubscription();\n function getSession(ctx) {\n if (!ctx[CONTEXT_ID]) {\n ctx[CONTEXT_ID] = uniqueId((id) => !sessions[id]);\n const { context, ɵdestroy: destroy } = contextBuilder(ctx);\n sessions[ctx[CONTEXT_ID]] = {\n count: 0,\n session: {\n context,\n destroy() {\n if (--sessions[ctx[CONTEXT_ID]].count === 0) {\n destroy();\n delete sessions[ctx[CONTEXT_ID]];\n delete ctx[CONTEXT_ID];\n }\n },\n },\n };\n }\n sessions[ctx[CONTEXT_ID]].count++;\n return sessions[ctx[CONTEXT_ID]].session;\n }\n return wrapSchema({\n schema,\n executor(input) {\n // Create an execution context\n const { context, destroy } = getSession(input.context);\n // It's important to wrap the executeFn within a promise\n // so we can easily control the end of execution (with finally)\n return Promise.resolve()\n .then(() => {\n var _a;\n return execute({\n schema,\n document: input.document,\n contextValue: context,\n variableValues: input.variables,\n rootValue: (_a = input.info) === null || _a === void 0 ? void 0 : _a.rootValue,\n });\n })\n .finally(destroy);\n },\n subscriber(input) {\n var _a;\n return subscription({\n schema,\n document: input.document,\n variableValues: input.variables,\n contextValue: input.context,\n rootValue: (_a = input.info) === null || _a === void 0 ? void 0 : _a.rootValue,\n });\n },\n });\n };\n return createApolloSchema;\n}\n//# sourceMappingURL=apollo.js.map","export function operationControllerCreator(options) {\n const { contextBuilder } = options;\n return (input) => {\n const operation = contextBuilder(input.context);\n const ɵdestroy = input.autoDestroy ? operation.ɵdestroy : () => { };\n return {\n context: operation.context,\n injector: operation.ɵinjector,\n destroy: operation.ɵdestroy,\n ɵdestroy,\n };\n };\n}\n//# sourceMappingURL=operation-controller.js.map","import { makeExecutableSchema } from '@graphql-tools/schema';\nimport { ReflectiveInjector, onlySingletonProviders, onlyOperationProviders, Scope, } from '../di';\nimport { ModuleDuplicatedError, ModuleNonUniqueIdError, } from '../shared/errors';\nimport { flatten, isDefined } from '../shared/utils';\nimport { createGlobalProvidersMap, attachGlobalProvidersMap, instantiateSingletonProviders, } from './di';\nimport { createContextBuilder } from './context';\nimport { executionCreator } from './execution';\nimport { subscriptionCreator } from './subscription';\nimport { apolloSchemaCreator, apolloExecutorCreator } from './apollo';\nimport { operationControllerCreator } from './operation-controller';\n/**\n * @api\n * Creates Application out of Modules. Accepts `ApplicationConfig`.\n *\n * @example\n *\n * ```typescript\n * import { createApplication } from 'graphql-modules';\n * import { usersModule } from './users';\n * import { postsModule } from './posts';\n * import { commentsModule } from './comments';\n *\n * const app = createApplication({\n * modules: [\n * usersModule,\n * postsModule,\n * commentsModule\n * ]\n * })\n * ```\n */\nexport function createApplication(applicationConfig) {\n function applicationFactory(cfg) {\n const config = cfg || applicationConfig;\n const providers = config.providers && typeof config.providers === 'function'\n ? config.providers()\n : config.providers;\n // Creates an Injector with singleton classes at application level\n const appSingletonProviders = ReflectiveInjector.resolve(onlySingletonProviders(providers));\n const appInjector = ReflectiveInjector.createFromResolved({\n name: 'App (Singleton Scope)',\n providers: appSingletonProviders,\n });\n // Filter Operation-scoped providers, and keep it here\n // so we don't do it over and over again\n const appOperationProviders = ReflectiveInjector.resolve(onlyOperationProviders(providers));\n const middlewareMap = config.middlewares || {};\n // Validations\n ensureModuleUniqueIds(config.modules);\n // Create all modules\n const modules = config.modules.map((mod) => mod.factory({\n injector: appInjector,\n middlewares: middlewareMap,\n }));\n const modulesMap = createModulesMap(modules);\n const singletonGlobalProvidersMap = createGlobalProvidersMap({\n modules,\n scope: Scope.Singleton,\n });\n const operationGlobalProvidersMap = createGlobalProvidersMap({\n modules,\n scope: Scope.Operation,\n });\n attachGlobalProvidersMap({\n injector: appInjector,\n globalProvidersMap: singletonGlobalProvidersMap,\n moduleInjectorGetter(moduleId) {\n return modulesMap.get(moduleId).injector;\n },\n });\n // Creating a schema, flattening the typedefs and resolvers\n // is not expensive since it happens only once\n const typeDefs = flatten(modules.map((mod) => mod.typeDefs));\n const resolvers = modules.map((mod) => mod.resolvers).filter(isDefined);\n const schema = (applicationConfig.schemaBuilder || makeExecutableSchema)({\n typeDefs,\n resolvers,\n });\n const contextBuilder = createContextBuilder({\n appInjector,\n appLevelOperationProviders: appOperationProviders,\n modulesMap: modulesMap,\n singletonGlobalProvidersMap,\n operationGlobalProvidersMap,\n });\n const createOperationController = operationControllerCreator({\n contextBuilder,\n });\n const createSubscription = subscriptionCreator({ contextBuilder });\n const createExecution = executionCreator({ contextBuilder });\n const createSchemaForApollo = apolloSchemaCreator({\n createSubscription,\n contextBuilder,\n schema,\n });\n const createApolloExecutor = apolloExecutorCreator({\n createExecution,\n });\n instantiateSingletonProviders({\n appInjector,\n modulesMap,\n });\n return {\n typeDefs,\n resolvers,\n schema,\n injector: appInjector,\n createOperationController,\n createSubscription,\n createExecution,\n createSchemaForApollo,\n createApolloExecutor,\n ɵfactory: applicationFactory,\n ɵconfig: config,\n };\n }\n return applicationFactory();\n}\nfunction createModulesMap(modules) {\n var _a;\n const modulesMap = new Map();\n for (const module of modules) {\n if (modulesMap.has(module.id)) {\n const location = module.metadata.dirname;\n const existingLocation = (_a = modulesMap.get(module.id)) === null || _a === void 0 ? void 0 : _a.metadata.dirname;\n const info = [];\n if (existingLocation) {\n info.push(`Already registered module located at: ${existingLocation}`);\n }\n if (location) {\n info.push(`Duplicated module located at: ${location}`);\n }\n throw new ModuleDuplicatedError(`Module \"${module.id}\" already exists`, ...info);\n }\n modulesMap.set(module.id, module);\n }\n return modulesMap;\n}\nfunction ensureModuleUniqueIds(modules) {\n const collisions = modules\n .filter((mod, i, all) => i !== all.findIndex((m) => m.id === mod.id))\n .map((m) => m.id);\n if (collisions.length) {\n throw new ModuleNonUniqueIdError(`Modules with non-unique ids: ${collisions.join(', ')}`, `All modules should have unique ids, please locate and fix them.`);\n }\n}\n//# sourceMappingURL=application.js.map","import { visit, Kind, } from 'graphql';\nexport function metadataFactory(typeDefs, config) {\n const implemented = {};\n const extended = {};\n function collectObjectDefinition(node) {\n if (!implemented[node.name.value]) {\n implemented[node.name.value] = [];\n }\n if (node.fields && node.fields.length > 0) {\n implemented[node.name.value].push(...node.fields.map((field) => field.name.value));\n }\n if (node.kind === Kind.OBJECT_TYPE_DEFINITION) {\n implemented[node.name.value].push('__isTypeOf');\n }\n if (node.kind === Kind.OBJECT_TYPE_DEFINITION) {\n implemented[node.name.value].push('__resolveReference');\n implemented[node.name.value].push('__resolveObject');\n }\n if (node.kind === Kind.INTERFACE_TYPE_DEFINITION) {\n implemented[node.name.value].push('__resolveType');\n }\n }\n function collectObjectExtension(node) {\n if (node.fields) {\n if (!extended[node.name.value]) {\n extended[node.name.value] = [];\n }\n node.fields.forEach((field) => {\n extended[node.name.value].push(field.name.value);\n });\n }\n }\n for (const doc of typeDefs) {\n visit(doc, {\n // Object\n ObjectTypeDefinition(node) {\n collectObjectDefinition(node);\n },\n ObjectTypeExtension(node) {\n collectObjectExtension(node);\n },\n // Interface\n InterfaceTypeDefinition(node) {\n collectObjectDefinition(node);\n },\n InterfaceTypeExtension(node) {\n collectObjectExtension(node);\n },\n // Union\n UnionTypeDefinition(node) {\n if (!implemented[node.name.value]) {\n implemented[node.name.value] = [];\n }\n if (node.types) {\n implemented[node.name.value].push(...node.types.map((type) => type.name.value));\n }\n implemented[node.name.value].push('__resolveType');\n },\n UnionTypeExtension(node) {\n if (node.types) {\n if (!extended[node.name.value]) {\n extended[node.name.value] = [];\n }\n extended[node.name.value].push(...node.types.map((type) => type.name.value));\n }\n },\n // Input\n InputObjectTypeDefinition(node) {\n collectObjectDefinition(node);\n },\n InputObjectTypeExtension(node) {\n collectObjectExtension(node);\n },\n // Enum\n EnumTypeDefinition(node) {\n if (node.values) {\n if (!implemented[node.name.value]) {\n implemented[node.name.value] = [];\n }\n implemented[node.name.value].push(...node.values.map((value) => value.name.value));\n }\n },\n EnumTypeExtension(node) {\n if (node.values) {\n if (!extended[node.name.value]) {\n extended[node.name.value] = [];\n }\n extended[node.name.value].push(...node.values.map((value) => value.name.value));\n }\n },\n // Scalar\n ScalarTypeDefinition(node) {\n if (!implemented.__scalars) {\n implemented.__scalars = [];\n }\n implemented.__scalars.push(node.name.value);\n },\n });\n }\n return {\n id: config.id,\n typeDefs,\n implements: implemented,\n extends: extended,\n dirname: config.dirname,\n };\n}\n//# sourceMappingURL=metadata.js.map","import { mergeDeepWith } from 'ramda';\nimport { isDefined } from './utils';\nimport { ExtraMiddlewareError, useLocation } from './errors';\nexport function compose(middleware) {\n if (!Array.isArray(middleware)) {\n throw new TypeError('Middleware stack must be an array!');\n }\n for (const fn of middleware) {\n if (typeof fn !== 'function') {\n throw new TypeError('Middleware must be composed of functions!');\n }\n }\n return function composed(context, next) {\n // last called middleware\n let index = -1;\n function dispatch(i) {\n if (i <= index) {\n return Promise.reject(new Error('next() called multiple times'));\n }\n index = i;\n const fn = i === middleware.length ? next : middleware[i];\n if (!fn) {\n return Promise.resolve();\n }\n try {\n return Promise.resolve(fn(context, dispatch.bind(null, i + 1)));\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n return dispatch(0);\n };\n}\nexport function createMiddleware(path, middlewareMap) {\n const middlewares = middlewareMap ? pickMiddlewares(path, middlewareMap) : [];\n return compose(middlewares);\n}\nexport function mergeMiddlewareMaps(app, mod) {\n const merge = (left, right) => {\n return mergeDeepWith((l, r) => {\n if (Array.isArray(l)) {\n return l.concat(r || []);\n }\n return merge(l, r);\n }, left, right);\n };\n return merge(app, mod);\n}\nfunction pickMiddlewares(path, middlewareMap) {\n var _a;\n const middlewares = [];\n const [type, field] = path;\n if ((_a = middlewareMap['*']) === null || _a === void 0 ? void 0 : _a['*']) {\n middlewares.push(...middlewareMap['*']['*']);\n }\n const typeMap = middlewareMap[type];\n if (typeMap) {\n if (typeMap['*']) {\n middlewares.push(...typeMap['*']);\n }\n if (field && typeMap[field]) {\n middlewares.push(...typeMap[field]);\n }\n }\n return middlewares.filter(isDefined);\n}\nexport function validateMiddlewareMap(middlewareMap, metadata) {\n const exists = checkExistence(metadata);\n for (const typeName in middlewareMap.types) {\n if (middlewareMap.types.hasOwnProperty(typeName)) {\n const typeMiddlewareMap = middlewareMap[typeName];\n if (!exists.type(typeName)) {\n throw new ExtraMiddlewareError(`Cannot apply a middleware to non existing \"${typeName}\" type`, useLocation({ dirname: metadata.dirname, id: metadata.id }));\n }\n for (const fieldName in typeMiddlewareMap[typeName]) {\n if (typeMiddlewareMap[typeName].hasOwnProperty(fieldName)) {\n if (!exists.field(typeName, fieldName)) {\n throw new ExtraMiddlewareError(`Cannot apply a middleware to non existing \"${typeName}.${fieldName}\" type.field`, useLocation({ dirname: metadata.dirname, id: metadata.id }));\n }\n }\n }\n }\n }\n}\n/**\n * Helps to make sure a middleware has a corresponding type/field definition.\n * We don't want to pass a module-level middlewares that are not related to the module.\n * Not because it's dangerous but to prevent unused middlewares.\n */\nfunction checkExistence(metadata) {\n return {\n type(name) {\n var _a, _b;\n return isDefined(((_a = metadata.implements) === null || _a === void 0 ? void 0 : _a[name]) || ((_b = metadata.extends) === null || _b === void 0 ? void 0 : _b[name]));\n },\n field(type, name) {\n var _a, _b, _c, _d;\n return isDefined(((_b = (_a = metadata.implements) === null || _a === void 0 ? void 0 : _a[type]) === null || _b === void 0 ? void 0 : _b.includes(name)) ||\n ((_d = (_c = metadata.extends) === null || _c === void 0 ? void 0 : _c[type]) === null || _d === void 0 ? void 0 : _d.includes(name)));\n },\n };\n}\n//# sourceMappingURL=middleware.js.map","import { GraphQLScalarType, concatAST, Kind, defaultFieldResolver, } from 'graphql';\nimport { useLocation, ExtraResolverError, ResolverDuplicatedError, ResolverInvalidError, } from './../shared/errors';\nimport { isNil, isDefined, isPrimitive } from '../shared/utils';\nimport { createMiddleware, mergeMiddlewareMaps, validateMiddlewareMap, } from '../shared/middleware';\nconst resolverMetadataProp = Symbol('metadata');\nexport function createResolvers(config, metadata, app) {\n const ensure = ensureImplements(metadata);\n const normalizedModuleMiddlewareMap = config.middlewares || {};\n const middlewareMap = mergeMiddlewareMaps(app.middlewareMap, normalizedModuleMiddlewareMap);\n validateMiddlewareMap(normalizedModuleMiddlewareMap, metadata);\n const resolvers = addDefaultResolvers(mergeResolvers(config), middlewareMap, config);\n // Wrap resolvers\n for (const typeName in resolvers) {\n if (resolvers.hasOwnProperty(typeName)) {\n const obj = resolvers[typeName];\n if (isScalarResolver(obj)) {\n continue;\n }\n else if (isEnumResolver(obj)) {\n continue;\n }\n else if (obj && typeof obj === 'object') {\n for (const fieldName in obj) {\n if (obj.hasOwnProperty(fieldName)) {\n ensure.type(typeName, fieldName);\n const path = [typeName, fieldName];\n // function\n if (isResolveFn(obj[fieldName])) {\n const resolver = wrapResolver({\n config,\n resolver: obj[fieldName],\n middlewareMap,\n path,\n isTypeResolver: fieldName === '__isTypeOf' || fieldName === '__resolveType',\n isReferenceResolver: fieldName === '__resolveReference',\n isObjectResolver: fieldName === '__resolveObject',\n });\n resolvers[typeName][fieldName] = resolver;\n }\n else if (isResolveOptions(obj[fieldName])) {\n // { resolve }\n if (isDefined(obj[fieldName].resolve)) {\n const resolver = wrapResolver({\n config,\n resolver: obj[fieldName].resolve,\n middlewareMap,\n path,\n });\n resolvers[typeName][fieldName].resolve = resolver;\n }\n // { subscribe }\n if (isDefined(obj[fieldName].subscribe)) {\n const resolver = wrapResolver({\n config,\n resolver: obj[fieldName].subscribe,\n middlewareMap,\n path,\n });\n resolvers[typeName][fieldName].subscribe = resolver;\n }\n }\n }\n }\n }\n }\n }\n return resolvers;\n}\n/**\n * Wrap a resolver so we use module's context instead of app context.\n * Use a middleware if available.\n * Attach metadata to a resolver (we will see if it's helpful, probably in error handling)\n */\nfunction wrapResolver({ resolver, config, path, middlewareMap, isTypeResolver, isReferenceResolver, isObjectResolver, }) {\n if (isTypeResolver || isReferenceResolver) {\n const wrappedResolver = (root, context, info) => {\n const ctx = {\n root,\n context: context.ɵgetModuleContext(config.id, context),\n info,\n };\n return resolver(ctx.root, ctx.context, ctx.info);\n };\n writeResolverMetadata(wrappedResolver, config);\n return wrappedResolver;\n }\n if (isObjectResolver) {\n const wrappedResolver = (root, fields, context, info) => {\n const moduleContext = context.ɵgetModuleContext(config.id, context);\n return resolver(root, fields, moduleContext, info);\n };\n writeResolverMetadata(wrappedResolver, config);\n return wrappedResolver;\n }\n const middleware = createMiddleware(path, middlewareMap);\n const wrappedResolver = (root, args, context, info) => {\n const ctx = {\n root,\n args,\n context: context.ɵgetModuleContext(config.id, context),\n info,\n };\n return middleware(ctx, () => resolver(ctx.root, ctx.args, ctx.context, ctx.info));\n };\n writeResolverMetadata(wrappedResolver, config);\n return wrappedResolver;\n}\n/**\n * We iterate over every defined resolver and check if it's valid and not duplicated\n */\nfunction mergeResolvers(config) {\n if (!config.resolvers) {\n return {};\n }\n const resolvers = Array.isArray(config.resolvers)\n ? config.resolvers\n : [config.resolvers];\n const container = {};\n for (const currentResolvers of resolvers) {\n for (const typeName in currentResolvers) {\n if (currentResolvers.hasOwnProperty(typeName)) {\n const value = currentResolvers[typeName];\n if (isNil(value)) {\n continue;\n }\n else if (isScalarResolver(value)) {\n addScalar({ typeName, resolver: value, container, config });\n }\n else if (isEnumResolver(value)) {\n addEnum({ typeName, resolver: value, container, config });\n }\n else if (value && typeof value === 'object') {\n addObject({ typeName, fields: value, container, config });\n }\n else {\n throw new ResolverInvalidError(`Resolver of \"${typeName}\" is invalid`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n }\n }\n }\n return container;\n}\nfunction addObject({ typeName, fields, container, config, }) {\n if (!container[typeName]) {\n container[typeName] = {};\n }\n for (const fieldName in fields) {\n if (fields.hasOwnProperty(fieldName)) {\n const resolver = fields[fieldName];\n if (isResolveFn(resolver)) {\n if (container[typeName][fieldName]) {\n throw new ResolverDuplicatedError(`Duplicated resolver of \"${typeName}.${fieldName}\"`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n writeResolverMetadata(resolver, config);\n container[typeName][fieldName] = resolver;\n }\n else if (isResolveOptions(resolver)) {\n if (!container[typeName][fieldName]) {\n container[typeName][fieldName] = {};\n }\n // resolve\n if (isDefined(resolver.resolve)) {\n if (container[typeName][fieldName].resolve) {\n throw new ResolverDuplicatedError(`Duplicated resolver of \"${typeName}.${fieldName}\" (resolve method)`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n writeResolverMetadata(resolver.resolve, config);\n container[typeName][fieldName].resolve = resolver.resolve;\n }\n // subscribe\n if (isDefined(resolver.subscribe)) {\n if (container[typeName][fieldName].subscribe) {\n throw new ResolverDuplicatedError(`Duplicated resolver of \"${typeName}.${fieldName}\" (subscribe method)`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n writeResolverMetadata(resolver.subscribe, config);\n container[typeName][fieldName].subscribe = resolver.subscribe;\n }\n }\n }\n }\n}\nfunction addScalar({ typeName, resolver, container, config, }) {\n if (container[typeName]) {\n throw new ResolverDuplicatedError(`Duplicated resolver of scalar \"${typeName}\"`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n writeResolverMetadata(resolver.parseLiteral, config);\n writeResolverMetadata(resolver.parseValue, config);\n writeResolverMetadata(resolver.serialize, config);\n container[typeName] = resolver;\n}\nfunction addEnum({ typeName, resolver, container, config, }) {\n if (!container[typeName]) {\n container[typeName] = {};\n }\n for (const key in resolver) {\n if (resolver.hasOwnProperty(key)) {\n const value = resolver[key];\n if (container[typeName][key]) {\n throw new ResolverDuplicatedError(`Duplicated resolver of \"${typeName}.${key}\" enum value`, useLocation({ dirname: config.dirname, id: config.id }));\n }\n container[typeName][key] = value;\n }\n }\n}\n/**\n * Helps to make sure a resolver has a corresponding type/field definition.\n * We don't want to pass resolve function that are not related to the module.\n */\nfunction ensureImplements(metadata) {\n return {\n type(name, field) {\n var _a, _b;\n const type = []\n .concat((_a = metadata.implements) === null || _a === void 0 ? void 0 : _a[name], (_b = metadata.extends) === null || _b === void 0 ? void 0 : _b[name])\n .filter(isDefined);\n if (type === null || type === void 0 ? void 0 : type.includes(field)) {\n return true;\n }\n const id = `\"${name}.${field}\"`;\n throw new ExtraResolverError(`Resolver of \"${id}\" type cannot be implemented`, `${id} is not defined`, useLocation({ dirname: metadata.dirname, id: metadata.id }));\n },\n scalar(name) {\n var _a;\n if ((((_a = metadata.implements) === null || _a === void 0 ? void 0 : _a.__scalars) || []).includes(name)) {\n return true;\n }\n throw new ExtraResolverError(`Resolver of \"${name}\" scalar cannot be implemented`, `${name} is not defined`, useLocation({ dirname: metadata.dirname, id: metadata.id }));\n },\n };\n}\nfunction writeResolverMetadata(resolver, config) {\n if (!resolver) {\n return;\n }\n resolver[resolverMetadataProp] = {\n moduleId: config.id,\n };\n}\nexport function readResolverMetadata(resolver) {\n return resolver[resolverMetadataProp];\n}\n/**\n * In order to use middlewares on fields\n * that are defined in SDL but have no implemented resolvers,\n * we would have to recreate GraphQLSchema and wrap resolve functions.\n *\n * Since we can't access GraphQLSchema on a module level\n * and recreating GraphQLSchema seems unreasonable,\n * we can create default resolvers instead.\n *\n * @example\n *\n * gql`\n * type Query {\n * me: User!\n * }\n *\n * type User {\n * name: String!\n * }\n * `\n *\n * The resolver of `Query.me` is implemented and resolver of `User.name` is not.\n * In case where a middleware wants to intercept the resolver of `User.name`,\n * we use a default field resolver from `graphql` package\n * and put it next to other defined resolvers.\n *\n * This way our current logic of wrapping resolvers and running\n * middleware functions stays untouched.\n */\nfunction addDefaultResolvers(resolvers, middlewareMap, config) {\n const container = resolvers;\n const sdl = Array.isArray(config.typeDefs)\n ? concatAST(config.typeDefs)\n : config.typeDefs;\n function hasMiddleware(typeName, fieldName) {\n var _a, _b, _c, _d, _e, _f;\n return ((((_b = (_a = middlewareMap['*']) === null || _a === void 0 ? void 0 : _a['*']) === null || _b === void 0 ? void 0 : _b.length) ||\n ((_d = (_c = middlewareMap[typeName]) === null || _c === void 0 ? void 0 : _c['*']) === null || _d === void 0 ? void 0 : _d.length) ||\n ((_f = (_e = middlewareMap[typeName]) === null || _e === void 0 ? void 0 : _e[fieldName]) === null || _f === void 0 ? void 0 : _f.length)) > 0);\n }\n sdl.definitions.forEach((definition) => {\n if (definition.kind === Kind.OBJECT_TYPE_DEFINITION ||\n definition.kind === Kind.OBJECT_TYPE_EXTENSION) {\n // Right now we only support Object type\n if (definition.fields) {\n const typeName = definition.name.value;\n definition.fields.forEach((field) => {\n var _a;\n const fieldName = field.name.value;\n if (!((_a = container[typeName]) === null || _a === void 0 ? void 0 : _a[fieldName]) &&\n hasMiddleware(typeName, fieldName)) {\n if (!container[typeName]) {\n container[typeName] = {};\n }\n container[typeName][fieldName] = defaultFieldResolver;\n }\n });\n }\n }\n });\n return container;\n}\n//\n// Resolver helpers\n//\nfunction isResolveFn(value) {\n return typeof value === 'function';\n}\nfunction isResolveOptions(value) {\n return isDefined(value.resolve) || isDefined(value.subscribe);\n}\nfunction isScalarResolver(obj) {\n return obj instanceof GraphQLScalarType;\n}\nfunction isEnumResolver(obj) {\n return Object.values(obj).every(isPrimitive);\n}\n//# sourceMappingURL=resolvers.js.map","import { Kind } from 'graphql';\nimport { NonDocumentNodeError, useLocation } from '../shared/errors';\n/**\n * Create a list of DocumentNode objects based on Module's config.\n * Add a location, so we get richer errors.\n */\nexport function createTypeDefs(config) {\n const typeDefs = Array.isArray(config.typeDefs)\n ? config.typeDefs\n : [config.typeDefs];\n ensureDocumentNode(config, typeDefs);\n return typeDefs;\n}\nfunction ensureDocumentNode(config, typeDefs) {\n function ensureEach(doc, i) {\n if ((doc === null || doc === void 0 ? void 0 : doc.kind) !== Kind.DOCUMENT) {\n throw new NonDocumentNodeError(`Expected parsed document but received ${typeof doc} at index ${i} in typeDefs list`, useLocation(config));\n }\n }\n typeDefs.forEach(ensureEach);\n}\n//# sourceMappingURL=type-defs.js.map","import { InjectionToken } from '../di';\n/**\n * @api\n * `MODULE_ID` is an InjectionToken representing module's ID\n *\n * @example\n * ```typescript\n * import { MODULE_ID, Inject, Injectable } from 'graphql-modules';\n *\n * (A)Injectable()\n * export class Data {\n * constructor((A)Inject(MODULE_ID) moduleId: string) {\n * console.log(`Data used in ${moduleId} module`)\n * }\n * }\n * ```\n */\nexport const MODULE_ID = new InjectionToken('module-id');\n//# sourceMappingURL=tokens.js.map","import { metadataFactory } from './metadata';\nimport { createResolvers } from './resolvers';\nimport { createTypeDefs } from './type-defs';\nimport { MODULE_ID } from './tokens';\nimport { ReflectiveInjector, onlySingletonProviders, onlyOperationProviders, } from '../di';\nimport { resolveProviders } from './../di/resolution';\nexport function moduleFactory(config) {\n const typeDefs = createTypeDefs(config);\n const metadata = metadataFactory(typeDefs, config);\n const providers = typeof config.providers === 'function'\n ? config.providers()\n : config.providers;\n // Filter providers and keep them this way\n // so we don't do this filtering multiple times.\n // Providers don't change over time, so it's safe to do it.\n const operationProviders = ReflectiveInjector.resolve(onlyOperationProviders(providers));\n const singletonProviders = ReflectiveInjector.resolve(onlySingletonProviders(providers));\n const mod = {\n id: config.id,\n config,\n metadata,\n typeDefs,\n providers,\n operationProviders,\n singletonProviders,\n // Factory is called once on application creation,\n // before we even handle GraphQL Operation\n factory(app) {\n const resolvedModule = mod;\n resolvedModule.singletonProviders = singletonProviders;\n resolvedModule.operationProviders = operationProviders;\n // Create a module-level Singleton injector\n const injector = ReflectiveInjector.createFromResolved({\n name: `Module \"${config.id}\" (Singleton Scope)`,\n providers: resolvedModule.singletonProviders.concat(resolveProviders([\n {\n // with module's id, useful in Logging and stuff\n provide: MODULE_ID,\n useValue: config.id,\n },\n ])),\n parent: app.injector,\n });\n // We attach injector property to existing `mod` object\n // because we want to keep references\n // that are later on used in testing utils\n resolvedModule.injector = injector;\n // Create resolvers object based on module's config\n // It involves wrapping a resolver with middlewares\n // and other things like validation\n resolvedModule.resolvers = createResolvers(config, metadata, {\n middlewareMap: app.middlewares,\n });\n return resolvedModule;\n },\n };\n return mod;\n}\n//# sourceMappingURL=factory.js.map","import { moduleFactory } from './factory';\n/**\n * @api\n * Creates a Module, an element used by Application. Accepts `ModuleConfig`.\n *\n * @example\n *\n * ```typescript\n * import { createModule, gql } from 'graphql-modules';\n *\n * export const usersModule = createModule({\n * id: 'users',\n * typeDefs: gql`\n * // GraphQL SDL\n * `,\n * resolvers: {\n * // ...\n * }\n * });\n * ```\n */\nexport function createModule(config) {\n return moduleFactory(config);\n}\n//# sourceMappingURL=module.js.map","import { parse, Kind } from 'graphql';\nexport function gql(literals) {\n const result = typeof literals === 'string' ? literals : literals[0];\n const parsed = parse(result);\n if (!parsed || parsed.kind !== Kind.DOCUMENT) {\n throw new Error('Not a valid GraphQL document.');\n }\n return parsed;\n}\n//# sourceMappingURL=gql.js.map","import { share } from '../shared/utils';\nexport function mockApplication(app) {\n function mockedFactory(newConfig) {\n const sharedFactory = share(() => app.ɵfactory(newConfig));\n return {\n get typeDefs() {\n return sharedFactory().typeDefs;\n },\n get resolvers() {\n return sharedFactory().resolvers;\n },\n get schema() {\n return sharedFactory().schema;\n },\n get injector() {\n return sharedFactory().injector;\n },\n createOperationController(options) {\n return sharedFactory().createOperationController(options);\n },\n createSubscription(options) {\n return sharedFactory().createSubscription(options);\n },\n createExecution(options) {\n return sharedFactory().createExecution(options);\n },\n createSchemaForApollo() {\n return sharedFactory().createSchemaForApollo();\n },\n createApolloExecutor() {\n return sharedFactory().createApolloExecutor();\n },\n get ɵfactory() {\n return sharedFactory().ɵfactory;\n },\n get ɵconfig() {\n return sharedFactory().ɵconfig;\n },\n replaceModule(newModule) {\n const config = sharedFactory().ɵconfig;\n return mockedFactory({\n ...config,\n modules: config.modules.map((mod) => mod.id === newModule.ɵoriginalModule.id ? newModule : mod),\n });\n },\n addProviders(newProviders) {\n const config = sharedFactory().ɵconfig;\n const existingProviders = typeof config.providers === 'function'\n ? config.providers()\n : config.providers;\n const providers = Array.isArray(existingProviders)\n ? existingProviders.concat(newProviders)\n : newProviders;\n return mockedFactory({\n ...config,\n providers,\n });\n },\n };\n }\n return mockedFactory();\n}\n//# sourceMappingURL=test-application.js.map","import { visit, Kind, concatAST, } from 'graphql';\nimport { moduleFactory } from '../module/factory';\nimport { createApplication } from '../application/application';\nimport { createModule } from '../module/module';\nexport function mockModule(testedModule, overrideConfig) {\n const sourceProviders = typeof testedModule.config.providers === 'function'\n ? testedModule.config.providers()\n : testedModule.config.providers;\n const overrideProviders = typeof overrideConfig.providers === 'function'\n ? overrideConfig.providers()\n : overrideConfig.providers;\n const newModule = createModule({\n ...testedModule.config,\n providers: [...(sourceProviders || []), ...(overrideProviders || [])],\n });\n newModule['ɵoriginalModule'] = testedModule;\n return newModule;\n}\nexport function testModule(testedModule, config) {\n var _a;\n const mod = transformModule(testedModule, config);\n const modules = [mod].concat((_a = config === null || config === void 0 ? void 0 : config.modules) !== null && _a !== void 0 ? _a : []);\n return createApplication({\n ...(config || {}),\n modules,\n providers: config === null || config === void 0 ? void 0 : config.providers,\n middlewares: config === null || config === void 0 ? void 0 : config.middlewares,\n });\n}\nfunction transformModule(mod, config) {\n const transforms = [];\n if (config === null || config === void 0 ? void 0 : config.replaceExtensions) {\n transforms.push((m) => moduleFactory({\n ...m.config,\n typeDefs: replaceExtensions(m.typeDefs),\n }));\n }\n if (config === null || config === void 0 ? void 0 : config.typeDefs) {\n transforms.push((m) => moduleFactory({\n ...m.config,\n typeDefs: m.typeDefs.concat(config.typeDefs),\n }));\n }\n if (config === null || config === void 0 ? void 0 : config.inheritTypeDefs) {\n transforms.push((m) => moduleFactory({\n ...m.config,\n typeDefs: inheritTypeDefs(m.typeDefs, config.inheritTypeDefs),\n }));\n }\n if (config === null || config === void 0 ? void 0 : config.resolvers) {\n transforms.push((m) => {\n const resolvers = m.config.resolvers\n ? Array.isArray(m.config.resolvers)\n ? m.config.resolvers\n : [m.config.resolvers]\n : [];\n return moduleFactory({\n ...m.config,\n resolvers: resolvers.concat(config.resolvers),\n });\n });\n }\n if (transforms) {\n return transforms.reduce((m, transform) => transform(m), mod);\n }\n return mod;\n}\nfunction inheritTypeDefs(originalTypeDefs, modules) {\n const original = concatAST(originalTypeDefs);\n const typeDefs = treeshakeTypesDefs(original, modules.reduce((typeDefs, externalMod) => typeDefs.concat(externalMod.typeDefs), []));\n return typeDefs;\n}\nfunction replaceExtensions(typeDefs) {\n const types = [];\n const extensions = [];\n // List all object types\n typeDefs.forEach((doc) => {\n visit(doc, {\n ObjectTypeDefinition(node) {\n types.push(node.name.value);\n },\n });\n });\n // turn object type extensions into object types\n return typeDefs.map((doc) => {\n return visit(doc, {\n ObjectTypeExtension(node) {\n // only if object type doesn't exist\n if (extensions.includes(node.name.value) ||\n types.includes(node.name.value)) {\n return node;\n }\n return {\n ...node,\n kind: Kind.OBJECT_TYPE_DEFINITION,\n };\n },\n });\n });\n}\nfunction treeshakeTypesDefs(originalSource, sources) {\n const namedTypes = originalSource.definitions.filter(isNamedTypeDefinition);\n const typesToVisit = namedTypes.map((def) => def.name.value);\n const rootFields = namedTypes.reduce((acc, node) => {\n const typeName = node.name.value;\n if (isRootType(typeName) && hasFields(node)) {\n if (!acc[typeName]) {\n acc[typeName] = [];\n }\n node.fields.forEach((field) => {\n acc[typeName].push(field.name.value);\n });\n }\n return acc;\n }, {});\n const schema = concatAST([originalSource].concat(sources));\n const involvedTypes = new Set(visitTypes(schema, typesToVisit, rootFields));\n return {\n kind: Kind.DOCUMENT,\n definitions: schema.definitions.filter((def) => {\n var _a, _b;\n if (isNamedTypeDefinition(def)) {\n const typeName = def.name.value;\n if (!involvedTypes.has(def.name.value)) {\n return false;\n }\n if ((_a = rootFields[typeName]) === null || _a === void 0 ? void 0 : _a.length) {\n const rootType = def;\n if ((_b = rootType.fields) === null || _b === void 0 ? void 0 : _b.every((field) => !rootFields[typeName].includes(field.name.value))) {\n return false;\n }\n }\n }\n return true;\n }),\n };\n}\nfunction isNamedTypeDefinition(def) {\n return (!!def &&\n def.kind !== Kind.SCHEMA_DEFINITION &&\n def.kind !== Kind.SCHEMA_EXTENSION);\n}\nfunction visitTypes(schema, types, rootFields) {\n const visitedTypes = [];\n const scalars = schema.definitions\n .filter((def) => def.kind === Kind.SCALAR_TYPE_DEFINITION ||\n def.kind === Kind.SCALAR_TYPE_EXTENSION)\n .map((def) => def.name.value);\n for (const typeName of types) {\n collectType(typeName);\n }\n return visitedTypes;\n function collectField(field, parentTypeName) {\n var _a;\n if (parentTypeName &&\n isRootType(parentTypeName) &&\n ((_a = rootFields[parentTypeName]) === null || _a === void 0 ? void 0 : _a.length) &&\n !rootFields[parentTypeName].includes(field.name.value)) {\n return;\n }\n collectType(resolveType(field.type));\n if (field.arguments) {\n field.arguments.forEach((arg) => {\n collectType(resolveType(arg.type));\n });\n }\n if (field.directives) {\n field.directives.forEach((directive) => {\n collectType(directive.name.value);\n });\n }\n }\n function collectType(typeName) {\n if (visitedTypes.includes(typeName)) {\n return;\n }\n if (isScalar(typeName)) {\n visitedTypes.push(typeName);\n return;\n }\n const types = findTypes(typeName);\n visitedTypes.push(typeName);\n types.forEach((type) => {\n if (hasFields(type)) {\n type.fields.forEach((field) => {\n collectField(field, typeName);\n });\n }\n if (hasTypes(type)) {\n type.types.forEach((t) => {\n collectType(resolveType(t));\n });\n }\n if (hasInterfaces(type)) {\n type.interfaces.forEach((i) => {\n collectType(resolveType(i));\n });\n }\n });\n }\n function resolveType(type) {\n if (type.kind === 'ListType') {\n return resolveType(type.type);\n }\n if (type.kind === 'NonNullType') {\n return resolveType(type.type);\n }\n return type.name.value;\n }\n function isScalar(name) {\n return scalars\n .concat(['String', 'Boolean', 'Int', 'ID', 'Float'])\n .includes(name);\n }\n function findTypes(typeName) {\n const types = schema.definitions.filter((def) => isNamedTypeDefinition(def) && def.name.value === typeName);\n if (!types.length) {\n throw new Error(`Missing type \"${typeName}\"`);\n }\n return types;\n }\n}\nfunction hasInterfaces(def) {\n return (hasPropValue(def, 'interfaces') &&\n [\n Kind.OBJECT_TYPE_DEFINITION,\n Kind.OBJECT_TYPE_EXTENSION,\n Kind.INTERFACE_TYPE_DEFINITION,\n Kind.INTERFACE_TYPE_EXTENSION,\n ].includes(def.kind));\n}\nfunction hasTypes(def) {\n return ([Kind.UNION_TYPE_DEFINITION, Kind.UNION_TYPE_EXTENSION].includes(def.kind) && hasPropValue(def, 'types'));\n}\nfunction hasFields(def) {\n return ([\n Kind.OBJECT_TYPE_DEFINITION,\n Kind.OBJECT_TYPE_EXTENSION,\n Kind.INTERFACE_TYPE_DEFINITION,\n Kind.INTERFACE_TYPE_EXTENSION,\n Kind.INPUT_OBJECT_TYPE_DEFINITION,\n Kind.INPUT_OBJECT_TYPE_EXTENSION,\n ].includes(def.kind) && hasPropValue(def, 'fields'));\n}\nfunction hasPropValue(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop) && obj[prop];\n}\nfunction isRootType(typeName) {\n return (typeName === 'Query' ||\n typeName === 'Mutation' ||\n typeName === 'Subscription');\n}\n//# sourceMappingURL=test-module.js.map","import { ReflectiveInjector } from '../di/injector';\nimport { CONTEXT } from '../application/tokens';\nimport { readInjectableMetadata } from '../di/metadata';\nexport function testInjector(providers) {\n const resolvedProviders = ReflectiveInjector.resolve([\n { provide: CONTEXT, useValue: {} },\n ...providers,\n ]);\n const injector = ReflectiveInjector.createFromResolved({\n name: 'test',\n providers: resolvedProviders,\n });\n injector.instantiateAll();\n return injector;\n}\nexport function readProviderOptions(provider) {\n return readInjectableMetadata(provider, true).options;\n}\n//# sourceMappingURL=test-injector.js.map","export function execute(app, inputs, options) {\n const executor = app.createExecution(options);\n return executor({\n schema: app.schema,\n ...inputs,\n });\n}\n//# sourceMappingURL=graphql.js.map","export function provideEmpty(token) {\n return {\n provide: token,\n useValue: {},\n };\n}\n//# sourceMappingURL=di.js.map","import { mockApplication } from './test-application';\nimport { testModule, mockModule } from './test-module';\nimport { testInjector, readProviderOptions } from './test-injector';\nimport { execute } from './graphql';\nimport { provideEmpty } from './di';\nexport const testkit = {\n mockApplication,\n mockModule,\n testModule,\n testInjector,\n readProviderOptions,\n provideEmpty,\n execute,\n};\n//# sourceMappingURL=index.js.map"],"names":["execute"],"mappings":"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"}
|