gatsby 3.14.3 → 3.14.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/datastore/lmdb/lmdb-datastore.js +26 -6
- package/dist/datastore/lmdb/lmdb-datastore.js.map +1 -1
- package/dist/datastore/lmdb/updates/nodes.js.map +1 -1
- package/gatsby-admin-public/index.html +1 -1
- package/gatsby-admin-public/pages/index.html +1 -1
- package/gatsby-admin-public/plugins/index.html +1 -1
- package/gatsby-admin-public/recipe/index.html +1 -1
- package/gatsby-admin-public/recipes/index.html +1 -1
- package/package.json +2 -2
|
@@ -30,6 +30,7 @@ const lmdbDatastore = {
|
|
|
30
30
|
getNodes,
|
|
31
31
|
getNodesByType
|
|
32
32
|
};
|
|
33
|
+
const preSyncDeletedNodeIdsCache = new Set();
|
|
33
34
|
|
|
34
35
|
function getDefaultDbPath() {
|
|
35
36
|
var _process$env$FORCE_TE;
|
|
@@ -135,7 +136,10 @@ function iterateNodesByType(type) {
|
|
|
135
136
|
}
|
|
136
137
|
|
|
137
138
|
function getNode(id) {
|
|
138
|
-
if (!id)
|
|
139
|
+
if (!id || preSyncDeletedNodeIdsCache.has(id)) {
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
|
|
139
143
|
const {
|
|
140
144
|
nodes
|
|
141
145
|
} = getDatabases();
|
|
@@ -148,9 +152,8 @@ function getTypes() {
|
|
|
148
152
|
|
|
149
153
|
function countNodes(typeName) {
|
|
150
154
|
if (!typeName) {
|
|
151
|
-
const stats = getDatabases().nodes.getStats();
|
|
152
|
-
|
|
153
|
-
return Number(stats.entryCount || 0); // FIXME: add -1 when restoring shared structures key
|
|
155
|
+
const stats = getDatabases().nodes.getStats();
|
|
156
|
+
return Math.max(Number(stats.entryCount) - preSyncDeletedNodeIdsCache.size, 0); // FIXME: add -1 when restoring shared structures key
|
|
154
157
|
}
|
|
155
158
|
|
|
156
159
|
const {
|
|
@@ -196,12 +199,29 @@ function updateDataStore(action) {
|
|
|
196
199
|
}
|
|
197
200
|
|
|
198
201
|
case `CREATE_NODE`:
|
|
202
|
+
case `DELETE_NODE`:
|
|
199
203
|
case `ADD_FIELD_TO_NODE`:
|
|
200
204
|
case `ADD_CHILD_NODE_TO_PARENT_NODE`:
|
|
201
|
-
case `DELETE_NODE`:
|
|
202
205
|
{
|
|
206
|
+
var _action$payload;
|
|
207
|
+
|
|
203
208
|
const dbs = getDatabases();
|
|
204
|
-
|
|
209
|
+
const operationPromise = Promise.all([(0, _nodes.updateNodes)(dbs.nodes, action), (0, _nodesByType.updateNodesByType)(dbs.nodesByType, action)]);
|
|
210
|
+
lastOperationPromise = operationPromise; // if create is used in the same transaction as delete we should remove it from cache
|
|
211
|
+
|
|
212
|
+
if (action.type === `CREATE_NODE`) {
|
|
213
|
+
preSyncDeletedNodeIdsCache.delete(action.payload.id);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
if (action.type === `DELETE_NODE` && (_action$payload = action.payload) !== null && _action$payload !== void 0 && _action$payload.id) {
|
|
217
|
+
preSyncDeletedNodeIdsCache.add(action.payload.id);
|
|
218
|
+
operationPromise.then(() => {
|
|
219
|
+
// only clear if no other operations have been done in the meantime
|
|
220
|
+
if (lastOperationPromise === operationPromise) {
|
|
221
|
+
preSyncDeletedNodeIdsCache.clear();
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
205
225
|
}
|
|
206
226
|
}
|
|
207
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/datastore/lmdb/lmdb-datastore.ts"],"names":["lmdbDatastore","getNode","getTypes","countNodes","iterateNodes","iterateNodesByType","updateDataStore","ready","runQuery","getNodes","getNodesByType","getDefaultDbPath","dbFileName","process","env","NODE_ENV","FORCE_TEST_DATABASE_ID","JEST_WORKER_ID","cwd","fullDbPath","rootDb","databases","getRootDb","Error","name","path","compression","getDatabases","nodes","openDB","cache","nodesByType","dupSort","metadata","useVersions","indexes","result","Array","from","type","nodesDb","GatsbyIterable","getKeys","snapshot","map","nodeId","undefined","filter","Boolean","getValues","id","get","asArray","typeName","stats","getStats","Number","entryCount","getValuesCount","args","GATSBY_EXPERIMENTAL_LMDB_INDEXES","datastore","Promise","resolve","lastOperationPromise","action","dbs","transactionSync","clear","clearIndexes","all","setupLmdbStore","dbPath","state","Map","emitter","on"],"mappings":"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","sourcesContent":["import { RootDatabase, open } from \"lmdb-store\"\n// import { performance } from \"perf_hooks\"\nimport { ActionsUnion, IGatsbyNode } from \"../../redux/types\"\nimport { updateNodes } from \"./updates/nodes\"\nimport { updateNodesByType } from \"./updates/nodes-by-type\"\nimport { IDataStore, ILmdbDatabases, IQueryResult } from \"../types\"\nimport { emitter, replaceReducer } from \"../../redux\"\nimport { GatsbyIterable } from \"../common/iterable\"\nimport { doRunQuery } from \"./query/run-query\"\nimport {\n IRunFilterArg,\n runFastFiltersAndSort,\n} from \"../in-memory/run-fast-filters\"\n\nconst lmdbDatastore = {\n getNode,\n getTypes,\n countNodes,\n iterateNodes,\n iterateNodesByType,\n updateDataStore,\n ready,\n runQuery,\n\n // deprecated:\n getNodes,\n getNodesByType,\n}\n\nfunction getDefaultDbPath(): string {\n const dbFileName =\n process.env.NODE_ENV === `test`\n ? `test-datastore-${\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 : `datastore`\n\n return process.cwd() + `/.cache/data/` + dbFileName\n}\n\nlet fullDbPath\nlet rootDb\nlet databases\n\nfunction getRootDb(): RootDatabase {\n if (!rootDb) {\n if (!fullDbPath) {\n throw new Error(`LMDB path is not set!`)\n }\n rootDb = open({\n name: `root`,\n path: fullDbPath,\n compression: true,\n })\n }\n return rootDb\n}\n\nfunction getDatabases(): ILmdbDatabases {\n if (!databases) {\n const rootDb = getRootDb()\n databases = {\n nodes: rootDb.openDB({\n name: `nodes`,\n // FIXME: sharedStructuresKey breaks tests - probably need some cleanup for it on DELETE_CACHE\n // sharedStructuresKey: Symbol.for(`structures`),\n // @ts-ignore\n cache: true,\n }),\n nodesByType: rootDb.openDB({\n name: `nodesByType`,\n dupSort: true,\n }),\n metadata: rootDb.openDB({\n name: `metadata`,\n useVersions: true,\n }),\n indexes: rootDb.openDB({\n name: `indexes`,\n // TODO: use dupSort when this is ready: https://github.com/DoctorEvidence/lmdb-store/issues/66\n // dupSort: true\n }),\n }\n }\n return databases\n}\n\n/**\n * @deprecated\n */\nfunction getNodes(): Array<IGatsbyNode> {\n // const start = performance.now()\n const result = Array.from<IGatsbyNode>(iterateNodes())\n // const timeTotal = performance.now() - start\n // console.warn(\n // `getNodes() is deprecated, use iterateNodes() instead; ` +\n // `array length: ${result.length}; time(ms): ${timeTotal}`\n // )\n return result ?? []\n}\n\n/**\n * @deprecated\n */\nfunction getNodesByType(type: string): Array<IGatsbyNode> {\n // const start = performance.now()\n const result = Array.from<IGatsbyNode>(iterateNodesByType(type))\n // const timeTotal = performance.now() - start\n // console.warn(\n // `getNodesByType() is deprecated, use iterateNodesByType() instead; ` +\n // `array length: ${result.length}; time(ms): ${timeTotal}`\n // )\n return result ?? []\n}\n\nfunction iterateNodes(): GatsbyIterable<IGatsbyNode> {\n // Additionally fetching items by id to leverage lmdb-store cache\n const nodesDb = getDatabases().nodes\n return new GatsbyIterable(\n nodesDb\n .getKeys({ snapshot: false })\n .map(\n nodeId => (typeof nodeId === `string` ? getNode(nodeId) : undefined)!\n )\n .filter(Boolean)\n )\n}\n\nfunction iterateNodesByType(type: string): GatsbyIterable<IGatsbyNode> {\n const nodesByType = getDatabases().nodesByType\n return new GatsbyIterable(\n nodesByType\n .getValues(type)\n .map(nodeId => getNode(nodeId)!)\n .filter(Boolean)\n )\n}\n\nfunction getNode(id: string): IGatsbyNode | undefined {\n if (!id) return undefined\n const { nodes } = getDatabases()\n return nodes.get(id)\n}\n\nfunction getTypes(): Array<string> {\n return getDatabases().nodesByType.getKeys({}).asArray\n}\n\nfunction countNodes(typeName?: string): number {\n if (!typeName) {\n const stats = getDatabases().nodes.getStats()\n // @ts-ignore\n return Number(stats.entryCount || 0) // FIXME: add -1 when restoring shared structures key\n }\n\n const { nodesByType } = getDatabases()\n return nodesByType.getValuesCount(typeName)\n}\n\nasync function runQuery(args: IRunFilterArg): Promise<IQueryResult> {\n if (process.env.GATSBY_EXPERIMENTAL_LMDB_INDEXES) {\n return await doRunQuery({\n datastore: lmdbDatastore,\n databases: getDatabases(),\n ...args,\n })\n }\n return Promise.resolve(runFastFiltersAndSort(args))\n}\n\nlet lastOperationPromise: Promise<any> = Promise.resolve()\n\nfunction updateDataStore(action: ActionsUnion): void {\n switch (action.type) {\n case `DELETE_CACHE`: {\n const dbs = getDatabases()\n // Force sync commit\n dbs.nodes.transactionSync(() => {\n dbs.nodes.clear()\n dbs.nodesByType.clear()\n dbs.metadata.clear()\n dbs.indexes.clear()\n })\n break\n }\n case `SET_PROGRAM`: {\n // TODO: remove this when we have support for incremental indexes in lmdb\n clearIndexes()\n break\n }\n case `CREATE_NODE`:\n case `ADD_FIELD_TO_NODE`:\n case `ADD_CHILD_NODE_TO_PARENT_NODE`:\n case `DELETE_NODE`: {\n const dbs = getDatabases()\n lastOperationPromise = Promise.all([\n updateNodes(dbs.nodes, action),\n updateNodesByType(dbs.nodesByType, action),\n ])\n }\n }\n}\n\nfunction clearIndexes(): void {\n const dbs = getDatabases()\n dbs.nodes.transactionSync(() => {\n dbs.metadata.clear()\n dbs.indexes.clear()\n })\n}\n\n/**\n * Resolves when all the data is synced\n */\nasync function ready(): Promise<void> {\n await lastOperationPromise\n}\n\nexport function setupLmdbStore({\n dbPath = getDefaultDbPath(),\n}: { dbPath?: string } = {}): IDataStore {\n fullDbPath = dbPath\n\n replaceReducer({\n nodes: (state = new Map(), action) =>\n action.type === `DELETE_CACHE` ? new Map() : state,\n nodesByType: (state = new Map(), action) =>\n action.type === `DELETE_CACHE` ? new Map() : state,\n })\n emitter.on(`*`, action => {\n if (action) {\n updateDataStore(action)\n }\n })\n // TODO: remove this when we have support for incremental indexes in lmdb\n clearIndexes()\n return lmdbDatastore\n}\n"],"file":"lmdb-datastore.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/datastore/lmdb/lmdb-datastore.ts"],"names":["lmdbDatastore","getNode","getTypes","countNodes","iterateNodes","iterateNodesByType","updateDataStore","ready","runQuery","getNodes","getNodesByType","preSyncDeletedNodeIdsCache","Set","getDefaultDbPath","dbFileName","process","env","NODE_ENV","FORCE_TEST_DATABASE_ID","JEST_WORKER_ID","cwd","fullDbPath","rootDb","databases","getRootDb","Error","name","path","compression","getDatabases","nodes","openDB","cache","nodesByType","dupSort","metadata","useVersions","indexes","result","Array","from","type","nodesDb","GatsbyIterable","getKeys","snapshot","map","nodeId","undefined","filter","Boolean","getValues","id","has","get","asArray","typeName","stats","getStats","Math","max","Number","entryCount","size","getValuesCount","args","GATSBY_EXPERIMENTAL_LMDB_INDEXES","datastore","Promise","resolve","lastOperationPromise","action","dbs","transactionSync","clear","clearIndexes","operationPromise","all","delete","payload","add","then","setupLmdbStore","dbPath","state","Map","emitter","on"],"mappings":"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","sourcesContent":["import { RootDatabase, open, ArrayLikeIterable } from \"lmdb-store\"\n// import { performance } from \"perf_hooks\"\nimport { ActionsUnion, IGatsbyNode } from \"../../redux/types\"\nimport { updateNodes } from \"./updates/nodes\"\nimport { updateNodesByType } from \"./updates/nodes-by-type\"\nimport { IDataStore, ILmdbDatabases, IQueryResult } from \"../types\"\nimport { emitter, replaceReducer } from \"../../redux\"\nimport { GatsbyIterable } from \"../common/iterable\"\nimport { doRunQuery } from \"./query/run-query\"\nimport {\n IRunFilterArg,\n runFastFiltersAndSort,\n} from \"../in-memory/run-fast-filters\"\n\nconst lmdbDatastore = {\n getNode,\n getTypes,\n countNodes,\n iterateNodes,\n iterateNodesByType,\n updateDataStore,\n ready,\n runQuery,\n\n // deprecated:\n getNodes,\n getNodesByType,\n}\n\nconst preSyncDeletedNodeIdsCache = new Set()\n\nfunction getDefaultDbPath(): string {\n const dbFileName =\n process.env.NODE_ENV === `test`\n ? `test-datastore-${\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 : `datastore`\n\n return process.cwd() + `/.cache/data/` + dbFileName\n}\n\nlet fullDbPath\nlet rootDb\nlet databases\n\nfunction getRootDb(): RootDatabase {\n if (!rootDb) {\n if (!fullDbPath) {\n throw new Error(`LMDB path is not set!`)\n }\n rootDb = open({\n name: `root`,\n path: fullDbPath,\n compression: true,\n })\n }\n return rootDb\n}\n\nfunction getDatabases(): ILmdbDatabases {\n if (!databases) {\n const rootDb = getRootDb()\n databases = {\n nodes: rootDb.openDB({\n name: `nodes`,\n // FIXME: sharedStructuresKey breaks tests - probably need some cleanup for it on DELETE_CACHE\n // sharedStructuresKey: Symbol.for(`structures`),\n // @ts-ignore\n cache: true,\n }),\n nodesByType: rootDb.openDB({\n name: `nodesByType`,\n dupSort: true,\n }),\n metadata: rootDb.openDB({\n name: `metadata`,\n useVersions: true,\n }),\n indexes: rootDb.openDB({\n name: `indexes`,\n // TODO: use dupSort when this is ready: https://github.com/DoctorEvidence/lmdb-store/issues/66\n // dupSort: true\n }),\n }\n }\n return databases\n}\n\n/**\n * @deprecated\n */\nfunction getNodes(): Array<IGatsbyNode> {\n // const start = performance.now()\n const result = Array.from<IGatsbyNode>(iterateNodes())\n // const timeTotal = performance.now() - start\n // console.warn(\n // `getNodes() is deprecated, use iterateNodes() instead; ` +\n // `array length: ${result.length}; time(ms): ${timeTotal}`\n // )\n return result ?? []\n}\n\n/**\n * @deprecated\n */\nfunction getNodesByType(type: string): Array<IGatsbyNode> {\n // const start = performance.now()\n const result = Array.from<IGatsbyNode>(iterateNodesByType(type))\n // const timeTotal = performance.now() - start\n // console.warn(\n // `getNodesByType() is deprecated, use iterateNodesByType() instead; ` +\n // `array length: ${result.length}; time(ms): ${timeTotal}`\n // )\n return result ?? []\n}\n\nfunction iterateNodes(): GatsbyIterable<IGatsbyNode> {\n // Additionally fetching items by id to leverage lmdb-store cache\n const nodesDb = getDatabases().nodes\n return new GatsbyIterable(\n nodesDb\n .getKeys({ snapshot: false })\n .map(nodeId => (typeof nodeId === `string` ? getNode(nodeId) : undefined))\n .filter(Boolean) as ArrayLikeIterable<IGatsbyNode>\n )\n}\n\nfunction iterateNodesByType(type: string): GatsbyIterable<IGatsbyNode> {\n const nodesByType = getDatabases().nodesByType\n return new GatsbyIterable(\n nodesByType\n .getValues(type)\n .map(nodeId => getNode(nodeId))\n .filter(Boolean) as ArrayLikeIterable<IGatsbyNode>\n )\n}\n\nfunction getNode(id: string): IGatsbyNode | undefined {\n if (!id || preSyncDeletedNodeIdsCache.has(id)) {\n return undefined\n }\n\n const { nodes } = getDatabases()\n return nodes.get(id)\n}\n\nfunction getTypes(): Array<string> {\n return getDatabases().nodesByType.getKeys({}).asArray\n}\n\nfunction countNodes(typeName?: string): number {\n if (!typeName) {\n const stats = getDatabases().nodes.getStats() as { entryCount: number }\n return Math.max(\n Number(stats.entryCount) - preSyncDeletedNodeIdsCache.size,\n 0\n ) // FIXME: add -1 when restoring shared structures key\n }\n\n const { nodesByType } = getDatabases()\n return nodesByType.getValuesCount(typeName)\n}\n\nasync function runQuery(args: IRunFilterArg): Promise<IQueryResult> {\n if (process.env.GATSBY_EXPERIMENTAL_LMDB_INDEXES) {\n return await doRunQuery({\n datastore: lmdbDatastore,\n databases: getDatabases(),\n ...args,\n })\n }\n return Promise.resolve(runFastFiltersAndSort(args))\n}\n\nlet lastOperationPromise: Promise<any> = Promise.resolve()\n\nfunction updateDataStore(action: ActionsUnion): void {\n switch (action.type) {\n case `DELETE_CACHE`: {\n const dbs = getDatabases()\n // Force sync commit\n dbs.nodes.transactionSync(() => {\n dbs.nodes.clear()\n dbs.nodesByType.clear()\n dbs.metadata.clear()\n dbs.indexes.clear()\n })\n break\n }\n case `SET_PROGRAM`: {\n // TODO: remove this when we have support for incremental indexes in lmdb\n clearIndexes()\n break\n }\n case `CREATE_NODE`:\n case `DELETE_NODE`:\n case `ADD_FIELD_TO_NODE`:\n case `ADD_CHILD_NODE_TO_PARENT_NODE`: {\n const dbs = getDatabases()\n const operationPromise = Promise.all([\n updateNodes(dbs.nodes, action),\n updateNodesByType(dbs.nodesByType, action),\n ])\n lastOperationPromise = operationPromise\n\n // if create is used in the same transaction as delete we should remove it from cache\n if (action.type === `CREATE_NODE`) {\n preSyncDeletedNodeIdsCache.delete(action.payload.id)\n }\n\n if (action.type === `DELETE_NODE` && action.payload?.id) {\n preSyncDeletedNodeIdsCache.add(action.payload.id)\n operationPromise.then(() => {\n // only clear if no other operations have been done in the meantime\n if (lastOperationPromise === operationPromise) {\n preSyncDeletedNodeIdsCache.clear()\n }\n })\n }\n }\n }\n}\n\nfunction clearIndexes(): void {\n const dbs = getDatabases()\n dbs.nodes.transactionSync(() => {\n dbs.metadata.clear()\n dbs.indexes.clear()\n })\n}\n\n/**\n * Resolves when all the data is synced\n */\nasync function ready(): Promise<void> {\n await lastOperationPromise\n}\n\nexport function setupLmdbStore({\n dbPath = getDefaultDbPath(),\n}: { dbPath?: string } = {}): IDataStore {\n fullDbPath = dbPath\n\n replaceReducer({\n nodes: (state = new Map(), action) =>\n action.type === `DELETE_CACHE` ? new Map() : state,\n nodesByType: (state = new Map(), action) =>\n action.type === `DELETE_CACHE` ? new Map() : state,\n })\n emitter.on(`*`, action => {\n if (action) {\n updateDataStore(action)\n }\n })\n // TODO: remove this when we have support for incremental indexes in lmdb\n clearIndexes()\n return lmdbDatastore\n}\n"],"file":"lmdb-datastore.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/datastore/lmdb/updates/nodes.ts"],"names":["updateNodes","nodesDb","action","type","put","payload","id","remove"],"mappings":";;;;;AAKO,SAASA,WAAT,CACLC,OADK,EAELC,MAFK,EAGuB;AAC5B,UAAQA,MAAM,CAACC,IAAf;AACE,SAAM,aAAN;AACA,SAAM,mBAAN;AACA,SAAM,+BAAN;AAAsC;AACpC,eAAOF,OAAO,CAACG,GAAR,CAAYF,MAAM,CAACG,OAAP,CAAeC,EAA3B,EAA+BJ,MAAM,CAACG,OAAtC,CAAP;AACD;;AACD,SAAM,aAAN;AAAoB;AAClB,YAAIH,MAAM,CAACG,OAAX,EAAoB;AAClB,iBAAOJ,OAAO,CAACM,MAAR,CAAeL,MAAM,CAACG,OAAP,CAAeC,EAA9B,CAAP;AACD;;
|
|
1
|
+
{"version":3,"sources":["../../../../src/datastore/lmdb/updates/nodes.ts"],"names":["updateNodes","nodesDb","action","type","put","payload","id","remove"],"mappings":";;;;;AAKO,SAASA,WAAT,CACLC,OADK,EAELC,MAFK,EAGuB;AAC5B,UAAQA,MAAM,CAACC,IAAf;AACE,SAAM,aAAN;AACA,SAAM,mBAAN;AACA,SAAM,+BAAN;AAAsC;AACpC,eAAOF,OAAO,CAACG,GAAR,CAAYF,MAAM,CAACG,OAAP,CAAeC,EAA3B,EAA+BJ,MAAM,CAACG,OAAtC,CAAP;AACD;;AACD,SAAM,aAAN;AAAoB;AAClB,YAAIH,MAAM,CAACG,OAAX,EAAoB;AAClB,iBAAOJ,OAAO,CAACM,MAAR,CAAeL,MAAM,CAACG,OAAP,CAAeC,EAA9B,CAAP;AACD;;AAED,eAAO,KAAP;AACD;AAZH;;AAcA,SAAO,KAAP;AACD","sourcesContent":["import { ActionsUnion, IGatsbyNode } from \"../../../redux/types\"\nimport { Database } from \"lmdb-store\"\n\ntype NodeId = string\n\nexport function updateNodes(\n nodesDb: Database<IGatsbyNode, NodeId>,\n action: ActionsUnion\n): Promise<boolean> | boolean {\n switch (action.type) {\n case `CREATE_NODE`:\n case `ADD_FIELD_TO_NODE`:\n case `ADD_CHILD_NODE_TO_PARENT_NODE`: {\n return nodesDb.put(action.payload.id, action.payload)\n }\n case `DELETE_NODE`: {\n if (action.payload) {\n return nodesDb.remove(action.payload.id)\n }\n\n return false\n }\n }\n return false\n}\n"],"file":"nodes.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.14.
|
|
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.14.4"/><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-2478a6aa71d7fe140451.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-552da616a99bc886bb71.js"/><link as="script" rel="preload" href="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-fdf65cf14f60e302e2d6.js"/><link as="script" rel="preload" href="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-8db0534ff52e363cdb1d.js"/><link as="script" rel="preload" href="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-e2e8402c4d45f5fee48d.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-index-tsx-ae7aa7efde37ccf72193.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-85cdcdc6d8017a8c93f4.js"],"app":["/app-552da616a99bc886bb71.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-ae7aa7efde37ccf72193.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-b4a6c93567ec792e0974.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-c2eb4db8168edfc87864.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-c33ae0ed3a512fe2bdb8.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d347016863bb8d7ed197.js"]};/*]]>*/</script><script src="/___admin/polyfill-85cdcdc6d8017a8c93f4.js" nomodule=""></script><script src="/___admin/component---src-pages-index-tsx-ae7aa7efde37ccf72193.js" async=""></script><script src="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-e2e8402c4d45f5fee48d.js" async=""></script><script src="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-8db0534ff52e363cdb1d.js" async=""></script><script src="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-fdf65cf14f60e302e2d6.js" async=""></script><script src="/___admin/app-552da616a99bc886bb71.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-2478a6aa71d7fe140451.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.14.
|
|
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.14.4"/><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-2478a6aa71d7fe140451.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-552da616a99bc886bb71.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-pages-tsx-b4a6c93567ec792e0974.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-85cdcdc6d8017a8c93f4.js"],"app":["/app-552da616a99bc886bb71.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-ae7aa7efde37ccf72193.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-b4a6c93567ec792e0974.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-c2eb4db8168edfc87864.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-c33ae0ed3a512fe2bdb8.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d347016863bb8d7ed197.js"]};/*]]>*/</script><script src="/___admin/polyfill-85cdcdc6d8017a8c93f4.js" nomodule=""></script><script src="/___admin/component---src-pages-pages-tsx-b4a6c93567ec792e0974.js" async=""></script><script src="/___admin/app-552da616a99bc886bb71.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-2478a6aa71d7fe140451.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.14.
|
|
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.14.4"/><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-2478a6aa71d7fe140451.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-552da616a99bc886bb71.js"/><link as="script" rel="preload" href="/___admin/69bd6bf3-684a0eb07103ce2347bb.js"/><link as="script" rel="preload" href="/___admin/4c744e84-68fce5225c02bf5771b5.js"/><link as="script" rel="preload" href="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-fdf65cf14f60e302e2d6.js"/><link as="script" rel="preload" href="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-8db0534ff52e363cdb1d.js"/><link as="script" rel="preload" href="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-b2fc60100cf82df7f003.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-plugins-tsx-c2eb4db8168edfc87864.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-85cdcdc6d8017a8c93f4.js"],"app":["/app-552da616a99bc886bb71.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-ae7aa7efde37ccf72193.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-b4a6c93567ec792e0974.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-c2eb4db8168edfc87864.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-c33ae0ed3a512fe2bdb8.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d347016863bb8d7ed197.js"]};/*]]>*/</script><script src="/___admin/polyfill-85cdcdc6d8017a8c93f4.js" nomodule=""></script><script src="/___admin/component---src-pages-plugins-tsx-c2eb4db8168edfc87864.js" async=""></script><script src="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-b2fc60100cf82df7f003.js" async=""></script><script src="/___admin/c432bec7e9afb3443fd639df9e5f119e13575cf7-8db0534ff52e363cdb1d.js" async=""></script><script src="/___admin/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-fdf65cf14f60e302e2d6.js" async=""></script><script src="/___admin/4c744e84-68fce5225c02bf5771b5.js" async=""></script><script src="/___admin/69bd6bf3-684a0eb07103ce2347bb.js" async=""></script><script src="/___admin/app-552da616a99bc886bb71.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-2478a6aa71d7fe140451.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.14.
|
|
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.14.4"/><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-2478a6aa71d7fe140451.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-552da616a99bc886bb71.js"/><link as="script" rel="preload" href="/___admin/69bd6bf3-684a0eb07103ce2347bb.js"/><link as="script" rel="preload" href="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-e2e8402c4d45f5fee48d.js"/><link as="script" rel="preload" href="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-b2fc60100cf82df7f003.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-recipe-js-c33ae0ed3a512fe2bdb8.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-85cdcdc6d8017a8c93f4.js"],"app":["/app-552da616a99bc886bb71.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-ae7aa7efde37ccf72193.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-b4a6c93567ec792e0974.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-c2eb4db8168edfc87864.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-c33ae0ed3a512fe2bdb8.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d347016863bb8d7ed197.js"]};/*]]>*/</script><script src="/___admin/polyfill-85cdcdc6d8017a8c93f4.js" nomodule=""></script><script src="/___admin/component---src-pages-recipe-js-c33ae0ed3a512fe2bdb8.js" async=""></script><script src="/___admin/784b2cee55c07b638f20445dec340adf9f1888a3-b2fc60100cf82df7f003.js" async=""></script><script src="/___admin/854a7ef1f34af0aefbdfdd9304a0c00251662775-e2e8402c4d45f5fee48d.js" async=""></script><script src="/___admin/69bd6bf3-684a0eb07103ce2347bb.js" async=""></script><script src="/___admin/app-552da616a99bc886bb71.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-2478a6aa71d7fe140451.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.14.
|
|
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.14.4"/><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-2478a6aa71d7fe140451.js"/><link as="script" rel="preload" href="/___admin/framework-b24cde22b86a9930317b.js"/><link as="script" rel="preload" href="/___admin/app-552da616a99bc886bb71.js"/><link as="script" rel="preload" href="/___admin/component---src-pages-recipes-tsx-d347016863bb8d7ed197.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-85cdcdc6d8017a8c93f4.js"],"app":["/app-552da616a99bc886bb71.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-ae7aa7efde37ccf72193.js"],"component---src-pages-pages-tsx":["/component---src-pages-pages-tsx-b4a6c93567ec792e0974.js"],"component---src-pages-plugins-tsx":["/component---src-pages-plugins-tsx-c2eb4db8168edfc87864.js"],"component---src-pages-recipe-js":["/component---src-pages-recipe-js-c33ae0ed3a512fe2bdb8.js"],"component---src-pages-recipes-tsx":["/component---src-pages-recipes-tsx-d347016863bb8d7ed197.js"]};/*]]>*/</script><script src="/___admin/polyfill-85cdcdc6d8017a8c93f4.js" nomodule=""></script><script src="/___admin/component---src-pages-recipes-tsx-d347016863bb8d7ed197.js" async=""></script><script src="/___admin/app-552da616a99bc886bb71.js" async=""></script><script src="/___admin/framework-b24cde22b86a9930317b.js" async=""></script><script src="/___admin/webpack-runtime-2478a6aa71d7fe140451.js" async=""></script></body></html>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gatsby",
|
|
3
3
|
"description": "Blazing fast modern site generator for React",
|
|
4
|
-
"version": "3.14.
|
|
4
|
+
"version": "3.14.4",
|
|
5
5
|
"author": "Kyle Mathews <mathews.kyle@gmail.com>",
|
|
6
6
|
"bin": {
|
|
7
7
|
"gatsby": "./cli.js"
|
|
@@ -256,5 +256,5 @@
|
|
|
256
256
|
"yargs": {
|
|
257
257
|
"boolean-negation": false
|
|
258
258
|
},
|
|
259
|
-
"gitHead": "
|
|
259
|
+
"gitHead": "fdf616c0a1695719ac9880d8fc5d0c37dc2290c2"
|
|
260
260
|
}
|