toiljs 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cli/.tsbuildinfo +1 -1
- package/build/cli/create.js +75 -61
- package/build/client/.tsbuildinfo +1 -1
- package/build/client/channel/channel.d.ts +23 -0
- package/build/client/channel/channel.js +94 -0
- package/build/client/head/head.d.ts +26 -0
- package/build/client/head/head.js +87 -0
- package/build/client/index.d.ts +17 -17
- package/build/client/index.js +10 -10
- package/build/client/navigation/Link.d.ts +8 -0
- package/build/client/navigation/Link.js +44 -0
- package/build/client/navigation/NavLink.d.ts +14 -0
- package/build/client/navigation/NavLink.js +37 -0
- package/build/client/navigation/navigation.d.ts +13 -0
- package/build/client/navigation/navigation.js +97 -0
- package/build/client/navigation/prefetch.d.ts +11 -0
- package/build/client/navigation/prefetch.js +100 -0
- package/build/client/navigation/scroll.d.ts +8 -0
- package/build/client/navigation/scroll.js +36 -0
- package/build/client/routing/Router.d.ts +7 -0
- package/build/client/routing/Router.js +55 -0
- package/build/client/routing/error-boundary.d.ts +16 -0
- package/build/client/routing/error-boundary.js +19 -0
- package/build/client/routing/hooks.d.ts +17 -0
- package/build/client/routing/hooks.js +48 -0
- package/build/client/routing/lazy.d.ts +16 -0
- package/build/client/routing/lazy.js +53 -0
- package/build/client/routing/match.d.ts +2 -0
- package/build/client/routing/match.js +32 -0
- package/build/client/routing/mount.d.ts +2 -0
- package/build/client/routing/mount.js +13 -0
- package/build/client/routing/params-context.d.ts +2 -0
- package/build/client/routing/params-context.js +2 -0
- package/build/compiler/.tsbuildinfo +1 -1
- package/build/compiler/config.js +10 -1
- package/build/compiler/generate.js +18 -8
- package/build/compiler/plugin.js +14 -0
- package/examples/basic/client/components/HoneycombBackground.tsx +162 -0
- package/examples/basic/client/layout.tsx +12 -8
- package/examples/basic/client/public/favicon.ico +0 -0
- package/examples/basic/client/public/index.html +2 -1
- package/package.json +2 -2
- package/src/cli/create.ts +100 -73
- package/src/client/index.ts +17 -17
- package/src/client/{NavLink.tsx → navigation/NavLink.tsx} +1 -1
- package/src/client/{prefetch.ts → navigation/prefetch.ts} +2 -2
- package/src/client/{Router.tsx → routing/Router.tsx} +3 -3
- package/src/client/{error-boundary.tsx → routing/error-boundary.tsx} +1 -1
- package/src/client/{hooks.ts → routing/hooks.ts} +2 -2
- package/src/client/{lazy.ts → routing/lazy.ts} +1 -1
- package/src/client/{mount.tsx → routing/mount.tsx} +3 -3
- package/src/compiler/config.ts +11 -2
- package/src/compiler/generate.ts +24 -8
- package/src/compiler/plugin.ts +19 -0
- package/templates/app/client/404.tsx +11 -0
- package/templates/app/client/components/.gitkeep +1 -0
- package/templates/app/client/components/Footer.tsx +8 -0
- package/templates/app/client/components/HoneycombBackground.tsx +162 -0
- package/templates/app/client/layout.tsx +53 -0
- package/templates/app/client/public/favicon.ico +0 -0
- package/templates/app/client/public/images/.gitkeep +1 -0
- package/templates/app/client/public/images/logo.svg +37 -0
- package/templates/app/client/public/index.html +16 -0
- package/templates/app/client/public/robots.txt +2 -0
- package/templates/app/client/routes/about.tsx +11 -0
- package/templates/app/client/routes/blog/[id].tsx +12 -0
- package/templates/app/client/routes/docs/[...slug].tsx +12 -0
- package/templates/app/client/routes/get-started.tsx +84 -0
- package/templates/app/client/routes/index.tsx +80 -0
- package/templates/app/client/routes/io.tsx +24 -0
- package/templates/app/client/styles/main.css +461 -0
- package/templates/app/client/toil.tsx +7 -0
- package/test/channel.test.ts +1 -1
- package/test/head.test.ts +1 -1
- package/test/navlink.test.ts +1 -1
- package/test/routes.test.ts +1 -1
- /package/src/client/{channel.ts → channel/channel.ts} +0 -0
- /package/src/client/{head.ts → head/head.ts} +0 -0
- /package/src/client/{Link.tsx → navigation/Link.tsx} +0 -0
- /package/src/client/{navigation.ts → navigation/navigation.ts} +0 -0
- /package/src/client/{scroll.ts → navigation/scroll.ts} +0 -0
- /package/src/client/{match.ts → routing/match.ts} +0 -0
- /package/src/client/{params-context.ts → routing/params-context.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.es2025.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/react/jsx-runtime.d.ts","../../src/client/scroll.ts","../../src/client/navigation.ts","../../src/client/match.ts","../../src/client/types.ts","../../src/client/prefetch.ts","../../src/client/link.tsx","../../src/client/params-context.ts","../../src/client/hooks.ts","../../src/client/navlink.tsx","../../src/client/error-boundary.tsx","../../src/client/lazy.ts","../../src/client/router.tsx","../../src/client/channel.ts","../../src/client/head.ts","../../node_modules/@types/react-dom/client.d.ts","../../src/client/mount.tsx","../../src/client/index.ts"],"fileIdsList":[[92],[90,91],[92,93],[92,93,97],[92,93,95,96,98,100],[93,95,96,97,98,99,101,102,105,106,107,109],[92,93,95,98],[93],[93,95,97,98,105,108],[93,94],[92,93,99,101],[92,93,96],[93,96,97],[92,93,94,95,96,97,100,101,103,104]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"bd7dee3446a5b94651d58000ddfda40296f073e9372891f65003a524b4620697","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"ee8a149229af2834098b2776d0de116b0ead67ecefb18d06ef9638ad0ebe7286","signature":"2b2db01796f774852b44cacad054f31b9e63a3c4ed787d12c1dd75c75e602bef"},{"version":"39cd1e337e978eaeb2d9763f758d1577d7909ffbabb24ee4b4b207ee81628d4b","signature":"4f9d93f71815adfcc969a2f7b3b92db59ec4699a5cc18beba07ca653914e6f45"},{"version":"4545a2b4483788cc65b488100c61f20ebdb08c22c7344572885ec14826d2f24b","signature":"b9f112f8e9a593f362dd5f434f8f997385dd62f15e2d2fb6d316e5d0d9942a51"},{"version":"da7a3a8e8f9a45fc437aaac2ea1c26cd397ba8e4999ae8fdb3bc35215da5e78c","signature":"179a3729681883644b96d41e1048ce54b715886cd31ace21c1091c9819f7c567"},{"version":"bd5b8a86f5c2a72c6c19427cb4000b3a86abfacc99b6b791ea89b6b10dc77f4b","signature":"848707f7346bf1c9417dd5a6ddc612b48270e602c478adf61b2b7b689d2a0d5c","affectsGlobalScope":true},{"version":"3e6593fa6a99efe4b6c61edc7771f3282beb2bfa7b6d76c144162d6350aadfdf","signature":"e5bab926b7e2bbd9e1d4cbd6f4a1797c633aaf882f2d430a6fbe0668a65912a7"},{"version":"b823a47f674739ef4f8930b4fc7961da84deed0125827758c3eccf6b0f667943","signature":"c8525f0be940a19f3d03f06b6e43d4bea21ba910db62fb5024ecc671bcc23932"},{"version":"0a5c34b5beb8a2601a43ce9c71fbfa561948c9d34e85eefc1132e88234e56e8a","signature":"4d39290eedceeb1357cb96062e2e814a215c0ad4de23542b08ead7b6052f0c46"},{"version":"10c70193028378d8e6a8fa998c84f8f3edcd8eb740d0517b39da8c9db5d997af","signature":"0caa217adbbdb001facd9aeb363fa2a446eabbeb4e5af2c1f2c3d1ef4bbffc6e"},{"version":"183e5f443c3f08b129916020e34847e2e22ff4cf04e1b4bfeedfd98249dd1c27","signature":"eca9bb326aac9edccc1d84e0b623853fb0819c5402d4d2f0adc7fff3816a32d5"},{"version":"922da18315ec2452c207679bd94fc2ecf4073b5feefff9b5a2c3ca9c154d10b1","signature":"6640e0a204da635e3b3a3e734fcefc74931c01ead2109d454b17d713765e4234"},{"version":"480523b669bbb9f76db9794ef53e0ffed6504d4d0a1c81a40e3506a4edb0e2d3","signature":"40ae9adbcabee53e7301887c08281261144ac35f4535ebb2017a765bfd7121b8"},{"version":"934d2d6e26d57425550744e36443449d1d1d7e2e5d91e03afb1ca27290d4a158","signature":"bbaa85a96900ee24d770ce38f7807d2d3cc2ca203e223cd4080447680910992e"},{"version":"6ff12fe177bb2840a479ebb97058c5a3307212b75823c62a5229722357e5d843","signature":"931a7114fa2f626f8dfb69c1a932335300d72faf3e231f307976f66a46fc8dae"},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"31cacc4baca75da10498f7bc0076bd0a3aa53c0a01c5767e18a7042dd9bd0542","signature":"e5f01228691d9795378d6ad95328f0ac4082a825c168ebdb8c2fc68955c058f2"},{"version":"f5fc85c645ea5080268815312383ccc9a2aab6ae28bc23a512c7d8117f4c1d2f","signature":"22d4574561376088c4025e1669a4a4e89e3266ec95739d1208f5a8354d677e04"}],"root":[[94,107],109,110],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"alwaysStrict":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noImplicitAny":true,"outDir":"./","preserveConstEnums":true,"removeComments":true,"rootDir":"../../src/client","skipLibCheck":true,"sourceMap":false,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"suppressImplicitAnyIndexErrors":false,"target":99,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[108,1],[92,2],[93,1],[106,3],[103,4],[107,3],[101,5],[110,6],[104,4],[99,7],[96,8],[109,9],[95,10],[102,11],[100,12],[98,13],[105,14],[94,8],[97,3]],"version":"6.0.3"}
|
|
1
|
+
{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.es2025.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/react/jsx-runtime.d.ts","../../node_modules/@types/react-dom/client.d.ts","../../src/client/navigation/scroll.ts","../../src/client/navigation/navigation.ts","../../src/client/routing/match.ts","../../src/client/types.ts","../../src/client/navigation/prefetch.ts","../../src/client/routing/error-boundary.tsx","../../src/client/routing/params-context.ts","../../src/client/routing/hooks.ts","../../src/client/routing/lazy.ts","../../src/client/routing/router.tsx","../../src/client/routing/mount.tsx","../../src/client/navigation/link.tsx","../../src/client/navigation/navlink.tsx","../../src/client/channel/channel.ts","../../src/client/head/head.ts","../../src/client/index.ts"],"fileIdsList":[[92],[90,91],[92,93],[93,96,97,98,99,102,104,105,106,107,108,109],[92,93,96,99],[93,95],[92,93,102,106],[93,97,98],[93],[92,93,98],[92,93,96,97,99,101],[93,94,96,98,99,104],[92,93,97],[92,93,95,96,97,98,100,101,102,103]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"bd7dee3446a5b94651d58000ddfda40296f073e9372891f65003a524b4620697","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"ee8a149229af2834098b2776d0de116b0ead67ecefb18d06ef9638ad0ebe7286","signature":"2b2db01796f774852b44cacad054f31b9e63a3c4ed787d12c1dd75c75e602bef"},{"version":"39cd1e337e978eaeb2d9763f758d1577d7909ffbabb24ee4b4b207ee81628d4b","signature":"4f9d93f71815adfcc969a2f7b3b92db59ec4699a5cc18beba07ca653914e6f45"},{"version":"4545a2b4483788cc65b488100c61f20ebdb08c22c7344572885ec14826d2f24b","signature":"b9f112f8e9a593f362dd5f434f8f997385dd62f15e2d2fb6d316e5d0d9942a51"},{"version":"da7a3a8e8f9a45fc437aaac2ea1c26cd397ba8e4999ae8fdb3bc35215da5e78c","signature":"179a3729681883644b96d41e1048ce54b715886cd31ace21c1091c9819f7c567"},{"version":"488471e75a4cb636dcc2316d57fdd3d8bc51a974bd01488d9c9e9e5a9c7b9d1f","signature":"09d6078412069edc1a6faad02c5846365d560ea26b03f0cd960137bd30ae4df9","affectsGlobalScope":true},{"version":"a8d9211eab44f7cb13502dcd4c3e8499730005cc721e8bcfa50364393dd4930f","signature":"9382f138465c4775c54940f2a3d4334a083a6fc9a622a7c926c5f8233228cbae"},{"version":"b823a47f674739ef4f8930b4fc7961da84deed0125827758c3eccf6b0f667943","signature":"c8525f0be940a19f3d03f06b6e43d4bea21ba910db62fb5024ecc671bcc23932"},{"version":"ed1ed49660d4063f3130a0df38314be2995477a007acbd20c17ec511b9cff8d4","signature":"fcfda4dbb94e80660f632ad7659e63b51a3e7cb712d406c8041a21d3b1403ea8"},{"version":"e4ef0a97b90c66381b4e0b0d5504031b1bb52f8d1b62830021663bb3bc954206","signature":"f24216878fc5ab5ba4ddbaa985a4a884291465f3d3f85407152e1c958005f5c6"},{"version":"719d29b569acab8fbb8d99e908510d0a8e126f8e13c5b8f3fbd24eb9ef785e5a","signature":"a6f8f9a7ca40a6be7b172f87c0713e545ed324237683231807f78f69d6d22ee1"},{"version":"29bee60575f0bba321025e57ee097481022253ae6cae59ccd5a20371354c46b8","signature":"0919ee3602e9acf26adb667ee70d197717931daf9bb06a5cdbe65011956b7765"},{"version":"3e6593fa6a99efe4b6c61edc7771f3282beb2bfa7b6d76c144162d6350aadfdf","signature":"e5bab926b7e2bbd9e1d4cbd6f4a1797c633aaf882f2d430a6fbe0668a65912a7"},{"version":"8bec5d913b66865ea88ced047c96b2f048c8343ca8e142e8c37942f6f9d62a35","signature":"0caa217adbbdb001facd9aeb363fa2a446eabbeb4e5af2c1f2c3d1ef4bbffc6e"},{"version":"934d2d6e26d57425550744e36443449d1d1d7e2e5d91e03afb1ca27290d4a158","signature":"bbaa85a96900ee24d770ce38f7807d2d3cc2ca203e223cd4080447680910992e"},{"version":"6ff12fe177bb2840a479ebb97058c5a3307212b75823c62a5229722357e5d843","signature":"931a7114fa2f626f8dfb69c1a932335300d72faf3e231f307976f66a46fc8dae"},{"version":"6bac96c4f69caf15fff1b49815b72dbaf4f3d74fca3f6131f931251ef9fcab84","signature":"b102d238e1b504075588a449527155ec415d89a36895df75d6217bd9eebb2bcf"}],"root":[[95,110]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"alwaysStrict":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noImplicitAny":true,"outDir":"./","preserveConstEnums":true,"removeComments":true,"rootDir":"../../src/client","skipLibCheck":true,"sourceMap":false,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"suppressImplicitAnyIndexErrors":false,"target":99,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[94,1],[92,2],[93,1],[108,3],[109,3],[110,4],[106,5],[96,6],[107,7],[99,8],[95,9],[100,10],[102,11],[103,10],[97,9],[105,12],[101,13],[104,14],[98,3]],"version":"6.0.3"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type ChannelData = string | ArrayBuffer;
|
|
2
|
+
export type SendData = Parameters<WebSocket['send']>[0];
|
|
3
|
+
export interface ChannelOptions {
|
|
4
|
+
readonly path?: string;
|
|
5
|
+
readonly url?: string;
|
|
6
|
+
readonly reconnect?: boolean;
|
|
7
|
+
readonly reconnectDelay?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface Channel {
|
|
10
|
+
send(data: SendData): void;
|
|
11
|
+
close(): void;
|
|
12
|
+
}
|
|
13
|
+
export declare function resolveChannelUrl(path?: string, location?: {
|
|
14
|
+
protocol: string;
|
|
15
|
+
host: string;
|
|
16
|
+
}): string;
|
|
17
|
+
export declare function connectChannel(onMessage: (data: ChannelData) => void, options?: ChannelOptions): Channel;
|
|
18
|
+
export interface ChannelHook {
|
|
19
|
+
readonly connected: boolean;
|
|
20
|
+
readonly messages: ChannelData[];
|
|
21
|
+
send: (data: SendData) => void;
|
|
22
|
+
}
|
|
23
|
+
export declare function useChannel(options?: ChannelOptions): ChannelHook;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
export function resolveChannelUrl(path = '/_toil', location = window.location) {
|
|
3
|
+
const scheme = location.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
4
|
+
const normalized = path.startsWith('/') ? path : `/${path}`;
|
|
5
|
+
return `${scheme}//${location.host}${normalized}`;
|
|
6
|
+
}
|
|
7
|
+
export function connectChannel(onMessage, options = {}) {
|
|
8
|
+
const url = options.url ?? resolveChannelUrl(options.path);
|
|
9
|
+
const reconnect = options.reconnect ?? true;
|
|
10
|
+
const delay = options.reconnectDelay ?? 1000;
|
|
11
|
+
let socket = null;
|
|
12
|
+
let stopped = false;
|
|
13
|
+
let timer;
|
|
14
|
+
const open = () => {
|
|
15
|
+
const ws = new WebSocket(url);
|
|
16
|
+
ws.binaryType = 'arraybuffer';
|
|
17
|
+
socket = ws;
|
|
18
|
+
ws.addEventListener('message', (event) => {
|
|
19
|
+
if (typeof event.data === 'string')
|
|
20
|
+
onMessage(event.data);
|
|
21
|
+
else if (event.data instanceof ArrayBuffer)
|
|
22
|
+
onMessage(event.data);
|
|
23
|
+
});
|
|
24
|
+
ws.addEventListener('close', () => {
|
|
25
|
+
if (!stopped && reconnect)
|
|
26
|
+
timer = setTimeout(open, delay);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
open();
|
|
30
|
+
return {
|
|
31
|
+
send: (data) => {
|
|
32
|
+
if (socket && socket.readyState === WebSocket.OPEN)
|
|
33
|
+
socket.send(data);
|
|
34
|
+
},
|
|
35
|
+
close: () => {
|
|
36
|
+
stopped = true;
|
|
37
|
+
if (timer !== undefined)
|
|
38
|
+
clearTimeout(timer);
|
|
39
|
+
socket?.close();
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function useChannel(options = {}) {
|
|
44
|
+
const { path, url, reconnect, reconnectDelay } = options;
|
|
45
|
+
const [connected, setConnected] = useState(false);
|
|
46
|
+
const [messages, setMessages] = useState([]);
|
|
47
|
+
const socketRef = useRef(null);
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
const target = url ?? resolveChannelUrl(path);
|
|
50
|
+
const shouldReconnect = reconnect ?? true;
|
|
51
|
+
const delay = reconnectDelay ?? 1000;
|
|
52
|
+
let stopped = false;
|
|
53
|
+
let timer;
|
|
54
|
+
const open = () => {
|
|
55
|
+
const ws = new WebSocket(target);
|
|
56
|
+
ws.binaryType = 'arraybuffer';
|
|
57
|
+
socketRef.current = ws;
|
|
58
|
+
ws.addEventListener('open', () => {
|
|
59
|
+
if (!stopped)
|
|
60
|
+
setConnected(true);
|
|
61
|
+
});
|
|
62
|
+
ws.addEventListener('message', (event) => {
|
|
63
|
+
if (typeof event.data === 'string') {
|
|
64
|
+
const data = event.data;
|
|
65
|
+
setMessages((prev) => [...prev, data]);
|
|
66
|
+
}
|
|
67
|
+
else if (event.data instanceof ArrayBuffer) {
|
|
68
|
+
const data = event.data;
|
|
69
|
+
setMessages((prev) => [...prev, data]);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
ws.addEventListener('close', () => {
|
|
73
|
+
if (stopped)
|
|
74
|
+
return;
|
|
75
|
+
setConnected(false);
|
|
76
|
+
if (shouldReconnect)
|
|
77
|
+
timer = setTimeout(open, delay);
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
open();
|
|
81
|
+
return () => {
|
|
82
|
+
stopped = true;
|
|
83
|
+
if (timer !== undefined)
|
|
84
|
+
clearTimeout(timer);
|
|
85
|
+
socketRef.current?.close();
|
|
86
|
+
};
|
|
87
|
+
}, [path, url, reconnect, reconnectDelay]);
|
|
88
|
+
const send = useCallback((data) => {
|
|
89
|
+
const socket = socketRef.current;
|
|
90
|
+
if (socket && socket.readyState === WebSocket.OPEN)
|
|
91
|
+
socket.send(data);
|
|
92
|
+
}, []);
|
|
93
|
+
return { connected, messages, send };
|
|
94
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface MetaTag {
|
|
2
|
+
readonly name?: string;
|
|
3
|
+
readonly property?: string;
|
|
4
|
+
readonly content: string;
|
|
5
|
+
readonly [attr: string]: string | undefined;
|
|
6
|
+
}
|
|
7
|
+
export interface LinkTag {
|
|
8
|
+
readonly rel: string;
|
|
9
|
+
readonly href: string;
|
|
10
|
+
readonly [attr: string]: string | undefined;
|
|
11
|
+
}
|
|
12
|
+
export interface HeadSpec {
|
|
13
|
+
readonly title?: string;
|
|
14
|
+
readonly titleTemplate?: string;
|
|
15
|
+
readonly meta?: readonly MetaTag[];
|
|
16
|
+
readonly link?: readonly LinkTag[];
|
|
17
|
+
}
|
|
18
|
+
export interface ResolvedHead {
|
|
19
|
+
readonly title?: string;
|
|
20
|
+
readonly meta: MetaTag[];
|
|
21
|
+
readonly link: LinkTag[];
|
|
22
|
+
}
|
|
23
|
+
export declare function mergeHead(specs: readonly HeadSpec[]): ResolvedHead;
|
|
24
|
+
export declare function useHead(spec: HeadSpec): void;
|
|
25
|
+
export declare function useTitle(title: string): void;
|
|
26
|
+
export declare function Head(props: HeadSpec): null;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
function metaKey(m) {
|
|
3
|
+
if (m.name !== undefined)
|
|
4
|
+
return `name:${m.name}`;
|
|
5
|
+
if (m.property !== undefined)
|
|
6
|
+
return `property:${m.property}`;
|
|
7
|
+
return `meta:${JSON.stringify(m)}`;
|
|
8
|
+
}
|
|
9
|
+
export function mergeHead(specs) {
|
|
10
|
+
let title;
|
|
11
|
+
let titleTemplate;
|
|
12
|
+
const meta = new Map();
|
|
13
|
+
const link = new Map();
|
|
14
|
+
for (const spec of specs) {
|
|
15
|
+
if (spec.title !== undefined)
|
|
16
|
+
title = spec.title;
|
|
17
|
+
if (spec.titleTemplate !== undefined)
|
|
18
|
+
titleTemplate = spec.titleTemplate;
|
|
19
|
+
for (const m of spec.meta ?? [])
|
|
20
|
+
meta.set(metaKey(m), m);
|
|
21
|
+
for (const l of spec.link ?? [])
|
|
22
|
+
link.set(`${l.rel}:${l.href}`, l);
|
|
23
|
+
}
|
|
24
|
+
const resolvedTitle = title !== undefined && titleTemplate !== undefined
|
|
25
|
+
? titleTemplate.replace('%s', title)
|
|
26
|
+
: title;
|
|
27
|
+
return { title: resolvedTitle, meta: [...meta.values()], link: [...link.values()] };
|
|
28
|
+
}
|
|
29
|
+
const entries = new Map();
|
|
30
|
+
let order = [];
|
|
31
|
+
let seq = 0;
|
|
32
|
+
let baseTitle = null;
|
|
33
|
+
function setAttrs(el, attrs) {
|
|
34
|
+
el.setAttribute('data-toil-head', '');
|
|
35
|
+
for (const [key, value] of Object.entries(attrs)) {
|
|
36
|
+
if (value !== undefined)
|
|
37
|
+
el.setAttribute(key, value);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function apply() {
|
|
41
|
+
if (typeof document === 'undefined')
|
|
42
|
+
return;
|
|
43
|
+
if (baseTitle === null)
|
|
44
|
+
baseTitle = document.title;
|
|
45
|
+
const resolved = mergeHead(order.map((id) => entries.get(id)).filter((s) => !!s));
|
|
46
|
+
document.title = resolved.title ?? baseTitle;
|
|
47
|
+
for (const stale of document.head.querySelectorAll('[data-toil-head]'))
|
|
48
|
+
stale.remove();
|
|
49
|
+
for (const m of resolved.meta) {
|
|
50
|
+
const el = document.createElement('meta');
|
|
51
|
+
setAttrs(el, m);
|
|
52
|
+
document.head.appendChild(el);
|
|
53
|
+
}
|
|
54
|
+
for (const l of resolved.link) {
|
|
55
|
+
const el = document.createElement('link');
|
|
56
|
+
setAttrs(el, l);
|
|
57
|
+
document.head.appendChild(el);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function addHead(spec) {
|
|
61
|
+
const id = ++seq;
|
|
62
|
+
entries.set(id, spec);
|
|
63
|
+
order.push(id);
|
|
64
|
+
apply();
|
|
65
|
+
return id;
|
|
66
|
+
}
|
|
67
|
+
function removeHead(id) {
|
|
68
|
+
entries.delete(id);
|
|
69
|
+
order = order.filter((x) => x !== id);
|
|
70
|
+
apply();
|
|
71
|
+
}
|
|
72
|
+
export function useHead(spec) {
|
|
73
|
+
const json = JSON.stringify(spec);
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
const id = addHead(JSON.parse(json));
|
|
76
|
+
return () => {
|
|
77
|
+
removeHead(id);
|
|
78
|
+
};
|
|
79
|
+
}, [json]);
|
|
80
|
+
}
|
|
81
|
+
export function useTitle(title) {
|
|
82
|
+
useHead({ title });
|
|
83
|
+
}
|
|
84
|
+
export function Head(props) {
|
|
85
|
+
useHead(props);
|
|
86
|
+
return null;
|
|
87
|
+
}
|
package/build/client/index.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export { mount } from './mount.js';
|
|
2
|
-
export { Router } from './Router.js';
|
|
3
|
-
export { Link } from './Link.js';
|
|
4
|
-
export type { LinkProps } from './Link.js';
|
|
5
|
-
export { NavLink, matchActive } from './NavLink.js';
|
|
6
|
-
export type { NavLinkProps, NavLinkState } from './NavLink.js';
|
|
7
|
-
export { navigate, back, forward, refresh } from './navigation.js';
|
|
8
|
-
export type { NavigateOptions } from './navigation.js';
|
|
9
|
-
export { useParams, useNavigate, useLocation, usePathname, useSearchParams, useRouter, useNavigationPending, } from './hooks.js';
|
|
10
|
-
export type { RouterInstance } from './hooks.js';
|
|
11
|
-
export { prefetch } from './prefetch.js';
|
|
1
|
+
export { mount } from './routing/mount.js';
|
|
2
|
+
export { Router } from './routing/Router.js';
|
|
3
|
+
export { Link } from './navigation/Link.js';
|
|
4
|
+
export type { LinkProps } from './navigation/Link.js';
|
|
5
|
+
export { NavLink, matchActive } from './navigation/NavLink.js';
|
|
6
|
+
export type { NavLinkProps, NavLinkState } from './navigation/NavLink.js';
|
|
7
|
+
export { navigate, back, forward, refresh } from './navigation/navigation.js';
|
|
8
|
+
export type { NavigateOptions } from './navigation/navigation.js';
|
|
9
|
+
export { useParams, useNavigate, useLocation, usePathname, useSearchParams, useRouter, useNavigationPending, } from './routing/hooks.js';
|
|
10
|
+
export type { RouterInstance } from './routing/hooks.js';
|
|
11
|
+
export { prefetch } from './navigation/prefetch.js';
|
|
12
12
|
export type { RouteDef, LayoutLoader, LayoutComponentLoader, NotFoundLoader, RouteErrorProps, } from './types.js';
|
|
13
|
-
export { matchRoute } from './match.js';
|
|
14
|
-
export type { RouteParams } from './match.js';
|
|
15
|
-
export { connectChannel, useChannel, resolveChannelUrl } from './channel.js';
|
|
16
|
-
export type { Channel, ChannelOptions, ChannelHook, ChannelData } from './channel.js';
|
|
17
|
-
export { useHead, useTitle, Head, mergeHead } from './head.js';
|
|
18
|
-
export type { HeadSpec, MetaTag, LinkTag, ResolvedHead } from './head.js';
|
|
13
|
+
export { matchRoute } from './routing/match.js';
|
|
14
|
+
export type { RouteParams } from './routing/match.js';
|
|
15
|
+
export { connectChannel, useChannel, resolveChannelUrl } from './channel/channel.js';
|
|
16
|
+
export type { Channel, ChannelOptions, ChannelHook, ChannelData } from './channel/channel.js';
|
|
17
|
+
export { useHead, useTitle, Head, mergeHead } from './head/head.js';
|
|
18
|
+
export type { HeadSpec, MetaTag, LinkTag, ResolvedHead } from './head/head.js';
|
package/build/client/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { mount } from './mount.js';
|
|
2
|
-
export { Router } from './Router.js';
|
|
3
|
-
export { Link } from './Link.js';
|
|
4
|
-
export { NavLink, matchActive } from './NavLink.js';
|
|
5
|
-
export { navigate, back, forward, refresh } from './navigation.js';
|
|
6
|
-
export { useParams, useNavigate, useLocation, usePathname, useSearchParams, useRouter, useNavigationPending, } from './hooks.js';
|
|
7
|
-
export { prefetch } from './prefetch.js';
|
|
8
|
-
export { matchRoute } from './match.js';
|
|
9
|
-
export { connectChannel, useChannel, resolveChannelUrl } from './channel.js';
|
|
10
|
-
export { useHead, useTitle, Head, mergeHead } from './head.js';
|
|
1
|
+
export { mount } from './routing/mount.js';
|
|
2
|
+
export { Router } from './routing/Router.js';
|
|
3
|
+
export { Link } from './navigation/Link.js';
|
|
4
|
+
export { NavLink, matchActive } from './navigation/NavLink.js';
|
|
5
|
+
export { navigate, back, forward, refresh } from './navigation/navigation.js';
|
|
6
|
+
export { useParams, useNavigate, useLocation, usePathname, useSearchParams, useRouter, useNavigationPending, } from './routing/hooks.js';
|
|
7
|
+
export { prefetch } from './navigation/prefetch.js';
|
|
8
|
+
export { matchRoute } from './routing/match.js';
|
|
9
|
+
export { connectChannel, useChannel, resolveChannelUrl } from './channel/channel.js';
|
|
10
|
+
export { useHead, useTitle, Head, mergeHead } from './head/head.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
|
+
export interface LinkProps extends Omit<ComponentPropsWithRef<'a'>, 'href'> {
|
|
3
|
+
href: string;
|
|
4
|
+
replace?: boolean;
|
|
5
|
+
scroll?: boolean;
|
|
6
|
+
prefetch?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function Link(props: LinkProps): ReactNode;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { navigate } from './navigation.js';
|
|
3
|
+
import { prefetch } from './prefetch.js';
|
|
4
|
+
function isExternalHref(href) {
|
|
5
|
+
try {
|
|
6
|
+
return new URL(href, window.location.href).origin !== window.location.origin;
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function Link(props) {
|
|
13
|
+
const { href, replace = false, scroll = true, prefetch: prefetchProp = true, onClick, onPointerEnter, onFocus, children, ...rest } = props;
|
|
14
|
+
const handleClick = (event) => {
|
|
15
|
+
onClick?.(event);
|
|
16
|
+
if (event.defaultPrevented ||
|
|
17
|
+
event.button !== 0 ||
|
|
18
|
+
event.metaKey ||
|
|
19
|
+
event.ctrlKey ||
|
|
20
|
+
event.shiftKey ||
|
|
21
|
+
event.altKey ||
|
|
22
|
+
(rest.target !== undefined && rest.target !== '_self') ||
|
|
23
|
+
rest.download !== undefined ||
|
|
24
|
+
href.startsWith('#') ||
|
|
25
|
+
isExternalHref(href)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
navigate(href, { replace, scroll });
|
|
30
|
+
};
|
|
31
|
+
const warm = () => {
|
|
32
|
+
if (prefetchProp)
|
|
33
|
+
prefetch(href);
|
|
34
|
+
};
|
|
35
|
+
const handlePointerEnter = (event) => {
|
|
36
|
+
onPointerEnter?.(event);
|
|
37
|
+
warm();
|
|
38
|
+
};
|
|
39
|
+
const handleFocus = (event) => {
|
|
40
|
+
onFocus?.(event);
|
|
41
|
+
warm();
|
|
42
|
+
};
|
|
43
|
+
return (_jsx("a", { ...rest, ...(prefetchProp ? {} : { 'data-no-prefetch': '' }), href: href, onClick: handleClick, onPointerEnter: handlePointerEnter, onFocus: handleFocus, children: children }));
|
|
44
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { type LinkProps } from './Link.js';
|
|
3
|
+
export interface NavLinkState {
|
|
4
|
+
readonly isActive: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface NavLinkProps extends Omit<LinkProps, 'className' | 'style' | 'children'> {
|
|
7
|
+
className?: string | ((state: NavLinkState) => string | undefined);
|
|
8
|
+
style?: CSSProperties | ((state: NavLinkState) => CSSProperties | undefined);
|
|
9
|
+
children?: ReactNode | ((state: NavLinkState) => ReactNode);
|
|
10
|
+
end?: boolean;
|
|
11
|
+
activeClassName?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function matchActive(linkPath: string, currentPath: string, end: boolean): boolean;
|
|
14
|
+
export declare function NavLink(props: NavLinkProps): ReactNode;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useLocation } from '../routing/hooks.js';
|
|
3
|
+
import { Link } from './Link.js';
|
|
4
|
+
function normalizePath(p) {
|
|
5
|
+
return p.length > 1 ? p.replace(/\/+$/, '') : p;
|
|
6
|
+
}
|
|
7
|
+
export function matchActive(linkPath, currentPath, end) {
|
|
8
|
+
const link = normalizePath(linkPath);
|
|
9
|
+
const current = normalizePath(currentPath);
|
|
10
|
+
if (current === link)
|
|
11
|
+
return true;
|
|
12
|
+
if (end)
|
|
13
|
+
return false;
|
|
14
|
+
if (link === '/')
|
|
15
|
+
return true;
|
|
16
|
+
return current.startsWith(link + '/');
|
|
17
|
+
}
|
|
18
|
+
export function NavLink(props) {
|
|
19
|
+
const { href, className, style, children, end = false, activeClassName = 'active', ...rest } = props;
|
|
20
|
+
const pathname = useLocation();
|
|
21
|
+
let linkPath = href;
|
|
22
|
+
try {
|
|
23
|
+
linkPath = new URL(href, window.location.href).pathname;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
linkPath = href;
|
|
27
|
+
}
|
|
28
|
+
const isActive = matchActive(linkPath, pathname, end);
|
|
29
|
+
const state = { isActive };
|
|
30
|
+
const resolvedClassName = typeof className === 'function'
|
|
31
|
+
? className(state)
|
|
32
|
+
: [className, isActive ? activeClassName : undefined].filter(Boolean).join(' ') ||
|
|
33
|
+
undefined;
|
|
34
|
+
const resolvedStyle = typeof style === 'function' ? style(state) : style;
|
|
35
|
+
const resolvedChildren = typeof children === 'function' ? children(state) : children;
|
|
36
|
+
return (_jsx(Link, { ...rest, href: href, className: resolvedClassName, style: resolvedStyle, "aria-current": isActive ? 'page' : undefined, children: resolvedChildren }));
|
|
37
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function settleNavigation(): void;
|
|
2
|
+
export declare function isNavigationPending(): boolean;
|
|
3
|
+
export declare function subscribePending(listener: () => void): () => void;
|
|
4
|
+
export interface NavigateOptions {
|
|
5
|
+
readonly replace?: boolean;
|
|
6
|
+
readonly scroll?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function initNavigation(): void;
|
|
9
|
+
export declare function navigate(href: string, options?: NavigateOptions): void;
|
|
10
|
+
export declare function back(): void;
|
|
11
|
+
export declare function forward(): void;
|
|
12
|
+
export declare function refresh(): void;
|
|
13
|
+
export declare function subscribeLocation(listener: () => void): () => void;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { enableManualScrollRestoration, planScroll, rememberScroll, } from './scroll.js';
|
|
2
|
+
const listeners = new Set();
|
|
3
|
+
let popstateBound = false;
|
|
4
|
+
let keyCounter = 0;
|
|
5
|
+
let currentKey = 'initial';
|
|
6
|
+
function nextKey() {
|
|
7
|
+
keyCounter += 1;
|
|
8
|
+
return `t${String(keyCounter)}`;
|
|
9
|
+
}
|
|
10
|
+
function notify() {
|
|
11
|
+
for (const listener of listeners)
|
|
12
|
+
listener();
|
|
13
|
+
}
|
|
14
|
+
let startedTick = 0;
|
|
15
|
+
let committedTick = 0;
|
|
16
|
+
const pendingListeners = new Set();
|
|
17
|
+
function emitPending() {
|
|
18
|
+
for (const listener of pendingListeners)
|
|
19
|
+
listener();
|
|
20
|
+
}
|
|
21
|
+
function beginNavigation() {
|
|
22
|
+
startedTick += 1;
|
|
23
|
+
emitPending();
|
|
24
|
+
}
|
|
25
|
+
export function settleNavigation() {
|
|
26
|
+
if (committedTick !== startedTick) {
|
|
27
|
+
committedTick = startedTick;
|
|
28
|
+
emitPending();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function isNavigationPending() {
|
|
32
|
+
return startedTick !== committedTick;
|
|
33
|
+
}
|
|
34
|
+
export function subscribePending(listener) {
|
|
35
|
+
pendingListeners.add(listener);
|
|
36
|
+
return () => {
|
|
37
|
+
pendingListeners.delete(listener);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function initNavigation() {
|
|
41
|
+
enableManualScrollRestoration();
|
|
42
|
+
const state = window.history.state;
|
|
43
|
+
if (state?.__toilKey) {
|
|
44
|
+
currentKey = state.__toilKey;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
currentKey = nextKey();
|
|
48
|
+
window.history.replaceState({ ...state, __toilKey: currentKey }, '');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export function navigate(href, options) {
|
|
52
|
+
beginNavigation();
|
|
53
|
+
rememberScroll(currentKey);
|
|
54
|
+
let hash = '';
|
|
55
|
+
try {
|
|
56
|
+
hash = new URL(href, window.location.href).hash;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
hash = '';
|
|
60
|
+
}
|
|
61
|
+
if (options?.replace) {
|
|
62
|
+
window.history.replaceState({ __toilKey: currentKey }, '', href);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
currentKey = nextKey();
|
|
66
|
+
window.history.pushState({ __toilKey: currentKey }, '', href);
|
|
67
|
+
}
|
|
68
|
+
planScroll({ hash, toTop: options?.scroll !== false });
|
|
69
|
+
notify();
|
|
70
|
+
}
|
|
71
|
+
export function back() {
|
|
72
|
+
window.history.back();
|
|
73
|
+
}
|
|
74
|
+
export function forward() {
|
|
75
|
+
window.history.forward();
|
|
76
|
+
}
|
|
77
|
+
export function refresh() {
|
|
78
|
+
notify();
|
|
79
|
+
}
|
|
80
|
+
function handlePopState(event) {
|
|
81
|
+
beginNavigation();
|
|
82
|
+
rememberScroll(currentKey);
|
|
83
|
+
const state = event.state;
|
|
84
|
+
currentKey = state?.__toilKey ?? 'initial';
|
|
85
|
+
planScroll({ restoreKey: currentKey, hash: window.location.hash, toTop: false });
|
|
86
|
+
notify();
|
|
87
|
+
}
|
|
88
|
+
export function subscribeLocation(listener) {
|
|
89
|
+
if (!popstateBound) {
|
|
90
|
+
window.addEventListener('popstate', handlePopState);
|
|
91
|
+
popstateBound = true;
|
|
92
|
+
}
|
|
93
|
+
listeners.add(listener);
|
|
94
|
+
return () => {
|
|
95
|
+
listeners.delete(listener);
|
|
96
|
+
};
|
|
97
|
+
}
|