gatsby 3.6.1 → 3.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/schema/schema.js +22 -1
- package/dist/schema/schema.js.map +1 -1
- package/gatsby-admin-public/index.html +1 -1
- package/gatsby-admin-public/pages/index.html +1 -1
- package/gatsby-admin-public/plugins/index.html +1 -1
- package/gatsby-admin-public/recipe/index.html +1 -1
- package/gatsby-admin-public/recipes/index.html +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.6.2](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.6.1...gatsby@3.6.2) (2021-06-02)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **gatsby:** merge resolveType when merging abstract types ([#31710](https://github.com/gatsbyjs/gatsby/issues/31710)) ([#31723](https://github.com/gatsbyjs/gatsby/issues/31723)) ([f9ad35c](https://github.com/gatsbyjs/gatsby/commit/f9ad35c65122862ddb15713f81f3fb4cf5eae7b0))
|
|
11
|
+
|
|
6
12
|
## [3.6.1](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.6.0...gatsby@3.6.1) (2021-05-27)
|
|
7
13
|
|
|
8
14
|
### Bug Fixes
|
package/dist/schema/schema.js
CHANGED
|
@@ -21,7 +21,8 @@ const {
|
|
|
21
21
|
GraphQLNonNull,
|
|
22
22
|
GraphQLList,
|
|
23
23
|
GraphQLObjectType,
|
|
24
|
-
GraphQLInterfaceType
|
|
24
|
+
GraphQLInterfaceType,
|
|
25
|
+
GraphQLUnionType
|
|
25
26
|
} = require(`graphql`);
|
|
26
27
|
|
|
27
28
|
const {
|
|
@@ -449,6 +450,13 @@ const mergeTypes = ({
|
|
|
449
450
|
type.getInterfaces().forEach(iface => typeComposer.addInterface(iface));
|
|
450
451
|
}
|
|
451
452
|
|
|
453
|
+
if (type instanceof GraphQLInterfaceType || type instanceof InterfaceTypeComposer || type instanceof GraphQLUnionType || type instanceof UnionTypeComposer) {
|
|
454
|
+
mergeResolveType({
|
|
455
|
+
typeComposer,
|
|
456
|
+
type
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
|
|
452
460
|
if (isNamedTypeComposer(type)) {
|
|
453
461
|
typeComposer.extendExtensions(type.getExtensions());
|
|
454
462
|
}
|
|
@@ -1376,4 +1384,17 @@ const mergeFields = ({
|
|
|
1376
1384
|
typeComposer.setField(fieldName, fieldConfig);
|
|
1377
1385
|
}
|
|
1378
1386
|
});
|
|
1387
|
+
|
|
1388
|
+
const mergeResolveType = ({
|
|
1389
|
+
typeComposer,
|
|
1390
|
+
type
|
|
1391
|
+
}) => {
|
|
1392
|
+
if ((type instanceof GraphQLInterfaceType || type instanceof GraphQLUnionType) && type.resolveType) {
|
|
1393
|
+
typeComposer.setResolveType(type.resolveType);
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
if ((type instanceof InterfaceTypeComposer || type instanceof UnionTypeComposer) && type.getResolveType()) {
|
|
1397
|
+
typeComposer.setResolveType(type.getResolveType());
|
|
1398
|
+
}
|
|
1399
|
+
};
|
|
1379
1400
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/schema.js"],"names":["_","require","invariant","isSpecifiedScalarType","isIntrospectionType","assertValidName","GraphQLNonNull","GraphQLList","GraphQLObjectType","GraphQLInterfaceType","ObjectTypeComposer","InterfaceTypeComposer","UnionTypeComposer","InputTypeComposer","ScalarTypeComposer","EnumTypeComposer","getNode","getNodesByType","apiRunner","report","addNodeInterfaceFields","overridableBuiltInTypeNames","addInferredType","addInferredTypes","findOne","findManyPaginated","wrappingResolver","defaultResolver","processFieldExtensions","internalExtensionNames","isASTDocument","parseTypeDef","reportParsingError","printTypeDefinitions","buildSchema","schemaComposer","types","typeMapping","fieldExtensions","thirdPartySchemas","printConfig","typeConflictReporter","inferenceMetadata","parentSpan","updateSchemaComposer","schema","rebuildSchemaWithSitePage","typeComposer","getOTC","shouldInfer","hasExtension","getExtension","processTypeComposer","freezeTypeComposers","module","exports","excluded","Set","Array","from","values","forEach","tc","isCompositeTC","has","getTypeName","type","getType","activity","phantomActivity","start","addTypes","span","end","addInferredChildOfExtensions","config","addSetFieldsOnGraphQLNodeTypeFields","addConvenienceChildrenFields","Promise","all","map","checkQueryableInterfaces","addThirdPartySchemas","addCustomResolveFunctions","attachTracingResolver","hasInterface","determineSearchableFields","addTypeToRootQuery","isNodeInterface","fieldNames","query","typeName","camelCase","queryAll","convenienceChild","convenienceChildren","typeOrTypeDef","plugin","parsedTypes","createdFrom","parseTypes","doc","error","processAddedType","createTypeComposerFromGatsbyType","checkIsAllowedTypeName","get","mergeTypes","name","typeOwner","isOverridableBuiltInType","isSafeMerge","warn","mergeFields","fields","getFields","getInterfaces","iface","addInterface","isNamedTypeComposer","extendExtensions","getExtensions","addExtensions","add","getResolveType","setResolveType","node","internal","addSchemaMustHaveType","setExtension","directives","getDirectives","args","hasCorrectIdField","hasField","getFieldType","toString","panic","getFieldNames","fieldName","setFieldExtension","getFieldDirectives","getFieldExtensions","Object","keys","filter","includes","definition","getDirective","defaultValue","undefined","arg","argumentDef","find","value","validate","message","endsWith","kind","GatsbyGraphQLTypeKind","OBJECT","createTemp","typeMapper","convertOutputFieldConfigMap","interfaces","tmpComposer","createInterfaceTC","getIFTC","INPUT_OBJECT","convertInputFieldConfigMap","UNION","createObjectTC","INTERFACE","ENUM","SCALAR","JSON","stringify","result","nodes","traceId","addNestedFields","schemaQueryType","getQueryType","queryTC","createTempTC","processThirdPartyTypeFields","Query","addFields","getTypeMap","typeHasFields","_fields","createTC","resetOverriddenThirdPartyTypeFields","getFieldExtension","removeField","fieldType","String","replace","extendField","intermediateSchema","createResolvers","resolvers","ignoreNonexistentTypes","fieldConfig","originalFieldConfig","getFieldConfig","originalTypeName","originalResolver","resolve","fieldTypeName","isArray","stringifyArray","newConfig","source","context","info","defaultFieldResolver","extendFieldExtensions","needsResolve","field","getField","extensions","dateformat","searchable","SEARCHABLE_ENUM","SEARCHABLE","sortable","SORTABLE_ENUM","SORTABLE","proxy","isEmpty","DEPRECATED_SEARCHABLE","DEPRECATED_SORTABLE","parentTypesToChildren","Map","mimeTypesToChildren","typesHandlingMimeTypes","mimeType","set","mimeTypes","parentType","children","parent","getAnyTC","child","createChildrenField","createChildField","parentTypes","isExplicitChild","childTypeComposer","childOfExtension","parentMimeTypes","some","addInferredChildOfExtension","parentTypeName","childNodesByType","groupChildNodesByType","push","description","path","nodeModel","getNodesByIds","ids","length","flatMap","Boolean","groupBy","sortInputTC","filterInputTC","paginationTC","queryName","queryNamePlural","sort","skip","limit","makeFieldNonNull","definitions","def","parsedType","makeSchemaDef","_gqType","delete","arr","item","Error","ofType","v","parseValue","interfaceTypeComposer","queryableInterfaces","incorrectTypes","size","t","join","entries","setField"],"mappings":"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","sourcesContent":["const _ = require(`lodash`)\nconst invariant = require(`invariant`)\nconst {\n isSpecifiedScalarType,\n isIntrospectionType,\n assertValidName,\n GraphQLNonNull,\n GraphQLList,\n GraphQLObjectType,\n GraphQLInterfaceType,\n} = require(`graphql`)\nconst {\n ObjectTypeComposer,\n InterfaceTypeComposer,\n UnionTypeComposer,\n InputTypeComposer,\n ScalarTypeComposer,\n EnumTypeComposer,\n} = require(`graphql-compose`)\nconst { getNode, getNodesByType } = require(`../redux/nodes`)\n\nconst apiRunner = require(`../utils/api-runner-node`)\nconst report = require(`gatsby-cli/lib/reporter`)\nconst { addNodeInterfaceFields } = require(`./types/node-interface`)\nconst { overridableBuiltInTypeNames } = require(`./types/built-in-types`)\nconst { addInferredType, addInferredTypes } = require(`./infer`)\nconst {\n findOne,\n findManyPaginated,\n wrappingResolver,\n defaultResolver,\n} = require(`./resolvers`)\nconst {\n processFieldExtensions,\n internalExtensionNames,\n} = require(`./extensions`)\nimport { getPagination } from \"./types/pagination\"\nimport { getSortInput, SORTABLE_ENUM } from \"./types/sort\"\nimport { getFilterInput, SEARCHABLE_ENUM } from \"./types/filter\"\nimport { isGatsbyType, GatsbyGraphQLTypeKind } from \"./types/type-builders\"\n\nconst {\n isASTDocument,\n parseTypeDef,\n reportParsingError,\n} = require(`./types/type-defs`)\nimport {\n clearDerivedTypes,\n deleteFieldsOfDerivedTypes,\n} from \"./types/derived-types\"\nconst { printTypeDefinitions } = require(`./print`)\n\nconst buildSchema = async ({\n schemaComposer,\n types,\n typeMapping,\n fieldExtensions,\n thirdPartySchemas,\n printConfig,\n typeConflictReporter,\n inferenceMetadata,\n parentSpan,\n}) => {\n await updateSchemaComposer({\n schemaComposer,\n types,\n typeMapping,\n fieldExtensions,\n thirdPartySchemas,\n printConfig,\n typeConflictReporter,\n inferenceMetadata,\n parentSpan,\n })\n // const { printSchema } = require(`graphql`)\n const schema = schemaComposer.buildSchema()\n\n // console.log(printSchema(schema))\n return schema\n}\n\nconst rebuildSchemaWithSitePage = async ({\n schemaComposer,\n typeMapping,\n fieldExtensions,\n typeConflictReporter,\n inferenceMetadata,\n parentSpan,\n}) => {\n const typeComposer = schemaComposer.getOTC(`SitePage`)\n\n // Clear derived types and fields\n // they will be re-created in processTypeComposer later\n deleteFieldsOfDerivedTypes({ typeComposer })\n clearDerivedTypes({ schemaComposer, typeComposer })\n\n const shouldInfer =\n !typeComposer.hasExtension(`infer`) ||\n typeComposer.getExtension(`infer`) !== false\n if (shouldInfer) {\n addInferredType({\n schemaComposer,\n typeComposer,\n typeConflictReporter,\n typeMapping,\n inferenceMetadata,\n parentSpan,\n })\n }\n await processTypeComposer({\n schemaComposer,\n typeComposer,\n fieldExtensions,\n parentSpan,\n })\n const schema = schemaComposer.buildSchema()\n\n freezeTypeComposers(schemaComposer)\n\n return schema\n}\n\nmodule.exports = {\n buildSchema,\n rebuildSchemaWithSitePage,\n}\n\n// Workaround for https://github.com/graphql-compose/graphql-compose/issues/319\n// FIXME: remove this when fixed in graphql-compose\nconst freezeTypeComposers = (schemaComposer, excluded = new Set()) => {\n Array.from(schemaComposer.values()).forEach(tc => {\n const isCompositeTC =\n tc instanceof ObjectTypeComposer || tc instanceof InterfaceTypeComposer\n\n if (isCompositeTC && !excluded.has(tc.getTypeName())) {\n // typeComposer.getType() actually mutates the underlying GraphQL type\n // and always re-assigns type._fields with a thunk.\n // It causes continuous redundant field re-definitions when running queries\n // (affects performance significantly).\n // Prevent the mutation and \"freeze\" the type:\n const type = tc.getType()\n tc.getType = () => type\n }\n })\n}\n\nconst updateSchemaComposer = async ({\n schemaComposer,\n types,\n typeMapping,\n fieldExtensions,\n thirdPartySchemas,\n printConfig,\n typeConflictReporter,\n inferenceMetadata,\n parentSpan,\n}) => {\n let activity = report.phantomActivity(`Add explicit types`, {\n parentSpan: parentSpan,\n })\n activity.start()\n await addTypes({ schemaComposer, parentSpan: activity.span, types })\n activity.end()\n\n activity = report.phantomActivity(`Add inferred types`, {\n parentSpan: parentSpan,\n })\n activity.start()\n await addInferredTypes({\n schemaComposer,\n typeConflictReporter,\n typeMapping,\n inferenceMetadata,\n parentSpan: activity.span,\n })\n addInferredChildOfExtensions({\n schemaComposer,\n })\n activity.end()\n\n activity = report.phantomActivity(`Processing types`, {\n parentSpan: parentSpan,\n })\n activity.start()\n await printTypeDefinitions({\n config: printConfig,\n schemaComposer,\n parentSpan: activity.span,\n })\n await addSetFieldsOnGraphQLNodeTypeFields({\n schemaComposer,\n parentSpan: activity.span,\n })\n await addConvenienceChildrenFields({\n schemaComposer,\n parentSpan: activity.span,\n })\n await Promise.all(\n Array.from(new Set(schemaComposer.values())).map(typeComposer =>\n processTypeComposer({\n schemaComposer,\n typeComposer,\n fieldExtensions,\n parentSpan: activity.span,\n })\n )\n )\n checkQueryableInterfaces({ schemaComposer, parentSpan: activity.span })\n await addThirdPartySchemas({\n schemaComposer,\n thirdPartySchemas,\n parentSpan: activity.span,\n })\n await addCustomResolveFunctions({ schemaComposer, parentSpan: activity.span })\n attachTracingResolver({ schemaComposer, parentSpan: activity.span })\n activity.end()\n}\n\nconst processTypeComposer = async ({\n schemaComposer,\n typeComposer,\n fieldExtensions,\n parentSpan,\n}) => {\n if (typeComposer instanceof ObjectTypeComposer) {\n await processFieldExtensions({\n schemaComposer,\n typeComposer,\n fieldExtensions,\n parentSpan,\n })\n\n if (typeComposer.hasInterface(`Node`)) {\n await addNodeInterfaceFields({ schemaComposer, typeComposer, parentSpan })\n }\n await determineSearchableFields({\n schemaComposer,\n typeComposer,\n parentSpan,\n })\n\n if (typeComposer.hasInterface(`Node`)) {\n await addTypeToRootQuery({ schemaComposer, typeComposer, parentSpan })\n }\n } else if (typeComposer instanceof InterfaceTypeComposer) {\n if (isNodeInterface(typeComposer)) {\n await addNodeInterfaceFields({ schemaComposer, typeComposer, parentSpan })\n\n // We only process field extensions for queryable Node interfaces, so we get\n // the input args on the root query type, e.g. `formatString` etc. for `dateformat`\n await processFieldExtensions({\n schemaComposer,\n typeComposer,\n fieldExtensions,\n parentSpan,\n })\n await determineSearchableFields({\n schemaComposer,\n typeComposer,\n parentSpan,\n })\n await addTypeToRootQuery({ schemaComposer, typeComposer, parentSpan })\n }\n }\n}\n\nconst fieldNames = {\n query: typeName => _.camelCase(typeName),\n queryAll: typeName => _.camelCase(`all ${typeName}`),\n convenienceChild: typeName => _.camelCase(`child ${typeName}`),\n convenienceChildren: typeName => _.camelCase(`children ${typeName}`),\n}\n\nconst addTypes = ({ schemaComposer, types, parentSpan }) => {\n types.forEach(({ typeOrTypeDef, plugin }) => {\n if (typeof typeOrTypeDef === `string`) {\n typeOrTypeDef = parseTypeDef(typeOrTypeDef)\n }\n if (isASTDocument(typeOrTypeDef)) {\n let parsedTypes\n const createdFrom = `sdl`\n try {\n parsedTypes = parseTypes({\n doc: typeOrTypeDef,\n plugin,\n createdFrom,\n schemaComposer,\n parentSpan,\n })\n } catch (error) {\n reportParsingError(error)\n return\n }\n parsedTypes.forEach(type => {\n processAddedType({\n schemaComposer,\n type,\n parentSpan,\n createdFrom,\n plugin,\n })\n })\n } else if (isGatsbyType(typeOrTypeDef)) {\n const type = createTypeComposerFromGatsbyType({\n schemaComposer,\n type: typeOrTypeDef,\n parentSpan,\n })\n\n if (type) {\n const typeName = type.getTypeName()\n const createdFrom = `typeBuilder`\n checkIsAllowedTypeName(typeName)\n if (schemaComposer.has(typeName)) {\n const typeComposer = schemaComposer.get(typeName)\n mergeTypes({\n schemaComposer,\n typeComposer,\n type,\n plugin,\n createdFrom,\n parentSpan,\n })\n } else {\n processAddedType({\n schemaComposer,\n type,\n parentSpan,\n createdFrom,\n plugin,\n })\n }\n }\n } else {\n const typeName = typeOrTypeDef.name\n const createdFrom = `graphql-js`\n checkIsAllowedTypeName(typeName)\n if (schemaComposer.has(typeName)) {\n const typeComposer = schemaComposer.get(typeName)\n mergeTypes({\n schemaComposer,\n typeComposer,\n type: typeOrTypeDef,\n plugin,\n createdFrom,\n parentSpan,\n })\n } else {\n processAddedType({\n schemaComposer,\n type: typeOrTypeDef,\n parentSpan,\n createdFrom,\n plugin,\n })\n }\n }\n })\n}\n\nconst mergeTypes = ({\n schemaComposer,\n typeComposer,\n type,\n plugin,\n createdFrom,\n parentSpan,\n}) => {\n // The merge is considered safe when a user or a plugin owning the type extend this type\n // TODO: add proper conflicts detection and reporting (on the field level)\n const typeOwner = typeComposer.getExtension(`plugin`)\n const isOverridableBuiltInType =\n !typeOwner && overridableBuiltInTypeNames.has(typeComposer.getTypeName())\n\n const isSafeMerge =\n !plugin ||\n plugin.name === `default-site-plugin` ||\n plugin.name === typeOwner ||\n typeComposer.hasExtension(`isPlaceholder`) ||\n isOverridableBuiltInType\n\n if (!isSafeMerge) {\n if (typeOwner) {\n report.warn(\n `Plugin \\`${plugin.name}\\` has customized the GraphQL type ` +\n `\\`${typeComposer.getTypeName()}\\`, which has already been defined ` +\n `by the plugin \\`${typeOwner}\\`. ` +\n `This could potentially cause conflicts.`\n )\n } else {\n report.warn(\n `Plugin \\`${plugin.name}\\` has customized the built-in Gatsby GraphQL type ` +\n `\\`${typeComposer.getTypeName()}\\`. ` +\n `This is allowed, but could potentially cause conflicts.`\n )\n }\n }\n\n if (\n type instanceof ObjectTypeComposer ||\n type instanceof InterfaceTypeComposer ||\n type instanceof GraphQLObjectType ||\n type instanceof GraphQLInterfaceType\n ) {\n mergeFields({ typeComposer, fields: type.getFields() })\n type.getInterfaces().forEach(iface => typeComposer.addInterface(iface))\n }\n\n if (isNamedTypeComposer(type)) {\n typeComposer.extendExtensions(type.getExtensions())\n }\n\n addExtensions({ schemaComposer, typeComposer, plugin, createdFrom })\n\n return true\n}\n\nconst processAddedType = ({\n schemaComposer,\n type,\n parentSpan,\n createdFrom,\n plugin,\n}) => {\n const typeName = schemaComposer.add(type)\n const typeComposer = schemaComposer.get(typeName)\n if (\n typeComposer instanceof InterfaceTypeComposer ||\n typeComposer instanceof UnionTypeComposer\n ) {\n if (!typeComposer.getResolveType()) {\n typeComposer.setResolveType(node => node.internal.type)\n }\n }\n schemaComposer.addSchemaMustHaveType(typeComposer)\n\n addExtensions({ schemaComposer, typeComposer, plugin, createdFrom })\n\n return typeComposer\n}\n\nconst addExtensions = ({\n schemaComposer,\n typeComposer,\n plugin,\n createdFrom,\n}) => {\n typeComposer.setExtension(`createdFrom`, createdFrom)\n typeComposer.setExtension(`plugin`, plugin ? plugin.name : null)\n\n if (createdFrom === `sdl`) {\n const directives = typeComposer.getDirectives()\n directives.forEach(({ name, args }) => {\n switch (name) {\n case `infer`:\n case `dontInfer`: {\n typeComposer.setExtension(`infer`, name === `infer`)\n break\n }\n case `mimeTypes`:\n typeComposer.setExtension(`mimeTypes`, args)\n break\n case `childOf`:\n typeComposer.setExtension(`childOf`, args)\n break\n case `nodeInterface`:\n if (typeComposer instanceof InterfaceTypeComposer) {\n typeComposer.setExtension(`nodeInterface`, true)\n }\n break\n default:\n }\n })\n }\n\n if (\n typeComposer instanceof InterfaceTypeComposer &&\n isNodeInterface(typeComposer)\n ) {\n // TODO: remove nodeInterface in Gatsby v4\n if (typeComposer.hasExtension(`nodeInterface`)) {\n report.warn(\n `Deprecation warning: ` +\n `\\`@nodeInterface\\` extension is deprecated and will be removed in Gatsby v4. ` +\n `Use interface inheritance instead.\\n` +\n `To upgrade replace the old format:\\n` +\n ` interface \\`${typeComposer.getTypeName()}\\` @nodeInterface\\n` +\n `with the new one (in \\`createTypes\\` action of schema customization API):\\n` +\n ` interface \\`${typeComposer.getTypeName()}\\` implements Node\\n` +\n `Read more about schema customization here:\\n` +\n `https://www.gatsbyjs.com/docs/reference/graphql-data-layer/schema-customization/`\n )\n }\n\n const hasCorrectIdField =\n typeComposer.hasField(`id`) &&\n typeComposer.getFieldType(`id`).toString() === `ID!`\n\n if (!hasCorrectIdField) {\n report.panic(\n `Interfaces with the \\`nodeInterface\\` extension must have a field ` +\n `\\`id\\` of type \\`ID!\\`. Check the type definition of ` +\n `\\`${typeComposer.getTypeName()}\\`.`\n )\n }\n }\n\n if (\n typeComposer instanceof ObjectTypeComposer ||\n typeComposer instanceof InterfaceTypeComposer ||\n typeComposer instanceof InputTypeComposer\n ) {\n typeComposer.getFieldNames().forEach(fieldName => {\n typeComposer.setFieldExtension(fieldName, `createdFrom`, createdFrom)\n typeComposer.setFieldExtension(\n fieldName,\n `plugin`,\n plugin ? plugin.name : null\n )\n\n if (createdFrom === `sdl`) {\n const directives = typeComposer.getFieldDirectives(fieldName)\n directives.forEach(({ name, args }) => {\n typeComposer.setFieldExtension(fieldName, name, args)\n })\n }\n\n // Validate field extension args. `graphql-compose` already checks the\n // type of directive args in `parseDirectives`, but we want to check\n // extensions provided with type builders as well. Also, we warn if an\n // extension option was provided which does not exist in the field\n // extension definition.\n const fieldExtensions = typeComposer.getFieldExtensions(fieldName)\n const typeName = typeComposer.getTypeName()\n Object.keys(fieldExtensions)\n .filter(name => !internalExtensionNames.includes(name))\n .forEach(name => {\n const args = fieldExtensions[name]\n\n if (!args || typeof args !== `object`) {\n report.error(\n `Field extension arguments must be provided as an object. ` +\n `Received \"${args}\" on \\`${typeName}.${fieldName}\\`.`\n )\n return\n }\n\n try {\n const definition = schemaComposer.getDirective(name)\n\n // Handle `defaultValue` when not provided as directive\n definition.args.forEach(({ name, defaultValue }) => {\n if (args[name] === undefined && defaultValue !== undefined) {\n args[name] = defaultValue\n }\n })\n\n Object.keys(args).forEach(arg => {\n const argumentDef = definition.args.find(\n ({ name }) => name === arg\n )\n if (!argumentDef) {\n report.error(\n `Field extension \\`${name}\\` on \\`${typeName}.${fieldName}\\` ` +\n `has invalid argument \\`${arg}\\`.`\n )\n return\n }\n const value = args[arg]\n try {\n validate(argumentDef.type, value)\n } catch (error) {\n report.error(\n `Field extension \\`${name}\\` on \\`${typeName}.${fieldName}\\` ` +\n `has argument \\`${arg}\\` with invalid value \"${value}\". ` +\n error.message\n )\n }\n })\n } catch (error) {\n report.error(\n `Field extension \\`${name}\\` on \\`${typeName}.${fieldName}\\` ` +\n `is not available.`\n )\n }\n })\n })\n }\n\n return typeComposer\n}\n\nconst checkIsAllowedTypeName = name => {\n invariant(\n name !== `Node`,\n `The GraphQL type \\`Node\\` is reserved for internal use.`\n )\n invariant(\n !name.endsWith(`FilterInput`) && !name.endsWith(`SortInput`),\n `GraphQL type names ending with \"FilterInput\" or \"SortInput\" are ` +\n `reserved for internal use. Please rename \\`${name}\\`.`\n )\n invariant(\n ![`Boolean`, `Date`, `Float`, `ID`, `Int`, `JSON`, `String`].includes(name),\n `The GraphQL type \\`${name}\\` is reserved for internal use by ` +\n `built-in scalar types.`\n )\n assertValidName(name)\n}\n\nconst createTypeComposerFromGatsbyType = ({\n schemaComposer,\n type,\n parentSpan,\n}) => {\n let typeComposer\n switch (type.kind) {\n case GatsbyGraphQLTypeKind.OBJECT: {\n typeComposer = ObjectTypeComposer.createTemp({\n ...type.config,\n fields: () =>\n schemaComposer.typeMapper.convertOutputFieldConfigMap(\n type.config.fields\n ),\n interfaces: () => {\n if (type.config.interfaces) {\n return type.config.interfaces.map(iface => {\n if (typeof iface === `string`) {\n // Sadly, graphql-compose runs this function too early - before we have\n // all of those interfaces actually created in the schema, so have to create\n // a temporary placeholder composer :/\n if (!schemaComposer.has(iface)) {\n const tmpComposer = schemaComposer.createInterfaceTC(iface)\n tmpComposer.setExtension(`isPlaceholder`, true)\n return tmpComposer\n }\n return schemaComposer.getIFTC(iface)\n } else {\n return iface\n }\n })\n } else {\n return []\n }\n },\n })\n break\n }\n case GatsbyGraphQLTypeKind.INPUT_OBJECT: {\n typeComposer = InputTypeComposer.createTemp({\n ...type.config,\n fields: schemaComposer.typeMapper.convertInputFieldConfigMap(\n type.config.fields\n ),\n })\n break\n }\n case GatsbyGraphQLTypeKind.UNION: {\n typeComposer = UnionTypeComposer.createTemp({\n ...type.config,\n types: () => {\n if (type.config.types) {\n return type.config.types.map(typeName => {\n if (!schemaComposer.has(typeName)) {\n // Sadly, graphql-compose runs this function too early - before we have\n // all of those types actually created in the schema, so have to create\n // a temporary placeholder composer :/\n const tmpComposer = schemaComposer.createObjectTC(typeName)\n tmpComposer.setExtension(`isPlaceholder`, true)\n return tmpComposer\n }\n return schemaComposer.getOTC(typeName)\n })\n } else {\n return []\n }\n },\n })\n break\n }\n case GatsbyGraphQLTypeKind.INTERFACE: {\n typeComposer = InterfaceTypeComposer.createTemp({\n ...type.config,\n fields: () =>\n schemaComposer.typeMapper.convertOutputFieldConfigMap(\n type.config.fields\n ),\n interfaces: () => {\n if (type.config.interfaces) {\n return type.config.interfaces.map(iface => {\n if (typeof iface === `string`) {\n // Sadly, graphql-compose runs this function too early - before we have\n // all of those interfaces actually created in the schema, so have to create\n // a temporary placeholder composer :/\n if (!schemaComposer.has(iface)) {\n const tmpComposer = schemaComposer.createInterfaceTC(iface)\n tmpComposer.setExtension(`isPlaceholder`, true)\n return tmpComposer\n }\n return schemaComposer.getIFTC(iface)\n } else {\n return iface\n }\n })\n } else {\n return []\n }\n },\n })\n break\n }\n case GatsbyGraphQLTypeKind.ENUM: {\n typeComposer = EnumTypeComposer.createTemp(type.config)\n break\n }\n case GatsbyGraphQLTypeKind.SCALAR: {\n typeComposer = ScalarTypeComposer.createTemp(type.config)\n break\n }\n default: {\n report.warn(`Illegal type definition: ${JSON.stringify(type.config)}`)\n typeComposer = null\n }\n }\n if (typeComposer) {\n // Workaround for https://github.com/graphql-compose/graphql-compose/issues/311\n typeComposer.schemaComposer = schemaComposer\n }\n return typeComposer\n}\n\nconst addSetFieldsOnGraphQLNodeTypeFields = ({ schemaComposer, parentSpan }) =>\n Promise.all(\n Array.from(schemaComposer.values()).map(async tc => {\n if (tc instanceof ObjectTypeComposer && tc.hasInterface(`Node`)) {\n const typeName = tc.getTypeName()\n const result = await apiRunner(`setFieldsOnGraphQLNodeType`, {\n type: {\n name: typeName,\n nodes: getNodesByType(typeName),\n },\n traceId: `initial-setFieldsOnGraphQLNodeType`,\n parentSpan,\n })\n if (result) {\n // NOTE: `setFieldsOnGraphQLNodeType` only allows setting\n // nested fields with a path as property name, i.e.\n // `{ 'frontmatter.published': 'Boolean' }`, but not in the form\n // `{ frontmatter: { published: 'Boolean' }}`\n result.forEach(fields => tc.addNestedFields(fields))\n }\n }\n })\n )\n\nconst addThirdPartySchemas = ({\n schemaComposer,\n thirdPartySchemas,\n parentSpan,\n}) => {\n thirdPartySchemas.forEach(schema => {\n const schemaQueryType = schema.getQueryType()\n const queryTC = schemaComposer.createTempTC(schemaQueryType)\n processThirdPartyTypeFields({\n typeComposer: queryTC,\n type: schemaQueryType,\n schemaQueryType,\n })\n schemaComposer.Query.addFields(queryTC.getFields())\n\n // Explicitly add the third-party schema's types, so they can be targeted\n // in `createResolvers` API.\n const types = schema.getTypeMap()\n Object.keys(types).forEach(typeName => {\n const type = types[typeName]\n if (\n type !== schemaQueryType &&\n !isSpecifiedScalarType(type) &&\n !isIntrospectionType(type) &&\n type.name !== `Date` &&\n type.name !== `JSON`\n ) {\n const typeHasFields =\n type instanceof GraphQLObjectType ||\n type instanceof GraphQLInterfaceType\n\n // Workaround for an edge case typical for Relay Classic-compatible schemas.\n // For example, GitHub API contains this piece:\n // type Query { relay: Query }\n // And gatsby-source-graphql transforms it to:\n // type Query { github: GitHub }\n // type GitHub { relay: Query }\n // The problem:\n // schemaComposer.createTC(type) for type `GitHub` will eagerly create type composers\n // for all fields (including `relay` and it's type: `Query` of the third-party schema)\n // This unexpected `Query` composer messes up with our own Query type composer and produces duplicate types.\n // The workaround is to make sure fields of the GitHub type are lazy and are evaluated only when\n // this Query type is already replaced with our own root `Query` type (see processThirdPartyTypeFields):\n if (typeHasFields && typeof type._fields === `object`) {\n const fields = type._fields\n type._fields = () => fields\n }\n // ^^^ workaround done\n const typeComposer = schemaComposer.createTC(type)\n if (typeHasFields) {\n processThirdPartyTypeFields({\n typeComposer,\n type,\n schemaQueryType,\n })\n }\n typeComposer.setExtension(`createdFrom`, `thirdPartySchema`)\n schemaComposer.addSchemaMustHaveType(typeComposer)\n }\n })\n })\n}\n\nconst resetOverriddenThirdPartyTypeFields = ({ typeComposer }) => {\n // The problem: createResolvers API mutates third party schema instance.\n // For example it can add a new field referencing a type from our main schema\n // Then if we rebuild the schema this old type instance will sneak into\n // the new schema and produce the famous error:\n // \"Schema must contain uniquely named types but contains multiple types named X\"\n // This function only affects schema rebuilding pathway.\n // It cleans up artifacts created by the `createResolvers` API of the previous build\n // so that we return the third party schema to its initial state (hence can safely re-add)\n // TODO: the right way to fix this would be not to mutate the third party schema in\n // the first place. But unfortunately mutation happens in the `graphql-compose`\n // and we don't have an easy way to avoid it without major rework\n typeComposer.getFieldNames().forEach(fieldName => {\n const createdFrom = typeComposer.getFieldExtension(fieldName, `createdFrom`)\n if (createdFrom === `createResolvers`) {\n typeComposer.removeField(fieldName)\n return\n }\n const config = typeComposer.getFieldExtension(\n fieldName,\n `originalFieldConfig`\n )\n if (config) {\n typeComposer.removeField(fieldName)\n typeComposer.addFields({\n [fieldName]: config,\n })\n }\n })\n}\n\nconst processThirdPartyTypeFields = ({\n typeComposer,\n type,\n schemaQueryType,\n}) => {\n // Fix for types that refer to Query. Thanks Relay Classic!\n const fields = type.getFields()\n Object.keys(fields).forEach(fieldName => {\n // Remove customization that we could have added via `createResolvers`\n // to make it work with schema rebuilding\n const fieldType = String(fields[fieldName].type)\n if (fieldType.replace(/[[\\]!]/g, ``) === schemaQueryType.name) {\n typeComposer.extendField(fieldName, {\n type: fieldType.replace(schemaQueryType.name, `Query`),\n })\n }\n })\n resetOverriddenThirdPartyTypeFields({ typeComposer })\n}\n\nconst addCustomResolveFunctions = async ({ schemaComposer, parentSpan }) => {\n const intermediateSchema = schemaComposer.buildSchema()\n const createResolvers = (\n resolvers,\n { ignoreNonexistentTypes = false } = {}\n ) => {\n Object.keys(resolvers).forEach(typeName => {\n const fields = resolvers[typeName]\n if (schemaComposer.has(typeName)) {\n const tc = schemaComposer.getOTC(typeName)\n Object.keys(fields).forEach(fieldName => {\n const fieldConfig = fields[fieldName]\n if (tc.hasField(fieldName)) {\n const originalFieldConfig = tc.getFieldConfig(fieldName)\n const originalTypeName = originalFieldConfig.type.toString()\n const originalResolver = originalFieldConfig.resolve\n let fieldTypeName\n if (fieldConfig.type) {\n fieldTypeName = Array.isArray(fieldConfig.type)\n ? stringifyArray(fieldConfig.type)\n : fieldConfig.type.toString()\n }\n\n if (\n !fieldTypeName ||\n fieldTypeName.replace(/!/g, ``) ===\n originalTypeName.replace(/!/g, ``) ||\n tc.getExtension(`createdFrom`) === `thirdPartySchema`\n ) {\n const newConfig = {}\n if (fieldConfig.type) {\n newConfig.type = fieldConfig.type\n }\n if (fieldConfig.args) {\n newConfig.args = fieldConfig.args\n }\n if (fieldConfig.resolve) {\n newConfig.resolve = (source, args, context, info) =>\n fieldConfig.resolve(source, args, context, {\n ...info,\n originalResolver:\n originalResolver || context.defaultFieldResolver,\n })\n tc.extendFieldExtensions(fieldName, {\n needsResolve: true,\n })\n }\n tc.extendField(fieldName, newConfig)\n\n // See resetOverriddenThirdPartyTypeFields for explanation\n if (tc.getExtension(`createdFrom`) === `thirdPartySchema`) {\n tc.setFieldExtension(\n fieldName,\n `originalFieldConfig`,\n originalFieldConfig\n )\n }\n } else if (fieldTypeName) {\n report.warn(\n `\\`createResolvers\\` passed resolvers for field ` +\n `\\`${typeName}.${fieldName}\\` with type \\`${fieldTypeName}\\`. ` +\n `Such a field with type \\`${originalTypeName}\\` already exists ` +\n `on the type. Use \\`createTypes\\` to override type fields.`\n )\n }\n } else {\n tc.addFields({\n [fieldName]: fieldConfig,\n })\n // See resetOverriddenThirdPartyTypeFields for explanation\n tc.setFieldExtension(fieldName, `createdFrom`, `createResolvers`)\n }\n })\n } else if (!ignoreNonexistentTypes) {\n report.warn(\n `\\`createResolvers\\` passed resolvers for type \\`${typeName}\\` that ` +\n `doesn't exist in the schema. Use \\`createTypes\\` to add the type ` +\n `before adding resolvers.`\n )\n }\n })\n }\n await apiRunner(`createResolvers`, {\n intermediateSchema,\n createResolvers,\n traceId: `initial-createResolvers`,\n parentSpan,\n })\n}\n\nfunction attachTracingResolver({ schemaComposer }) {\n schemaComposer.forEach(typeComposer => {\n if (\n typeComposer instanceof ObjectTypeComposer ||\n typeComposer instanceof InterfaceTypeComposer\n ) {\n typeComposer.getFieldNames().forEach(fieldName => {\n const field = typeComposer.getField(fieldName)\n typeComposer.extendField(fieldName, {\n resolve:\n field.resolve && field.resolve !== defaultResolver\n ? wrappingResolver(field.resolve)\n : defaultResolver,\n })\n })\n }\n })\n}\n\nconst determineSearchableFields = ({ schemaComposer, typeComposer }) => {\n typeComposer.getFieldNames().forEach(fieldName => {\n const field = typeComposer.getField(fieldName)\n const extensions = typeComposer.getFieldExtensions(fieldName)\n if (field.resolve) {\n if (extensions.dateformat) {\n typeComposer.extendFieldExtensions(fieldName, {\n searchable: SEARCHABLE_ENUM.SEARCHABLE,\n sortable: SORTABLE_ENUM.SORTABLE,\n needsResolve: extensions.proxy ? true : false,\n })\n } else if (!_.isEmpty(field.args)) {\n typeComposer.extendFieldExtensions(fieldName, {\n searchable: SEARCHABLE_ENUM.DEPRECATED_SEARCHABLE,\n sortable: SORTABLE_ENUM.DEPRECATED_SORTABLE,\n needsResolve: true,\n })\n } else {\n typeComposer.extendFieldExtensions(fieldName, {\n searchable: SEARCHABLE_ENUM.SEARCHABLE,\n sortable: SORTABLE_ENUM.SORTABLE,\n needsResolve: true,\n })\n }\n } else {\n typeComposer.extendFieldExtensions(fieldName, {\n searchable: SEARCHABLE_ENUM.SEARCHABLE,\n sortable: SORTABLE_ENUM.SORTABLE,\n needsResolve: false,\n })\n }\n })\n}\n\nconst addConvenienceChildrenFields = ({ schemaComposer }) => {\n const parentTypesToChildren = new Map()\n const mimeTypesToChildren = new Map()\n const typesHandlingMimeTypes = new Map()\n\n schemaComposer.forEach(type => {\n if (\n (type instanceof ObjectTypeComposer ||\n type instanceof InterfaceTypeComposer) &&\n type.hasExtension(`mimeTypes`)\n ) {\n const { types } = type.getExtension(`mimeTypes`)\n new Set(types).forEach(mimeType => {\n if (!typesHandlingMimeTypes.has(mimeType)) {\n typesHandlingMimeTypes.set(mimeType, new Set())\n }\n typesHandlingMimeTypes.get(mimeType).add(type)\n })\n }\n\n if (\n (type instanceof ObjectTypeComposer ||\n type instanceof InterfaceTypeComposer) &&\n type.hasExtension(`childOf`)\n ) {\n if (type instanceof ObjectTypeComposer && !type.hasInterface(`Node`)) {\n report.error(\n `The \\`childOf\\` extension can only be used on types that implement the \\`Node\\` interface.\\n` +\n `Check the type definition of \\`${type.getTypeName()}\\`.`\n )\n return\n }\n if (type instanceof InterfaceTypeComposer && !isNodeInterface(type)) {\n report.error(\n `The \\`childOf\\` extension can only be used on interface types that ` +\n `have the \\`@nodeInterface\\` extension.\\n` +\n `Check the type definition of \\`${type.getTypeName()}\\`.`\n )\n return\n }\n\n const { types, mimeTypes } = type.getExtension(`childOf`)\n\n new Set(types).forEach(parentType => {\n if (!parentTypesToChildren.has(parentType)) {\n parentTypesToChildren.set(parentType, new Set())\n }\n parentTypesToChildren.get(parentType).add(type)\n })\n new Set(mimeTypes).forEach(mimeType => {\n if (!mimeTypesToChildren.has(mimeType)) {\n mimeTypesToChildren.set(mimeType, new Set())\n }\n mimeTypesToChildren.get(mimeType).add(type)\n })\n }\n })\n\n parentTypesToChildren.forEach((children, parent) => {\n if (!schemaComposer.has(parent)) return\n const typeComposer = schemaComposer.getAnyTC(parent)\n if (\n typeComposer instanceof InterfaceTypeComposer &&\n !isNodeInterface(typeComposer)\n ) {\n report.error(\n `With the \\`childOf\\` extension, children fields can only be added to ` +\n `interfaces which implement the \\`Node\\` interface.\\n` +\n `Check the type definition of \\`${typeComposer.getTypeName()}\\`.`\n )\n return\n }\n children.forEach(child => {\n typeComposer.addFields(createChildrenField(child.getTypeName()))\n typeComposer.addFields(createChildField(child.getTypeName()))\n })\n })\n\n mimeTypesToChildren.forEach((children, mimeType) => {\n const parentTypes = typesHandlingMimeTypes.get(mimeType)\n if (parentTypes) {\n parentTypes.forEach(typeComposer => {\n if (\n typeComposer instanceof InterfaceTypeComposer &&\n !isNodeInterface(typeComposer)\n ) {\n report.error(\n `With the \\`childOf\\` extension, children fields can only be added to ` +\n `interfaces which implement the \\`Node\\` interface.\\n` +\n `Check the type definition of \\`${typeComposer.getTypeName()}\\`.`\n )\n return\n }\n children.forEach(child => {\n typeComposer.addFields(createChildrenField(child.getTypeName()))\n typeComposer.addFields(createChildField(child.getTypeName()))\n })\n })\n }\n })\n}\n\nconst isExplicitChild = ({ typeComposer, childTypeComposer }) => {\n if (!childTypeComposer.hasExtension(`childOf`)) {\n return false\n }\n const childOfExtension = childTypeComposer.getExtension(`childOf`)\n const { types: parentMimeTypes = [] } =\n typeComposer.getExtension(`mimeTypes`) ?? {}\n\n return (\n childOfExtension?.types?.includes(typeComposer.getTypeName()) ||\n childOfExtension?.mimeTypes?.some(mimeType =>\n parentMimeTypes.includes(mimeType)\n )\n )\n}\n\nconst addInferredChildOfExtensions = ({ schemaComposer }) => {\n schemaComposer.forEach(typeComposer => {\n if (\n typeComposer instanceof ObjectTypeComposer &&\n typeComposer.hasInterface(`Node`)\n ) {\n addInferredChildOfExtension({\n schemaComposer,\n typeComposer,\n })\n }\n })\n}\n\nconst addInferredChildOfExtension = ({ schemaComposer, typeComposer }) => {\n const shouldInfer = typeComposer.getExtension(`infer`)\n // With `@dontInfer`, only parent-child\n // relations explicitly set with the `@childOf` extension are added.\n if (shouldInfer === false) return\n\n const parentTypeName = typeComposer.getTypeName()\n const nodes = getNodesByType(parentTypeName)\n\n const childNodesByType = groupChildNodesByType({ nodes })\n\n Object.keys(childNodesByType).forEach(typeName => {\n const childTypeComposer = schemaComposer.getAnyTC(typeName)\n let childOfExtension = childTypeComposer.getExtension(`childOf`)\n\n if (isExplicitChild({ typeComposer, childTypeComposer })) {\n return\n }\n // Set `@childOf` extension automatically\n // This will cause convenience children fields like `childImageSharp`\n // to be added in `addConvenienceChildrenFields` method.\n // Also required for proper printing of the `@childOf` directive in the snapshot plugin\n if (!childOfExtension) {\n childOfExtension = {}\n }\n if (!childOfExtension.types) {\n childOfExtension.types = []\n }\n childOfExtension.types.push(parentTypeName)\n childTypeComposer.setExtension(`childOf`, childOfExtension)\n })\n}\n\nconst createChildrenField = typeName => {\n return {\n [fieldNames.convenienceChildren(typeName)]: {\n type: () => [typeName],\n description: `Returns all children nodes filtered by type ${typeName}`,\n resolve(source, args, context) {\n const { path } = context\n return context.nodeModel.getNodesByIds(\n { ids: source.children, type: typeName },\n { path }\n )\n },\n },\n }\n}\n\nconst createChildField = typeName => {\n return {\n [fieldNames.convenienceChild(typeName)]: {\n type: () => typeName,\n description:\n `Returns the first child node of type ${typeName} ` +\n `or null if there are no children of given type on this node`,\n resolve(source, args, context) {\n const { path } = context\n const result = context.nodeModel.getNodesByIds(\n { ids: source.children, type: typeName },\n { path }\n )\n if (result && result.length > 0) {\n return result[0]\n } else {\n return null\n }\n },\n },\n }\n}\n\nconst groupChildNodesByType = ({ nodes }) =>\n _(nodes)\n .flatMap(node => (node.children || []).map(getNode).filter(Boolean))\n .groupBy(node => (node.internal ? node.internal.type : undefined))\n .value()\n\nconst addTypeToRootQuery = ({ schemaComposer, typeComposer }) => {\n const sortInputTC = getSortInput({\n schemaComposer,\n typeComposer,\n })\n const filterInputTC = getFilterInput({\n schemaComposer,\n typeComposer,\n })\n const paginationTC = getPagination({\n schemaComposer,\n typeComposer,\n })\n\n const typeName = typeComposer.getTypeName()\n // not strictly correctly, result is `npmPackage` and `allNpmPackage` from type `NPMPackage`\n const queryName = fieldNames.query(typeName)\n const queryNamePlural = fieldNames.queryAll(typeName)\n\n schemaComposer.Query.addFields({\n [queryName]: {\n type: typeComposer,\n args: {\n ...filterInputTC.getFields(),\n },\n resolve: findOne(typeName),\n },\n [queryNamePlural]: {\n type: paginationTC,\n args: {\n filter: filterInputTC,\n sort: sortInputTC,\n skip: `Int`,\n limit: `Int`,\n },\n resolve: findManyPaginated(typeName),\n },\n }).makeFieldNonNull(queryNamePlural)\n}\n\nconst parseTypes = ({\n doc,\n plugin,\n createdFrom,\n schemaComposer,\n parentSpan,\n}) => {\n const types = []\n doc.definitions.forEach(def => {\n const name = def.name.value\n checkIsAllowedTypeName(name)\n\n if (schemaComposer.has(name)) {\n // We don't check if ast.kind matches composer type, but rely\n // that this will throw when something is wrong and get\n // reported by `reportParsingError`.\n\n // Keep the original type composer around\n const typeComposer = schemaComposer.get(name)\n\n // After this, the parsed type composer will be registered as the composer\n // handling the type name (requires cleanup after merging, see below)\n const parsedType = schemaComposer.typeMapper.makeSchemaDef(def)\n\n // Merge the parsed type with the original\n mergeTypes({\n schemaComposer,\n typeComposer,\n type: parsedType,\n plugin,\n createdFrom,\n parentSpan,\n })\n\n // Cleanup:\n // Set the original type composer (with the merged fields added)\n // as the correct composer for the type name and remove the temporary one\n // `graphql-compose` doesn't make that easy 🤯\n // TODO: clean this up when this issue is fixed:\n // https://github.com/graphql-compose/graphql-compose/issues/311\n schemaComposer.set(typeComposer.getTypeName(), typeComposer)\n schemaComposer.set(typeComposer._gqType, typeComposer)\n schemaComposer.delete(parsedType._gqType)\n schemaComposer.delete(parsedType)\n } else {\n const parsedType = schemaComposer.typeMapper.makeSchemaDef(def)\n types.push(parsedType)\n }\n })\n return types\n}\n\nconst stringifyArray = arr =>\n `[${arr.map(item =>\n Array.isArray(item) ? stringifyArray(item) : item.toString()\n )}]`\n\n// TODO: Import this directly from graphql-compose once we update to v7\nconst isNamedTypeComposer = type =>\n type instanceof ObjectTypeComposer ||\n type instanceof InputTypeComposer ||\n type instanceof ScalarTypeComposer ||\n type instanceof EnumTypeComposer ||\n type instanceof InterfaceTypeComposer ||\n type instanceof UnionTypeComposer\n\nconst validate = (type, value) => {\n if (type instanceof GraphQLNonNull) {\n if (value == null) {\n throw new Error(`Expected non-null field value.`)\n }\n return validate(type.ofType, value)\n } else if (type instanceof GraphQLList) {\n if (!Array.isArray(value)) {\n throw new Error(`Expected array field value.`)\n }\n return value.map(v => validate(type.ofType, v))\n } else {\n return type.parseValue(value)\n }\n}\n\n// TODO: remove nodeInterface in Gatsby v4\nconst isNodeInterface = interfaceTypeComposer =>\n interfaceTypeComposer.hasExtension(`nodeInterface`) ||\n interfaceTypeComposer.hasInterface(`Node`)\n\nconst checkQueryableInterfaces = ({ schemaComposer }) => {\n const queryableInterfaces = new Set()\n schemaComposer.forEach(type => {\n if (type instanceof InterfaceTypeComposer && isNodeInterface(type)) {\n queryableInterfaces.add(type.getTypeName())\n }\n })\n const incorrectTypes = new Set()\n schemaComposer.forEach(type => {\n if (type instanceof ObjectTypeComposer) {\n const interfaces = type.getInterfaces()\n if (\n interfaces.some(iface =>\n queryableInterfaces.has(iface.getTypeName())\n ) &&\n !type.hasInterface(`Node`)\n ) {\n incorrectTypes.add(type.getTypeName())\n }\n }\n })\n if (incorrectTypes.size) {\n report.panic(\n `Types implementing queryable interfaces must also implement the \\`Node\\` ` +\n `interface. Check the type definition of ` +\n `${Array.from(incorrectTypes)\n .map(t => `\\`${t}\\``)\n .join(`, `)}.`\n )\n }\n}\n\nconst mergeFields = ({ typeComposer, fields }) =>\n Object.entries(fields).forEach(([fieldName, fieldConfig]) => {\n if (typeComposer.hasField(fieldName)) {\n typeComposer.extendField(fieldName, fieldConfig)\n } else {\n typeComposer.setField(fieldName, fieldConfig)\n }\n })\n"],"file":"schema.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/schema/schema.js"],"names":["_","require","invariant","isSpecifiedScalarType","isIntrospectionType","assertValidName","GraphQLNonNull","GraphQLList","GraphQLObjectType","GraphQLInterfaceType","GraphQLUnionType","ObjectTypeComposer","InterfaceTypeComposer","UnionTypeComposer","InputTypeComposer","ScalarTypeComposer","EnumTypeComposer","getNode","getNodesByType","apiRunner","report","addNodeInterfaceFields","overridableBuiltInTypeNames","addInferredType","addInferredTypes","findOne","findManyPaginated","wrappingResolver","defaultResolver","processFieldExtensions","internalExtensionNames","isASTDocument","parseTypeDef","reportParsingError","printTypeDefinitions","buildSchema","schemaComposer","types","typeMapping","fieldExtensions","thirdPartySchemas","printConfig","typeConflictReporter","inferenceMetadata","parentSpan","updateSchemaComposer","schema","rebuildSchemaWithSitePage","typeComposer","getOTC","shouldInfer","hasExtension","getExtension","processTypeComposer","freezeTypeComposers","module","exports","excluded","Set","Array","from","values","forEach","tc","isCompositeTC","has","getTypeName","type","getType","activity","phantomActivity","start","addTypes","span","end","addInferredChildOfExtensions","config","addSetFieldsOnGraphQLNodeTypeFields","addConvenienceChildrenFields","Promise","all","map","checkQueryableInterfaces","addThirdPartySchemas","addCustomResolveFunctions","attachTracingResolver","hasInterface","determineSearchableFields","addTypeToRootQuery","isNodeInterface","fieldNames","query","typeName","camelCase","queryAll","convenienceChild","convenienceChildren","typeOrTypeDef","plugin","parsedTypes","createdFrom","parseTypes","doc","error","processAddedType","createTypeComposerFromGatsbyType","checkIsAllowedTypeName","get","mergeTypes","name","typeOwner","isOverridableBuiltInType","isSafeMerge","warn","mergeFields","fields","getFields","getInterfaces","iface","addInterface","mergeResolveType","isNamedTypeComposer","extendExtensions","getExtensions","addExtensions","add","getResolveType","setResolveType","node","internal","addSchemaMustHaveType","setExtension","directives","getDirectives","args","hasCorrectIdField","hasField","getFieldType","toString","panic","getFieldNames","fieldName","setFieldExtension","getFieldDirectives","getFieldExtensions","Object","keys","filter","includes","definition","getDirective","defaultValue","undefined","arg","argumentDef","find","value","validate","message","endsWith","kind","GatsbyGraphQLTypeKind","OBJECT","createTemp","typeMapper","convertOutputFieldConfigMap","interfaces","tmpComposer","createInterfaceTC","getIFTC","INPUT_OBJECT","convertInputFieldConfigMap","UNION","createObjectTC","INTERFACE","ENUM","SCALAR","JSON","stringify","result","nodes","traceId","addNestedFields","schemaQueryType","getQueryType","queryTC","createTempTC","processThirdPartyTypeFields","Query","addFields","getTypeMap","typeHasFields","_fields","createTC","resetOverriddenThirdPartyTypeFields","getFieldExtension","removeField","fieldType","String","replace","extendField","intermediateSchema","createResolvers","resolvers","ignoreNonexistentTypes","fieldConfig","originalFieldConfig","getFieldConfig","originalTypeName","originalResolver","resolve","fieldTypeName","isArray","stringifyArray","newConfig","source","context","info","defaultFieldResolver","extendFieldExtensions","needsResolve","field","getField","extensions","dateformat","searchable","SEARCHABLE_ENUM","SEARCHABLE","sortable","SORTABLE_ENUM","SORTABLE","proxy","isEmpty","DEPRECATED_SEARCHABLE","DEPRECATED_SORTABLE","parentTypesToChildren","Map","mimeTypesToChildren","typesHandlingMimeTypes","mimeType","set","mimeTypes","parentType","children","parent","getAnyTC","child","createChildrenField","createChildField","parentTypes","isExplicitChild","childTypeComposer","childOfExtension","parentMimeTypes","some","addInferredChildOfExtension","parentTypeName","childNodesByType","groupChildNodesByType","push","description","path","nodeModel","getNodesByIds","ids","length","flatMap","Boolean","groupBy","sortInputTC","filterInputTC","paginationTC","queryName","queryNamePlural","sort","skip","limit","makeFieldNonNull","definitions","def","parsedType","makeSchemaDef","_gqType","delete","arr","item","Error","ofType","v","parseValue","interfaceTypeComposer","queryableInterfaces","incorrectTypes","size","t","join","entries","setField","resolveType"],"mappings":"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","sourcesContent":["const _ = require(`lodash`)\nconst invariant = require(`invariant`)\nconst {\n isSpecifiedScalarType,\n isIntrospectionType,\n assertValidName,\n GraphQLNonNull,\n GraphQLList,\n GraphQLObjectType,\n GraphQLInterfaceType,\n GraphQLUnionType,\n} = require(`graphql`)\nconst {\n ObjectTypeComposer,\n InterfaceTypeComposer,\n UnionTypeComposer,\n InputTypeComposer,\n ScalarTypeComposer,\n EnumTypeComposer,\n} = require(`graphql-compose`)\nconst { getNode, getNodesByType } = require(`../redux/nodes`)\n\nconst apiRunner = require(`../utils/api-runner-node`)\nconst report = require(`gatsby-cli/lib/reporter`)\nconst { addNodeInterfaceFields } = require(`./types/node-interface`)\nconst { overridableBuiltInTypeNames } = require(`./types/built-in-types`)\nconst { addInferredType, addInferredTypes } = require(`./infer`)\nconst {\n findOne,\n findManyPaginated,\n wrappingResolver,\n defaultResolver,\n} = require(`./resolvers`)\nconst {\n processFieldExtensions,\n internalExtensionNames,\n} = require(`./extensions`)\nimport { getPagination } from \"./types/pagination\"\nimport { getSortInput, SORTABLE_ENUM } from \"./types/sort\"\nimport { getFilterInput, SEARCHABLE_ENUM } from \"./types/filter\"\nimport { isGatsbyType, GatsbyGraphQLTypeKind } from \"./types/type-builders\"\n\nconst {\n isASTDocument,\n parseTypeDef,\n reportParsingError,\n} = require(`./types/type-defs`)\nimport {\n clearDerivedTypes,\n deleteFieldsOfDerivedTypes,\n} from \"./types/derived-types\"\nconst { printTypeDefinitions } = require(`./print`)\n\nconst buildSchema = async ({\n schemaComposer,\n types,\n typeMapping,\n fieldExtensions,\n thirdPartySchemas,\n printConfig,\n typeConflictReporter,\n inferenceMetadata,\n parentSpan,\n}) => {\n await updateSchemaComposer({\n schemaComposer,\n types,\n typeMapping,\n fieldExtensions,\n thirdPartySchemas,\n printConfig,\n typeConflictReporter,\n inferenceMetadata,\n parentSpan,\n })\n // const { printSchema } = require(`graphql`)\n const schema = schemaComposer.buildSchema()\n\n // console.log(printSchema(schema))\n return schema\n}\n\nconst rebuildSchemaWithSitePage = async ({\n schemaComposer,\n typeMapping,\n fieldExtensions,\n typeConflictReporter,\n inferenceMetadata,\n parentSpan,\n}) => {\n const typeComposer = schemaComposer.getOTC(`SitePage`)\n\n // Clear derived types and fields\n // they will be re-created in processTypeComposer later\n deleteFieldsOfDerivedTypes({ typeComposer })\n clearDerivedTypes({ schemaComposer, typeComposer })\n\n const shouldInfer =\n !typeComposer.hasExtension(`infer`) ||\n typeComposer.getExtension(`infer`) !== false\n if (shouldInfer) {\n addInferredType({\n schemaComposer,\n typeComposer,\n typeConflictReporter,\n typeMapping,\n inferenceMetadata,\n parentSpan,\n })\n }\n await processTypeComposer({\n schemaComposer,\n typeComposer,\n fieldExtensions,\n parentSpan,\n })\n const schema = schemaComposer.buildSchema()\n\n freezeTypeComposers(schemaComposer)\n\n return schema\n}\n\nmodule.exports = {\n buildSchema,\n rebuildSchemaWithSitePage,\n}\n\n// Workaround for https://github.com/graphql-compose/graphql-compose/issues/319\n// FIXME: remove this when fixed in graphql-compose\nconst freezeTypeComposers = (schemaComposer, excluded = new Set()) => {\n Array.from(schemaComposer.values()).forEach(tc => {\n const isCompositeTC =\n tc instanceof ObjectTypeComposer || tc instanceof InterfaceTypeComposer\n\n if (isCompositeTC && !excluded.has(tc.getTypeName())) {\n // typeComposer.getType() actually mutates the underlying GraphQL type\n // and always re-assigns type._fields with a thunk.\n // It causes continuous redundant field re-definitions when running queries\n // (affects performance significantly).\n // Prevent the mutation and \"freeze\" the type:\n const type = tc.getType()\n tc.getType = () => type\n }\n })\n}\n\nconst updateSchemaComposer = async ({\n schemaComposer,\n types,\n typeMapping,\n fieldExtensions,\n thirdPartySchemas,\n printConfig,\n typeConflictReporter,\n inferenceMetadata,\n parentSpan,\n}) => {\n let activity = report.phantomActivity(`Add explicit types`, {\n parentSpan: parentSpan,\n })\n activity.start()\n await addTypes({ schemaComposer, parentSpan: activity.span, types })\n activity.end()\n\n activity = report.phantomActivity(`Add inferred types`, {\n parentSpan: parentSpan,\n })\n activity.start()\n await addInferredTypes({\n schemaComposer,\n typeConflictReporter,\n typeMapping,\n inferenceMetadata,\n parentSpan: activity.span,\n })\n addInferredChildOfExtensions({\n schemaComposer,\n })\n activity.end()\n\n activity = report.phantomActivity(`Processing types`, {\n parentSpan: parentSpan,\n })\n activity.start()\n await printTypeDefinitions({\n config: printConfig,\n schemaComposer,\n parentSpan: activity.span,\n })\n await addSetFieldsOnGraphQLNodeTypeFields({\n schemaComposer,\n parentSpan: activity.span,\n })\n await addConvenienceChildrenFields({\n schemaComposer,\n parentSpan: activity.span,\n })\n await Promise.all(\n Array.from(new Set(schemaComposer.values())).map(typeComposer =>\n processTypeComposer({\n schemaComposer,\n typeComposer,\n fieldExtensions,\n parentSpan: activity.span,\n })\n )\n )\n checkQueryableInterfaces({ schemaComposer, parentSpan: activity.span })\n await addThirdPartySchemas({\n schemaComposer,\n thirdPartySchemas,\n parentSpan: activity.span,\n })\n await addCustomResolveFunctions({ schemaComposer, parentSpan: activity.span })\n attachTracingResolver({ schemaComposer, parentSpan: activity.span })\n activity.end()\n}\n\nconst processTypeComposer = async ({\n schemaComposer,\n typeComposer,\n fieldExtensions,\n parentSpan,\n}) => {\n if (typeComposer instanceof ObjectTypeComposer) {\n await processFieldExtensions({\n schemaComposer,\n typeComposer,\n fieldExtensions,\n parentSpan,\n })\n\n if (typeComposer.hasInterface(`Node`)) {\n await addNodeInterfaceFields({ schemaComposer, typeComposer, parentSpan })\n }\n await determineSearchableFields({\n schemaComposer,\n typeComposer,\n parentSpan,\n })\n\n if (typeComposer.hasInterface(`Node`)) {\n await addTypeToRootQuery({ schemaComposer, typeComposer, parentSpan })\n }\n } else if (typeComposer instanceof InterfaceTypeComposer) {\n if (isNodeInterface(typeComposer)) {\n await addNodeInterfaceFields({ schemaComposer, typeComposer, parentSpan })\n\n // We only process field extensions for queryable Node interfaces, so we get\n // the input args on the root query type, e.g. `formatString` etc. for `dateformat`\n await processFieldExtensions({\n schemaComposer,\n typeComposer,\n fieldExtensions,\n parentSpan,\n })\n await determineSearchableFields({\n schemaComposer,\n typeComposer,\n parentSpan,\n })\n await addTypeToRootQuery({ schemaComposer, typeComposer, parentSpan })\n }\n }\n}\n\nconst fieldNames = {\n query: typeName => _.camelCase(typeName),\n queryAll: typeName => _.camelCase(`all ${typeName}`),\n convenienceChild: typeName => _.camelCase(`child ${typeName}`),\n convenienceChildren: typeName => _.camelCase(`children ${typeName}`),\n}\n\nconst addTypes = ({ schemaComposer, types, parentSpan }) => {\n types.forEach(({ typeOrTypeDef, plugin }) => {\n if (typeof typeOrTypeDef === `string`) {\n typeOrTypeDef = parseTypeDef(typeOrTypeDef)\n }\n if (isASTDocument(typeOrTypeDef)) {\n let parsedTypes\n const createdFrom = `sdl`\n try {\n parsedTypes = parseTypes({\n doc: typeOrTypeDef,\n plugin,\n createdFrom,\n schemaComposer,\n parentSpan,\n })\n } catch (error) {\n reportParsingError(error)\n return\n }\n parsedTypes.forEach(type => {\n processAddedType({\n schemaComposer,\n type,\n parentSpan,\n createdFrom,\n plugin,\n })\n })\n } else if (isGatsbyType(typeOrTypeDef)) {\n const type = createTypeComposerFromGatsbyType({\n schemaComposer,\n type: typeOrTypeDef,\n parentSpan,\n })\n\n if (type) {\n const typeName = type.getTypeName()\n const createdFrom = `typeBuilder`\n checkIsAllowedTypeName(typeName)\n if (schemaComposer.has(typeName)) {\n const typeComposer = schemaComposer.get(typeName)\n mergeTypes({\n schemaComposer,\n typeComposer,\n type,\n plugin,\n createdFrom,\n parentSpan,\n })\n } else {\n processAddedType({\n schemaComposer,\n type,\n parentSpan,\n createdFrom,\n plugin,\n })\n }\n }\n } else {\n const typeName = typeOrTypeDef.name\n const createdFrom = `graphql-js`\n checkIsAllowedTypeName(typeName)\n if (schemaComposer.has(typeName)) {\n const typeComposer = schemaComposer.get(typeName)\n mergeTypes({\n schemaComposer,\n typeComposer,\n type: typeOrTypeDef,\n plugin,\n createdFrom,\n parentSpan,\n })\n } else {\n processAddedType({\n schemaComposer,\n type: typeOrTypeDef,\n parentSpan,\n createdFrom,\n plugin,\n })\n }\n }\n })\n}\n\nconst mergeTypes = ({\n schemaComposer,\n typeComposer,\n type,\n plugin,\n createdFrom,\n parentSpan,\n}) => {\n // The merge is considered safe when a user or a plugin owning the type extend this type\n // TODO: add proper conflicts detection and reporting (on the field level)\n const typeOwner = typeComposer.getExtension(`plugin`)\n const isOverridableBuiltInType =\n !typeOwner && overridableBuiltInTypeNames.has(typeComposer.getTypeName())\n\n const isSafeMerge =\n !plugin ||\n plugin.name === `default-site-plugin` ||\n plugin.name === typeOwner ||\n typeComposer.hasExtension(`isPlaceholder`) ||\n isOverridableBuiltInType\n\n if (!isSafeMerge) {\n if (typeOwner) {\n report.warn(\n `Plugin \\`${plugin.name}\\` has customized the GraphQL type ` +\n `\\`${typeComposer.getTypeName()}\\`, which has already been defined ` +\n `by the plugin \\`${typeOwner}\\`. ` +\n `This could potentially cause conflicts.`\n )\n } else {\n report.warn(\n `Plugin \\`${plugin.name}\\` has customized the built-in Gatsby GraphQL type ` +\n `\\`${typeComposer.getTypeName()}\\`. ` +\n `This is allowed, but could potentially cause conflicts.`\n )\n }\n }\n\n if (\n type instanceof ObjectTypeComposer ||\n type instanceof InterfaceTypeComposer ||\n type instanceof GraphQLObjectType ||\n type instanceof GraphQLInterfaceType\n ) {\n mergeFields({ typeComposer, fields: type.getFields() })\n type.getInterfaces().forEach(iface => typeComposer.addInterface(iface))\n }\n\n if (\n type instanceof GraphQLInterfaceType ||\n type instanceof InterfaceTypeComposer ||\n type instanceof GraphQLUnionType ||\n type instanceof UnionTypeComposer\n ) {\n mergeResolveType({ typeComposer, type })\n }\n\n if (isNamedTypeComposer(type)) {\n typeComposer.extendExtensions(type.getExtensions())\n }\n\n addExtensions({ schemaComposer, typeComposer, plugin, createdFrom })\n\n return true\n}\n\nconst processAddedType = ({\n schemaComposer,\n type,\n parentSpan,\n createdFrom,\n plugin,\n}) => {\n const typeName = schemaComposer.add(type)\n const typeComposer = schemaComposer.get(typeName)\n if (\n typeComposer instanceof InterfaceTypeComposer ||\n typeComposer instanceof UnionTypeComposer\n ) {\n if (!typeComposer.getResolveType()) {\n typeComposer.setResolveType(node => node.internal.type)\n }\n }\n schemaComposer.addSchemaMustHaveType(typeComposer)\n\n addExtensions({ schemaComposer, typeComposer, plugin, createdFrom })\n\n return typeComposer\n}\n\nconst addExtensions = ({\n schemaComposer,\n typeComposer,\n plugin,\n createdFrom,\n}) => {\n typeComposer.setExtension(`createdFrom`, createdFrom)\n typeComposer.setExtension(`plugin`, plugin ? plugin.name : null)\n\n if (createdFrom === `sdl`) {\n const directives = typeComposer.getDirectives()\n directives.forEach(({ name, args }) => {\n switch (name) {\n case `infer`:\n case `dontInfer`: {\n typeComposer.setExtension(`infer`, name === `infer`)\n break\n }\n case `mimeTypes`:\n typeComposer.setExtension(`mimeTypes`, args)\n break\n case `childOf`:\n typeComposer.setExtension(`childOf`, args)\n break\n case `nodeInterface`:\n if (typeComposer instanceof InterfaceTypeComposer) {\n typeComposer.setExtension(`nodeInterface`, true)\n }\n break\n default:\n }\n })\n }\n\n if (\n typeComposer instanceof InterfaceTypeComposer &&\n isNodeInterface(typeComposer)\n ) {\n // TODO: remove nodeInterface in Gatsby v4\n if (typeComposer.hasExtension(`nodeInterface`)) {\n report.warn(\n `Deprecation warning: ` +\n `\\`@nodeInterface\\` extension is deprecated and will be removed in Gatsby v4. ` +\n `Use interface inheritance instead.\\n` +\n `To upgrade replace the old format:\\n` +\n ` interface \\`${typeComposer.getTypeName()}\\` @nodeInterface\\n` +\n `with the new one (in \\`createTypes\\` action of schema customization API):\\n` +\n ` interface \\`${typeComposer.getTypeName()}\\` implements Node\\n` +\n `Read more about schema customization here:\\n` +\n `https://www.gatsbyjs.com/docs/reference/graphql-data-layer/schema-customization/`\n )\n }\n\n const hasCorrectIdField =\n typeComposer.hasField(`id`) &&\n typeComposer.getFieldType(`id`).toString() === `ID!`\n\n if (!hasCorrectIdField) {\n report.panic(\n `Interfaces with the \\`nodeInterface\\` extension must have a field ` +\n `\\`id\\` of type \\`ID!\\`. Check the type definition of ` +\n `\\`${typeComposer.getTypeName()}\\`.`\n )\n }\n }\n\n if (\n typeComposer instanceof ObjectTypeComposer ||\n typeComposer instanceof InterfaceTypeComposer ||\n typeComposer instanceof InputTypeComposer\n ) {\n typeComposer.getFieldNames().forEach(fieldName => {\n typeComposer.setFieldExtension(fieldName, `createdFrom`, createdFrom)\n typeComposer.setFieldExtension(\n fieldName,\n `plugin`,\n plugin ? plugin.name : null\n )\n\n if (createdFrom === `sdl`) {\n const directives = typeComposer.getFieldDirectives(fieldName)\n directives.forEach(({ name, args }) => {\n typeComposer.setFieldExtension(fieldName, name, args)\n })\n }\n\n // Validate field extension args. `graphql-compose` already checks the\n // type of directive args in `parseDirectives`, but we want to check\n // extensions provided with type builders as well. Also, we warn if an\n // extension option was provided which does not exist in the field\n // extension definition.\n const fieldExtensions = typeComposer.getFieldExtensions(fieldName)\n const typeName = typeComposer.getTypeName()\n Object.keys(fieldExtensions)\n .filter(name => !internalExtensionNames.includes(name))\n .forEach(name => {\n const args = fieldExtensions[name]\n\n if (!args || typeof args !== `object`) {\n report.error(\n `Field extension arguments must be provided as an object. ` +\n `Received \"${args}\" on \\`${typeName}.${fieldName}\\`.`\n )\n return\n }\n\n try {\n const definition = schemaComposer.getDirective(name)\n\n // Handle `defaultValue` when not provided as directive\n definition.args.forEach(({ name, defaultValue }) => {\n if (args[name] === undefined && defaultValue !== undefined) {\n args[name] = defaultValue\n }\n })\n\n Object.keys(args).forEach(arg => {\n const argumentDef = definition.args.find(\n ({ name }) => name === arg\n )\n if (!argumentDef) {\n report.error(\n `Field extension \\`${name}\\` on \\`${typeName}.${fieldName}\\` ` +\n `has invalid argument \\`${arg}\\`.`\n )\n return\n }\n const value = args[arg]\n try {\n validate(argumentDef.type, value)\n } catch (error) {\n report.error(\n `Field extension \\`${name}\\` on \\`${typeName}.${fieldName}\\` ` +\n `has argument \\`${arg}\\` with invalid value \"${value}\". ` +\n error.message\n )\n }\n })\n } catch (error) {\n report.error(\n `Field extension \\`${name}\\` on \\`${typeName}.${fieldName}\\` ` +\n `is not available.`\n )\n }\n })\n })\n }\n\n return typeComposer\n}\n\nconst checkIsAllowedTypeName = name => {\n invariant(\n name !== `Node`,\n `The GraphQL type \\`Node\\` is reserved for internal use.`\n )\n invariant(\n !name.endsWith(`FilterInput`) && !name.endsWith(`SortInput`),\n `GraphQL type names ending with \"FilterInput\" or \"SortInput\" are ` +\n `reserved for internal use. Please rename \\`${name}\\`.`\n )\n invariant(\n ![`Boolean`, `Date`, `Float`, `ID`, `Int`, `JSON`, `String`].includes(name),\n `The GraphQL type \\`${name}\\` is reserved for internal use by ` +\n `built-in scalar types.`\n )\n assertValidName(name)\n}\n\nconst createTypeComposerFromGatsbyType = ({\n schemaComposer,\n type,\n parentSpan,\n}) => {\n let typeComposer\n switch (type.kind) {\n case GatsbyGraphQLTypeKind.OBJECT: {\n typeComposer = ObjectTypeComposer.createTemp({\n ...type.config,\n fields: () =>\n schemaComposer.typeMapper.convertOutputFieldConfigMap(\n type.config.fields\n ),\n interfaces: () => {\n if (type.config.interfaces) {\n return type.config.interfaces.map(iface => {\n if (typeof iface === `string`) {\n // Sadly, graphql-compose runs this function too early - before we have\n // all of those interfaces actually created in the schema, so have to create\n // a temporary placeholder composer :/\n if (!schemaComposer.has(iface)) {\n const tmpComposer = schemaComposer.createInterfaceTC(iface)\n tmpComposer.setExtension(`isPlaceholder`, true)\n return tmpComposer\n }\n return schemaComposer.getIFTC(iface)\n } else {\n return iface\n }\n })\n } else {\n return []\n }\n },\n })\n break\n }\n case GatsbyGraphQLTypeKind.INPUT_OBJECT: {\n typeComposer = InputTypeComposer.createTemp({\n ...type.config,\n fields: schemaComposer.typeMapper.convertInputFieldConfigMap(\n type.config.fields\n ),\n })\n break\n }\n case GatsbyGraphQLTypeKind.UNION: {\n typeComposer = UnionTypeComposer.createTemp({\n ...type.config,\n types: () => {\n if (type.config.types) {\n return type.config.types.map(typeName => {\n if (!schemaComposer.has(typeName)) {\n // Sadly, graphql-compose runs this function too early - before we have\n // all of those types actually created in the schema, so have to create\n // a temporary placeholder composer :/\n const tmpComposer = schemaComposer.createObjectTC(typeName)\n tmpComposer.setExtension(`isPlaceholder`, true)\n return tmpComposer\n }\n return schemaComposer.getOTC(typeName)\n })\n } else {\n return []\n }\n },\n })\n break\n }\n case GatsbyGraphQLTypeKind.INTERFACE: {\n typeComposer = InterfaceTypeComposer.createTemp({\n ...type.config,\n fields: () =>\n schemaComposer.typeMapper.convertOutputFieldConfigMap(\n type.config.fields\n ),\n interfaces: () => {\n if (type.config.interfaces) {\n return type.config.interfaces.map(iface => {\n if (typeof iface === `string`) {\n // Sadly, graphql-compose runs this function too early - before we have\n // all of those interfaces actually created in the schema, so have to create\n // a temporary placeholder composer :/\n if (!schemaComposer.has(iface)) {\n const tmpComposer = schemaComposer.createInterfaceTC(iface)\n tmpComposer.setExtension(`isPlaceholder`, true)\n return tmpComposer\n }\n return schemaComposer.getIFTC(iface)\n } else {\n return iface\n }\n })\n } else {\n return []\n }\n },\n })\n break\n }\n case GatsbyGraphQLTypeKind.ENUM: {\n typeComposer = EnumTypeComposer.createTemp(type.config)\n break\n }\n case GatsbyGraphQLTypeKind.SCALAR: {\n typeComposer = ScalarTypeComposer.createTemp(type.config)\n break\n }\n default: {\n report.warn(`Illegal type definition: ${JSON.stringify(type.config)}`)\n typeComposer = null\n }\n }\n if (typeComposer) {\n // Workaround for https://github.com/graphql-compose/graphql-compose/issues/311\n typeComposer.schemaComposer = schemaComposer\n }\n return typeComposer\n}\n\nconst addSetFieldsOnGraphQLNodeTypeFields = ({ schemaComposer, parentSpan }) =>\n Promise.all(\n Array.from(schemaComposer.values()).map(async tc => {\n if (tc instanceof ObjectTypeComposer && tc.hasInterface(`Node`)) {\n const typeName = tc.getTypeName()\n const result = await apiRunner(`setFieldsOnGraphQLNodeType`, {\n type: {\n name: typeName,\n nodes: getNodesByType(typeName),\n },\n traceId: `initial-setFieldsOnGraphQLNodeType`,\n parentSpan,\n })\n if (result) {\n // NOTE: `setFieldsOnGraphQLNodeType` only allows setting\n // nested fields with a path as property name, i.e.\n // `{ 'frontmatter.published': 'Boolean' }`, but not in the form\n // `{ frontmatter: { published: 'Boolean' }}`\n result.forEach(fields => tc.addNestedFields(fields))\n }\n }\n })\n )\n\nconst addThirdPartySchemas = ({\n schemaComposer,\n thirdPartySchemas,\n parentSpan,\n}) => {\n thirdPartySchemas.forEach(schema => {\n const schemaQueryType = schema.getQueryType()\n const queryTC = schemaComposer.createTempTC(schemaQueryType)\n processThirdPartyTypeFields({\n typeComposer: queryTC,\n type: schemaQueryType,\n schemaQueryType,\n })\n schemaComposer.Query.addFields(queryTC.getFields())\n\n // Explicitly add the third-party schema's types, so they can be targeted\n // in `createResolvers` API.\n const types = schema.getTypeMap()\n Object.keys(types).forEach(typeName => {\n const type = types[typeName]\n if (\n type !== schemaQueryType &&\n !isSpecifiedScalarType(type) &&\n !isIntrospectionType(type) &&\n type.name !== `Date` &&\n type.name !== `JSON`\n ) {\n const typeHasFields =\n type instanceof GraphQLObjectType ||\n type instanceof GraphQLInterfaceType\n\n // Workaround for an edge case typical for Relay Classic-compatible schemas.\n // For example, GitHub API contains this piece:\n // type Query { relay: Query }\n // And gatsby-source-graphql transforms it to:\n // type Query { github: GitHub }\n // type GitHub { relay: Query }\n // The problem:\n // schemaComposer.createTC(type) for type `GitHub` will eagerly create type composers\n // for all fields (including `relay` and it's type: `Query` of the third-party schema)\n // This unexpected `Query` composer messes up with our own Query type composer and produces duplicate types.\n // The workaround is to make sure fields of the GitHub type are lazy and are evaluated only when\n // this Query type is already replaced with our own root `Query` type (see processThirdPartyTypeFields):\n if (typeHasFields && typeof type._fields === `object`) {\n const fields = type._fields\n type._fields = () => fields\n }\n // ^^^ workaround done\n const typeComposer = schemaComposer.createTC(type)\n if (typeHasFields) {\n processThirdPartyTypeFields({\n typeComposer,\n type,\n schemaQueryType,\n })\n }\n typeComposer.setExtension(`createdFrom`, `thirdPartySchema`)\n schemaComposer.addSchemaMustHaveType(typeComposer)\n }\n })\n })\n}\n\nconst resetOverriddenThirdPartyTypeFields = ({ typeComposer }) => {\n // The problem: createResolvers API mutates third party schema instance.\n // For example it can add a new field referencing a type from our main schema\n // Then if we rebuild the schema this old type instance will sneak into\n // the new schema and produce the famous error:\n // \"Schema must contain uniquely named types but contains multiple types named X\"\n // This function only affects schema rebuilding pathway.\n // It cleans up artifacts created by the `createResolvers` API of the previous build\n // so that we return the third party schema to its initial state (hence can safely re-add)\n // TODO: the right way to fix this would be not to mutate the third party schema in\n // the first place. But unfortunately mutation happens in the `graphql-compose`\n // and we don't have an easy way to avoid it without major rework\n typeComposer.getFieldNames().forEach(fieldName => {\n const createdFrom = typeComposer.getFieldExtension(fieldName, `createdFrom`)\n if (createdFrom === `createResolvers`) {\n typeComposer.removeField(fieldName)\n return\n }\n const config = typeComposer.getFieldExtension(\n fieldName,\n `originalFieldConfig`\n )\n if (config) {\n typeComposer.removeField(fieldName)\n typeComposer.addFields({\n [fieldName]: config,\n })\n }\n })\n}\n\nconst processThirdPartyTypeFields = ({\n typeComposer,\n type,\n schemaQueryType,\n}) => {\n // Fix for types that refer to Query. Thanks Relay Classic!\n const fields = type.getFields()\n Object.keys(fields).forEach(fieldName => {\n // Remove customization that we could have added via `createResolvers`\n // to make it work with schema rebuilding\n const fieldType = String(fields[fieldName].type)\n if (fieldType.replace(/[[\\]!]/g, ``) === schemaQueryType.name) {\n typeComposer.extendField(fieldName, {\n type: fieldType.replace(schemaQueryType.name, `Query`),\n })\n }\n })\n resetOverriddenThirdPartyTypeFields({ typeComposer })\n}\n\nconst addCustomResolveFunctions = async ({ schemaComposer, parentSpan }) => {\n const intermediateSchema = schemaComposer.buildSchema()\n const createResolvers = (\n resolvers,\n { ignoreNonexistentTypes = false } = {}\n ) => {\n Object.keys(resolvers).forEach(typeName => {\n const fields = resolvers[typeName]\n if (schemaComposer.has(typeName)) {\n const tc = schemaComposer.getOTC(typeName)\n Object.keys(fields).forEach(fieldName => {\n const fieldConfig = fields[fieldName]\n if (tc.hasField(fieldName)) {\n const originalFieldConfig = tc.getFieldConfig(fieldName)\n const originalTypeName = originalFieldConfig.type.toString()\n const originalResolver = originalFieldConfig.resolve\n let fieldTypeName\n if (fieldConfig.type) {\n fieldTypeName = Array.isArray(fieldConfig.type)\n ? stringifyArray(fieldConfig.type)\n : fieldConfig.type.toString()\n }\n\n if (\n !fieldTypeName ||\n fieldTypeName.replace(/!/g, ``) ===\n originalTypeName.replace(/!/g, ``) ||\n tc.getExtension(`createdFrom`) === `thirdPartySchema`\n ) {\n const newConfig = {}\n if (fieldConfig.type) {\n newConfig.type = fieldConfig.type\n }\n if (fieldConfig.args) {\n newConfig.args = fieldConfig.args\n }\n if (fieldConfig.resolve) {\n newConfig.resolve = (source, args, context, info) =>\n fieldConfig.resolve(source, args, context, {\n ...info,\n originalResolver:\n originalResolver || context.defaultFieldResolver,\n })\n tc.extendFieldExtensions(fieldName, {\n needsResolve: true,\n })\n }\n tc.extendField(fieldName, newConfig)\n\n // See resetOverriddenThirdPartyTypeFields for explanation\n if (tc.getExtension(`createdFrom`) === `thirdPartySchema`) {\n tc.setFieldExtension(\n fieldName,\n `originalFieldConfig`,\n originalFieldConfig\n )\n }\n } else if (fieldTypeName) {\n report.warn(\n `\\`createResolvers\\` passed resolvers for field ` +\n `\\`${typeName}.${fieldName}\\` with type \\`${fieldTypeName}\\`. ` +\n `Such a field with type \\`${originalTypeName}\\` already exists ` +\n `on the type. Use \\`createTypes\\` to override type fields.`\n )\n }\n } else {\n tc.addFields({\n [fieldName]: fieldConfig,\n })\n // See resetOverriddenThirdPartyTypeFields for explanation\n tc.setFieldExtension(fieldName, `createdFrom`, `createResolvers`)\n }\n })\n } else if (!ignoreNonexistentTypes) {\n report.warn(\n `\\`createResolvers\\` passed resolvers for type \\`${typeName}\\` that ` +\n `doesn't exist in the schema. Use \\`createTypes\\` to add the type ` +\n `before adding resolvers.`\n )\n }\n })\n }\n await apiRunner(`createResolvers`, {\n intermediateSchema,\n createResolvers,\n traceId: `initial-createResolvers`,\n parentSpan,\n })\n}\n\nfunction attachTracingResolver({ schemaComposer }) {\n schemaComposer.forEach(typeComposer => {\n if (\n typeComposer instanceof ObjectTypeComposer ||\n typeComposer instanceof InterfaceTypeComposer\n ) {\n typeComposer.getFieldNames().forEach(fieldName => {\n const field = typeComposer.getField(fieldName)\n typeComposer.extendField(fieldName, {\n resolve:\n field.resolve && field.resolve !== defaultResolver\n ? wrappingResolver(field.resolve)\n : defaultResolver,\n })\n })\n }\n })\n}\n\nconst determineSearchableFields = ({ schemaComposer, typeComposer }) => {\n typeComposer.getFieldNames().forEach(fieldName => {\n const field = typeComposer.getField(fieldName)\n const extensions = typeComposer.getFieldExtensions(fieldName)\n if (field.resolve) {\n if (extensions.dateformat) {\n typeComposer.extendFieldExtensions(fieldName, {\n searchable: SEARCHABLE_ENUM.SEARCHABLE,\n sortable: SORTABLE_ENUM.SORTABLE,\n needsResolve: extensions.proxy ? true : false,\n })\n } else if (!_.isEmpty(field.args)) {\n typeComposer.extendFieldExtensions(fieldName, {\n searchable: SEARCHABLE_ENUM.DEPRECATED_SEARCHABLE,\n sortable: SORTABLE_ENUM.DEPRECATED_SORTABLE,\n needsResolve: true,\n })\n } else {\n typeComposer.extendFieldExtensions(fieldName, {\n searchable: SEARCHABLE_ENUM.SEARCHABLE,\n sortable: SORTABLE_ENUM.SORTABLE,\n needsResolve: true,\n })\n }\n } else {\n typeComposer.extendFieldExtensions(fieldName, {\n searchable: SEARCHABLE_ENUM.SEARCHABLE,\n sortable: SORTABLE_ENUM.SORTABLE,\n needsResolve: false,\n })\n }\n })\n}\n\nconst addConvenienceChildrenFields = ({ schemaComposer }) => {\n const parentTypesToChildren = new Map()\n const mimeTypesToChildren = new Map()\n const typesHandlingMimeTypes = new Map()\n\n schemaComposer.forEach(type => {\n if (\n (type instanceof ObjectTypeComposer ||\n type instanceof InterfaceTypeComposer) &&\n type.hasExtension(`mimeTypes`)\n ) {\n const { types } = type.getExtension(`mimeTypes`)\n new Set(types).forEach(mimeType => {\n if (!typesHandlingMimeTypes.has(mimeType)) {\n typesHandlingMimeTypes.set(mimeType, new Set())\n }\n typesHandlingMimeTypes.get(mimeType).add(type)\n })\n }\n\n if (\n (type instanceof ObjectTypeComposer ||\n type instanceof InterfaceTypeComposer) &&\n type.hasExtension(`childOf`)\n ) {\n if (type instanceof ObjectTypeComposer && !type.hasInterface(`Node`)) {\n report.error(\n `The \\`childOf\\` extension can only be used on types that implement the \\`Node\\` interface.\\n` +\n `Check the type definition of \\`${type.getTypeName()}\\`.`\n )\n return\n }\n if (type instanceof InterfaceTypeComposer && !isNodeInterface(type)) {\n report.error(\n `The \\`childOf\\` extension can only be used on interface types that ` +\n `have the \\`@nodeInterface\\` extension.\\n` +\n `Check the type definition of \\`${type.getTypeName()}\\`.`\n )\n return\n }\n\n const { types, mimeTypes } = type.getExtension(`childOf`)\n\n new Set(types).forEach(parentType => {\n if (!parentTypesToChildren.has(parentType)) {\n parentTypesToChildren.set(parentType, new Set())\n }\n parentTypesToChildren.get(parentType).add(type)\n })\n new Set(mimeTypes).forEach(mimeType => {\n if (!mimeTypesToChildren.has(mimeType)) {\n mimeTypesToChildren.set(mimeType, new Set())\n }\n mimeTypesToChildren.get(mimeType).add(type)\n })\n }\n })\n\n parentTypesToChildren.forEach((children, parent) => {\n if (!schemaComposer.has(parent)) return\n const typeComposer = schemaComposer.getAnyTC(parent)\n if (\n typeComposer instanceof InterfaceTypeComposer &&\n !isNodeInterface(typeComposer)\n ) {\n report.error(\n `With the \\`childOf\\` extension, children fields can only be added to ` +\n `interfaces which implement the \\`Node\\` interface.\\n` +\n `Check the type definition of \\`${typeComposer.getTypeName()}\\`.`\n )\n return\n }\n children.forEach(child => {\n typeComposer.addFields(createChildrenField(child.getTypeName()))\n typeComposer.addFields(createChildField(child.getTypeName()))\n })\n })\n\n mimeTypesToChildren.forEach((children, mimeType) => {\n const parentTypes = typesHandlingMimeTypes.get(mimeType)\n if (parentTypes) {\n parentTypes.forEach(typeComposer => {\n if (\n typeComposer instanceof InterfaceTypeComposer &&\n !isNodeInterface(typeComposer)\n ) {\n report.error(\n `With the \\`childOf\\` extension, children fields can only be added to ` +\n `interfaces which implement the \\`Node\\` interface.\\n` +\n `Check the type definition of \\`${typeComposer.getTypeName()}\\`.`\n )\n return\n }\n children.forEach(child => {\n typeComposer.addFields(createChildrenField(child.getTypeName()))\n typeComposer.addFields(createChildField(child.getTypeName()))\n })\n })\n }\n })\n}\n\nconst isExplicitChild = ({ typeComposer, childTypeComposer }) => {\n if (!childTypeComposer.hasExtension(`childOf`)) {\n return false\n }\n const childOfExtension = childTypeComposer.getExtension(`childOf`)\n const { types: parentMimeTypes = [] } =\n typeComposer.getExtension(`mimeTypes`) ?? {}\n\n return (\n childOfExtension?.types?.includes(typeComposer.getTypeName()) ||\n childOfExtension?.mimeTypes?.some(mimeType =>\n parentMimeTypes.includes(mimeType)\n )\n )\n}\n\nconst addInferredChildOfExtensions = ({ schemaComposer }) => {\n schemaComposer.forEach(typeComposer => {\n if (\n typeComposer instanceof ObjectTypeComposer &&\n typeComposer.hasInterface(`Node`)\n ) {\n addInferredChildOfExtension({\n schemaComposer,\n typeComposer,\n })\n }\n })\n}\n\nconst addInferredChildOfExtension = ({ schemaComposer, typeComposer }) => {\n const shouldInfer = typeComposer.getExtension(`infer`)\n // With `@dontInfer`, only parent-child\n // relations explicitly set with the `@childOf` extension are added.\n if (shouldInfer === false) return\n\n const parentTypeName = typeComposer.getTypeName()\n const nodes = getNodesByType(parentTypeName)\n\n const childNodesByType = groupChildNodesByType({ nodes })\n\n Object.keys(childNodesByType).forEach(typeName => {\n const childTypeComposer = schemaComposer.getAnyTC(typeName)\n let childOfExtension = childTypeComposer.getExtension(`childOf`)\n\n if (isExplicitChild({ typeComposer, childTypeComposer })) {\n return\n }\n // Set `@childOf` extension automatically\n // This will cause convenience children fields like `childImageSharp`\n // to be added in `addConvenienceChildrenFields` method.\n // Also required for proper printing of the `@childOf` directive in the snapshot plugin\n if (!childOfExtension) {\n childOfExtension = {}\n }\n if (!childOfExtension.types) {\n childOfExtension.types = []\n }\n childOfExtension.types.push(parentTypeName)\n childTypeComposer.setExtension(`childOf`, childOfExtension)\n })\n}\n\nconst createChildrenField = typeName => {\n return {\n [fieldNames.convenienceChildren(typeName)]: {\n type: () => [typeName],\n description: `Returns all children nodes filtered by type ${typeName}`,\n resolve(source, args, context) {\n const { path } = context\n return context.nodeModel.getNodesByIds(\n { ids: source.children, type: typeName },\n { path }\n )\n },\n },\n }\n}\n\nconst createChildField = typeName => {\n return {\n [fieldNames.convenienceChild(typeName)]: {\n type: () => typeName,\n description:\n `Returns the first child node of type ${typeName} ` +\n `or null if there are no children of given type on this node`,\n resolve(source, args, context) {\n const { path } = context\n const result = context.nodeModel.getNodesByIds(\n { ids: source.children, type: typeName },\n { path }\n )\n if (result && result.length > 0) {\n return result[0]\n } else {\n return null\n }\n },\n },\n }\n}\n\nconst groupChildNodesByType = ({ nodes }) =>\n _(nodes)\n .flatMap(node => (node.children || []).map(getNode).filter(Boolean))\n .groupBy(node => (node.internal ? node.internal.type : undefined))\n .value()\n\nconst addTypeToRootQuery = ({ schemaComposer, typeComposer }) => {\n const sortInputTC = getSortInput({\n schemaComposer,\n typeComposer,\n })\n const filterInputTC = getFilterInput({\n schemaComposer,\n typeComposer,\n })\n const paginationTC = getPagination({\n schemaComposer,\n typeComposer,\n })\n\n const typeName = typeComposer.getTypeName()\n // not strictly correctly, result is `npmPackage` and `allNpmPackage` from type `NPMPackage`\n const queryName = fieldNames.query(typeName)\n const queryNamePlural = fieldNames.queryAll(typeName)\n\n schemaComposer.Query.addFields({\n [queryName]: {\n type: typeComposer,\n args: {\n ...filterInputTC.getFields(),\n },\n resolve: findOne(typeName),\n },\n [queryNamePlural]: {\n type: paginationTC,\n args: {\n filter: filterInputTC,\n sort: sortInputTC,\n skip: `Int`,\n limit: `Int`,\n },\n resolve: findManyPaginated(typeName),\n },\n }).makeFieldNonNull(queryNamePlural)\n}\n\nconst parseTypes = ({\n doc,\n plugin,\n createdFrom,\n schemaComposer,\n parentSpan,\n}) => {\n const types = []\n doc.definitions.forEach(def => {\n const name = def.name.value\n checkIsAllowedTypeName(name)\n\n if (schemaComposer.has(name)) {\n // We don't check if ast.kind matches composer type, but rely\n // that this will throw when something is wrong and get\n // reported by `reportParsingError`.\n\n // Keep the original type composer around\n const typeComposer = schemaComposer.get(name)\n\n // After this, the parsed type composer will be registered as the composer\n // handling the type name (requires cleanup after merging, see below)\n const parsedType = schemaComposer.typeMapper.makeSchemaDef(def)\n\n // Merge the parsed type with the original\n mergeTypes({\n schemaComposer,\n typeComposer,\n type: parsedType,\n plugin,\n createdFrom,\n parentSpan,\n })\n\n // Cleanup:\n // Set the original type composer (with the merged fields added)\n // as the correct composer for the type name and remove the temporary one\n // `graphql-compose` doesn't make that easy 🤯\n // TODO: clean this up when this issue is fixed:\n // https://github.com/graphql-compose/graphql-compose/issues/311\n schemaComposer.set(typeComposer.getTypeName(), typeComposer)\n schemaComposer.set(typeComposer._gqType, typeComposer)\n schemaComposer.delete(parsedType._gqType)\n schemaComposer.delete(parsedType)\n } else {\n const parsedType = schemaComposer.typeMapper.makeSchemaDef(def)\n types.push(parsedType)\n }\n })\n return types\n}\n\nconst stringifyArray = arr =>\n `[${arr.map(item =>\n Array.isArray(item) ? stringifyArray(item) : item.toString()\n )}]`\n\n// TODO: Import this directly from graphql-compose once we update to v7\nconst isNamedTypeComposer = type =>\n type instanceof ObjectTypeComposer ||\n type instanceof InputTypeComposer ||\n type instanceof ScalarTypeComposer ||\n type instanceof EnumTypeComposer ||\n type instanceof InterfaceTypeComposer ||\n type instanceof UnionTypeComposer\n\nconst validate = (type, value) => {\n if (type instanceof GraphQLNonNull) {\n if (value == null) {\n throw new Error(`Expected non-null field value.`)\n }\n return validate(type.ofType, value)\n } else if (type instanceof GraphQLList) {\n if (!Array.isArray(value)) {\n throw new Error(`Expected array field value.`)\n }\n return value.map(v => validate(type.ofType, v))\n } else {\n return type.parseValue(value)\n }\n}\n\n// TODO: remove nodeInterface in Gatsby v4\nconst isNodeInterface = interfaceTypeComposer =>\n interfaceTypeComposer.hasExtension(`nodeInterface`) ||\n interfaceTypeComposer.hasInterface(`Node`)\n\nconst checkQueryableInterfaces = ({ schemaComposer }) => {\n const queryableInterfaces = new Set()\n schemaComposer.forEach(type => {\n if (type instanceof InterfaceTypeComposer && isNodeInterface(type)) {\n queryableInterfaces.add(type.getTypeName())\n }\n })\n const incorrectTypes = new Set()\n schemaComposer.forEach(type => {\n if (type instanceof ObjectTypeComposer) {\n const interfaces = type.getInterfaces()\n if (\n interfaces.some(iface =>\n queryableInterfaces.has(iface.getTypeName())\n ) &&\n !type.hasInterface(`Node`)\n ) {\n incorrectTypes.add(type.getTypeName())\n }\n }\n })\n if (incorrectTypes.size) {\n report.panic(\n `Types implementing queryable interfaces must also implement the \\`Node\\` ` +\n `interface. Check the type definition of ` +\n `${Array.from(incorrectTypes)\n .map(t => `\\`${t}\\``)\n .join(`, `)}.`\n )\n }\n}\n\nconst mergeFields = ({ typeComposer, fields }) =>\n Object.entries(fields).forEach(([fieldName, fieldConfig]) => {\n if (typeComposer.hasField(fieldName)) {\n typeComposer.extendField(fieldName, fieldConfig)\n } else {\n typeComposer.setField(fieldName, fieldConfig)\n }\n })\n\nconst mergeResolveType = ({ typeComposer, type }) => {\n if (\n (type instanceof GraphQLInterfaceType ||\n type instanceof GraphQLUnionType) &&\n type.resolveType\n ) {\n typeComposer.setResolveType(type.resolveType)\n }\n if (\n (type instanceof InterfaceTypeComposer ||\n type instanceof UnionTypeComposer) &&\n type.getResolveType()\n ) {\n typeComposer.setResolveType(type.getResolveType())\n }\n}\n"],"file":"schema.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/___admin/styles.ac2d3128404ecdaeec67.css" id="gatsby-global-css">/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}</style><meta name="generator" content="Gatsby 3.6.
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/___admin/styles.ac2d3128404ecdaeec67.css" id="gatsby-global-css">/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}</style><meta name="generator" content="Gatsby 3.6.2"/><title data-react-helmet="true"></title><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2"/><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2"/><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2"/><style>@font-face{font-family:Inter;font-style:normal;font-weight:400;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:800;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:400;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hjg.woff) format("woff");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hjg.woff) format("woff");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:800;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hjg.woff) format("woff");font-display:swap}</style><link as="script" rel="preload" href="/___admin/webpack-runtime-0f28f3d647dc43d8abb9.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-650ea5ffc8686e13a1e4.js"/><link as="script" rel="preload" href="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-e8377efa018b5b632652.js"/><link as="script" rel="preload" href="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-52c66354c9e40dafee82.js"/><link as="script" rel="preload" href="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-aa0380a0e650c4e20230.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-index-tsx-e14ac7eb589bdb79743f.js"/><link as="fetch" rel="preload" href="/___admin/page-data/index/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/___admin/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="ict6so">body{background-color:#ffffff;}body color{header:#000000;primary:#36313d;secondary:#78757a;placeholder:#b7b5bd;}</style><style data-emotion-css="fw25na">*{box-sizing:border-box;}body{margin:0rem;background-color:var(--theme-ui-colors-grey-5,#fbfbfb);}</style><style data-emotion-css="1pf5xd">.css-1pf5xd{box-sizing:border-box;margin:0;min-width:0;color:primary;overflow:visible;}</style><svg viewBox="0 0 32 32" width="48" height="48" stroke-width="4" fill="none" stroke="currentcolor" role="img" class="css-1pf5xd"><title>Loading...</title><circle cx="16" cy="16" r="12" opacity="0.125"></circle><style data-emotion-css="wpcq6n animation-1q8eu9e">.css-wpcq6n{box-sizing:border-box;margin:0;min-width:0;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation-name:animation-1q8eu9e;animation-name:animation-1q8eu9e;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-duration:500ms;animation-duration:500ms;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;}@-webkit-keyframes animation-1q8eu9e{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes animation-1q8eu9e{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}</style><circle cx="16" cy="16" r="12" stroke-dasharray="75.39822368615503" stroke-dashoffset="56.548667764616276" class="css-wpcq6n"></circle></svg></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-8cf307b8c8e963342754.js"],"app":["/app-650ea5ffc8686e13a1e4.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-e14ac7eb589bdb79743f.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-2fcb822e2606c12b2ea2.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-0473a7c3e1abdf54b13c.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-3cebdfd1e7678aa2dd3e.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"]};/*]]>*/</script><script src="/___admin/polyfill-8cf307b8c8e963342754.js" nomodule=""></script><script src="/___admin/component---src-pages-index-tsx-e14ac7eb589bdb79743f.js" async=""></script><script src="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-aa0380a0e650c4e20230.js" async=""></script><script src="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-52c66354c9e40dafee82.js" async=""></script><script src="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-e8377efa018b5b632652.js" async=""></script><script src="/___admin/app-650ea5ffc8686e13a1e4.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-0f28f3d647dc43d8abb9.js" async=""></script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/___admin/styles.ac2d3128404ecdaeec67.css" id="gatsby-global-css">/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}</style><meta name="generator" content="Gatsby 3.6.
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/___admin/styles.ac2d3128404ecdaeec67.css" id="gatsby-global-css">/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}</style><meta name="generator" content="Gatsby 3.6.2"/><title data-react-helmet="true"></title><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2"/><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2"/><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2"/><style>@font-face{font-family:Inter;font-style:normal;font-weight:400;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:800;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:400;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hjg.woff) format("woff");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hjg.woff) format("woff");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:800;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hjg.woff) format("woff");font-display:swap}</style><link as="script" rel="preload" href="/___admin/webpack-runtime-0f28f3d647dc43d8abb9.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-650ea5ffc8686e13a1e4.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-pages-tsx-2fcb822e2606c12b2ea2.js"/><link as="fetch" rel="preload" href="/___admin/page-data/pages/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/___admin/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="ict6so">body{background-color:#ffffff;}body color{header:#000000;primary:#36313d;secondary:#78757a;placeholder:#b7b5bd;}</style><style data-emotion-css="fw25na">*{box-sizing:border-box;}body{margin:0rem;background-color:var(--theme-ui-colors-grey-5,#fbfbfb);}</style><style data-emotion-css="1pf5xd">.css-1pf5xd{box-sizing:border-box;margin:0;min-width:0;color:primary;overflow:visible;}</style><svg viewBox="0 0 32 32" width="48" height="48" stroke-width="4" fill="none" stroke="currentcolor" role="img" class="css-1pf5xd"><title>Loading...</title><circle cx="16" cy="16" r="12" opacity="0.125"></circle><style data-emotion-css="wpcq6n animation-1q8eu9e">.css-wpcq6n{box-sizing:border-box;margin:0;min-width:0;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation-name:animation-1q8eu9e;animation-name:animation-1q8eu9e;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-duration:500ms;animation-duration:500ms;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;}@-webkit-keyframes animation-1q8eu9e{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes animation-1q8eu9e{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}</style><circle cx="16" cy="16" r="12" stroke-dasharray="75.39822368615503" stroke-dashoffset="56.548667764616276" class="css-wpcq6n"></circle></svg></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/pages/";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-8cf307b8c8e963342754.js"],"app":["/app-650ea5ffc8686e13a1e4.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-e14ac7eb589bdb79743f.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-2fcb822e2606c12b2ea2.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-0473a7c3e1abdf54b13c.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-3cebdfd1e7678aa2dd3e.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"]};/*]]>*/</script><script src="/___admin/polyfill-8cf307b8c8e963342754.js" nomodule=""></script><script src="/___admin/component---src-pages-pages-tsx-2fcb822e2606c12b2ea2.js" async=""></script><script src="/___admin/app-650ea5ffc8686e13a1e4.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-0f28f3d647dc43d8abb9.js" async=""></script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/___admin/styles.ac2d3128404ecdaeec67.css" id="gatsby-global-css">/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}</style><meta name="generator" content="Gatsby 3.6.
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/___admin/styles.ac2d3128404ecdaeec67.css" id="gatsby-global-css">/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}</style><meta name="generator" content="Gatsby 3.6.2"/><title data-react-helmet="true"></title><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2"/><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2"/><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2"/><style>@font-face{font-family:Inter;font-style:normal;font-weight:400;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:800;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:400;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hjg.woff) format("woff");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hjg.woff) format("woff");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:800;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hjg.woff) format("woff");font-display:swap}</style><link as="script" rel="preload" href="/___admin/webpack-runtime-0f28f3d647dc43d8abb9.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-650ea5ffc8686e13a1e4.js"/><link as="script" rel="preload" href="/___admin/69bd6bf3-f374cd2e1ee0e375f045.js"/><link as="script" rel="preload" href="/___admin/4c744e84-130bfe682cbb8896de3a.js"/><link as="script" rel="preload" href="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-e8377efa018b5b632652.js"/><link as="script" rel="preload" href="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-52c66354c9e40dafee82.js"/><link as="script" rel="preload" href="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-ff699326697a9b0f1141.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-plugins-tsx-0473a7c3e1abdf54b13c.js"/><link as="fetch" rel="preload" href="/___admin/page-data/plugins/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/___admin/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="ict6so">body{background-color:#ffffff;}body color{header:#000000;primary:#36313d;secondary:#78757a;placeholder:#b7b5bd;}</style><style data-emotion-css="fw25na">*{box-sizing:border-box;}body{margin:0rem;background-color:var(--theme-ui-colors-grey-5,#fbfbfb);}</style><style data-emotion-css="1pf5xd">.css-1pf5xd{box-sizing:border-box;margin:0;min-width:0;color:primary;overflow:visible;}</style><svg viewBox="0 0 32 32" width="48" height="48" stroke-width="4" fill="none" stroke="currentcolor" role="img" class="css-1pf5xd"><title>Loading...</title><circle cx="16" cy="16" r="12" opacity="0.125"></circle><style data-emotion-css="wpcq6n animation-1q8eu9e">.css-wpcq6n{box-sizing:border-box;margin:0;min-width:0;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation-name:animation-1q8eu9e;animation-name:animation-1q8eu9e;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-duration:500ms;animation-duration:500ms;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;}@-webkit-keyframes animation-1q8eu9e{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes animation-1q8eu9e{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}</style><circle cx="16" cy="16" r="12" stroke-dasharray="75.39822368615503" stroke-dashoffset="56.548667764616276" class="css-wpcq6n"></circle></svg></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/plugins/";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-8cf307b8c8e963342754.js"],"app":["/app-650ea5ffc8686e13a1e4.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-e14ac7eb589bdb79743f.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-2fcb822e2606c12b2ea2.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-0473a7c3e1abdf54b13c.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-3cebdfd1e7678aa2dd3e.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"]};/*]]>*/</script><script src="/___admin/polyfill-8cf307b8c8e963342754.js" nomodule=""></script><script src="/___admin/component---src-pages-plugins-tsx-0473a7c3e1abdf54b13c.js" async=""></script><script src="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-ff699326697a9b0f1141.js" async=""></script><script src="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-52c66354c9e40dafee82.js" async=""></script><script src="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-e8377efa018b5b632652.js" async=""></script><script src="/___admin/4c744e84-130bfe682cbb8896de3a.js" async=""></script><script src="/___admin/69bd6bf3-f374cd2e1ee0e375f045.js" async=""></script><script src="/___admin/app-650ea5ffc8686e13a1e4.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-0f28f3d647dc43d8abb9.js" async=""></script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/___admin/styles.ac2d3128404ecdaeec67.css" id="gatsby-global-css">/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}</style><meta name="generator" content="Gatsby 3.6.
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/___admin/styles.ac2d3128404ecdaeec67.css" id="gatsby-global-css">/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}</style><meta name="generator" content="Gatsby 3.6.2"/><title data-react-helmet="true"></title><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2"/><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2"/><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2"/><style>@font-face{font-family:Inter;font-style:normal;font-weight:400;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:800;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:400;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hjg.woff) format("woff");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hjg.woff) format("woff");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:800;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hjg.woff) format("woff");font-display:swap}</style><link as="script" rel="preload" href="/___admin/webpack-runtime-0f28f3d647dc43d8abb9.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-650ea5ffc8686e13a1e4.js"/><link as="script" rel="preload" href="/___admin/69bd6bf3-f374cd2e1ee0e375f045.js"/><link as="script" rel="preload" href="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-aa0380a0e650c4e20230.js"/><link as="script" rel="preload" href="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-ff699326697a9b0f1141.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-recipe-js-3cebdfd1e7678aa2dd3e.js"/><link as="fetch" rel="preload" href="/___admin/page-data/recipe/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/___admin/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="ict6so">body{background-color:#ffffff;}body color{header:#000000;primary:#36313d;secondary:#78757a;placeholder:#b7b5bd;}</style><style data-emotion-css="fw25na">*{box-sizing:border-box;}body{margin:0rem;background-color:var(--theme-ui-colors-grey-5,#fbfbfb);}</style><style data-emotion-css="1pf5xd">.css-1pf5xd{box-sizing:border-box;margin:0;min-width:0;color:primary;overflow:visible;}</style><svg viewBox="0 0 32 32" width="48" height="48" stroke-width="4" fill="none" stroke="currentcolor" role="img" class="css-1pf5xd"><title>Loading...</title><circle cx="16" cy="16" r="12" opacity="0.125"></circle><style data-emotion-css="wpcq6n animation-1q8eu9e">.css-wpcq6n{box-sizing:border-box;margin:0;min-width:0;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation-name:animation-1q8eu9e;animation-name:animation-1q8eu9e;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-duration:500ms;animation-duration:500ms;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;}@-webkit-keyframes animation-1q8eu9e{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes animation-1q8eu9e{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}</style><circle cx="16" cy="16" r="12" stroke-dasharray="75.39822368615503" stroke-dashoffset="56.548667764616276" class="css-wpcq6n"></circle></svg></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/recipe/";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-8cf307b8c8e963342754.js"],"app":["/app-650ea5ffc8686e13a1e4.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-e14ac7eb589bdb79743f.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-2fcb822e2606c12b2ea2.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-0473a7c3e1abdf54b13c.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-3cebdfd1e7678aa2dd3e.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"]};/*]]>*/</script><script src="/___admin/polyfill-8cf307b8c8e963342754.js" nomodule=""></script><script src="/___admin/component---src-pages-recipe-js-3cebdfd1e7678aa2dd3e.js" async=""></script><script src="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-ff699326697a9b0f1141.js" async=""></script><script src="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-aa0380a0e650c4e20230.js" async=""></script><script src="/___admin/69bd6bf3-f374cd2e1ee0e375f045.js" async=""></script><script src="/___admin/app-650ea5ffc8686e13a1e4.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-0f28f3d647dc43d8abb9.js" async=""></script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/___admin/styles.ac2d3128404ecdaeec67.css" id="gatsby-global-css">/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}</style><meta name="generator" content="Gatsby 3.6.
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style data-href="/___admin/styles.ac2d3128404ecdaeec67.css" id="gatsby-global-css">/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}</style><meta name="generator" content="Gatsby 3.6.2"/><title data-react-helmet="true"></title><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2"/><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2"/><link rel="preload" as="font" type="font/woff2" crossorigin="anonymous" href="/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2"/><style>@font-face{font-family:Inter;font-style:normal;font-weight:400;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:800;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hiA.woff2) format("woff2");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:400;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuLyfAZ9hjg.woff) format("woff");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuGKYAZ9hjg.woff) format("woff");font-display:swap}@font-face{font-family:Inter;font-style:normal;font-weight:800;src:url(/___admin/static/webfonts/s/inter/v3/UcCO3FwrK3iLTeHuS_fvQtMwCp50KnMw2boKoduKmMEVuDyYAZ9hjg.woff) format("woff");font-display:swap}</style><link as="script" rel="preload" href="/___admin/webpack-runtime-0f28f3d647dc43d8abb9.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-650ea5ffc8686e13a1e4.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"/><link as="fetch" rel="preload" href="/___admin/page-data/recipes/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/___admin/page-data/app-data.json" crossorigin="anonymous"/></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><style data-emotion-css="ict6so">body{background-color:#ffffff;}body color{header:#000000;primary:#36313d;secondary:#78757a;placeholder:#b7b5bd;}</style><style data-emotion-css="fw25na">*{box-sizing:border-box;}body{margin:0rem;background-color:var(--theme-ui-colors-grey-5,#fbfbfb);}</style><style data-emotion-css="1pf5xd">.css-1pf5xd{box-sizing:border-box;margin:0;min-width:0;color:primary;overflow:visible;}</style><svg viewBox="0 0 32 32" width="48" height="48" stroke-width="4" fill="none" stroke="currentcolor" role="img" class="css-1pf5xd"><title>Loading...</title><circle cx="16" cy="16" r="12" opacity="0.125"></circle><style data-emotion-css="wpcq6n animation-1q8eu9e">.css-wpcq6n{box-sizing:border-box;margin:0;min-width:0;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation-name:animation-1q8eu9e;animation-name:animation-1q8eu9e;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-duration:500ms;animation-duration:500ms;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;}@-webkit-keyframes animation-1q8eu9e{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes animation-1q8eu9e{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}</style><circle cx="16" cy="16" r="12" stroke-dasharray="75.39822368615503" stroke-dashoffset="56.548667764616276" class="css-wpcq6n"></circle></svg></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/recipes/";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-8cf307b8c8e963342754.js"],"app":["/app-650ea5ffc8686e13a1e4.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-e14ac7eb589bdb79743f.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-2fcb822e2606c12b2ea2.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-0473a7c3e1abdf54b13c.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-3cebdfd1e7678aa2dd3e.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"]};/*]]>*/</script><script src="/___admin/polyfill-8cf307b8c8e963342754.js" nomodule=""></script><script src="/___admin/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js" async=""></script><script src="/___admin/app-650ea5ffc8686e13a1e4.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-0f28f3d647dc43d8abb9.js" async=""></script></body></html>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gatsby",
|
|
3
3
|
"description": "Blazing fast modern site generator for React",
|
|
4
|
-
"version": "3.6.
|
|
4
|
+
"version": "3.6.2",
|
|
5
5
|
"author": "Kyle Mathews <mathews.kyle@gmail.com>",
|
|
6
6
|
"bin": {
|
|
7
7
|
"gatsby": "./cli.js"
|
|
@@ -258,5 +258,5 @@
|
|
|
258
258
|
"yargs": {
|
|
259
259
|
"boolean-negation": false
|
|
260
260
|
},
|
|
261
|
-
"gitHead": "
|
|
261
|
+
"gitHead": "ff489b0c2b3c39fa92e27bae3501a7198ab3ad3a"
|
|
262
262
|
}
|