Reapply "fix(Navigation): Store/recover navigation history in the app (#9284)"

This reverts commit 39a18786a8.
This commit is contained in:
Vivek Thuravupala
2025-10-21 18:02:40 -07:00
parent ef355583d8
commit a6eed96370
5 changed files with 324 additions and 336 deletions

622
package-lock.json generated
View File

@@ -6066,283 +6066,6 @@
"react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@react-router/dev": {
"version": "7.7.0",
"resolved": "https://registry.npmjs.org/@react-router/dev/-/dev-7.7.0.tgz",
"integrity": "sha512-z6tJ0US20pS/YpaPz59SJgSH+1BJ6xvQmQ/u4Y4HM1uLOa4b3Mleg3KujqAvwGP5wkMkNFz3Ae2g6/kDTFyuCA==",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.27.7",
"@babel/generator": "^7.27.5",
"@babel/parser": "^7.27.7",
"@babel/plugin-syntax-jsx": "^7.27.1",
"@babel/preset-typescript": "^7.27.1",
"@babel/traverse": "^7.27.7",
"@babel/types": "^7.27.7",
"@npmcli/package-json": "^4.0.1",
"@react-router/node": "7.7.0",
"arg": "^5.0.1",
"babel-dead-code-elimination": "^1.0.6",
"chokidar": "^4.0.0",
"dedent": "^1.5.3",
"es-module-lexer": "^1.3.1",
"exit-hook": "2.2.1",
"isbot": "^5.1.11",
"jsesc": "3.0.2",
"lodash": "^4.17.21",
"pathe": "^1.1.2",
"picocolors": "^1.1.1",
"prettier": "^2.7.1",
"react-refresh": "^0.14.0",
"semver": "^7.3.7",
"set-cookie-parser": "^2.6.0",
"tinyglobby": "^0.2.14",
"valibot": "^0.41.0",
"vite-node": "^3.2.2"
},
"bin": {
"react-router": "bin.js"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"@react-router/serve": "^7.7.0",
"react-router": "^7.7.0",
"typescript": "^5.1.0",
"vite": "^5.1.0 || ^6.0.0 || ^7.0.0",
"wrangler": "^3.28.2 || ^4.0.0"
},
"peerDependenciesMeta": {
"@react-router/serve": {
"optional": true
},
"typescript": {
"optional": true
},
"wrangler": {
"optional": true
}
}
},
"node_modules/@react-router/dev/node_modules/chokidar": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
"integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"license": "MIT",
"dependencies": {
"readdirp": "^4.0.1"
},
"engines": {
"node": ">= 14.16.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@react-router/dev/node_modules/debug": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
"integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/@react-router/dev/node_modules/jsesc": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
"integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
"license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@react-router/dev/node_modules/pathe": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
"integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
"license": "MIT"
},
"node_modules/@react-router/dev/node_modules/prettier": {
"version": "2.8.8",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
"license": "MIT",
"bin": {
"prettier": "bin-prettier.js"
},
"engines": {
"node": ">=10.13.0"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/@react-router/dev/node_modules/readdirp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
"integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
"license": "MIT",
"engines": {
"node": ">= 14.18.0"
},
"funding": {
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@react-router/dev/node_modules/vite-node": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz",
"integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
"license": "MIT",
"dependencies": {
"cac": "^6.7.14",
"debug": "^4.4.1",
"es-module-lexer": "^1.7.0",
"pathe": "^2.0.3",
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
},
"bin": {
"vite-node": "vite-node.mjs"
},
"engines": {
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@react-router/dev/node_modules/vite-node/node_modules/pathe": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
"integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
"license": "MIT"
},
"node_modules/@react-router/express": {
"version": "7.7.0",
"resolved": "https://registry.npmjs.org/@react-router/express/-/express-7.7.0.tgz",
"integrity": "sha512-R86v1qAbj3i/tG00gFM90P3nXR+B66qkp3bbaqm9VnTkbkqUCcHnVaQn64qBOl5g34FdJUMt84UsLS6v2mT/iQ==",
"license": "MIT",
"dependencies": {
"@react-router/node": "7.7.0"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"express": "^4.17.1 || ^5",
"react-router": "7.7.0",
"typescript": "^5.1.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@react-router/fs-routes": {
"version": "7.7.0",
"resolved": "https://registry.npmjs.org/@react-router/fs-routes/-/fs-routes-7.7.0.tgz",
"integrity": "sha512-Ckvp35DJ6Y3KNQkNas2Uzv5i0FNngKhTVZDmCeE+tZ585IH6PQq6hhXjX/aHdL4J/sSLKqS3jBbCuya5OiESsg==",
"license": "MIT",
"dependencies": {
"minimatch": "^9.0.0"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"@react-router/dev": "^7.7.0",
"typescript": "^5.1.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@react-router/fs-routes/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@react-router/fs-routes/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@react-router/node": {
"version": "7.7.0",
"resolved": "https://registry.npmjs.org/@react-router/node/-/node-7.7.0.tgz",
"integrity": "sha512-PTl4C+QjWsbTfp+9mybOzIH10ZM/pjZrAlcoxc/KGYxcfWDEe2GDFFBQN6nGZgJe/0SwSjHsVwqo2haMKgTbvQ==",
"license": "MIT",
"dependencies": {
"@mjackson/node-fetch-server": "^0.2.0"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"react-router": "7.7.0",
"typescript": "^5.1.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@react-router/serve": {
"version": "7.7.0",
"resolved": "https://registry.npmjs.org/@react-router/serve/-/serve-7.7.0.tgz",
"integrity": "sha512-XvJAY4Sgv7HxdSuLgkBP8bFXxfI97HJSk+p2BisdtK6JT/nSZugEe0gju4xAkgtsncNJJBVndJTcfUtTDNLTUQ==",
"license": "MIT",
"dependencies": {
"@react-router/express": "7.7.0",
"@react-router/node": "7.7.0",
"compression": "^1.7.4",
"express": "^4.19.2",
"get-port": "5.1.1",
"morgan": "^1.10.0",
"source-map-support": "^0.5.21"
},
"bin": {
"react-router-serve": "bin.js"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"react-router": "7.7.0"
}
},
"node_modules/@react-stately/autocomplete": {
"version": "3.0.0-beta.3",
"resolved": "https://registry.npmjs.org/@react-stately/autocomplete/-/autocomplete-3.0.0-beta.3.tgz",
@@ -7162,6 +6885,12 @@
"react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
"node_modules/@remix-run/node-fetch-server": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/@remix-run/node-fetch-server/-/node-fetch-server-0.9.0.tgz",
"integrity": "sha512-SoLMv7dbH+njWzXnOY6fI08dFMI5+/dQ+vY3n8RnnbdG7MdJEgiP28Xj/xWlnRnED/aB6SFw56Zop+LbmaaKqA==",
"license": "MIT"
},
"node_modules/@rolldown/pluginutils": {
"version": "1.0.0-beta.32",
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz",
@@ -22227,7 +21956,6 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
"integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
"dev": true,
"license": "MIT"
},
"node_modules/pathval": {
@@ -23283,37 +23011,6 @@
"react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
}
},
"node_modules/react-router": {
"version": "7.7.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-7.7.0.tgz",
"integrity": "sha512-3FUYSwlvB/5wRJVTL/aavqHmfUKe0+Xm9MllkYgGo9eDwNdkvwlJGjpPxono1kCycLt6AnDTgjmXvK3/B4QGuw==",
"license": "MIT",
"dependencies": {
"cookie": "^1.0.1",
"set-cookie-parser": "^2.6.0"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"react": ">=18",
"react-dom": ">=18"
},
"peerDependenciesMeta": {
"react-dom": {
"optional": true
}
}
},
"node_modules/react-router/node_modules/cookie": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz",
"integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/react-stately": {
"version": "3.41.0",
"resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.41.0.tgz",
@@ -26565,20 +26262,6 @@
"uuid": "dist/bin/uuid"
}
},
"node_modules/valibot": {
"version": "0.41.0",
"resolved": "https://registry.npmjs.org/valibot/-/valibot-0.41.0.tgz",
"integrity": "sha512-igDBb8CTYr8YTQlOKgaN9nSS0Be7z+WRuaeYqGf3Cjz3aKmSnqEmYnkfVjzIuumGqfHpa3fLIvMEAfhrpqN8ng==",
"license": "MIT",
"peerDependencies": {
"typescript": ">=5"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
@@ -26710,7 +26393,6 @@
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz",
"integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
"dev": true,
"license": "MIT",
"dependencies": {
"cac": "^6.7.14",
@@ -27555,9 +27237,9 @@
"@grpc/grpc-js": "^1.13.3",
"@grpc/proto-loader": "^0.7.13",
"@mismerge/core": "^1.2.1",
"@react-router/fs-routes": "^7.7.0",
"@react-router/node": "^7.7.0",
"@react-router/serve": "^7.7.0",
"@react-router/fs-routes": "^7.9.4",
"@react-router/node": "^7.9.4",
"@react-router/serve": "^7.9.4",
"@seald-io/nedb": "^4.1.1",
"@segment/analytics-node": "2.2.1",
"@sentry/electron": "^6.5.0",
@@ -27627,7 +27309,7 @@
"react-aria-components": "^1.12.2",
"react-dom": "^18.3.1",
"react-resizable-panels": "^3.0.6",
"react-router": "^7.7.0",
"react-router": "^7.9.4",
"react-stately": "3.41.0",
"react-use": "^17.6.0",
"shell-quote": "^1.8.2",
@@ -27648,7 +27330,7 @@
},
"devDependencies": {
"@develohpanda/fluent-builder": "^2.1.2",
"@react-router/dev": "^7.7.0",
"@react-router/dev": "^7.9.4",
"@testing-library/dom": "^10.4.1",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
@@ -27843,6 +27525,158 @@
"version": "11.6.2",
"license": "Apache-2.0"
},
"packages/insomnia/node_modules/@react-router/dev": {
"version": "7.9.4",
"resolved": "https://registry.npmjs.org/@react-router/dev/-/dev-7.9.4.tgz",
"integrity": "sha512-bLs6DjKMJExT7Y57EBx25hkeGGUla3pURxvOn15IN8Mmaw2+euDtBUX9+OFrAPsAzD1xIj6+2HNLXlFH/LB86Q==",
"license": "MIT",
"dependencies": {
"@babel/core": "^7.27.7",
"@babel/generator": "^7.27.5",
"@babel/parser": "^7.27.7",
"@babel/plugin-syntax-jsx": "^7.27.1",
"@babel/preset-typescript": "^7.27.1",
"@babel/traverse": "^7.27.7",
"@babel/types": "^7.27.7",
"@npmcli/package-json": "^4.0.1",
"@react-router/node": "7.9.4",
"@remix-run/node-fetch-server": "^0.9.0",
"arg": "^5.0.1",
"babel-dead-code-elimination": "^1.0.6",
"chokidar": "^4.0.0",
"dedent": "^1.5.3",
"es-module-lexer": "^1.3.1",
"exit-hook": "2.2.1",
"isbot": "^5.1.11",
"jsesc": "3.0.2",
"lodash": "^4.17.21",
"pathe": "^1.1.2",
"picocolors": "^1.1.1",
"prettier": "^3.6.2",
"react-refresh": "^0.14.0",
"semver": "^7.3.7",
"tinyglobby": "^0.2.14",
"valibot": "^1.1.0",
"vite-node": "^3.2.2"
},
"bin": {
"react-router": "bin.js"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"@react-router/serve": "^7.9.4",
"@vitejs/plugin-rsc": "*",
"react-router": "^7.9.4",
"typescript": "^5.1.0",
"vite": "^5.1.0 || ^6.0.0 || ^7.0.0",
"wrangler": "^3.28.2 || ^4.0.0"
},
"peerDependenciesMeta": {
"@react-router/serve": {
"optional": true
},
"@vitejs/plugin-rsc": {
"optional": true
},
"typescript": {
"optional": true
},
"wrangler": {
"optional": true
}
}
},
"packages/insomnia/node_modules/@react-router/express": {
"version": "7.9.4",
"resolved": "https://registry.npmjs.org/@react-router/express/-/express-7.9.4.tgz",
"integrity": "sha512-qba2YnZXWz8kyXNxXKDa0qS88ct4MwJKMwINmto/LPb08W/YdgRUBSZIw7QnOdN7aFkvWTRGXKBTCcle8WDnRA==",
"license": "MIT",
"dependencies": {
"@react-router/node": "7.9.4"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"express": "^4.17.1 || ^5",
"react-router": "7.9.4",
"typescript": "^5.1.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"packages/insomnia/node_modules/@react-router/fs-routes": {
"version": "7.9.4",
"resolved": "https://registry.npmjs.org/@react-router/fs-routes/-/fs-routes-7.9.4.tgz",
"integrity": "sha512-k3IWKOGiPDJqGsoqKaI4V1WY4ulfG5/lWLlI0G5p1Yij4eDyYW3D+p/+inBFs49Oxsc/PbB2rnAXY4j5Bjruhg==",
"license": "MIT",
"dependencies": {
"minimatch": "^9.0.0"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"@react-router/dev": "^7.9.4",
"typescript": "^5.1.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"packages/insomnia/node_modules/@react-router/node": {
"version": "7.9.4",
"resolved": "https://registry.npmjs.org/@react-router/node/-/node-7.9.4.tgz",
"integrity": "sha512-sdeDNRaqAB71BR2hPlhcQbPbrXh8uGJUjLVc+NpRiPsQbv6B8UvIucN4IX9YGVJkw3UxVQBn2vPSwxACAck32Q==",
"license": "MIT",
"dependencies": {
"@mjackson/node-fetch-server": "^0.2.0"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"react-router": "7.9.4",
"typescript": "^5.1.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"packages/insomnia/node_modules/@react-router/serve": {
"version": "7.9.4",
"resolved": "https://registry.npmjs.org/@react-router/serve/-/serve-7.9.4.tgz",
"integrity": "sha512-zXub2L4qwtGd8+pdXi1QheI8PHPxSwi5EF0D1924fji8yN1R8csP/2cr055/xFOEtbkbJSZyVRrJ44fFnBxKCw==",
"license": "MIT",
"dependencies": {
"@mjackson/node-fetch-server": "^0.2.0",
"@react-router/express": "7.9.4",
"@react-router/node": "7.9.4",
"compression": "^1.7.4",
"express": "^4.19.2",
"get-port": "5.1.1",
"morgan": "^1.10.0",
"source-map-support": "^0.5.21"
},
"bin": {
"react-router-serve": "bin.js"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"react-router": "7.9.4"
}
},
"packages/insomnia/node_modules/@testing-library/dom": {
"version": "10.4.1",
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz",
@@ -27910,6 +27744,39 @@
"dequal": "^2.0.3"
}
},
"packages/insomnia/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"packages/insomnia/node_modules/chokidar": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
"integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"license": "MIT",
"dependencies": {
"readdirp": "^4.0.1"
},
"engines": {
"node": ">= 14.16.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"packages/insomnia/node_modules/cookie": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz",
"integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"packages/insomnia/node_modules/https-proxy-agent": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
@@ -27922,6 +27789,103 @@
"engines": {
"node": ">= 14"
}
},
"packages/insomnia/node_modules/jsesc": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
"integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
"license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
"node": ">=6"
}
},
"packages/insomnia/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"packages/insomnia/node_modules/pathe": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
"integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
"license": "MIT"
},
"packages/insomnia/node_modules/prettier": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
"license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"packages/insomnia/node_modules/react-router": {
"version": "7.9.4",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.4.tgz",
"integrity": "sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA==",
"license": "MIT",
"dependencies": {
"cookie": "^1.0.1",
"set-cookie-parser": "^2.6.0"
},
"engines": {
"node": ">=20.0.0"
},
"peerDependencies": {
"react": ">=18",
"react-dom": ">=18"
},
"peerDependenciesMeta": {
"react-dom": {
"optional": true
}
}
},
"packages/insomnia/node_modules/readdirp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
"integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
"license": "MIT",
"engines": {
"node": ">= 14.18.0"
},
"funding": {
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
},
"packages/insomnia/node_modules/valibot": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/valibot/-/valibot-1.1.0.tgz",
"integrity": "sha512-Nk8lX30Qhu+9txPYTwM0cFlWLdPFsFr6LblzqIySfbZph9+BFsAHsNvHOymEviUepeIW6KFHzpX8TKhbptBXXw==",
"license": "MIT",
"peerDependencies": {
"typescript": ">=5"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
}
}
}

View File

@@ -54,9 +54,9 @@
"@grpc/grpc-js": "^1.13.3",
"@grpc/proto-loader": "^0.7.13",
"@mismerge/core": "^1.2.1",
"@react-router/fs-routes": "^7.7.0",
"@react-router/node": "^7.7.0",
"@react-router/serve": "^7.7.0",
"@react-router/fs-routes": "^7.9.4",
"@react-router/node": "^7.9.4",
"@react-router/serve": "^7.9.4",
"@seald-io/nedb": "^4.1.1",
"@segment/analytics-node": "2.2.1",
"@sentry/electron": "^6.5.0",
@@ -125,7 +125,7 @@
"react-aria": "3.43.2",
"react-dom": "^18.3.1",
"react-resizable-panels": "^3.0.6",
"react-router": "^7.7.0",
"react-router": "^7.9.4",
"react-stately": "3.41.0",
"react-use": "^17.6.0",
"react": "^18.3.1",
@@ -144,7 +144,7 @@
},
"devDependencies": {
"@develohpanda/fluent-builder": "^2.1.2",
"@react-router/dev": "^7.7.0",
"@react-router/dev": "^7.9.4",
"@testing-library/dom": "^10.4.1",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",

View File

@@ -4,4 +4,7 @@ export default {
appDirectory: 'src',
ssr: false,
serverModuleFormat: 'cjs',
future: {
v8_middleware: true,
},
} satisfies Config;

View File

@@ -3,10 +3,9 @@ import './ui/log';
import { startTransition, StrictMode } from 'react';
import { hydrateRoot } from 'react-dom/client';
import type { SessionData } from 'react-router';
import { HydratedRouter } from 'react-router/dom';
import { migrateFromLocalStorage, setSessionData, setVaultSessionData } from './account/session';
import { migrateFromLocalStorage, type SessionData, setSessionData, setVaultSessionData } from './account/session';
import { getInsomniaSession, getInsomniaVaultKey, getInsomniaVaultSalt, getSkipOnboarding } from './common/constants';
import { settings } from './models';
import { initNewOAuthSession } from './network/o-auth-2/get-token';

View File

@@ -6,6 +6,7 @@ import { Button } from 'react-aria-components';
import {
href,
Links,
matchPath,
Meta,
Outlet,
Scripts,
@@ -62,6 +63,27 @@ export const links: Route.LinksFunction = () => {
];
};
const locationHistoryMiddleware: Route.ClientMiddlewareFunction = async ({ request }, next) => {
await next();
try {
const url = new URL(request.url);
const match = matchPath('/organization/:organizationId/*', url.pathname);
if (!match || !match.params.organizationId) {
return;
}
const organizationId = match.params.organizationId;
window.localStorage.setItem(`locationHistoryEntry:${organizationId}`, url.pathname);
window.localStorage.setItem('lastVisitedOrganizationId', organizationId);
} catch (err) {
console.log('[locationHistoryMiddleware] Failed to store location history entry', err);
}
};
export const clientMiddleware: Route.ClientMiddlewareFunction[] = [locationHistoryMiddleware];
export const ErrorBoundary: FC<Route.ErrorBoundaryProps> = ({ error }) => {
const getErrorMessage = (err: any) => {
if (isRouteErrorResponse(err)) {