@payloadcms/graphql 3.0.0-beta.53 → 3.0.0-beta.54
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/dist/bin/generateSchema.js.map +1 -1
- package/dist/bin/index.js.map +1 -1
- package/dist/exports/types.d.ts +2 -0
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js +2 -0
- package/dist/exports/types.js.map +1 -1
- package/dist/exports/utilities.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/packages/graphql-query-complexity/QueryComplexity.js.map +1 -1
- package/dist/packages/graphql-query-complexity/createComplexityRule.js.map +1 -1
- package/dist/packages/graphql-query-complexity/estimators/fieldExtensions/index.js.map +1 -1
- package/dist/packages/graphql-query-complexity/estimators/simple/index.js.map +1 -1
- package/dist/packages/graphql-query-complexity/index.js.map +1 -1
- package/dist/packages/graphql-type-json/index.js.map +1 -1
- package/dist/resolvers/auth/access.js.map +1 -1
- package/dist/resolvers/auth/forgotPassword.js.map +1 -1
- package/dist/resolvers/auth/init.js.map +1 -1
- package/dist/resolvers/auth/login.js.map +1 -1
- package/dist/resolvers/auth/logout.js.map +1 -1
- package/dist/resolvers/auth/me.js.map +1 -1
- package/dist/resolvers/auth/refresh.js.map +1 -1
- package/dist/resolvers/auth/resetPassword.js.map +1 -1
- package/dist/resolvers/auth/unlock.js.map +1 -1
- package/dist/resolvers/auth/verifyEmail.js.map +1 -1
- package/dist/resolvers/collections/count.js.map +1 -1
- package/dist/resolvers/collections/create.d.ts +5 -6
- package/dist/resolvers/collections/create.d.ts.map +1 -1
- package/dist/resolvers/collections/create.js.map +1 -1
- package/dist/resolvers/collections/delete.d.ts +4 -4
- package/dist/resolvers/collections/delete.d.ts.map +1 -1
- package/dist/resolvers/collections/delete.js.map +1 -1
- package/dist/resolvers/collections/docAccess.js.map +1 -1
- package/dist/resolvers/collections/duplicate.d.ts +4 -4
- package/dist/resolvers/collections/duplicate.d.ts.map +1 -1
- package/dist/resolvers/collections/duplicate.js.map +1 -1
- package/dist/resolvers/collections/find.js.map +1 -1
- package/dist/resolvers/collections/findByID.d.ts +4 -4
- package/dist/resolvers/collections/findByID.d.ts.map +1 -1
- package/dist/resolvers/collections/findByID.js.map +1 -1
- package/dist/resolvers/collections/findVersionByID.js.map +1 -1
- package/dist/resolvers/collections/findVersions.js.map +1 -1
- package/dist/resolvers/collections/restoreVersion.js.map +1 -1
- package/dist/resolvers/collections/update.d.ts +5 -5
- package/dist/resolvers/collections/update.d.ts.map +1 -1
- package/dist/resolvers/collections/update.js.map +1 -1
- package/dist/resolvers/globals/docAccess.js.map +1 -1
- package/dist/resolvers/globals/findOne.js.map +1 -1
- package/dist/resolvers/globals/findVersionByID.js.map +1 -1
- package/dist/resolvers/globals/findVersions.js.map +1 -1
- package/dist/resolvers/globals/index.js.map +1 -1
- package/dist/resolvers/globals/restoreVersion.js.map +1 -1
- package/dist/resolvers/globals/update.d.ts +5 -5
- package/dist/resolvers/globals/update.d.ts.map +1 -1
- package/dist/resolvers/globals/update.js.map +1 -1
- package/dist/resolvers/types.js.map +1 -1
- package/dist/schema/buildFallbackLocaleInputType.js.map +1 -1
- package/dist/schema/buildLocaleInputType.js.map +1 -1
- package/dist/schema/buildMutationInputType.d.ts.map +1 -1
- package/dist/schema/buildMutationInputType.js.map +1 -1
- package/dist/schema/buildObjectType.js.map +1 -1
- package/dist/schema/buildPaginatedListType.d.ts +1 -2
- package/dist/schema/buildPaginatedListType.d.ts.map +1 -1
- package/dist/schema/buildPaginatedListType.js +1 -2
- package/dist/schema/buildPaginatedListType.js.map +1 -1
- package/dist/schema/buildPoliciesType.js.map +1 -1
- package/dist/schema/buildWhereInputType.js.map +1 -1
- package/dist/schema/fieldToWhereInputSchemaMap.js.map +1 -1
- package/dist/schema/initCollections.js +1 -1
- package/dist/schema/initCollections.js.map +1 -1
- package/dist/schema/initGlobals.js +1 -1
- package/dist/schema/initGlobals.js.map +1 -1
- package/dist/schema/isFieldNullable.js.map +1 -1
- package/dist/schema/operators.js.map +1 -1
- package/dist/schema/recursivelyBuildNestedPaths.js.map +1 -1
- package/dist/schema/withNullableType.js.map +1 -1
- package/dist/schema/withOperators.js.map +1 -1
- package/dist/utilities/combineParentName.js.map +1 -1
- package/dist/utilities/formatName.js.map +1 -1
- package/dist/utilities/formatName.spec.js.map +1 -1
- package/dist/utilities/formatOptions.js.map +1 -1
- package/dist/utilities/getCheckIfLocaleObject.js.map +1 -1
- package/dist/utilities/groupOrTabHasRequiredSubfield.js.map +1 -1
- package/dist/utilities/uppercase.js.map +1 -1
- package/dist/utilities/wrapCustomResolver.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bin/generateSchema.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-floating-promises */\nimport type { SanitizedConfig } from 'payload'\n\nimport fs from 'fs'\nimport { printSchema } from 'graphql'\n\nimport { configToSchema } from '../index.js'\nexport function generateSchema(config: SanitizedConfig): void {\n const outputFile = process.env.PAYLOAD_GRAPHQL_SCHEMA_PATH || config.graphQL.schemaOutputFile\n\n const { schema } = configToSchema(config)\n\n fs.writeFileSync(outputFile, printSchema(schema))\n}\n"],"names":["fs","printSchema","configToSchema","generateSchema","config","outputFile","process","env","PAYLOAD_GRAPHQL_SCHEMA_PATH","graphQL","schemaOutputFile","schema","writeFileSync"],"
|
|
1
|
+
{"version":3,"sources":["../../src/bin/generateSchema.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-floating-promises */\nimport type { SanitizedConfig } from 'payload'\n\nimport fs from 'fs'\nimport { printSchema } from 'graphql'\n\nimport { configToSchema } from '../index.js'\nexport function generateSchema(config: SanitizedConfig): void {\n const outputFile = process.env.PAYLOAD_GRAPHQL_SCHEMA_PATH || config.graphQL.schemaOutputFile\n\n const { schema } = configToSchema(config)\n\n fs.writeFileSync(outputFile, printSchema(schema))\n}\n"],"names":["fs","printSchema","configToSchema","generateSchema","config","outputFile","process","env","PAYLOAD_GRAPHQL_SCHEMA_PATH","graphQL","schemaOutputFile","schema","writeFileSync"],"mappings":"AAAA,0DAA0D,GAG1D,OAAOA,QAAQ,KAAI;AACnB,SAASC,WAAW,QAAQ,UAAS;AAErC,SAASC,cAAc,QAAQ,cAAa;AAC5C,OAAO,SAASC,eAAeC,MAAuB;IACpD,MAAMC,aAAaC,QAAQC,GAAG,CAACC,2BAA2B,IAAIJ,OAAOK,OAAO,CAACC,gBAAgB;IAE7F,MAAM,EAAEC,MAAM,EAAE,GAAGT,eAAeE;IAElCJ,GAAGY,aAAa,CAACP,YAAYJ,YAAYU;AAC3C"}
|
package/dist/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bin/index.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport minimist from 'minimist'\nimport { findConfig, importConfig, loadEnv } from 'payload/node'\n\nimport { generateSchema } from './generateSchema.js'\n\nexport const bin = async () => {\n loadEnv()\n const configPath = findConfig()\n const config = await importConfig(configPath)\n\n const args = minimist(process.argv.slice(2))\n const script = (typeof args._[0] === 'string' ? args._[0] : '').toLowerCase()\n\n if (script === 'generate:schema') {\n return generateSchema(config)\n }\n\n console.log(`Unknown script: \"${script}\".`)\n process.exit(1)\n}\n"],"names":["minimist","findConfig","importConfig","loadEnv","generateSchema","bin","configPath","config","args","process","argv","slice","script","_","toLowerCase","console","log","exit"],"
|
|
1
|
+
{"version":3,"sources":["../../src/bin/index.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport minimist from 'minimist'\nimport { findConfig, importConfig, loadEnv } from 'payload/node'\n\nimport { generateSchema } from './generateSchema.js'\n\nexport const bin = async () => {\n loadEnv()\n const configPath = findConfig()\n const config = await importConfig(configPath)\n\n const args = minimist(process.argv.slice(2))\n const script = (typeof args._[0] === 'string' ? args._[0] : '').toLowerCase()\n\n if (script === 'generate:schema') {\n return generateSchema(config)\n }\n\n console.log(`Unknown script: \"${script}\".`)\n process.exit(1)\n}\n"],"names":["minimist","findConfig","importConfig","loadEnv","generateSchema","bin","configPath","config","args","process","argv","slice","script","_","toLowerCase","console","log","exit"],"mappings":"AAAA,6BAA6B,GAC7B,OAAOA,cAAc,WAAU;AAC/B,SAASC,UAAU,EAAEC,YAAY,EAAEC,OAAO,QAAQ,eAAc;AAEhE,SAASC,cAAc,QAAQ,sBAAqB;AAEpD,OAAO,MAAMC,MAAM;IACjBF;IACA,MAAMG,aAAaL;IACnB,MAAMM,SAAS,MAAML,aAAaI;IAElC,MAAME,OAAOR,SAASS,QAAQC,IAAI,CAACC,KAAK,CAAC;IACzC,MAAMC,SAAS,AAAC,CAAA,OAAOJ,KAAKK,CAAC,CAAC,EAAE,KAAK,WAAWL,KAAKK,CAAC,CAAC,EAAE,GAAG,EAAC,EAAGC,WAAW;IAE3E,IAAIF,WAAW,mBAAmB;QAChC,OAAOR,eAAeG;IACxB;IAEAQ,QAAQC,GAAG,CAAC,CAAC,iBAAiB,EAAEJ,OAAO,EAAE,CAAC;IAC1CH,QAAQQ,IAAI,CAAC;AACf,EAAC"}
|
package/dist/exports/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/exports/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/exports/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,SAAS,CAAA"}
|
package/dist/exports/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/types.ts"],"sourcesContent":["export { GraphQLJSON, GraphQLJSONObject } from '../packages/graphql-type-json/index.js'\n"],"names":["GraphQLJSON","GraphQLJSONObject"
|
|
1
|
+
{"version":3,"sources":["../../src/exports/types.ts"],"sourcesContent":["export { GraphQLJSON, GraphQLJSONObject } from '../packages/graphql-type-json/index.js'\nexport { buildPaginatedListType } from '../schema/buildPaginatedListType.js'\nexport { default as GraphQL } from 'graphql'\n"],"names":["GraphQLJSON","GraphQLJSONObject","buildPaginatedListType","default","GraphQL"],"mappings":"AAAA,SAASA,WAAW,EAAEC,iBAAiB,QAAQ,yCAAwC;AACvF,SAASC,sBAAsB,QAAQ,sCAAqC;AAC5E,SAASC,WAAWC,OAAO,QAAQ,UAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/utilities.ts"],"sourcesContent":["export { generateSchema } from '../bin/generateSchema.js'\nexport { buildObjectType } from '../schema/buildObjectType.js'\n"],"names":["generateSchema","buildObjectType"],"
|
|
1
|
+
{"version":3,"sources":["../../src/exports/utilities.ts"],"sourcesContent":["export { generateSchema } from '../bin/generateSchema.js'\nexport { buildObjectType } from '../schema/buildObjectType.js'\n"],"names":["generateSchema","buildObjectType"],"mappings":"AAAA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,eAAe,QAAQ,+BAA8B"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { OperationArgs } from 'graphql-http'\nimport type { GraphQLInfo, SanitizedConfig } from 'payload'\n\nimport * as GraphQL from 'graphql'\n\nimport {\n createComplexityRule,\n fieldExtensionsEstimator,\n simpleEstimator,\n} from './packages/graphql-query-complexity/index.js'\nimport accessResolver from './resolvers/auth/access.js'\nimport buildFallbackLocaleInputType from './schema/buildFallbackLocaleInputType.js'\nimport buildLocaleInputType from './schema/buildLocaleInputType.js'\nimport buildPoliciesType from './schema/buildPoliciesType.js'\nimport initCollections from './schema/initCollections.js'\nimport initGlobals from './schema/initGlobals.js'\nimport { wrapCustomFields } from './utilities/wrapCustomResolver.js'\n\nexport function configToSchema(config: SanitizedConfig): {\n schema: GraphQL.GraphQLSchema\n validationRules: (args: OperationArgs<any>) => GraphQL.ValidationRule[]\n} {\n const collections = config.collections.reduce((acc, collection) => {\n acc[collection.slug] = {\n config: collection,\n }\n\n return acc\n }, {})\n\n const globals = {\n config: config.globals,\n }\n\n const graphqlResult: GraphQLInfo = {\n Mutation: {\n name: 'Mutation',\n fields: {},\n },\n Query: {\n name: 'Query',\n fields: {},\n },\n collections,\n globals,\n types: {\n arrayTypes: {},\n blockInputTypes: {},\n blockTypes: {},\n groupTypes: {},\n tabTypes: {},\n },\n }\n\n if (config.localization) {\n graphqlResult.types['localeInputType'] = buildLocaleInputType(config.localization)\n graphqlResult.types['fallbackLocaleInputType'] = buildFallbackLocaleInputType(\n config.localization,\n )\n }\n\n initCollections({ config, graphqlResult })\n initGlobals({ config, graphqlResult })\n\n graphqlResult.Query.fields['Access'] = {\n type: buildPoliciesType(config),\n resolve: accessResolver(config),\n }\n\n if (typeof config.graphQL.queries === 'function') {\n const customQueries = config.graphQL.queries(GraphQL, {\n ...graphqlResult,\n config,\n })\n graphqlResult.Query = {\n ...graphqlResult.Query,\n fields: {\n ...graphqlResult.Query.fields,\n ...wrapCustomFields((customQueries || {}) as never),\n },\n }\n }\n\n if (typeof config.graphQL.mutations === 'function') {\n const customMutations = config.graphQL.mutations(GraphQL, {\n ...graphqlResult,\n config,\n })\n graphqlResult.Mutation = {\n ...graphqlResult.Mutation,\n fields: {\n ...graphqlResult.Mutation.fields,\n ...wrapCustomFields((customMutations || {}) as never),\n },\n }\n }\n\n const query = new GraphQL.GraphQLObjectType(graphqlResult.Query)\n const mutation = new GraphQL.GraphQLObjectType(graphqlResult.Mutation)\n\n const schemaToCreate = {\n mutation,\n query,\n }\n\n const schema = new GraphQL.GraphQLSchema(schemaToCreate)\n\n const validationRules = (args) => [\n createComplexityRule({\n estimators: [\n fieldExtensionsEstimator(),\n simpleEstimator({ defaultComplexity: 1 }), // Fallback if complexity not set\n ],\n maximumComplexity: config.graphQL.maxComplexity,\n variables: args.variableValues,\n // onComplete: (complexity) => { console.log('Query Complexity:', complexity); },\n }),\n ]\n\n return {\n schema,\n validationRules,\n }\n}\n"],"names":["GraphQL","createComplexityRule","fieldExtensionsEstimator","simpleEstimator","accessResolver","buildFallbackLocaleInputType","buildLocaleInputType","buildPoliciesType","initCollections","initGlobals","wrapCustomFields","configToSchema","config","collections","reduce","acc","collection","slug","globals","graphqlResult","Mutation","name","fields","Query","types","arrayTypes","blockInputTypes","blockTypes","groupTypes","tabTypes","localization","type","resolve","graphQL","queries","customQueries","mutations","customMutations","query","GraphQLObjectType","mutation","schemaToCreate","schema","GraphQLSchema","validationRules","args","estimators","defaultComplexity","maximumComplexity","maxComplexity","variables","variableValues"],"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { OperationArgs } from 'graphql-http'\nimport type { GraphQLInfo, SanitizedConfig } from 'payload'\n\nimport * as GraphQL from 'graphql'\n\nimport {\n createComplexityRule,\n fieldExtensionsEstimator,\n simpleEstimator,\n} from './packages/graphql-query-complexity/index.js'\nimport accessResolver from './resolvers/auth/access.js'\nimport buildFallbackLocaleInputType from './schema/buildFallbackLocaleInputType.js'\nimport buildLocaleInputType from './schema/buildLocaleInputType.js'\nimport buildPoliciesType from './schema/buildPoliciesType.js'\nimport initCollections from './schema/initCollections.js'\nimport initGlobals from './schema/initGlobals.js'\nimport { wrapCustomFields } from './utilities/wrapCustomResolver.js'\n\nexport function configToSchema(config: SanitizedConfig): {\n schema: GraphQL.GraphQLSchema\n validationRules: (args: OperationArgs<any>) => GraphQL.ValidationRule[]\n} {\n const collections = config.collections.reduce((acc, collection) => {\n acc[collection.slug] = {\n config: collection,\n }\n\n return acc\n }, {})\n\n const globals = {\n config: config.globals,\n }\n\n const graphqlResult: GraphQLInfo = {\n Mutation: {\n name: 'Mutation',\n fields: {},\n },\n Query: {\n name: 'Query',\n fields: {},\n },\n collections,\n globals,\n types: {\n arrayTypes: {},\n blockInputTypes: {},\n blockTypes: {},\n groupTypes: {},\n tabTypes: {},\n },\n }\n\n if (config.localization) {\n graphqlResult.types['localeInputType'] = buildLocaleInputType(config.localization)\n graphqlResult.types['fallbackLocaleInputType'] = buildFallbackLocaleInputType(\n config.localization,\n )\n }\n\n initCollections({ config, graphqlResult })\n initGlobals({ config, graphqlResult })\n\n graphqlResult.Query.fields['Access'] = {\n type: buildPoliciesType(config),\n resolve: accessResolver(config),\n }\n\n if (typeof config.graphQL.queries === 'function') {\n const customQueries = config.graphQL.queries(GraphQL, {\n ...graphqlResult,\n config,\n })\n graphqlResult.Query = {\n ...graphqlResult.Query,\n fields: {\n ...graphqlResult.Query.fields,\n ...wrapCustomFields((customQueries || {}) as never),\n },\n }\n }\n\n if (typeof config.graphQL.mutations === 'function') {\n const customMutations = config.graphQL.mutations(GraphQL, {\n ...graphqlResult,\n config,\n })\n graphqlResult.Mutation = {\n ...graphqlResult.Mutation,\n fields: {\n ...graphqlResult.Mutation.fields,\n ...wrapCustomFields((customMutations || {}) as never),\n },\n }\n }\n\n const query = new GraphQL.GraphQLObjectType(graphqlResult.Query)\n const mutation = new GraphQL.GraphQLObjectType(graphqlResult.Mutation)\n\n const schemaToCreate = {\n mutation,\n query,\n }\n\n const schema = new GraphQL.GraphQLSchema(schemaToCreate)\n\n const validationRules = (args) => [\n createComplexityRule({\n estimators: [\n fieldExtensionsEstimator(),\n simpleEstimator({ defaultComplexity: 1 }), // Fallback if complexity not set\n ],\n maximumComplexity: config.graphQL.maxComplexity,\n variables: args.variableValues,\n // onComplete: (complexity) => { console.log('Query Complexity:', complexity); },\n }),\n ]\n\n return {\n schema,\n validationRules,\n }\n}\n"],"names":["GraphQL","createComplexityRule","fieldExtensionsEstimator","simpleEstimator","accessResolver","buildFallbackLocaleInputType","buildLocaleInputType","buildPoliciesType","initCollections","initGlobals","wrapCustomFields","configToSchema","config","collections","reduce","acc","collection","slug","globals","graphqlResult","Mutation","name","fields","Query","types","arrayTypes","blockInputTypes","blockTypes","groupTypes","tabTypes","localization","type","resolve","graphQL","queries","customQueries","mutations","customMutations","query","GraphQLObjectType","mutation","schemaToCreate","schema","GraphQLSchema","validationRules","args","estimators","defaultComplexity","maximumComplexity","maxComplexity","variables","variableValues"],"mappings":"AAAA,oCAAoC,GAIpC,YAAYA,aAAa,UAAS;AAElC,SACEC,oBAAoB,EACpBC,wBAAwB,EACxBC,eAAe,QACV,+CAA8C;AACrD,OAAOC,oBAAoB,6BAA4B;AACvD,OAAOC,kCAAkC,2CAA0C;AACnF,OAAOC,0BAA0B,mCAAkC;AACnE,OAAOC,uBAAuB,gCAA+B;AAC7D,OAAOC,qBAAqB,8BAA6B;AACzD,OAAOC,iBAAiB,0BAAyB;AACjD,SAASC,gBAAgB,QAAQ,oCAAmC;AAEpE,OAAO,SAASC,eAAeC,MAAuB;IAIpD,MAAMC,cAAcD,OAAOC,WAAW,CAACC,MAAM,CAAC,CAACC,KAAKC;QAClDD,GAAG,CAACC,WAAWC,IAAI,CAAC,GAAG;YACrBL,QAAQI;QACV;QAEA,OAAOD;IACT,GAAG,CAAC;IAEJ,MAAMG,UAAU;QACdN,QAAQA,OAAOM,OAAO;IACxB;IAEA,MAAMC,gBAA6B;QACjCC,UAAU;YACRC,MAAM;YACNC,QAAQ,CAAC;QACX;QACAC,OAAO;YACLF,MAAM;YACNC,QAAQ,CAAC;QACX;QACAT;QACAK;QACAM,OAAO;YACLC,YAAY,CAAC;YACbC,iBAAiB,CAAC;YAClBC,YAAY,CAAC;YACbC,YAAY,CAAC;YACbC,UAAU,CAAC;QACb;IACF;IAEA,IAAIjB,OAAOkB,YAAY,EAAE;QACvBX,cAAcK,KAAK,CAAC,kBAAkB,GAAGlB,qBAAqBM,OAAOkB,YAAY;QACjFX,cAAcK,KAAK,CAAC,0BAA0B,GAAGnB,6BAC/CO,OAAOkB,YAAY;IAEvB;IAEAtB,gBAAgB;QAAEI;QAAQO;IAAc;IACxCV,YAAY;QAAEG;QAAQO;IAAc;IAEpCA,cAAcI,KAAK,CAACD,MAAM,CAAC,SAAS,GAAG;QACrCS,MAAMxB,kBAAkBK;QACxBoB,SAAS5B,eAAeQ;IAC1B;IAEA,IAAI,OAAOA,OAAOqB,OAAO,CAACC,OAAO,KAAK,YAAY;QAChD,MAAMC,gBAAgBvB,OAAOqB,OAAO,CAACC,OAAO,CAAClC,SAAS;YACpD,GAAGmB,aAAa;YAChBP;QACF;QACAO,cAAcI,KAAK,GAAG;YACpB,GAAGJ,cAAcI,KAAK;YACtBD,QAAQ;gBACN,GAAGH,cAAcI,KAAK,CAACD,MAAM;gBAC7B,GAAGZ,iBAAkByB,iBAAiB,CAAC,EAAY;YACrD;QACF;IACF;IAEA,IAAI,OAAOvB,OAAOqB,OAAO,CAACG,SAAS,KAAK,YAAY;QAClD,MAAMC,kBAAkBzB,OAAOqB,OAAO,CAACG,SAAS,CAACpC,SAAS;YACxD,GAAGmB,aAAa;YAChBP;QACF;QACAO,cAAcC,QAAQ,GAAG;YACvB,GAAGD,cAAcC,QAAQ;YACzBE,QAAQ;gBACN,GAAGH,cAAcC,QAAQ,CAACE,MAAM;gBAChC,GAAGZ,iBAAkB2B,mBAAmB,CAAC,EAAY;YACvD;QACF;IACF;IAEA,MAAMC,QAAQ,IAAItC,QAAQuC,iBAAiB,CAACpB,cAAcI,KAAK;IAC/D,MAAMiB,WAAW,IAAIxC,QAAQuC,iBAAiB,CAACpB,cAAcC,QAAQ;IAErE,MAAMqB,iBAAiB;QACrBD;QACAF;IACF;IAEA,MAAMI,SAAS,IAAI1C,QAAQ2C,aAAa,CAACF;IAEzC,MAAMG,kBAAkB,CAACC,OAAS;YAChC5C,qBAAqB;gBACnB6C,YAAY;oBACV5C;oBACAC,gBAAgB;wBAAE4C,mBAAmB;oBAAE;iBACxC;gBACDC,mBAAmBpC,OAAOqB,OAAO,CAACgB,aAAa;gBAC/CC,WAAWL,KAAKM,cAAc;YAEhC;SACD;IAED,OAAO;QACLT;QACAE;IACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/graphql-query-complexity/QueryComplexity.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n/**\n * Created by Ivo Meißner on 28.07.17.\n */\n\nimport type {\n DocumentNode,\n FieldNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n GraphQLCompositeType,\n GraphQLDirective,\n GraphQLField,\n GraphQLFieldMap,\n GraphQLNamedType,\n GraphQLSchema,\n GraphQLUnionType,\n InlineFragmentNode,\n OperationDefinitionNode,\n} from 'graphql'\n\nimport {\n GraphQLError,\n GraphQLInterfaceType,\n GraphQLObjectType,\n Kind,\n TypeInfo,\n ValidationContext,\n getNamedType,\n isAbstractType,\n isCompositeType,\n visit,\n visitWithTypeInfo,\n} from 'graphql'\nimport {\n getArgumentValues,\n getDirectiveValues,\n getVariableValues,\n} from 'graphql/execution/values.js'\n\nexport type ComplexityEstimatorArgs = {\n args: { [key: string]: any }\n childComplexity: number\n context?: Record<string, any>\n field: GraphQLField<any, any>\n node: FieldNode\n type: GraphQLCompositeType\n}\n\nexport type ComplexityEstimator = (options: ComplexityEstimatorArgs) => number | void\n\n// Complexity can be anything that is supported by the configured estimators\nexport type Complexity = any\n\n// Map of complexities for possible types (of Union, Interface types)\ntype ComplexityMap = {\n [typeName: string]: number\n}\n\nexport interface QueryComplexityOptions {\n // Pass request context to the estimators via estimationContext\n context?: Record<string, any>\n\n // The query variables. This is needed because the variables are not available\n // Optional function to create a custom error\n createError?: (max: number, actual: number) => GraphQLError\n\n // An array of complexity estimators to use for estimating the complexity\n estimators: Array<ComplexityEstimator>\n\n // Optional callback function to retrieve the determined query complexity\n // Will be invoked whether the query is rejected or not\n // The maximum allowed query complexity, queries above this threshold will be rejected\n maximumComplexity: number\n\n // This can be used for logging or to implement rate limiting\n onComplete?: (complexity: number) => void\n\n // specify operation name only when pass multi-operation documents\n operationName?: string\n\n // in the visitor of the graphql-js library\n variables?: Record<string, any>\n}\n\nfunction queryComplexityMessage(max: number, actual: number): string {\n return `The query exceeds the maximum complexity of ${max}. ` + `Actual complexity is ${actual}`\n}\n\nexport function getComplexity(options: {\n context?: Record<string, any>\n estimators: ComplexityEstimator[]\n operationName?: string\n query: DocumentNode\n schema: GraphQLSchema\n variables?: Record<string, any>\n}): number {\n const typeInfo = new TypeInfo(options.schema)\n\n const errors: GraphQLError[] = []\n const context = new ValidationContext(options.schema, options.query, typeInfo, (error) =>\n errors.push(error),\n )\n const visitor = new QueryComplexity(context, {\n // Maximum complexity does not matter since we're only interested in the calculated complexity.\n context: options.context,\n estimators: options.estimators,\n maximumComplexity: Infinity,\n operationName: options.operationName,\n variables: options.variables,\n })\n\n visit(options.query, visitWithTypeInfo(typeInfo, visitor))\n\n // Throw first error if any\n if (errors.length) {\n throw errors.pop()\n }\n\n return visitor.complexity\n}\n\nexport default class QueryComplexity {\n OperationDefinition: Record<string, any>\n complexity: number\n context: ValidationContext\n estimators: Array<ComplexityEstimator>\n includeDirectiveDef: GraphQLDirective\n options: QueryComplexityOptions\n requestContext?: Record<string, any>\n skipDirectiveDef: GraphQLDirective\n variableValues: Record<string, any>\n\n constructor(context: ValidationContext, options: QueryComplexityOptions) {\n if (!(typeof options.maximumComplexity === 'number' && options.maximumComplexity > 0)) {\n throw new Error('Maximum query complexity must be a positive number')\n }\n\n this.context = context\n this.complexity = 0\n this.options = options\n\n this.includeDirectiveDef = this.context.getSchema().getDirective('include')\n this.skipDirectiveDef = this.context.getSchema().getDirective('skip')\n this.estimators = options.estimators\n this.variableValues = {}\n this.requestContext = options.context\n\n this.OperationDefinition = {\n enter: this.onOperationDefinitionEnter,\n leave: this.onOperationDefinitionLeave,\n }\n }\n\n createError(): GraphQLError {\n if (typeof this.options.createError === 'function') {\n return this.options.createError(this.options.maximumComplexity, this.complexity)\n }\n return new GraphQLError(queryComplexityMessage(this.options.maximumComplexity, this.complexity))\n }\n\n nodeComplexity(\n node: FieldNode | FragmentDefinitionNode | InlineFragmentNode | OperationDefinitionNode,\n typeDef: GraphQLInterfaceType | GraphQLObjectType | GraphQLUnionType,\n ): number {\n if (node.selectionSet) {\n let fields: GraphQLFieldMap<any, any> = {}\n if (typeDef instanceof GraphQLObjectType || typeDef instanceof GraphQLInterfaceType) {\n fields = typeDef.getFields()\n }\n\n // Determine all possible types of the current node\n let possibleTypeNames: string[]\n if (isAbstractType(typeDef)) {\n possibleTypeNames = this.context\n .getSchema()\n .getPossibleTypes(typeDef)\n .map((t) => t.name)\n } else {\n possibleTypeNames = [typeDef.name]\n }\n\n // Collect complexities for all possible types individually\n const selectionSetComplexities: ComplexityMap = node.selectionSet.selections.reduce(\n (\n complexities: ComplexityMap,\n childNode: FieldNode | FragmentSpreadNode | InlineFragmentNode,\n ): ComplexityMap => {\n // let nodeComplexity = 0;\n let innerComplexities = complexities\n\n let includeNode = true\n let skipNode = false\n\n for (const directive of childNode.directives ?? []) {\n const directiveName = directive.name.value\n switch (directiveName) {\n case 'include': {\n const values = getDirectiveValues(\n this.includeDirectiveDef,\n childNode,\n this.variableValues || {},\n )\n if (typeof values.if === 'boolean') {\n includeNode = values.if\n }\n break\n }\n case 'skip': {\n const values = getDirectiveValues(\n this.skipDirectiveDef,\n childNode,\n this.variableValues || {},\n )\n if (typeof values.if === 'boolean') {\n skipNode = values.if\n }\n break\n }\n }\n }\n\n if (!includeNode || skipNode) {\n return complexities\n }\n\n switch (childNode.kind) {\n case Kind.FIELD: {\n const field = fields[childNode.name.value]\n // Invalid field, should be caught by other validation rules\n if (!field) {\n break\n }\n const fieldType = getNamedType(field.type)\n\n // Get arguments\n let args: { [key: string]: any }\n try {\n args = getArgumentValues(field, childNode, this.variableValues || {})\n } catch (e) {\n this.context.reportError(e)\n return complexities\n }\n\n // Check if we have child complexity\n let childComplexity = 0\n if (isCompositeType(fieldType)) {\n childComplexity = this.nodeComplexity(childNode, fieldType)\n }\n\n // Run estimators one after another and return first valid complexity\n // score\n const estimatorArgs: ComplexityEstimatorArgs = {\n type: typeDef,\n args,\n childComplexity,\n context: this.requestContext,\n field,\n node: childNode,\n }\n const validScore = this.estimators.find((estimator) => {\n const tmpComplexity = estimator(estimatorArgs)\n\n if (typeof tmpComplexity === 'number' && !isNaN(tmpComplexity)) {\n innerComplexities = addComplexities(\n tmpComplexity,\n complexities,\n possibleTypeNames,\n )\n return true\n }\n\n return false\n })\n if (!validScore) {\n this.context.reportError(\n new GraphQLError(\n `No complexity could be calculated for field ${typeDef.name}.${field.name}. ` +\n 'At least one complexity estimator has to return a complexity score.',\n ),\n )\n return complexities\n }\n break\n }\n case Kind.FRAGMENT_SPREAD: {\n const fragment = this.context.getFragment(childNode.name.value)\n // Unknown fragment, should be caught by other validation rules\n if (!fragment) {\n break\n }\n const fragmentType = this.context\n .getSchema()\n .getType(fragment.typeCondition.name.value)\n // Invalid fragment type, ignore. Should be caught by other validation rules\n if (!isCompositeType(fragmentType)) {\n break\n }\n const nodeComplexity = this.nodeComplexity(fragment, fragmentType)\n if (isAbstractType(fragmentType)) {\n // Add fragment complexity for all possible types\n innerComplexities = addComplexities(\n nodeComplexity,\n complexities,\n this.context\n .getSchema()\n .getPossibleTypes(fragmentType)\n .map((t) => t.name),\n )\n } else {\n // Add complexity for object type\n innerComplexities = addComplexities(nodeComplexity, complexities, [\n fragmentType.name,\n ])\n }\n break\n }\n case Kind.INLINE_FRAGMENT: {\n let inlineFragmentType: GraphQLNamedType = typeDef\n if (childNode.typeCondition && childNode.typeCondition.name) {\n inlineFragmentType = this.context\n .getSchema()\n .getType(childNode.typeCondition.name.value)\n if (!isCompositeType(inlineFragmentType)) {\n break\n }\n }\n\n const nodeComplexity = this.nodeComplexity(childNode, inlineFragmentType)\n if (isAbstractType(inlineFragmentType)) {\n // Add fragment complexity for all possible types\n innerComplexities = addComplexities(\n nodeComplexity,\n complexities,\n this.context\n .getSchema()\n .getPossibleTypes(inlineFragmentType)\n .map((t) => t.name),\n )\n } else {\n // Add complexity for object type\n innerComplexities = addComplexities(nodeComplexity, complexities, [\n inlineFragmentType.name,\n ])\n }\n break\n }\n default: {\n innerComplexities = addComplexities(\n this.nodeComplexity(childNode, typeDef),\n complexities,\n possibleTypeNames,\n )\n break\n }\n }\n\n return innerComplexities\n },\n {},\n )\n // Only return max complexity of all possible types\n if (!selectionSetComplexities) {\n return NaN\n }\n return Math.max(...Object.values(selectionSetComplexities), 0)\n }\n return 0\n }\n\n onOperationDefinitionEnter(operation: OperationDefinitionNode): void {\n if (\n typeof this.options.operationName === 'string' &&\n this.options.operationName !== operation.name.value\n ) {\n return\n }\n\n // Get variable values from variables that are passed from options, merged\n // with default values defined in the operation\n const { coerced, errors } = getVariableValues(\n this.context.getSchema(),\n // We have to create a new array here because input argument is not readonly in graphql ~14.6.0\n operation.variableDefinitions ? [...operation.variableDefinitions] : [],\n this.options.variables ?? {},\n )\n if (errors && errors.length) {\n // We have input validation errors, report errors and abort\n errors.forEach((error) => this.context.reportError(error))\n return\n }\n this.variableValues = coerced\n\n switch (operation.operation) {\n case 'query':\n this.complexity += this.nodeComplexity(operation, this.context.getSchema().getQueryType())\n break\n case 'mutation':\n this.complexity += this.nodeComplexity(\n operation,\n this.context.getSchema().getMutationType(),\n )\n break\n case 'subscription':\n this.complexity += this.nodeComplexity(\n operation,\n this.context.getSchema().getSubscriptionType(),\n )\n break\n default:\n throw new Error(\n `Query complexity could not be calculated for operation of type ${operation.operation}`,\n )\n }\n }\n\n onOperationDefinitionLeave(operation: OperationDefinitionNode): GraphQLError | void {\n if (\n typeof this.options.operationName === 'string' &&\n this.options.operationName !== operation.name.value\n ) {\n return\n }\n\n if (this.options.onComplete) {\n this.options.onComplete(this.complexity)\n }\n\n if (this.complexity > this.options.maximumComplexity) {\n return this.context.reportError(this.createError())\n }\n }\n}\n\n/**\n * Adds a complexity to the complexity map for all possible types\n * @param complexity\n * @param complexityMap\n * @param possibleTypes\n */\nfunction addComplexities(\n complexity: number,\n complexityMap: ComplexityMap,\n possibleTypes: string[],\n): ComplexityMap {\n for (const type of possibleTypes) {\n if (Object.prototype.hasOwnProperty.call(complexityMap, type)) {\n complexityMap[type] += complexity\n } else {\n complexityMap[type] = complexity\n }\n }\n return complexityMap\n}\n"],"names":["GraphQLError","GraphQLInterfaceType","GraphQLObjectType","Kind","TypeInfo","ValidationContext","getNamedType","isAbstractType","isCompositeType","visit","visitWithTypeInfo","getArgumentValues","getDirectiveValues","getVariableValues","queryComplexityMessage","max","actual","getComplexity","options","typeInfo","schema","errors","context","query","error","push","visitor","QueryComplexity","estimators","maximumComplexity","Infinity","operationName","variables","length","pop","complexity","OperationDefinition","includeDirectiveDef","requestContext","skipDirectiveDef","variableValues","constructor","Error","getSchema","getDirective","enter","onOperationDefinitionEnter","leave","onOperationDefinitionLeave","createError","nodeComplexity","node","typeDef","selectionSet","fields","getFields","possibleTypeNames","getPossibleTypes","map","t","name","selectionSetComplexities","selections","reduce","complexities","childNode","innerComplexities","includeNode","skipNode","directive","directives","directiveName","value","values","if","kind","FIELD","field","fieldType","type","args","e","reportError","childComplexity","estimatorArgs","validScore","find","estimator","tmpComplexity","isNaN","addComplexities","FRAGMENT_SPREAD","fragment","getFragment","fragmentType","getType","typeCondition","INLINE_FRAGMENT","inlineFragmentType","NaN","Math","Object","operation","coerced","variableDefinitions","forEach","getQueryType","getMutationType","getSubscriptionType","onComplete","complexityMap","possibleTypes","prototype","hasOwnProperty","call"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/graphql-query-complexity/QueryComplexity.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-use-before-define */\n/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n/**\n * Created by Ivo Meißner on 28.07.17.\n */\n\nimport type {\n DocumentNode,\n FieldNode,\n FragmentDefinitionNode,\n FragmentSpreadNode,\n GraphQLCompositeType,\n GraphQLDirective,\n GraphQLField,\n GraphQLFieldMap,\n GraphQLNamedType,\n GraphQLSchema,\n GraphQLUnionType,\n InlineFragmentNode,\n OperationDefinitionNode,\n} from 'graphql'\n\nimport {\n GraphQLError,\n GraphQLInterfaceType,\n GraphQLObjectType,\n Kind,\n TypeInfo,\n ValidationContext,\n getNamedType,\n isAbstractType,\n isCompositeType,\n visit,\n visitWithTypeInfo,\n} from 'graphql'\nimport {\n getArgumentValues,\n getDirectiveValues,\n getVariableValues,\n} from 'graphql/execution/values.js'\n\nexport type ComplexityEstimatorArgs = {\n args: { [key: string]: any }\n childComplexity: number\n context?: Record<string, any>\n field: GraphQLField<any, any>\n node: FieldNode\n type: GraphQLCompositeType\n}\n\nexport type ComplexityEstimator = (options: ComplexityEstimatorArgs) => number | void\n\n// Complexity can be anything that is supported by the configured estimators\nexport type Complexity = any\n\n// Map of complexities for possible types (of Union, Interface types)\ntype ComplexityMap = {\n [typeName: string]: number\n}\n\nexport interface QueryComplexityOptions {\n // Pass request context to the estimators via estimationContext\n context?: Record<string, any>\n\n // The query variables. This is needed because the variables are not available\n // Optional function to create a custom error\n createError?: (max: number, actual: number) => GraphQLError\n\n // An array of complexity estimators to use for estimating the complexity\n estimators: Array<ComplexityEstimator>\n\n // Optional callback function to retrieve the determined query complexity\n // Will be invoked whether the query is rejected or not\n // The maximum allowed query complexity, queries above this threshold will be rejected\n maximumComplexity: number\n\n // This can be used for logging or to implement rate limiting\n onComplete?: (complexity: number) => void\n\n // specify operation name only when pass multi-operation documents\n operationName?: string\n\n // in the visitor of the graphql-js library\n variables?: Record<string, any>\n}\n\nfunction queryComplexityMessage(max: number, actual: number): string {\n return `The query exceeds the maximum complexity of ${max}. ` + `Actual complexity is ${actual}`\n}\n\nexport function getComplexity(options: {\n context?: Record<string, any>\n estimators: ComplexityEstimator[]\n operationName?: string\n query: DocumentNode\n schema: GraphQLSchema\n variables?: Record<string, any>\n}): number {\n const typeInfo = new TypeInfo(options.schema)\n\n const errors: GraphQLError[] = []\n const context = new ValidationContext(options.schema, options.query, typeInfo, (error) =>\n errors.push(error),\n )\n const visitor = new QueryComplexity(context, {\n // Maximum complexity does not matter since we're only interested in the calculated complexity.\n context: options.context,\n estimators: options.estimators,\n maximumComplexity: Infinity,\n operationName: options.operationName,\n variables: options.variables,\n })\n\n visit(options.query, visitWithTypeInfo(typeInfo, visitor))\n\n // Throw first error if any\n if (errors.length) {\n throw errors.pop()\n }\n\n return visitor.complexity\n}\n\nexport default class QueryComplexity {\n OperationDefinition: Record<string, any>\n complexity: number\n context: ValidationContext\n estimators: Array<ComplexityEstimator>\n includeDirectiveDef: GraphQLDirective\n options: QueryComplexityOptions\n requestContext?: Record<string, any>\n skipDirectiveDef: GraphQLDirective\n variableValues: Record<string, any>\n\n constructor(context: ValidationContext, options: QueryComplexityOptions) {\n if (!(typeof options.maximumComplexity === 'number' && options.maximumComplexity > 0)) {\n throw new Error('Maximum query complexity must be a positive number')\n }\n\n this.context = context\n this.complexity = 0\n this.options = options\n\n this.includeDirectiveDef = this.context.getSchema().getDirective('include')\n this.skipDirectiveDef = this.context.getSchema().getDirective('skip')\n this.estimators = options.estimators\n this.variableValues = {}\n this.requestContext = options.context\n\n this.OperationDefinition = {\n enter: this.onOperationDefinitionEnter,\n leave: this.onOperationDefinitionLeave,\n }\n }\n\n createError(): GraphQLError {\n if (typeof this.options.createError === 'function') {\n return this.options.createError(this.options.maximumComplexity, this.complexity)\n }\n return new GraphQLError(queryComplexityMessage(this.options.maximumComplexity, this.complexity))\n }\n\n nodeComplexity(\n node: FieldNode | FragmentDefinitionNode | InlineFragmentNode | OperationDefinitionNode,\n typeDef: GraphQLInterfaceType | GraphQLObjectType | GraphQLUnionType,\n ): number {\n if (node.selectionSet) {\n let fields: GraphQLFieldMap<any, any> = {}\n if (typeDef instanceof GraphQLObjectType || typeDef instanceof GraphQLInterfaceType) {\n fields = typeDef.getFields()\n }\n\n // Determine all possible types of the current node\n let possibleTypeNames: string[]\n if (isAbstractType(typeDef)) {\n possibleTypeNames = this.context\n .getSchema()\n .getPossibleTypes(typeDef)\n .map((t) => t.name)\n } else {\n possibleTypeNames = [typeDef.name]\n }\n\n // Collect complexities for all possible types individually\n const selectionSetComplexities: ComplexityMap = node.selectionSet.selections.reduce(\n (\n complexities: ComplexityMap,\n childNode: FieldNode | FragmentSpreadNode | InlineFragmentNode,\n ): ComplexityMap => {\n // let nodeComplexity = 0;\n let innerComplexities = complexities\n\n let includeNode = true\n let skipNode = false\n\n for (const directive of childNode.directives ?? []) {\n const directiveName = directive.name.value\n switch (directiveName) {\n case 'include': {\n const values = getDirectiveValues(\n this.includeDirectiveDef,\n childNode,\n this.variableValues || {},\n )\n if (typeof values.if === 'boolean') {\n includeNode = values.if\n }\n break\n }\n case 'skip': {\n const values = getDirectiveValues(\n this.skipDirectiveDef,\n childNode,\n this.variableValues || {},\n )\n if (typeof values.if === 'boolean') {\n skipNode = values.if\n }\n break\n }\n }\n }\n\n if (!includeNode || skipNode) {\n return complexities\n }\n\n switch (childNode.kind) {\n case Kind.FIELD: {\n const field = fields[childNode.name.value]\n // Invalid field, should be caught by other validation rules\n if (!field) {\n break\n }\n const fieldType = getNamedType(field.type)\n\n // Get arguments\n let args: { [key: string]: any }\n try {\n args = getArgumentValues(field, childNode, this.variableValues || {})\n } catch (e) {\n this.context.reportError(e)\n return complexities\n }\n\n // Check if we have child complexity\n let childComplexity = 0\n if (isCompositeType(fieldType)) {\n childComplexity = this.nodeComplexity(childNode, fieldType)\n }\n\n // Run estimators one after another and return first valid complexity\n // score\n const estimatorArgs: ComplexityEstimatorArgs = {\n type: typeDef,\n args,\n childComplexity,\n context: this.requestContext,\n field,\n node: childNode,\n }\n const validScore = this.estimators.find((estimator) => {\n const tmpComplexity = estimator(estimatorArgs)\n\n if (typeof tmpComplexity === 'number' && !isNaN(tmpComplexity)) {\n innerComplexities = addComplexities(\n tmpComplexity,\n complexities,\n possibleTypeNames,\n )\n return true\n }\n\n return false\n })\n if (!validScore) {\n this.context.reportError(\n new GraphQLError(\n `No complexity could be calculated for field ${typeDef.name}.${field.name}. ` +\n 'At least one complexity estimator has to return a complexity score.',\n ),\n )\n return complexities\n }\n break\n }\n case Kind.FRAGMENT_SPREAD: {\n const fragment = this.context.getFragment(childNode.name.value)\n // Unknown fragment, should be caught by other validation rules\n if (!fragment) {\n break\n }\n const fragmentType = this.context\n .getSchema()\n .getType(fragment.typeCondition.name.value)\n // Invalid fragment type, ignore. Should be caught by other validation rules\n if (!isCompositeType(fragmentType)) {\n break\n }\n const nodeComplexity = this.nodeComplexity(fragment, fragmentType)\n if (isAbstractType(fragmentType)) {\n // Add fragment complexity for all possible types\n innerComplexities = addComplexities(\n nodeComplexity,\n complexities,\n this.context\n .getSchema()\n .getPossibleTypes(fragmentType)\n .map((t) => t.name),\n )\n } else {\n // Add complexity for object type\n innerComplexities = addComplexities(nodeComplexity, complexities, [\n fragmentType.name,\n ])\n }\n break\n }\n case Kind.INLINE_FRAGMENT: {\n let inlineFragmentType: GraphQLNamedType = typeDef\n if (childNode.typeCondition && childNode.typeCondition.name) {\n inlineFragmentType = this.context\n .getSchema()\n .getType(childNode.typeCondition.name.value)\n if (!isCompositeType(inlineFragmentType)) {\n break\n }\n }\n\n const nodeComplexity = this.nodeComplexity(childNode, inlineFragmentType)\n if (isAbstractType(inlineFragmentType)) {\n // Add fragment complexity for all possible types\n innerComplexities = addComplexities(\n nodeComplexity,\n complexities,\n this.context\n .getSchema()\n .getPossibleTypes(inlineFragmentType)\n .map((t) => t.name),\n )\n } else {\n // Add complexity for object type\n innerComplexities = addComplexities(nodeComplexity, complexities, [\n inlineFragmentType.name,\n ])\n }\n break\n }\n default: {\n innerComplexities = addComplexities(\n this.nodeComplexity(childNode, typeDef),\n complexities,\n possibleTypeNames,\n )\n break\n }\n }\n\n return innerComplexities\n },\n {},\n )\n // Only return max complexity of all possible types\n if (!selectionSetComplexities) {\n return NaN\n }\n return Math.max(...Object.values(selectionSetComplexities), 0)\n }\n return 0\n }\n\n onOperationDefinitionEnter(operation: OperationDefinitionNode): void {\n if (\n typeof this.options.operationName === 'string' &&\n this.options.operationName !== operation.name.value\n ) {\n return\n }\n\n // Get variable values from variables that are passed from options, merged\n // with default values defined in the operation\n const { coerced, errors } = getVariableValues(\n this.context.getSchema(),\n // We have to create a new array here because input argument is not readonly in graphql ~14.6.0\n operation.variableDefinitions ? [...operation.variableDefinitions] : [],\n this.options.variables ?? {},\n )\n if (errors && errors.length) {\n // We have input validation errors, report errors and abort\n errors.forEach((error) => this.context.reportError(error))\n return\n }\n this.variableValues = coerced\n\n switch (operation.operation) {\n case 'query':\n this.complexity += this.nodeComplexity(operation, this.context.getSchema().getQueryType())\n break\n case 'mutation':\n this.complexity += this.nodeComplexity(\n operation,\n this.context.getSchema().getMutationType(),\n )\n break\n case 'subscription':\n this.complexity += this.nodeComplexity(\n operation,\n this.context.getSchema().getSubscriptionType(),\n )\n break\n default:\n throw new Error(\n `Query complexity could not be calculated for operation of type ${operation.operation}`,\n )\n }\n }\n\n onOperationDefinitionLeave(operation: OperationDefinitionNode): GraphQLError | void {\n if (\n typeof this.options.operationName === 'string' &&\n this.options.operationName !== operation.name.value\n ) {\n return\n }\n\n if (this.options.onComplete) {\n this.options.onComplete(this.complexity)\n }\n\n if (this.complexity > this.options.maximumComplexity) {\n return this.context.reportError(this.createError())\n }\n }\n}\n\n/**\n * Adds a complexity to the complexity map for all possible types\n * @param complexity\n * @param complexityMap\n * @param possibleTypes\n */\nfunction addComplexities(\n complexity: number,\n complexityMap: ComplexityMap,\n possibleTypes: string[],\n): ComplexityMap {\n for (const type of possibleTypes) {\n if (Object.prototype.hasOwnProperty.call(complexityMap, type)) {\n complexityMap[type] += complexity\n } else {\n complexityMap[type] = complexity\n }\n }\n return complexityMap\n}\n"],"names":["GraphQLError","GraphQLInterfaceType","GraphQLObjectType","Kind","TypeInfo","ValidationContext","getNamedType","isAbstractType","isCompositeType","visit","visitWithTypeInfo","getArgumentValues","getDirectiveValues","getVariableValues","queryComplexityMessage","max","actual","getComplexity","options","typeInfo","schema","errors","context","query","error","push","visitor","QueryComplexity","estimators","maximumComplexity","Infinity","operationName","variables","length","pop","complexity","OperationDefinition","includeDirectiveDef","requestContext","skipDirectiveDef","variableValues","constructor","Error","getSchema","getDirective","enter","onOperationDefinitionEnter","leave","onOperationDefinitionLeave","createError","nodeComplexity","node","typeDef","selectionSet","fields","getFields","possibleTypeNames","getPossibleTypes","map","t","name","selectionSetComplexities","selections","reduce","complexities","childNode","innerComplexities","includeNode","skipNode","directive","directives","directiveName","value","values","if","kind","FIELD","field","fieldType","type","args","e","reportError","childComplexity","estimatorArgs","validScore","find","estimator","tmpComplexity","isNaN","addComplexities","FRAGMENT_SPREAD","fragment","getFragment","fragmentType","getType","typeCondition","INLINE_FRAGMENT","inlineFragmentType","NaN","Math","Object","operation","coerced","variableDefinitions","forEach","getQueryType","getMutationType","getSubscriptionType","onComplete","complexityMap","possibleTypes","prototype","hasOwnProperty","call"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/graphql-query-complexity/createComplexityRule.ts"],"sourcesContent":["import type { ValidationContext } from 'graphql'\n\nimport type { QueryComplexityOptions } from './QueryComplexity.js'\n\nimport QueryComplexity from './QueryComplexity.js'\n\nexport function createComplexityRule(\n options: QueryComplexityOptions,\n): (context: ValidationContext) => QueryComplexity {\n return (context: ValidationContext): QueryComplexity => {\n return new QueryComplexity(context, options)\n }\n}\n"],"names":["QueryComplexity","createComplexityRule","options","context"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/graphql-query-complexity/createComplexityRule.ts"],"sourcesContent":["import type { ValidationContext } from 'graphql'\n\nimport type { QueryComplexityOptions } from './QueryComplexity.js'\n\nimport QueryComplexity from './QueryComplexity.js'\n\nexport function createComplexityRule(\n options: QueryComplexityOptions,\n): (context: ValidationContext) => QueryComplexity {\n return (context: ValidationContext): QueryComplexity => {\n return new QueryComplexity(context, options)\n }\n}\n"],"names":["QueryComplexity","createComplexityRule","options","context"],"mappings":"AAIA,OAAOA,qBAAqB,uBAAsB;AAElD,OAAO,SAASC,qBACdC,OAA+B;IAE/B,OAAO,CAACC;QACN,OAAO,IAAIH,gBAAgBG,SAASD;IACtC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/packages/graphql-query-complexity/estimators/fieldExtensions/index.ts"],"sourcesContent":["import type { ComplexityEstimator, ComplexityEstimatorArgs } from '../../QueryComplexity.js'\n\nexport const fieldExtensionsEstimator = (): ComplexityEstimator => {\n return (args: ComplexityEstimatorArgs): number | void => {\n if (args.field.extensions) {\n // Calculate complexity score\n if (typeof args.field.extensions.complexity === 'number') {\n return args.childComplexity + args.field.extensions.complexity\n } else if (typeof args.field.extensions.complexity === 'function') {\n return args.field.extensions.complexity(args)\n }\n }\n }\n}\n"],"names":["fieldExtensionsEstimator","args","field","extensions","complexity","childComplexity"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/packages/graphql-query-complexity/estimators/fieldExtensions/index.ts"],"sourcesContent":["import type { ComplexityEstimator, ComplexityEstimatorArgs } from '../../QueryComplexity.js'\n\nexport const fieldExtensionsEstimator = (): ComplexityEstimator => {\n return (args: ComplexityEstimatorArgs): number | void => {\n if (args.field.extensions) {\n // Calculate complexity score\n if (typeof args.field.extensions.complexity === 'number') {\n return args.childComplexity + args.field.extensions.complexity\n } else if (typeof args.field.extensions.complexity === 'function') {\n return args.field.extensions.complexity(args)\n }\n }\n }\n}\n"],"names":["fieldExtensionsEstimator","args","field","extensions","complexity","childComplexity"],"mappings":"AAEA,OAAO,MAAMA,2BAA2B;IACtC,OAAO,CAACC;QACN,IAAIA,KAAKC,KAAK,CAACC,UAAU,EAAE;YACzB,6BAA6B;YAC7B,IAAI,OAAOF,KAAKC,KAAK,CAACC,UAAU,CAACC,UAAU,KAAK,UAAU;gBACxD,OAAOH,KAAKI,eAAe,GAAGJ,KAAKC,KAAK,CAACC,UAAU,CAACC,UAAU;YAChE,OAAO,IAAI,OAAOH,KAAKC,KAAK,CAACC,UAAU,CAACC,UAAU,KAAK,YAAY;gBACjE,OAAOH,KAAKC,KAAK,CAACC,UAAU,CAACC,UAAU,CAACH;YAC1C;QACF;IACF;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/packages/graphql-query-complexity/estimators/simple/index.ts"],"sourcesContent":["import type { ComplexityEstimator, ComplexityEstimatorArgs } from '../../QueryComplexity.js'\n\nexport const simpleEstimator = (options?: { defaultComplexity?: number }): ComplexityEstimator => {\n const defaultComplexity =\n options && typeof options.defaultComplexity === 'number' ? options.defaultComplexity : 1\n return (args: ComplexityEstimatorArgs): number | void => {\n return defaultComplexity + args.childComplexity\n }\n}\n"],"names":["simpleEstimator","options","defaultComplexity","args","childComplexity"],"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/packages/graphql-query-complexity/estimators/simple/index.ts"],"sourcesContent":["import type { ComplexityEstimator, ComplexityEstimatorArgs } from '../../QueryComplexity.js'\n\nexport const simpleEstimator = (options?: { defaultComplexity?: number }): ComplexityEstimator => {\n const defaultComplexity =\n options && typeof options.defaultComplexity === 'number' ? options.defaultComplexity : 1\n return (args: ComplexityEstimatorArgs): number | void => {\n return defaultComplexity + args.childComplexity\n }\n}\n"],"names":["simpleEstimator","options","defaultComplexity","args","childComplexity"],"mappings":"AAEA,OAAO,MAAMA,kBAAkB,CAACC;IAC9B,MAAMC,oBACJD,WAAW,OAAOA,QAAQC,iBAAiB,KAAK,WAAWD,QAAQC,iBAAiB,GAAG;IACzF,OAAO,CAACC;QACN,OAAOD,oBAAoBC,KAAKC,eAAe;IACjD;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/graphql-query-complexity/index.ts"],"sourcesContent":["export { createComplexityRule } from './createComplexityRule.js'\nexport { fieldExtensionsEstimator } from './estimators/fieldExtensions/index.js'\nexport { simpleEstimator } from './estimators/simple/index.js'\n"],"names":["createComplexityRule","fieldExtensionsEstimator","simpleEstimator"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/graphql-query-complexity/index.ts"],"sourcesContent":["export { createComplexityRule } from './createComplexityRule.js'\nexport { fieldExtensionsEstimator } from './estimators/fieldExtensions/index.js'\nexport { simpleEstimator } from './estimators/simple/index.js'\n"],"names":["createComplexityRule","fieldExtensionsEstimator","simpleEstimator"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,4BAA2B;AAChE,SAASC,wBAAwB,QAAQ,wCAAuC;AAChF,SAASC,eAAe,QAAQ,+BAA8B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/packages/graphql-type-json/index.ts"],"sourcesContent":["import { GraphQLScalarType } from 'graphql'\nimport { Kind, print } from 'graphql/language/index.js'\n\nfunction identity(value) {\n return value\n}\n\nfunction ensureObject(value) {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new TypeError(`JSONObject cannot represent non-object value: ${value}`)\n }\n\n return value\n}\n\nfunction parseObject(typeName, ast, variables) {\n const value = Object.create(null)\n ast.fields.forEach((field) => {\n // eslint-disable-next-line no-use-before-define\n value[field.name.value] = parseLiteral(typeName, field.value, variables)\n })\n\n return value\n}\n\nfunction parseLiteral(typeName, 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 return parseObject(typeName, ast, variables)\n case Kind.LIST:\n return ast.values.map((n) => parseLiteral(typeName, n, variables))\n case Kind.NULL:\n return null\n case Kind.VARIABLE:\n return variables ? variables[ast.name.value] : undefined\n default:\n throw new TypeError(`${typeName} cannot represent value: ${print(ast)}`)\n }\n}\n\n// This named export is intended for users of CommonJS. Users of ES modules\n// should instead use the default export.\nexport const GraphQLJSON = new GraphQLScalarType({\n name: 'JSON',\n description:\n 'The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).',\n parseLiteral: (ast, variables) => parseLiteral('JSON', ast, variables),\n parseValue: identity,\n serialize: identity,\n specifiedByURL: 'http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf',\n})\n\nexport const GraphQLJSONObject = new GraphQLScalarType({\n name: 'JSONObject',\n description:\n 'The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).',\n parseLiteral: (ast, variables) => {\n if (ast.kind !== Kind.OBJECT) {\n throw new TypeError(`JSONObject cannot represent non-object value: ${print(ast)}`)\n }\n\n return parseObject('JSONObject', ast, variables)\n },\n parseValue: ensureObject,\n serialize: ensureObject,\n specifiedByURL: 'http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf',\n})\n"],"names":["GraphQLScalarType","Kind","print","identity","value","ensureObject","Array","isArray","TypeError","parseObject","typeName","ast","variables","Object","create","fields","forEach","field","name","parseLiteral","kind","STRING","BOOLEAN","INT","FLOAT","parseFloat","OBJECT","LIST","values","map","n","NULL","VARIABLE","undefined","GraphQLJSON","description","parseValue","serialize","specifiedByURL","GraphQLJSONObject"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/packages/graphql-type-json/index.ts"],"sourcesContent":["import { GraphQLScalarType } from 'graphql'\nimport { Kind, print } from 'graphql/language/index.js'\n\nfunction identity(value) {\n return value\n}\n\nfunction ensureObject(value) {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new TypeError(`JSONObject cannot represent non-object value: ${value}`)\n }\n\n return value\n}\n\nfunction parseObject(typeName, ast, variables) {\n const value = Object.create(null)\n ast.fields.forEach((field) => {\n // eslint-disable-next-line no-use-before-define\n value[field.name.value] = parseLiteral(typeName, field.value, variables)\n })\n\n return value\n}\n\nfunction parseLiteral(typeName, 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 return parseObject(typeName, ast, variables)\n case Kind.LIST:\n return ast.values.map((n) => parseLiteral(typeName, n, variables))\n case Kind.NULL:\n return null\n case Kind.VARIABLE:\n return variables ? variables[ast.name.value] : undefined\n default:\n throw new TypeError(`${typeName} cannot represent value: ${print(ast)}`)\n }\n}\n\n// This named export is intended for users of CommonJS. Users of ES modules\n// should instead use the default export.\nexport const GraphQLJSON = new GraphQLScalarType({\n name: 'JSON',\n description:\n 'The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).',\n parseLiteral: (ast, variables) => parseLiteral('JSON', ast, variables),\n parseValue: identity,\n serialize: identity,\n specifiedByURL: 'http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf',\n})\n\nexport const GraphQLJSONObject = new GraphQLScalarType({\n name: 'JSONObject',\n description:\n 'The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).',\n parseLiteral: (ast, variables) => {\n if (ast.kind !== Kind.OBJECT) {\n throw new TypeError(`JSONObject cannot represent non-object value: ${print(ast)}`)\n }\n\n return parseObject('JSONObject', ast, variables)\n },\n parseValue: ensureObject,\n serialize: ensureObject,\n specifiedByURL: 'http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf',\n})\n"],"names":["GraphQLScalarType","Kind","print","identity","value","ensureObject","Array","isArray","TypeError","parseObject","typeName","ast","variables","Object","create","fields","forEach","field","name","parseLiteral","kind","STRING","BOOLEAN","INT","FLOAT","parseFloat","OBJECT","LIST","values","map","n","NULL","VARIABLE","undefined","GraphQLJSON","description","parseValue","serialize","specifiedByURL","GraphQLJSONObject"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,UAAS;AAC3C,SAASC,IAAI,EAAEC,KAAK,QAAQ,4BAA2B;AAEvD,SAASC,SAASC,KAAK;IACrB,OAAOA;AACT;AAEA,SAASC,aAAaD,KAAK;IACzB,IAAI,OAAOA,UAAU,YAAYA,UAAU,QAAQE,MAAMC,OAAO,CAACH,QAAQ;QACvE,MAAM,IAAII,UAAU,CAAC,8CAA8C,EAAEJ,MAAM,CAAC;IAC9E;IAEA,OAAOA;AACT;AAEA,SAASK,YAAYC,QAAQ,EAAEC,GAAG,EAAEC,SAAS;IAC3C,MAAMR,QAAQS,OAAOC,MAAM,CAAC;IAC5BH,IAAII,MAAM,CAACC,OAAO,CAAC,CAACC;QAClB,gDAAgD;QAChDb,KAAK,CAACa,MAAMC,IAAI,CAACd,KAAK,CAAC,GAAGe,aAAaT,UAAUO,MAAMb,KAAK,EAAEQ;IAChE;IAEA,OAAOR;AACT;AAEA,SAASe,aAAaT,QAAQ,EAAEC,GAAG,EAAEC,SAAS;IAC5C,OAAQD,IAAIS,IAAI;QACd,KAAKnB,KAAKoB,MAAM;QAChB,KAAKpB,KAAKqB,OAAO;YACf,OAAOX,IAAIP,KAAK;QAClB,KAAKH,KAAKsB,GAAG;QACb,KAAKtB,KAAKuB,KAAK;YACb,OAAOC,WAAWd,IAAIP,KAAK;QAC7B,KAAKH,KAAKyB,MAAM;YACd,OAAOjB,YAAYC,UAAUC,KAAKC;QACpC,KAAKX,KAAK0B,IAAI;YACZ,OAAOhB,IAAIiB,MAAM,CAACC,GAAG,CAAC,CAACC,IAAMX,aAAaT,UAAUoB,GAAGlB;QACzD,KAAKX,KAAK8B,IAAI;YACZ,OAAO;QACT,KAAK9B,KAAK+B,QAAQ;YAChB,OAAOpB,YAAYA,SAAS,CAACD,IAAIO,IAAI,CAACd,KAAK,CAAC,GAAG6B;QACjD;YACE,MAAM,IAAIzB,UAAU,CAAC,EAAEE,SAAS,yBAAyB,EAAER,MAAMS,KAAK,CAAC;IAC3E;AACF;AAEA,2EAA2E;AAC3E,0CAA0C;AAC1C,OAAO,MAAMuB,cAAc,IAAIlC,kBAAkB;IAC/CkB,MAAM;IACNiB,aACE;IACFhB,cAAc,CAACR,KAAKC,YAAcO,aAAa,QAAQR,KAAKC;IAC5DwB,YAAYjC;IACZkC,WAAWlC;IACXmC,gBAAgB;AAClB,GAAE;AAEF,OAAO,MAAMC,oBAAoB,IAAIvC,kBAAkB;IACrDkB,MAAM;IACNiB,aACE;IACFhB,cAAc,CAACR,KAAKC;QAClB,IAAID,IAAIS,IAAI,KAAKnB,KAAKyB,MAAM,EAAE;YAC5B,MAAM,IAAIlB,UAAU,CAAC,8CAA8C,EAAEN,MAAMS,KAAK,CAAC;QACnF;QAEA,OAAOF,YAAY,cAAcE,KAAKC;IACxC;IACAwB,YAAY/B;IACZgC,WAAWhC;IACXiC,gBAAgB;AAClB,GAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/auth/access.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport { accessOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nimport formatName from '../../utilities/formatName.js'\nconst formatConfigNames = (results, configs) => {\n const formattedResults = { ...results }\n\n configs.forEach(({ slug }) => {\n const result = { ...(formattedResults[slug] || {}) }\n delete formattedResults[slug]\n formattedResults[formatName(slug)] = result\n })\n\n return formattedResults\n}\n\nfunction accessResolver(config: SanitizedConfig) {\n async function resolver(_, args, context: Context) {\n const options = {\n req: isolateObjectProperty<any>(context.req, 'transactionID'),\n }\n\n const accessResults = await accessOperation(options)\n\n return {\n ...accessResults,\n ...formatConfigNames(accessResults.collections, config.collections),\n ...formatConfigNames(accessResults.globals, config.globals),\n }\n }\n\n return resolver\n}\n\nexport default accessResolver\n"],"names":["accessOperation","isolateObjectProperty","formatName","formatConfigNames","results","configs","formattedResults","forEach","slug","result","accessResolver","config","resolver","_","args","context","options","req","accessResults","collections","globals"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/auth/access.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nimport { accessOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nimport formatName from '../../utilities/formatName.js'\nconst formatConfigNames = (results, configs) => {\n const formattedResults = { ...results }\n\n configs.forEach(({ slug }) => {\n const result = { ...(formattedResults[slug] || {}) }\n delete formattedResults[slug]\n formattedResults[formatName(slug)] = result\n })\n\n return formattedResults\n}\n\nfunction accessResolver(config: SanitizedConfig) {\n async function resolver(_, args, context: Context) {\n const options = {\n req: isolateObjectProperty<any>(context.req, 'transactionID'),\n }\n\n const accessResults = await accessOperation(options)\n\n return {\n ...accessResults,\n ...formatConfigNames(accessResults.collections, config.collections),\n ...formatConfigNames(accessResults.globals, config.globals),\n }\n }\n\n return resolver\n}\n\nexport default accessResolver\n"],"names":["accessOperation","isolateObjectProperty","formatName","formatConfigNames","results","configs","formattedResults","forEach","slug","result","accessResolver","config","resolver","_","args","context","options","req","accessResults","collections","globals"],"mappings":"AAEA,SAASA,eAAe,EAAEC,qBAAqB,QAAQ,UAAS;AAIhE,OAAOC,gBAAgB,gCAA+B;AACtD,MAAMC,oBAAoB,CAACC,SAASC;IAClC,MAAMC,mBAAmB;QAAE,GAAGF,OAAO;IAAC;IAEtCC,QAAQE,OAAO,CAAC,CAAC,EAAEC,IAAI,EAAE;QACvB,MAAMC,SAAS;YAAE,GAAIH,gBAAgB,CAACE,KAAK,IAAI,CAAC,CAAC;QAAE;QACnD,OAAOF,gBAAgB,CAACE,KAAK;QAC7BF,gBAAgB,CAACJ,WAAWM,MAAM,GAAGC;IACvC;IAEA,OAAOH;AACT;AAEA,SAASI,eAAeC,MAAuB;IAC7C,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,MAAMC,UAAU;YACdC,KAAKhB,sBAA2Bc,QAAQE,GAAG,EAAE;QAC/C;QAEA,MAAMC,gBAAgB,MAAMlB,gBAAgBgB;QAE5C,OAAO;YACL,GAAGE,aAAa;YAChB,GAAGf,kBAAkBe,cAAcC,WAAW,EAAER,OAAOQ,WAAW,CAAC;YACnE,GAAGhB,kBAAkBe,cAAcE,OAAO,EAAET,OAAOS,OAAO,CAAC;QAC7D;IACF;IAEA,OAAOR;AACT;AAEA,eAAeF,eAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/auth/forgotPassword.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { forgotPasswordOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction forgotPasswordResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n data: {\n email: args.email,\n },\n disableEmail: args.disableEmail,\n expiration: args.expiration,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n await forgotPasswordOperation(options)\n return true\n }\n\n return resolver\n}\n\nexport default forgotPasswordResolver\n"],"names":["forgotPasswordOperation","isolateObjectProperty","forgotPasswordResolver","collection","resolver","_","args","context","options","data","email","disableEmail","expiration","req"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/auth/forgotPassword.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { forgotPasswordOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction forgotPasswordResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n data: {\n email: args.email,\n },\n disableEmail: args.disableEmail,\n expiration: args.expiration,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n await forgotPasswordOperation(options)\n return true\n }\n\n return resolver\n}\n\nexport default forgotPasswordResolver\n"],"names":["forgotPasswordOperation","isolateObjectProperty","forgotPasswordResolver","collection","resolver","_","args","context","options","data","email","disableEmail","expiration","req"],"mappings":"AAEA,SAASA,uBAAuB,EAAEC,qBAAqB,QAAQ,UAAS;AAIxE,SAASC,uBAAuBC,UAAsB;IACpD,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,MAAMC,UAAU;YACdL;YACAM,MAAM;gBACJC,OAAOJ,KAAKI,KAAK;YACnB;YACAC,cAAcL,KAAKK,YAAY;YAC/BC,YAAYN,KAAKM,UAAU;YAC3BC,KAAKZ,sBAAsBM,QAAQM,GAAG,EAAE;QAC1C;QAEA,MAAMb,wBAAwBQ;QAC9B,OAAO;IACT;IAEA,OAAOJ;AACT;AAEA,eAAeF,uBAAsB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/auth/init.ts"],"sourcesContent":["import { initOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction initResolver(collection: string) {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n return initOperation(options)\n }\n\n return resolver\n}\n\nexport default initResolver\n"],"names":["initOperation","isolateObjectProperty","initResolver","collection","resolver","_","args","context","options","req"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/auth/init.ts"],"sourcesContent":["import { initOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction initResolver(collection: string) {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n return initOperation(options)\n }\n\n return resolver\n}\n\nexport default initResolver\n"],"names":["initOperation","isolateObjectProperty","initResolver","collection","resolver","_","args","context","options","req"],"mappings":"AAAA,SAASA,aAAa,EAAEC,qBAAqB,QAAQ,UAAS;AAI9D,SAASC,aAAaC,UAAkB;IACtC,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,MAAMC,UAAU;YACdL;YACAM,KAAKR,sBAAsBM,QAAQE,GAAG,EAAE;QAC1C;QAEA,OAAOT,cAAcQ;IACvB;IAEA,OAAOJ;AACT;AAEA,eAAeF,aAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/auth/login.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { generatePayloadCookie, isolateObjectProperty, loginOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction loginResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n data: {\n email: args.email,\n password: args.password,\n },\n depth: 0,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await loginOperation(options)\n const cookie = generatePayloadCookie({\n collectionConfig: collection.config,\n payload: context.req.payload,\n token: result.token,\n })\n\n context.headers['Set-Cookie'] = cookie\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.token\n }\n\n return result\n }\n\n return resolver\n}\n\nexport default loginResolver\n"],"names":["generatePayloadCookie","isolateObjectProperty","loginOperation","loginResolver","collection","resolver","_","args","context","options","data","email","password","depth","req","result","cookie","collectionConfig","config","payload","token","headers","auth","removeTokenFromResponses"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/auth/login.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { generatePayloadCookie, isolateObjectProperty, loginOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction loginResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n data: {\n email: args.email,\n password: args.password,\n },\n depth: 0,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await loginOperation(options)\n const cookie = generatePayloadCookie({\n collectionConfig: collection.config,\n payload: context.req.payload,\n token: result.token,\n })\n\n context.headers['Set-Cookie'] = cookie\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.token\n }\n\n return result\n }\n\n return resolver\n}\n\nexport default loginResolver\n"],"names":["generatePayloadCookie","isolateObjectProperty","loginOperation","loginResolver","collection","resolver","_","args","context","options","data","email","password","depth","req","result","cookie","collectionConfig","config","payload","token","headers","auth","removeTokenFromResponses"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,qBAAqB,EAAEC,cAAc,QAAQ,UAAS;AAItF,SAASC,cAAcC,UAAsB;IAC3C,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,MAAMC,UAAU;YACdL;YACAM,MAAM;gBACJC,OAAOJ,KAAKI,KAAK;gBACjBC,UAAUL,KAAKK,QAAQ;YACzB;YACAC,OAAO;YACPC,KAAKb,sBAAsBO,QAAQM,GAAG,EAAE;QAC1C;QAEA,MAAMC,SAAS,MAAMb,eAAeO;QACpC,MAAMO,SAAShB,sBAAsB;YACnCiB,kBAAkBb,WAAWc,MAAM;YACnCC,SAASX,QAAQM,GAAG,CAACK,OAAO;YAC5BC,OAAOL,OAAOK,KAAK;QACrB;QAEAZ,QAAQa,OAAO,CAAC,aAAa,GAAGL;QAEhC,IAAIZ,WAAWc,MAAM,CAACI,IAAI,CAACC,wBAAwB,EAAE;YACnD,OAAOR,OAAOK,KAAK;QACrB;QAEA,OAAOL;IACT;IAEA,OAAOV;AACT;AAEA,eAAeF,cAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/auth/logout.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { generateExpiredPayloadCookie, isolateObjectProperty, logoutOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction logoutResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await logoutOperation(options)\n const expiredCookie = generateExpiredPayloadCookie({\n collectionConfig: collection.config,\n payload: context.req.payload,\n })\n context.headers['Set-Cookie'] = expiredCookie\n return result\n }\n\n return resolver\n}\n\nexport default logoutResolver\n"],"names":["generateExpiredPayloadCookie","isolateObjectProperty","logoutOperation","logoutResolver","collection","resolver","_","args","context","options","req","result","expiredCookie","collectionConfig","config","payload","headers"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/auth/logout.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { generateExpiredPayloadCookie, isolateObjectProperty, logoutOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction logoutResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await logoutOperation(options)\n const expiredCookie = generateExpiredPayloadCookie({\n collectionConfig: collection.config,\n payload: context.req.payload,\n })\n context.headers['Set-Cookie'] = expiredCookie\n return result\n }\n\n return resolver\n}\n\nexport default logoutResolver\n"],"names":["generateExpiredPayloadCookie","isolateObjectProperty","logoutOperation","logoutResolver","collection","resolver","_","args","context","options","req","result","expiredCookie","collectionConfig","config","payload","headers"],"mappings":"AAEA,SAASA,4BAA4B,EAAEC,qBAAqB,EAAEC,eAAe,QAAQ,UAAS;AAI9F,SAASC,eAAeC,UAAsB;IAC5C,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,MAAMC,UAAU;YACdL;YACAM,KAAKT,sBAAsBO,QAAQE,GAAG,EAAE;QAC1C;QAEA,MAAMC,SAAS,MAAMT,gBAAgBO;QACrC,MAAMG,gBAAgBZ,6BAA6B;YACjDa,kBAAkBT,WAAWU,MAAM;YACnCC,SAASP,QAAQE,GAAG,CAACK,OAAO;QAC9B;QACAP,QAAQQ,OAAO,CAAC,aAAa,GAAGJ;QAChC,OAAOD;IACT;IAEA,OAAON;AACT;AAEA,eAAeF,eAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/auth/me.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { isolateObjectProperty, meOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction meResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n depth: 0,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n const result = await meOperation(options)\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.token\n }\n\n return result\n }\n\n return resolver\n}\n\nexport default meResolver\n"],"names":["isolateObjectProperty","meOperation","meResolver","collection","resolver","_","args","context","options","depth","req","result","config","auth","removeTokenFromResponses","token"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/auth/me.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { isolateObjectProperty, meOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction meResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n depth: 0,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n const result = await meOperation(options)\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.token\n }\n\n return result\n }\n\n return resolver\n}\n\nexport default meResolver\n"],"names":["isolateObjectProperty","meOperation","meResolver","collection","resolver","_","args","context","options","depth","req","result","config","auth","removeTokenFromResponses","token"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,WAAW,QAAQ,UAAS;AAI5D,SAASC,WAAWC,UAAsB;IACxC,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,MAAMC,UAAU;YACdL;YACAM,OAAO;YACPC,KAAKV,sBAAsBO,QAAQG,GAAG,EAAE;QAC1C;QACA,MAAMC,SAAS,MAAMV,YAAYO;QAEjC,IAAIL,WAAWS,MAAM,CAACC,IAAI,CAACC,wBAAwB,EAAE;YACnD,OAAOH,OAAOI,KAAK;QACrB;QAEA,OAAOJ;IACT;IAEA,OAAOP;AACT;AAEA,eAAeF,WAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/auth/refresh.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { extractJWT, generatePayloadCookie, isolateObjectProperty, refreshOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction refreshResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n let token\n\n token = extractJWT(context.req)\n\n if (args.token) {\n token = args.token\n }\n\n const options = {\n collection,\n depth: 0,\n req: isolateObjectProperty(context.req, 'transactionID'),\n token,\n }\n\n const result = await refreshOperation(options)\n const cookie = generatePayloadCookie({\n collectionConfig: collection.config,\n payload: context.req.payload,\n token: result.refreshedToken,\n })\n context.headers['Set-Cookie'] = cookie\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.refreshedToken\n }\n\n return result\n }\n\n return resolver\n}\n\nexport default refreshResolver\n"],"names":["extractJWT","generatePayloadCookie","isolateObjectProperty","refreshOperation","refreshResolver","collection","resolver","_","args","context","token","req","options","depth","result","cookie","collectionConfig","config","payload","refreshedToken","headers","auth","removeTokenFromResponses"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/auth/refresh.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { extractJWT, generatePayloadCookie, isolateObjectProperty, refreshOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction refreshResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n let token\n\n token = extractJWT(context.req)\n\n if (args.token) {\n token = args.token\n }\n\n const options = {\n collection,\n depth: 0,\n req: isolateObjectProperty(context.req, 'transactionID'),\n token,\n }\n\n const result = await refreshOperation(options)\n const cookie = generatePayloadCookie({\n collectionConfig: collection.config,\n payload: context.req.payload,\n token: result.refreshedToken,\n })\n context.headers['Set-Cookie'] = cookie\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.refreshedToken\n }\n\n return result\n }\n\n return resolver\n}\n\nexport default refreshResolver\n"],"names":["extractJWT","generatePayloadCookie","isolateObjectProperty","refreshOperation","refreshResolver","collection","resolver","_","args","context","token","req","options","depth","result","cookie","collectionConfig","config","payload","refreshedToken","headers","auth","removeTokenFromResponses"],"mappings":"AAEA,SAASA,UAAU,EAAEC,qBAAqB,EAAEC,qBAAqB,EAAEC,gBAAgB,QAAQ,UAAS;AAIpG,SAASC,gBAAgBC,UAAsB;IAC7C,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,IAAIC;QAEJA,QAAQV,WAAWS,QAAQE,GAAG;QAE9B,IAAIH,KAAKE,KAAK,EAAE;YACdA,QAAQF,KAAKE,KAAK;QACpB;QAEA,MAAME,UAAU;YACdP;YACAQ,OAAO;YACPF,KAAKT,sBAAsBO,QAAQE,GAAG,EAAE;YACxCD;QACF;QAEA,MAAMI,SAAS,MAAMX,iBAAiBS;QACtC,MAAMG,SAASd,sBAAsB;YACnCe,kBAAkBX,WAAWY,MAAM;YACnCC,SAAST,QAAQE,GAAG,CAACO,OAAO;YAC5BR,OAAOI,OAAOK,cAAc;QAC9B;QACAV,QAAQW,OAAO,CAAC,aAAa,GAAGL;QAEhC,IAAIV,WAAWY,MAAM,CAACI,IAAI,CAACC,wBAAwB,EAAE;YACnD,OAAOR,OAAOK,cAAc;QAC9B;QAEA,OAAOL;IACT;IAEA,OAAOR;AACT;AAEA,eAAeF,gBAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/auth/resetPassword.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { generatePayloadCookie, isolateObjectProperty, resetPasswordOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction resetPasswordResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n if (args.locale) context.req.locale = args.locale\n if (args.fallbackLocale) context.req.fallbackLocale = args.fallbackLocale\n\n const options = {\n api: 'GraphQL',\n collection,\n data: args,\n depth: 0,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await resetPasswordOperation(options)\n const cookie = generatePayloadCookie({\n collectionConfig: collection.config,\n payload: context.req.payload,\n token: result.token,\n })\n context.headers['Set-Cookie'] = cookie\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.token\n }\n\n return result\n }\n\n return resolver\n}\n\nexport default resetPasswordResolver\n"],"names":["generatePayloadCookie","isolateObjectProperty","resetPasswordOperation","resetPasswordResolver","collection","resolver","_","args","context","locale","req","fallbackLocale","options","api","data","depth","result","cookie","collectionConfig","config","payload","token","headers","auth","removeTokenFromResponses"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/auth/resetPassword.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { generatePayloadCookie, isolateObjectProperty, resetPasswordOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction resetPasswordResolver(collection: Collection): any {\n async function resolver(_, args, context: Context) {\n if (args.locale) context.req.locale = args.locale\n if (args.fallbackLocale) context.req.fallbackLocale = args.fallbackLocale\n\n const options = {\n api: 'GraphQL',\n collection,\n data: args,\n depth: 0,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await resetPasswordOperation(options)\n const cookie = generatePayloadCookie({\n collectionConfig: collection.config,\n payload: context.req.payload,\n token: result.token,\n })\n context.headers['Set-Cookie'] = cookie\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.token\n }\n\n return result\n }\n\n return resolver\n}\n\nexport default resetPasswordResolver\n"],"names":["generatePayloadCookie","isolateObjectProperty","resetPasswordOperation","resetPasswordResolver","collection","resolver","_","args","context","locale","req","fallbackLocale","options","api","data","depth","result","cookie","collectionConfig","config","payload","token","headers","auth","removeTokenFromResponses"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,qBAAqB,EAAEC,sBAAsB,QAAQ,UAAS;AAI9F,SAASC,sBAAsBC,UAAsB;IACnD,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,IAAID,KAAKE,MAAM,EAAED,QAAQE,GAAG,CAACD,MAAM,GAAGF,KAAKE,MAAM;QACjD,IAAIF,KAAKI,cAAc,EAAEH,QAAQE,GAAG,CAACC,cAAc,GAAGJ,KAAKI,cAAc;QAEzE,MAAMC,UAAU;YACdC,KAAK;YACLT;YACAU,MAAMP;YACNQ,OAAO;YACPL,KAAKT,sBAAsBO,QAAQE,GAAG,EAAE;QAC1C;QAEA,MAAMM,SAAS,MAAMd,uBAAuBU;QAC5C,MAAMK,SAASjB,sBAAsB;YACnCkB,kBAAkBd,WAAWe,MAAM;YACnCC,SAASZ,QAAQE,GAAG,CAACU,OAAO;YAC5BC,OAAOL,OAAOK,KAAK;QACrB;QACAb,QAAQc,OAAO,CAAC,aAAa,GAAGL;QAEhC,IAAIb,WAAWe,MAAM,CAACI,IAAI,CAACC,wBAAwB,EAAE;YACnD,OAAOR,OAAOK,KAAK;QACrB;QAEA,OAAOL;IACT;IAEA,OAAOX;AACT;AAEA,eAAeF,sBAAqB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/auth/unlock.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { isolateObjectProperty, unlockOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction unlockResolver(collection: Collection) {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n data: { email: args.email },\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await unlockOperation(options)\n return result\n }\n\n return resolver\n}\n\nexport default unlockResolver\n"],"names":["isolateObjectProperty","unlockOperation","unlockResolver","collection","resolver","_","args","context","options","data","email","req","result"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/auth/unlock.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { isolateObjectProperty, unlockOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction unlockResolver(collection: Collection) {\n async function resolver(_, args, context: Context) {\n const options = {\n collection,\n data: { email: args.email },\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await unlockOperation(options)\n return result\n }\n\n return resolver\n}\n\nexport default unlockResolver\n"],"names":["isolateObjectProperty","unlockOperation","unlockResolver","collection","resolver","_","args","context","options","data","email","req","result"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,eAAe,QAAQ,UAAS;AAIhE,SAASC,eAAeC,UAAsB;IAC5C,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,MAAMC,UAAU;YACdL;YACAM,MAAM;gBAAEC,OAAOJ,KAAKI,KAAK;YAAC;YAC1BC,KAAKX,sBAAsBO,QAAQI,GAAG,EAAE;QAC1C;QAEA,MAAMC,SAAS,MAAMX,gBAAgBO;QACrC,OAAOI;IACT;IAEA,OAAOR;AACT;AAEA,eAAeF,eAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/auth/verifyEmail.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { isolateObjectProperty, verifyEmailOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction verifyEmailResolver(collection: Collection) {\n async function resolver(_, args, context: Context) {\n if (args.locale) context.req.locale = args.locale\n if (args.fallbackLocale) context.req.fallbackLocale = args.fallbackLocale\n\n const options = {\n api: 'GraphQL',\n collection,\n req: isolateObjectProperty(context.req, 'transactionID'),\n token: args.token,\n }\n\n const success = await verifyEmailOperation(options)\n return success\n }\n\n return resolver\n}\n\nexport default verifyEmailResolver\n"],"names":["isolateObjectProperty","verifyEmailOperation","verifyEmailResolver","collection","resolver","_","args","context","locale","req","fallbackLocale","options","api","token","success"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/auth/verifyEmail.ts"],"sourcesContent":["import type { Collection } from 'payload'\n\nimport { isolateObjectProperty, verifyEmailOperation } from 'payload'\n\nimport type { Context } from '../types.js'\n\nfunction verifyEmailResolver(collection: Collection) {\n async function resolver(_, args, context: Context) {\n if (args.locale) context.req.locale = args.locale\n if (args.fallbackLocale) context.req.fallbackLocale = args.fallbackLocale\n\n const options = {\n api: 'GraphQL',\n collection,\n req: isolateObjectProperty(context.req, 'transactionID'),\n token: args.token,\n }\n\n const success = await verifyEmailOperation(options)\n return success\n }\n\n return resolver\n}\n\nexport default verifyEmailResolver\n"],"names":["isolateObjectProperty","verifyEmailOperation","verifyEmailResolver","collection","resolver","_","args","context","locale","req","fallbackLocale","options","api","token","success"],"mappings":"AAEA,SAASA,qBAAqB,EAAEC,oBAAoB,QAAQ,UAAS;AAIrE,SAASC,oBAAoBC,UAAsB;IACjD,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,IAAID,KAAKE,MAAM,EAAED,QAAQE,GAAG,CAACD,MAAM,GAAGF,KAAKE,MAAM;QACjD,IAAIF,KAAKI,cAAc,EAAEH,QAAQE,GAAG,CAACC,cAAc,GAAGJ,KAAKI,cAAc;QAEzE,MAAMC,UAAU;YACdC,KAAK;YACLT;YACAM,KAAKT,sBAAsBO,QAAQE,GAAG,EAAE;YACxCI,OAAOP,KAAKO,KAAK;QACnB;QAEA,MAAMC,UAAU,MAAMb,qBAAqBU;QAC3C,OAAOG;IACT;IAEA,OAAOV;AACT;AAEA,eAAeF,oBAAmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/collections/count.ts"],"sourcesContent":["import type { Collection, PayloadRequestWithData, Where } from 'payload'\n\nimport { countOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n data: Record<string, unknown>\n locale?: string\n where?: Where\n },\n context: {\n req: PayloadRequestWithData\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => Promise<{ totalDocs: number }>\n\nexport function countResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = fallbackLocale\n context.req = req\n\n const options = {\n collection,\n req: isolateObjectProperty(req, 'transactionID'),\n where: args.where,\n }\n\n const results = await countOperation(options)\n return results\n }\n}\n"],"names":["countOperation","isolateObjectProperty","countResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","options","where","results"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/collections/count.ts"],"sourcesContent":["import type { Collection, PayloadRequestWithData, Where } from 'payload'\n\nimport { countOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n data: Record<string, unknown>\n locale?: string\n where?: Where\n },\n context: {\n req: PayloadRequestWithData\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => Promise<{ totalDocs: number }>\n\nexport function countResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = fallbackLocale\n context.req = req\n\n const options = {\n collection,\n req: isolateObjectProperty(req, 'transactionID'),\n where: args.where,\n }\n\n const results = await countOperation(options)\n return results\n }\n}\n"],"names":["countOperation","isolateObjectProperty","countResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","options","where","results"],"mappings":"AAEA,SAASA,cAAc,EAAEC,qBAAqB,QAAQ,UAAS;AAiB/D,OAAO,SAASC,cAAcC,UAAsB;IAClD,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAI,EAAEC,GAAG,EAAE,GAAGD;QACd,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,MAAMP,sBAAsBO,KAAK;QACjCA,MAAMP,sBAAsBO,KAAK;QACjCA,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGA;QACrBH,QAAQC,GAAG,GAAGA;QAEd,MAAMG,UAAU;YACdR;YACAK,KAAKP,sBAAsBO,KAAK;YAChCI,OAAON,KAAKM,KAAK;QACnB;QAEA,MAAMC,UAAU,MAAMb,eAAeW;QACrC,OAAOE;IACT;AACF"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type { Collection,
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
data: MarkOptional<GeneratedTypes['collections'][TSlug], 'createdAt' | 'id' | 'sizes' | 'updatedAt'>;
|
|
1
|
+
import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequestWithData, RequiredDataFromCollectionSlug } from 'payload';
|
|
2
|
+
export type Resolver<TSlug extends CollectionSlug> = (_: unknown, args: {
|
|
3
|
+
data: RequiredDataFromCollectionSlug<TSlug>;
|
|
5
4
|
draft: boolean;
|
|
6
5
|
locale?: string;
|
|
7
6
|
}, context: {
|
|
8
7
|
req: PayloadRequestWithData;
|
|
9
|
-
}) => Promise<
|
|
10
|
-
export default function createResolver<TSlug extends
|
|
8
|
+
}) => Promise<DataFromCollectionSlug<TSlug>>;
|
|
9
|
+
export default function createResolver<TSlug extends CollectionSlug>(collection: Collection): Resolver<TSlug>;
|
|
11
10
|
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,8BAA8B,EAC/B,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,cAAc,IAAI,CACnD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,IAAI,EAAE,8BAA8B,CAAC,KAAK,CAAC,CAAA;IAC3C,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,sBAAsB,CAAA;CAC5B,KACE,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AAE3C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,SAAS,cAAc,EACjE,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,KAAK,CAAC,CAkBjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/collections/create.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/collections/create.ts"],"sourcesContent":["import type {\n Collection,\n CollectionSlug,\n DataFromCollectionSlug,\n PayloadRequestWithData,\n RequiredDataFromCollectionSlug,\n} from 'payload'\n\nimport { createOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TSlug extends CollectionSlug> = (\n _: unknown,\n args: {\n data: RequiredDataFromCollectionSlug<TSlug>\n draft: boolean\n locale?: string\n },\n context: {\n req: PayloadRequestWithData\n },\n) => Promise<DataFromCollectionSlug<TSlug>>\n\nexport default function createResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<TSlug> {\n return async function resolver(_, args, context: Context) {\n if (args.locale) {\n context.req.locale = args.locale\n }\n\n const options = {\n collection,\n data: args.data,\n depth: 0,\n draft: args.draft,\n req: isolateObjectProperty(context.req, 'transactionID'),\n }\n\n const result = await createOperation(options)\n\n return result\n }\n}\n"],"names":["createOperation","isolateObjectProperty","createResolver","collection","resolver","_","args","context","locale","req","options","data","depth","draft","result"],"mappings":"AAQA,SAASA,eAAe,EAAEC,qBAAqB,QAAQ,UAAS;AAgBhE,eAAe,SAASC,eACtBC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAID,KAAKE,MAAM,EAAE;YACfD,QAAQE,GAAG,CAACD,MAAM,GAAGF,KAAKE,MAAM;QAClC;QAEA,MAAME,UAAU;YACdP;YACAQ,MAAML,KAAKK,IAAI;YACfC,OAAO;YACPC,OAAOP,KAAKO,KAAK;YACjBJ,KAAKR,sBAAsBM,QAAQE,GAAG,EAAE;QAC1C;QAEA,MAAMK,SAAS,MAAMd,gBAAgBU;QAErC,OAAOI;IACT;AACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { Collection,
|
|
2
|
-
export type Resolver<TSlug extends
|
|
1
|
+
import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequestWithData } from 'payload';
|
|
2
|
+
export type Resolver<TSlug extends CollectionSlug> = (_: unknown, args: {
|
|
3
3
|
draft: boolean;
|
|
4
4
|
fallbackLocale?: string;
|
|
5
5
|
id: number | string;
|
|
6
6
|
locale?: string;
|
|
7
7
|
}, context: {
|
|
8
8
|
req: PayloadRequestWithData;
|
|
9
|
-
}) => Promise<
|
|
10
|
-
export declare function getDeleteResolver<TSlug extends
|
|
9
|
+
}) => Promise<DataFromCollectionSlug<TSlug>>;
|
|
10
|
+
export declare function getDeleteResolver<TSlug extends CollectionSlug>(collection: Collection): Resolver<TSlug>;
|
|
11
11
|
//# sourceMappingURL=delete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,cAAc,IAAI,CACnD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,sBAAsB,CAAA;CAC5B,KACE,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;AAE3C,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,cAAc,EAC5D,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,KAAK,CAAC,CAgCjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/collections/delete.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/collections/delete.ts"],"sourcesContent":["import type {\n Collection,\n CollectionSlug,\n DataFromCollectionSlug,\n PayloadRequestWithData,\n} from 'payload'\n\nimport { deleteByIDOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TSlug extends CollectionSlug> = (\n _: unknown,\n args: {\n draft: boolean\n fallbackLocale?: string\n id: number | string\n locale?: string\n },\n context: {\n req: PayloadRequestWithData\n },\n) => Promise<DataFromCollectionSlug<TSlug>>\n\nexport function getDeleteResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<TSlug> {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = args.fallbackLocale || fallbackLocale\n if (!req.query) req.query = {}\n\n const draft: boolean =\n args.draft ?? req.query?.draft === 'false'\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') req.query.draft = String(draft)\n\n context.req = req\n\n const options = {\n id: args.id,\n collection,\n depth: 0,\n req: isolateObjectProperty(req, 'transactionID'),\n }\n\n const result = await deleteByIDOperation(options)\n\n return result\n }\n}\n"],"names":["deleteByIDOperation","isolateObjectProperty","getDeleteResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","query","draft","undefined","String","options","id","depth","result"],"mappings":"AAOA,SAASA,mBAAmB,EAAEC,qBAAqB,QAAQ,UAAS;AAiBpE,OAAO,SAASC,kBACdC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAI,EAAEC,GAAG,EAAE,GAAGD;QACd,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,MAAMP,sBAAsBO,KAAK;QACjCA,MAAMP,sBAAsBO,KAAK;QACjCA,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGJ,KAAKI,cAAc,IAAIA;QAC5C,IAAI,CAACF,IAAIG,KAAK,EAAEH,IAAIG,KAAK,GAAG,CAAC;QAE7B,MAAMC,QACJN,KAAKM,KAAK,IAAIJ,IAAIG,KAAK,EAAEC,UAAU,UAC/B,QACAJ,IAAIG,KAAK,EAAEC,UAAU,SACnB,OACAC;QACR,IAAI,OAAOD,UAAU,WAAWJ,IAAIG,KAAK,CAACC,KAAK,GAAGE,OAAOF;QAEzDL,QAAQC,GAAG,GAAGA;QAEd,MAAMO,UAAU;YACdC,IAAIV,KAAKU,EAAE;YACXb;YACAc,OAAO;YACPT,KAAKP,sBAAsBO,KAAK;QAClC;QAEA,MAAMU,SAAS,MAAMlB,oBAAoBe;QAEzC,OAAOG;IACT;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/collections/docAccess.ts"],"sourcesContent":["import type {\n Collection,\n CollectionPermission,\n GlobalPermission,\n PayloadRequestWithData,\n} from 'payload'\n\nimport { docAccessOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n id: number | string\n },\n context: {\n req: PayloadRequestWithData\n },\n) => Promise<CollectionPermission | GlobalPermission>\n\nexport function docAccessResolver(collection: Collection): Resolver {\n async function resolver(_, args, context: Context) {\n return docAccessOperation({\n id: args.id,\n collection,\n req: isolateObjectProperty(context.req, 'transactionID'),\n })\n }\n\n return resolver\n}\n"],"names":["docAccessOperation","isolateObjectProperty","docAccessResolver","collection","resolver","_","args","context","id","req"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/collections/docAccess.ts"],"sourcesContent":["import type {\n Collection,\n CollectionPermission,\n GlobalPermission,\n PayloadRequestWithData,\n} from 'payload'\n\nimport { docAccessOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n id: number | string\n },\n context: {\n req: PayloadRequestWithData\n },\n) => Promise<CollectionPermission | GlobalPermission>\n\nexport function docAccessResolver(collection: Collection): Resolver {\n async function resolver(_, args, context: Context) {\n return docAccessOperation({\n id: args.id,\n collection,\n req: isolateObjectProperty(context.req, 'transactionID'),\n })\n }\n\n return resolver\n}\n"],"names":["docAccessOperation","isolateObjectProperty","docAccessResolver","collection","resolver","_","args","context","id","req"],"mappings":"AAOA,SAASA,kBAAkB,EAAEC,qBAAqB,QAAQ,UAAS;AAcnE,OAAO,SAASC,kBAAkBC,UAAsB;IACtD,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QAC/C,OAAOP,mBAAmB;YACxBQ,IAAIF,KAAKE,EAAE;YACXL;YACAM,KAAKR,sBAAsBM,QAAQE,GAAG,EAAE;QAC1C;IACF;IAEA,OAAOL;AACT"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { Collection,
|
|
2
|
-
export type Resolver<
|
|
1
|
+
import type { Collection, CollectionSlug, DataFromCollectionSlug, PayloadRequestWithData } from 'payload';
|
|
2
|
+
export type Resolver<TData> = (_: unknown, args: {
|
|
3
3
|
draft: boolean;
|
|
4
4
|
fallbackLocale?: string;
|
|
5
5
|
id: string;
|
|
6
6
|
locale?: string;
|
|
7
7
|
}, context: {
|
|
8
8
|
req: PayloadRequestWithData;
|
|
9
|
-
}) => Promise<
|
|
10
|
-
export default function duplicateResolver<
|
|
9
|
+
}) => Promise<TData>;
|
|
10
|
+
export default function duplicateResolver<TSlug extends CollectionSlug>(collection: Collection): Resolver<DataFromCollectionSlug<TSlug>>;
|
|
11
11
|
//# sourceMappingURL=duplicate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/duplicate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../../src/resolvers/collections/duplicate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,CAC5B,CAAC,EAAE,OAAO,EACV,IAAI,EAAE;IACJ,KAAK,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,EACD,OAAO,EAAE;IACP,GAAG,EAAE,sBAAsB,CAAA;CAC5B,KACE,OAAO,CAAC,KAAK,CAAC,CAAA;AAEnB,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,SAAS,cAAc,EACpE,UAAU,EAAE,UAAU,GACrB,QAAQ,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAqBzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/collections/duplicate.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/collections/duplicate.ts"],"sourcesContent":["import type {\n Collection,\n CollectionSlug,\n DataFromCollectionSlug,\n PayloadRequestWithData,\n} from 'payload'\n\nimport { duplicateOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver<TData> = (\n _: unknown,\n args: {\n draft: boolean\n fallbackLocale?: string\n id: string\n locale?: string\n },\n context: {\n req: PayloadRequestWithData\n },\n) => Promise<TData>\n\nexport default function duplicateResolver<TSlug extends CollectionSlug>(\n collection: Collection,\n): Resolver<DataFromCollectionSlug<TSlug>> {\n return async function resolver(_, args, context: Context) {\n const { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req.locale = args.locale || locale\n req.fallbackLocale = args.fallbackLocale || fallbackLocale\n context.req = req\n\n const options = {\n id: args.id,\n collection,\n depth: 0,\n draft: args.draft,\n req: isolateObjectProperty(req, 'transactionID'),\n }\n\n const result = await duplicateOperation(options)\n\n return result\n }\n}\n"],"names":["duplicateOperation","isolateObjectProperty","duplicateResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","options","id","depth","draft","result"],"mappings":"AAOA,SAASA,kBAAkB,EAAEC,qBAAqB,QAAQ,UAAS;AAiBnE,eAAe,SAASC,kBACtBC,UAAsB;IAEtB,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,MAAM,EAAEC,GAAG,EAAE,GAAGD;QAChB,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGJ,KAAKI,cAAc,IAAIA;QAC5CH,QAAQC,GAAG,GAAGA;QAEd,MAAMG,UAAU;YACdC,IAAIN,KAAKM,EAAE;YACXT;YACAU,OAAO;YACPC,OAAOR,KAAKQ,KAAK;YACjBN,KAAKP,sBAAsBO,KAAK;QAClC;QAEA,MAAMO,SAAS,MAAMf,mBAAmBW;QAExC,OAAOI;IACT;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resolvers/collections/find.ts"],"sourcesContent":["import type { Collection, PaginatedDocs, PayloadRequestWithData, Where } from 'payload'\n\nimport { findOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n data: Record<string, unknown>\n draft: boolean\n fallbackLocale?: string\n limit?: number\n locale?: string\n page?: number\n sort?: string\n where?: Where\n },\n context: {\n req: PayloadRequestWithData\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => Promise<PaginatedDocs<any>>\n\nexport function findResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = args.fallbackLocale || fallbackLocale\n if (!req.query) req.query = {}\n\n const draft: boolean =\n args.draft ?? req.query?.draft === 'false'\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') req.query.draft = String(draft)\n\n context.req = req\n\n const options = {\n collection,\n depth: 0,\n draft: args.draft,\n limit: args.limit,\n page: args.page,\n req: isolateObjectProperty(req, 'transactionID'),\n sort: args.sort,\n where: args.where,\n }\n\n const results = await findOperation(options)\n return results\n }\n}\n"],"names":["findOperation","isolateObjectProperty","findResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","query","draft","undefined","String","options","depth","limit","page","sort","where","results"],"
|
|
1
|
+
{"version":3,"sources":["../../../src/resolvers/collections/find.ts"],"sourcesContent":["import type { Collection, PaginatedDocs, PayloadRequestWithData, Where } from 'payload'\n\nimport { findOperation, isolateObjectProperty } from 'payload'\n\nimport type { Context } from '../types.js'\n\nexport type Resolver = (\n _: unknown,\n args: {\n data: Record<string, unknown>\n draft: boolean\n fallbackLocale?: string\n limit?: number\n locale?: string\n page?: number\n sort?: string\n where?: Where\n },\n context: {\n req: PayloadRequestWithData\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => Promise<PaginatedDocs<any>>\n\nexport function findResolver(collection: Collection): Resolver {\n return async function resolver(_, args, context: Context) {\n let { req } = context\n const locale = req.locale\n const fallbackLocale = req.fallbackLocale\n req = isolateObjectProperty(req, 'locale')\n req = isolateObjectProperty(req, 'fallbackLocale')\n req.locale = args.locale || locale\n req.fallbackLocale = args.fallbackLocale || fallbackLocale\n if (!req.query) req.query = {}\n\n const draft: boolean =\n args.draft ?? req.query?.draft === 'false'\n ? false\n : req.query?.draft === 'true'\n ? true\n : undefined\n if (typeof draft === 'boolean') req.query.draft = String(draft)\n\n context.req = req\n\n const options = {\n collection,\n depth: 0,\n draft: args.draft,\n limit: args.limit,\n page: args.page,\n req: isolateObjectProperty(req, 'transactionID'),\n sort: args.sort,\n where: args.where,\n }\n\n const results = await findOperation(options)\n return results\n }\n}\n"],"names":["findOperation","isolateObjectProperty","findResolver","collection","resolver","_","args","context","req","locale","fallbackLocale","query","draft","undefined","String","options","depth","limit","page","sort","where","results"],"mappings":"AAEA,SAASA,aAAa,EAAEC,qBAAqB,QAAQ,UAAS;AAsB9D,OAAO,SAASC,aAAaC,UAAsB;IACjD,OAAO,eAAeC,SAASC,CAAC,EAAEC,IAAI,EAAEC,OAAgB;QACtD,IAAI,EAAEC,GAAG,EAAE,GAAGD;QACd,MAAME,SAASD,IAAIC,MAAM;QACzB,MAAMC,iBAAiBF,IAAIE,cAAc;QACzCF,MAAMP,sBAAsBO,KAAK;QACjCA,MAAMP,sBAAsBO,KAAK;QACjCA,IAAIC,MAAM,GAAGH,KAAKG,MAAM,IAAIA;QAC5BD,IAAIE,cAAc,GAAGJ,KAAKI,cAAc,IAAIA;QAC5C,IAAI,CAACF,IAAIG,KAAK,EAAEH,IAAIG,KAAK,GAAG,CAAC;QAE7B,MAAMC,QACJN,KAAKM,KAAK,IAAIJ,IAAIG,KAAK,EAAEC,UAAU,UAC/B,QACAJ,IAAIG,KAAK,EAAEC,UAAU,SACnB,OACAC;QACR,IAAI,OAAOD,UAAU,WAAWJ,IAAIG,KAAK,CAACC,KAAK,GAAGE,OAAOF;QAEzDL,QAAQC,GAAG,GAAGA;QAEd,MAAMO,UAAU;YACdZ;YACAa,OAAO;YACPJ,OAAON,KAAKM,KAAK;YACjBK,OAAOX,KAAKW,KAAK;YACjBC,MAAMZ,KAAKY,IAAI;YACfV,KAAKP,sBAAsBO,KAAK;YAChCW,MAAMb,KAAKa,IAAI;YACfC,OAAOd,KAAKc,KAAK;QACnB;QAEA,MAAMC,UAAU,MAAMrB,cAAce;QACpC,OAAOM;IACT;AACF"}
|