import { inspect } from "/_nuxt/node_modules/graphql/jsutils/inspect.mjs?v=e4f18c29"; import { invariant } from "/_nuxt/node_modules/graphql/jsutils/invariant.mjs?v=e4f18c29"; import { GraphQLError } from "/_nuxt/node_modules/graphql/error/GraphQLError.mjs?v=e4f18c29"; import { OperationTypeNode } from "/_nuxt/node_modules/graphql/language/ast.mjs?v=e4f18c29"; import { DirectiveLocation } from "/_nuxt/node_modules/graphql/language/directiveLocation.mjs?v=e4f18c29"; import { Kind } from "/_nuxt/node_modules/graphql/language/kinds.mjs?v=e4f18c29"; import { specifiedDirectives } from "/_nuxt/node_modules/graphql/type/directives.mjs?v=e4f18c29"; /** * Known directives * * A GraphQL document is only valid if all `@directives` are known by the * schema and legally positioned. * * See https://spec.graphql.org/draft/#sec-Directives-Are-Defined */ export function KnownDirectivesRule(context) { const locationsMap = Object.create(null); const schema = context.getSchema(); const definedDirectives = schema ? schema.getDirectives() : specifiedDirectives; for (const directive of definedDirectives) { locationsMap[directive.name] = directive.locations; } const astDefinitions = context.getDocument().definitions; for (const def of astDefinitions) { if (def.kind === Kind.DIRECTIVE_DEFINITION) { locationsMap[def.name.value] = def.locations.map((name) => name.value); } } return { Directive(node, _key, _parent, _path, ancestors) { const name = node.name.value; const locations = locationsMap[name]; if (!locations) { context.reportError( new GraphQLError(`Unknown directive "@${name}".`, { nodes: node, }), ); return; } const candidateLocation = getDirectiveLocationForASTPath(ancestors); if (candidateLocation && !locations.includes(candidateLocation)) { context.reportError( new GraphQLError( `Directive "@${name}" may not be used on ${candidateLocation}.`, { nodes: node, }, ), ); } }, }; } function getDirectiveLocationForASTPath(ancestors) { const appliedTo = ancestors[ancestors.length - 1]; 'kind' in appliedTo || invariant(false); switch (appliedTo.kind) { case Kind.OPERATION_DEFINITION: return getDirectiveLocationForOperation(appliedTo.operation); case Kind.FIELD: return DirectiveLocation.FIELD; case Kind.FRAGMENT_SPREAD: return DirectiveLocation.FRAGMENT_SPREAD; case Kind.INLINE_FRAGMENT: return DirectiveLocation.INLINE_FRAGMENT; case Kind.FRAGMENT_DEFINITION: return DirectiveLocation.FRAGMENT_DEFINITION; case Kind.VARIABLE_DEFINITION: return DirectiveLocation.VARIABLE_DEFINITION; case Kind.SCHEMA_DEFINITION: case Kind.SCHEMA_EXTENSION: return DirectiveLocation.SCHEMA; case Kind.SCALAR_TYPE_DEFINITION: case Kind.SCALAR_TYPE_EXTENSION: return DirectiveLocation.SCALAR; case Kind.OBJECT_TYPE_DEFINITION: case Kind.OBJECT_TYPE_EXTENSION: return DirectiveLocation.OBJECT; case Kind.FIELD_DEFINITION: return DirectiveLocation.FIELD_DEFINITION; case Kind.INTERFACE_TYPE_DEFINITION: case Kind.INTERFACE_TYPE_EXTENSION: return DirectiveLocation.INTERFACE; case Kind.UNION_TYPE_DEFINITION: case Kind.UNION_TYPE_EXTENSION: return DirectiveLocation.UNION; case Kind.ENUM_TYPE_DEFINITION: case Kind.ENUM_TYPE_EXTENSION: return DirectiveLocation.ENUM; case Kind.ENUM_VALUE_DEFINITION: return DirectiveLocation.ENUM_VALUE; case Kind.INPUT_OBJECT_TYPE_DEFINITION: case Kind.INPUT_OBJECT_TYPE_EXTENSION: return DirectiveLocation.INPUT_OBJECT; case Kind.INPUT_VALUE_DEFINITION: { const parentNode = ancestors[ancestors.length - 3]; 'kind' in parentNode || invariant(false); return parentNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION ? DirectiveLocation.INPUT_FIELD_DEFINITION : DirectiveLocation.ARGUMENT_DEFINITION; } // Not reachable, all possible types have been considered. /* c8 ignore next */ default: false || invariant(false, 'Unexpected kind: ' + inspect(appliedTo.kind)); } } function getDirectiveLocationForOperation(operation) { switch (operation) { case OperationTypeNode.QUERY: return DirectiveLocation.QUERY; case OperationTypeNode.MUTATION: return DirectiveLocation.MUTATION; case OperationTypeNode.SUBSCRIPTION: return DirectiveLocation.SUBSCRIPTION; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIktub3duRGlyZWN0aXZlc1J1bGUubWpzP3Y9ZTRmMThjMjkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5zcGVjdCB9IGZyb20gXCIvX251eHQvbm9kZV9tb2R1bGVzL2dyYXBocWwvanN1dGlscy9pbnNwZWN0Lm1qcz92PWU0ZjE4YzI5XCI7XG5pbXBvcnQgeyBpbnZhcmlhbnQgfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2pzdXRpbHMvaW52YXJpYW50Lm1qcz92PWU0ZjE4YzI5XCI7XG5pbXBvcnQgeyBHcmFwaFFMRXJyb3IgfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2Vycm9yL0dyYXBoUUxFcnJvci5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHsgT3BlcmF0aW9uVHlwZU5vZGUgfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2xhbmd1YWdlL2FzdC5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHsgRGlyZWN0aXZlTG9jYXRpb24gfSBmcm9tIFwiL19udXh0L25vZGVfbW9kdWxlcy9ncmFwaHFsL2xhbmd1YWdlL2RpcmVjdGl2ZUxvY2F0aW9uLm1qcz92PWU0ZjE4YzI5XCI7XG5pbXBvcnQgeyBLaW5kIH0gZnJvbSBcIi9fbnV4dC9ub2RlX21vZHVsZXMvZ3JhcGhxbC9sYW5ndWFnZS9raW5kcy5tanM/dj1lNGYxOGMyOVwiO1xuaW1wb3J0IHsgc3BlY2lmaWVkRGlyZWN0aXZlcyB9IGZyb20gXCIvX251eHQvbm9kZV9tb2R1bGVzL2dyYXBocWwvdHlwZS9kaXJlY3RpdmVzLm1qcz92PWU0ZjE4YzI5XCI7XG5cbi8qKlxuICogS25vd24gZGlyZWN0aXZlc1xuICpcbiAqIEEgR3JhcGhRTCBkb2N1bWVudCBpcyBvbmx5IHZhbGlkIGlmIGFsbCBgQGRpcmVjdGl2ZXNgIGFyZSBrbm93biBieSB0aGVcbiAqIHNjaGVtYSBhbmQgbGVnYWxseSBwb3NpdGlvbmVkLlxuICpcbiAqIFNlZSBodHRwczovL3NwZWMuZ3JhcGhxbC5vcmcvZHJhZnQvI3NlYy1EaXJlY3RpdmVzLUFyZS1EZWZpbmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBLbm93bkRpcmVjdGl2ZXNSdWxlKGNvbnRleHQpIHtcbiAgY29uc3QgbG9jYXRpb25zTWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgY29uc3Qgc2NoZW1hID0gY29udGV4dC5nZXRTY2hlbWEoKTtcbiAgY29uc3QgZGVmaW5lZERpcmVjdGl2ZXMgPSBzY2hlbWFcbiAgICA/IHNjaGVtYS5nZXREaXJlY3RpdmVzKClcbiAgICA6IHNwZWNpZmllZERpcmVjdGl2ZXM7XG5cbiAgZm9yIChjb25zdCBkaXJlY3RpdmUgb2YgZGVmaW5lZERpcmVjdGl2ZXMpIHtcbiAgICBsb2NhdGlvbnNNYXBbZGlyZWN0aXZlLm5hbWVdID0gZGlyZWN0aXZlLmxvY2F0aW9ucztcbiAgfVxuXG4gIGNvbnN0IGFzdERlZmluaXRpb25zID0gY29udGV4dC5nZXREb2N1bWVudCgpLmRlZmluaXRpb25zO1xuXG4gIGZvciAoY29uc3QgZGVmIG9mIGFzdERlZmluaXRpb25zKSB7XG4gICAgaWYgKGRlZi5raW5kID09PSBLaW5kLkRJUkVDVElWRV9ERUZJTklUSU9OKSB7XG4gICAgICBsb2NhdGlvbnNNYXBbZGVmLm5hbWUudmFsdWVdID0gZGVmLmxvY2F0aW9ucy5tYXAoKG5hbWUpID0+IG5hbWUudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgRGlyZWN0aXZlKG5vZGUsIF9rZXksIF9wYXJlbnQsIF9wYXRoLCBhbmNlc3RvcnMpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBub2RlLm5hbWUudmFsdWU7XG4gICAgICBjb25zdCBsb2NhdGlvbnMgPSBsb2NhdGlvbnNNYXBbbmFtZV07XG5cbiAgICAgIGlmICghbG9jYXRpb25zKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0RXJyb3IoXG4gICAgICAgICAgbmV3IEdyYXBoUUxFcnJvcihgVW5rbm93biBkaXJlY3RpdmUgXCJAJHtuYW1lfVwiLmAsIHtcbiAgICAgICAgICAgIG5vZGVzOiBub2RlLFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbmRpZGF0ZUxvY2F0aW9uID0gZ2V0RGlyZWN0aXZlTG9jYXRpb25Gb3JBU1RQYXRoKGFuY2VzdG9ycyk7XG5cbiAgICAgIGlmIChjYW5kaWRhdGVMb2NhdGlvbiAmJiAhbG9jYXRpb25zLmluY2x1ZGVzKGNhbmRpZGF0ZUxvY2F0aW9uKSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydEVycm9yKFxuICAgICAgICAgIG5ldyBHcmFwaFFMRXJyb3IoXG4gICAgICAgICAgICBgRGlyZWN0aXZlIFwiQCR7bmFtZX1cIiBtYXkgbm90IGJlIHVzZWQgb24gJHtjYW5kaWRhdGVMb2NhdGlvbn0uYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbm9kZXM6IG5vZGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RGlyZWN0aXZlTG9jYXRpb25Gb3JBU1RQYXRoKGFuY2VzdG9ycykge1xuICBjb25zdCBhcHBsaWVkVG8gPSBhbmNlc3RvcnNbYW5jZXN0b3JzLmxlbmd0aCAtIDFdO1xuICAna2luZCcgaW4gYXBwbGllZFRvIHx8IGludmFyaWFudChmYWxzZSk7XG5cbiAgc3dpdGNoIChhcHBsaWVkVG8ua2luZCkge1xuICAgIGNhc2UgS2luZC5PUEVSQVRJT05fREVGSU5JVElPTjpcbiAgICAgIHJldHVybiBnZXREaXJlY3RpdmVMb2NhdGlvbkZvck9wZXJhdGlvbihhcHBsaWVkVG8ub3BlcmF0aW9uKTtcblxuICAgIGNhc2UgS2luZC5GSUVMRDpcbiAgICAgIHJldHVybiBEaXJlY3RpdmVMb2NhdGlvbi5GSUVMRDtcblxuICAgIGNhc2UgS2luZC5GUkFHTUVOVF9TUFJFQUQ6XG4gICAgICByZXR1cm4gRGlyZWN0aXZlTG9jYXRpb24uRlJBR01FTlRfU1BSRUFEO1xuXG4gICAgY2FzZSBLaW5kLklOTElORV9GUkFHTUVOVDpcbiAgICAgIHJldHVybiBEaXJlY3RpdmVMb2NhdGlvbi5JTkxJTkVfRlJBR01FTlQ7XG5cbiAgICBjYXNlIEtpbmQuRlJBR01FTlRfREVGSU5JVElPTjpcbiAgICAgIHJldHVybiBEaXJlY3RpdmVMb2NhdGlvbi5GUkFHTUVOVF9ERUZJTklUSU9OO1xuXG4gICAgY2FzZSBLaW5kLlZBUklBQkxFX0RFRklOSVRJT046XG4gICAgICByZXR1cm4gRGlyZWN0aXZlTG9jYXRpb24uVkFSSUFCTEVfREVGSU5JVElPTjtcblxuICAgIGNhc2UgS2luZC5TQ0hFTUFfREVGSU5JVElPTjpcbiAgICBjYXNlIEtpbmQuU0NIRU1BX0VYVEVOU0lPTjpcbiAgICAgIHJldHVybiBEaXJlY3RpdmVMb2NhdGlvbi5TQ0hFTUE7XG5cbiAgICBjYXNlIEtpbmQuU0NBTEFSX1RZUEVfREVGSU5JVElPTjpcbiAgICBjYXNlIEtpbmQuU0NBTEFSX1RZUEVfRVhURU5TSU9OOlxuICAgICAgcmV0dXJuIERpcmVjdGl2ZUxvY2F0aW9uLlNDQUxBUjtcblxuICAgIGNhc2UgS2luZC5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OOlxuICAgIGNhc2UgS2luZC5PQkpFQ1RfVFlQRV9FWFRFTlNJT046XG4gICAgICByZXR1cm4gRGlyZWN0aXZlTG9jYXRpb24uT0JKRUNUO1xuXG4gICAgY2FzZSBLaW5kLkZJRUxEX0RFRklOSVRJT046XG4gICAgICByZXR1cm4gRGlyZWN0aXZlTG9jYXRpb24uRklFTERfREVGSU5JVElPTjtcblxuICAgIGNhc2UgS2luZC5JTlRFUkZBQ0VfVFlQRV9ERUZJTklUSU9OOlxuICAgIGNhc2UgS2luZC5JTlRFUkZBQ0VfVFlQRV9FWFRFTlNJT046XG4gICAgICByZXR1cm4gRGlyZWN0aXZlTG9jYXRpb24uSU5URVJGQUNFO1xuXG4gICAgY2FzZSBLaW5kLlVOSU9OX1RZUEVfREVGSU5JVElPTjpcbiAgICBjYXNlIEtpbmQuVU5JT05fVFlQRV9FWFRFTlNJT046XG4gICAgICByZXR1cm4gRGlyZWN0aXZlTG9jYXRpb24uVU5JT047XG5cbiAgICBjYXNlIEtpbmQuRU5VTV9UWVBFX0RFRklOSVRJT046XG4gICAgY2FzZSBLaW5kLkVOVU1fVFlQRV9FWFRFTlNJT046XG4gICAgICByZXR1cm4gRGlyZWN0aXZlTG9jYXRpb24uRU5VTTtcblxuICAgIGNhc2UgS2luZC5FTlVNX1ZBTFVFX0RFRklOSVRJT046XG4gICAgICByZXR1cm4gRGlyZWN0aXZlTG9jYXRpb24uRU5VTV9WQUxVRTtcblxuICAgIGNhc2UgS2luZC5JTlBVVF9PQkpFQ1RfVFlQRV9ERUZJTklUSU9OOlxuICAgIGNhc2UgS2luZC5JTlBVVF9PQkpFQ1RfVFlQRV9FWFRFTlNJT046XG4gICAgICByZXR1cm4gRGlyZWN0aXZlTG9jYXRpb24uSU5QVVRfT0JKRUNUO1xuXG4gICAgY2FzZSBLaW5kLklOUFVUX1ZBTFVFX0RFRklOSVRJT046IHtcbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBhbmNlc3RvcnNbYW5jZXN0b3JzLmxlbmd0aCAtIDNdO1xuICAgICAgJ2tpbmQnIGluIHBhcmVudE5vZGUgfHwgaW52YXJpYW50KGZhbHNlKTtcbiAgICAgIHJldHVybiBwYXJlbnROb2RlLmtpbmQgPT09IEtpbmQuSU5QVVRfT0JKRUNUX1RZUEVfREVGSU5JVElPTlxuICAgICAgICA/IERpcmVjdGl2ZUxvY2F0aW9uLklOUFVUX0ZJRUxEX0RFRklOSVRJT05cbiAgICAgICAgOiBEaXJlY3RpdmVMb2NhdGlvbi5BUkdVTUVOVF9ERUZJTklUSU9OO1xuICAgIH1cbiAgICAvLyBOb3QgcmVhY2hhYmxlLCBhbGwgcG9zc2libGUgdHlwZXMgaGF2ZSBiZWVuIGNvbnNpZGVyZWQuXG5cbiAgICAvKiBjOCBpZ25vcmUgbmV4dCAqL1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGZhbHNlIHx8IGludmFyaWFudChmYWxzZSwgJ1VuZXhwZWN0ZWQga2luZDogJyArIGluc3BlY3QoYXBwbGllZFRvLmtpbmQpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREaXJlY3RpdmVMb2NhdGlvbkZvck9wZXJhdGlvbihvcGVyYXRpb24pIHtcbiAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICBjYXNlIE9wZXJhdGlvblR5cGVOb2RlLlFVRVJZOlxuICAgICAgcmV0dXJuIERpcmVjdGl2ZUxvY2F0aW9uLlFVRVJZO1xuXG4gICAgY2FzZSBPcGVyYXRpb25UeXBlTm9kZS5NVVRBVElPTjpcbiAgICAgIHJldHVybiBEaXJlY3RpdmVMb2NhdGlvbi5NVVRBVElPTjtcblxuICAgIGNhc2UgT3BlcmF0aW9uVHlwZU5vZGUuU1VCU0NSSVBUSU9OOlxuICAgICAgcmV0dXJuIERpcmVjdGl2ZUxvY2F0aW9uLlNVQlNDUklQVElPTjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDcEYsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztBQUN4RixNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUks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QUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztBQUM1RSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDOztBQUVGLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDVCxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7QUFDbEMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQzs7QUFFMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVc7QUFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSTtBQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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