Index: frontend/node_modules/find-cache-dir/index.js
===================================================================
--- frontend/node_modules/find-cache-dir/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/find-cache-dir/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,67 @@
+'use strict';
+const path = require('path');
+const fs = require('fs');
+const commonDir = require('commondir');
+const pkgDir = require('pkg-dir');
+const makeDir = require('make-dir');
+
+const {env, cwd} = process;
+
+const isWritable = path => {
+	try {
+		fs.accessSync(path, fs.constants.W_OK);
+		return true;
+	} catch (_) {
+		return false;
+	}
+};
+
+function useDirectory(directory, options) {
+	if (options.create) {
+		makeDir.sync(directory);
+	}
+
+	if (options.thunk) {
+		return (...arguments_) => path.join(directory, ...arguments_);
+	}
+
+	return directory;
+}
+
+function getNodeModuleDirectory(directory) {
+	const nodeModules = path.join(directory, 'node_modules');
+
+	if (
+		!isWritable(nodeModules) &&
+		(fs.existsSync(nodeModules) || !isWritable(path.join(directory)))
+	) {
+		return;
+	}
+
+	return nodeModules;
+}
+
+module.exports = (options = {}) => {
+	if (env.CACHE_DIR && !['true', 'false', '1', '0'].includes(env.CACHE_DIR)) {
+		return useDirectory(path.join(env.CACHE_DIR, options.name), options);
+	}
+
+	let {cwd: directory = cwd()} = options;
+
+	if (options.files) {
+		directory = commonDir(directory, options.files);
+	}
+
+	directory = pkgDir.sync(directory);
+
+	if (!directory) {
+		return;
+	}
+
+	const nodeModules = getNodeModuleDirectory(directory);
+	if (!nodeModules) {
+		return undefined;
+	}
+
+	return useDirectory(path.join(directory, 'node_modules', '.cache', options.name), options);
+};
