gatsby 3.10.0 → 3.10.1
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/utils/api-node-helpers-docs.js +10 -1
- package/dist/utils/api-node-helpers-docs.js.map +1 -1
- package/dist/utils/api-runner-node.js +4 -0
- package/dist/utils/api-runner-node.js.map +1 -1
- package/dist/utils/cache-lmdb.d.ts +2 -0
- package/dist/utils/cache-lmdb.js +8 -0
- package/dist/utils/cache-lmdb.js.map +1 -1
- package/dist/utils/cache.d.ts +1 -0
- package/dist/utils/cache.js +11 -0
- package/dist/utils/cache.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/index.d.ts +9 -0
- 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.10.1](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.10.0...gatsby@3.10.1) (2021-07-21)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- expose ".del" function on lmdb cache ([#32459](https://github.com/gatsbyjs/gatsby/issues/32459)) ([#32464](https://github.com/gatsbyjs/gatsby/issues/32464)) ([c01551e](https://github.com/gatsbyjs/gatsby/commit/c01551eb9e09cd8471daa1072e7dc99add89fea8))
|
|
11
|
+
|
|
6
12
|
# [3.10.0](https://github.com/gatsbyjs/gatsby/compare/gatsby@3.10.0-next.7...gatsby@3.10.0) (2021-07-20)
|
|
7
13
|
|
|
8
14
|
### Bug Fixes
|
|
@@ -100,7 +100,16 @@ const GatsbyCache = {
|
|
|
100
100
|
* @example
|
|
101
101
|
* await cache.set(`unique-key`, value)
|
|
102
102
|
*/
|
|
103
|
-
set: true
|
|
103
|
+
set: true,
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Deletes cached value
|
|
107
|
+
* @param {string} key Cache key
|
|
108
|
+
* @returns {Promise<void>} Promise resolving once key is deleted from cache
|
|
109
|
+
* @example
|
|
110
|
+
* await cache.del(`unique-key`)
|
|
111
|
+
*/
|
|
112
|
+
del: true
|
|
104
113
|
};
|
|
105
114
|
/***/
|
|
106
115
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/api-node-helpers-docs.js"],"names":["GatsbyReporter","info","warn","error","panic","panicOnBuild","verbose","activityTimer","GatsbyCache","get","set","GatsbyTracing","tracer","parentSpan","startSpan","module","exports","getCache","cache","createContentDigest","actions","loadNodeContent","store","emitter","getNodes","getNode","getNodesByType","reporter","getNodeAndSavePathDependency","createNodeId","tracing","pathPrefix"],"mappings":";;AAAA;;AAEA;AACA,MAAMA,cAAc,GAAG;AACrB;AACF;AACA;AACA;AACA;;AAEE;AACF;AACA;AACA;AACA;AACA;;AAEE;AACF;AACA;AACA;AACA;AACEC,EAAAA,IAAI,EAAE,IAnBe;;AAqBrB;AACF;AACA;AACA;AACA;AACEC,EAAAA,IAAI,EAAE,IA1Be;;AA4BrB;AACF;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE,IAjCc;;AAmCrB;AACF;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE,IAxCc;;AA0CrB;AACF;AACA;AACA;AACA;AACEC,EAAAA,YAAY,EAAE,IA/CO;;AAiDrB;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,OAAO,EAAE,IAxDY;;AA0DrB;AACF;AACA;AACA;AACA;;AAEE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,aAAa,EAAE;AA3EM,CAAvB;AA8EA;;AACA,MAAMC,WAAW,GAAG;AAClB;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,GAAG,EAAE,IARa;;AAUlB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,GAAG,EAAE;AAlBa,CAApB;AAqBA;;AACA,MAAMC,aAAa,GAAG;AACpB;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,MAAM,EAAE,IAPY;;AASpB;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,UAAU,EAAE,IAfQ;;AAiBpB;AACF;AACA;AACA;AACA;;AAEE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,SAAS,EAAE;AA1CS,CAAtB;AA6CA;AACA;AACA;AACA;AACA;AACA;;AACAC,MAAM,CAACC,OAAP,CAAeC,QAAf,GAA0B,IAA1B;AAEA;AACA;AACA;AACA;AACA;;AACAF,MAAM,CAACC,OAAP,CAAeE,KAAf,GAAuB,IAAvB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAH,MAAM,CAACC,OAAP,CAAeG,mBAAf,GAAqC,IAArC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACAJ,MAAM,CAACC,OAAP,CAAeI,OAAf,GAAyB,IAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAL,MAAM,CAACC,OAAP,CAAeK,eAAf,GAAiC,IAAjC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACAN,MAAM,CAACC,OAAP,CAAeM,KAAf,GAAuB,IAAvB;AAEA;AACA;AACA;AACA;AACA;;AACAP,MAAM,CAACC,OAAP,CAAeO,OAAf,GAAyB,IAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;;AACAR,MAAM,CAACC,OAAP,CAAeQ,QAAf,GAA0B,IAA1B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAT,MAAM,CAACC,OAAP,CAAeS,OAAf,GAAyB,IAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAV,MAAM,CAACC,OAAP,CAAeU,cAAf,GAAgC,IAAhC;AAEA;AACA;AACA;AACA;;AACAX,MAAM,CAACC,OAAP,CAAeW,QAAf,GAA0B,IAA1B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAZ,MAAM,CAACC,OAAP,CAAeY,4BAAf,GAA8C,IAA9C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAb,MAAM,CAACC,OAAP,CAAea,YAAf,GAA8B,IAA9B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAd,MAAM,CAACC,OAAP,CAAec,OAAf,GAAyB,IAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAf,MAAM,CAACC,OAAP,CAAee,UAAf,GAA4B,IAA5B","sourcesContent":["/* eslint-disable no-unused-vars */\n\n/***/\nconst GatsbyReporter = {\n /**\n * @callback GatsbyReporterFn\n * @param {string} message Message to display\n * @returns {void}\n */\n\n /**\n * @callback GatsbyReporterFnWithError\n * @param {string} message Message to display\n * @param {Error}[error] Optional error object\n * @returns {void}\n */\n\n /**\n * @type {GatsbyReporterFn}\n * @example\n * reporter.info(`text`)\n */\n info: true,\n\n /**\n * @type {GatsbyReporterFn}\n * @example\n * reporter.warn(`text`)\n */\n warn: true,\n\n /**\n * @type {GatsbyReporterFnWithError}\n * @example\n * reporter.error(`text`, new Error('something'))\n */\n error: true,\n\n /**\n * @type {GatsbyReporterFnWithError}\n * @example\n * reporter.panic(`text`, new Error('something'))\n */\n panic: true,\n\n /**\n * @type {GatsbyReporterFnWithError}\n * @example\n * reporter.panicOnBuild(`text`, new Error('something'))\n */\n panicOnBuild: true,\n\n /**\n * Note that this method only works if the --verbose option has\n * been passed to the CLI\n * @type {GatsbyReporterFn}\n * @example\n * reporter.verbose(`text`)\n */\n verbose: true,\n\n /**\n * @callback GatsbyReporterActivityTimerFn\n * @param {string} message Timer message to display\n * @returns {ITimerReporter}\n */\n\n /**\n * Creates a new activity timer with the provided message.\n * Check the full [return type definition here](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-cli/src/reporter/reporter-timer.ts#L19).\n * @type {GatsbyReporterActivityTimerFn}\n * @example\n * const activity = reporter.activityTimer(`Timer text`)\n *\n * activity.start()\n * activity.setStatus(`status text`)\n * activity.end()\n */\n activityTimer: true,\n};\n\n/***/\nconst GatsbyCache = {\n /**\n * Retrieve cached value\n * @param {string} key Cache key\n * @returns {Promise<any>} Promise resolving to cached value\n * @example\n * const value = await cache.get(`unique-key`)\n */\n get: true,\n\n /**\n * Cache value\n * @param {string} key Cache key\n * @param {any} value Value to be cached\n * @returns {Promise<any>} Promise resolving to cached value\n * @example\n * await cache.set(`unique-key`, value)\n */\n set: true,\n};\n\n/***/\nconst GatsbyTracing = {\n /**\n * Global tracer instance. Check\n * [opentracing Tracer documentation](https://opentracing-javascript.surge.sh/classes/tracer.html)\n * for more details.\n * @type {Opentracing.Tracer}\n */\n tracer: true,\n\n /**\n * Tracer span representing API run. Check\n * [opentracing Span documentation](https://opentracing-javascript.surge.sh/classes/span.html)\n * for more details.\n * @type {Opentracing.Span}\n */\n parentSpan: true,\n\n /**\n * @callback GatsbyTracing.StartSpan\n * @param {string} spanName name of the span\n * @returns {Opentracing.Span}\n */\n\n /**\n * Start a tracing span. The span will be created as a child of the currently\n * running API span. This is a convenience wrapper for\n * ```js\n * tracing.tracer.startSpan(`span-name`, { childOf: tracing.parentSpan}).\n * ```\n * @type {GatsbyTracing.StartSpan}\n * @example\n * exports.sourceNodes = async ({ actions, tracing }) => {\n * const span = tracing.startSpan(`foo`)\n *\n * // Perform any span operations. E.g. add a tag to your span\n * span.setTag(`bar`, `baz`)\n *\n * // Rest of your plugin code\n *\n * span.finish()\n * }\n */\n startSpan: true,\n};\n\n/**\n * Get cache instance by name - this should only be used by plugins that\n * accept subplugins.\n * @param {string} id Test\n * @returns {GatsbyCache} See [`cache`](#cache) section for reference.\n */\nmodule.exports.getCache = true;\n\n/**\n * Key-value store used to persist results of time/memory/cpu intensive\n * tasks. All functions are async and return promises.\n * @type {GatsbyCache}\n */\nmodule.exports.cache = true;\n\n/**\n * Create a stable content digest from a string or object, you can use the\n * result of this function to set the `internal.contentDigest` field\n * on nodes. Gatsby uses the value of this field to invalidate stale data\n * when your content changes.\n * @param {(string|object)} input\n * @returns {string} Hash string\n * @example\n * const node = {\n * ...nodeData,\n * internal: {\n * type: `TypeOfNode`,\n * contentDigest: createContentDigest(nodeData)\n * }\n * }\n */\nmodule.exports.createContentDigest = true;\n\n/**\n * Collection of functions used to programmatically modify Gatsby’s internal state.\n *\n * See [`actions`](/docs/actions/) reference.\n * @type {Actions}\n */\nmodule.exports.actions = true;\n\n/**\n * Get content for a node from the plugin that created it.\n * @param {Node} node\n * @returns {Promise<string>}\n * @example\n * module.exports = async function onCreateNode(\n * { node, loadNodeContent, actions, createNodeId }\n * ) {\n * if (node.internal.mediaType === 'text/markdown') {\n * const { createNode, createParentChildLink } = actions\n * const textContent = await loadNodeContent(node)\n * // process textContent and create child nodes\n * }\n * }\n */\nmodule.exports.loadNodeContent = true;\n\n/**\n * Internal redux state used for application state. Do not use, unless you\n * absolutely must. Store is considered a private API and can change with\n * any version.\n * @type {Redux.Store}\n */\nmodule.exports.store = true;\n\n/**\n * Internal event emitter / listener. Do not use, unless you absolutely\n * must. Emitter is considered a private API and can change with any version.\n * @type {Emitter}\n */\nmodule.exports.emitter = true;\n\n/**\n * Get array of all nodes.\n * @returns {Node[]} Array of nodes.\n * @example\n * const allNodes = getNodes()\n */\nmodule.exports.getNodes = true;\n\n/**\n * Get single node by given ID.\n * Don't use this in graphql resolvers - see\n * [`getNodeAndSavePathDependency`](#getNodeAndSavePathDependency).\n * @param {string} ID id of the node.\n * @returns {Node} Single node instance.\n * @example\n * const node = getNode(id)\n */\nmodule.exports.getNode = true;\n\n/**\n * Get array of nodes of given type.\n * @param {string} Type of nodes\n * @returns {Node[]} Array of nodes.\n * @example\n * const markdownNodes = getNodesByType(`MarkdownRemark`)\n */\nmodule.exports.getNodesByType = true;\n\n/**\n * Set of utilities to output information to user\n * @type {GatsbyReporter}\n */\nmodule.exports.reporter = true;\n\n/**\n * Get single node by given ID and create dependency for given path.\n * This should be used instead of `getNode` in graphql resolvers to enable\n * tracking dependencies for query results. If it's not used Gatsby will\n * not rerun query if node changes leading to stale query results. See\n * [Page -> Node Dependency Tracking](/docs/page-node-dependencies/)\n * for more details.\n * @param {string} ID id of the node.\n * @param {string} path of the node.\n * @returns {Node} Single node instance.\n */\nmodule.exports.getNodeAndSavePathDependency = true;\n\n/**\n * Utility function useful to generate globally unique and stable node IDs.\n * It will generate different IDs for different plugins if they use same\n * input.\n *\n * @param {string} input\n * @returns {string} UUIDv5 ID string\n * @example\n * const node = {\n * id: createNodeId(`${backendData.type}${backendData.id}`),\n * ...restOfNodeData\n * }\n */\nmodule.exports.createNodeId = true;\n\n/**\n * Set of utilities that allow adding more detailed tracing for plugins.\n * Check\n * [Performance tracing](https://www.gatsbyjs.org/docs/performance-tracing)\n * page for more details.\n * @type {GatsbyTracing}\n */\nmodule.exports.tracing = true;\n\n/**\n * Use to prefix resources URLs. `pathPrefix` will be either empty string or\n * path that starts with slash and doesn't end with slash. Check\n * [Adding a Path Prefix](https://www.gatsbyjs.org/docs/path-prefix/)\n * page for details about path prefixing.\n * @type {string}\n */\nmodule.exports.pathPrefix = true;\n"],"file":"api-node-helpers-docs.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/api-node-helpers-docs.js"],"names":["GatsbyReporter","info","warn","error","panic","panicOnBuild","verbose","activityTimer","GatsbyCache","get","set","del","GatsbyTracing","tracer","parentSpan","startSpan","module","exports","getCache","cache","createContentDigest","actions","loadNodeContent","store","emitter","getNodes","getNode","getNodesByType","reporter","getNodeAndSavePathDependency","createNodeId","tracing","pathPrefix"],"mappings":";;AAAA;;AAEA;AACA,MAAMA,cAAc,GAAG;AACrB;AACF;AACA;AACA;AACA;;AAEE;AACF;AACA;AACA;AACA;AACA;;AAEE;AACF;AACA;AACA;AACA;AACEC,EAAAA,IAAI,EAAE,IAnBe;;AAqBrB;AACF;AACA;AACA;AACA;AACEC,EAAAA,IAAI,EAAE,IA1Be;;AA4BrB;AACF;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE,IAjCc;;AAmCrB;AACF;AACA;AACA;AACA;AACEC,EAAAA,KAAK,EAAE,IAxCc;;AA0CrB;AACF;AACA;AACA;AACA;AACEC,EAAAA,YAAY,EAAE,IA/CO;;AAiDrB;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,OAAO,EAAE,IAxDY;;AA0DrB;AACF;AACA;AACA;AACA;;AAEE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,aAAa,EAAE;AA3EM,CAAvB;AA8EA;;AACA,MAAMC,WAAW,GAAG;AAClB;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,GAAG,EAAE,IARa;;AAUlB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,GAAG,EAAE,IAlBa;;AAoBlB;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,GAAG,EAAE;AA3Ba,CAApB;AA8BA;;AACA,MAAMC,aAAa,GAAG;AACpB;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,MAAM,EAAE,IAPY;;AASpB;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,UAAU,EAAE,IAfQ;;AAiBpB;AACF;AACA;AACA;AACA;;AAEE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,SAAS,EAAE;AA1CS,CAAtB;AA6CA;AACA;AACA;AACA;AACA;AACA;;AACAC,MAAM,CAACC,OAAP,CAAeC,QAAf,GAA0B,IAA1B;AAEA;AACA;AACA;AACA;AACA;;AACAF,MAAM,CAACC,OAAP,CAAeE,KAAf,GAAuB,IAAvB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAH,MAAM,CAACC,OAAP,CAAeG,mBAAf,GAAqC,IAArC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACAJ,MAAM,CAACC,OAAP,CAAeI,OAAf,GAAyB,IAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAL,MAAM,CAACC,OAAP,CAAeK,eAAf,GAAiC,IAAjC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACAN,MAAM,CAACC,OAAP,CAAeM,KAAf,GAAuB,IAAvB;AAEA;AACA;AACA;AACA;AACA;;AACAP,MAAM,CAACC,OAAP,CAAeO,OAAf,GAAyB,IAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;;AACAR,MAAM,CAACC,OAAP,CAAeQ,QAAf,GAA0B,IAA1B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAT,MAAM,CAACC,OAAP,CAAeS,OAAf,GAAyB,IAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAV,MAAM,CAACC,OAAP,CAAeU,cAAf,GAAgC,IAAhC;AAEA;AACA;AACA;AACA;;AACAX,MAAM,CAACC,OAAP,CAAeW,QAAf,GAA0B,IAA1B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAZ,MAAM,CAACC,OAAP,CAAeY,4BAAf,GAA8C,IAA9C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAb,MAAM,CAACC,OAAP,CAAea,YAAf,GAA8B,IAA9B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAd,MAAM,CAACC,OAAP,CAAec,OAAf,GAAyB,IAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAf,MAAM,CAACC,OAAP,CAAee,UAAf,GAA4B,IAA5B","sourcesContent":["/* eslint-disable no-unused-vars */\n\n/***/\nconst GatsbyReporter = {\n /**\n * @callback GatsbyReporterFn\n * @param {string} message Message to display\n * @returns {void}\n */\n\n /**\n * @callback GatsbyReporterFnWithError\n * @param {string} message Message to display\n * @param {Error}[error] Optional error object\n * @returns {void}\n */\n\n /**\n * @type {GatsbyReporterFn}\n * @example\n * reporter.info(`text`)\n */\n info: true,\n\n /**\n * @type {GatsbyReporterFn}\n * @example\n * reporter.warn(`text`)\n */\n warn: true,\n\n /**\n * @type {GatsbyReporterFnWithError}\n * @example\n * reporter.error(`text`, new Error('something'))\n */\n error: true,\n\n /**\n * @type {GatsbyReporterFnWithError}\n * @example\n * reporter.panic(`text`, new Error('something'))\n */\n panic: true,\n\n /**\n * @type {GatsbyReporterFnWithError}\n * @example\n * reporter.panicOnBuild(`text`, new Error('something'))\n */\n panicOnBuild: true,\n\n /**\n * Note that this method only works if the --verbose option has\n * been passed to the CLI\n * @type {GatsbyReporterFn}\n * @example\n * reporter.verbose(`text`)\n */\n verbose: true,\n\n /**\n * @callback GatsbyReporterActivityTimerFn\n * @param {string} message Timer message to display\n * @returns {ITimerReporter}\n */\n\n /**\n * Creates a new activity timer with the provided message.\n * Check the full [return type definition here](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-cli/src/reporter/reporter-timer.ts#L19).\n * @type {GatsbyReporterActivityTimerFn}\n * @example\n * const activity = reporter.activityTimer(`Timer text`)\n *\n * activity.start()\n * activity.setStatus(`status text`)\n * activity.end()\n */\n activityTimer: true,\n};\n\n/***/\nconst GatsbyCache = {\n /**\n * Retrieve cached value\n * @param {string} key Cache key\n * @returns {Promise<any>} Promise resolving to cached value\n * @example\n * const value = await cache.get(`unique-key`)\n */\n get: true,\n\n /**\n * Cache value\n * @param {string} key Cache key\n * @param {any} value Value to be cached\n * @returns {Promise<any>} Promise resolving to cached value\n * @example\n * await cache.set(`unique-key`, value)\n */\n set: true,\n\n /**\n * Deletes cached value\n * @param {string} key Cache key\n * @returns {Promise<void>} Promise resolving once key is deleted from cache\n * @example\n * await cache.del(`unique-key`)\n */\n del: true,\n};\n\n/***/\nconst GatsbyTracing = {\n /**\n * Global tracer instance. Check\n * [opentracing Tracer documentation](https://opentracing-javascript.surge.sh/classes/tracer.html)\n * for more details.\n * @type {Opentracing.Tracer}\n */\n tracer: true,\n\n /**\n * Tracer span representing API run. Check\n * [opentracing Span documentation](https://opentracing-javascript.surge.sh/classes/span.html)\n * for more details.\n * @type {Opentracing.Span}\n */\n parentSpan: true,\n\n /**\n * @callback GatsbyTracing.StartSpan\n * @param {string} spanName name of the span\n * @returns {Opentracing.Span}\n */\n\n /**\n * Start a tracing span. The span will be created as a child of the currently\n * running API span. This is a convenience wrapper for\n * ```js\n * tracing.tracer.startSpan(`span-name`, { childOf: tracing.parentSpan}).\n * ```\n * @type {GatsbyTracing.StartSpan}\n * @example\n * exports.sourceNodes = async ({ actions, tracing }) => {\n * const span = tracing.startSpan(`foo`)\n *\n * // Perform any span operations. E.g. add a tag to your span\n * span.setTag(`bar`, `baz`)\n *\n * // Rest of your plugin code\n *\n * span.finish()\n * }\n */\n startSpan: true,\n};\n\n/**\n * Get cache instance by name - this should only be used by plugins that\n * accept subplugins.\n * @param {string} id Test\n * @returns {GatsbyCache} See [`cache`](#cache) section for reference.\n */\nmodule.exports.getCache = true;\n\n/**\n * Key-value store used to persist results of time/memory/cpu intensive\n * tasks. All functions are async and return promises.\n * @type {GatsbyCache}\n */\nmodule.exports.cache = true;\n\n/**\n * Create a stable content digest from a string or object, you can use the\n * result of this function to set the `internal.contentDigest` field\n * on nodes. Gatsby uses the value of this field to invalidate stale data\n * when your content changes.\n * @param {(string|object)} input\n * @returns {string} Hash string\n * @example\n * const node = {\n * ...nodeData,\n * internal: {\n * type: `TypeOfNode`,\n * contentDigest: createContentDigest(nodeData)\n * }\n * }\n */\nmodule.exports.createContentDigest = true;\n\n/**\n * Collection of functions used to programmatically modify Gatsby’s internal state.\n *\n * See [`actions`](/docs/actions/) reference.\n * @type {Actions}\n */\nmodule.exports.actions = true;\n\n/**\n * Get content for a node from the plugin that created it.\n * @param {Node} node\n * @returns {Promise<string>}\n * @example\n * module.exports = async function onCreateNode(\n * { node, loadNodeContent, actions, createNodeId }\n * ) {\n * if (node.internal.mediaType === 'text/markdown') {\n * const { createNode, createParentChildLink } = actions\n * const textContent = await loadNodeContent(node)\n * // process textContent and create child nodes\n * }\n * }\n */\nmodule.exports.loadNodeContent = true;\n\n/**\n * Internal redux state used for application state. Do not use, unless you\n * absolutely must. Store is considered a private API and can change with\n * any version.\n * @type {Redux.Store}\n */\nmodule.exports.store = true;\n\n/**\n * Internal event emitter / listener. Do not use, unless you absolutely\n * must. Emitter is considered a private API and can change with any version.\n * @type {Emitter}\n */\nmodule.exports.emitter = true;\n\n/**\n * Get array of all nodes.\n * @returns {Node[]} Array of nodes.\n * @example\n * const allNodes = getNodes()\n */\nmodule.exports.getNodes = true;\n\n/**\n * Get single node by given ID.\n * Don't use this in graphql resolvers - see\n * [`getNodeAndSavePathDependency`](#getNodeAndSavePathDependency).\n * @param {string} ID id of the node.\n * @returns {Node} Single node instance.\n * @example\n * const node = getNode(id)\n */\nmodule.exports.getNode = true;\n\n/**\n * Get array of nodes of given type.\n * @param {string} Type of nodes\n * @returns {Node[]} Array of nodes.\n * @example\n * const markdownNodes = getNodesByType(`MarkdownRemark`)\n */\nmodule.exports.getNodesByType = true;\n\n/**\n * Set of utilities to output information to user\n * @type {GatsbyReporter}\n */\nmodule.exports.reporter = true;\n\n/**\n * Get single node by given ID and create dependency for given path.\n * This should be used instead of `getNode` in graphql resolvers to enable\n * tracking dependencies for query results. If it's not used Gatsby will\n * not rerun query if node changes leading to stale query results. See\n * [Page -> Node Dependency Tracking](/docs/page-node-dependencies/)\n * for more details.\n * @param {string} ID id of the node.\n * @param {string} path of the node.\n * @returns {Node} Single node instance.\n */\nmodule.exports.getNodeAndSavePathDependency = true;\n\n/**\n * Utility function useful to generate globally unique and stable node IDs.\n * It will generate different IDs for different plugins if they use same\n * input.\n *\n * @param {string} input\n * @returns {string} UUIDv5 ID string\n * @example\n * const node = {\n * id: createNodeId(`${backendData.type}${backendData.id}`),\n * ...restOfNodeData\n * }\n */\nmodule.exports.createNodeId = true;\n\n/**\n * Set of utilities that allow adding more detailed tracing for plugins.\n * Check\n * [Performance tracing](https://www.gatsbyjs.org/docs/performance-tracing)\n * page for more details.\n * @type {GatsbyTracing}\n */\nmodule.exports.tracing = true;\n\n/**\n * Use to prefix resources URLs. `pathPrefix` will be either empty string or\n * path that starts with slash and doesn't end with slash. Check\n * [Adding a Path Prefix](https://www.gatsbyjs.org/docs/path-prefix/)\n * page for details about path prefixing.\n * @type {string}\n */\nmodule.exports.pathPrefix = true;\n"],"file":"api-node-helpers-docs.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/api-runner-node.js"],"names":["Promise","require","_","chalk","bindActionCreators","origBindActionCreators","memoize","tracer","globalTracer","reporter","stackTrace","codeFrameColumns","fs","getCache","createContentDigest","emitter","store","getNodes","getNode","getNodesByType","getNodeAndSavePathDependency","loadNodeContent","getPublicPath","getNonGatsbyCodeFrameFormatted","trackBuildError","decorateEvent","process","env","BLUEBIRD_DEBUG","BLUEBIRD_LONG_STACK_TRACES","config","longStackTraces","boundPluginActionCreators","doubleBind","boundActionCreators","api","plugin","actionOptions","traceId","deferNodeMutation","defer","actionKey","name","keys","Object","doubleBoundActionCreators","i","length","key","boundActionCreator","args","undefined","initAPICallTracing","parentSpan","startSpan","spanName","spanArgs","defaultSpanArgs","childOf","merge","deferredAction","type","resolve","emit","payload","NODE_MUTATION_ACTIONS","deferActions","actions","deferred","forEach","action","getLocalReporter","activity","panicOnBuild","bind","getErrorMapWithPluginName","pluginName","errorMap","entries","reduce","memo","val","extendLocalReporterToCatchPluginErrors","runningActivities","setErrorMap","error","panic","errorMeta","activityTimer","apply","originalStart","start","originalEnd","end","add","delete","createProgress","originalDone","done","getUninitializedCache","message","get","Error","set","pluginNodeCache","Map","availableActionsCache","publicPath","runAPI","gatsbyNode","spanOptions","pluginSpan","setTag","publicActions","restrictedActionsAvailableInAPI","availableActions","has","dispatch","program","getState","pathPrefix","prefixPaths","namespacedCreateNodeId","id","tracing","cache","apiFinished","alreadyDisplayed","createPageAction","createPage","warning","stripIndent","bold","possiblyCodeFrame","push","warn","join","localReporter","Set","extendedLocalReporter","endInProgressActivitiesCreatedByThisRun","apiCallArgs","basePath","createNodeId","schema","buildObjectType","buildUnionType","buildInterfaceType","buildInputObjectType","buildEnumType","buildScalarType","pluginOptions","fromCallback","callback","cb","err","finish","e","version","apisRunningById","apisRunningByTraceId","waitingForCasacadeToFinish","module","exports","pluginSource","plugins","flattenedPlugins","implementingPlugins","filter","nodeAPIs","includes","traceTags","waitForCascadingActions","apiSpanArgs","apiSpan","value","apiRunInstance","span","startTime","Date","toJSON","node","internal","contentDigest","filename","page","path","argsJson","JSON","stringify","omit","size","currentCount","stopQueuedApiRuns","onAPIRunComplete","actionHandler","on","off","apiRunPromiseOptions","runPromise","GATSBY_EXPERIMENTAL_PARALLEL_SOURCING","map","concurrency","mapSeries","unstable_shouldOnCreateNode","catch","file","parse","find","test","fileName","codeFrame","structuredError","lineNumber","line","columnNumber","column","code","readFileSync","encoding","highlightCode","_e","location","filePath","context","then","results","result","isEmpty","instance","apisByTraceIdCount"],"mappings":"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","sourcesContent":["const Promise = require(`bluebird`)\nconst _ = require(`lodash`)\nconst chalk = require(`chalk`)\nconst { bindActionCreators: origBindActionCreators } = require(`redux`)\nconst memoize = require(`memoizee`)\n\nconst bindActionCreators = memoize(origBindActionCreators)\n\nconst tracer = require(`opentracing`).globalTracer()\nconst reporter = require(`gatsby-cli/lib/reporter`)\nconst stackTrace = require(`stack-trace`)\nconst { codeFrameColumns } = require(`@babel/code-frame`)\nconst fs = require(`fs-extra`)\nconst { getCache } = require(`./get-cache`)\nimport { createNodeId } from \"./create-node-id\"\nconst { createContentDigest } = require(`gatsby-core-utils`)\nimport {\n buildObjectType,\n buildUnionType,\n buildInterfaceType,\n buildInputObjectType,\n buildEnumType,\n buildScalarType,\n} from \"../schema/types/type-builders\"\nconst { emitter, store } = require(`../redux`)\nconst { getNodes, getNode, getNodesByType } = require(`../datastore`)\nconst { getNodeAndSavePathDependency, loadNodeContent } = require(`./nodes`)\nconst { getPublicPath } = require(`./get-public-path`)\nconst { getNonGatsbyCodeFrameFormatted } = require(`./stack-trace-utils`)\nconst { trackBuildError, decorateEvent } = require(`gatsby-telemetry`)\nimport errorParser from \"./api-runner-error-parser\"\n\nif (!process.env.BLUEBIRD_DEBUG && !process.env.BLUEBIRD_LONG_STACK_TRACES) {\n // Unless specified - disable longStackTraces\n // as this have severe perf penalty ( http://bluebirdjs.com/docs/api/promise.longstacktraces.html )\n // This is mainly for `gatsby develop` due to NODE_ENV being set to development\n // which cause bluebird to enable longStackTraces\n // `gatsby build` (with NODE_ENV=production) already doesn't enable longStackTraces\n Promise.config({ longStackTraces: false })\n}\n\n// Bind action creators per plugin so we can auto-add\n// metadata to actions they create.\nconst boundPluginActionCreators = {}\nconst doubleBind = (boundActionCreators, api, plugin, actionOptions) => {\n const { traceId, deferNodeMutation } = actionOptions\n const defer = deferNodeMutation ? `defer-node-mutation` : ``\n const actionKey = plugin.name + api + traceId + defer\n if (boundPluginActionCreators[actionKey]) {\n return boundPluginActionCreators[actionKey]\n } else {\n const keys = Object.keys(boundActionCreators)\n const doubleBoundActionCreators = {}\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const boundActionCreator = boundActionCreators[key]\n if (typeof boundActionCreator === `function`) {\n doubleBoundActionCreators[key] = (...args) => {\n // Let action callers override who the plugin is. Shouldn't be\n // used that often.\n if (args.length === 1) {\n return boundActionCreator(args[0], plugin, actionOptions)\n } else if (args.length === 2) {\n return boundActionCreator(args[0], args[1], actionOptions)\n }\n return undefined\n }\n }\n }\n boundPluginActionCreators[actionKey] = doubleBoundActionCreators\n return doubleBoundActionCreators\n }\n}\n\nconst initAPICallTracing = parentSpan => {\n const startSpan = (spanName, spanArgs = {}) => {\n const defaultSpanArgs = { childOf: parentSpan }\n\n return tracer.startSpan(spanName, _.merge(defaultSpanArgs, spanArgs))\n }\n\n return {\n tracer,\n parentSpan,\n startSpan,\n }\n}\n\nconst deferredAction = type => (...args) => {\n // Regular createNode returns a Promise, but when deferred we need\n // to wrap it in another which we resolve when it's actually called\n if (type === `createNode`) {\n return new Promise(resolve => {\n emitter.emit(`ENQUEUE_NODE_MUTATION`, {\n type,\n payload: args,\n resolve,\n })\n })\n }\n return emitter.emit(`ENQUEUE_NODE_MUTATION`, {\n type,\n payload: args,\n })\n}\n\nconst NODE_MUTATION_ACTIONS = [\n `createNode`,\n `deleteNode`,\n `touchNode`,\n `createParentChildLink`,\n `createNodeField`,\n]\n\nconst deferActions = actions => {\n const deferred = { ...actions }\n NODE_MUTATION_ACTIONS.forEach(action => {\n deferred[action] = deferredAction(action)\n })\n return deferred\n}\n\n/**\n * Create a local reporter\n * Used to override reporter methods with activity methods\n */\nfunction getLocalReporter({ activity, reporter }) {\n // If we have an activity, bind panicOnBuild to the activities method to\n // join them\n if (activity) {\n return { ...reporter, panicOnBuild: activity.panicOnBuild.bind(activity) }\n }\n\n return reporter\n}\n\nfunction getErrorMapWithPluginName(pluginName, errorMap) {\n const entries = Object.entries(errorMap)\n\n return entries.reduce((memo, [key, val]) => {\n memo[`${pluginName}_${key}`] = val\n\n return memo\n }, {})\n}\n\nfunction extendLocalReporterToCatchPluginErrors({\n reporter,\n pluginName,\n runningActivities,\n}) {\n let setErrorMap\n\n let error = reporter.error\n let panic = reporter.panic\n let panicOnBuild = reporter.panicOnBuild\n\n if (pluginName && reporter?.setErrorMap) {\n setErrorMap = errorMap =>\n reporter.setErrorMap(getErrorMapWithPluginName(pluginName, errorMap))\n\n error = (errorMeta, error) => {\n reporter.error(errorMeta, error, pluginName)\n }\n\n panic = (errorMeta, error) => {\n reporter.panic(errorMeta, error, pluginName)\n }\n\n panicOnBuild = (errorMeta, error) => {\n reporter.panicOnBuild(errorMeta, error, pluginName)\n }\n }\n\n return {\n ...reporter,\n setErrorMap,\n error,\n panic,\n panicOnBuild,\n activityTimer: (...args) => {\n // eslint-disable-next-line prefer-spread\n const activity = reporter.activityTimer.apply(reporter, args)\n\n const originalStart = activity.start\n const originalEnd = activity.end\n\n activity.start = () => {\n originalStart.apply(activity)\n runningActivities.add(activity)\n }\n\n activity.end = () => {\n originalEnd.apply(activity)\n runningActivities.delete(activity)\n }\n\n return activity\n },\n\n createProgress: (...args) => {\n // eslint-disable-next-line prefer-spread\n const activity = reporter.createProgress.apply(reporter, args)\n\n const originalStart = activity.start\n const originalEnd = activity.end\n const originalDone = activity.done\n\n activity.start = () => {\n originalStart.apply(activity)\n runningActivities.add(activity)\n }\n\n activity.end = () => {\n originalEnd.apply(activity)\n runningActivities.delete(activity)\n }\n\n activity.done = () => {\n originalDone.apply(activity)\n runningActivities.delete(activity)\n }\n\n return activity\n },\n }\n}\n\nconst getUninitializedCache = plugin => {\n const message =\n `Usage of \"cache\" instance in \"onPreInit\" API is not supported as ` +\n `this API runs before cache initialization` +\n (plugin && plugin !== `default-site-plugin` ? ` (called in ${plugin})` : ``)\n\n return {\n // GatsbyCache\n async get() {\n throw new Error(message)\n },\n async set() {\n throw new Error(message)\n },\n }\n}\n\nconst pluginNodeCache = new Map()\n\nconst availableActionsCache = new Map()\nlet publicPath\nconst runAPI = async (plugin, api, args, activity) => {\n let gatsbyNode = pluginNodeCache.get(plugin.name)\n if (!gatsbyNode) {\n gatsbyNode = require(`${plugin.resolve}/gatsby-node`)\n pluginNodeCache.set(plugin.name, gatsbyNode)\n }\n\n if (gatsbyNode[api]) {\n const parentSpan = args && args.parentSpan\n const spanOptions = parentSpan ? { childOf: parentSpan } : {}\n const pluginSpan = tracer.startSpan(`run-plugin`, spanOptions)\n\n pluginSpan.setTag(`api`, api)\n pluginSpan.setTag(`plugin`, plugin.name)\n const {\n publicActions,\n restrictedActionsAvailableInAPI,\n } = require(`../redux/actions`)\n\n let availableActions\n if (availableActionsCache.has(api)) {\n availableActions = availableActionsCache.get(api)\n } else {\n availableActions = {\n ...publicActions,\n ...(restrictedActionsAvailableInAPI[api] || {}),\n }\n\n availableActionsCache.set(api, availableActions)\n }\n\n let boundActionCreators = bindActionCreators(\n availableActions,\n store.dispatch\n )\n\n if (args.deferNodeMutation) {\n boundActionCreators = deferActions(boundActionCreators)\n }\n\n const doubleBoundActionCreators = doubleBind(\n boundActionCreators,\n api,\n plugin,\n { ...args, parentSpan: pluginSpan, activity }\n )\n\n const { config, program } = store.getState()\n\n const pathPrefix = (program.prefixPaths && config.pathPrefix) || ``\n\n if (typeof publicPath === `undefined`) {\n publicPath = getPublicPath({ ...config, ...program }, ``)\n }\n\n const namespacedCreateNodeId = id => createNodeId(id, plugin.name)\n\n const tracing = initAPICallTracing(pluginSpan)\n\n // See https://github.com/gatsbyjs/gatsby/issues/11369\n const cache =\n api === `onPreInit`\n ? getUninitializedCache(plugin.name)\n : getCache(plugin.name)\n\n // Ideally this would be more abstracted and applied to more situations, but right now\n // this can be potentially breaking so targeting `createPages` API and `createPage` action\n let actions = doubleBoundActionCreators\n let apiFinished = false\n if (api === `createPages`) {\n let alreadyDisplayed = false\n const createPageAction = actions.createPage\n // create new actions object with wrapped createPage action\n // doubleBoundActionCreators is memoized, so we can't just\n // reassign createPage field as this would cause this extra logic\n // to be used in subsequent APIs and we only want to target this `createPages` call.\n actions = {\n ...actions,\n createPage: (...args) => {\n createPageAction(...args)\n if (apiFinished && !alreadyDisplayed) {\n const warning = [\n reporter.stripIndent(`\n Action ${chalk.bold(\n `createPage`\n )} was called outside of its expected asynchronous lifecycle ${chalk.bold(\n `createPages`\n )} in ${chalk.bold(plugin.name)}.\n Ensure that you return a Promise from ${chalk.bold(\n `createPages`\n )} and are awaiting any asynchronous method invocations (like ${chalk.bold(\n `graphql`\n )} or http requests).\n For more info and debugging tips: see ${chalk.bold(\n `https://gatsby.dev/sync-actions`\n )}\n `),\n ]\n\n const possiblyCodeFrame = getNonGatsbyCodeFrameFormatted()\n if (possiblyCodeFrame) {\n warning.push(possiblyCodeFrame)\n }\n\n reporter.warn(warning.join(`\\n\\n`))\n alreadyDisplayed = true\n }\n },\n }\n }\n\n const localReporter = getLocalReporter({ activity, reporter })\n\n const runningActivities = new Set()\n\n const extendedLocalReporter = extendLocalReporterToCatchPluginErrors({\n reporter: localReporter,\n pluginName: plugin.name,\n runningActivities,\n })\n\n const endInProgressActivitiesCreatedByThisRun = () => {\n runningActivities.forEach(activity => activity.end())\n }\n\n const apiCallArgs = [\n {\n ...args,\n basePath: pathPrefix,\n pathPrefix: publicPath,\n actions,\n loadNodeContent,\n store,\n emitter,\n getCache,\n getNodes,\n getNode,\n getNodesByType,\n reporter: extendedLocalReporter,\n getNodeAndSavePathDependency,\n cache,\n createNodeId: namespacedCreateNodeId,\n createContentDigest,\n tracing,\n schema: {\n buildObjectType,\n buildUnionType,\n buildInterfaceType,\n buildInputObjectType,\n buildEnumType,\n buildScalarType,\n },\n },\n plugin.pluginOptions,\n ]\n\n // If the plugin is using a callback use that otherwise\n // expect a Promise to be returned.\n if (gatsbyNode[api].length === 3) {\n return Promise.fromCallback(callback => {\n const cb = (err, val) => {\n pluginSpan.finish()\n apiFinished = true\n endInProgressActivitiesCreatedByThisRun()\n callback(err, val)\n }\n\n try {\n gatsbyNode[api](...apiCallArgs, cb)\n } catch (e) {\n trackBuildError(api, {\n error: e,\n pluginName: `${plugin.name}@${plugin.version}`,\n })\n throw e\n }\n })\n } else {\n try {\n return await gatsbyNode[api](...apiCallArgs)\n } finally {\n pluginSpan.finish()\n apiFinished = true\n endInProgressActivitiesCreatedByThisRun()\n }\n }\n }\n\n return null\n}\n\nconst apisRunningById = new Map()\nconst apisRunningByTraceId = new Map()\nlet waitingForCasacadeToFinish = []\n\nmodule.exports = (api, args = {}, { pluginSource, activity } = {}) => {\n const plugins = store.getState().flattenedPlugins\n\n // Get the list of plugins that implement this API.\n // Also: Break infinite loops. Sometimes a plugin will implement an API and\n // call an action which will trigger the same API being called.\n // `onCreatePage` is the only example right now. In these cases, we should\n // avoid calling the originating plugin again.\n let implementingPlugins = plugins.filter(\n plugin => plugin.nodeAPIs.includes(api) && plugin.name !== pluginSource\n )\n\n if (api === `sourceNodes` && args.pluginName) {\n implementingPlugins = implementingPlugins.filter(\n plugin => plugin.name === args.pluginName\n )\n }\n\n // If there's no implementing plugins, return early.\n if (implementingPlugins.length === 0) {\n return null\n }\n\n return new Promise(resolve => {\n const { parentSpan, traceId, traceTags, waitForCascadingActions } = args\n const apiSpanArgs = parentSpan ? { childOf: parentSpan } : {}\n const apiSpan = tracer.startSpan(`run-api`, apiSpanArgs)\n\n apiSpan.setTag(`api`, api)\n _.forEach(traceTags, (value, key) => {\n apiSpan.setTag(key, value)\n })\n\n const apiRunInstance = {\n api,\n args,\n pluginSource,\n resolve,\n span: apiSpan,\n startTime: new Date().toJSON(),\n traceId,\n }\n\n // Generate IDs for api runs. Most IDs we generate from the args\n // but some API calls can have very large argument objects so we\n // have special ways of generating IDs for those to avoid stringifying\n // large objects.\n let id\n if (api === `setFieldsOnGraphQLNodeType`) {\n id = `${api}${apiRunInstance.startTime}${args.type.name}${traceId}`\n } else if (api === `onCreateNode`) {\n id = `${api}${apiRunInstance.startTime}${args.node.internal.contentDigest}${traceId}`\n } else if (api === `preprocessSource`) {\n id = `${api}${apiRunInstance.startTime}${args.filename}${traceId}`\n } else if (api === `onCreatePage`) {\n id = `${api}${apiRunInstance.startTime}${args.page.path}${traceId}`\n } else {\n // When tracing is turned on, the `args` object will have a\n // `parentSpan` field that can be quite large. So we omit it\n // before calling stringify\n const argsJson = JSON.stringify(_.omit(args, `parentSpan`))\n id = `${api}|${apiRunInstance.startTime}|${apiRunInstance.traceId}|${argsJson}`\n }\n apiRunInstance.id = id\n\n if (waitForCascadingActions) {\n waitingForCasacadeToFinish.push(apiRunInstance)\n }\n\n if (apisRunningById.size === 0) {\n emitter.emit(`API_RUNNING_START`)\n }\n\n apisRunningById.set(apiRunInstance.id, apiRunInstance)\n if (apisRunningByTraceId.has(apiRunInstance.traceId)) {\n const currentCount = apisRunningByTraceId.get(apiRunInstance.traceId)\n apisRunningByTraceId.set(apiRunInstance.traceId, currentCount + 1)\n } else {\n apisRunningByTraceId.set(apiRunInstance.traceId, 1)\n }\n\n let stopQueuedApiRuns = false\n let onAPIRunComplete = null\n if (api === `onCreatePage`) {\n const path = args.page.path\n const actionHandler = action => {\n if (action.payload.path === path) {\n stopQueuedApiRuns = true\n }\n }\n emitter.on(`DELETE_PAGE`, actionHandler)\n onAPIRunComplete = () => {\n emitter.off(`DELETE_PAGE`, actionHandler)\n }\n }\n\n let apiRunPromiseOptions = {}\n let runPromise\n if (\n api === `sourceNodes` &&\n process.env.GATSBY_EXPERIMENTAL_PARALLEL_SOURCING\n ) {\n runPromise = Promise.map\n apiRunPromiseOptions.concurrency = 20\n } else {\n runPromise = Promise.mapSeries\n apiRunPromiseOptions = undefined\n }\n\n runPromise(\n implementingPlugins,\n plugin => {\n if (stopQueuedApiRuns) {\n return null\n }\n\n let gatsbyNode = pluginNodeCache.get(plugin.name)\n if (!gatsbyNode) {\n gatsbyNode = require(`${plugin.resolve}/gatsby-node`)\n pluginNodeCache.set(plugin.name, gatsbyNode)\n }\n\n const pluginName =\n plugin.name === `default-site-plugin` ? `gatsby-node.js` : plugin.name\n\n // TODO: rethink createNode API to handle this better\n if (\n api === `onCreateNode` &&\n gatsbyNode?.unstable_shouldOnCreateNode && // Don't bail if this api is not exported\n !gatsbyNode.unstable_shouldOnCreateNode(\n { node: args.node },\n plugin.pluginOptions\n )\n ) {\n // Do not try to schedule an async event for this node for this plugin\n return null\n }\n\n return new Promise(resolve => {\n resolve(\n runAPI(plugin, api, { ...args, parentSpan: apiSpan }, activity)\n )\n }).catch(err => {\n decorateEvent(`BUILD_PANIC`, {\n pluginName: `${plugin.name}@${plugin.version}`,\n })\n\n const localReporter = getLocalReporter({ activity, reporter })\n\n const file = stackTrace\n .parse(err)\n .find(file => /gatsby-node/.test(file.fileName))\n\n let codeFrame = ``\n const structuredError = errorParser({ err })\n\n if (file) {\n const { fileName, lineNumber: line, columnNumber: column } = file\n\n try {\n const code = fs.readFileSync(fileName, { encoding: `utf-8` })\n codeFrame = codeFrameColumns(\n code,\n {\n start: {\n line,\n column,\n },\n },\n {\n highlightCode: true,\n }\n )\n } catch (_e) {\n // sometimes stack trace point to not existing file\n // particularly when file is transpiled and path actually changes\n // (like pointing to not existing `src` dir or original typescript file)\n }\n\n structuredError.location = {\n start: { line: line, column: column },\n }\n structuredError.filePath = fileName\n }\n\n structuredError.context = {\n ...structuredError.context,\n pluginName,\n api,\n codeFrame,\n }\n\n localReporter.panicOnBuild(structuredError)\n\n return null\n })\n },\n apiRunPromiseOptions\n ).then(results => {\n if (onAPIRunComplete) {\n onAPIRunComplete()\n }\n // Remove runner instance\n apisRunningById.delete(apiRunInstance.id)\n const currentCount = apisRunningByTraceId.get(apiRunInstance.traceId)\n apisRunningByTraceId.set(apiRunInstance.traceId, currentCount - 1)\n\n if (apisRunningById.size === 0) {\n emitter.emit(`API_RUNNING_QUEUE_EMPTY`)\n }\n\n // Filter empty results\n apiRunInstance.results = results.filter(result => !_.isEmpty(result))\n\n // Filter out empty responses and return if the\n // api caller isn't waiting for cascading actions to finish.\n if (!waitForCascadingActions) {\n apiSpan.finish()\n resolve(apiRunInstance.results)\n }\n\n // Check if any of our waiters are done.\n waitingForCasacadeToFinish = waitingForCasacadeToFinish.filter(\n instance => {\n // If none of its trace IDs are running, it's done.\n const apisByTraceIdCount = apisRunningByTraceId.get(instance.traceId)\n if (apisByTraceIdCount === 0) {\n instance.span.finish()\n instance.resolve(instance.results)\n return false\n } else {\n return true\n }\n }\n )\n return\n })\n })\n}\n"],"file":"api-runner-node.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/api-runner-node.js"],"names":["Promise","require","_","chalk","bindActionCreators","origBindActionCreators","memoize","tracer","globalTracer","reporter","stackTrace","codeFrameColumns","fs","getCache","createContentDigest","emitter","store","getNodes","getNode","getNodesByType","getNodeAndSavePathDependency","loadNodeContent","getPublicPath","getNonGatsbyCodeFrameFormatted","trackBuildError","decorateEvent","process","env","BLUEBIRD_DEBUG","BLUEBIRD_LONG_STACK_TRACES","config","longStackTraces","boundPluginActionCreators","doubleBind","boundActionCreators","api","plugin","actionOptions","traceId","deferNodeMutation","defer","actionKey","name","keys","Object","doubleBoundActionCreators","i","length","key","boundActionCreator","args","undefined","initAPICallTracing","parentSpan","startSpan","spanName","spanArgs","defaultSpanArgs","childOf","merge","deferredAction","type","resolve","emit","payload","NODE_MUTATION_ACTIONS","deferActions","actions","deferred","forEach","action","getLocalReporter","activity","panicOnBuild","bind","getErrorMapWithPluginName","pluginName","errorMap","entries","reduce","memo","val","extendLocalReporterToCatchPluginErrors","runningActivities","setErrorMap","error","panic","errorMeta","activityTimer","apply","originalStart","start","originalEnd","end","add","delete","createProgress","originalDone","done","getUninitializedCache","message","get","Error","set","del","pluginNodeCache","Map","availableActionsCache","publicPath","runAPI","gatsbyNode","spanOptions","pluginSpan","setTag","publicActions","restrictedActionsAvailableInAPI","availableActions","has","dispatch","program","getState","pathPrefix","prefixPaths","namespacedCreateNodeId","id","tracing","cache","apiFinished","alreadyDisplayed","createPageAction","createPage","warning","stripIndent","bold","possiblyCodeFrame","push","warn","join","localReporter","Set","extendedLocalReporter","endInProgressActivitiesCreatedByThisRun","apiCallArgs","basePath","createNodeId","schema","buildObjectType","buildUnionType","buildInterfaceType","buildInputObjectType","buildEnumType","buildScalarType","pluginOptions","fromCallback","callback","cb","err","finish","e","version","apisRunningById","apisRunningByTraceId","waitingForCasacadeToFinish","module","exports","pluginSource","plugins","flattenedPlugins","implementingPlugins","filter","nodeAPIs","includes","traceTags","waitForCascadingActions","apiSpanArgs","apiSpan","value","apiRunInstance","span","startTime","Date","toJSON","node","internal","contentDigest","filename","page","path","argsJson","JSON","stringify","omit","size","currentCount","stopQueuedApiRuns","onAPIRunComplete","actionHandler","on","off","apiRunPromiseOptions","runPromise","GATSBY_EXPERIMENTAL_PARALLEL_SOURCING","map","concurrency","mapSeries","unstable_shouldOnCreateNode","catch","file","parse","find","test","fileName","codeFrame","structuredError","lineNumber","line","columnNumber","column","code","readFileSync","encoding","highlightCode","_e","location","filePath","context","then","results","result","isEmpty","instance","apisByTraceIdCount"],"mappings":"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","sourcesContent":["const Promise = require(`bluebird`)\nconst _ = require(`lodash`)\nconst chalk = require(`chalk`)\nconst { bindActionCreators: origBindActionCreators } = require(`redux`)\nconst memoize = require(`memoizee`)\n\nconst bindActionCreators = memoize(origBindActionCreators)\n\nconst tracer = require(`opentracing`).globalTracer()\nconst reporter = require(`gatsby-cli/lib/reporter`)\nconst stackTrace = require(`stack-trace`)\nconst { codeFrameColumns } = require(`@babel/code-frame`)\nconst fs = require(`fs-extra`)\nconst { getCache } = require(`./get-cache`)\nimport { createNodeId } from \"./create-node-id\"\nconst { createContentDigest } = require(`gatsby-core-utils`)\nimport {\n buildObjectType,\n buildUnionType,\n buildInterfaceType,\n buildInputObjectType,\n buildEnumType,\n buildScalarType,\n} from \"../schema/types/type-builders\"\nconst { emitter, store } = require(`../redux`)\nconst { getNodes, getNode, getNodesByType } = require(`../datastore`)\nconst { getNodeAndSavePathDependency, loadNodeContent } = require(`./nodes`)\nconst { getPublicPath } = require(`./get-public-path`)\nconst { getNonGatsbyCodeFrameFormatted } = require(`./stack-trace-utils`)\nconst { trackBuildError, decorateEvent } = require(`gatsby-telemetry`)\nimport errorParser from \"./api-runner-error-parser\"\n\nif (!process.env.BLUEBIRD_DEBUG && !process.env.BLUEBIRD_LONG_STACK_TRACES) {\n // Unless specified - disable longStackTraces\n // as this have severe perf penalty ( http://bluebirdjs.com/docs/api/promise.longstacktraces.html )\n // This is mainly for `gatsby develop` due to NODE_ENV being set to development\n // which cause bluebird to enable longStackTraces\n // `gatsby build` (with NODE_ENV=production) already doesn't enable longStackTraces\n Promise.config({ longStackTraces: false })\n}\n\n// Bind action creators per plugin so we can auto-add\n// metadata to actions they create.\nconst boundPluginActionCreators = {}\nconst doubleBind = (boundActionCreators, api, plugin, actionOptions) => {\n const { traceId, deferNodeMutation } = actionOptions\n const defer = deferNodeMutation ? `defer-node-mutation` : ``\n const actionKey = plugin.name + api + traceId + defer\n if (boundPluginActionCreators[actionKey]) {\n return boundPluginActionCreators[actionKey]\n } else {\n const keys = Object.keys(boundActionCreators)\n const doubleBoundActionCreators = {}\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const boundActionCreator = boundActionCreators[key]\n if (typeof boundActionCreator === `function`) {\n doubleBoundActionCreators[key] = (...args) => {\n // Let action callers override who the plugin is. Shouldn't be\n // used that often.\n if (args.length === 1) {\n return boundActionCreator(args[0], plugin, actionOptions)\n } else if (args.length === 2) {\n return boundActionCreator(args[0], args[1], actionOptions)\n }\n return undefined\n }\n }\n }\n boundPluginActionCreators[actionKey] = doubleBoundActionCreators\n return doubleBoundActionCreators\n }\n}\n\nconst initAPICallTracing = parentSpan => {\n const startSpan = (spanName, spanArgs = {}) => {\n const defaultSpanArgs = { childOf: parentSpan }\n\n return tracer.startSpan(spanName, _.merge(defaultSpanArgs, spanArgs))\n }\n\n return {\n tracer,\n parentSpan,\n startSpan,\n }\n}\n\nconst deferredAction = type => (...args) => {\n // Regular createNode returns a Promise, but when deferred we need\n // to wrap it in another which we resolve when it's actually called\n if (type === `createNode`) {\n return new Promise(resolve => {\n emitter.emit(`ENQUEUE_NODE_MUTATION`, {\n type,\n payload: args,\n resolve,\n })\n })\n }\n return emitter.emit(`ENQUEUE_NODE_MUTATION`, {\n type,\n payload: args,\n })\n}\n\nconst NODE_MUTATION_ACTIONS = [\n `createNode`,\n `deleteNode`,\n `touchNode`,\n `createParentChildLink`,\n `createNodeField`,\n]\n\nconst deferActions = actions => {\n const deferred = { ...actions }\n NODE_MUTATION_ACTIONS.forEach(action => {\n deferred[action] = deferredAction(action)\n })\n return deferred\n}\n\n/**\n * Create a local reporter\n * Used to override reporter methods with activity methods\n */\nfunction getLocalReporter({ activity, reporter }) {\n // If we have an activity, bind panicOnBuild to the activities method to\n // join them\n if (activity) {\n return { ...reporter, panicOnBuild: activity.panicOnBuild.bind(activity) }\n }\n\n return reporter\n}\n\nfunction getErrorMapWithPluginName(pluginName, errorMap) {\n const entries = Object.entries(errorMap)\n\n return entries.reduce((memo, [key, val]) => {\n memo[`${pluginName}_${key}`] = val\n\n return memo\n }, {})\n}\n\nfunction extendLocalReporterToCatchPluginErrors({\n reporter,\n pluginName,\n runningActivities,\n}) {\n let setErrorMap\n\n let error = reporter.error\n let panic = reporter.panic\n let panicOnBuild = reporter.panicOnBuild\n\n if (pluginName && reporter?.setErrorMap) {\n setErrorMap = errorMap =>\n reporter.setErrorMap(getErrorMapWithPluginName(pluginName, errorMap))\n\n error = (errorMeta, error) => {\n reporter.error(errorMeta, error, pluginName)\n }\n\n panic = (errorMeta, error) => {\n reporter.panic(errorMeta, error, pluginName)\n }\n\n panicOnBuild = (errorMeta, error) => {\n reporter.panicOnBuild(errorMeta, error, pluginName)\n }\n }\n\n return {\n ...reporter,\n setErrorMap,\n error,\n panic,\n panicOnBuild,\n activityTimer: (...args) => {\n // eslint-disable-next-line prefer-spread\n const activity = reporter.activityTimer.apply(reporter, args)\n\n const originalStart = activity.start\n const originalEnd = activity.end\n\n activity.start = () => {\n originalStart.apply(activity)\n runningActivities.add(activity)\n }\n\n activity.end = () => {\n originalEnd.apply(activity)\n runningActivities.delete(activity)\n }\n\n return activity\n },\n\n createProgress: (...args) => {\n // eslint-disable-next-line prefer-spread\n const activity = reporter.createProgress.apply(reporter, args)\n\n const originalStart = activity.start\n const originalEnd = activity.end\n const originalDone = activity.done\n\n activity.start = () => {\n originalStart.apply(activity)\n runningActivities.add(activity)\n }\n\n activity.end = () => {\n originalEnd.apply(activity)\n runningActivities.delete(activity)\n }\n\n activity.done = () => {\n originalDone.apply(activity)\n runningActivities.delete(activity)\n }\n\n return activity\n },\n }\n}\n\nconst getUninitializedCache = plugin => {\n const message =\n `Usage of \"cache\" instance in \"onPreInit\" API is not supported as ` +\n `this API runs before cache initialization` +\n (plugin && plugin !== `default-site-plugin` ? ` (called in ${plugin})` : ``)\n\n return {\n // GatsbyCache\n async get() {\n throw new Error(message)\n },\n async set() {\n throw new Error(message)\n },\n async del() {\n throw new Error(message)\n },\n }\n}\n\nconst pluginNodeCache = new Map()\n\nconst availableActionsCache = new Map()\nlet publicPath\nconst runAPI = async (plugin, api, args, activity) => {\n let gatsbyNode = pluginNodeCache.get(plugin.name)\n if (!gatsbyNode) {\n gatsbyNode = require(`${plugin.resolve}/gatsby-node`)\n pluginNodeCache.set(plugin.name, gatsbyNode)\n }\n\n if (gatsbyNode[api]) {\n const parentSpan = args && args.parentSpan\n const spanOptions = parentSpan ? { childOf: parentSpan } : {}\n const pluginSpan = tracer.startSpan(`run-plugin`, spanOptions)\n\n pluginSpan.setTag(`api`, api)\n pluginSpan.setTag(`plugin`, plugin.name)\n const {\n publicActions,\n restrictedActionsAvailableInAPI,\n } = require(`../redux/actions`)\n\n let availableActions\n if (availableActionsCache.has(api)) {\n availableActions = availableActionsCache.get(api)\n } else {\n availableActions = {\n ...publicActions,\n ...(restrictedActionsAvailableInAPI[api] || {}),\n }\n\n availableActionsCache.set(api, availableActions)\n }\n\n let boundActionCreators = bindActionCreators(\n availableActions,\n store.dispatch\n )\n\n if (args.deferNodeMutation) {\n boundActionCreators = deferActions(boundActionCreators)\n }\n\n const doubleBoundActionCreators = doubleBind(\n boundActionCreators,\n api,\n plugin,\n { ...args, parentSpan: pluginSpan, activity }\n )\n\n const { config, program } = store.getState()\n\n const pathPrefix = (program.prefixPaths && config.pathPrefix) || ``\n\n if (typeof publicPath === `undefined`) {\n publicPath = getPublicPath({ ...config, ...program }, ``)\n }\n\n const namespacedCreateNodeId = id => createNodeId(id, plugin.name)\n\n const tracing = initAPICallTracing(pluginSpan)\n\n // See https://github.com/gatsbyjs/gatsby/issues/11369\n const cache =\n api === `onPreInit`\n ? getUninitializedCache(plugin.name)\n : getCache(plugin.name)\n\n // Ideally this would be more abstracted and applied to more situations, but right now\n // this can be potentially breaking so targeting `createPages` API and `createPage` action\n let actions = doubleBoundActionCreators\n let apiFinished = false\n if (api === `createPages`) {\n let alreadyDisplayed = false\n const createPageAction = actions.createPage\n // create new actions object with wrapped createPage action\n // doubleBoundActionCreators is memoized, so we can't just\n // reassign createPage field as this would cause this extra logic\n // to be used in subsequent APIs and we only want to target this `createPages` call.\n actions = {\n ...actions,\n createPage: (...args) => {\n createPageAction(...args)\n if (apiFinished && !alreadyDisplayed) {\n const warning = [\n reporter.stripIndent(`\n Action ${chalk.bold(\n `createPage`\n )} was called outside of its expected asynchronous lifecycle ${chalk.bold(\n `createPages`\n )} in ${chalk.bold(plugin.name)}.\n Ensure that you return a Promise from ${chalk.bold(\n `createPages`\n )} and are awaiting any asynchronous method invocations (like ${chalk.bold(\n `graphql`\n )} or http requests).\n For more info and debugging tips: see ${chalk.bold(\n `https://gatsby.dev/sync-actions`\n )}\n `),\n ]\n\n const possiblyCodeFrame = getNonGatsbyCodeFrameFormatted()\n if (possiblyCodeFrame) {\n warning.push(possiblyCodeFrame)\n }\n\n reporter.warn(warning.join(`\\n\\n`))\n alreadyDisplayed = true\n }\n },\n }\n }\n\n const localReporter = getLocalReporter({ activity, reporter })\n\n const runningActivities = new Set()\n\n const extendedLocalReporter = extendLocalReporterToCatchPluginErrors({\n reporter: localReporter,\n pluginName: plugin.name,\n runningActivities,\n })\n\n const endInProgressActivitiesCreatedByThisRun = () => {\n runningActivities.forEach(activity => activity.end())\n }\n\n const apiCallArgs = [\n {\n ...args,\n basePath: pathPrefix,\n pathPrefix: publicPath,\n actions,\n loadNodeContent,\n store,\n emitter,\n getCache,\n getNodes,\n getNode,\n getNodesByType,\n reporter: extendedLocalReporter,\n getNodeAndSavePathDependency,\n cache,\n createNodeId: namespacedCreateNodeId,\n createContentDigest,\n tracing,\n schema: {\n buildObjectType,\n buildUnionType,\n buildInterfaceType,\n buildInputObjectType,\n buildEnumType,\n buildScalarType,\n },\n },\n plugin.pluginOptions,\n ]\n\n // If the plugin is using a callback use that otherwise\n // expect a Promise to be returned.\n if (gatsbyNode[api].length === 3) {\n return Promise.fromCallback(callback => {\n const cb = (err, val) => {\n pluginSpan.finish()\n apiFinished = true\n endInProgressActivitiesCreatedByThisRun()\n callback(err, val)\n }\n\n try {\n gatsbyNode[api](...apiCallArgs, cb)\n } catch (e) {\n trackBuildError(api, {\n error: e,\n pluginName: `${plugin.name}@${plugin.version}`,\n })\n throw e\n }\n })\n } else {\n try {\n return await gatsbyNode[api](...apiCallArgs)\n } finally {\n pluginSpan.finish()\n apiFinished = true\n endInProgressActivitiesCreatedByThisRun()\n }\n }\n }\n\n return null\n}\n\nconst apisRunningById = new Map()\nconst apisRunningByTraceId = new Map()\nlet waitingForCasacadeToFinish = []\n\nmodule.exports = (api, args = {}, { pluginSource, activity } = {}) => {\n const plugins = store.getState().flattenedPlugins\n\n // Get the list of plugins that implement this API.\n // Also: Break infinite loops. Sometimes a plugin will implement an API and\n // call an action which will trigger the same API being called.\n // `onCreatePage` is the only example right now. In these cases, we should\n // avoid calling the originating plugin again.\n let implementingPlugins = plugins.filter(\n plugin => plugin.nodeAPIs.includes(api) && plugin.name !== pluginSource\n )\n\n if (api === `sourceNodes` && args.pluginName) {\n implementingPlugins = implementingPlugins.filter(\n plugin => plugin.name === args.pluginName\n )\n }\n\n // If there's no implementing plugins, return early.\n if (implementingPlugins.length === 0) {\n return null\n }\n\n return new Promise(resolve => {\n const { parentSpan, traceId, traceTags, waitForCascadingActions } = args\n const apiSpanArgs = parentSpan ? { childOf: parentSpan } : {}\n const apiSpan = tracer.startSpan(`run-api`, apiSpanArgs)\n\n apiSpan.setTag(`api`, api)\n _.forEach(traceTags, (value, key) => {\n apiSpan.setTag(key, value)\n })\n\n const apiRunInstance = {\n api,\n args,\n pluginSource,\n resolve,\n span: apiSpan,\n startTime: new Date().toJSON(),\n traceId,\n }\n\n // Generate IDs for api runs. Most IDs we generate from the args\n // but some API calls can have very large argument objects so we\n // have special ways of generating IDs for those to avoid stringifying\n // large objects.\n let id\n if (api === `setFieldsOnGraphQLNodeType`) {\n id = `${api}${apiRunInstance.startTime}${args.type.name}${traceId}`\n } else if (api === `onCreateNode`) {\n id = `${api}${apiRunInstance.startTime}${args.node.internal.contentDigest}${traceId}`\n } else if (api === `preprocessSource`) {\n id = `${api}${apiRunInstance.startTime}${args.filename}${traceId}`\n } else if (api === `onCreatePage`) {\n id = `${api}${apiRunInstance.startTime}${args.page.path}${traceId}`\n } else {\n // When tracing is turned on, the `args` object will have a\n // `parentSpan` field that can be quite large. So we omit it\n // before calling stringify\n const argsJson = JSON.stringify(_.omit(args, `parentSpan`))\n id = `${api}|${apiRunInstance.startTime}|${apiRunInstance.traceId}|${argsJson}`\n }\n apiRunInstance.id = id\n\n if (waitForCascadingActions) {\n waitingForCasacadeToFinish.push(apiRunInstance)\n }\n\n if (apisRunningById.size === 0) {\n emitter.emit(`API_RUNNING_START`)\n }\n\n apisRunningById.set(apiRunInstance.id, apiRunInstance)\n if (apisRunningByTraceId.has(apiRunInstance.traceId)) {\n const currentCount = apisRunningByTraceId.get(apiRunInstance.traceId)\n apisRunningByTraceId.set(apiRunInstance.traceId, currentCount + 1)\n } else {\n apisRunningByTraceId.set(apiRunInstance.traceId, 1)\n }\n\n let stopQueuedApiRuns = false\n let onAPIRunComplete = null\n if (api === `onCreatePage`) {\n const path = args.page.path\n const actionHandler = action => {\n if (action.payload.path === path) {\n stopQueuedApiRuns = true\n }\n }\n emitter.on(`DELETE_PAGE`, actionHandler)\n onAPIRunComplete = () => {\n emitter.off(`DELETE_PAGE`, actionHandler)\n }\n }\n\n let apiRunPromiseOptions = {}\n let runPromise\n if (\n api === `sourceNodes` &&\n process.env.GATSBY_EXPERIMENTAL_PARALLEL_SOURCING\n ) {\n runPromise = Promise.map\n apiRunPromiseOptions.concurrency = 20\n } else {\n runPromise = Promise.mapSeries\n apiRunPromiseOptions = undefined\n }\n\n runPromise(\n implementingPlugins,\n plugin => {\n if (stopQueuedApiRuns) {\n return null\n }\n\n let gatsbyNode = pluginNodeCache.get(plugin.name)\n if (!gatsbyNode) {\n gatsbyNode = require(`${plugin.resolve}/gatsby-node`)\n pluginNodeCache.set(plugin.name, gatsbyNode)\n }\n\n const pluginName =\n plugin.name === `default-site-plugin` ? `gatsby-node.js` : plugin.name\n\n // TODO: rethink createNode API to handle this better\n if (\n api === `onCreateNode` &&\n gatsbyNode?.unstable_shouldOnCreateNode && // Don't bail if this api is not exported\n !gatsbyNode.unstable_shouldOnCreateNode(\n { node: args.node },\n plugin.pluginOptions\n )\n ) {\n // Do not try to schedule an async event for this node for this plugin\n return null\n }\n\n return new Promise(resolve => {\n resolve(\n runAPI(plugin, api, { ...args, parentSpan: apiSpan }, activity)\n )\n }).catch(err => {\n decorateEvent(`BUILD_PANIC`, {\n pluginName: `${plugin.name}@${plugin.version}`,\n })\n\n const localReporter = getLocalReporter({ activity, reporter })\n\n const file = stackTrace\n .parse(err)\n .find(file => /gatsby-node/.test(file.fileName))\n\n let codeFrame = ``\n const structuredError = errorParser({ err })\n\n if (file) {\n const { fileName, lineNumber: line, columnNumber: column } = file\n\n try {\n const code = fs.readFileSync(fileName, { encoding: `utf-8` })\n codeFrame = codeFrameColumns(\n code,\n {\n start: {\n line,\n column,\n },\n },\n {\n highlightCode: true,\n }\n )\n } catch (_e) {\n // sometimes stack trace point to not existing file\n // particularly when file is transpiled and path actually changes\n // (like pointing to not existing `src` dir or original typescript file)\n }\n\n structuredError.location = {\n start: { line: line, column: column },\n }\n structuredError.filePath = fileName\n }\n\n structuredError.context = {\n ...structuredError.context,\n pluginName,\n api,\n codeFrame,\n }\n\n localReporter.panicOnBuild(structuredError)\n\n return null\n })\n },\n apiRunPromiseOptions\n ).then(results => {\n if (onAPIRunComplete) {\n onAPIRunComplete()\n }\n // Remove runner instance\n apisRunningById.delete(apiRunInstance.id)\n const currentCount = apisRunningByTraceId.get(apiRunInstance.traceId)\n apisRunningByTraceId.set(apiRunInstance.traceId, currentCount - 1)\n\n if (apisRunningById.size === 0) {\n emitter.emit(`API_RUNNING_QUEUE_EMPTY`)\n }\n\n // Filter empty results\n apiRunInstance.results = results.filter(result => !_.isEmpty(result))\n\n // Filter out empty responses and return if the\n // api caller isn't waiting for cascading actions to finish.\n if (!waitForCascadingActions) {\n apiSpan.finish()\n resolve(apiRunInstance.results)\n }\n\n // Check if any of our waiters are done.\n waitingForCasacadeToFinish = waitingForCasacadeToFinish.filter(\n instance => {\n // If none of its trace IDs are running, it's done.\n const apisByTraceIdCount = apisRunningByTraceId.get(instance.traceId)\n if (apisByTraceIdCount === 0) {\n instance.span.finish()\n instance.resolve(instance.results)\n return false\n } else {\n return true\n }\n }\n )\n return\n })\n })\n}\n"],"file":"api-runner-node.js"}
|
|
@@ -3,6 +3,7 @@ export default class GatsbyCacheLmdb {
|
|
|
3
3
|
private db;
|
|
4
4
|
readonly name: string;
|
|
5
5
|
readonly directory: string;
|
|
6
|
+
readonly cache: GatsbyCacheLmdb;
|
|
6
7
|
constructor({ name }: {
|
|
7
8
|
name: string;
|
|
8
9
|
});
|
|
@@ -11,4 +12,5 @@ export default class GatsbyCacheLmdb {
|
|
|
11
12
|
private getDb;
|
|
12
13
|
get<T = unknown>(key: any): Promise<T | undefined>;
|
|
13
14
|
set<T>(key: string, value: T): Promise<T | undefined>;
|
|
15
|
+
del(key: string): Promise<void>;
|
|
14
16
|
}
|
package/dist/utils/cache-lmdb.js
CHANGED
|
@@ -21,11 +21,15 @@ const cacheDbFile = process.env.NODE_ENV === `test` ? `caches-lmdb-${// FORCE_TE
|
|
|
21
21
|
|
|
22
22
|
class GatsbyCacheLmdb {
|
|
23
23
|
// Needed for plugins that want to write data to the cache directory
|
|
24
|
+
// TODO: remove `.cache` in v4. This is compat mode - cache-manager cache implementation
|
|
25
|
+
// expose internal cache that gives access to `.del` function that wasn't available in public
|
|
26
|
+
// cache interface (gatsby-plugin-sharp use it to clear no longer needed data)
|
|
24
27
|
constructor({
|
|
25
28
|
name = `db`
|
|
26
29
|
}) {
|
|
27
30
|
this.name = name;
|
|
28
31
|
this.directory = _path.default.join(process.cwd(), `.cache/caches/${name}`);
|
|
32
|
+
this.cache = this;
|
|
29
33
|
}
|
|
30
34
|
|
|
31
35
|
init() {
|
|
@@ -66,6 +70,10 @@ class GatsbyCacheLmdb {
|
|
|
66
70
|
return value;
|
|
67
71
|
}
|
|
68
72
|
|
|
73
|
+
async del(key) {
|
|
74
|
+
return this.getDb().remove(key);
|
|
75
|
+
}
|
|
76
|
+
|
|
69
77
|
}
|
|
70
78
|
|
|
71
79
|
exports.default = GatsbyCacheLmdb;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/cache-lmdb.ts"],"names":["cacheDbFile","process","env","NODE_ENV","FORCE_TEST_DATABASE_ID","JEST_WORKER_ID","GatsbyCacheLmdb","constructor","name","directory","path","join","cwd","init","fs","ensureDirSync","getStore","store","compression","maxDbs","getDb","db","openDB","get","key","set","value","put"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA;AACA,MAAMA,WAAW,GACfC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAA0B,MAA1B,GACK,eACC;AACA;AACA;AAHF,yBAIEF,OAAO,CAACC,GAAR,CAAYE,sBAJd,yEAIwCH,OAAO,CAACC,GAAR,CAAYG,cACnD,EANL,GAOK,aARP;;AAUe,MAAMC,eAAN,CAAsB;AAInC;AAGAC,EAAAA,WAAW,CAAC;AAAEC,IAAAA,IAAI,GAAI;AAAV,GAAD,EAAoC;AAC7C,SAAKA,IAAL,GAAYA,IAAZ;AACA,SAAKC,SAAL,GAAiBC,cAAKC,IAAL,CAAUV,OAAO,CAACW,GAAR,EAAV,EAA0B,iBAAgBJ,IAAK,EAA/C,CAAjB;AACD;;
|
|
1
|
+
{"version":3,"sources":["../../src/utils/cache-lmdb.ts"],"names":["cacheDbFile","process","env","NODE_ENV","FORCE_TEST_DATABASE_ID","JEST_WORKER_ID","GatsbyCacheLmdb","constructor","name","directory","path","join","cwd","cache","init","fs","ensureDirSync","getStore","store","compression","maxDbs","getDb","db","openDB","get","key","set","value","put","del","remove"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA;AACA,MAAMA,WAAW,GACfC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAA0B,MAA1B,GACK,eACC;AACA;AACA;AAHF,yBAIEF,OAAO,CAACC,GAAR,CAAYE,sBAJd,yEAIwCH,OAAO,CAACC,GAAR,CAAYG,cACnD,EANL,GAOK,aARP;;AAUe,MAAMC,eAAN,CAAsB;AAInC;AAEA;AACA;AACA;AAGAC,EAAAA,WAAW,CAAC;AAAEC,IAAAA,IAAI,GAAI;AAAV,GAAD,EAAoC;AAC7C,SAAKA,IAAL,GAAYA,IAAZ;AACA,SAAKC,SAAL,GAAiBC,cAAKC,IAAL,CAAUV,OAAO,CAACW,GAAR,EAAV,EAA0B,iBAAgBJ,IAAK,EAA/C,CAAjB;AACA,SAAKK,KAAL,GAAa,IAAb;AACD;;AAEDC,EAAAA,IAAI,GAAoB;AACtBC,qBAAGC,aAAH,CAAiB,KAAKP,SAAtB;;AACA,WAAO,IAAP;AACD;;AAEsB,SAARQ,QAAQ,GAAiB;AACtC,QAAI,CAACX,eAAe,CAACY,KAArB,EAA4B;AAC1BZ,MAAAA,eAAe,CAACY,KAAhB,GAAwB,qBAAK;AAC3BV,QAAAA,IAAI,EAAG,MADoB;AAE3BE,QAAAA,IAAI,EAAEA,cAAKC,IAAL,CAAUV,OAAO,CAACW,GAAR,EAAV,EAA0B,UAASZ,WAAY,EAA/C,CAFqB;AAG3BmB,QAAAA,WAAW,EAAE,IAHc;AAI3BC,QAAAA,MAAM,EAAE;AAJmB,OAAL,CAAxB;AAMD;;AACD,WAAOd,eAAe,CAACY,KAAvB;AACD;;AAEOG,EAAAA,KAAK,GAAa;AACxB,QAAI,CAAC,KAAKC,EAAV,EAAc;AACZ,WAAKA,EAAL,GAAUhB,eAAe,CAACW,QAAhB,GAA2BM,MAA3B,CAAkC;AAC1Cf,QAAAA,IAAI,EAAE,KAAKA;AAD+B,OAAlC,CAAV;AAGD;;AACD,WAAO,KAAKc,EAAZ;AACD;;AAEQ,QAAHE,GAAG,CAAcC,GAAd,EAA2C;AAClD,WAAO,KAAKJ,KAAL,GAAaG,GAAb,CAAiBC,GAAjB,CAAP;AACD;;AAEQ,QAAHC,GAAG,CAAID,GAAJ,EAAiBE,KAAjB,EAAmD;AAC1D,UAAM,KAAKN,KAAL,GAAaO,GAAb,CAAiBH,GAAjB,EAAsBE,KAAtB,CAAN;AACA,WAAOA,KAAP;AACD;;AAEQ,QAAHE,GAAG,CAACJ,GAAD,EAA6B;AACpC,WAAQ,KAAKJ,KAAL,GAAaS,MAAb,CAAoBL,GAApB,CAAR;AACD;;AAtDkC","sourcesContent":["import { open, RootDatabase, Database } from \"lmdb-store\"\nimport fs from \"fs-extra\"\nimport path from \"path\"\n\n// Since the regular GatsbyCache saves to \"caches\" this should be \"caches-lmdb\"\nconst cacheDbFile =\n process.env.NODE_ENV === `test`\n ? `caches-lmdb-${\n // FORCE_TEST_DATABASE_ID will be set if this gets executed in worker context\n // when running jest tests. JEST_WORKER_ID will be set when this gets executed directly\n // in test context (jest will use jest-worker internally).\n process.env.FORCE_TEST_DATABASE_ID ?? process.env.JEST_WORKER_ID\n }`\n : `caches-lmdb`\n\nexport default class GatsbyCacheLmdb {\n private static store\n private db: Database | undefined\n public readonly name: string\n // Needed for plugins that want to write data to the cache directory\n public readonly directory: string\n // TODO: remove `.cache` in v4. This is compat mode - cache-manager cache implementation\n // expose internal cache that gives access to `.del` function that wasn't available in public\n // cache interface (gatsby-plugin-sharp use it to clear no longer needed data)\n public readonly cache: GatsbyCacheLmdb\n\n constructor({ name = `db` }: { name: string }) {\n this.name = name\n this.directory = path.join(process.cwd(), `.cache/caches/${name}`)\n this.cache = this\n }\n\n init(): GatsbyCacheLmdb {\n fs.ensureDirSync(this.directory)\n return this\n }\n\n private static getStore(): RootDatabase {\n if (!GatsbyCacheLmdb.store) {\n GatsbyCacheLmdb.store = open({\n name: `root`,\n path: path.join(process.cwd(), `.cache/${cacheDbFile}`),\n compression: true,\n maxDbs: 200,\n })\n }\n return GatsbyCacheLmdb.store\n }\n\n private getDb(): Database {\n if (!this.db) {\n this.db = GatsbyCacheLmdb.getStore().openDB({\n name: this.name,\n })\n }\n return this.db\n }\n\n async get<T = unknown>(key): Promise<T | undefined> {\n return this.getDb().get(key)\n }\n\n async set<T>(key: string, value: T): Promise<T | undefined> {\n await this.getDb().put(key, value)\n return value\n }\n\n async del(key: string): Promise<void> {\n return (this.getDb().remove(key) as unknown) as Promise<void>\n }\n}\n"],"file":"cache-lmdb.js"}
|
package/dist/utils/cache.d.ts
CHANGED
package/dist/utils/cache.js
CHANGED
|
@@ -21,6 +21,9 @@ const MAX_CACHE_SIZE = 250;
|
|
|
21
21
|
const TTL = Number.MAX_SAFE_INTEGER;
|
|
22
22
|
|
|
23
23
|
class GatsbyCache {
|
|
24
|
+
// TODO: remove `.cache` in v4. This is compat mode - cache-manager cache implementation
|
|
25
|
+
// expose internal cache that gives access to `.del` function that wasn't available in public
|
|
26
|
+
// cache interface (gatsby-plugin-sharp use it to clear no longer needed data)
|
|
24
27
|
// @ts-ignore - set & get types are missing from fsStore?
|
|
25
28
|
constructor({
|
|
26
29
|
name = `db`,
|
|
@@ -77,6 +80,14 @@ class GatsbyCache {
|
|
|
77
80
|
});
|
|
78
81
|
}
|
|
79
82
|
|
|
83
|
+
async del(key) {
|
|
84
|
+
if (!this.cache) {
|
|
85
|
+
throw new Error(`GatsbyCache wasn't initialised yet, please run the init method first`);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return this.cache.del(key);
|
|
89
|
+
}
|
|
90
|
+
|
|
80
91
|
}
|
|
81
92
|
|
|
82
93
|
exports.default = GatsbyCache;
|
package/dist/utils/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/cache.ts"],"names":["MAX_CACHE_SIZE","TTL","Number","MAX_SAFE_INTEGER","GatsbyCache","constructor","name","store","fsStore","directory","path","join","process","cwd","init","fs","ensureDirSync","configs","max","ttl","options","caches","map","cache","manager","caching","multiCaching","get","key","Promise","resolve","Error","err","res","undefined","set","value","args"],"mappings":";;;;;;;AAAA;;AAMA;;AACA;;AACA;;;;;;AAEA,MAAMA,cAAc,GAAG,GAAvB;AACA,MAAMC,GAAG,GAAGC,MAAM,CAACC,gBAAnB;;AAOe,MAAMC,WAAN,CAAkB;
|
|
1
|
+
{"version":3,"sources":["../../src/utils/cache.ts"],"names":["MAX_CACHE_SIZE","TTL","Number","MAX_SAFE_INTEGER","GatsbyCache","constructor","name","store","fsStore","directory","path","join","process","cwd","init","fs","ensureDirSync","configs","max","ttl","options","caches","map","cache","manager","caching","multiCaching","get","key","Promise","resolve","Error","err","res","undefined","set","value","args","del"],"mappings":";;;;;;;AAAA;;AAMA;;AACA;;AACA;;;;;;AAEA,MAAMA,cAAc,GAAG,GAAvB;AACA,MAAMC,GAAG,GAAGC,MAAM,CAACC,gBAAnB;;AAOe,MAAMC,WAAN,CAAkB;AAI/B;AACA;AACA;AAGA;AACAC,EAAAA,WAAW,CAAC;AAAEC,IAAAA,IAAI,GAAI,IAAV;AAAeC,IAAAA,KAAK,GAAGC;AAAvB,MAAqD,EAAtD,EAA0D;AACnE,SAAKF,IAAL,GAAYA,IAAZ;AACA,SAAKC,KAAL,GAAaA,KAAb;AACA,SAAKE,SAAL,GAAiBC,cAAKC,IAAL,CAAUC,OAAO,CAACC,GAAR,EAAV,EAA0B,iBAAgBP,IAAK,EAA/C,CAAjB;AACD;;AAEDQ,EAAAA,IAAI,GAAgB;AAClBC,qBAAGC,aAAH,CAAiB,KAAKP,SAAtB;;AAEA,UAAMQ,OAA2B,GAAG,CAClC;AACEV,MAAAA,KAAK,EAAG,QADV;AAEEW,MAAAA,GAAG,EAAElB,cAFP;AAGEmB,MAAAA,GAAG,EAAElB;AAHP,KADkC,EAMlC;AACEM,MAAAA,KAAK,EAAE,KAAKA,KADd;AAEEY,MAAAA,GAAG,EAAElB,GAFP;AAGEmB,MAAAA,OAAO,EAAE;AACPV,QAAAA,IAAI,EAAE,KAAKD,SADJ;AAEPU,QAAAA,GAAG,EAAElB;AAFE;AAHX,KANkC,CAApC;AAgBA,UAAMoB,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYC,KAAK,IAAIC,sBAAQC,OAAR,CAAgBF,KAAhB,CAArB,CAAf;AAEA,SAAKA,KAAL,GAAaC,sBAAQE,YAAR,CAAqBL,MAArB,CAAb;AAEA,WAAO,IAAP;AACD;;AAEQ,QAAHM,GAAG,CAAcC,GAAd,EAA2C;AAClD,WAAO,IAAIC,OAAJ,CAAYC,OAAO,IAAI;AAC5B,UAAI,CAAC,KAAKP,KAAV,EAAiB;AACf,cAAM,IAAIQ,KAAJ,CACH,sEADG,CAAN;AAGD;;AACD,WAAKR,KAAL,CAAWI,GAAX,CAAkBC,GAAlB,EAAuB,CAACI,GAAD,EAAMC,GAAN,KAAc;AACnCH,QAAAA,OAAO,CAACE,GAAG,GAAGE,SAAH,GAAeD,GAAnB,CAAP;AACD,OAFD;AAGD,KATM,CAAP;AAUD;;AAEQ,QAAHE,GAAG,CACPP,GADO,EAEPQ,KAFO,EAGPC,IAAmB,GAAG;AAAElB,IAAAA,GAAG,EAAElB;AAAP,GAHf,EAIiB;AACxB,WAAO,IAAI4B,OAAJ,CAAYC,OAAO,IAAI;AAC5B,UAAI,CAAC,KAAKP,KAAV,EAAiB;AACf,cAAM,IAAIQ,KAAJ,CACH,sEADG,CAAN;AAGD;;AACD,WAAKR,KAAL,CAAWY,GAAX,CAAeP,GAAf,EAAoBQ,KAApB,EAA2BC,IAA3B,EAAiCL,GAAG,IAAI;AACtCF,QAAAA,OAAO,CAACE,GAAG,GAAGE,SAAH,GAAeE,KAAnB,CAAP;AACD,OAFD;AAGD,KATM,CAAP;AAUD;;AAEQ,QAAHE,GAAG,CAACV,GAAD,EAA6B;AACpC,QAAI,CAAC,KAAKL,KAAV,EAAiB;AACf,YAAM,IAAIQ,KAAJ,CACH,sEADG,CAAN;AAGD;;AAED,WAAO,KAAKR,KAAL,CAAWe,GAAX,CAAeV,GAAf,CAAP;AACD;;AAhF8B","sourcesContent":["import manager, {\n Store,\n StoreConfig,\n CachingConfig,\n MultiCache,\n} from \"cache-manager\"\nimport fs from \"fs-extra\"\nimport * as fsStore from \"../cache/cache-fs\"\nimport path from \"path\"\n\nconst MAX_CACHE_SIZE = 250\nconst TTL = Number.MAX_SAFE_INTEGER\n\ninterface ICacheProperties {\n name?: string\n store?: Store\n}\n\nexport default class GatsbyCache {\n public name: string\n public store: Store\n public directory: string\n // TODO: remove `.cache` in v4. This is compat mode - cache-manager cache implementation\n // expose internal cache that gives access to `.del` function that wasn't available in public\n // cache interface (gatsby-plugin-sharp use it to clear no longer needed data)\n public cache?: MultiCache\n\n // @ts-ignore - set & get types are missing from fsStore?\n constructor({ name = `db`, store = fsStore }: ICacheProperties = {}) {\n this.name = name\n this.store = store\n this.directory = path.join(process.cwd(), `.cache/caches/${name}`)\n }\n\n init(): GatsbyCache {\n fs.ensureDirSync(this.directory)\n\n const configs: Array<StoreConfig> = [\n {\n store: `memory`,\n max: MAX_CACHE_SIZE,\n ttl: TTL,\n },\n {\n store: this.store,\n ttl: TTL,\n options: {\n path: this.directory,\n ttl: TTL,\n },\n },\n ]\n\n const caches = configs.map(cache => manager.caching(cache))\n\n this.cache = manager.multiCaching(caches)\n\n return this\n }\n\n async get<T = unknown>(key): Promise<T | undefined> {\n return new Promise(resolve => {\n if (!this.cache) {\n throw new Error(\n `GatsbyCache wasn't initialised yet, please run the init method first`\n )\n }\n this.cache.get<T>(key, (err, res) => {\n resolve(err ? undefined : res)\n })\n })\n }\n\n async set<T>(\n key: string,\n value: T,\n args: CachingConfig = { ttl: TTL }\n ): Promise<T | undefined> {\n return new Promise(resolve => {\n if (!this.cache) {\n throw new Error(\n `GatsbyCache wasn't initialised yet, please run the init method first`\n )\n }\n this.cache.set(key, value, args, err => {\n resolve(err ? undefined : value)\n })\n })\n }\n\n async del(key: string): Promise<void> {\n if (!this.cache) {\n throw new Error(\n `GatsbyCache wasn't initialised yet, please run the init method first`\n )\n }\n\n return this.cache.del(key)\n }\n}\n"],"file":"cache.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" data-identity="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.10.
|
|
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" data-identity="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.10.1"/><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-b8776838c6ef57d401d3.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-7416363fd827487b167c.js"/><link as="script" rel="preload" href="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-8bd93b1279f7c801579e.js"/><link as="script" rel="preload" href="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-c73e9fe03e5830637703.js"/><link as="script" rel="preload" href="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-b0fb3ea518f8db46ab3c.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-index-tsx-455d21fec959a5b752ca.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-6a067988206c3d85ff5f.js"],"app":["/app-7416363fd827487b167c.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-455d21fec959a5b752ca.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-561790bad7dfbd777c34.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-79f5388e76bb004c461a.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-9e01f3d3434a2f348a2c.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"]};/*]]>*/</script><script src="/___admin/polyfill-6a067988206c3d85ff5f.js" nomodule=""></script><script src="/___admin/component---src-pages-index-tsx-455d21fec959a5b752ca.js" async=""></script><script src="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-b0fb3ea518f8db46ab3c.js" async=""></script><script src="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-c73e9fe03e5830637703.js" async=""></script><script src="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-8bd93b1279f7c801579e.js" async=""></script><script src="/___admin/app-7416363fd827487b167c.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-b8776838c6ef57d401d3.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" data-identity="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.10.
|
|
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" data-identity="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.10.1"/><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-b8776838c6ef57d401d3.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-7416363fd827487b167c.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-pages-tsx-561790bad7dfbd777c34.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-6a067988206c3d85ff5f.js"],"app":["/app-7416363fd827487b167c.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-455d21fec959a5b752ca.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-561790bad7dfbd777c34.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-79f5388e76bb004c461a.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-9e01f3d3434a2f348a2c.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"]};/*]]>*/</script><script src="/___admin/polyfill-6a067988206c3d85ff5f.js" nomodule=""></script><script src="/___admin/component---src-pages-pages-tsx-561790bad7dfbd777c34.js" async=""></script><script src="/___admin/app-7416363fd827487b167c.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-b8776838c6ef57d401d3.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" data-identity="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.10.
|
|
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" data-identity="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.10.1"/><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-b8776838c6ef57d401d3.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-7416363fd827487b167c.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-8bd93b1279f7c801579e.js"/><link as="script" rel="preload" href="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-c73e9fe03e5830637703.js"/><link as="script" rel="preload" href="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-ff699326697a9b0f1141.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-plugins-tsx-79f5388e76bb004c461a.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-6a067988206c3d85ff5f.js"],"app":["/app-7416363fd827487b167c.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-455d21fec959a5b752ca.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-561790bad7dfbd777c34.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-79f5388e76bb004c461a.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-9e01f3d3434a2f348a2c.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"]};/*]]>*/</script><script src="/___admin/polyfill-6a067988206c3d85ff5f.js" nomodule=""></script><script src="/___admin/component---src-pages-plugins-tsx-79f5388e76bb004c461a.js" async=""></script><script src="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-ff699326697a9b0f1141.js" async=""></script><script src="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-c73e9fe03e5830637703.js" async=""></script><script src="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-8bd93b1279f7c801579e.js" async=""></script><script src="/___admin/4c744e84-130bfe682cbb8896de3a.js" async=""></script><script src="/___admin/69bd6bf3-f374cd2e1ee0e375f045.js" async=""></script><script src="/___admin/app-7416363fd827487b167c.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-b8776838c6ef57d401d3.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" data-identity="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.10.
|
|
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" data-identity="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.10.1"/><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-b8776838c6ef57d401d3.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-7416363fd827487b167c.js"/><link as="script" rel="preload" href="/___admin/69bd6bf3-f374cd2e1ee0e375f045.js"/><link as="script" rel="preload" href="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-b0fb3ea518f8db46ab3c.js"/><link as="script" rel="preload" href="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-ff699326697a9b0f1141.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-recipe-js-9e01f3d3434a2f348a2c.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-6a067988206c3d85ff5f.js"],"app":["/app-7416363fd827487b167c.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-455d21fec959a5b752ca.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-561790bad7dfbd777c34.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-79f5388e76bb004c461a.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-9e01f3d3434a2f348a2c.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"]};/*]]>*/</script><script src="/___admin/polyfill-6a067988206c3d85ff5f.js" nomodule=""></script><script src="/___admin/component---src-pages-recipe-js-9e01f3d3434a2f348a2c.js" async=""></script><script src="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-ff699326697a9b0f1141.js" async=""></script><script src="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-b0fb3ea518f8db46ab3c.js" async=""></script><script src="/___admin/69bd6bf3-f374cd2e1ee0e375f045.js" async=""></script><script src="/___admin/app-7416363fd827487b167c.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-b8776838c6ef57d401d3.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" data-identity="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.10.
|
|
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" data-identity="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.10.1"/><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-b8776838c6ef57d401d3.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-7416363fd827487b167c.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-6a067988206c3d85ff5f.js"],"app":["/app-7416363fd827487b167c.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-455d21fec959a5b752ca.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-561790bad7dfbd777c34.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-79f5388e76bb004c461a.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-9e01f3d3434a2f348a2c.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js"]};/*]]>*/</script><script src="/___admin/polyfill-6a067988206c3d85ff5f.js" nomodule=""></script><script src="/___admin/component---src-pages-recipes-tsx-d2dfd910c146829d70ac.js" async=""></script><script src="/___admin/app-7416363fd827487b167c.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-b8776838c6ef57d401d3.js" async=""></script></body></html>
|
package/index.d.ts
CHANGED
|
@@ -1279,6 +1279,15 @@ export interface GatsbyCache {
|
|
|
1279
1279
|
* await cache.set(`unique-key`, value)
|
|
1280
1280
|
*/
|
|
1281
1281
|
set(key: string, value: any): Promise<any>
|
|
1282
|
+
|
|
1283
|
+
/**
|
|
1284
|
+
* Deletes cached value
|
|
1285
|
+
* @param {string} key Cache key
|
|
1286
|
+
* @returns {Promise<void>} Promise resolving once key is deleted from cache
|
|
1287
|
+
* @example
|
|
1288
|
+
* await cache.del(`unique-key`)
|
|
1289
|
+
*/
|
|
1290
|
+
del(key: string): Promise<void>
|
|
1282
1291
|
}
|
|
1283
1292
|
|
|
1284
1293
|
export interface Tracing {
|
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.10.
|
|
4
|
+
"version": "3.10.1",
|
|
5
5
|
"author": "Kyle Mathews <mathews.kyle@gmail.com>",
|
|
6
6
|
"bin": {
|
|
7
7
|
"gatsby": "./cli.js"
|
|
@@ -259,5 +259,5 @@
|
|
|
259
259
|
"yargs": {
|
|
260
260
|
"boolean-negation": false
|
|
261
261
|
},
|
|
262
|
-
"gitHead": "
|
|
262
|
+
"gitHead": "609bef1ef1a01f9f03f99423e24b0d5f115a4452"
|
|
263
263
|
}
|