diff --git a/starter-remix-tsc/package.json b/starter-remix-tsc/package.json index 9183838..6c38d48 100644 --- a/starter-remix-tsc/package.json +++ b/starter-remix-tsc/package.json @@ -7,9 +7,9 @@ "clean": "rm -rf .cache && rm -rf build" }, "dependencies": { - "@remix-run/express": "^1.8.1", - "@remix-run/node": "^1.8.1", - "@remix-run/react": "^1.8.1", + "@remix-run/express": "^1.8.2", + "@remix-run/node": "^1.8.2", + "@remix-run/react": "^1.8.2", "compression": "^1.7.4", "cross-env": "^7.0.3", "effect": "2.0.0-next.12", @@ -23,10 +23,10 @@ "@babel/core": "^7.20.5", "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", - "@effect/language-service": "^0.0.11", - "@effect/remix-plugin": "./plugins-dev", + "@effect/language-service": "^0.0.13", + "@effect/remix-plugin": "^0.0.3", "@remix-run/dev": "^1.8.2", - "@remix-run/eslint-config": "^1.8.1", + "@remix-run/eslint-config": "^1.8.2", "@types/babel__core": "^7.1.20", "@types/fs-extra": "^9.0.13", "@types/react": "^18.0.26", diff --git a/starter-remix-tsc/plugins-dev/out/build.js b/starter-remix-tsc/plugins-dev/out/build.js deleted file mode 100755 index cbfdcf5..0000000 --- a/starter-remix-tsc/plugins-dev/out/build.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; -exports.__esModule = true; -require("@remix-run/dev/dist/compiler/compileBrowser").createBrowserCompiler = - require("./compiler/browser").createBrowserCompiler; -require("@remix-run/dev/dist/compiler/compileBrowser").createServerCompiler = - require("./compiler/server").createServerCompiler; -var index = require("@remix-run/dev/dist/index.js"); -var cli = index.cli; -var argv = process.argv; -process.env["NODE_ENV"] = "production"; -process.argv = __spreadArray(__spreadArray([], argv, true), ["build"], false); -cli.run().then(function () { - process.exit(0); -}, function (error) { - // for expected errors we only show the message (if any), no stack trace - if (error instanceof index.CliError) - error = error.message; - if (error) - console.error(error); - process.exit(1); -}); diff --git a/starter-remix-tsc/plugins-dev/out/compiler/browser.js b/starter-remix-tsc/plugins-dev/out/compiler/browser.js deleted file mode 100644 index e296cab..0000000 --- a/starter-remix-tsc/plugins-dev/out/compiler/browser.js +++ /dev/null @@ -1,202 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -exports.__esModule = true; -exports.createBrowserCompiler = void 0; -var path = __importStar(require("path")); -var module_1 = require("module"); -var esbuild = __importStar(require("esbuild")); -var node_modules_polyfill_1 = require("@esbuild-plugins/node-modules-polyfill"); -var assets_1 = require("@remix-run/dev/dist/compiler/assets"); -var dependencies_1 = require("@remix-run/dev/dist/compiler/dependencies"); -var loaders_1 = require("@remix-run/dev/dist/compiler/loaders"); -var browserRouteModulesPlugin_1 = require("@remix-run/dev/dist/compiler/plugins/browserRouteModulesPlugin"); -var cssFilePlugin_1 = require("@remix-run/dev/dist/compiler/plugins/cssFilePlugin"); -var deprecatedRemixPackagePlugin_1 = require("@remix-run/dev/dist/compiler/plugins/deprecatedRemixPackagePlugin"); -var emptyModulesPlugin_1 = require("@remix-run/dev/dist/compiler/plugins/emptyModulesPlugin"); -var mdx_1 = require("@remix-run/dev/dist/compiler/plugins/mdx"); -var urlImportsPlugin_1 = require("@remix-run/dev/dist/compiler/plugins/urlImportsPlugin"); -var fs_1 = require("@remix-run/dev/dist/compiler/utils/fs"); -var effect_1 = require("../plugins/effect"); -var getExternals = function (remixConfig) { - // For the browser build, exclude node built-ins that don't have a - // browser-safe alternative installed in node_modules. Nothing should - // *actually* be external in the browser build (we want to bundle all deps) so - // this is really just making sure we don't accidentally have any dependencies - // on node built-ins in browser bundles. - var dependencies = Object.keys((0, dependencies_1.getAppDependencies)(remixConfig)); - var fakeBuiltins = module_1.builtinModules.filter(function (mod) { return dependencies.includes(mod); }); - if (fakeBuiltins.length > 0) { - throw new Error("It appears you're using a module that is built in to node, but you installed it as a dependency which could cause problems. Please remove ".concat(fakeBuiltins.join(", "), " before continuing.")); - } - return module_1.builtinModules.filter(function (mod) { return !dependencies.includes(mod); }); -}; -var writeAssetsManifest = function (config, assetsManifest) { return __awaiter(void 0, void 0, void 0, function () { - var filename; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - filename = "manifest-".concat(assetsManifest.version.toUpperCase(), ".js"); - assetsManifest.url = config.publicPath + filename; - return [4 /*yield*/, (0, fs_1.writeFileSafe)(path.join(config.assetsBuildDirectory, filename), "window.__remixManifest=".concat(JSON.stringify(assetsManifest), ";"))]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); -}); }; -var createEsbuildConfig = function (config, options) { - var entryPoints = { - "entry.client": path.resolve(config.appDirectory, config.entryClientFile) - }; - for (var _i = 0, _a = Object.keys(config.routes); _i < _a.length; _i++) { - var id = _a[_i]; - // All route entry points are virtual modules that will be loaded by the - // browserEntryPointsPlugin. This allows us to tree-shake server-only code - // that we don't want to run in the browser (i.e. action & loader). - entryPoints[id] = config.routes[id].file + "?browser"; - } - var plugins = [ - (0, effect_1.effectPlugin)(), - (0, deprecatedRemixPackagePlugin_1.deprecatedRemixPackagePlugin)(options.onWarning), - (0, cssFilePlugin_1.cssFilePlugin)(options), - (0, urlImportsPlugin_1.urlImportsPlugin)(), - (0, mdx_1.mdxPlugin)(config), - (0, browserRouteModulesPlugin_1.browserRouteModulesPlugin)(config, /\?browser$/), - (0, emptyModulesPlugin_1.emptyModulesPlugin)(config, /\.server(\.[jt]sx?)?$/), - (0, node_modules_polyfill_1.NodeModulesPolyfillPlugin)(), - ]; - return { - entryPoints: entryPoints, - outdir: config.assetsBuildDirectory, - platform: "browser", - format: "esm", - external: getExternals(config), - loader: loaders_1.loaders, - bundle: true, - logLevel: "silent", - splitting: true, - sourcemap: options.sourcemap, - // As pointed out by https://github.com/evanw/esbuild/issues/2440, when tsconfig is set to - // `undefined`, esbuild will keep looking for a tsconfig.json recursively up. This unwanted - // behavior can only be avoided by creating an empty tsconfig file in the root directory. - tsconfig: config.tsconfigPath, - mainFields: ["browser", "module", "main"], - treeShaking: true, - minify: options.mode === "production", - entryNames: "[dir]/[name]-[hash]", - chunkNames: "_shared/[name]-[hash]", - assetNames: "_assets/[name]-[hash]", - publicPath: config.publicPath, - define: { - "process.env.NODE_ENV": JSON.stringify(options.mode), - "process.env.REMIX_DEV_SERVER_WS_PORT": JSON.stringify(config.devServerPort) - }, - jsx: "automatic", - jsxDev: options.mode !== "production", - plugins: plugins - }; -}; -var createBrowserCompiler = function (remixConfig, options) { - var compiler; - var esbuildConfig = createEsbuildConfig(remixConfig, options); - var compile = function (manifestChannel) { return __awaiter(void 0, void 0, void 0, function () { - var metafile, manifest; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - if (!(compiler === undefined)) return [3 /*break*/, 2]; - return [4 /*yield*/, esbuild.build(__assign(__assign({}, esbuildConfig), { metafile: true, incremental: true }))]; - case 1: - compiler = _a.sent(); - metafile = compiler.metafile; - return [3 /*break*/, 4]; - case 2: return [4 /*yield*/, compiler.rebuild()]; - case 3: - metafile = (_a.sent()).metafile; - _a.label = 4; - case 4: return [4 /*yield*/, (0, assets_1.createAssetsManifest)(remixConfig, metafile)]; - case 5: - manifest = _a.sent(); - manifestChannel.write(manifest); - return [4 /*yield*/, writeAssetsManifest(remixConfig, manifest)]; - case 6: - _a.sent(); - return [2 /*return*/]; - } - }); - }); }; - return { - compile: compile, - dispose: function () { return compiler === null || compiler === void 0 ? void 0 : compiler.rebuild.dispose(); } - }; -}; -exports.createBrowserCompiler = createBrowserCompiler; diff --git a/starter-remix-tsc/plugins-dev/out/compiler/server.js b/starter-remix-tsc/plugins-dev/out/compiler/server.js deleted file mode 100644 index 0ca7bff..0000000 --- a/starter-remix-tsc/plugins-dev/out/compiler/server.js +++ /dev/null @@ -1,235 +0,0 @@ -"use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (g && (g = 0, op[0] && (_ = 0)), _) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -exports.__esModule = true; -exports.createServerCompiler = void 0; -var path = __importStar(require("path")); -var esbuild = __importStar(require("esbuild")); -var fse = __importStar(require("fs-extra")); -var node_modules_polyfill_1 = require("@esbuild-plugins/node-modules-polyfill"); -var loaders_1 = require("@remix-run/dev/dist/compiler/loaders"); -var cssFilePlugin_1 = require("@remix-run/dev/dist/compiler/plugins/cssFilePlugin"); -var deprecatedRemixPackagePlugin_1 = require("@remix-run/dev/dist/compiler/plugins/deprecatedRemixPackagePlugin"); -var emptyModulesPlugin_1 = require("@remix-run/dev/dist/compiler/plugins/emptyModulesPlugin"); -var mdx_1 = require("@remix-run/dev/dist/compiler/plugins/mdx"); -var serverAssetsManifestPlugin_1 = require("@remix-run/dev/dist/compiler/plugins/serverAssetsManifestPlugin"); -var serverBareModulesPlugin_1 = require("@remix-run/dev/dist/compiler/plugins/serverBareModulesPlugin"); -var serverEntryModulePlugin_1 = require("@remix-run/dev/dist/compiler/plugins/serverEntryModulePlugin"); -var serverRouteModulesPlugin_1 = require("@remix-run/dev/dist/compiler/plugins/serverRouteModulesPlugin"); -var urlImportsPlugin_1 = require("@remix-run/dev/dist/compiler/plugins/urlImportsPlugin"); -var effect_1 = require("../plugins/effect"); -var createEsbuildConfig = function (config, assetsManifestChannel, options) { - var _a; - var stdin; - var entryPoints; - if (config.serverEntryPoint) { - entryPoints = [config.serverEntryPoint]; - } - else { - stdin = { - contents: config.serverBuildTargetEntryModule, - resolveDir: config.rootDirectory, - loader: "ts" - }; - } - var isCloudflareRuntime = ["cloudflare-pages", "cloudflare-workers"].includes((_a = config.serverBuildTarget) !== null && _a !== void 0 ? _a : ""); - var isDenoRuntime = config.serverBuildTarget === "deno"; - var plugins = [ - (0, deprecatedRemixPackagePlugin_1.deprecatedRemixPackagePlugin)(options.onWarning), - (0, cssFilePlugin_1.cssFilePlugin)(options), - (0, urlImportsPlugin_1.urlImportsPlugin)(), - (0, mdx_1.mdxPlugin)(config), - (0, emptyModulesPlugin_1.emptyModulesPlugin)(config, /\.client(\.[jt]sx?)?$/), - (0, serverRouteModulesPlugin_1.serverRouteModulesPlugin)(config), - (0, serverEntryModulePlugin_1.serverEntryModulePlugin)(config), - (0, serverAssetsManifestPlugin_1.serverAssetsManifestPlugin)(assetsManifestChannel.read()), - (0, serverBareModulesPlugin_1.serverBareModulesPlugin)(config, options.onWarning), - ]; - if (config.serverPlatform !== "node") { - plugins.unshift((0, node_modules_polyfill_1.NodeModulesPolyfillPlugin)()); - } - plugins.unshift((0, effect_1.effectPlugin)()); - return { - absWorkingDir: config.rootDirectory, - stdin: stdin, - entryPoints: entryPoints, - outfile: config.serverBuildPath, - conditions: isCloudflareRuntime ? ["worker"] : isDenoRuntime ? ["deno", "worker"] : undefined, - platform: config.serverPlatform, - format: config.serverModuleFormat, - treeShaking: true, - // The type of dead code elimination we want to do depends on the - // minify syntax property: https://github.com/evanw/esbuild/issues/672#issuecomment-1029682369 - // Dev builds are leaving code that should be optimized away in the - // bundle causing server / testing code to be shipped to the browser. - // These are properly optimized away in prod builds today, and this - // PR makes dev mode behave closer to production in terms of dead - // code elimination / tree shaking is concerned. - minifySyntax: true, - minify: options.mode === "production" && isCloudflareRuntime, - mainFields: isCloudflareRuntime - ? ["browser", "module", "main"] - : config.serverModuleFormat === "esm" - ? ["module", "main"] - : ["main", "module"], - target: options.target, - loader: loaders_1.loaders, - bundle: true, - logLevel: "silent", - // As pointed out by https://github.com/evanw/esbuild/issues/2440, when tsconfig is set to - // `undefined`, esbuild will keep looking for a tsconfig.json recursively up. This unwanted - // behavior can only be avoided by creating an empty tsconfig file in the root directory. - tsconfig: config.tsconfigPath, - sourcemap: options.sourcemap, - // The server build needs to know how to generate asset URLs for imports - // of CSS and other files. - assetNames: "_assets/[name]-[hash]", - publicPath: config.publicPath, - define: { - "process.env.NODE_ENV": JSON.stringify(options.mode), - "process.env.REMIX_DEV_SERVER_WS_PORT": JSON.stringify(config.devServerPort) - }, - jsx: "automatic", - jsxDev: options.mode !== "production", - plugins: plugins - }; -}; -function writeServerBuildResult(config, outputFiles) { - return __awaiter(this, void 0, void 0, function () { - var _i, outputFiles_1, file, filename, escapedFilename, pattern, contents, contents, assetPath; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, fse.ensureDir(path.dirname(config.serverBuildPath))]; - case 1: - _a.sent(); - _i = 0, outputFiles_1 = outputFiles; - _a.label = 2; - case 2: - if (!(_i < outputFiles_1.length)) return [3 /*break*/, 10]; - file = outputFiles_1[_i]; - if (!file.path.endsWith(".js")) return [3 /*break*/, 4]; - filename = file.path.substring(file.path.lastIndexOf(path.sep) + 1); - escapedFilename = filename.replace(/\./g, "\\."); - pattern = "(//# sourceMappingURL=)(.*)".concat(escapedFilename); - contents = Buffer.from(file.contents).toString("utf-8"); - contents = contents.replace(new RegExp(pattern), "$1".concat(filename)); - return [4 /*yield*/, fse.writeFile(file.path, contents)]; - case 3: - _a.sent(); - return [3 /*break*/, 9]; - case 4: - if (!file.path.endsWith(".map")) return [3 /*break*/, 6]; - contents = Buffer.from(file.contents).toString("utf-8"); - contents = contents.replace(/"route:/gm, '"'); - return [4 /*yield*/, fse.writeFile(file.path, contents)]; - case 5: - _a.sent(); - return [3 /*break*/, 9]; - case 6: - assetPath = path.join(config.assetsBuildDirectory, file.path.replace(path.dirname(config.serverBuildPath), "")); - return [4 /*yield*/, fse.ensureDir(path.dirname(assetPath))]; - case 7: - _a.sent(); - return [4 /*yield*/, fse.writeFile(assetPath, file.contents)]; - case 8: - _a.sent(); - _a.label = 9; - case 9: - _i++; - return [3 /*break*/, 2]; - case 10: return [2 /*return*/]; - } - }); - }); -} -var createServerCompiler = function (remixConfig, options) { - var compile = function (manifestChannel) { return __awaiter(void 0, void 0, void 0, function () { - var esbuildConfig, outputFiles; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - esbuildConfig = createEsbuildConfig(remixConfig, manifestChannel, options); - return [4 /*yield*/, esbuild.build(__assign(__assign({}, esbuildConfig), { write: false }))]; - case 1: - outputFiles = (_a.sent()).outputFiles; - return [4 /*yield*/, writeServerBuildResult(remixConfig, outputFiles)]; - case 2: - _a.sent(); - return [2 /*return*/]; - } - }); - }); }; - return { - compile: compile, - dispose: function () { return undefined; } - }; -}; -exports.createServerCompiler = createServerCompiler; diff --git a/starter-remix-tsc/plugins-dev/out/dev.js b/starter-remix-tsc/plugins-dev/out/dev.js deleted file mode 100755 index 2cb4b50..0000000 --- a/starter-remix-tsc/plugins-dev/out/dev.js +++ /dev/null @@ -1,50 +0,0 @@ -"use strict"; -var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -}; -exports.__esModule = true; -require("@remix-run/dev/dist/compiler/compileBrowser").createBrowserCompiler = - require("./compiler/browser").createBrowserCompiler; -require("@remix-run/dev/dist/compiler/compileBrowser").createServerCompiler = - require("./compiler/server").createServerCompiler; -var index = require("@remix-run/dev/dist/index.js"); -var child = require("child_process"); -var cli = index.cli; -var argv = process.argv; -process.env["NODE_ENV"] = "development"; -process.argv = __spreadArray(__spreadArray([], argv, true), ["build"], false); -cli.run().then(function () { - var forked = child.exec("cross-env NODE_ENV=development nodemon --require dotenv/config ./server.js --watch ./server.js", function (exit) { - if (exit.code !== 0) { - process.exit(exit.code); - } - }); - forked.stdout.pipe(process.stdout); - forked.stderr.pipe(process.stderr); - process.argv = __spreadArray(__spreadArray([], argv, true), ["watch"], false); - cli.run().then(function () { - forked.kill(0); - process.exit(0); - }, function (error) { - forked.kill(1); - // for expected errors we only show the message (if any), no stack trace - if (error instanceof index.CliError) - error = error.message; - if (error) - console.error(error); - process.exit(1); - }); -}, function (error) { - // for expected errors we only show the message (if any), no stack trace - if (error instanceof index.CliError) - error = error.message; - if (error) - console.error(error); - process.exit(1); -}); diff --git a/starter-remix-tsc/plugins-dev/out/index.js b/starter-remix-tsc/plugins-dev/out/index.js deleted file mode 100755 index f092169..0000000 --- a/starter-remix-tsc/plugins-dev/out/index.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -if (process.argv[2] === "build") { - process.argv.pop(); - require("./build"); -} -else { - process.argv.pop(); - require("./dev"); -} diff --git a/starter-remix-tsc/plugins-dev/out/plugins/effect.js b/starter-remix-tsc/plugins-dev/out/plugins/effect.js deleted file mode 100644 index 3613b76..0000000 --- a/starter-remix-tsc/plugins-dev/out/plugins/effect.js +++ /dev/null @@ -1,227 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -exports.__esModule = true; -exports.effectPlugin = exports.toCache = exports.fromCache = void 0; -var babel = __importStar(require("@babel/core")); -var nodePath = __importStar(require("path")); -var path = __importStar(require("path")); -var fs = __importStar(require("fs")); -var typescript_1 = __importDefault(require("typescript")); -var configPath = typescript_1["default"].findConfigFile("./", typescript_1["default"].sys.fileExists, "tsconfig.json"); -if (!configPath) { - throw new Error('Could not find a valid "tsconfig.json".'); -} -var baseDir = nodePath.dirname(nodePath.resolve(configPath)); -var cacheDir = nodePath.join(baseDir, ".cache/effect"); -if (!fs.existsSync(cacheDir)) { - fs.mkdirSync(cacheDir, { recursive: true }); -} -var registry = typescript_1["default"].createDocumentRegistry(); -var files = new Set(); -var babelConfigPath = nodePath.join(baseDir, "babel.config.js"); -var services; -var getScriptVersion = function (fileName) { - var modified = typescript_1["default"].sys.getModifiedTime(fileName); - if (modified) { - return typescript_1["default"].sys.createHash("".concat(fileName).concat(modified.toISOString())); - } - else { - files["delete"](fileName); - } - return "none"; -}; -var init = function () { - var config = typescript_1["default"].parseConfigFileTextToJson(configPath, typescript_1["default"].sys.readFile(configPath)).config; - Object.assign(config.compilerOptions, { - sourceMap: false, - inlineSourceMap: true, - inlineSources: true, - noEmit: false, - declaration: false, - declarationMap: false, - module: "ESNext", - target: "ES2022" - }); - var tsconfig = typescript_1["default"].parseJsonConfigFileContent(config, typescript_1["default"].sys, baseDir); - if (!tsconfig.options) - tsconfig.options = {}; - tsconfig.fileNames.forEach(function (fileName) { - files.add(fileName); - }); - var servicesHost = { - realpath: function (fileName) { var _a, _b, _c; return (_c = (_b = (_a = typescript_1["default"].sys).realpath) === null || _b === void 0 ? void 0 : _b.call(_a, fileName)) !== null && _c !== void 0 ? _c : fileName; }, - getScriptFileNames: function () { return Array.from(files); }, - getScriptVersion: getScriptVersion, - getScriptSnapshot: function (fileName) { - if (!typescript_1["default"].sys.fileExists(fileName)) { - return undefined; - } - return typescript_1["default"].ScriptSnapshot.fromString(typescript_1["default"].sys.readFile(fileName).toString()); - }, - getCurrentDirectory: function () { return process.cwd(); }, - getCompilationSettings: function () { return tsconfig.options; }, - getDefaultLibFileName: function (options) { return typescript_1["default"].getDefaultLibFilePath(options); }, - fileExists: function (fileName) { return typescript_1["default"].sys.fileExists(fileName); }, - readFile: function (fileName) { return typescript_1["default"].sys.readFile(fileName); } - }; - var services = typescript_1["default"].createLanguageService(servicesHost, registry); - setTimeout(function () { - services.getProgram(); - }, 200); - return services; -}; -var getEmit = function (path) { - files.add(path); - var program = services.getProgram(); - var source = program.getSourceFile(path); - var text; - program.emit(source, function (file, content) { - if (file.endsWith(".js")) { - text = content; - } - }, void 0, void 0); - if (!text) { - throw new Error("Typescript failed emit for file: ".concat(path)); - } - return text; -}; -var cache = new Map(); -var fromCache = function (fileName) { - var current = getScriptVersion(fileName); - if (cache.has(fileName)) { - var cached = cache.get(fileName); - if (cached.hash === current) { - return cached.content; - } - } - var path = nodePath.join(cacheDir, "".concat(typescript_1["default"].sys.createHash(fileName), ".hash")); - if (fs.existsSync(path)) { - var hash = fs.readFileSync(path).toString("utf-8"); - if (hash === current) { - return fs - .readFileSync(nodePath.join(cacheDir, "".concat(typescript_1["default"].sys.createHash(fileName), ".content"))) - .toString("utf-8"); - } - } -}; -exports.fromCache = fromCache; -var toCache = function (fileName, content) { - var current = getScriptVersion(fileName); - var path = nodePath.join(cacheDir, "".concat(typescript_1["default"].sys.createHash(fileName), ".hash")); - fs.writeFileSync(path, current); - fs.writeFileSync(nodePath.join(cacheDir, "".concat(typescript_1["default"].sys.createHash(fileName), ".content")), content); - cache.set(fileName, { hash: current, content: content }); - return content; -}; -exports.toCache = toCache; -var effectPlugin = function () { - return { - name: "effect-plugin", - setup: function (build) { - if (baseDir) { - var config = require(path.join(baseDir, "/remix.config.js")); - var useBabel = false; - if (babelConfigPath && typescript_1["default"].sys.fileExists(babelConfigPath)) { - if (config.future && "babel" in config.future && !config.future.babel) { - // config found but babel is disabled - } - else { - useBabel = true; - } - } - if (config.future && config.future.typescript && useBabel) { - if (!services) { - services = init(); - } - build.onLoad({ filter: /(.ts|.tsx|.tsx?browser)$/ }, function (args) { - var cached = (0, exports.fromCache)(args.path); - if (cached) { - return { - contents: cached, - loader: "js" - }; - } - var result = babel.transformSync(getEmit(args.path), { - filename: args.path, - configFile: babelConfigPath, - sourceMaps: "inline" - }); - if (result === null || result === void 0 ? void 0 : result.code) { - return { - contents: (0, exports.toCache)(args.path, result === null || result === void 0 ? void 0 : result.code), - loader: "js" - }; - } - throw new Error("Babel failed emit for file: ".concat(args.path)); - }); - } - else if (config.future && config.future.typescript) { - if (!services) { - services = init(); - } - build.onLoad({ filter: /(.ts|.tsx|.tsx?browser)$/ }, function (args) { - var cached = (0, exports.fromCache)(args.path); - if (cached) { - return { - contents: cached, - loader: "js" - }; - } - return { - contents: (0, exports.toCache)(args.path, getEmit(args.path)), - loader: "js" - }; - }); - } - else if (useBabel) { - build.onLoad({ filter: /(.ts|.tsx|.tsx?browser)$/ }, function (args) { - var cached = (0, exports.fromCache)(args.path); - if (cached) { - return { - contents: cached, - loader: "js" - }; - } - var result = babel.transformFileSync(args.path, { - configFile: babelConfigPath, - sourceMaps: "inline" - }); - if (result === null || result === void 0 ? void 0 : result.code) { - return { - contents: (0, exports.toCache)(args.path, result === null || result === void 0 ? void 0 : result.code), - loader: "js" - }; - } - throw new Error("Babel failed emit for file: ".concat(args.path)); - }); - } - } - } - }; -}; -exports.effectPlugin = effectPlugin; diff --git a/starter-remix-tsc/plugins-dev/package.json b/starter-remix-tsc/plugins-dev/package.json deleted file mode 100644 index fe76121..0000000 --- a/starter-remix-tsc/plugins-dev/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "@effect/remix-plugin", - "bin": { - "remix-effect": "out/index.js" - } -} diff --git a/starter-remix-tsc/plugins-dev/src/build.ts b/starter-remix-tsc/plugins-dev/src/build.ts deleted file mode 100644 index 1b74338..0000000 --- a/starter-remix-tsc/plugins-dev/src/build.ts +++ /dev/null @@ -1,27 +0,0 @@ -require("@remix-run/dev/dist/compiler/compileBrowser").createBrowserCompiler = - require("./compiler/browser").createBrowserCompiler; - -require("@remix-run/dev/dist/compiler/compilerServer").createServerCompiler = - require("./compiler/server").createServerCompiler; - -const index = require("@remix-run/dev/dist/index.js"); - -const cli = index.cli; -const argv = process.argv; - -process.env["NODE_ENV"] = "production"; -process.argv = [...argv, "build"]; - -cli.run().then( - () => { - process.exit(0); - }, - (error: any) => { - // for expected errors we only show the message (if any), no stack trace - if (error instanceof index.CliError) error = error.message; - if (error) console.error(error); - process.exit(1); - } -); - -export {}; diff --git a/starter-remix-tsc/plugins-dev/src/compiler/browser.ts b/starter-remix-tsc/plugins-dev/src/compiler/browser.ts deleted file mode 100644 index 70dd4d9..0000000 --- a/starter-remix-tsc/plugins-dev/src/compiler/browser.ts +++ /dev/null @@ -1,140 +0,0 @@ -import * as path from "path"; -import { builtinModules as nodeBuiltins } from "module"; -import * as esbuild from "esbuild"; -import { NodeModulesPolyfillPlugin } from "@esbuild-plugins/node-modules-polyfill"; - -import { type WriteChannel } from "@remix-run/dev/dist/channel"; -import { type RemixConfig } from "@remix-run/dev/dist/config"; -import { createAssetsManifest, type AssetsManifest } from "@remix-run/dev/dist/compiler/assets"; -import { getAppDependencies } from "@remix-run/dev/dist/compiler/dependencies"; -import { loaders } from "@remix-run/dev/dist/compiler/loaders"; -import { type CompileOptions } from "@remix-run/dev/dist/compiler/options"; -import { browserRouteModulesPlugin } from "@remix-run/dev/dist/compiler/plugins/browserRouteModulesPlugin"; -import { cssFilePlugin } from "@remix-run/dev/dist/compiler/plugins/cssFilePlugin"; -import { deprecatedRemixPackagePlugin } from "@remix-run/dev/dist/compiler/plugins/deprecatedRemixPackagePlugin"; -import { emptyModulesPlugin } from "@remix-run/dev/dist/compiler/plugins/emptyModulesPlugin"; -import { mdxPlugin } from "@remix-run/dev/dist/compiler/plugins/mdx"; -import { urlImportsPlugin } from "@remix-run/dev/dist/compiler/plugins/urlImportsPlugin"; -import { writeFileSafe } from "@remix-run/dev/dist/compiler/utils/fs"; -import { effectPlugin } from "../plugins/effect"; - -export type BrowserCompiler = { - // produce ./public/build/ - compile: (manifestChannel: WriteChannel) => Promise; - dispose: () => void; -}; - -const getExternals = (remixConfig: RemixConfig): string[] => { - // For the browser build, exclude node built-ins that don't have a - // browser-safe alternative installed in node_modules. Nothing should - // *actually* be external in the browser build (we want to bundle all deps) so - // this is really just making sure we don't accidentally have any dependencies - // on node built-ins in browser bundles. - let dependencies = Object.keys(getAppDependencies(remixConfig)); - let fakeBuiltins = nodeBuiltins.filter((mod) => dependencies.includes(mod)); - - if (fakeBuiltins.length > 0) { - throw new Error( - `It appears you're using a module that is built in to node, but you installed it as a dependency which could cause problems. Please remove ${fakeBuiltins.join( - ", " - )} before continuing.` - ); - } - return nodeBuiltins.filter((mod) => !dependencies.includes(mod)); -}; - -const writeAssetsManifest = async (config: RemixConfig, assetsManifest: AssetsManifest) => { - let filename = `manifest-${assetsManifest.version.toUpperCase()}.js`; - - assetsManifest.url = config.publicPath + filename; - - await writeFileSafe( - path.join(config.assetsBuildDirectory, filename), - `window.__remixManifest=${JSON.stringify(assetsManifest)};` - ); -}; - -const createEsbuildConfig = ( - config: RemixConfig, - options: CompileOptions -): esbuild.BuildOptions | esbuild.BuildIncremental => { - let entryPoints: esbuild.BuildOptions["entryPoints"] = { - "entry.client": path.resolve(config.appDirectory, config.entryClientFile), - }; - for (let id of Object.keys(config.routes)) { - // All route entry points are virtual modules that will be loaded by the - // browserEntryPointsPlugin. This allows us to tree-shake server-only code - // that we don't want to run in the browser (i.e. action & loader). - entryPoints[id] = config.routes[id].file + "?browser"; - } - - let plugins = [ - effectPlugin(), - deprecatedRemixPackagePlugin(options.onWarning), - cssFilePlugin(options), - urlImportsPlugin(), - mdxPlugin(config), - browserRouteModulesPlugin(config, /\?browser$/), - emptyModulesPlugin(config, /\.server(\.[jt]sx?)?$/), - NodeModulesPolyfillPlugin(), - ]; - - return { - entryPoints, - outdir: config.assetsBuildDirectory, - platform: "browser", - format: "esm", - external: getExternals(config), - loader: loaders, - bundle: true, - logLevel: "silent", - splitting: true, - sourcemap: options.sourcemap, - // As pointed out by https://github.com/evanw/esbuild/issues/2440, when tsconfig is set to - // `undefined`, esbuild will keep looking for a tsconfig.json recursively up. This unwanted - // behavior can only be avoided by creating an empty tsconfig file in the root directory. - tsconfig: config.tsconfigPath, - mainFields: ["browser", "module", "main"], - treeShaking: true, - minify: options.mode === "production", - entryNames: "[dir]/[name]-[hash]", - chunkNames: "_shared/[name]-[hash]", - assetNames: "_assets/[name]-[hash]", - publicPath: config.publicPath, - define: { - "process.env.NODE_ENV": JSON.stringify(options.mode), - "process.env.REMIX_DEV_SERVER_WS_PORT": JSON.stringify(config.devServerPort), - }, - jsx: "automatic", - jsxDev: options.mode !== "production", - plugins, - }; -}; - -export const createBrowserCompiler = ( - remixConfig: RemixConfig, - options: CompileOptions -): BrowserCompiler => { - let compiler: esbuild.BuildIncremental; - let esbuildConfig = createEsbuildConfig(remixConfig, options); - let compile = async (manifestChannel: WriteChannel) => { - let metafile: esbuild.Metafile; - if (compiler === undefined) { - compiler = await esbuild.build({ - ...esbuildConfig, - metafile: true, - incremental: true, - }); - metafile = compiler.metafile!; - } else { - metafile = (await compiler.rebuild()).metafile!; - } - let manifest = await createAssetsManifest(remixConfig, metafile); - manifestChannel.write(manifest); - await writeAssetsManifest(remixConfig, manifest); - }; - return { - compile, - dispose: () => compiler?.rebuild.dispose(), - }; -}; diff --git a/starter-remix-tsc/plugins-dev/src/compiler/server.ts b/starter-remix-tsc/plugins-dev/src/compiler/server.ts deleted file mode 100644 index e8e9760..0000000 --- a/starter-remix-tsc/plugins-dev/src/compiler/server.ts +++ /dev/null @@ -1,159 +0,0 @@ -import * as path from "path"; -import * as esbuild from "esbuild"; -import * as fse from "fs-extra"; -import { NodeModulesPolyfillPlugin } from "@esbuild-plugins/node-modules-polyfill"; - -import { type ReadChannel } from "@remix-run/dev/dist/channel"; -import { type RemixConfig } from "@remix-run/dev/dist/config"; -import { type AssetsManifest } from "@remix-run/dev/dist/compiler/assets"; -import { loaders } from "@remix-run/dev/dist/compiler/loaders"; -import { type CompileOptions } from "@remix-run/dev/dist/compiler/options"; -import { cssFilePlugin } from "@remix-run/dev/dist/compiler/plugins/cssFilePlugin"; -import { deprecatedRemixPackagePlugin } from "@remix-run/dev/dist/compiler/plugins/deprecatedRemixPackagePlugin"; -import { emptyModulesPlugin } from "@remix-run/dev/dist/compiler/plugins/emptyModulesPlugin"; -import { mdxPlugin } from "@remix-run/dev/dist/compiler/plugins/mdx"; -import { serverAssetsManifestPlugin } from "@remix-run/dev/dist/compiler/plugins/serverAssetsManifestPlugin"; -import { serverBareModulesPlugin } from "@remix-run/dev/dist/compiler/plugins/serverBareModulesPlugin"; -import { serverEntryModulePlugin } from "@remix-run/dev/dist/compiler/plugins/serverEntryModulePlugin"; -import { serverRouteModulesPlugin } from "@remix-run/dev/dist/compiler/plugins/serverRouteModulesPlugin"; -import { urlImportsPlugin } from "@remix-run/dev/dist/compiler/plugins/urlImportsPlugin"; -import { effectPlugin } from "../plugins/effect"; - -export type ServerCompiler = { - // produce ./build/index.js - compile: (manifestChannel: ReadChannel) => Promise; - dispose: () => void; -}; - -const createEsbuildConfig = ( - config: RemixConfig, - assetsManifestChannel: ReadChannel, - options: CompileOptions -): esbuild.BuildOptions => { - let stdin: esbuild.StdinOptions | undefined; - let entryPoints: string[] | undefined; - - if (config.serverEntryPoint) { - entryPoints = [config.serverEntryPoint]; - } else { - stdin = { - contents: config.serverBuildTargetEntryModule, - resolveDir: config.rootDirectory, - loader: "ts", - }; - } - - let isCloudflareRuntime = ["cloudflare-pages", "cloudflare-workers"].includes( - config.serverBuildTarget ?? "" - ); - let isDenoRuntime = config.serverBuildTarget === "deno"; - - let plugins: esbuild.Plugin[] = [ - deprecatedRemixPackagePlugin(options.onWarning), - cssFilePlugin(options), - urlImportsPlugin(), - mdxPlugin(config), - emptyModulesPlugin(config, /\.client(\.[jt]sx?)?$/), - serverRouteModulesPlugin(config), - serverEntryModulePlugin(config), - serverAssetsManifestPlugin(assetsManifestChannel.read()), - serverBareModulesPlugin(config, options.onWarning), - ]; - - if (config.serverPlatform !== "node") { - plugins.unshift(NodeModulesPolyfillPlugin()); - } - - plugins.unshift(effectPlugin()); - - return { - absWorkingDir: config.rootDirectory, - stdin, - entryPoints, - outfile: config.serverBuildPath, - conditions: isCloudflareRuntime ? ["worker"] : isDenoRuntime ? ["deno", "worker"] : undefined, - platform: config.serverPlatform, - format: config.serverModuleFormat, - treeShaking: true, - // The type of dead code elimination we want to do depends on the - // minify syntax property: https://github.com/evanw/esbuild/issues/672#issuecomment-1029682369 - // Dev builds are leaving code that should be optimized away in the - // bundle causing server / testing code to be shipped to the browser. - // These are properly optimized away in prod builds today, and this - // PR makes dev mode behave closer to production in terms of dead - // code elimination / tree shaking is concerned. - minifySyntax: true, - minify: options.mode === "production" && isCloudflareRuntime, - mainFields: isCloudflareRuntime - ? ["browser", "module", "main"] - : config.serverModuleFormat === "esm" - ? ["module", "main"] - : ["main", "module"], - target: options.target, - loader: loaders, - bundle: true, - logLevel: "silent", - // As pointed out by https://github.com/evanw/esbuild/issues/2440, when tsconfig is set to - // `undefined`, esbuild will keep looking for a tsconfig.json recursively up. This unwanted - // behavior can only be avoided by creating an empty tsconfig file in the root directory. - tsconfig: config.tsconfigPath, - sourcemap: options.sourcemap, // use linked (true) to fix up .map file - // The server build needs to know how to generate asset URLs for imports - // of CSS and other files. - assetNames: "_assets/[name]-[hash]", - publicPath: config.publicPath, - define: { - "process.env.NODE_ENV": JSON.stringify(options.mode), - "process.env.REMIX_DEV_SERVER_WS_PORT": JSON.stringify(config.devServerPort), - }, - jsx: "automatic", - jsxDev: options.mode !== "production", - plugins, - }; -}; - -async function writeServerBuildResult(config: RemixConfig, outputFiles: esbuild.OutputFile[]) { - await fse.ensureDir(path.dirname(config.serverBuildPath)); - - for (let file of outputFiles) { - if (file.path.endsWith(".js")) { - // fix sourceMappingURL to be relative to current path instead of /build - let filename = file.path.substring(file.path.lastIndexOf(path.sep) + 1); - let escapedFilename = filename.replace(/\./g, "\\."); - let pattern = `(//# sourceMappingURL=)(.*)${escapedFilename}`; - let contents = Buffer.from(file.contents).toString("utf-8"); - contents = contents.replace(new RegExp(pattern), `$1${filename}`); - await fse.writeFile(file.path, contents); - } else if (file.path.endsWith(".map")) { - // remove route: prefix from source filenames so breakpoints work - let contents = Buffer.from(file.contents).toString("utf-8"); - contents = contents.replace(/"route:/gm, '"'); - await fse.writeFile(file.path, contents); - } else { - let assetPath = path.join( - config.assetsBuildDirectory, - file.path.replace(path.dirname(config.serverBuildPath), "") - ); - await fse.ensureDir(path.dirname(assetPath)); - await fse.writeFile(assetPath, file.contents); - } - } -} - -export const createServerCompiler = ( - remixConfig: RemixConfig, - options: CompileOptions -): ServerCompiler => { - let compile = async (manifestChannel: ReadChannel) => { - let esbuildConfig = createEsbuildConfig(remixConfig, manifestChannel, options); - let { outputFiles } = await esbuild.build({ - ...esbuildConfig, - write: false, - }); - await writeServerBuildResult(remixConfig, outputFiles!); - }; - return { - compile, - dispose: () => undefined, - }; -}; diff --git a/starter-remix-tsc/plugins-dev/src/dev.ts b/starter-remix-tsc/plugins-dev/src/dev.ts deleted file mode 100644 index 6c98ffd..0000000 --- a/starter-remix-tsc/plugins-dev/src/dev.ts +++ /dev/null @@ -1,53 +0,0 @@ -require("@remix-run/dev/dist/compiler/compileBrowser").createBrowserCompiler = - require("./compiler/browser").createBrowserCompiler; -require("@remix-run/dev/dist/compiler/compilerServer").createServerCompiler = - require("./compiler/server").createServerCompiler; - -const index = require("@remix-run/dev/dist/index.js"); -const child = require("child_process"); - -const cli = index.cli; -const argv = process.argv; - -process.env["NODE_ENV"] = "development"; -process.argv = [...argv, "build"]; - -cli.run().then( - () => { - const forked = child.exec( - "cross-env NODE_ENV=development nodemon --require dotenv/config ./server.js --watch ./server.js", - (exit: any) => { - if (exit.code !== 0) { - process.exit(exit.code); - } - } - ); - - forked.stdout.pipe(process.stdout); - forked.stderr.pipe(process.stderr); - - process.argv = [...argv, "watch"]; - - cli.run().then( - () => { - forked.kill(0); - process.exit(0); - }, - (error: any) => { - forked.kill(1); - // for expected errors we only show the message (if any), no stack trace - if (error instanceof index.CliError) error = error.message; - if (error) console.error(error); - process.exit(1); - } - ); - }, - (error: any) => { - // for expected errors we only show the message (if any), no stack trace - if (error instanceof index.CliError) error = error.message; - if (error) console.error(error); - process.exit(1); - } -); - -export {}; diff --git a/starter-remix-tsc/plugins-dev/src/index.ts b/starter-remix-tsc/plugins-dev/src/index.ts deleted file mode 100644 index dc5f5e2..0000000 --- a/starter-remix-tsc/plugins-dev/src/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -if (process.argv[2] === "build") { - process.argv.pop(); - require("./build"); -} else { - process.argv.pop(); - require("./dev"); -} diff --git a/starter-remix-tsc/plugins-dev/src/plugins/effect.ts b/starter-remix-tsc/plugins-dev/src/plugins/effect.ts deleted file mode 100644 index 0d314bd..0000000 --- a/starter-remix-tsc/plugins-dev/src/plugins/effect.ts +++ /dev/null @@ -1,222 +0,0 @@ -import * as babel from "@babel/core"; -import * as nodePath from "path"; -import * as path from "path"; -import * as fs from "fs"; -import type * as esbuild from "esbuild"; -import ts from "typescript"; - -const configPath = ts.findConfigFile("./", ts.sys.fileExists, "tsconfig.json"); - -if (!configPath) { - throw new Error('Could not find a valid "tsconfig.json".'); -} - -const baseDir = nodePath.dirname(nodePath.resolve(configPath)); -const cacheDir = nodePath.join(baseDir, ".cache/effect"); - -if (!fs.existsSync(cacheDir)) { - fs.mkdirSync(cacheDir, { recursive: true }); -} - -const registry = ts.createDocumentRegistry(); -const files = new Set(); -const babelConfigPath = nodePath.join(baseDir, "babel.config.js"); - -let services: ts.LanguageService; - -const getScriptVersion = (fileName: string): string => { - const modified = ts.sys.getModifiedTime!(fileName); - if (modified) { - return ts.sys.createHash!(`${fileName}${modified.toISOString()}`); - } else { - files.delete(fileName); - } - return "none"; -}; - -const init = () => { - const { config } = ts.parseConfigFileTextToJson(configPath, ts.sys.readFile(configPath)!); - - Object.assign(config.compilerOptions, { - sourceMap: false, - inlineSourceMap: true, - inlineSources: true, - noEmit: false, - declaration: false, - declarationMap: false, - module: "ESNext", - target: "ES2022", - }); - - const tsconfig = ts.parseJsonConfigFileContent(config, ts.sys, baseDir!); - - if (!tsconfig.options) tsconfig.options = {}; - - tsconfig.fileNames.forEach((fileName) => { - files.add(fileName); - }); - - const servicesHost: ts.LanguageServiceHost = { - realpath: (fileName) => ts.sys.realpath?.(fileName) ?? fileName, - getScriptFileNames: () => Array.from(files), - getScriptVersion: getScriptVersion, - getScriptSnapshot: (fileName) => { - if (!ts.sys.fileExists(fileName)) { - return undefined; - } - return ts.ScriptSnapshot.fromString(ts.sys.readFile(fileName)!.toString()); - }, - getCurrentDirectory: () => process.cwd(), - getCompilationSettings: () => tsconfig.options, - getDefaultLibFileName: (options) => ts.getDefaultLibFilePath(options), - fileExists: (fileName) => ts.sys.fileExists(fileName), - readFile: (fileName) => ts.sys.readFile(fileName), - }; - - const services = ts.createLanguageService(servicesHost, registry); - - setTimeout(() => { - services.getProgram(); - }, 200); - - return services; -}; - -const getEmit = (path: string) => { - files.add(path); - - const program = services.getProgram()!; - const source = program.getSourceFile(path); - - let text: string | undefined; - - program.emit( - source, - (file, content) => { - if (file.endsWith(".js")) { - text = content; - } - }, - void 0, - void 0 - ); - - if (!text) { - throw new Error(`Typescript failed emit for file: ${path}`); - } - - return text; -}; - -const cache = new Map(); - -export const fromCache = (fileName: string) => { - const current = getScriptVersion(fileName); - if (cache.has(fileName)) { - const cached = cache.get(fileName)!; - if (cached.hash === current) { - return cached.content; - } - } - const path = nodePath.join(cacheDir, `${ts.sys.createHash!(fileName)}.hash`); - if (fs.existsSync(path)) { - const hash = fs.readFileSync(path).toString("utf-8"); - if (hash === current) { - return fs - .readFileSync(nodePath.join(cacheDir, `${ts.sys.createHash!(fileName)}.content`)) - .toString("utf-8"); - } - } -}; - -export const toCache = (fileName: string, content: string) => { - const current = getScriptVersion(fileName); - const path = nodePath.join(cacheDir, `${ts.sys.createHash!(fileName)}.hash`); - fs.writeFileSync(path, current); - fs.writeFileSync(nodePath.join(cacheDir, `${ts.sys.createHash!(fileName)}.content`), content); - cache.set(fileName, { hash: current, content }); - return content; -}; - -export const effectPlugin = (): esbuild.Plugin => { - return { - name: "effect-plugin", - setup(build: any) { - if (baseDir) { - const config = require(path.join(baseDir!, "/remix.config.js")); - let useBabel = false; - if (babelConfigPath && ts.sys.fileExists(babelConfigPath)) { - if (config.future && "babel" in config.future && !config.future.babel) { - // config found but babel is disabled - } else { - useBabel = true; - } - } - if (config.future && config.future.typescript && useBabel) { - if (!services) { - services = init(); - } - build.onLoad({ filter: /(.ts|.tsx|.tsx?browser)$/ }, (args: any) => { - const cached = fromCache(args.path); - if (cached) { - return { - contents: cached, - loader: "js", - }; - } - const result = babel.transformSync(getEmit(args.path), { - filename: args.path, - configFile: babelConfigPath, - sourceMaps: "inline", - }); - if (result?.code) { - return { - contents: toCache(args.path, result?.code), - loader: "js", - }; - } - throw new Error(`Babel failed emit for file: ${args.path}`); - }); - } else if (config.future && config.future.typescript) { - if (!services) { - services = init(); - } - build.onLoad({ filter: /(.ts|.tsx|.tsx?browser)$/ }, (args: any) => { - const cached = fromCache(args.path); - if (cached) { - return { - contents: cached, - loader: "js", - }; - } - return { - contents: toCache(args.path, getEmit(args.path)), - loader: "js", - }; - }); - } else if (useBabel) { - build.onLoad({ filter: /(.ts|.tsx|.tsx?browser)$/ }, (args: any) => { - const cached = fromCache(args.path); - if (cached) { - return { - contents: cached, - loader: "js", - }; - } - const result = babel.transformFileSync(args.path, { - configFile: babelConfigPath, - sourceMaps: "inline", - }); - if (result?.code) { - return { - contents: toCache(args.path, result?.code), - loader: "js", - }; - } - throw new Error(`Babel failed emit for file: ${args.path}`); - }); - } - } - }, - }; -}; diff --git a/starter-remix-tsc/plugins-dev/tsconfig.json b/starter-remix-tsc/plugins-dev/tsconfig.json deleted file mode 100644 index 48134eb..0000000 --- a/starter-remix-tsc/plugins-dev/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "lib": ["ES2018"], - "module": "CommonJS", - "strict": true, - "skipLibCheck": true, - "esModuleInterop": true, - "outDir": "out", - "isolatedModules": false - }, - "include": ["./src/**/*.ts"] -} diff --git a/starter-remix-tsc/pnpm-lock.yaml b/starter-remix-tsc/pnpm-lock.yaml index 1c45c0f..3e5c36a 100644 --- a/starter-remix-tsc/pnpm-lock.yaml +++ b/starter-remix-tsc/pnpm-lock.yaml @@ -4,13 +4,13 @@ specifiers: '@babel/core': ^7.20.5 '@babel/preset-env': ^7.20.2 '@babel/preset-typescript': ^7.18.6 - '@effect/language-service': ^0.0.11 - '@effect/remix-plugin': ./plugins-dev + '@effect/language-service': ^0.0.13 + '@effect/remix-plugin': ^0.0.3 '@remix-run/dev': ^1.8.2 - '@remix-run/eslint-config': ^1.8.1 - '@remix-run/express': ^1.8.1 - '@remix-run/node': ^1.8.1 - '@remix-run/react': ^1.8.1 + '@remix-run/eslint-config': ^1.8.2 + '@remix-run/express': ^1.8.2 + '@remix-run/node': ^1.8.2 + '@remix-run/react': ^1.8.2 '@types/babel__core': ^7.1.20 '@types/fs-extra': ^9.0.13 '@types/react': ^18.0.26 @@ -31,9 +31,9 @@ specifiers: typescript: https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.156/compiler/typescript.tgz dependencies: - '@remix-run/express': 1.8.1_cwk4saenierp7pa7l5cpbeswge - '@remix-run/node': 1.8.1_biqbaboplfbrettd7655fr4n2y - '@remix-run/react': 1.8.1_biqbaboplfbrettd7655fr4n2y + '@remix-run/express': 1.8.2_cwk4saenierp7pa7l5cpbeswge + '@remix-run/node': 1.8.2_biqbaboplfbrettd7655fr4n2y + '@remix-run/react': 1.8.2_biqbaboplfbrettd7655fr4n2y compression: 1.7.4 cross-env: 7.0.3 effect: 2.0.0-next.12 @@ -47,10 +47,10 @@ devDependencies: '@babel/core': 7.20.5 '@babel/preset-env': 7.20.2_@babel+core@7.20.5 '@babel/preset-typescript': 7.18.6_@babel+core@7.20.5 - '@effect/language-service': 0.0.11 - '@effect/remix-plugin': link:plugins-dev + '@effect/language-service': 0.0.13 + '@effect/remix-plugin': 0.0.3_biqbaboplfbrettd7655fr4n2y '@remix-run/dev': 1.8.2_biqbaboplfbrettd7655fr4n2y - '@remix-run/eslint-config': 1.8.1_ez7jd7eetwkj4ag7irqypgmcyu + '@remix-run/eslint-config': 1.8.2_ez7jd7eetwkj4ag7irqypgmcyu '@types/babel__core': 7.1.20 '@types/fs-extra': 9.0.13 '@types/react': 18.0.26 @@ -1391,14 +1391,13 @@ packages: '@effect/printer': 0.1.11 '@fp-ts/core': 0.0.9 '@fp-ts/data': 0.0.22 + dev: false - /@effect/language-service/0.0.11: - resolution: {integrity: sha512-1uE1dSWxn8RBVPH/0voXIZTDDboxHeE1mwJvWkMYyjzFjXTSST0zAa8N0l8XAqM0FSKrFYUbK4IvbH+QQ2vm+A==} + /@effect/language-service/0.0.13: + resolution: {integrity: sha512-OU/DVn8NP4pVZ3pxEk2quVedgt9vuD7L3A5w3pgXP5H7bKFLnw6OaAN3dr5PGmjwyrmCroABt/cbYrBvOIe4bg==} dependencies: - '@effect/io': 0.0.32 - '@effect/printer': 0.1.11 '@fp-ts/core': 0.0.9 - '@fp-ts/data': 0.0.22 + '@fp-ts/data': 0.0.26 dev: true /@effect/printer/0.1.11: @@ -1406,6 +1405,27 @@ packages: dependencies: '@fp-ts/core': 0.0.9 '@fp-ts/data': 0.0.22 + dev: false + + /@effect/remix-plugin/0.0.3_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-vlZWqA2TnGt/pvRdKZKOzKjLs6bcB+8RiL0W0aoiHpLi1FNkTc1L3ULilbrJDo3UTAMEMc2MIKatDRyAmhwPBQ==} + hasBin: true + dependencies: + '@babel/core': 7.20.5 + '@esbuild-plugins/node-modules-polyfill': 0.1.4_esbuild@0.16.4 + '@remix-run/dev': 1.8.2_biqbaboplfbrettd7655fr4n2y + esbuild: 0.16.4 + fs-extra: 11.1.0 + transitivePeerDependencies: + - '@remix-run/serve' + - bluebird + - bufferutil + - encoding + - react + - react-dom + - supports-color + - utf-8-validate + dev: true /@esbuild-plugins/node-modules-polyfill/0.1.4_esbuild@0.15.12: resolution: {integrity: sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==} @@ -1417,6 +1437,16 @@ packages: rollup-plugin-node-polyfills: 0.2.1 dev: true + /@esbuild-plugins/node-modules-polyfill/0.1.4_esbuild@0.16.4: + resolution: {integrity: sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==} + peerDependencies: + esbuild: '*' + dependencies: + esbuild: 0.16.4 + escape-string-regexp: 4.0.0 + rollup-plugin-node-polyfills: 0.2.1 + dev: true + /@esbuild/android-arm/0.15.12: resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==} engines: {node: '>=12'} @@ -1426,6 +1456,96 @@ packages: dev: true optional: true + /@esbuild/android-arm/0.16.4: + resolution: {integrity: sha512-rZzb7r22m20S1S7ufIc6DC6W659yxoOrl7sKP1nCYhuvUlnCFHVSbATG4keGUtV8rDz11sRRDbWkvQZpzPaHiw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.16.4: + resolution: {integrity: sha512-VPuTzXFm/m2fcGfN6CiwZTlLzxrKsWbPkG7ArRFpuxyaHUm/XFHQPD4xNwZT6uUmpIHhnSjcaCmcla8COzmZ5Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.16.4: + resolution: {integrity: sha512-MW+B2O++BkcOfMWmuHXB15/l1i7wXhJFqbJhp82IBOais8RBEQv2vQz/jHrDEHaY2X0QY7Wfw86SBL2PbVOr0g==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.16.4: + resolution: {integrity: sha512-a28X1O//aOfxwJVZVs7ZfM8Tyih2Za4nKJrBwW5Wm4yKsnwBy9aiS/xwpxiiTRttw3EaTg4Srerhcm6z0bu9Wg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.16.4: + resolution: {integrity: sha512-e3doCr6Ecfwd7VzlaQqEPrnbvvPjE9uoTpxG5pyLzr2rI2NMjDHmvY1E5EO81O/e9TUOLLkXA5m6T8lfjK9yAA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.16.4: + resolution: {integrity: sha512-Oup3G/QxBgvvqnXWrBed7xxkFNwAwJVHZcklWyQt7YCAL5bfUkaa6FVWnR78rNQiM8MqqLiT6ZTZSdUFuVIg1w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.16.4: + resolution: {integrity: sha512-vAP+eYOxlN/Bpo/TZmzEQapNS8W1njECrqkTpNgvXskkkJC2AwOXwZWai/Kc2vEFZUXQttx6UJbj9grqjD/+9Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.16.4: + resolution: {integrity: sha512-A47ZmtpIPyERxkSvIv+zLd6kNIOtJH03XA0Hy7jaceRDdQaQVGSDt4mZqpWqJYgDk9rg96aglbF6kCRvPGDSUA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.16.4: + resolution: {integrity: sha512-2zXoBhv4r5pZiyjBKrOdFP4CXOChxXiYD50LRUU+65DkdS5niPFHbboKZd/c81l0ezpw7AQnHeoCy5hFrzzs4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.16.4: + resolution: {integrity: sha512-uxdSrpe9wFhz4yBwt2kl2TxS/NWEINYBUFIxQtaEVtglm1eECvsj1vEKI0KX2k2wCe17zDdQ3v+jVxfwVfvvjw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64/0.15.12: resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==} engines: {node: '>=12'} @@ -1435,6 +1555,114 @@ packages: dev: true optional: true + /@esbuild/linux-loong64/0.16.4: + resolution: {integrity: sha512-peDrrUuxbZ9Jw+DwLCh/9xmZAk0p0K1iY5d2IcwmnN+B87xw7kujOkig6ZRcZqgrXgeRGurRHn0ENMAjjD5DEg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.16.4: + resolution: {integrity: sha512-sD9EEUoGtVhFjjsauWjflZklTNr57KdQ6xfloO4yH1u7vNQlOfAlhEzbyBKfgbJlW7rwXYBdl5/NcZ+Mg2XhQA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.16.4: + resolution: {integrity: sha512-X1HSqHUX9D+d0l6/nIh4ZZJ94eQky8d8z6yxAptpZE3FxCWYWvTDd9X9ST84MGZEJx04VYUD/AGgciddwO0b8g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.16.4: + resolution: {integrity: sha512-97ANpzyNp0GTXCt6SRdIx1ngwncpkV/z453ZuxbnBROCJ5p/55UjhbaG23UdHj88fGWLKPFtMoU4CBacz4j9FA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.16.4: + resolution: {integrity: sha512-pUvPQLPmbEeJRPjP0DYTC1vjHyhrnCklQmCGYbipkep+oyfTn7GTBJXoPodR7ZS5upmEyc8lzAkn2o29wD786A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.16.4: + resolution: {integrity: sha512-N55Q0mJs3Sl8+utPRPBrL6NLYZKBCLLx0bme/+RbjvMforTGGzFvsRl4xLTZMUBFC1poDzBEPTEu5nxizQ9Nlw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.16.4: + resolution: {integrity: sha512-LHSJLit8jCObEQNYkgsDYBh2JrJT53oJO2HVdkSYLa6+zuLJh0lAr06brXIkljrlI+N7NNW1IAXGn/6IZPi3YQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.16.4: + resolution: {integrity: sha512-nLgdc6tWEhcCFg/WVFaUxHcPK3AP/bh+KEwKtl69Ay5IBqUwKDaq/6Xk0E+fh/FGjnLwqFSsarsbPHeKM8t8Sw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.16.4: + resolution: {integrity: sha512-08SluG24GjPO3tXKk95/85n9kpyZtXCVwURR2i4myhrOfi3jspClV0xQQ0W0PYWHioJj+LejFMt41q+PG3mlAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.16.4: + resolution: {integrity: sha512-yYiRDQcqLYQSvNQcBKN7XogbrSvBE45FEQdH8fuXPl7cngzkCvpsG2H9Uey39IjQ6gqqc+Q4VXYHsQcKW0OMjQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.16.4: + resolution: {integrity: sha512-5rabnGIqexekYkh9zXG5waotq8mrdlRoBqAktjx2W3kb0zsI83mdCwrcAeKYirnUaTGztR5TxXcXmQrEzny83w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.16.4: + resolution: {integrity: sha512-sN/I8FMPtmtT2Yw+Dly8Ur5vQ5a/RmC8hW7jO9PtPSQUPkowxWpcUZnqOggU7VwyT3Xkj6vcXWd3V/qTXwultQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@eslint/eslintrc/1.3.3: resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1459,6 +1687,13 @@ packages: resolution: {integrity: sha512-chgnnyMAT17WCfAIbD8vvnJOsPtA2Xi79oMNklexprI9YaV/2u8QeeerHCYKuEJihK6GuIJtAYSsOwjBYMfWcQ==} dependencies: '@fp-ts/core': 0.0.9 + dev: false + + /@fp-ts/data/0.0.26: + resolution: {integrity: sha512-b8UyUEQtEsJj71sRrR7xtIJ2Lnppc27KgKWtoJ45gnOBUvpsnx2jkxcX0xT+ROMq0cIY6sBiSGS7sL34M4bjUA==} + dependencies: + '@fp-ts/core': 0.0.9 + dev: true /@fp-ts/optic/0.0.5: resolution: {integrity: sha512-fJqD8XVoFVtkCY4D6o9CiCNxhCNRrYXpukl714+KSqJeQgEuEdpyldf+F33anyppEWjbGE2QnkHpuKlFXsRSkw==} @@ -1662,8 +1897,8 @@ packages: - utf-8-validate dev: true - /@remix-run/eslint-config/1.8.1_ez7jd7eetwkj4ag7irqypgmcyu: - resolution: {integrity: sha512-k8x1hb8mW57k2k3koYOWNkl2Q7N/D+0M00nedXSnXfFhL8W2tCVAcTLQRksXseEODGL/nBlqGVktJCqS4UK0eQ==} + /@remix-run/eslint-config/1.8.2_ez7jd7eetwkj4ag7irqypgmcyu: + resolution: {integrity: sha512-wHjDFXIQiXvjyyXVr0KdtcIpEXTgyQv+HipwtKZi7R81n9iXZ+4XqXzOuU+DBJ2RPxrMHh9qHCXhllRXPxE0Rw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^8.0.0 @@ -1677,13 +1912,13 @@ packages: '@babel/eslint-parser': 7.19.1_xthtwe2nrrwct2fnasddpvoro4 '@babel/preset-react': 7.18.6_@babel+core@7.20.5 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/eslint-plugin': 5.45.1_ee2yo2zhk6vba7trjmb7mbb2ni - '@typescript-eslint/parser': 5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim + '@typescript-eslint/eslint-plugin': 5.46.1_7ittljlxprnbwuijpvbfdmonq4 + '@typescript-eslint/parser': 5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim eslint: 8.29.0 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 3.5.2_lt3hqehuojhfcbzgzqfngbtmrq - eslint-plugin-import: 2.26.0_qfsg7upu5e4dqco5ntekgyqxwu - eslint-plugin-jest: 26.9.0_prvgdjzvbtytb3uthza42hckma + eslint-plugin-import: 2.26.0_533pwayltjtlmylu2h73yxcye4 + eslint-plugin-jest: 26.9.0_kvaa2stbtukujm52wi3kzrn7au eslint-plugin-jest-dom: 4.0.3_eslint@8.29.0 eslint-plugin-jsx-a11y: 6.6.1_eslint@8.29.0 eslint-plugin-node: 11.1.0_eslint@8.29.0 @@ -1698,24 +1933,24 @@ packages: - supports-color dev: true - /@remix-run/express/1.8.1_cwk4saenierp7pa7l5cpbeswge: - resolution: {integrity: sha512-wuQJaLivLgr5i6rNoxSdhZs6UwKJ0oKc5FdmA9BAOEWoXhCejp0VG/9Zs0dHu907RQc4L4Javeg5cFY0tmWuXg==} + /@remix-run/express/1.8.2_cwk4saenierp7pa7l5cpbeswge: + resolution: {integrity: sha512-9RPOhAy734HXumxk7D5Sw1ulWOD38hhq42Wrj8DA6hmtjzSvbUzEwCss8Hhh5fIhQqUW+tzZ5U9FJ3b8C8rUpg==} engines: {node: '>=14'} peerDependencies: express: ^4.17.1 dependencies: - '@remix-run/node': 1.8.1_biqbaboplfbrettd7655fr4n2y + '@remix-run/node': 1.8.2_biqbaboplfbrettd7655fr4n2y express: 4.18.2 transitivePeerDependencies: - react - react-dom dev: false - /@remix-run/node/1.8.1_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-kln2+fRjlFhCmpX1dVxMvuGPoREIwo3Oio34VXlsa7T/e57m/i+bp0Ptn/ZjuakNsbSE/l4Epami4Y7OgDmTIA==} + /@remix-run/node/1.8.2_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-I5quBtYVL9jEuToAIcoL5OsyUyC06pr3v619V8/HgrlufBV6fYW6jV6O6GVEf5wpkwEHiCgZQc73jzW6XzqX2Q==} engines: {node: '>=14'} dependencies: - '@remix-run/server-runtime': 1.8.1_biqbaboplfbrettd7655fr4n2y + '@remix-run/server-runtime': 1.8.2_biqbaboplfbrettd7655fr4n2y '@remix-run/web-fetch': 4.3.2 '@remix-run/web-file': 3.0.2 '@remix-run/web-stream': 1.0.3 @@ -1729,8 +1964,8 @@ packages: - react-dom dev: false - /@remix-run/react/1.8.1_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-OjEKZJTaZQjxgMeaqywxF7omdWQq48s9sqlxkrmXMu+Ch1OUP7+XBYXMPsY5K9G+yJSMqVUqFU6VhBlLoCpsgw==} + /@remix-run/react/1.8.2_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-awH9kUFq9EMCaYStOHL4O04QE6eLexSc851EAg4FGGoW6jGrDU6KYrnwimLj7rj166XjXmlpnAaXd21/dSSXGw==} engines: {node: '>=14'} peerDependencies: react: '>=16.8' @@ -1742,33 +1977,9 @@ packages: react-router-dom: 6.3.0_biqbaboplfbrettd7655fr4n2y dev: false - /@remix-run/router/1.0.4: - resolution: {integrity: sha512-gTL8H5USTAKOyVA4xczzDJnC3HMssdFa3tRlwBicXynx9XfiXwneHnYQogwSKpdCkjXISrEKSTtX62rLpNEVQg==} - engines: {node: '>=14'} - dev: false - /@remix-run/router/1.0.5: resolution: {integrity: sha512-my0Mycd+jruq/1lQuO5LBB6WTlL/e8DTCYWp44DfMTDcXz8DcTlgF0ISaLsGewt+ctHN+yA8xMq3q/N7uWJPug==} engines: {node: '>=14'} - dev: true - - /@remix-run/server-runtime/1.8.1_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-GcOhrQOB5E1vSPUA1OLzPRRyHErdA6QsKpz4LAw2rayvpBd47bhU18bFBJEPr1vwmimgeU/9QnopUHz5/eOZ5w==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@remix-run/router': 1.0.4 - '@types/cookie': 0.4.1 - '@web3-storage/multipart-parser': 1.0.0 - cookie: 0.4.2 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - react-router-dom: 6.3.0_biqbaboplfbrettd7655fr4n2y - set-cookie-parser: 2.5.1 - source-map: 0.7.4 - dev: false /@remix-run/server-runtime/1.8.2_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-6VLootGC4SyhG1qOOVeXsBrJ3/E3GoQ8YJh5W4IRofO5hNWWy5e4dp/z758RCTGFk4pKGjj64KSnh7NBeS0afA==} @@ -1786,7 +1997,6 @@ packages: react-router-dom: 6.3.0_biqbaboplfbrettd7655fr4n2y set-cookie-parser: 2.5.1 source-map: 0.7.4 - dev: true /@remix-run/web-blob/3.0.4: resolution: {integrity: sha512-AfegzZvSSDc+LwnXV+SwROTrDtoLiPxeFW+jxgvtDAnkuCX1rrzmVJ6CzqZ1Ai0bVfmJadkG5GxtAfYclpPmgw==} @@ -2037,8 +2247,8 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true - /@typescript-eslint/eslint-plugin/5.45.1_ee2yo2zhk6vba7trjmb7mbb2ni: - resolution: {integrity: sha512-cOizjPlKEh0bXdFrBLTrI/J6B/QMlhwE9auOov53tgB+qMukH6/h8YAK/qw+QJGct/PTbdh2lytGyipxCcEtAw==} + /@typescript-eslint/eslint-plugin/5.46.1_7ittljlxprnbwuijpvbfdmonq4: + resolution: {integrity: sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -2048,10 +2258,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim - '@typescript-eslint/scope-manager': 5.45.1 - '@typescript-eslint/type-utils': 5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim - '@typescript-eslint/utils': 5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim + '@typescript-eslint/parser': 5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim + '@typescript-eslint/scope-manager': 5.46.1 + '@typescript-eslint/type-utils': 5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim + '@typescript-eslint/utils': 5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim debug: 4.3.4 eslint: 8.29.0 ignore: 5.2.1 @@ -2064,8 +2274,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim: - resolution: {integrity: sha512-JQ3Ep8bEOXu16q0ztsatp/iQfDCtvap7sp/DKo7DWltUquj5AfCOpX2zSzJ8YkAVnrQNqQ5R62PBz2UtrfmCkA==} + /@typescript-eslint/parser/5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim: + resolution: {integrity: sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -2074,9 +2284,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.45.1 - '@typescript-eslint/types': 5.45.1 - '@typescript-eslint/typescript-estree': 5.45.1_znpd4fdk5qqo73x5rppunyfwjm + '@typescript-eslint/scope-manager': 5.46.1 + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/typescript-estree': 5.46.1_znpd4fdk5qqo73x5rppunyfwjm debug: 4.3.4 eslint: 8.29.0 typescript: '@cdn.jsdelivr.net/npm/@tsplus/installer@0.0.156/compiler/typescript.tgz' @@ -2084,16 +2294,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.45.1: - resolution: {integrity: sha512-D6fCileR6Iai7E35Eb4Kp+k0iW7F1wxXYrOhX/3dywsOJpJAQ20Fwgcf+P/TDtvQ7zcsWsrJaglaQWDhOMsspQ==} + /@typescript-eslint/scope-manager/5.46.1: + resolution: {integrity: sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.45.1 - '@typescript-eslint/visitor-keys': 5.45.1 + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/visitor-keys': 5.46.1 dev: true - /@typescript-eslint/type-utils/5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim: - resolution: {integrity: sha512-aosxFa+0CoYgYEl3aptLe1svP910DJq68nwEJzyQcrtRhC4BN0tJAvZGAe+D0tzjJmFXe+h4leSsiZhwBa2vrA==} + /@typescript-eslint/type-utils/5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim: + resolution: {integrity: sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2102,8 +2312,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.45.1_znpd4fdk5qqo73x5rppunyfwjm - '@typescript-eslint/utils': 5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim + '@typescript-eslint/typescript-estree': 5.46.1_znpd4fdk5qqo73x5rppunyfwjm + '@typescript-eslint/utils': 5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim debug: 4.3.4 eslint: 8.29.0 tsutils: 3.21.0 @@ -2112,13 +2322,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.45.1: - resolution: {integrity: sha512-HEW3U0E5dLjUT+nk7b4lLbOherS1U4ap+b9pfu2oGsW3oPu7genRaY9dDv3nMczC1rbnRY2W/D7SN05wYoGImg==} + /@typescript-eslint/types/5.46.1: + resolution: {integrity: sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.45.1_znpd4fdk5qqo73x5rppunyfwjm: - resolution: {integrity: sha512-76NZpmpCzWVrrb0XmYEpbwOz/FENBi+5W7ipVXAsG3OoFrQKJMiaqsBMbvGRyLtPotGqUfcY7Ur8j0dksDJDng==} + /@typescript-eslint/typescript-estree/5.46.1_znpd4fdk5qqo73x5rppunyfwjm: + resolution: {integrity: sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -2126,8 +2336,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.45.1 - '@typescript-eslint/visitor-keys': 5.45.1 + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/visitor-keys': 5.46.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -2138,17 +2348,17 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim: - resolution: {integrity: sha512-rlbC5VZz68+yjAzQBc4I7KDYVzWG2X/OrqoZrMahYq3u8FFtmQYc+9rovo/7wlJH5kugJ+jQXV5pJMnofGmPRw==} + /@typescript-eslint/utils/5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim: + resolution: {integrity: sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.45.1 - '@typescript-eslint/types': 5.45.1 - '@typescript-eslint/typescript-estree': 5.45.1_znpd4fdk5qqo73x5rppunyfwjm + '@typescript-eslint/scope-manager': 5.46.1 + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/typescript-estree': 5.46.1_znpd4fdk5qqo73x5rppunyfwjm eslint: 8.29.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.29.0 @@ -2158,11 +2368,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.45.1: - resolution: {integrity: sha512-cy9ln+6rmthYWjH9fmx+5FU/JDpjQb586++x2FZlveq7GdGuLLW9a2Jcst2TGekH82bXpfmRNSwP9tyEs6RjvQ==} + /@typescript-eslint/visitor-keys/5.46.1: + resolution: {integrity: sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.45.1 + '@typescript-eslint/types': 5.46.1 eslint-visitor-keys: 3.3.0 dev: true @@ -2323,7 +2533,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 get-intrinsic: 1.1.3 is-string: 1.0.7 dev: true @@ -2344,7 +2554,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 es-shim-unscopables: 1.0.0 dev: true @@ -2354,7 +2564,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 es-shim-unscopables: 1.0.0 dev: true @@ -2363,7 +2573,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 es-shim-unscopables: 1.0.0 get-intrinsic: 1.1.3 dev: true @@ -2413,8 +2623,8 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - /axe-core/4.5.2: - resolution: {integrity: sha512-u2MVsXfew5HBvjsczCv+xlwdNnB1oQR9HlAcsejZttNjKKSkeDNVwB1vMThIUIFI9GoT57Vtk8iQLwqOfAkboA==} + /axe-core/4.6.0: + resolution: {integrity: sha512-L3ZNbXPTxMrl0+qTXAzn9FBRvk5XdO56K8CvcCKtlxv44Aw2w2NCclGuvCWxHPw1Riiq3ncP/sxFYj2nUqdoTw==} engines: {node: '>=4'} dev: true @@ -3265,6 +3475,37 @@ packages: unbox-primitive: 1.0.2 dev: true + /es-abstract/1.20.5: + resolution: {integrity: sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.1.3 + get-symbol-description: 1.0.0 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.2 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + unbox-primitive: 1.0.2 + dev: true + /es-get-iterator/1.1.2: resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==} dependencies: @@ -3503,6 +3744,36 @@ packages: esbuild-windows-arm64: 0.15.12 dev: true + /esbuild/0.16.4: + resolution: {integrity: sha512-qQrPMQpPTWf8jHugLWHoGqZjApyx3OEm76dlTXobHwh/EBbavbRdjXdYi/GWr43GyN0sfpap14GPkb05NH3ROA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.16.4 + '@esbuild/android-arm64': 0.16.4 + '@esbuild/android-x64': 0.16.4 + '@esbuild/darwin-arm64': 0.16.4 + '@esbuild/darwin-x64': 0.16.4 + '@esbuild/freebsd-arm64': 0.16.4 + '@esbuild/freebsd-x64': 0.16.4 + '@esbuild/linux-arm': 0.16.4 + '@esbuild/linux-arm64': 0.16.4 + '@esbuild/linux-ia32': 0.16.4 + '@esbuild/linux-loong64': 0.16.4 + '@esbuild/linux-mips64el': 0.16.4 + '@esbuild/linux-ppc64': 0.16.4 + '@esbuild/linux-riscv64': 0.16.4 + '@esbuild/linux-s390x': 0.16.4 + '@esbuild/linux-x64': 0.16.4 + '@esbuild/netbsd-x64': 0.16.4 + '@esbuild/openbsd-x64': 0.16.4 + '@esbuild/sunos-x64': 0.16.4 + '@esbuild/win32-arm64': 0.16.4 + '@esbuild/win32-ia32': 0.16.4 + '@esbuild/win32-x64': 0.16.4 + dev: true + /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -3553,9 +3824,9 @@ packages: debug: 4.3.4 enhanced-resolve: 5.12.0 eslint: 8.29.0 - eslint-plugin-import: 2.26.0_qfsg7upu5e4dqco5ntekgyqxwu + eslint-plugin-import: 2.26.0_533pwayltjtlmylu2h73yxcye4 get-tsconfig: 4.2.0 - globby: 13.1.2 + globby: 13.1.3 is-core-module: 2.11.0 is-glob: 4.0.3 synckit: 0.8.4 @@ -3563,7 +3834,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_wbv6cezew2qbikiravago3ef2u: + /eslint-module-utils/2.7.4_o2m23qb6cidzxlgoxlhvqp5c5y: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -3584,7 +3855,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim + '@typescript-eslint/parser': 5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim debug: 3.2.7 eslint: 8.29.0 eslint-import-resolver-node: 0.3.6 @@ -3604,7 +3875,7 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_qfsg7upu5e4dqco5ntekgyqxwu: + /eslint-plugin-import/2.26.0_533pwayltjtlmylu2h73yxcye4: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: @@ -3614,14 +3885,14 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim + '@typescript-eslint/parser': 5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim array-includes: 3.1.6 array.prototype.flat: 1.3.1 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.29.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_wbv6cezew2qbikiravago3ef2u + eslint-module-utils: 2.7.4_o2m23qb6cidzxlgoxlhvqp5c5y has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -3647,7 +3918,7 @@ packages: requireindex: 1.2.0 dev: true - /eslint-plugin-jest/26.9.0_prvgdjzvbtytb3uthza42hckma: + /eslint-plugin-jest/26.9.0_kvaa2stbtukujm52wi3kzrn7au: resolution: {integrity: sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3660,8 +3931,8 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.45.1_ee2yo2zhk6vba7trjmb7mbb2ni - '@typescript-eslint/utils': 5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim + '@typescript-eslint/eslint-plugin': 5.46.1_7ittljlxprnbwuijpvbfdmonq4 + '@typescript-eslint/utils': 5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim eslint: 8.29.0 transitivePeerDependencies: - supports-color @@ -3678,7 +3949,7 @@ packages: aria-query: 4.2.2 array-includes: 3.1.6 ast-types-flow: 0.0.7 - axe-core: 4.5.2 + axe-core: 4.6.0 axobject-query: 2.2.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 @@ -3744,7 +4015,7 @@ packages: peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.45.1_vqaaqu6uebsg4g2ljw6ndzhtim + '@typescript-eslint/utils': 5.46.1_vqaaqu6uebsg4g2ljw6ndzhtim eslint: 8.29.0 transitivePeerDependencies: - supports-color @@ -4257,6 +4528,15 @@ packages: universalify: 2.0.0 dev: true + /fs-extra/11.1.0: + resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + /fs-extra/8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} @@ -4302,7 +4582,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 functions-have-names: 1.2.3 dev: true @@ -4441,8 +4721,8 @@ packages: slash: 3.0.0 dev: true - /globby/13.1.2: - resolution: {integrity: sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==} + /globby/13.1.3: + resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 @@ -6150,7 +6430,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 dev: true /object.fromentries/2.0.6: @@ -6159,14 +6439,14 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 dev: true /object.hasown/1.1.2: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 dev: true /object.pick/1.3.0: @@ -6182,7 +6462,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 dev: true /on-finished/2.3.0: @@ -7319,7 +7599,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 get-intrinsic: 1.1.3 has-symbols: 1.0.3 internal-slot: 1.0.3 @@ -7341,7 +7621,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 dev: true /string.prototype.trimstart/1.0.6: @@ -7349,7 +7629,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.4 + es-abstract: 1.20.5 dev: true /string_decoder/0.10.31: