@orion-js/graphql 4.0.0-next.0 → 4.0.0-next.2

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/pubsub.ts","../src/subscription/getChannelName.ts","../src/subscription/index.ts","../src/startGraphiQL.ts","../src/buildSchema/index.ts","../src/buildSchema/getQuery.ts","../src/buildSchema/getType/index.ts","../src/buildSchema/getType/BigIntScalar.ts","../src/buildSchema/getType/DateScalar.ts","../src/buildSchema/getType/JSONScalar.ts","../src/buildSchema/getType/getScalar.ts","../src/buildSchema/getArgs/getField.ts","../src/resolversSchemas/getStaticFields.ts","../src/buildSchema/getArgs/index.ts","../src/errorHandler.ts","../src/buildSchema/getType/getTypeAsResolver.ts","../src/resolversSchemas/getDynamicFields.ts","../src/resolversSchemas/getModelLoadedResolvers.ts","../src/buildSchema/getResolvers/resolversStore.ts","../src/buildSchema/getResolvers/index.ts","../src/buildSchema/getMutation.ts","../src/buildSchema/getSubscription.ts","../src/buildSchema/getSubscriptions/index.ts","../src/getApolloOptions/formatError.ts","../src/getApolloOptions/index.ts","../src/startWebsocket.ts","../src/websockerViewer.ts","../src/startGraphQL.ts","../src/resolversSchemas/params.ts","../src/resolversSchemas/getField.ts","../src/resolversSchemas/serializeSchema.ts","../src/resolversSchemas/getBasicResultQuery.ts","../src/resolversSchemas/ResolverParamsInfo.ts","../src/resolversSchemas/index.ts","../src/types/subscription.ts","../src/service/global.ts","../src/service/otherParams.ts","../src/service/model.ts","../src/service/subscription.ts"],"sourcesContent":["import subscription from './subscription'\nimport startGraphQL from './startGraphQL'\nimport startGraphiQL from './startGraphiQL'\nimport resolversSchemas from './resolversSchemas'\nimport ResolverParamsInfo from './resolversSchemas/ResolverParamsInfo'\nimport serializeSchema from './resolversSchemas/serializeSchema'\nimport getBasicResultQuery from './resolversSchemas/getBasicResultQuery'\nimport * as GraphQL from 'graphql'\n\nexport {\n GraphQL,\n startGraphQL,\n startGraphiQL,\n resolversSchemas,\n ResolverParamsInfo,\n serializeSchema,\n subscription,\n getBasicResultQuery\n}\n\nexport * from './types'\nexport * from './service'\nexport * from './websockerViewer'\n","import {PubSubEngine} from 'graphql-subscriptions'\n\nlet pubsub = null\n\nexport const setPubsub = function (newPubsub: PubSubEngine) {\n pubsub = newPubsub\n}\n\nexport const getPubsub: () => PubSubEngine = function () {\n return pubsub\n}\n","import {hashObject} from '@orion-js/helpers'\n\nexport default function (name: string, params) {\n const hash = hashObject(params)\n const channelName = `${name}_${hash}`\n return channelName\n}\n","import {getPubsub} from '../pubsub'\nimport {CreateOrionSubscriptionFunction, OrionSubscription} from '../types/subscription'\nimport getChannelName from './getChannelName'\nimport {\n checkPermissions as checkResolverPermissions,\n cleanParams,\n cleanReturns,\n ResolverOptions\n} from '@orion-js/resolvers'\n\nconst createSubscription: CreateOrionSubscriptionFunction = function (options) {\n const subscription = {\n name: options.name\n } as OrionSubscription\n\n // the publish function\n subscription.publish = async (params, data) => {\n const pubsub = getPubsub()\n const channelName = getChannelName(subscription.name, params)\n await pubsub.publish(channelName, {[subscription.name]: data})\n }\n\n subscription.subscribe = async (params, viewer) => {\n const pubsub = getPubsub()\n try {\n await checkResolverPermissions({params, viewer, options: null}, options as ResolverOptions)\n\n const channelName = getChannelName(subscription.name, params)\n return pubsub.asyncIterator(channelName)\n } catch (error) {\n return pubsub.asyncIterator('unauthorized')\n }\n }\n\n subscription.params = cleanParams(options.params)\n subscription.returns = cleanReturns(options.returns)\n\n return subscription\n}\n\nexport default createSubscription\n","import {registerRoute, route} from '@orion-js/http'\nimport {StartGraphQLOptions} from './types/startGraphQL'\nimport {ApolloServerOptions} from '@apollo/server'\n\n// Ensures string values are safe to be used within a <script> tag.\n// TODO: I don't think that's the right escape function\nfunction safeSerialize(data) {\n return data ? JSON.stringify(data).replace(/\\//g, '\\\\/') : null\n}\n\nconst getHTML = function (\n apolloOptions: ApolloServerOptions<any>,\n options: StartGraphQLOptions,\n data\n) {\n // Current latest version of GraphiQL.\n const GRAPHIQL_VERSION = '0.11.11'\n\n const endpointURL = '/graphql'\n const subscriptionsEndpoint = '/subscriptions'\n\n const queryString = data.query\n const variablesString = data.variables ? JSON.stringify(data.variables, null, 2) : null\n const operationName = data.operationName\n const useSubs = !!options.subscriptions\n\n return `\n<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\" />\n <title>GraphiQL</title>\n <meta name=\"robots\" content=\"noindex\" />\n <style>\n html, body {\n height: 100%;\n margin: 0;\n overflow: hidden;\n width: 100%;\n }\n </style>\n <link href=\"//unpkg.com/graphiql@${GRAPHIQL_VERSION}/graphiql.css\" rel=\"stylesheet\" />\n <script src=\"//unpkg.com/react@15.6.1/dist/react.min.js\"></script>\n <script src=\"//unpkg.com/jssha@2.3.1/src/sha512.js\"></script>\n <script src=\"//unpkg.com/react-dom@15.6.1/dist/react-dom.min.js\"></script>\n <script src=\"//unpkg.com/graphiql@${GRAPHIQL_VERSION}/graphiql.min.js\"></script>\n <script src=\"//cdn.jsdelivr.net/fetch/2.0.1/fetch.min.js\"></script>\n ${\n useSubs\n ? `<script src=\"//unpkg.com/subscriptions-transport-ws@0.5.4/browser/client.js\"></script>\n <script src=\"//unpkg.com/graphiql-subscriptions-fetcher@0.0.2/browser/client.js\"></script>`\n : ''\n }\n</head>\n<body>\n <script>\n // Collect the URL parameters\n var parameters = {};\n window.location.search.substr(1).split('&').forEach(function (entry) {\n var eq = entry.indexOf('=');\n if (eq >= 0) {\n parameters[decodeURIComponent(entry.slice(0, eq))] =\n decodeURIComponent(entry.slice(eq + 1));\n }\n });\n // Produce a Location query string from a parameter object.\n function locationQuery(params, location) {\n return (location ? location: '') + '?' + Object.keys(params).map(function (key) {\n return encodeURIComponent(key) + '=' +\n encodeURIComponent(params[key]);\n }).join('&');\n }\n // Derive a fetch URL from the current URL, sans the GraphQL parameters.\n var graphqlParamNames = {\n query: true,\n variables: true,\n operationName: true\n };\n var otherParams = {};\n for (var k in parameters) {\n if (parameters.hasOwnProperty(k) && graphqlParamNames[k] !== true) {\n otherParams[k] = parameters[k];\n }\n }\n // We don't use safe-serialize for location, because it's not client input.\n var fetchURL = '${endpointURL}'\n // Defines a GraphQL fetcher using the fetch API.\n function graphQLHttpFetcher(graphQLParams) {\n const body = JSON.stringify(graphQLParams)\n const headers = {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n }\n const publicKey = localStorage.getItem('GraphiQL:publicKey')\n const secretKey = localStorage.getItem('GraphiQL:secretKey')\n if (publicKey && secretKey) {\n const nonce = new Date().getTime()\n const shaObj = new jsSHA('SHA-512', 'TEXT')\n shaObj.setHMACKey(secretKey, 'TEXT')\n shaObj.update(nonce + body)\n const signature = shaObj.getHMAC('HEX')\n headers['X-ORION-NONCE'] = nonce\n headers['X-ORION-PUBLICKEY'] = publicKey\n headers['X-ORION-SIGNATURE'] = signature\n }\n return fetch(fetchURL, {\n method: 'post',\n headers,\n body,\n credentials: 'same-origin',\n }).then(function (response) {\n return response.text();\n }).then(function (responseBody) {\n try {\n const json = JSON.parse(responseBody);\n if (json.data && json.data.loginWithPassword) {\n const publicKey = json.data.loginWithPassword.publicKey\n const secretKey = json.data.loginWithPassword.secretKey\n if (publicKey && secretKey) {\n localStorage.setItem('GraphiQL:publicKey', publicKey)\n localStorage.setItem('GraphiQL:secretKey', secretKey)\n alert('Session saved in localStorage')\n }\n }\n if (json.error && json.error === 'AuthError') {\n localStorage.setItem('GraphiQL:publicKey', '')\n localStorage.setItem('GraphiQL:secretKey', '')\n alert('Logged out after receiving AuthError')\n }\n return json\n } catch (error) {\n return responseBody;\n }\n });\n }\n ${\n useSubs\n ? `\n let params = {}\n const publicKey = localStorage.getItem('GraphiQL:publicKey')\n const secretKey = localStorage.getItem('GraphiQL:secretKey')\n if (publicKey && secretKey) {\n const nonce = new Date().getTime() + 500\n const shaObj = new jsSHA('SHA-512', 'TEXT')\n shaObj.setHMACKey(secretKey, 'TEXT')\n shaObj.update(nonce + 'websockethandshake')\n const signature = shaObj.getHMAC('HEX')\n params = {\n nonce,\n publicKey,\n signature\n }\n }\n\n const protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://'\n let subscriptionsClient = new window.SubscriptionsTransportWs.SubscriptionClient(protocol + window.location.host + '${subscriptionsEndpoint}', {\n reconnect: true,\n connectionParams: params\n });\n let myCustomFetcher = window.GraphiQLSubscriptionsFetcher.graphQLFetcher(subscriptionsClient, graphQLHttpFetcher);\n var fetcher = myCustomFetcher\n `\n : `\n var fetcher = graphQLHttpFetcher\n `\n }\n\n // When the query and variables string is edited, update the URL bar so\n // that it can be easily shared.\n function onEditQuery(newQuery) {\n parameters.query = newQuery;\n updateURL();\n }\n function onEditVariables(newVariables) {\n parameters.variables = newVariables;\n updateURL();\n }\n function onEditOperationName(newOperationName) {\n parameters.operationName = newOperationName;\n updateURL();\n }\n function updateURL() {\n var cleanParams = Object.keys(parameters).filter(function(v) {\n return parameters[v];\n }).reduce(function(old, v) {\n old[v] = parameters[v];\n return old;\n }, {});\n history.replaceState(null, null, locationQuery(cleanParams) + window.location.hash);\n }\n // Render <GraphiQL /> into the body.\n ReactDOM.render(\n React.createElement(GraphiQL, {\n fetcher: fetcher,\n onEditQuery: onEditQuery,\n onEditVariables: onEditVariables,\n onEditOperationName: onEditOperationName,\n query: ${safeSerialize(queryString)},\n response: null,\n variables: ${safeSerialize(variablesString)},\n operationName: ${safeSerialize(operationName)},\n }),\n document.body\n );\n </script>\n</body>\n</html>`\n}\n\nexport default function (apolloOptions: ApolloServerOptions<any>, options: StartGraphQLOptions) {\n registerRoute(\n route({\n path: '/graphiql',\n method: 'get',\n async resolve(req) {\n return {\n body: getHTML(apolloOptions, options, req.query)\n }\n }\n })\n )\n}\n","import {GraphQLSchema} from 'graphql'\nimport getQuery from './getQuery'\nimport getMutation from './getMutation'\nimport getSubscription from './getSubscription'\nimport {StartGraphQLOptions} from '../types/startGraphQL'\n\nexport default async function (options: StartGraphQLOptions) {\n const query = await getQuery(options)\n const mutation = await getMutation(options)\n const subscription = await getSubscription(options)\n const schema = new GraphQLSchema({query, mutation, subscription})\n return schema\n}\n","import {GraphQLObjectType} from 'graphql'\nimport getResolvers from './getResolvers'\nimport isEmpty from 'lodash/isEmpty'\nimport {StartGraphQLOptions} from '../types/startGraphQL'\n\nexport default async function (options: StartGraphQLOptions) {\n const fields = await getResolvers(options, false)\n if (isEmpty(fields)) return null\n return new GraphQLObjectType({\n name: 'Query',\n fields\n })\n}\n","import isPlainObject from 'lodash/isPlainObject'\nimport isArray from 'lodash/isArray'\nimport {GraphQLList, GraphQLObjectType} from 'graphql'\nimport {getFieldType} from '@orion-js/schema'\nimport getScalar from './getScalar'\nimport getTypeAsResolver from './getTypeAsResolver'\nimport {getStaticFields} from '../../resolversSchemas/getStaticFields'\nimport {getDynamicFields} from '../../resolversSchemas/getDynamicFields'\nimport {getModelLoadedResolvers} from '../../resolversSchemas/getModelLoadedResolvers'\nimport {StartGraphQLOptions} from '../../types/startGraphQL'\n\nexport default function getGraphQLType(type: any, options: StartGraphQLOptions) {\n if (!type) {\n throw new Error('Type is undefined')\n }\n\n if (isArray(type)) {\n const graphQLType = getGraphQLType(type[0], options)\n return new GraphQLList(graphQLType)\n } else if (typeof type === 'function' && type.getModel && type.__schemaId) {\n return getGraphQLType(type.getModel(), options)\n } else if (!type._isFieldType && (isPlainObject(type) || type.__isModel)) {\n const model = type.__isModel ? type : type.__model\n if (!model || !model.__isModel) throw new Error('Type is not a Model')\n if (model.graphQLType) return model.graphQLType\n\n model.graphQLType = new GraphQLObjectType({\n name: model.name,\n fields: () => {\n const fields = {}\n for (const field of getStaticFields(model)) {\n try {\n /**\n * For fields that have custom \"to client\" resolvers and serverside are static\n */\n if (field.graphQLResolver) {\n fields[field.key] = getTypeAsResolver({\n resolver: field.graphQLResolver,\n getGraphQLType,\n options,\n model\n })\n } else {\n fields[field.key] = {\n type: getGraphQLType(field.type, options)\n }\n }\n } catch (error) {\n throw new Error(`Error getting type for ${field.key} ${error.message}`)\n }\n }\n\n for (const resolver of getDynamicFields(model)) {\n try {\n fields[resolver.key] = getTypeAsResolver({resolver, getGraphQLType, options, model})\n } catch (error) {\n throw new Error(\n `Error getting resolver type for resolver \"${resolver.key}\": ${error.message}`\n )\n }\n }\n\n for (const resolver of getModelLoadedResolvers(model, options)) {\n try {\n fields[resolver.key] = getTypeAsResolver({resolver, getGraphQLType, options, model})\n } catch (error) {\n throw new Error(\n `Error getting resolver type for resolver \"${resolver.key}\": ${error.message}`\n )\n }\n }\n return fields\n }\n })\n\n return model.graphQLType\n } else {\n const schemaType = getFieldType(type)\n const graphQLType = getScalar(schemaType)\n return graphQLType\n }\n}\n","import {GraphQLScalarType} from 'graphql'\n\nconst MAX_INT = Number.MAX_SAFE_INTEGER\nconst MIN_INT = Number.MIN_SAFE_INTEGER\n\nconst coerceBigInt = function coerceBigInt(value) {\n if (value === '') {\n throw new TypeError('BigInt cannot represent non 53-bit signed integer value: (empty string)')\n }\n const num = Number(value)\n if (num > MAX_INT || num < MIN_INT) {\n throw new TypeError('BigInt cannot represent non 53-bit signed integer value: ' + String(value))\n }\n const int = Math.floor(num)\n if (int !== num) {\n throw new TypeError('BigInt cannot represent non-integer value: ' + String(value))\n }\n return int\n}\n\nexport default new GraphQLScalarType({\n name: 'BigInt',\n description:\n 'The `BigInt` scalar type represents non-fractional signed whole numeric ' +\n 'values. BigInt can represent values between -(2^53) + 1 and 2^53 - 1. ',\n serialize: coerceBigInt,\n parseValue: coerceBigInt,\n parseLiteral(ast) {\n if (ast.kind === 'IntValue') {\n const num = parseInt(ast.value, 10)\n if (num <= MAX_INT && num >= MIN_INT) {\n return num\n }\n }\n return null\n }\n})\n","import {GraphQLScalarType} from 'graphql'\nimport {GraphQLDateTime} from 'graphql-iso-date'\n\nexport default new GraphQLScalarType({\n name: 'Date',\n serialize: GraphQLDateTime.serialize,\n parseValue: GraphQLDateTime.parseValue,\n parseLiteral: GraphQLDateTime.parseLiteral\n})\n","import {GraphQLScalarType, Kind} from 'graphql'\n\nfunction identity(value) {\n return value\n}\n\nfunction parseLiteral(ast, variables) {\n switch (ast.kind) {\n case Kind.STRING:\n case Kind.BOOLEAN:\n return ast.value\n case Kind.INT:\n case Kind.FLOAT:\n return parseFloat(ast.value)\n case Kind.OBJECT: {\n const value = Object.create(null)\n ast.fields.forEach(field => {\n value[field.name.value] = parseLiteral(field.value, variables)\n })\n\n return value\n }\n case Kind.LIST:\n return ast.values.map(n => parseLiteral(n, variables))\n case Kind.NULL:\n return null\n case Kind.VARIABLE: {\n const name = ast.name.value\n return variables ? variables[name] : undefined\n }\n default:\n return undefined\n }\n}\n\nexport default new GraphQLScalarType({\n name: 'JSON',\n description:\n 'The `JSON` scalar type represents JSON values as specified by ' +\n '[ECMA-404](http://www.ecma-international.org/' +\n 'publications/files/ECMA-ST/ECMA-404.pdf).',\n serialize: identity,\n parseValue: identity,\n parseLiteral\n})\n","import BigIntScalar from './BigIntScalar'\nimport DateScalar from './DateScalar'\nimport JSONScalar from './JSONScalar'\nimport * as GraphQL from 'graphql'\n\nconst {GraphQLFloat, GraphQLString, GraphQLID, GraphQLBoolean} = GraphQL\n\nconst fieldMap = {\n string: GraphQLString,\n email: GraphQLString,\n date: DateScalar,\n integer: BigIntScalar,\n number: GraphQLFloat,\n ID: GraphQLID,\n boolean: GraphQLBoolean,\n blackbox: JSONScalar,\n any: JSONScalar,\n}\n\nexport default function (fieldType) {\n if (fieldMap[fieldType.name]) {\n return fieldMap[fieldType.name]\n }\n if (fieldType.toGraphQLType) {\n const result = fieldType.toGraphQLType(GraphQL)\n if (result.then) {\n throw new Error('toGraphQLType cant return a promise')\n }\n return result\n }\n throw new Error(`Field type \"${fieldType.name}\" has no convertion to GraphQLType`)\n}\n","import isPlainObject from 'lodash/isPlainObject'\nimport isArray from 'lodash/isArray'\nimport {GraphQLList, GraphQLInputObjectType} from 'graphql'\nimport {getFieldType} from '@orion-js/schema'\nimport getScalar from '../getType/getScalar'\nimport {getStaticFields} from '../../resolversSchemas/getStaticFields'\n\nconst storedModelInput = {}\n\nconst getModelInput = function (model, fields) {\n if (storedModelInput[model.name]) {\n return storedModelInput[model.name]\n }\n\n storedModelInput[model.name] = new GraphQLInputObjectType({\n name: model.name + 'Input',\n fields\n })\n\n return storedModelInput[model.name]\n}\n\nexport default function getParams(type) {\n if (!type) {\n throw new Error(`No type specified`)\n }\n\n if (isArray(type)) {\n const graphQLType = getParams(type[0])\n return new GraphQLList(graphQLType)\n } else if (!type._isFieldType && (isPlainObject(type) || type.__isModel)) {\n const model = type.__isModel ? type : type.__model\n if (!model || !model.__isModel) throw new Error(`A type is not a Model`)\n\n const fields = {}\n\n for (const field of getStaticFields(model)) {\n fields[field.key] = {\n type: getParams(field.type)\n }\n }\n\n return getModelInput(model, fields)\n } else {\n const schemaType = getFieldType(type)\n const graphQLType = getScalar(schemaType)\n return graphQLType\n }\n}\n","import {Model} from '@orion-js/models'\nimport {SchemaNode} from '@orion-js/schema'\n\nexport function getStaticFields(model: Model): Array<SchemaNode> {\n const schema = model.getSchema()\n if (!schema) return []\n\n const keys = Object.keys(schema).filter(key => !key.startsWith('__'))\n\n return (\n keys\n .map((key): SchemaNode => {\n const field = schema[key]\n return {\n ...field,\n key\n } as SchemaNode\n })\n // there is a compile error if we don't do this\n .filter(field => !field.private)\n )\n}\n","import getField from './getField'\n\nexport default function (params) {\n if (!params) return\n if (Object.keys(params).length === 0) return\n\n const fields = {}\n\n for (const key of Object.keys(params)) {\n try {\n const type = getField(params[key].type)\n fields[key] = {type}\n } catch (error) {\n throw new Error(`Error creating GraphQL resolver params argument ${key}: ${error.message}`)\n }\n }\n return fields\n}\n","import crypto from 'crypto'\nimport {UserError} from '@orion-js/helpers'\nimport {GraphQLError, GraphQLErrorOptions, GraphQLFormattedError} from 'graphql'\n\nexport default function errorHandler(error, data) {\n const message = `Error in resolver \"${data.name}\" ${\n data.model ? `of model \"${data.model.name}\"` : ''\n }`\n\n const hash = crypto\n .createHash('sha1')\n .update(error.message, 'utf8')\n .digest('hex')\n .substring(0, 10)\n error.hash = hash\n\n if (error && error.isOrionError) {\n console.warn(message, error)\n throw new GraphQLError(error.message, {\n originalError: error,\n extensions: {\n isOrionError: !!error.isOrionError,\n isValidationError: !!error.isValidationError,\n code: error.code,\n hash,\n info: error.getInfo()\n }\n })\n } else {\n console.error(message, error)\n throw new GraphQLError(`${error.message} [${hash}]`, {\n // originalError: error,\n extensions: {\n isOrionError: false,\n isValidationError: false,\n code: 'INTERNAL_SERVER_ERROR',\n hash: hash\n }\n })\n }\n}\n","import getArgs from '../getArgs'\nimport errorHandler from '../../errorHandler'\n\nexport default function ({resolver, getGraphQLType, options, model}) {\n const type = getGraphQLType(resolver.returns, options)\n const args = getArgs(resolver.params)\n return {\n type,\n args,\n async resolve(item, params, context, info) {\n try {\n const result = await resolver.resolve(item, params, context, info)\n return result\n } catch (error) {\n errorHandler(error, {context, resolver, options, model})\n throw error\n }\n },\n }\n}\n","import {Model} from '@orion-js/models'\n\nexport function getDynamicFields(model: Model): any {\n const resolvers = model.getResolvers()\n if (!resolvers) return []\n const keys = Object.keys(resolvers)\n\n return keys\n .map(key => {\n const resolver = resolvers[key]\n return {\n ...resolver,\n key\n }\n })\n .filter(resolver => !resolver.private)\n}\n","import {Model} from '@orion-js/models'\nimport {StartGraphQLOptions} from '../types/startGraphQL'\n\nexport function getModelLoadedResolvers(model: Model, options: StartGraphQLOptions): any[] {\n if (!options.modelResolvers) return []\n const resolvers = options.modelResolvers[model.name]\n if (!resolvers) return []\n\n const keys = Object.keys(resolvers)\n\n return keys\n .map(key => {\n const resolver = resolvers[key]\n return {\n ...resolver,\n key\n }\n })\n .filter(resolver => !resolver.private)\n}\n","import {GlobalResolversMap} from '@orion-js/models'\n\nconst resolversStore: GlobalResolversMap = {}\n\nexport {resolversStore}\n","import getType from '../getType'\nimport getArgs from '../getArgs'\nimport errorHandler from '../../errorHandler'\nimport {resolversStore} from './resolversStore'\nimport {GraphQLFieldConfig, ThunkObjMap} from 'graphql'\nimport {StartGraphQLOptions} from '../../types/startGraphQL'\n\nexport default async function (options: StartGraphQLOptions, mutation: boolean) {\n const {resolvers} = options\n const filteredResolvers = Object.keys(resolvers)\n .map(key => {\n return {\n name: key,\n resolver: resolvers[key],\n }\n })\n .filter(({resolver}) => !!resolver.mutation === !!mutation)\n .filter(({resolver}) => !resolver.private)\n\n const fields: ThunkObjMap<GraphQLFieldConfig<any, any, any>> = {}\n\n for (const {resolver, name} of filteredResolvers) {\n resolversStore[name] = resolver\n\n const type = await getType(resolver.returns, options)\n const args = await getArgs(resolver.params)\n\n fields[name] = {\n type,\n args,\n async resolve(root, params, context, info) {\n try {\n const result = await resolver.resolve(params, context, info)\n return result\n } catch (error) {\n errorHandler(error, {context, resolver, options, name})\n throw error\n }\n },\n }\n }\n\n return fields\n}\n","import {GraphQLObjectType} from 'graphql'\nimport getResolvers from './getResolvers'\nimport isEmpty from 'lodash/isEmpty'\nimport {StartGraphQLOptions} from '../types/startGraphQL'\n\nexport default async function (options: StartGraphQLOptions) {\n const fields = await getResolvers(options, true)\n if (isEmpty(fields)) return null\n return new GraphQLObjectType({\n name: 'Mutation',\n fields\n })\n}\n","import {GraphQLObjectType} from 'graphql'\nimport {StartGraphQLOptions} from '../types/startGraphQL'\nimport getSubscriptions from './getSubscriptions'\n\nexport default async function (options: StartGraphQLOptions): Promise<GraphQLObjectType> {\n if (!options.subscriptions) return null\n\n const fields = await getSubscriptions(options)\n return new GraphQLObjectType({\n name: 'Subscription',\n fields\n })\n}\n","import getType from '../getType'\nimport getArgs from '../getArgs'\nimport {StartGraphQLOptions} from '../../types/startGraphQL'\n\nexport default async function (options: StartGraphQLOptions) {\n const {subscriptions} = options\n const fields = {}\n\n for (const key of Object.keys(subscriptions)) {\n const subscription = subscriptions[key]\n subscription.name = subscription.name || key\n\n const type = await getType(subscription.returns, options)\n const args = await getArgs(subscription.params)\n fields[subscription.name] = {\n type,\n args,\n async subscribe(root, params, viewer) {\n return await subscription.subscribe(params, viewer)\n }\n }\n }\n\n return fields\n}\n","export default function (apolloError) {\n let response = {...apolloError}\n const error = apolloError.originalError\n\n if (error && error.isValidationError) {\n response.validationErrors = error.validationErrors\n }\n\n if (error && error.getInfo) {\n response = error.getInfo()\n }\n return response\n}\n","import buildSchema from '../buildSchema'\nimport {StartGraphQLOptions} from '../types/startGraphQL'\nimport {ApolloServerOptions} from '@apollo/server'\nimport formatError from './formatError'\nimport {omit} from 'lodash'\n\nexport default async function (options: StartGraphQLOptions) {\n const schema = await buildSchema(options)\n const passedOptions = omit(options, [\n 'resolvers',\n 'modelResolvers',\n 'subscriptions',\n 'executeGraphQLCache',\n 'useGraphiql',\n 'app',\n 'pubsub'\n ])\n return {\n ...passedOptions,\n schema,\n formatError\n } as unknown as ApolloServerOptions<any>\n}\n","import {PubSub} from 'graphql-subscriptions'\nimport {setPubsub} from './pubsub'\nimport {StartGraphQLOptions} from './types/startGraphQL'\nimport {ApolloServerOptions} from '@apollo/server'\nimport {WebSocketServer} from 'ws'\nimport {useServer} from 'graphql-ws/lib/use/ws'\nimport {getWebsockerViewer} from './websockerViewer'\nimport {getServer} from '@orion-js/http'\n\nexport default function (\n apolloOptions: ApolloServerOptions<any>,\n options: StartGraphQLOptions,\n /**\n * For testing purposes\n */\n wsServer?: any\n) {\n if (!options.subscriptions) {\n return []\n }\n\n const pubsub = options.pubsub || new PubSub()\n setPubsub(pubsub)\n\n // Creating the WebSocket server\n if (!wsServer) {\n wsServer = new WebSocketServer({\n server: getServer(),\n path: '/subscriptions'\n })\n }\n\n // Hand in the schema we just created and have the\n // WebSocketServer start listening.\n const serverCleanup = useServer(\n {\n schema: apolloOptions.schema,\n context: async (ctx, msg, args) => {\n // This will be run every time the client sends a subscription request\n return getWebsockerViewer(ctx.connectionParams)\n }\n },\n wsServer\n )\n return [\n // Proper shutdown for the WebSocket server.\n {\n async serverWillStart() {\n return {\n async drainServer() {\n await serverCleanup.dispose()\n }\n }\n }\n }\n ]\n}\n","// Declare a type.\n\nglobal.getWebsocketViewerRef = () => null\n\nexport const getWebsockerViewer = async (connectionParams: any): Promise<any> => {\n try {\n const viewer = await global.getWebsocketViewerRef(connectionParams)\n if (!viewer) return {}\n return viewer\n } catch {\n return {}\n }\n}\n\nexport const setGetWebsockerViewer = (getViewerFunc: (connectionParams: any) => any): void => {\n global.getWebsocketViewerRef = getViewerFunc\n}\n","import startGraphiQL from './startGraphiQL'\nimport getApolloOptions from './getApolloOptions'\nimport startWebsocket from './startWebsocket'\nimport {getApp, getServer, getViewer, onError, registerRoute, Request, route} from '@orion-js/http'\nimport {StartGraphQLOptions} from './types/startGraphQL'\nimport {ApolloServer} from '@apollo/server'\nimport {expressMiddleware} from '@apollo/server/express4'\nimport {ApolloServerPluginDrainHttpServer} from '@apollo/server/plugin/drainHttpServer'\n\nexport default async function (options: StartGraphQLOptions) {\n const apolloOptions = await getApolloOptions(options)\n\n const app = options.app || getApp()\n const httpServer = getServer()\n\n if (options.useGraphiql) {\n startGraphiQL(apolloOptions, options)\n }\n\n const subPlugins = startWebsocket(apolloOptions, options)\n\n const drainPlugins = httpServer ? [ApolloServerPluginDrainHttpServer({httpServer})] : []\n\n const server = new ApolloServer({\n ...apolloOptions,\n plugins: [...(apolloOptions.plugins || []), ...drainPlugins, ...subPlugins]\n })\n\n await server.start()\n\n const middleware = expressMiddleware(server, {\n // @ts-expect-error\n context: ({req, res}) => req._viewer\n })\n\n registerRoute(\n route({\n app,\n method: 'all',\n path: '/graphql',\n bodyParser: 'json',\n async resolve(req: Request, res, viewer) {\n (req as any)._viewer = viewer\n return middleware(req, res, req.next)\n }\n })\n )\n}\n","import {resolver} from '@orion-js/resolvers'\nimport {UserError} from '@orion-js/helpers'\nimport ResolverParams from './ResolverParamsInfo'\nimport {resolversStore} from '../buildSchema/getResolvers/resolversStore'\n\ndeclare const global: any\n\nexport default resolver({\n params: {\n name: {\n type: 'ID'\n },\n mutation: {\n type: Boolean\n }\n },\n returns: ResolverParams,\n mutation: false,\n resolve: async function ({mutation, name}, viewer) {\n const resolver = resolversStore[name]\n if (!resolver) {\n throw new UserError(\n 'notFound',\n `${mutation ? 'Mutation' : 'Query'} named \"${name}\" not found`\n )\n }\n if (!!resolver.mutation !== !!mutation) {\n throw new UserError('incorrectType', `\"${name}\" is ${mutation ? 'not' : ''} a mutation`)\n }\n return {resolver, name}\n }\n})\n","import isPlainObject from 'lodash/isPlainObject'\nimport isArray from 'lodash/isArray'\nimport {getFieldType} from '@orion-js/schema'\nimport omit from 'lodash/omit'\nimport getScalar from '../buildSchema/getType/getScalar'\nimport {getStaticFields} from './getStaticFields'\n\nexport default async function getParams(field) {\n let {type} = field\n\n if (typeof type === 'function' && type.getModel && type.__schemaId) {\n const model = type.getModel()\n return await getParams({...field, type: model})\n } else if (isArray(type)) {\n const serialized = await getParams({...field, type: type[0]})\n return {\n ...serialized,\n type: [serialized.type],\n __graphQLType: `[${serialized.__graphQLType}]`\n }\n } else if (!type._isFieldType && (isPlainObject(type) || type.__isModel)) {\n const model = type.__isModel ? type : type.__model\n if (!model || !model.__isModel) throw new Error('Type is not a Model')\n\n const fields = {}\n\n for (const field of getStaticFields(model)) {\n fields[field.key] = await getParams(field)\n }\n\n return {\n ...omit(field, 'key'),\n type: fields,\n __graphQLType: model.name + 'Input'\n }\n } else {\n const schemaType = await getFieldType(type)\n const graphQLType = await getScalar(schemaType)\n return {\n ...omit(field, 'key'),\n type: schemaType.name,\n __graphQLType: graphQLType.name\n }\n }\n}\n","import {Schema} from '@orion-js/schema'\nimport getField from './getField'\n\nexport default async function serializeSchema(params): Promise<Schema> {\n if (!params) return\n\n if (typeof params === 'function' && params.getModel && params.__schemaId) {\n params = params.getModel().getCleanSchema() // typed model\n }\n\n if (Object.keys(params).length === 0) return\n\n const fields = {}\n\n for (const key of Object.keys(params)) {\n const field = params[key]\n fields[key] = await getField(field)\n }\n\n return fields\n}\n","import isArray from 'lodash/isArray'\nimport {getStaticFields} from './getStaticFields'\n\nexport default async function getBasicQuery(field) {\n if (!field.type) return ''\n\n if ((isArray(field.type) && field.type[0].__model) || field.type.__model) {\n const model = isArray(field.type) ? field.type[0].__model : field.type.__model\n const fields = []\n for (const field of getStaticFields(model)) {\n fields.push(await getBasicQuery(field))\n }\n const key = field.key ? `${field.key} ` : ''\n return `${key}{ ${fields.join(' ')} }`\n } else {\n return field.key\n }\n}\n","import serializeSchema from './serializeSchema'\nimport getBasicResultQuery from './getBasicResultQuery'\nimport {createModel, Model} from '@orion-js/models'\nimport {Resolver, resolver} from '@orion-js/resolvers'\nimport {isArray} from 'lodash'\n\nexport interface ResolverMetaParam {\n resolver: {\n params: any\n returns: Model | any\n }\n}\n\nconst resolverReturnsIsModel = (returns: Model | any): returns is Model => {\n return returns && returns.__isModel\n}\n\nexport default createModel({\n name: 'ResolverParams',\n schema: {\n name: {\n type: String\n }\n },\n resolvers: {\n params: resolver({\n returns: 'blackbox',\n resolve: async function ({resolver}: ResolverMetaParam) {\n return await serializeSchema(resolver.params)\n }\n }),\n result: resolver({\n returns: String,\n resolve: async function ({resolver}: ResolverMetaParam) {\n const returns = isArray(resolver.returns) ? resolver.returns[0] : resolver.returns\n if (resolverReturnsIsModel(returns)) return returns.name\n return\n }\n }),\n basicResultQuery: resolver({\n returns: String,\n resolve: async function ({resolver}: ResolverMetaParam) {\n const returns = isArray(resolver.returns) ? resolver.returns[0] : resolver.returns\n return await getBasicResultQuery({\n type: resolverReturnsIsModel(returns) ? returns.getSchema() : ''\n })\n }\n })\n }\n})\n","import params from './params'\n\nexport default {\n params\n}\n","import {ResolverOptions} from '@orion-js/resolvers'\n\nexport class OrionSubscription<TParams = any, ReturnType = any> {\n name: string\n params: object\n subscribe: (callParams: object, viewer: object) => {}\n returns: ReturnType\n publish: (params: TParams, data: ReturnType) => Promise<void>\n}\n\nexport type CreateOrionSubscriptionFunction = <T = any, ReturnType = any>(\n options: OrionSubscriptionOptions\n) => OrionSubscription<T, ReturnType>\n\nexport interface OrionSubscriptionsMap {\n [key: string]: OrionSubscription\n}\n\nexport interface OrionSubscriptionOptions extends Omit<ResolverOptions, 'resolve'> {\n name?: string\n}\n","import {getInstance, Service} from '@orion-js/services'\nimport {GlobalResolverResolve, ResolverOptions, resolver, Resolver} from '@orion-js/resolvers'\nimport {UserError} from '@orion-js/helpers'\nimport {getTargetMetadata} from './otherParams'\nimport {GraphQLResolveInfo} from 'graphql'\n\nexport function Resolvers(): ClassDecorator {\n return (target: any) => {\n Service()(target)\n target.prototype.service = target\n }\n}\n\nexport interface GlobalResolverPropertyDescriptor extends Omit<PropertyDecorator, 'value'> {\n value?: GlobalResolverResolve\n}\n\nexport function Query(options?: Omit<ResolverOptions<any>, 'resolve' | 'mutation'>) {\n return (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor) => {\n if (!descriptor.value) throw new Error(`You must pass resolver function to ${propertyKey}`)\n\n target.resolvers = target.resolvers || {}\n target.resolvers[propertyKey] = resolver({\n resolverId: propertyKey,\n params: getTargetMetadata(target, propertyKey, 'params'),\n returns: getTargetMetadata(target, propertyKey, 'returns'),\n middlewares: getTargetMetadata(target, propertyKey, 'middlewares'),\n ...options,\n resolve: async (params, viewer, info: GraphQLResolveInfo) => {\n const instance: any = getInstance(target.service)\n return await instance[propertyKey](params, viewer, info)\n },\n })\n }\n}\n\nexport function Mutation(options?: Omit<ResolverOptions<any>, 'resolve' | 'mutation'>) {\n return (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor) => {\n if (!descriptor.value) throw new Error(`You must pass resolver function to ${propertyKey}`)\n\n target.resolvers = target.resolvers || {}\n target.resolvers[propertyKey] = resolver({\n resolverId: propertyKey,\n params: getTargetMetadata(target, propertyKey, 'params'),\n returns: getTargetMetadata(target, propertyKey, 'returns'),\n middlewares: getTargetMetadata(target, propertyKey, 'middlewares'),\n ...options,\n mutation: true,\n resolve: async (params, viewer, info: GraphQLResolveInfo) => {\n const instance: any = getInstance(target.service)\n return await instance[propertyKey](params, viewer, info)\n },\n })\n }\n}\n\nexport function getServiceResolvers(target: any): {[key: string]: Resolver<GlobalResolverResolve>} {\n if (!target.prototype) {\n throw new UserError('You must pass a class to getResolvers')\n }\n\n return target.prototype.resolvers || {}\n}\n","import {ResolverMiddleware} from '@orion-js/resolvers'\nimport {GlobalResolverPropertyDescriptor} from './global'\nimport {ModelResolverPropertyDescriptor} from './model'\n\nfunction createRegisterResolverMetadata<TParam>(metadataKey: string, isArray = false) {\n return (metadata: TParam) => {\n return (\n target: any,\n propertyKey: string,\n descriptor: GlobalResolverPropertyDescriptor | ModelResolverPropertyDescriptor,\n ) => {\n if (!descriptor.value) throw new Error(`You must pass resolver function to ${propertyKey}`)\n\n target[metadataKey] = target[metadataKey] || {}\n if (isArray) {\n target[metadataKey][propertyKey] = target[metadataKey][propertyKey] || []\n // push at the start of the array\n target[metadataKey][propertyKey].unshift(metadata)\n } else {\n target[metadataKey][propertyKey] = metadata\n }\n }\n }\n}\n\nexport function getTargetMetadata(target: any, propertyKey: string, metadataKey: string) {\n const items = target[metadataKey] || {}\n return items[propertyKey] || []\n}\n\nexport const UseMiddleware = createRegisterResolverMetadata<ResolverMiddleware>('middlewares', true)\nexport const ResolverParams = createRegisterResolverMetadata<any>('params')\nexport const ResolverReturns = createRegisterResolverMetadata<any>('returns')\n","import {getInstance, Service} from '@orion-js/services'\nimport {\n GlobalResolverResolve,\n ResolverOptions,\n ModelResolverResolve,\n modelResolver,\n ModelResolver as ModelResolverType,\n} from '@orion-js/resolvers'\nimport {UserError} from '@orion-js/helpers'\nimport {getTargetMetadata} from './otherParams'\nimport {GraphQLResolveInfo} from 'graphql'\n\nexport interface ModelResolverPropertyDescriptor extends Omit<PropertyDecorator, 'value'> {\n value?: ModelResolverResolve\n}\n\nexport function ModelResolver(options?: Omit<ResolverOptions<any>, 'resolve' | 'middlewares'>) {\n return (target: any, propertyKey: string, descriptor: ModelResolverPropertyDescriptor) => {\n if (!descriptor.value) throw new Error(`You must pass resolver function to ${propertyKey}`)\n\n target.resolvers = target.resolvers || {}\n target.resolvers[propertyKey] = modelResolver({\n params: getTargetMetadata(target, propertyKey, 'params'),\n returns: getTargetMetadata(target, propertyKey, 'returns'),\n middlewares: getTargetMetadata(target, propertyKey, 'middlewares'),\n ...options,\n resolve: async (item, params, viewer, info: GraphQLResolveInfo) => {\n const instance: any = getInstance(target.service)\n return await instance[propertyKey](item, params, viewer, info)\n },\n })\n }\n}\n\nexport interface ModelResolversOptions {\n // the model name to add resolvers. If not specified, the model name will be the schema name\n modelName?: string\n}\n\nexport function ModelResolvers(\n typedSchema: any,\n options: ModelResolversOptions = {},\n): ClassDecorator {\n return (target: any) => {\n Service()(target)\n\n target.prototype.modelName = options.modelName || typedSchema.name\n\n if (!target.prototype.modelName) {\n throw new Error('The specified model has no name or is not a model')\n }\n\n target.prototype.typedSchema = typedSchema\n target.prototype.service = target\n\n // @ts-expect-error this is a trick to make it work in resolvers without having to call getModelForClass\n target.getModel = () => getModelForClass(target)\n }\n}\n\nexport function getServiceModelResolvers(target: any): {\n [key: string]: {\n [key: string]: ModelResolverType<GlobalResolverResolve>\n }\n} {\n if (!target.prototype) {\n throw new UserError('You must pass a class to getResolvers')\n }\n\n return {\n [target.prototype.modelName]: target.prototype.resolvers || {},\n }\n}\n","import {Container, Service} from '@orion-js/services'\nimport {UserError} from '@orion-js/helpers'\nimport {OrionSubscription, OrionSubscriptionOptions} from '../types/subscription'\nimport {subscription} from '..'\n\nexport function Subscriptions(): ClassDecorator {\n return (target: any) => {\n Service()(target)\n target.prototype.service = target\n target.prototype.serviceType = 'subscriptions'\n }\n}\n\nexport function Subscription<T = any, ReturnType = any>(options: OrionSubscriptionOptions) {\n return (object: any, propertyName: string, index?: number) => {\n const sub: OrionSubscription<T, ReturnType> = subscription({\n name: propertyName,\n ...options,\n })\n\n object.subscriptions = object.subscriptions || {}\n object.subscriptions[propertyName] = sub\n\n Container.registerHandler({\n object,\n propertyName,\n index,\n value: _containerInstance => {\n if (!object.serviceType || object.serviceType !== 'subscriptions') {\n throw new Error(\n 'You must pass a class decorated with @Subscriptions if you want to use @Subscription',\n )\n }\n\n return sub\n },\n })\n }\n}\n\nexport function getServiceSubscriptions(target: any): {\n [key: string]: OrionSubscription\n} {\n if (!target.prototype) {\n throw new UserError('You must pass a class to getSubscriptions')\n }\n\n return target.prototype.subscriptions || {}\n}\n"],"mappings":"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","names":["GraphQL","pubsub","setPubsub","newPubsub","getPubsub","name","params","hash","hashObject","channelName","createSubscription","options","subscription","name","publish","params","data","pubsub","getPubsub","channelName","getChannelName","subscribe","viewer","checkResolverPermissions","asyncIterator","error","cleanParams","returns","cleanReturns","safeSerialize","data","JSON","stringify","replace","getHTML","apolloOptions","options","GRAPHIQL_VERSION","endpointURL","subscriptionsEndpoint","queryString","query","variablesString","variables","operationName","useSubs","subscriptions","registerRoute","route","path","method","resolve","req","body","import_graphql","import_graphql","import_isPlainObject","import_isArray","import_graphql","import_schema","MAX_INT","Number","MAX_SAFE_INTEGER","MIN_INT","MIN_SAFE_INTEGER","coerceBigInt","value","TypeError","num","String","int","Math","floor","GraphQLScalarType","name","description","serialize","parseValue","parseLiteral","ast","kind","parseInt","import_graphql","GraphQLScalarType","name","serialize","GraphQLDateTime","parseValue","parseLiteral","import_graphql","identity","value","parseLiteral","ast","variables","kind","Kind","STRING","BOOLEAN","INT","FLOAT","parseFloat","OBJECT","Object","create","fields","forEach","field","name","LIST","values","map","n","NULL","VARIABLE","undefined","GraphQLScalarType","description","serialize","parseValue","GraphQLFloat","GraphQLString","GraphQLID","GraphQLBoolean","GraphQL","fieldMap","string","email","date","DateScalar","integer","BigIntScalar","number","ID","boolean","blackbox","JSONScalar","any","fieldType","name","toGraphQLType","result","then","Error","import_graphql","getStaticFields","model","schema","getSchema","keys","Object","filter","key","startsWith","map","field","private","storedModelInput","getModelInput","model","fields","name","GraphQLInputObjectType","type","Error","isArray","graphQLType","getParams","GraphQLList","_isFieldType","isPlainObject","__isModel","__model","field","getStaticFields","key","schemaType","getFieldType","getScalar","params","Object","keys","length","fields","key","type","getField","error","Error","message","import_graphql","error","data","message","name","model","hash","crypto","createHash","update","digest","substring","isOrionError","console","warn","GraphQLError","originalError","extensions","isValidationError","code","info","getInfo","errorHandler","resolver","getGraphQLType","options","model","type","returns","args","getArgs","params","resolve","item","context","info","result","error","errorHandler","getDynamicFields","model","resolvers","getResolvers","keys","Object","map","key","resolver","filter","private","getModelLoadedResolvers","model","options","modelResolvers","resolvers","name","keys","Object","map","key","resolver","filter","private","type","options","Error","isArray","graphQLType","getGraphQLType","GraphQLList","getModel","__schemaId","_isFieldType","isPlainObject","__isModel","model","__model","GraphQLObjectType","name","fields","field","getStaticFields","graphQLResolver","key","getTypeAsResolver","resolver","error","message","getDynamicFields","getModelLoadedResolvers","schemaType","getFieldType","getScalar","resolversStore","options","mutation","resolvers","filteredResolvers","Object","keys","map","key","name","resolver","filter","private","fields","resolversStore","type","getType","returns","args","getArgs","params","resolve","root","context","info","result","error","errorHandler","options","fields","getResolvers","isEmpty","GraphQLObjectType","name","import_graphql","import_isEmpty","options","fields","getResolvers","isEmpty","GraphQLObjectType","name","import_graphql","options","subscriptions","fields","key","Object","keys","subscription","name","type","getType","returns","args","getArgs","params","subscribe","root","viewer","options","subscriptions","fields","getSubscriptions","GraphQLObjectType","name","options","query","getQuery","mutation","getMutation","subscription","getSubscription","schema","GraphQLSchema","apolloError","response","error","originalError","isValidationError","validationErrors","getInfo","options","schema","buildSchema","passedOptions","omit","formatError","import_ws","global","getWebsocketViewerRef","getWebsockerViewer","connectionParams","viewer","setGetWebsockerViewer","getViewerFunc","import_http","apolloOptions","options","wsServer","subscriptions","pubsub","PubSub","setPubsub","WebSocketServer","server","getServer","path","serverCleanup","useServer","schema","context","ctx","msg","args","getWebsockerViewer","connectionParams","serverWillStart","drainServer","dispose","import_http","options","apolloOptions","getApolloOptions","app","getApp","httpServer","getServer","useGraphiql","startGraphiQL","subPlugins","startWebsocket","drainPlugins","ApolloServerPluginDrainHttpServer","server","ApolloServer","plugins","start","middleware","expressMiddleware","context","req","res","_viewer","registerRoute","route","method","path","bodyParser","resolve","viewer","next","import_resolvers","import_helpers","import_isPlainObject","import_isArray","import_schema","getParams","field","type","getModel","__schemaId","model","isArray","serialized","__graphQLType","_isFieldType","isPlainObject","__isModel","__model","Error","fields","getStaticFields","key","omit","name","schemaType","getFieldType","graphQLType","getScalar","params","getModel","__schemaId","getCleanSchema","Object","keys","length","fields","key","field","getField","serializeSchema","import_isArray","field","type","isArray","__model","model","fields","getStaticFields","push","getBasicQuery","key","join","import_resolvers","import_lodash","resolverReturnsIsModel","returns","__isModel","createModel","name","schema","type","String","resolvers","params","resolver","resolve","serializeSchema","result","isArray","basicResultQuery","getBasicResultQuery","getSchema","resolver","params","name","type","mutation","Boolean","returns","ResolverParams","resolve","viewer","resolversStore","UserError","params","GraphQL","OrionSubscription","name","params","subscribe","returns","publish","import_resolvers","import_helpers","createRegisterResolverMetadata","metadataKey","isArray","metadata","target","propertyKey","descriptor","value","Error","unshift","getTargetMetadata","items","UseMiddleware","ResolverParams","ResolverReturns","Resolvers","target","Service","prototype","service","Query","options","propertyKey","descriptor","value","Error","resolvers","resolver","resolverId","params","getTargetMetadata","returns","middlewares","resolve","viewer","info","instance","getInstance","Mutation","mutation","getServiceResolvers","UserError","import_services","import_resolvers","import_helpers","ModelResolver","options","target","propertyKey","descriptor","value","Error","resolvers","modelResolver","params","getTargetMetadata","returns","middlewares","resolve","item","viewer","info","instance","getInstance","service","ModelResolvers","typedSchema","Service","prototype","modelName","name","getModel","getModelForClass","getServiceModelResolvers","UserError","import_services","import_helpers","Subscriptions","target","Service","prototype","service","serviceType","Subscription","options","object","propertyName","index","sub","subscription","name","subscriptions","Container","registerHandler","value","_containerInstance","Error","getServiceSubscriptions","UserError"]}
@@ -0,0 +1,119 @@
1
+ import * as _orion_js_resolvers from '@orion-js/resolvers';
2
+ import { ResolverOptions, GlobalResolverResolve, Resolver, ModelResolverResolve, ModelResolver as ModelResolver$1, ResolverMiddleware } from '@orion-js/resolvers';
3
+ import { GlobalResolversMap, ModelResolversMap, Model } from '@orion-js/models';
4
+ import { express } from '@orion-js/http';
5
+ import { PubSubEngine } from 'graphql-subscriptions';
6
+ import { ApolloServerOptions } from '@apollo/server';
7
+ import { Schema } from '@orion-js/schema';
8
+ import * as graphql from 'graphql';
9
+ export { graphql as GraphQL };
10
+
11
+ declare class OrionSubscription<TParams = any, ReturnType = any> {
12
+ name: string;
13
+ params: object;
14
+ subscribe: (callParams: object, viewer: object) => {};
15
+ returns: ReturnType;
16
+ publish: (params: TParams, data: ReturnType) => Promise<void>;
17
+ }
18
+ type CreateOrionSubscriptionFunction = <T = any, ReturnType = any>(options: OrionSubscriptionOptions) => OrionSubscription<T, ReturnType>;
19
+ interface OrionSubscriptionsMap {
20
+ [key: string]: OrionSubscription;
21
+ }
22
+ interface OrionSubscriptionOptions extends Omit<ResolverOptions, 'resolve'> {
23
+ name?: string;
24
+ }
25
+
26
+ declare const createSubscription: CreateOrionSubscriptionFunction;
27
+
28
+ type ExecuteGraphQLCache = (req: express.Request, res: express.Response, viewer: object, executeQuery: () => Promise<string>) => Promise<string>;
29
+ interface ModelsResolversMap {
30
+ [key: string]: ModelResolversMap;
31
+ }
32
+ type SchemaOmits = 'schema' | 'schemaHash' | 'context' | 'useGraphiql';
33
+ interface StartGraphQLOptions extends Omit<ApolloServerOptions<any>, SchemaOmits> {
34
+ /**
35
+ * A map with all the global resolvers
36
+ */
37
+ resolvers: GlobalResolversMap;
38
+ /**
39
+ * A map with all the model resolvers. You must only add the models that you want to extend with resolvers.
40
+ */
41
+ modelResolvers?: ModelsResolversMap;
42
+ /**
43
+ * A Map with all global subscriptions
44
+ */
45
+ subscriptions?: OrionSubscriptionsMap;
46
+ /**
47
+ * A function that executes the http level cache of graphql queries
48
+ */
49
+ /**
50
+ * Should use GraphiQL. Default to true
51
+ */
52
+ useGraphiql?: boolean;
53
+ /**
54
+ * Pass another express app
55
+ */
56
+ app?: express.Application;
57
+ /**
58
+ * The pubsub provider to use. Default to the single server pubsub.
59
+ * If you are using multiple servers you must pass a pubsub provider like RedisPubSub
60
+ */
61
+ pubsub?: PubSubEngine;
62
+ }
63
+
64
+ declare function export_default$1(options: StartGraphQLOptions): Promise<void>;
65
+
66
+ declare function export_default(apolloOptions: ApolloServerOptions<any>, options: StartGraphQLOptions): void;
67
+
68
+ declare const _default$1: {
69
+ params: _orion_js_resolvers.Resolver<({ mutation, name }: any, viewer: any) => Promise<{
70
+ resolver: _orion_js_resolvers.Resolver<_orion_js_resolvers.GlobalResolverResolve, undefined>;
71
+ name: any;
72
+ }>, undefined>;
73
+ };
74
+
75
+ declare const _default: Model<any>;
76
+
77
+ declare function serializeSchema(params: any): Promise<Schema>;
78
+
79
+ declare function getBasicQuery(field: any): Promise<any>;
80
+
81
+ declare function Resolvers(): ClassDecorator;
82
+ interface GlobalResolverPropertyDescriptor extends Omit<PropertyDecorator, 'value'> {
83
+ value?: GlobalResolverResolve;
84
+ }
85
+ declare function Query(options?: Omit<ResolverOptions<any>, 'resolve' | 'mutation'>): (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor) => void;
86
+ declare function Mutation(options?: Omit<ResolverOptions<any>, 'resolve' | 'mutation'>): (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor) => void;
87
+ declare function getServiceResolvers(target: any): {
88
+ [key: string]: Resolver<GlobalResolverResolve>;
89
+ };
90
+
91
+ interface ModelResolverPropertyDescriptor extends Omit<PropertyDecorator, 'value'> {
92
+ value?: ModelResolverResolve;
93
+ }
94
+ declare function ModelResolver(options?: Omit<ResolverOptions<any>, 'resolve' | 'middlewares'>): (target: any, propertyKey: string, descriptor: ModelResolverPropertyDescriptor) => void;
95
+ interface ModelResolversOptions {
96
+ modelName?: string;
97
+ }
98
+ declare function ModelResolvers(typedSchema: any, options?: ModelResolversOptions): ClassDecorator;
99
+ declare function getServiceModelResolvers(target: any): {
100
+ [key: string]: {
101
+ [key: string]: ModelResolver$1<GlobalResolverResolve>;
102
+ };
103
+ };
104
+
105
+ declare function Subscriptions(): ClassDecorator;
106
+ declare function Subscription<T = any, ReturnType = any>(options: OrionSubscriptionOptions): (object: any, propertyName: string, index?: number) => void;
107
+ declare function getServiceSubscriptions(target: any): {
108
+ [key: string]: OrionSubscription;
109
+ };
110
+
111
+ declare function getTargetMetadata(target: any, propertyKey: string, metadataKey: string): any;
112
+ declare const UseMiddleware: (metadata: ResolverMiddleware) => (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor | ModelResolverPropertyDescriptor) => void;
113
+ declare const ResolverParams: (metadata: any) => (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor | ModelResolverPropertyDescriptor) => void;
114
+ declare const ResolverReturns: (metadata: any) => (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor | ModelResolverPropertyDescriptor) => void;
115
+
116
+ declare const getWebsockerViewer: (connectionParams: any) => Promise<any>;
117
+ declare const setGetWebsockerViewer: (getViewerFunc: (connectionParams: any) => any) => void;
118
+
119
+ export { type CreateOrionSubscriptionFunction, type ExecuteGraphQLCache, type GlobalResolverPropertyDescriptor, ModelResolver, type ModelResolverPropertyDescriptor, ModelResolvers, type ModelResolversOptions, type ModelsResolversMap, Mutation, OrionSubscription, type OrionSubscriptionOptions, type OrionSubscriptionsMap, Query, ResolverParams, _default as ResolverParamsInfo, ResolverReturns, Resolvers, type StartGraphQLOptions, Subscription, Subscriptions, UseMiddleware, getBasicQuery as getBasicResultQuery, getServiceModelResolvers, getServiceResolvers, getServiceSubscriptions, getTargetMetadata, getWebsockerViewer, _default$1 as resolversSchemas, serializeSchema, setGetWebsockerViewer, export_default$1 as startGraphQL, export_default as startGraphiQL, createSubscription as subscription };
package/dist/index.d.ts CHANGED
@@ -1,116 +1,119 @@
1
- // Generated by dts-bundle-generator v9.5.1
2
-
3
- import { ApolloServerOptions } from '@apollo/server';
1
+ import * as _orion_js_resolvers from '@orion-js/resolvers';
2
+ import { ResolverOptions, GlobalResolverResolve, Resolver, ModelResolverResolve, ModelResolver as ModelResolver$1, ResolverMiddleware } from '@orion-js/resolvers';
3
+ import { GlobalResolversMap, ModelResolversMap, Model } from '@orion-js/models';
4
4
  import { express } from '@orion-js/http';
5
- import { GlobalResolversMap, Model, ModelResolversMap } from '@orion-js/models';
6
- import { GlobalResolverResolve, ModelResolver as ModelResolverType, ModelResolverResolve, Resolver, ResolverMiddleware, ResolverOptions } from '@orion-js/resolvers';
7
- import { Schema } from '@orion-js/schema';
8
- import * as GraphQL from 'graphql';
9
5
  import { PubSubEngine } from 'graphql-subscriptions';
6
+ import { ApolloServerOptions } from '@apollo/server';
7
+ import { Schema } from '@orion-js/schema';
8
+ import * as graphql from 'graphql';
9
+ export { graphql as GraphQL };
10
10
 
11
- export declare class OrionSubscription<TParams = any, ReturnType = any> {
12
- name: string;
13
- params: object;
14
- subscribe: (callParams: object, viewer: object) => {};
15
- returns: ReturnType;
16
- publish: (params: TParams, data: ReturnType) => Promise<void>;
11
+ declare class OrionSubscription<TParams = any, ReturnType = any> {
12
+ name: string;
13
+ params: object;
14
+ subscribe: (callParams: object, viewer: object) => {};
15
+ returns: ReturnType;
16
+ publish: (params: TParams, data: ReturnType) => Promise<void>;
17
17
  }
18
- export type CreateOrionSubscriptionFunction = <T = any, ReturnType = any>(options: OrionSubscriptionOptions) => OrionSubscription<T, ReturnType>;
19
- export interface OrionSubscriptionsMap {
20
- [key: string]: OrionSubscription;
18
+ type CreateOrionSubscriptionFunction = <T = any, ReturnType = any>(options: OrionSubscriptionOptions) => OrionSubscription<T, ReturnType>;
19
+ interface OrionSubscriptionsMap {
20
+ [key: string]: OrionSubscription;
21
21
  }
22
- export interface OrionSubscriptionOptions extends Omit<ResolverOptions, "resolve"> {
23
- name?: string;
22
+ interface OrionSubscriptionOptions extends Omit<ResolverOptions, 'resolve'> {
23
+ name?: string;
24
24
  }
25
+
25
26
  declare const createSubscription: CreateOrionSubscriptionFunction;
26
- export type ExecuteGraphQLCache = (req: express.Request, res: express.Response, viewer: object, executeQuery: () => Promise<string>) => Promise<string>;
27
- export interface ModelsResolversMap {
28
- [key: string]: ModelResolversMap;
27
+
28
+ type ExecuteGraphQLCache = (req: express.Request, res: express.Response, viewer: object, executeQuery: () => Promise<string>) => Promise<string>;
29
+ interface ModelsResolversMap {
30
+ [key: string]: ModelResolversMap;
29
31
  }
30
- export type SchemaOmits = "schema" | "schemaHash" | "context" | "useGraphiql";
31
- export interface StartGraphQLOptions extends Omit<ApolloServerOptions<any>, SchemaOmits> {
32
- /**
33
- * A map with all the global resolvers
34
- */
35
- resolvers: GlobalResolversMap;
36
- /**
37
- * A map with all the model resolvers. You must only add the models that you want to extend with resolvers.
38
- */
39
- modelResolvers?: ModelsResolversMap;
40
- /**
41
- * A Map with all global subscriptions
42
- */
43
- subscriptions?: OrionSubscriptionsMap;
44
- /**
45
- * A function that executes the http level cache of graphql queries
46
- */
47
- /**
48
- * Should use GraphiQL. Default to true
49
- */
50
- useGraphiql?: boolean;
51
- /**
52
- * Pass another express app
53
- */
54
- app?: express.Application;
55
- /**
56
- * The pubsub provider to use. Default to the single server pubsub.
57
- * If you are using multiple servers you must pass a pubsub provider like RedisPubSub
58
- */
59
- pubsub?: PubSubEngine;
32
+ type SchemaOmits = 'schema' | 'schemaHash' | 'context' | 'useGraphiql';
33
+ interface StartGraphQLOptions extends Omit<ApolloServerOptions<any>, SchemaOmits> {
34
+ /**
35
+ * A map with all the global resolvers
36
+ */
37
+ resolvers: GlobalResolversMap;
38
+ /**
39
+ * A map with all the model resolvers. You must only add the models that you want to extend with resolvers.
40
+ */
41
+ modelResolvers?: ModelsResolversMap;
42
+ /**
43
+ * A Map with all global subscriptions
44
+ */
45
+ subscriptions?: OrionSubscriptionsMap;
46
+ /**
47
+ * A function that executes the http level cache of graphql queries
48
+ */
49
+ /**
50
+ * Should use GraphiQL. Default to true
51
+ */
52
+ useGraphiql?: boolean;
53
+ /**
54
+ * Pass another express app
55
+ */
56
+ app?: express.Application;
57
+ /**
58
+ * The pubsub provider to use. Default to the single server pubsub.
59
+ * If you are using multiple servers you must pass a pubsub provider like RedisPubSub
60
+ */
61
+ pubsub?: PubSubEngine;
60
62
  }
61
- declare function _default(options: StartGraphQLOptions): Promise<void>;
62
- declare function _default$1(apolloOptions: ApolloServerOptions<any>, options: StartGraphQLOptions): void;
63
- declare const _default$2: {
64
- params: import("@orion-js/resolvers").Resolver<({ mutation, name }: any, viewer: any) => Promise<{
65
- resolver: import("@orion-js/models").Resolver<import("@orion-js/models").GlobalResolverResolve, undefined>;
66
- name: any;
67
- }>, undefined>;
63
+
64
+ declare function export_default$1(options: StartGraphQLOptions): Promise<void>;
65
+
66
+ declare function export_default(apolloOptions: ApolloServerOptions<any>, options: StartGraphQLOptions): void;
67
+
68
+ declare const _default$1: {
69
+ params: _orion_js_resolvers.Resolver<({ mutation, name }: any, viewer: any) => Promise<{
70
+ resolver: _orion_js_resolvers.Resolver<_orion_js_resolvers.GlobalResolverResolve, undefined>;
71
+ name: any;
72
+ }>, undefined>;
68
73
  };
69
- declare const _default$3: Model<any>;
70
- export function serializeSchema(params: any): Promise<Schema>;
74
+
75
+ declare const _default: Model<any>;
76
+
77
+ declare function serializeSchema(params: any): Promise<Schema>;
78
+
71
79
  declare function getBasicQuery(field: any): Promise<any>;
72
- export declare function Resolvers(): ClassDecorator;
73
- export interface GlobalResolverPropertyDescriptor extends Omit<PropertyDecorator, "value"> {
74
- value?: GlobalResolverResolve;
80
+
81
+ declare function Resolvers(): ClassDecorator;
82
+ interface GlobalResolverPropertyDescriptor extends Omit<PropertyDecorator, 'value'> {
83
+ value?: GlobalResolverResolve;
75
84
  }
76
- export declare function Query(options?: Omit<ResolverOptions<any>, "resolve" | "mutation">): (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor) => void;
77
- export declare function Mutation(options?: Omit<ResolverOptions<any>, "resolve" | "mutation">): (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor) => void;
78
- export declare function getServiceResolvers(target: any): {
79
- [key: string]: Resolver<GlobalResolverResolve>;
85
+ declare function Query(options?: Omit<ResolverOptions<any>, 'resolve' | 'mutation'>): (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor) => void;
86
+ declare function Mutation(options?: Omit<ResolverOptions<any>, 'resolve' | 'mutation'>): (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor) => void;
87
+ declare function getServiceResolvers(target: any): {
88
+ [key: string]: Resolver<GlobalResolverResolve>;
80
89
  };
81
- export interface ModelResolverPropertyDescriptor extends Omit<PropertyDecorator, "value"> {
82
- value?: ModelResolverResolve;
90
+
91
+ interface ModelResolverPropertyDescriptor extends Omit<PropertyDecorator, 'value'> {
92
+ value?: ModelResolverResolve;
83
93
  }
84
- export declare function ModelResolver(options?: Omit<ResolverOptions<any>, "resolve" | "middlewares">): (target: any, propertyKey: string, descriptor: ModelResolverPropertyDescriptor) => void;
85
- export interface ModelResolversOptions {
86
- modelName?: string;
94
+ declare function ModelResolver(options?: Omit<ResolverOptions<any>, 'resolve' | 'middlewares'>): (target: any, propertyKey: string, descriptor: ModelResolverPropertyDescriptor) => void;
95
+ interface ModelResolversOptions {
96
+ modelName?: string;
87
97
  }
88
- export declare function ModelResolvers(typedSchema: any, options?: ModelResolversOptions): ClassDecorator;
89
- export declare function getServiceModelResolvers(target: any): {
90
- [key: string]: {
91
- [key: string]: ModelResolverType<GlobalResolverResolve>;
92
- };
93
- };
94
- export declare function Subscriptions(): ClassDecorator;
95
- export declare function Subscription<T = any, ReturnType = any>(options: OrionSubscriptionOptions): (object: any, propertyName: string, index?: number) => void;
96
- export declare function getServiceSubscriptions(target: any): {
97
- [key: string]: OrionSubscription;
98
+ declare function ModelResolvers(typedSchema: any, options?: ModelResolversOptions): ClassDecorator;
99
+ declare function getServiceModelResolvers(target: any): {
100
+ [key: string]: {
101
+ [key: string]: ModelResolver$1<GlobalResolverResolve>;
102
+ };
98
103
  };
99
- export declare function getTargetMetadata(target: any, propertyKey: string, metadataKey: string): any;
100
- export declare const UseMiddleware: (metadata: ResolverMiddleware) => (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor | ModelResolverPropertyDescriptor) => void;
101
- export declare const ResolverParams: (metadata: any) => (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor | ModelResolverPropertyDescriptor) => void;
102
- export declare const ResolverReturns: (metadata: any) => (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor | ModelResolverPropertyDescriptor) => void;
103
- export declare const getWebsockerViewer: (connectionParams: any) => Promise<any>;
104
- export declare const setGetWebsockerViewer: (getViewerFunc: (connectionParams: any) => any) => void;
105
104
 
106
- export {
107
- GraphQL,
108
- _default as startGraphQL,
109
- _default$1 as startGraphiQL,
110
- _default$2 as resolversSchemas,
111
- _default$3 as ResolverParamsInfo,
112
- createSubscription as subscription,
113
- getBasicQuery as getBasicResultQuery,
105
+ declare function Subscriptions(): ClassDecorator;
106
+ declare function Subscription<T = any, ReturnType = any>(options: OrionSubscriptionOptions): (object: any, propertyName: string, index?: number) => void;
107
+ declare function getServiceSubscriptions(target: any): {
108
+ [key: string]: OrionSubscription;
114
109
  };
115
110
 
116
- export {};
111
+ declare function getTargetMetadata(target: any, propertyKey: string, metadataKey: string): any;
112
+ declare const UseMiddleware: (metadata: ResolverMiddleware) => (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor | ModelResolverPropertyDescriptor) => void;
113
+ declare const ResolverParams: (metadata: any) => (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor | ModelResolverPropertyDescriptor) => void;
114
+ declare const ResolverReturns: (metadata: any) => (target: any, propertyKey: string, descriptor: GlobalResolverPropertyDescriptor | ModelResolverPropertyDescriptor) => void;
115
+
116
+ declare const getWebsockerViewer: (connectionParams: any) => Promise<any>;
117
+ declare const setGetWebsockerViewer: (getViewerFunc: (connectionParams: any) => any) => void;
118
+
119
+ export { type CreateOrionSubscriptionFunction, type ExecuteGraphQLCache, type GlobalResolverPropertyDescriptor, ModelResolver, type ModelResolverPropertyDescriptor, ModelResolvers, type ModelResolversOptions, type ModelsResolversMap, Mutation, OrionSubscription, type OrionSubscriptionOptions, type OrionSubscriptionsMap, Query, ResolverParams, _default as ResolverParamsInfo, ResolverReturns, Resolvers, type StartGraphQLOptions, Subscription, Subscriptions, UseMiddleware, getBasicQuery as getBasicResultQuery, getServiceModelResolvers, getServiceResolvers, getServiceSubscriptions, getTargetMetadata, getWebsockerViewer, _default$1 as resolversSchemas, serializeSchema, setGetWebsockerViewer, export_default$1 as startGraphQL, export_default as startGraphiQL, createSubscription as subscription };