gatsby 5.13.6 → 5.13.7

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.
@@ -18,12 +18,22 @@ const cdnDatastorePath = `%CDN_DATASTORE_PATH%`;
18
18
  // as in some cases one reported by adapter might not be correct
19
19
  const cdnDatastoreOrigin = `%CDN_DATASTORE_ORIGIN%`;
20
20
  const PATH_PREFIX = `%PATH_PREFIX%`;
21
+
22
+ // this file should be in `.cache/page-ssr-module/lambda.js`
23
+ // so getting `.cache` location should be one directory above
24
+ // directory of this file
25
+ const cacheDir = path.join(__dirname, `..`);
26
+
27
+ // gatsby relies on process.cwd() a lot, so this ensures that CWD is set correctly
28
+ // in relation to bundled files for lambda. In some scenarios those files are not in
29
+ // expected relative locations to CWD, so here we are forcing setting CWD so the
30
+ // relative paths are correct
31
+ process.chdir(path.join(cacheDir, `..`));
21
32
  function setupFsWrapper() {
22
33
  // setup global._fsWrapper
23
34
  try {
24
35
  fs.accessSync(__filename, fs.constants.W_OK);
25
- // TODO: this seems funky - not sure if this is correct way to handle this, so just marking TODO to revisit this
26
- return path.join(__dirname, `..`, `data`, `datastore`);
36
+ return path.join(cacheDir, `data`, `datastore`);
27
37
  } catch (e) {
28
38
  // we are in a read-only filesystem, so we need to use a temp dir
29
39
 
@@ -31,9 +41,6 @@ function setupFsWrapper() {
31
41
  const TEMP_CACHE_DIR = path.join(TEMP_DIR, `.cache`);
32
42
  global.__GATSBY.root = TEMP_DIR;
33
43
 
34
- // TODO: don't hardcode this
35
- const cacheDir = `${process.cwd()}/.cache`;
36
-
37
44
  // we need to rewrite fs
38
45
  const rewrites = [[path.join(cacheDir, `caches`), path.join(TEMP_CACHE_DIR, `caches`)], [path.join(cacheDir, `caches-lmdb`), path.join(TEMP_CACHE_DIR, `caches-lmdb`)], [path.join(cacheDir, `data`), path.join(TEMP_CACHE_DIR, `data`)]];
39
46
  console.log(`Preparing Gatsby filesystem`, {
@@ -1 +1 @@
1
- {"version":3,"file":"lambda.js","names":["cdnDatastorePath","cdnDatastoreOrigin","PATH_PREFIX","setupFsWrapper","fs","accessSync","__filename","constants","W_OK","path","join","__dirname","e","TEMP_DIR","tmpdir","TEMP_CACHE_DIR","global","__GATSBY","root","cacheDir","process","cwd","rewrites","console","log","from","to","mapPathUsingRewrites","fsPath","filename","resolve","String","indexOf","rootRegex","isRoot","match","baseRegex","replace","regex","RegExp","sep","_match","_p1","p2","applyRename","fsToRewrite","lfs","method","original","args","apply","linkRewritableMethods","push","createLinkedFS","linkedFS","link","key","Object","hasOwnProperty","call","native","promises","originalWritesStream","WriteStream","LinkedWriteStream","flags","prototype","create","originalReadStream","ReadStream","LinkedReadStream","dbPath","_fsWrapper","dir","env","NETLIFY_LOCAL","existsSync","copySync","buildId","imageCDNUrlGeneratorModulePath","require","fileCDNUrlGeneratorModulePath","GraphQLEngine","getData","renderPageData","renderHTML","findEnginePageByPath","streamPipeline","promisify","pipeline","get","url","callback","URL","protocol","httpsGet","httpGet","shouldDownloadDatastoreFromCDN","downloadDatastoreFromCDN","origin","cdnDatastore","downloadPath","ensureDir","Promise","reject","req","response","statusCode","engineError","Error","statusMessage","downloadError","fileStream","createWriteStream","then","catch","error","on","initializeGraphqlEngine","graphqlEngine","ready","memoizedGraphqlEnginePromise","originToGraphqlEnginePromise","Map","tryToInitializeGraphqlEngineFromCollectedOrigins","originEngineState","engineForOriginPromise","set","memoizedInitializeGraphqlEngine","has","reverseFixedPagePath","pageDataRequestPath","getPathInfo","requestPath","matches","matchAll","requestedPagePath","isPageData","pagePath","setStatusAndHeaders","page","data","res","mode","serverDataStatus","status","serverDataHeaders","name","value","entries","setHeader","getErrorBody","body","readFileSync","getPage","pathname","pathInfo","undefined","engineHandler","pageInfo","originalPathName","startsWith","maybePath","slice","length","send","pathName","getGraphqlEngine","rawUrl","results","json"],"sources":["../../../src/utils/page-ssr-module/lambda.ts"],"sourcesContent":["import type { GatsbyFunctionResponse, GatsbyFunctionRequest } from \"gatsby\"\nimport * as path from \"path\"\nimport * as fs from \"fs-extra\"\nimport { get as httpsGet } from \"https\"\nimport { get as httpGet, IncomingMessage, ClientRequest } from \"http\"\nimport { tmpdir } from \"os\"\nimport { pipeline } from \"stream\"\nimport { URL } from \"url\"\nimport { promisify } from \"util\"\n\nimport type { ISSRData, EnginePage } from \"./entry\"\nimport { link, rewritableMethods as linkRewritableMethods } from \"linkfs\"\n\nconst cdnDatastorePath = `%CDN_DATASTORE_PATH%`\n// this is fallback origin, we will prefer to extract it from first request instead\n// as in some cases one reported by adapter might not be correct\nconst cdnDatastoreOrigin = `%CDN_DATASTORE_ORIGIN%`\nconst PATH_PREFIX = `%PATH_PREFIX%`\n\nfunction setupFsWrapper(): string {\n // setup global._fsWrapper\n try {\n fs.accessSync(__filename, fs.constants.W_OK)\n // TODO: this seems funky - not sure if this is correct way to handle this, so just marking TODO to revisit this\n return path.join(__dirname, `..`, `data`, `datastore`)\n } catch (e) {\n // we are in a read-only filesystem, so we need to use a temp dir\n\n const TEMP_DIR = path.join(tmpdir(), `gatsby`)\n const TEMP_CACHE_DIR = path.join(TEMP_DIR, `.cache`)\n\n global.__GATSBY.root = TEMP_DIR\n\n // TODO: don't hardcode this\n const cacheDir = `${process.cwd()}/.cache`\n\n // we need to rewrite fs\n const rewrites = [\n [path.join(cacheDir, `caches`), path.join(TEMP_CACHE_DIR, `caches`)],\n [\n path.join(cacheDir, `caches-lmdb`),\n path.join(TEMP_CACHE_DIR, `caches-lmdb`),\n ],\n [path.join(cacheDir, `data`), path.join(TEMP_CACHE_DIR, `data`)],\n ]\n\n console.log(`Preparing Gatsby filesystem`, {\n from: cacheDir,\n to: TEMP_CACHE_DIR,\n rewrites,\n })\n\n // copied from https://github.com/streamich/linkfs/blob/master/src/index.ts#L126-L142\n function mapPathUsingRewrites(fsPath: fs.PathLike): string {\n let filename = path.resolve(String(fsPath))\n for (const [from, to] of rewrites) {\n if (filename.indexOf(from) === 0) {\n const rootRegex = /(?:^[a-zA-Z]:\\\\$)|(?:^\\/$)/ // C:\\ vs /\n const isRoot = from.match(rootRegex)\n const baseRegex = `^(` + from.replace(/\\\\/g, `\\\\\\\\`) + `)`\n\n if (isRoot) {\n const regex = new RegExp(baseRegex)\n filename = filename.replace(regex, () => to + path.sep)\n } else {\n const regex = new RegExp(baseRegex + `(\\\\\\\\|/|$)`)\n filename = filename.replace(regex, (_match, _p1, p2) => to + p2)\n }\n }\n }\n return filename\n }\n\n function applyRename<\n T = typeof import(\"fs\") | typeof import(\"fs\").promises\n >(fsToRewrite: T, lfs: T, method: \"rename\" | \"renameSync\"): void {\n const original = fsToRewrite[method]\n if (original) {\n // @ts-ignore - complains about __promisify__ which doesn't actually exist in runtime\n lfs[method] = (\n ...args: Parameters<typeof import(\"fs\")[\"rename\" | \"renameSync\"]>\n ): ReturnType<typeof import(\"fs\")[\"rename\" | \"renameSync\"]> => {\n args[0] = mapPathUsingRewrites(args[0])\n args[1] = mapPathUsingRewrites(args[1])\n // @ts-ignore - can't decide which signature this is, but we just preserve the original\n // signature here and mostly care about first 2 arguments being PathLike\n return original.apply(fsToRewrite, args)\n }\n }\n }\n\n // linkfs doesn't handle following methods, so we need to add them manually\n linkRewritableMethods.push(`createWriteStream`, `createReadStream`, `rm`)\n\n function createLinkedFS<\n T = typeof import(\"fs\") | typeof import(\"fs\").promises\n >(fsToRewrite: T): T {\n const linkedFS = link(fsToRewrite, rewrites) as T\n\n // linkfs doesn't handle `to` argument in `rename` and `renameSync` methods\n applyRename(fsToRewrite, linkedFS, `rename`)\n applyRename(fsToRewrite, linkedFS, `renameSync`)\n\n return linkedFS\n }\n\n // Alias the cache dir paths to the temp dir\n const lfs = createLinkedFS(fs)\n\n // linkfs doesn't pass across the `native` prop, which graceful-fs needs\n for (const key in lfs) {\n if (Object.hasOwnProperty.call(fs[key], `native`)) {\n lfs[key].native = fs[key].native\n }\n }\n // 'promises' is not initially linked within the 'linkfs'\n // package, and is needed by underlying Gatsby code (the\n // @graphql-tools/code-file-loader)\n lfs.promises = createLinkedFS(fs.promises)\n\n const originalWritesStream = fs.WriteStream\n function LinkedWriteStream(\n this: fs.WriteStream,\n ...args: Parameters<(typeof fs)[\"createWriteStream\"]>\n ): fs.WriteStream {\n args[0] = mapPathUsingRewrites(args[0])\n args[1] =\n typeof args[1] === `string`\n ? {\n flags: args[1],\n // @ts-ignore there is `fs` property in options doh (https://nodejs.org/api/fs.html#fscreatewritestreampath-options)\n fs: lfs,\n }\n : {\n ...(args[1] || {}),\n // @ts-ignore there is `fs` property in options doh (https://nodejs.org/api/fs.html#fscreatewritestreampath-options)\n fs: lfs,\n }\n\n // @ts-ignore TS doesn't like extending prototype \"classes\"\n return originalWritesStream.apply(this, args)\n }\n LinkedWriteStream.prototype = Object.create(originalWritesStream.prototype)\n // @ts-ignore TS doesn't like extending prototype \"classes\"\n lfs.WriteStream = LinkedWriteStream\n\n const originalReadStream = fs.ReadStream\n function LinkedReadStream(\n this: fs.ReadStream,\n ...args: Parameters<(typeof fs)[\"createReadStream\"]>\n ): fs.ReadStream {\n args[0] = mapPathUsingRewrites(args[0])\n args[1] =\n typeof args[1] === `string`\n ? {\n flags: args[1],\n // @ts-ignore there is `fs` property in options doh (https://nodejs.org/api/fs.html#fscreatewritestreampath-options)\n fs: lfs,\n }\n : {\n ...(args[1] || {}),\n // @ts-ignore there is `fs` property in options doh (https://nodejs.org/api/fs.html#fscreatewritestreampath-options)\n fs: lfs,\n }\n\n // @ts-ignore TS doesn't like extending prototype \"classes\"\n return originalReadStream.apply(this, args)\n }\n LinkedReadStream.prototype = Object.create(originalReadStream.prototype)\n // @ts-ignore TS doesn't like extending prototype \"classes\"\n lfs.ReadStream = LinkedReadStream\n\n const dbPath = path.join(TEMP_CACHE_DIR, `data`, `datastore`)\n\n // Gatsby uses this instead of fs if present\n // eslint-disable-next-line no-underscore-dangle\n // @ts-ignore __promisify__ stuff\n global._fsWrapper = lfs\n\n if (!cdnDatastorePath) {\n const dir = `data`\n if (\n !process.env.NETLIFY_LOCAL &&\n fs.existsSync(path.join(TEMP_CACHE_DIR, dir))\n ) {\n console.log(`directory already exists`)\n return dbPath\n }\n console.log(`Start copying ${dir}`)\n\n fs.copySync(path.join(cacheDir, dir), path.join(TEMP_CACHE_DIR, dir))\n console.log(`End copying ${dir}`)\n }\n\n return dbPath\n }\n}\n\nglobal.__GATSBY = {\n root: process.cwd(),\n buildId: ``,\n}\n\n// eslint-disable-next-line no-constant-condition\nif (`%IMAGE_CDN_URL_GENERATOR_MODULE_RELATIVE_PATH%`) {\n global.__GATSBY.imageCDNUrlGeneratorModulePath = require.resolve(\n `%IMAGE_CDN_URL_GENERATOR_MODULE_RELATIVE_PATH%`\n )\n}\n// eslint-disable-next-line no-constant-condition\nif (`%FILE_CDN_URL_GENERATOR_MODULE_RELATIVE_PATH%`) {\n global.__GATSBY.fileCDNUrlGeneratorModulePath = require.resolve(\n `%FILE_CDN_URL_GENERATOR_MODULE_RELATIVE_PATH%`\n )\n}\n\nconst dbPath = setupFsWrapper()\n\n// using require instead of import here for now because of type hell + import path doesn't exist in current context\n// as this file will be copied elsewhere\n\ntype GraphQLEngineType =\n import(\"../../schema/graphql-engine/entry\").GraphQLEngine\n\nconst { GraphQLEngine } =\n require(`../query-engine`) as typeof import(\"../../schema/graphql-engine/entry\")\n\nconst { getData, renderPageData, renderHTML, findEnginePageByPath } =\n require(`./index`) as typeof import(\"./entry\")\n\nconst streamPipeline = promisify(pipeline)\n\nfunction get(\n url: string,\n callback?: (res: IncomingMessage) => void\n): ClientRequest {\n return new URL(url).protocol === `https:`\n ? httpsGet(url, callback)\n : httpGet(url, callback)\n}\n\ninterface IEngineError extends Error {\n downloadError?: boolean\n}\n\nfunction shouldDownloadDatastoreFromCDN(): boolean {\n return !!cdnDatastorePath\n}\n\nasync function downloadDatastoreFromCDN(origin: string): Promise<void> {\n const cdnDatastore = `${origin}/${cdnDatastorePath}`\n // if this variable is set we need to download the datastore from the CDN\n const downloadPath = dbPath + `/data.mdb`\n console.log(\n `Downloading datastore from CDN (${cdnDatastore} -> ${downloadPath})`\n )\n\n await fs.ensureDir(dbPath)\n await new Promise((resolve, reject) => {\n const req = get(cdnDatastore, response => {\n if (\n !response.statusCode ||\n response.statusCode < 200 ||\n response.statusCode > 299\n ) {\n const engineError = new Error(\n `Failed to download ${cdnDatastore}: ${response.statusCode} ${\n response.statusMessage || ``\n }`\n ) as IEngineError\n engineError.downloadError = true\n reject(engineError)\n return\n }\n\n const fileStream = fs.createWriteStream(downloadPath)\n streamPipeline(response, fileStream)\n .then(resolve)\n .catch(error => {\n console.log(`Error downloading ${cdnDatastore}`, error)\n const engineError = error as IEngineError\n engineError.downloadError = true\n reject(engineError)\n })\n })\n\n req.on(`error`, error => {\n console.log(`Error downloading ${cdnDatastore}`, error)\n const engineError = error as IEngineError\n engineError.downloadError = true\n reject(engineError)\n })\n })\n console.log(`Downloaded datastore from CDN`)\n}\n\nasync function initializeGraphqlEngine(\n origin: string\n): Promise<GraphQLEngineType> {\n if (shouldDownloadDatastoreFromCDN()) {\n await downloadDatastoreFromCDN(origin)\n }\n\n const graphqlEngine = new GraphQLEngine({\n dbPath,\n })\n\n await graphqlEngine.ready\n\n return graphqlEngine\n}\n\nlet memoizedGraphqlEnginePromise: Promise<GraphQLEngineType> | null = null\nconst originToGraphqlEnginePromise = new Map<\n string,\n Promise<GraphQLEngineType> | null | Error\n>()\n\nfunction tryToInitializeGraphqlEngineFromCollectedOrigins(): Promise<GraphQLEngineType> {\n for (const [origin, originEngineState] of originToGraphqlEnginePromise) {\n if (!(originEngineState instanceof Error)) {\n if (originEngineState === null) {\n const engineForOriginPromise = initializeGraphqlEngine(origin).catch(\n e => {\n originToGraphqlEnginePromise.set(\n origin,\n e instanceof Error ? e : new Error(e)\n )\n\n if (e.downloadError) {\n return tryToInitializeGraphqlEngineFromCollectedOrigins()\n }\n\n throw e\n }\n )\n originToGraphqlEnginePromise.set(origin, engineForOriginPromise)\n return engineForOriginPromise\n } else {\n return originEngineState\n }\n }\n }\n\n return Promise.reject(new Error(`No engine available`))\n}\n\nfunction memoizedInitializeGraphqlEngine(\n origin: string\n): Promise<GraphQLEngineType> {\n if (!originToGraphqlEnginePromise.has(origin)) {\n // register origin, but for now don't init anything\n originToGraphqlEnginePromise.set(origin, null)\n }\n\n if (!memoizedGraphqlEnginePromise) {\n // pick first non-errored entry\n memoizedGraphqlEnginePromise =\n tryToInitializeGraphqlEngineFromCollectedOrigins().catch(e => {\n // at this point we don't have any origin that work, but maybe we will get one in future\n // so unset memoizedGraphqlEnginePromise as it would be not allowing any more attempts once it settled\n memoizedGraphqlEnginePromise = null\n throw e\n })\n }\n return memoizedGraphqlEnginePromise\n}\n\nmemoizedInitializeGraphqlEngine(cdnDatastoreOrigin).catch(\n () =>\n // we don't want to crash the process if we can't get the engine without a request\n null\n)\n\nfunction reverseFixedPagePath(pageDataRequestPath: string): string {\n return pageDataRequestPath === `index` ? `/` : pageDataRequestPath\n}\n\nfunction getPathInfo(requestPath: string):\n | {\n isPageData: boolean\n pagePath: string\n }\n | undefined {\n const matches = requestPath.matchAll(/^\\/?page-data\\/(.+)\\/page-data.json$/gm)\n for (const [, requestedPagePath] of matches) {\n return {\n isPageData: true,\n pagePath: reverseFixedPagePath(requestedPagePath),\n }\n }\n\n // if not matched\n return {\n isPageData: false,\n pagePath: requestPath,\n }\n}\n\nfunction setStatusAndHeaders({\n page,\n data,\n res,\n}: {\n page: EnginePage\n data: ISSRData\n res: GatsbyFunctionResponse\n}): void {\n if (page.mode === `SSR`) {\n if (data.serverDataStatus) {\n res.status(data.serverDataStatus)\n }\n }\n if (data.serverDataHeaders) {\n for (const [name, value] of Object.entries(data.serverDataHeaders)) {\n res.setHeader(name, value)\n }\n }\n}\n\nfunction getErrorBody(statusCode: number): string {\n let body = `<html><body><h1>${statusCode}</h1><p>${\n statusCode === 404 ? `Not found` : `Internal Server Error`\n }</p></body></html>`\n\n if (statusCode === 404 || statusCode === 500) {\n const filename = path.join(process.cwd(), `public`, `${statusCode}.html`)\n\n if (fs.existsSync(filename)) {\n body = fs.readFileSync(filename, `utf8`)\n }\n }\n\n return body\n}\n\ninterface IPageInfo {\n page: EnginePage\n isPageData: boolean\n pagePath: string\n}\n\nfunction getPage(pathname: string): IPageInfo | undefined {\n const pathInfo = getPathInfo(pathname)\n if (!pathInfo) {\n return undefined\n }\n\n const { isPageData, pagePath } = pathInfo\n\n const page = findEnginePageByPath(pagePath)\n if (!page) {\n return undefined\n }\n\n return {\n page,\n isPageData,\n pagePath,\n }\n}\n\nasync function engineHandler(\n req: GatsbyFunctionRequest,\n res: GatsbyFunctionResponse\n): Promise<void> {\n try {\n let pageInfo: IPageInfo | undefined\n\n const originalPathName = req.url ?? ``\n\n if (PATH_PREFIX && originalPathName.startsWith(PATH_PREFIX)) {\n const maybePath = originalPathName.slice(PATH_PREFIX.length)\n pageInfo = getPage(maybePath)\n }\n\n if (!pageInfo) {\n pageInfo = getPage(originalPathName)\n }\n\n if (!pageInfo) {\n res.status(404).send(getErrorBody(404))\n return\n }\n\n const { pagePath, isPageData, page } = pageInfo\n\n const data = await getData({\n pathName: pagePath,\n getGraphqlEngine: () =>\n memoizedInitializeGraphqlEngine(\n req?.rawUrl ? new URL(req.rawUrl).origin : cdnDatastoreOrigin\n ),\n req,\n })\n\n if (isPageData) {\n const results = await renderPageData({ data })\n setStatusAndHeaders({ page, data, res })\n res.json(results)\n return\n } else {\n const results = await renderHTML({ data })\n setStatusAndHeaders({ page, data, res })\n res.send(results)\n return\n }\n } catch (e) {\n console.error(`Engine failed to handle request`, e)\n res.status(500).send(getErrorBody(500))\n }\n}\n\nexport default engineHandler\n"],"mappings":"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"}
1
+ {"version":3,"file":"lambda.js","names":["cdnDatastorePath","cdnDatastoreOrigin","PATH_PREFIX","cacheDir","path","join","__dirname","process","chdir","setupFsWrapper","fs","accessSync","__filename","constants","W_OK","e","TEMP_DIR","tmpdir","TEMP_CACHE_DIR","global","__GATSBY","root","rewrites","console","log","from","to","mapPathUsingRewrites","fsPath","filename","resolve","String","indexOf","rootRegex","isRoot","match","baseRegex","replace","regex","RegExp","sep","_match","_p1","p2","applyRename","fsToRewrite","lfs","method","original","args","apply","linkRewritableMethods","push","createLinkedFS","linkedFS","link","key","Object","hasOwnProperty","call","native","promises","originalWritesStream","WriteStream","LinkedWriteStream","flags","prototype","create","originalReadStream","ReadStream","LinkedReadStream","dbPath","_fsWrapper","dir","env","NETLIFY_LOCAL","existsSync","copySync","cwd","buildId","imageCDNUrlGeneratorModulePath","require","fileCDNUrlGeneratorModulePath","GraphQLEngine","getData","renderPageData","renderHTML","findEnginePageByPath","streamPipeline","promisify","pipeline","get","url","callback","URL","protocol","httpsGet","httpGet","shouldDownloadDatastoreFromCDN","downloadDatastoreFromCDN","origin","cdnDatastore","downloadPath","ensureDir","Promise","reject","req","response","statusCode","engineError","Error","statusMessage","downloadError","fileStream","createWriteStream","then","catch","error","on","initializeGraphqlEngine","graphqlEngine","ready","memoizedGraphqlEnginePromise","originToGraphqlEnginePromise","Map","tryToInitializeGraphqlEngineFromCollectedOrigins","originEngineState","engineForOriginPromise","set","memoizedInitializeGraphqlEngine","has","reverseFixedPagePath","pageDataRequestPath","getPathInfo","requestPath","matches","matchAll","requestedPagePath","isPageData","pagePath","setStatusAndHeaders","page","data","res","mode","serverDataStatus","status","serverDataHeaders","name","value","entries","setHeader","getErrorBody","body","readFileSync","getPage","pathname","pathInfo","undefined","engineHandler","pageInfo","originalPathName","startsWith","maybePath","slice","length","send","pathName","getGraphqlEngine","rawUrl","results","json"],"sources":["../../../src/utils/page-ssr-module/lambda.ts"],"sourcesContent":["import type { GatsbyFunctionResponse, GatsbyFunctionRequest } from \"gatsby\"\nimport * as path from \"path\"\nimport * as fs from \"fs-extra\"\nimport { get as httpsGet } from \"https\"\nimport { get as httpGet, IncomingMessage, ClientRequest } from \"http\"\nimport { tmpdir } from \"os\"\nimport { pipeline } from \"stream\"\nimport { URL } from \"url\"\nimport { promisify } from \"util\"\n\nimport type { ISSRData, EnginePage } from \"./entry\"\nimport { link, rewritableMethods as linkRewritableMethods } from \"linkfs\"\n\nconst cdnDatastorePath = `%CDN_DATASTORE_PATH%`\n// this is fallback origin, we will prefer to extract it from first request instead\n// as in some cases one reported by adapter might not be correct\nconst cdnDatastoreOrigin = `%CDN_DATASTORE_ORIGIN%`\nconst PATH_PREFIX = `%PATH_PREFIX%`\n\n// this file should be in `.cache/page-ssr-module/lambda.js`\n// so getting `.cache` location should be one directory above\n// directory of this file\nconst cacheDir = path.join(__dirname, `..`)\n\n// gatsby relies on process.cwd() a lot, so this ensures that CWD is set correctly\n// in relation to bundled files for lambda. In some scenarios those files are not in\n// expected relative locations to CWD, so here we are forcing setting CWD so the\n// relative paths are correct\nprocess.chdir(path.join(cacheDir, `..`))\n\nfunction setupFsWrapper(): string {\n // setup global._fsWrapper\n try {\n fs.accessSync(__filename, fs.constants.W_OK)\n return path.join(cacheDir, `data`, `datastore`)\n } catch (e) {\n // we are in a read-only filesystem, so we need to use a temp dir\n\n const TEMP_DIR = path.join(tmpdir(), `gatsby`)\n const TEMP_CACHE_DIR = path.join(TEMP_DIR, `.cache`)\n\n global.__GATSBY.root = TEMP_DIR\n\n // we need to rewrite fs\n const rewrites = [\n [path.join(cacheDir, `caches`), path.join(TEMP_CACHE_DIR, `caches`)],\n [\n path.join(cacheDir, `caches-lmdb`),\n path.join(TEMP_CACHE_DIR, `caches-lmdb`),\n ],\n [path.join(cacheDir, `data`), path.join(TEMP_CACHE_DIR, `data`)],\n ]\n\n console.log(`Preparing Gatsby filesystem`, {\n from: cacheDir,\n to: TEMP_CACHE_DIR,\n rewrites,\n })\n\n // copied from https://github.com/streamich/linkfs/blob/master/src/index.ts#L126-L142\n function mapPathUsingRewrites(fsPath: fs.PathLike): string {\n let filename = path.resolve(String(fsPath))\n for (const [from, to] of rewrites) {\n if (filename.indexOf(from) === 0) {\n const rootRegex = /(?:^[a-zA-Z]:\\\\$)|(?:^\\/$)/ // C:\\ vs /\n const isRoot = from.match(rootRegex)\n const baseRegex = `^(` + from.replace(/\\\\/g, `\\\\\\\\`) + `)`\n\n if (isRoot) {\n const regex = new RegExp(baseRegex)\n filename = filename.replace(regex, () => to + path.sep)\n } else {\n const regex = new RegExp(baseRegex + `(\\\\\\\\|/|$)`)\n filename = filename.replace(regex, (_match, _p1, p2) => to + p2)\n }\n }\n }\n return filename\n }\n\n function applyRename<\n T = typeof import(\"fs\") | typeof import(\"fs\").promises\n >(fsToRewrite: T, lfs: T, method: \"rename\" | \"renameSync\"): void {\n const original = fsToRewrite[method]\n if (original) {\n // @ts-ignore - complains about __promisify__ which doesn't actually exist in runtime\n lfs[method] = (\n ...args: Parameters<typeof import(\"fs\")[\"rename\" | \"renameSync\"]>\n ): ReturnType<typeof import(\"fs\")[\"rename\" | \"renameSync\"]> => {\n args[0] = mapPathUsingRewrites(args[0])\n args[1] = mapPathUsingRewrites(args[1])\n // @ts-ignore - can't decide which signature this is, but we just preserve the original\n // signature here and mostly care about first 2 arguments being PathLike\n return original.apply(fsToRewrite, args)\n }\n }\n }\n\n // linkfs doesn't handle following methods, so we need to add them manually\n linkRewritableMethods.push(`createWriteStream`, `createReadStream`, `rm`)\n\n function createLinkedFS<\n T = typeof import(\"fs\") | typeof import(\"fs\").promises\n >(fsToRewrite: T): T {\n const linkedFS = link(fsToRewrite, rewrites) as T\n\n // linkfs doesn't handle `to` argument in `rename` and `renameSync` methods\n applyRename(fsToRewrite, linkedFS, `rename`)\n applyRename(fsToRewrite, linkedFS, `renameSync`)\n\n return linkedFS\n }\n\n // Alias the cache dir paths to the temp dir\n const lfs = createLinkedFS(fs)\n\n // linkfs doesn't pass across the `native` prop, which graceful-fs needs\n for (const key in lfs) {\n if (Object.hasOwnProperty.call(fs[key], `native`)) {\n lfs[key].native = fs[key].native\n }\n }\n // 'promises' is not initially linked within the 'linkfs'\n // package, and is needed by underlying Gatsby code (the\n // @graphql-tools/code-file-loader)\n lfs.promises = createLinkedFS(fs.promises)\n\n const originalWritesStream = fs.WriteStream\n function LinkedWriteStream(\n this: fs.WriteStream,\n ...args: Parameters<(typeof fs)[\"createWriteStream\"]>\n ): fs.WriteStream {\n args[0] = mapPathUsingRewrites(args[0])\n args[1] =\n typeof args[1] === `string`\n ? {\n flags: args[1],\n // @ts-ignore there is `fs` property in options doh (https://nodejs.org/api/fs.html#fscreatewritestreampath-options)\n fs: lfs,\n }\n : {\n ...(args[1] || {}),\n // @ts-ignore there is `fs` property in options doh (https://nodejs.org/api/fs.html#fscreatewritestreampath-options)\n fs: lfs,\n }\n\n // @ts-ignore TS doesn't like extending prototype \"classes\"\n return originalWritesStream.apply(this, args)\n }\n LinkedWriteStream.prototype = Object.create(originalWritesStream.prototype)\n // @ts-ignore TS doesn't like extending prototype \"classes\"\n lfs.WriteStream = LinkedWriteStream\n\n const originalReadStream = fs.ReadStream\n function LinkedReadStream(\n this: fs.ReadStream,\n ...args: Parameters<(typeof fs)[\"createReadStream\"]>\n ): fs.ReadStream {\n args[0] = mapPathUsingRewrites(args[0])\n args[1] =\n typeof args[1] === `string`\n ? {\n flags: args[1],\n // @ts-ignore there is `fs` property in options doh (https://nodejs.org/api/fs.html#fscreatewritestreampath-options)\n fs: lfs,\n }\n : {\n ...(args[1] || {}),\n // @ts-ignore there is `fs` property in options doh (https://nodejs.org/api/fs.html#fscreatewritestreampath-options)\n fs: lfs,\n }\n\n // @ts-ignore TS doesn't like extending prototype \"classes\"\n return originalReadStream.apply(this, args)\n }\n LinkedReadStream.prototype = Object.create(originalReadStream.prototype)\n // @ts-ignore TS doesn't like extending prototype \"classes\"\n lfs.ReadStream = LinkedReadStream\n\n const dbPath = path.join(TEMP_CACHE_DIR, `data`, `datastore`)\n\n // Gatsby uses this instead of fs if present\n // eslint-disable-next-line no-underscore-dangle\n // @ts-ignore __promisify__ stuff\n global._fsWrapper = lfs\n\n if (!cdnDatastorePath) {\n const dir = `data`\n if (\n !process.env.NETLIFY_LOCAL &&\n fs.existsSync(path.join(TEMP_CACHE_DIR, dir))\n ) {\n console.log(`directory already exists`)\n return dbPath\n }\n console.log(`Start copying ${dir}`)\n\n fs.copySync(path.join(cacheDir, dir), path.join(TEMP_CACHE_DIR, dir))\n console.log(`End copying ${dir}`)\n }\n\n return dbPath\n }\n}\n\nglobal.__GATSBY = {\n root: process.cwd(),\n buildId: ``,\n}\n\n// eslint-disable-next-line no-constant-condition\nif (`%IMAGE_CDN_URL_GENERATOR_MODULE_RELATIVE_PATH%`) {\n global.__GATSBY.imageCDNUrlGeneratorModulePath = require.resolve(\n `%IMAGE_CDN_URL_GENERATOR_MODULE_RELATIVE_PATH%`\n )\n}\n// eslint-disable-next-line no-constant-condition\nif (`%FILE_CDN_URL_GENERATOR_MODULE_RELATIVE_PATH%`) {\n global.__GATSBY.fileCDNUrlGeneratorModulePath = require.resolve(\n `%FILE_CDN_URL_GENERATOR_MODULE_RELATIVE_PATH%`\n )\n}\n\nconst dbPath = setupFsWrapper()\n\n// using require instead of import here for now because of type hell + import path doesn't exist in current context\n// as this file will be copied elsewhere\n\ntype GraphQLEngineType =\n import(\"../../schema/graphql-engine/entry\").GraphQLEngine\n\nconst { GraphQLEngine } =\n require(`../query-engine`) as typeof import(\"../../schema/graphql-engine/entry\")\n\nconst { getData, renderPageData, renderHTML, findEnginePageByPath } =\n require(`./index`) as typeof import(\"./entry\")\n\nconst streamPipeline = promisify(pipeline)\n\nfunction get(\n url: string,\n callback?: (res: IncomingMessage) => void\n): ClientRequest {\n return new URL(url).protocol === `https:`\n ? httpsGet(url, callback)\n : httpGet(url, callback)\n}\n\ninterface IEngineError extends Error {\n downloadError?: boolean\n}\n\nfunction shouldDownloadDatastoreFromCDN(): boolean {\n return !!cdnDatastorePath\n}\n\nasync function downloadDatastoreFromCDN(origin: string): Promise<void> {\n const cdnDatastore = `${origin}/${cdnDatastorePath}`\n // if this variable is set we need to download the datastore from the CDN\n const downloadPath = dbPath + `/data.mdb`\n console.log(\n `Downloading datastore from CDN (${cdnDatastore} -> ${downloadPath})`\n )\n\n await fs.ensureDir(dbPath)\n await new Promise((resolve, reject) => {\n const req = get(cdnDatastore, response => {\n if (\n !response.statusCode ||\n response.statusCode < 200 ||\n response.statusCode > 299\n ) {\n const engineError = new Error(\n `Failed to download ${cdnDatastore}: ${response.statusCode} ${\n response.statusMessage || ``\n }`\n ) as IEngineError\n engineError.downloadError = true\n reject(engineError)\n return\n }\n\n const fileStream = fs.createWriteStream(downloadPath)\n streamPipeline(response, fileStream)\n .then(resolve)\n .catch(error => {\n console.log(`Error downloading ${cdnDatastore}`, error)\n const engineError = error as IEngineError\n engineError.downloadError = true\n reject(engineError)\n })\n })\n\n req.on(`error`, error => {\n console.log(`Error downloading ${cdnDatastore}`, error)\n const engineError = error as IEngineError\n engineError.downloadError = true\n reject(engineError)\n })\n })\n console.log(`Downloaded datastore from CDN`)\n}\n\nasync function initializeGraphqlEngine(\n origin: string\n): Promise<GraphQLEngineType> {\n if (shouldDownloadDatastoreFromCDN()) {\n await downloadDatastoreFromCDN(origin)\n }\n\n const graphqlEngine = new GraphQLEngine({\n dbPath,\n })\n\n await graphqlEngine.ready\n\n return graphqlEngine\n}\n\nlet memoizedGraphqlEnginePromise: Promise<GraphQLEngineType> | null = null\nconst originToGraphqlEnginePromise = new Map<\n string,\n Promise<GraphQLEngineType> | null | Error\n>()\n\nfunction tryToInitializeGraphqlEngineFromCollectedOrigins(): Promise<GraphQLEngineType> {\n for (const [origin, originEngineState] of originToGraphqlEnginePromise) {\n if (!(originEngineState instanceof Error)) {\n if (originEngineState === null) {\n const engineForOriginPromise = initializeGraphqlEngine(origin).catch(\n e => {\n originToGraphqlEnginePromise.set(\n origin,\n e instanceof Error ? e : new Error(e)\n )\n\n if (e.downloadError) {\n return tryToInitializeGraphqlEngineFromCollectedOrigins()\n }\n\n throw e\n }\n )\n originToGraphqlEnginePromise.set(origin, engineForOriginPromise)\n return engineForOriginPromise\n } else {\n return originEngineState\n }\n }\n }\n\n return Promise.reject(new Error(`No engine available`))\n}\n\nfunction memoizedInitializeGraphqlEngine(\n origin: string\n): Promise<GraphQLEngineType> {\n if (!originToGraphqlEnginePromise.has(origin)) {\n // register origin, but for now don't init anything\n originToGraphqlEnginePromise.set(origin, null)\n }\n\n if (!memoizedGraphqlEnginePromise) {\n // pick first non-errored entry\n memoizedGraphqlEnginePromise =\n tryToInitializeGraphqlEngineFromCollectedOrigins().catch(e => {\n // at this point we don't have any origin that work, but maybe we will get one in future\n // so unset memoizedGraphqlEnginePromise as it would be not allowing any more attempts once it settled\n memoizedGraphqlEnginePromise = null\n throw e\n })\n }\n return memoizedGraphqlEnginePromise\n}\n\nmemoizedInitializeGraphqlEngine(cdnDatastoreOrigin).catch(\n () =>\n // we don't want to crash the process if we can't get the engine without a request\n null\n)\n\nfunction reverseFixedPagePath(pageDataRequestPath: string): string {\n return pageDataRequestPath === `index` ? `/` : pageDataRequestPath\n}\n\nfunction getPathInfo(requestPath: string):\n | {\n isPageData: boolean\n pagePath: string\n }\n | undefined {\n const matches = requestPath.matchAll(/^\\/?page-data\\/(.+)\\/page-data.json$/gm)\n for (const [, requestedPagePath] of matches) {\n return {\n isPageData: true,\n pagePath: reverseFixedPagePath(requestedPagePath),\n }\n }\n\n // if not matched\n return {\n isPageData: false,\n pagePath: requestPath,\n }\n}\n\nfunction setStatusAndHeaders({\n page,\n data,\n res,\n}: {\n page: EnginePage\n data: ISSRData\n res: GatsbyFunctionResponse\n}): void {\n if (page.mode === `SSR`) {\n if (data.serverDataStatus) {\n res.status(data.serverDataStatus)\n }\n }\n if (data.serverDataHeaders) {\n for (const [name, value] of Object.entries(data.serverDataHeaders)) {\n res.setHeader(name, value)\n }\n }\n}\n\nfunction getErrorBody(statusCode: number): string {\n let body = `<html><body><h1>${statusCode}</h1><p>${\n statusCode === 404 ? `Not found` : `Internal Server Error`\n }</p></body></html>`\n\n if (statusCode === 404 || statusCode === 500) {\n const filename = path.join(process.cwd(), `public`, `${statusCode}.html`)\n\n if (fs.existsSync(filename)) {\n body = fs.readFileSync(filename, `utf8`)\n }\n }\n\n return body\n}\n\ninterface IPageInfo {\n page: EnginePage\n isPageData: boolean\n pagePath: string\n}\n\nfunction getPage(pathname: string): IPageInfo | undefined {\n const pathInfo = getPathInfo(pathname)\n if (!pathInfo) {\n return undefined\n }\n\n const { isPageData, pagePath } = pathInfo\n\n const page = findEnginePageByPath(pagePath)\n if (!page) {\n return undefined\n }\n\n return {\n page,\n isPageData,\n pagePath,\n }\n}\n\nasync function engineHandler(\n req: GatsbyFunctionRequest,\n res: GatsbyFunctionResponse\n): Promise<void> {\n try {\n let pageInfo: IPageInfo | undefined\n\n const originalPathName = req.url ?? ``\n\n if (PATH_PREFIX && originalPathName.startsWith(PATH_PREFIX)) {\n const maybePath = originalPathName.slice(PATH_PREFIX.length)\n pageInfo = getPage(maybePath)\n }\n\n if (!pageInfo) {\n pageInfo = getPage(originalPathName)\n }\n\n if (!pageInfo) {\n res.status(404).send(getErrorBody(404))\n return\n }\n\n const { pagePath, isPageData, page } = pageInfo\n\n const data = await getData({\n pathName: pagePath,\n getGraphqlEngine: () =>\n memoizedInitializeGraphqlEngine(\n req?.rawUrl ? new URL(req.rawUrl).origin : cdnDatastoreOrigin\n ),\n req,\n })\n\n if (isPageData) {\n const results = await renderPageData({ data })\n setStatusAndHeaders({ page, data, res })\n res.json(results)\n return\n } else {\n const results = await renderHTML({ data })\n setStatusAndHeaders({ page, data, res })\n res.send(results)\n return\n }\n } catch (e) {\n console.error(`Engine failed to handle request`, e)\n res.status(500).send(getErrorBody(500))\n }\n}\n\nexport default engineHandler\n"],"mappings":"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"}
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": "5.13.6",
4
+ "version": "5.13.7",
5
5
  "author": "Kyle Mathews <mathews.kyle@gmail.com>",
6
6
  "bin": {
7
7
  "gatsby": "./cli.js"
@@ -279,5 +279,5 @@
279
279
  "yargs": {
280
280
  "boolean-negation": false
281
281
  },
282
- "gitHead": "36f23d258f63ffa5506bc4e8e0a917fd70721252"
282
+ "gitHead": "d92aa8c74f7b2c21d88cc85ca15cebee63f6a045"
283
283
  }