toiljs 0.0.117 → 0.0.119
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/CHANGELOG.md +14 -0
- package/build/client/.tsbuildinfo +1 -1
- package/build/client/auth.d.ts +3 -0
- package/build/client/auth.js +19 -10
- package/build/client/index.d.ts +1 -1
- package/build/client/index.js +1 -1
- package/build/client/navigation/navigation.js +28 -3
- package/build/client/routing/Router.js +5 -2
- package/build/compiler/.tsbuildinfo +1 -1
- package/build/compiler/index.js +1 -1
- package/build/compiler/toil-docs.generated.js +2 -2
- package/build/compiler/vite.js +1 -0
- package/examples/basic/client/routes/pq.tsx +2 -1
- package/package.json +1 -1
- package/server/auth/AuthController.ts +53 -14
- package/server/auth/FactorSettings.ts +41 -0
- package/server/auth/SessionEpochs.ts +58 -0
- package/server/auth/SessionRevocations.ts +13 -0
- package/server/globals/auth.ts +27 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [v0.0.118] - 2026-09-28
|
|
4
|
+
|
|
5
|
+
- No changes
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## [v0.0.117] - 2026-09-14
|
|
9
|
+
|
|
10
|
+
### Other Changes
|
|
11
|
+
|
|
12
|
+
- feat!: upgrade to TypeScript 7 and Oxlint ([#213](https://github.com/dacely-cloud/toiljs/pull/213)) by @BlobMaster41
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
3
17
|
## [v0.0.116] - 2026-07-29
|
|
4
18
|
|
|
5
19
|
- No changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"7.0.2","root":[[139,140],[147,177]],"packageJsons":["../../node_modules/@dacely/noble-post-quantum/package.json","../../node_modules/@noble/curves/node_modules/@noble/hashes/package.json","../../node_modules/@noble/curves/package.json","../../node_modules/@noble/hashes/package.json","../../node_modules/@types/react-dom/package.json","../../node_modules/@types/react/package.json","../../node_modules/csstype/package.json","../../node_modules/hash-wasm/package.json","../../node_modules/react-dom/package.json","../../node_modules/react/package.json","../../package.json"],"missingPackageJsons":["../../node_modules/@dacely/noble-post-quantum/ml-dsa.js/package.json","../../node_modules/@dacely/noble-post-quantum/ml-kem.js/package.json","../../node_modules/@dacely/noble-post-quantum/node_modules/@noble/hashes/package.json","../../node_modules/@dacely/noble-post-quantum/node_modules/@noble/hashes/utils.js/package.json","../../node_modules/@noble/curves/abstract/package.json","../../node_modules/@noble/curves/ed25519.js/package.json","../../node_modules/@noble/curves/node_modules/@noble/hashes/utils.js/package.json","../../node_modules/@noble/hashes/utils.js/package.json","../../node_modules/@types/react-dom/client/package.json","../../node_modules/@types/react/jsx-runtime/package.json","../../node_modules/hash-wasm/dist/lib/package.json","../../node_modules/hash-wasm/dist/package.json","../../node_modules/react-dom/client/package.json","../../node_modules/react/jsx-runtime/package.json"],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.es2023.d.ts","lib.es2024.d.ts","lib.es2025.d.ts","lib.esnext.d.ts","lib.dom.d.ts","lib.dom.iterable.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.es2023.array.d.ts","lib.es2023.collection.d.ts","lib.es2023.intl.d.ts","lib.es2024.arraybuffer.d.ts","lib.es2024.collection.d.ts","lib.es2024.object.d.ts","lib.es2024.promise.d.ts","lib.es2024.regexp.d.ts","lib.es2024.sharedmemory.d.ts","lib.es2024.string.d.ts","lib.es2025.collection.d.ts","lib.es2025.float16.d.ts","lib.es2025.intl.d.ts","lib.es2025.iterator.d.ts","lib.es2025.promise.d.ts","lib.es2025.regexp.d.ts","lib.esnext.array.d.ts","lib.esnext.collection.d.ts","lib.esnext.date.d.ts","lib.esnext.decorators.d.ts","lib.esnext.disposable.d.ts","lib.esnext.error.d.ts","lib.esnext.intl.d.ts","lib.esnext.sharedmemory.d.ts","lib.esnext.temporal.d.ts","lib.esnext.typedarrays.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","../../node_modules/hash-wasm/dist/lib/util.d.ts","../../node_modules/hash-wasm/dist/lib/WASMInterface.d.ts","../../node_modules/hash-wasm/dist/lib/adler32.d.ts","../../node_modules/hash-wasm/dist/lib/argon2.d.ts","../../node_modules/hash-wasm/dist/lib/blake2b.d.ts","../../node_modules/hash-wasm/dist/lib/blake2s.d.ts","../../node_modules/hash-wasm/dist/lib/blake3.d.ts","../../node_modules/hash-wasm/dist/lib/crc32.d.ts","../../node_modules/hash-wasm/dist/lib/crc64.d.ts","../../node_modules/hash-wasm/dist/lib/md4.d.ts","../../node_modules/hash-wasm/dist/lib/md5.d.ts","../../node_modules/hash-wasm/dist/lib/sha1.d.ts","../../node_modules/hash-wasm/dist/lib/sha3.d.ts","../../node_modules/hash-wasm/dist/lib/keccak.d.ts","../../node_modules/hash-wasm/dist/lib/sha224.d.ts","../../node_modules/hash-wasm/dist/lib/sha256.d.ts","../../node_modules/hash-wasm/dist/lib/sha384.d.ts","../../node_modules/hash-wasm/dist/lib/sha512.d.ts","../../node_modules/hash-wasm/dist/lib/xxhash32.d.ts","../../node_modules/hash-wasm/dist/lib/xxhash64.d.ts","../../node_modules/hash-wasm/dist/lib/xxhash3.d.ts","../../node_modules/hash-wasm/dist/lib/xxhash128.d.ts","../../node_modules/hash-wasm/dist/lib/ripemd160.d.ts","../../node_modules/hash-wasm/dist/lib/hmac.d.ts","../../node_modules/hash-wasm/dist/lib/pbkdf2.d.ts","../../node_modules/hash-wasm/dist/lib/scrypt.d.ts","../../node_modules/hash-wasm/dist/lib/bcrypt.d.ts","../../node_modules/hash-wasm/dist/lib/whirlpool.d.ts","../../node_modules/hash-wasm/dist/lib/sm3.d.ts","../../node_modules/hash-wasm/dist/lib/index.d.ts","../../node_modules/@noble/hashes/utils.d.ts","../../node_modules/@dacely/noble-post-quantum/utils.d.ts","../../node_modules/@dacely/noble-post-quantum/ml-dsa.d.ts","../../node_modules/@dacely/noble-post-quantum/ml-kem.d.ts","../../node_modules/@noble/curves/node_modules/@noble/hashes/utils.d.ts","../../node_modules/@noble/curves/utils.d.ts","../../node_modules/@noble/curves/abstract/modular.d.ts","../../node_modules/@noble/curves/abstract/curve.d.ts","../../node_modules/@noble/curves/abstract/edwards.d.ts","../../node_modules/@noble/curves/abstract/hash-to-curve.d.ts","../../node_modules/@noble/curves/abstract/frost.d.ts","../../node_modules/@noble/curves/abstract/montgomery.d.ts","../../node_modules/@noble/curves/abstract/oprf.d.ts","../../node_modules/@noble/curves/ed25519.d.ts","../io/FastMap.d.ts","../io/FastSet.d.ts","../io/codec.d.ts","../io/types.d.ts","../io/index.d.ts","../../src/client/auth.ts","../../src/client/errors.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","../../node_modules/@types/react-dom/index.d.ts","../../src/client/navigation/scroll.ts","../../src/client/types.ts","../../src/client/navigation/navigation.ts","../../src/client/ssr/markers.tsx","../../src/client/head/head.ts","../../src/client/routing/match.ts","../../src/client/head/metadata.ts","../../src/client/routing/loader.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/slot-context.ts","../../src/client/routing/Router.tsx","../../src/client/dev/error-overlay.tsx","../../src/client/search/search.ts","../../src/client/dev/devtools.tsx","../../src/client/routing/mount.tsx","../../src/client/navigation/Link.tsx","../../src/client/navigation/NavLink.tsx","../../src/client/routing/action.ts","../../src/client/channel/channel.ts","../../src/client/stream/client.ts","../../src/client/search/use-page-search.ts","../../src/client/components/Image.tsx","../../src/client/components/Script.tsx","../../src/client/components/Form.tsx","../../src/client/components/Slot.tsx","../../src/client/rpc.ts","../../src/client/index.ts"],"fileInfos":[{"version":"16934abaab7026ac114da441aabea1a0","affectsGlobalScope":true,"impliedNodeFormat":1},"d4306fb2e47f74835e8674ffac07d76f","e437c5c1302869326c3bb93da85bbbcf","e4324975a566567b21d350615f1fc6ac","333b1b9a2a9ac3b8497dba5c63b5ba50","6cffacd662b6eb5fa7a36aa2ea366bfa","b4c34f9c23304dbef2d23698637ed638","e5cb86a5fc491796ecd1d2dd348d208f","feb6c6fb19cdb246a5d8acb36a6901c7","9443a7f109277ffaa79d893ed2549995","793cee405385076e27c24f409659dccd","09f69c6610266eaee1ac9e3e30df2c71","62bad718844246b8e17547f37bad6085",{"version":"aae8996e8b5684814785a42cbbefcd79","affectsGlobalScope":true,"impliedNodeFormat":1},"abad6dd56cc8caf095c165df8124d237",{"version":"926204c28cd3d073865348473ae28d2e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f25e42c801b2cb3cf2b39792006a9beb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3c0ed28e53d3695b363e256ec1c023fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1708ea4d34dc37fadadc63ca01127e80","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2b056277dd138e8f5650fc04e20eaa8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8e1d9bb35fd0637f2f9fd2b2a54f2ec","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1cfd3091a071d8b6feec15277643bafe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1da2c1f258970fd3cc91184f69e91a9d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4fc71cf4a15b8d99675a31df77f26e07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1b49564ddaeca3df5b6dbae925d2242","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6a25be566d60ccfc2d6e8b7bfdeefa83","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8a20e27646985dfd58c57ca6566553dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9969f02ad3cdcbf4f709405cda44167f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9c9be4792a7a4f42c15ae7360bf28779","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8cf777fe00349b71ee9c4b6f3fe7fd19","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"74f96bc192530c9723f572bfff3d3078","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1df91c56b25955c56387426f378173c5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"38856f70edcd2115c355d96ec77cc09e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"de8700156c1275465bcd473c28b359aa","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d47cfdb6ede40518357bb5a4cd7cd9fb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6e5773860cd9e5b15e683113f642ab47","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"30ff5fe1682f7fcd629880476ca3c2e0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"bf23d7d1b40b9015b694ddc2f011752f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2cc585d42e2c548f9f24a30a1989fd33","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"713906ce9d332d2242b7f05ed9304be3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0219894bfe5042c7e1aa2d22e4a91ed0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6009ffff7e43c93318804d2d28e37fe3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"03be89b227587594fbb50509fc1c2e45","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b30df52dc24740c0bad7c55c3511df7d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ab8d3c9b5ed5c2ab8f383607eef439f0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d950ec671d0a8e07f3c1a31e94abed86","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1abef2ace5eccb02d60dd73cd5a5ee4c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f5f0a3044029d1cc081b5887eb4deb07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d57c697f1446940ec4bfe669c962e2c4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"be41035d7b941482a1e1ae6a5c5dcca5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"10f7d9da7564f27f8ddf4a162b6da6d3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1d0520af549e0c3581f15173cc713ca1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d65083f97fd741cff028472563eddb79","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"da7f24f00653ebac660ac1c0821ed33d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7cb5ae9e65516ea2235f0721f6aac43c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":1},"f40549d93aa52f9e05672ad1cf03cc56","12ee893622451f880ed3a2cc0aed7360","db5c8f3f0b0bd11298f9c03e82e103dd","fb1ecf5ae16a7976bf5af1ef84b805ca","eee0084c8cbc8e0d48de91ab91b70716","022677bb46998fb931f4d665153961ac","72bb8d64638cc874a569817ee568c918","4ae85668967226a81a26373f7b6fcdd4","c651fd4844b8af2961bf290cc04f75f1","32bc84cea0667075afa7fe864101a9b9","1037586972434633323dea3ad2839f31","14abbee8f985852078fb56db54af246c","d144aa324eb5aed6ae0459e2ae60e5af","374658dc62cb51868d3442f884b5ad4c","d998782d2975a98f1b04aa7dd8dd861e","7fe469b5d18870e20ac3ab66912154b4","dff7c1f84d23a136c3fcf7e26c749cd2","511ba2cad2c112f71429286a90f3ae00","d576c41a0fd37a837de335544e12fcbf","c5569e9189f91a51dfe99c7bb47280c4","a81ef8985b76c9947e2d026838b1baa8","85a03d01183cefed6ac936b907569349","00ed54e896b224877d98e6dc93212c7e","ed316dfbaff7b5d0190e6ca837e4ee6c","0fe99c7d3dc34e1ad74ddbc376fe1a38","60d9270d126c5738e83ca17717dbf2da","caf2e7a90f961cb82140bf023405b349","0bd92e16f70972897df4f4780957d3bd","7a7855d8c5674ad7368fef15a08aaa61","c0e9dcb2f3f4648698b7a8b240fc3835",{"version":"c44ce006faac092c071c97f17cf33a78","impliedNodeFormat":99},{"version":"6b7170561eff7308135d45a8fa0769b3","impliedNodeFormat":99},{"version":"4fa648a5504c296e9b742e5d9375bff5","impliedNodeFormat":99},{"version":"d4594bd63c64054fe0a4b98a0224d4f6","impliedNodeFormat":99},{"version":"f68d5aacd105b044b911a7574fee4f85","impliedNodeFormat":99},{"version":"7e9d12e18b54083c4ee78769f70d0155","impliedNodeFormat":99},{"version":"4ae0f0c3a41877b337e0fab267075c94","impliedNodeFormat":99},{"version":"d53255fe8c9facb5d8057b0a5dc52373","impliedNodeFormat":99},{"version":"fa765587020d0ac0591da8f4d2c9366d","impliedNodeFormat":99},{"version":"6ecafc40083009c21e4bead33dad2094","impliedNodeFormat":99},{"version":"64cd5b8aed36d275e450c998c4b26a20","impliedNodeFormat":99},{"version":"64a8e260527ff43ce31b72e065ca52d0","impliedNodeFormat":99},{"version":"73ccc340565cdeaa5d549ee6d2184b1f","impliedNodeFormat":99},{"version":"dd8fb20c808a5a5c1d213203172214ea","impliedNodeFormat":99},"cf23f06498ea7615277ef7c737b088a5","b98421413f2b200b192445a61fbada62","06691ac1f71feeb4d1c45bd856110a19","30145dae7e78f297dc08fb3abcc6c365","25c89368323457c38b7f51ef5d092473",{"version":"98104af86610712c61ee9fe6fced4cfb","signature":"a8939c2c7f8feefdbf56d7f31544f9b6","impliedNodeFormat":1},{"version":"6a281a1ed435402b6b865100f54dcecd","signature":"78a2aed6f74054550d88c558dbbac0c8","impliedNodeFormat":1},{"version":"086b8ccc1aa2a8df8144951e6a412a39","affectsGlobalScope":true,"impliedNodeFormat":1},"8244c8f803a86fcac606483469eb85c3","7e6f57dc732c3847d23e3a339c57333b","c8b6a8a818c9ae9670eac052d143a588","28d5a5718a71d0113016569329319e79","395d188ea4c32133ddf284a42a839710",{"version":"39db9254f551fdf8f0c87aa47303e25c","signature":"e886f9fe9ddaa95b52a5d1ed8d233f5f","impliedNodeFormat":1},{"version":"b22aee208317c9ddf71bc4a70de92b5c","signature":"556596b309e9b6cd7535d9c7dccba45a","impliedNodeFormat":1},{"version":"559b77d59434b76bee6b38646a64ee9f","signature":"b06708e22054ea3f60223ea58d50aef0","impliedNodeFormat":1},{"version":"998dce5dde4e85e7f6207d8abedae650","signature":"40b1202ccef843f33d58380ab0185276","impliedNodeFormat":1},{"version":"5d4793aa5819db3f58f8a4286b63e229","signature":"970a1874aa2e1c99a759de9dd11daced","impliedNodeFormat":1},{"version":"3ada82bc2a4e019191fa84f7004e90d8","signature":"c08f259c1aed95829c5d84188c243310","impliedNodeFormat":1},{"version":"df8a6e2952996526c75aa4536d2bcd93","signature":"1ad1d61175c50c7844571aa583d3ff31","impliedNodeFormat":1},{"version":"b424406881a281db37ea6e8271153fa1","signature":"5560aaad788568a899c84ac89c0ddf0a","impliedNodeFormat":1},{"version":"a89fc85eb8b23b438df4ebe60451631b","signature":"6f6afa369af3712851cf73ab0a89249f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a3320b8283e084cc64569f0bf63e15a5","signature":"82df3d0b56fcf6b43b8bb018a37e73b5","impliedNodeFormat":1},{"version":"1ed709a1f551490ca95e9710870b0e40","signature":"1edfec3e4b9cd6dd653efa626c8afc2e","impliedNodeFormat":1},{"version":"49c0a7941ecc01c5e47b1be1b9f140b6","signature":"499f5bab1db204573eee6837b77e489a","impliedNodeFormat":1},{"version":"fb226cf27203cefdad02e983e76c8e15","signature":"6976fae47380c44378c205a54d6a31bc","impliedNodeFormat":1},{"version":"bae4e49be71f6166ca3c823e89c3cd49","signature":"255a99bf657da7dd6544f406b98e875b","impliedNodeFormat":1},{"version":"2d8dc2a3032672d433f44b2f4131a6ed","signature":"85ea0a0be263caf9046a45cc495f8d29","impliedNodeFormat":1},{"version":"2e5597258543984ff0047d61679a607a","signature":"d1fedf60eebdb32ab8df7f85cd1a39cf","impliedNodeFormat":1},{"version":"795c9da066e756d14edaf64a013d7436","signature":"48f135d2b732ab709e3b5f0d799b5701","impliedNodeFormat":1},{"version":"33ee9bb33f3484d9d84108556eeda9af","signature":"297cd4f73b3a3fff3e4304963f01614f","impliedNodeFormat":1},{"version":"1605003595afc9a62e09615c0f7eb43e","signature":"ef32dc1cb0e771587e0b52145f49b26b","impliedNodeFormat":1},{"version":"284fd2be1b0984248a460d8216cd4037","signature":"9ffadf4319e3cb14e0758ee20f632c8e","impliedNodeFormat":1},{"version":"13c1bd10cb3ffb3916d2b017537c074e","signature":"ea00620167590c50a7cc6e1dbfdc3f85","impliedNodeFormat":1},{"version":"22c99ab483565dbce27b12a5ec5b60d6","signature":"0ec468691b2d21f8e3df78d8be4842dd","impliedNodeFormat":1},{"version":"584f98cff36eb2194f53e6e93dac3cf0","signature":"17cb81f0470b6d33d0e4fc79be0c9df5","impliedNodeFormat":1},{"version":"0d0c976806b94059e844ba0d81a7f703","signature":"3fdf562fa731d6dccdb3052ae7934eb2","impliedNodeFormat":1},{"version":"ff1555dd91ecbb7102a8281c2c26c65d","signature":"cafe91e1f168b4d219b045962b22faba","impliedNodeFormat":1},{"version":"56b48c54f67c22cacf03b55394739eac","signature":"3f86e48d5f9ea28b8bccc56be200f3ea","impliedNodeFormat":1},{"version":"bc369e417b3911ce6ba5c5e69aadddbe","signature":"7d29ef0ff299978fd48c094f457b9b5f","impliedNodeFormat":1},{"version":"307f5b971e88650147d57122ba1541ec","signature":"5b4ef7f684efa9d6d970c0f6a9e33138","impliedNodeFormat":1},{"version":"38f1c88a7c82726b619737f62f2c84cb","signature":"b365e8cf22b3668376ce580ef4f6b728","impliedNodeFormat":1},{"version":"0888fa0887de7f39b4ab064c54ee4f58","signature":"310c2ad498796a247b1efe03296fde02","impliedNodeFormat":1},{"version":"8058bb4dce0c485e9209a79bbfb20c09","signature":"631cda40b6ddc2e4019a73824ded34dd","impliedNodeFormat":1}],"fileIdsList":[[134],[134,135,136,137],[121],[120],[125,126],[125,126,127],[125,126,127,129],[125],[125,127],[125,127,129],[125,126,127,128,129,130,131,132],[124],[143],[141,142],[90],[90,91],[90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],[119,122,123,133,138],[143,168],[143,160],[143,148,149,152,154,162,163],[143,150],[151,152],[139,140,148,149,150,151,152,153,154,155,158,161,163,165,166,167,168,169,170,171,172,173,174,175,176],[143,148,149,155],[143,158,166],[143,146,147,148],[148,152,154],[143,147,148,149,151,152,154,156,157,158,159,160],[143,148,149,154],[143,148],[143,148,149,152,154,155,157],[143,148,149,151,152,153],[145,148,149,155,161,162,164],[143,152],[153],[143,148,149,163]],"options":{"allowJs":true,"declaration":true,"experimentalDecorators":true,"jsx":4,"module":99,"noImplicitAny":true,"outDir":"./","preserveConstEnums":true,"removeComments":true,"rootDir":"../../src/client","skipLibCheck":true,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"sourceMap":false,"target":99,"tsBuildInfoFile":"./.tsbuildinfo","allowSyntheticDefaultImports":true,"alwaysStrict":true,"esModuleInterop":true},"referencedMap":[[135,1],[138,2],[122,3],[123,3],[121,4],[127,5],[128,6],[130,7],[129,6],[126,8],[131,9],[132,10],[133,11],[125,12],[145,13],[146,13],[143,14],[144,13],[91,15],[92,16],[93,15],[116,15],[94,16],[95,16],[96,16],[97,16],[98,16],[113,16],[119,17],[103,16],[99,16],[100,16],[114,16],[112,16],[115,15],[101,16],[104,16],[105,16],[102,16],[106,16],[107,16],[118,16],[117,16],[111,16],[110,16],[108,16],[109,16],[139,18],[169,13],[174,19],[172,13],[173,13],[175,20],[164,21],[162,13],[151,22],[153,23],[177,24],[166,25],[167,26],[149,27],[155,28],[161,29],[168,30],[156,31],[158,32],[159,31],[154,33],[165,34],[157,35],[160,13],[163,36],[171,37],[150,13],[148,13]]}
|
|
1
|
+
{"version":"7.0.2","root":[[139,140],[147,177]],"packageJsons":["../../node_modules/@dacely/noble-post-quantum/package.json","../../node_modules/@noble/curves/node_modules/@noble/hashes/package.json","../../node_modules/@noble/curves/package.json","../../node_modules/@noble/hashes/package.json","../../node_modules/@types/react-dom/package.json","../../node_modules/@types/react/package.json","../../node_modules/csstype/package.json","../../node_modules/hash-wasm/package.json","../../node_modules/react-dom/package.json","../../node_modules/react/package.json","../../package.json"],"missingPackageJsons":["../../node_modules/@dacely/noble-post-quantum/ml-dsa.js/package.json","../../node_modules/@dacely/noble-post-quantum/ml-kem.js/package.json","../../node_modules/@dacely/noble-post-quantum/node_modules/@noble/hashes/package.json","../../node_modules/@dacely/noble-post-quantum/node_modules/@noble/hashes/utils.js/package.json","../../node_modules/@noble/curves/abstract/package.json","../../node_modules/@noble/curves/ed25519.js/package.json","../../node_modules/@noble/curves/node_modules/@noble/hashes/utils.js/package.json","../../node_modules/@noble/hashes/utils.js/package.json","../../node_modules/@types/react-dom/client/package.json","../../node_modules/@types/react/jsx-runtime/package.json","../../node_modules/hash-wasm/dist/lib/package.json","../../node_modules/hash-wasm/dist/package.json","../../node_modules/react-dom/client/package.json","../../node_modules/react/jsx-runtime/package.json"],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.es2023.d.ts","lib.es2024.d.ts","lib.es2025.d.ts","lib.esnext.d.ts","lib.dom.d.ts","lib.dom.iterable.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.es2023.array.d.ts","lib.es2023.collection.d.ts","lib.es2023.intl.d.ts","lib.es2024.arraybuffer.d.ts","lib.es2024.collection.d.ts","lib.es2024.object.d.ts","lib.es2024.promise.d.ts","lib.es2024.regexp.d.ts","lib.es2024.sharedmemory.d.ts","lib.es2024.string.d.ts","lib.es2025.collection.d.ts","lib.es2025.float16.d.ts","lib.es2025.intl.d.ts","lib.es2025.iterator.d.ts","lib.es2025.promise.d.ts","lib.es2025.regexp.d.ts","lib.esnext.array.d.ts","lib.esnext.collection.d.ts","lib.esnext.date.d.ts","lib.esnext.decorators.d.ts","lib.esnext.disposable.d.ts","lib.esnext.error.d.ts","lib.esnext.intl.d.ts","lib.esnext.sharedmemory.d.ts","lib.esnext.temporal.d.ts","lib.esnext.typedarrays.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","../../node_modules/hash-wasm/dist/lib/util.d.ts","../../node_modules/hash-wasm/dist/lib/WASMInterface.d.ts","../../node_modules/hash-wasm/dist/lib/adler32.d.ts","../../node_modules/hash-wasm/dist/lib/argon2.d.ts","../../node_modules/hash-wasm/dist/lib/blake2b.d.ts","../../node_modules/hash-wasm/dist/lib/blake2s.d.ts","../../node_modules/hash-wasm/dist/lib/blake3.d.ts","../../node_modules/hash-wasm/dist/lib/crc32.d.ts","../../node_modules/hash-wasm/dist/lib/crc64.d.ts","../../node_modules/hash-wasm/dist/lib/md4.d.ts","../../node_modules/hash-wasm/dist/lib/md5.d.ts","../../node_modules/hash-wasm/dist/lib/sha1.d.ts","../../node_modules/hash-wasm/dist/lib/sha3.d.ts","../../node_modules/hash-wasm/dist/lib/keccak.d.ts","../../node_modules/hash-wasm/dist/lib/sha224.d.ts","../../node_modules/hash-wasm/dist/lib/sha256.d.ts","../../node_modules/hash-wasm/dist/lib/sha384.d.ts","../../node_modules/hash-wasm/dist/lib/sha512.d.ts","../../node_modules/hash-wasm/dist/lib/xxhash32.d.ts","../../node_modules/hash-wasm/dist/lib/xxhash64.d.ts","../../node_modules/hash-wasm/dist/lib/xxhash3.d.ts","../../node_modules/hash-wasm/dist/lib/xxhash128.d.ts","../../node_modules/hash-wasm/dist/lib/ripemd160.d.ts","../../node_modules/hash-wasm/dist/lib/hmac.d.ts","../../node_modules/hash-wasm/dist/lib/pbkdf2.d.ts","../../node_modules/hash-wasm/dist/lib/scrypt.d.ts","../../node_modules/hash-wasm/dist/lib/bcrypt.d.ts","../../node_modules/hash-wasm/dist/lib/whirlpool.d.ts","../../node_modules/hash-wasm/dist/lib/sm3.d.ts","../../node_modules/hash-wasm/dist/lib/index.d.ts","../../node_modules/@noble/hashes/utils.d.ts","../../node_modules/@dacely/noble-post-quantum/utils.d.ts","../../node_modules/@dacely/noble-post-quantum/ml-dsa.d.ts","../../node_modules/@dacely/noble-post-quantum/ml-kem.d.ts","../../node_modules/@noble/curves/node_modules/@noble/hashes/utils.d.ts","../../node_modules/@noble/curves/utils.d.ts","../../node_modules/@noble/curves/abstract/modular.d.ts","../../node_modules/@noble/curves/abstract/curve.d.ts","../../node_modules/@noble/curves/abstract/edwards.d.ts","../../node_modules/@noble/curves/abstract/hash-to-curve.d.ts","../../node_modules/@noble/curves/abstract/frost.d.ts","../../node_modules/@noble/curves/abstract/montgomery.d.ts","../../node_modules/@noble/curves/abstract/oprf.d.ts","../../node_modules/@noble/curves/ed25519.d.ts","../io/FastMap.d.ts","../io/FastSet.d.ts","../io/codec.d.ts","../io/types.d.ts","../io/index.d.ts","../../src/client/auth.ts","../../src/client/errors.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","../../node_modules/@types/react-dom/index.d.ts","../../src/client/navigation/scroll.ts","../../src/client/types.ts","../../src/client/navigation/navigation.ts","../../src/client/ssr/markers.tsx","../../src/client/head/head.ts","../../src/client/routing/match.ts","../../src/client/head/metadata.ts","../../src/client/routing/loader.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/slot-context.ts","../../src/client/routing/Router.tsx","../../src/client/dev/error-overlay.tsx","../../src/client/search/search.ts","../../src/client/dev/devtools.tsx","../../src/client/routing/mount.tsx","../../src/client/navigation/Link.tsx","../../src/client/navigation/NavLink.tsx","../../src/client/routing/action.ts","../../src/client/channel/channel.ts","../../src/client/stream/client.ts","../../src/client/search/use-page-search.ts","../../src/client/components/Image.tsx","../../src/client/components/Script.tsx","../../src/client/components/Form.tsx","../../src/client/components/Slot.tsx","../../src/client/rpc.ts","../../src/client/index.ts"],"fileInfos":[{"version":"16934abaab7026ac114da441aabea1a0","affectsGlobalScope":true,"impliedNodeFormat":1},"d4306fb2e47f74835e8674ffac07d76f","e437c5c1302869326c3bb93da85bbbcf","e4324975a566567b21d350615f1fc6ac","333b1b9a2a9ac3b8497dba5c63b5ba50","6cffacd662b6eb5fa7a36aa2ea366bfa","b4c34f9c23304dbef2d23698637ed638","e5cb86a5fc491796ecd1d2dd348d208f","feb6c6fb19cdb246a5d8acb36a6901c7","9443a7f109277ffaa79d893ed2549995","793cee405385076e27c24f409659dccd","09f69c6610266eaee1ac9e3e30df2c71","62bad718844246b8e17547f37bad6085",{"version":"aae8996e8b5684814785a42cbbefcd79","affectsGlobalScope":true,"impliedNodeFormat":1},"abad6dd56cc8caf095c165df8124d237",{"version":"926204c28cd3d073865348473ae28d2e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f25e42c801b2cb3cf2b39792006a9beb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3c0ed28e53d3695b363e256ec1c023fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1708ea4d34dc37fadadc63ca01127e80","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2b056277dd138e8f5650fc04e20eaa8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8e1d9bb35fd0637f2f9fd2b2a54f2ec","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1cfd3091a071d8b6feec15277643bafe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1da2c1f258970fd3cc91184f69e91a9d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4fc71cf4a15b8d99675a31df77f26e07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1b49564ddaeca3df5b6dbae925d2242","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6a25be566d60ccfc2d6e8b7bfdeefa83","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8a20e27646985dfd58c57ca6566553dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9969f02ad3cdcbf4f709405cda44167f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9c9be4792a7a4f42c15ae7360bf28779","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8cf777fe00349b71ee9c4b6f3fe7fd19","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"74f96bc192530c9723f572bfff3d3078","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1df91c56b25955c56387426f378173c5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"38856f70edcd2115c355d96ec77cc09e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"de8700156c1275465bcd473c28b359aa","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d47cfdb6ede40518357bb5a4cd7cd9fb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6e5773860cd9e5b15e683113f642ab47","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"30ff5fe1682f7fcd629880476ca3c2e0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"bf23d7d1b40b9015b694ddc2f011752f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2cc585d42e2c548f9f24a30a1989fd33","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"713906ce9d332d2242b7f05ed9304be3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0219894bfe5042c7e1aa2d22e4a91ed0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6009ffff7e43c93318804d2d28e37fe3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"03be89b227587594fbb50509fc1c2e45","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b30df52dc24740c0bad7c55c3511df7d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ab8d3c9b5ed5c2ab8f383607eef439f0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d950ec671d0a8e07f3c1a31e94abed86","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1abef2ace5eccb02d60dd73cd5a5ee4c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f5f0a3044029d1cc081b5887eb4deb07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d57c697f1446940ec4bfe669c962e2c4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"be41035d7b941482a1e1ae6a5c5dcca5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"10f7d9da7564f27f8ddf4a162b6da6d3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1d0520af549e0c3581f15173cc713ca1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d65083f97fd741cff028472563eddb79","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"da7f24f00653ebac660ac1c0821ed33d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7cb5ae9e65516ea2235f0721f6aac43c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":1},"f40549d93aa52f9e05672ad1cf03cc56","12ee893622451f880ed3a2cc0aed7360","db5c8f3f0b0bd11298f9c03e82e103dd","fb1ecf5ae16a7976bf5af1ef84b805ca","eee0084c8cbc8e0d48de91ab91b70716","022677bb46998fb931f4d665153961ac","72bb8d64638cc874a569817ee568c918","4ae85668967226a81a26373f7b6fcdd4","c651fd4844b8af2961bf290cc04f75f1","32bc84cea0667075afa7fe864101a9b9","1037586972434633323dea3ad2839f31","14abbee8f985852078fb56db54af246c","d144aa324eb5aed6ae0459e2ae60e5af","374658dc62cb51868d3442f884b5ad4c","d998782d2975a98f1b04aa7dd8dd861e","7fe469b5d18870e20ac3ab66912154b4","dff7c1f84d23a136c3fcf7e26c749cd2","511ba2cad2c112f71429286a90f3ae00","d576c41a0fd37a837de335544e12fcbf","c5569e9189f91a51dfe99c7bb47280c4","a81ef8985b76c9947e2d026838b1baa8","85a03d01183cefed6ac936b907569349","00ed54e896b224877d98e6dc93212c7e","ed316dfbaff7b5d0190e6ca837e4ee6c","0fe99c7d3dc34e1ad74ddbc376fe1a38","60d9270d126c5738e83ca17717dbf2da","caf2e7a90f961cb82140bf023405b349","0bd92e16f70972897df4f4780957d3bd","7a7855d8c5674ad7368fef15a08aaa61","c0e9dcb2f3f4648698b7a8b240fc3835",{"version":"c44ce006faac092c071c97f17cf33a78","impliedNodeFormat":99},{"version":"6b7170561eff7308135d45a8fa0769b3","impliedNodeFormat":99},{"version":"4fa648a5504c296e9b742e5d9375bff5","impliedNodeFormat":99},{"version":"d4594bd63c64054fe0a4b98a0224d4f6","impliedNodeFormat":99},{"version":"f68d5aacd105b044b911a7574fee4f85","impliedNodeFormat":99},{"version":"7e9d12e18b54083c4ee78769f70d0155","impliedNodeFormat":99},{"version":"4ae0f0c3a41877b337e0fab267075c94","impliedNodeFormat":99},{"version":"d53255fe8c9facb5d8057b0a5dc52373","impliedNodeFormat":99},{"version":"fa765587020d0ac0591da8f4d2c9366d","impliedNodeFormat":99},{"version":"6ecafc40083009c21e4bead33dad2094","impliedNodeFormat":99},{"version":"64cd5b8aed36d275e450c998c4b26a20","impliedNodeFormat":99},{"version":"64a8e260527ff43ce31b72e065ca52d0","impliedNodeFormat":99},{"version":"73ccc340565cdeaa5d549ee6d2184b1f","impliedNodeFormat":99},{"version":"dd8fb20c808a5a5c1d213203172214ea","impliedNodeFormat":99},"cf23f06498ea7615277ef7c737b088a5","b98421413f2b200b192445a61fbada62","06691ac1f71feeb4d1c45bd856110a19","30145dae7e78f297dc08fb3abcc6c365","25c89368323457c38b7f51ef5d092473",{"version":"302ab4985da556e0426a95876613e234","signature":"e5916adbf22aede549fe04bb6a9e6fe7","impliedNodeFormat":1},{"version":"6a281a1ed435402b6b865100f54dcecd","signature":"78a2aed6f74054550d88c558dbbac0c8","impliedNodeFormat":1},{"version":"086b8ccc1aa2a8df8144951e6a412a39","affectsGlobalScope":true,"impliedNodeFormat":1},"8244c8f803a86fcac606483469eb85c3","7e6f57dc732c3847d23e3a339c57333b","c8b6a8a818c9ae9670eac052d143a588","28d5a5718a71d0113016569329319e79","395d188ea4c32133ddf284a42a839710",{"version":"39db9254f551fdf8f0c87aa47303e25c","signature":"e886f9fe9ddaa95b52a5d1ed8d233f5f","impliedNodeFormat":1},{"version":"b22aee208317c9ddf71bc4a70de92b5c","signature":"556596b309e9b6cd7535d9c7dccba45a","impliedNodeFormat":1},{"version":"68e8e5685e2f0110bf4f90567b0aa995","signature":"b06708e22054ea3f60223ea58d50aef0","impliedNodeFormat":1},{"version":"998dce5dde4e85e7f6207d8abedae650","signature":"40b1202ccef843f33d58380ab0185276","impliedNodeFormat":1},{"version":"5d4793aa5819db3f58f8a4286b63e229","signature":"970a1874aa2e1c99a759de9dd11daced","impliedNodeFormat":1},{"version":"3ada82bc2a4e019191fa84f7004e90d8","signature":"c08f259c1aed95829c5d84188c243310","impliedNodeFormat":1},{"version":"df8a6e2952996526c75aa4536d2bcd93","signature":"1ad1d61175c50c7844571aa583d3ff31","impliedNodeFormat":1},{"version":"b424406881a281db37ea6e8271153fa1","signature":"5560aaad788568a899c84ac89c0ddf0a","impliedNodeFormat":1},{"version":"a89fc85eb8b23b438df4ebe60451631b","signature":"6f6afa369af3712851cf73ab0a89249f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a3320b8283e084cc64569f0bf63e15a5","signature":"82df3d0b56fcf6b43b8bb018a37e73b5","impliedNodeFormat":1},{"version":"1ed709a1f551490ca95e9710870b0e40","signature":"1edfec3e4b9cd6dd653efa626c8afc2e","impliedNodeFormat":1},{"version":"49c0a7941ecc01c5e47b1be1b9f140b6","signature":"499f5bab1db204573eee6837b77e489a","impliedNodeFormat":1},{"version":"fb226cf27203cefdad02e983e76c8e15","signature":"6976fae47380c44378c205a54d6a31bc","impliedNodeFormat":1},{"version":"bae4e49be71f6166ca3c823e89c3cd49","signature":"255a99bf657da7dd6544f406b98e875b","impliedNodeFormat":1},{"version":"e90c645eab5ae356dd4d0892d2fe22c4","signature":"85ea0a0be263caf9046a45cc495f8d29","impliedNodeFormat":1},{"version":"2e5597258543984ff0047d61679a607a","signature":"d1fedf60eebdb32ab8df7f85cd1a39cf","impliedNodeFormat":1},{"version":"795c9da066e756d14edaf64a013d7436","signature":"48f135d2b732ab709e3b5f0d799b5701","impliedNodeFormat":1},{"version":"33ee9bb33f3484d9d84108556eeda9af","signature":"297cd4f73b3a3fff3e4304963f01614f","impliedNodeFormat":1},{"version":"1605003595afc9a62e09615c0f7eb43e","signature":"ef32dc1cb0e771587e0b52145f49b26b","impliedNodeFormat":1},{"version":"284fd2be1b0984248a460d8216cd4037","signature":"9ffadf4319e3cb14e0758ee20f632c8e","impliedNodeFormat":1},{"version":"13c1bd10cb3ffb3916d2b017537c074e","signature":"ea00620167590c50a7cc6e1dbfdc3f85","impliedNodeFormat":1},{"version":"22c99ab483565dbce27b12a5ec5b60d6","signature":"0ec468691b2d21f8e3df78d8be4842dd","impliedNodeFormat":1},{"version":"584f98cff36eb2194f53e6e93dac3cf0","signature":"17cb81f0470b6d33d0e4fc79be0c9df5","impliedNodeFormat":1},{"version":"0d0c976806b94059e844ba0d81a7f703","signature":"3fdf562fa731d6dccdb3052ae7934eb2","impliedNodeFormat":1},{"version":"ff1555dd91ecbb7102a8281c2c26c65d","signature":"cafe91e1f168b4d219b045962b22faba","impliedNodeFormat":1},{"version":"56b48c54f67c22cacf03b55394739eac","signature":"3f86e48d5f9ea28b8bccc56be200f3ea","impliedNodeFormat":1},{"version":"bc369e417b3911ce6ba5c5e69aadddbe","signature":"7d29ef0ff299978fd48c094f457b9b5f","impliedNodeFormat":1},{"version":"307f5b971e88650147d57122ba1541ec","signature":"5b4ef7f684efa9d6d970c0f6a9e33138","impliedNodeFormat":1},{"version":"38f1c88a7c82726b619737f62f2c84cb","signature":"b365e8cf22b3668376ce580ef4f6b728","impliedNodeFormat":1},{"version":"0888fa0887de7f39b4ab064c54ee4f58","signature":"310c2ad498796a247b1efe03296fde02","impliedNodeFormat":1},{"version":"1e6473be1a57406f3915dfe9d3d384b5","signature":"30110edc30fee7b7b33b0fa70e2a82e9","impliedNodeFormat":1}],"fileIdsList":[[134],[134,135,136,137],[121],[120],[125,126],[125,126,127],[125,126,127,129],[125],[125,127],[125,127,129],[125,126,127,128,129,130,131,132],[124],[143],[141,142],[90],[90,91],[90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],[119,122,123,133,138],[143,168],[143,160],[143,148,149,152,154,162,163],[143,150],[151,152],[139,140,148,149,150,151,152,153,154,155,158,161,163,165,166,167,168,169,170,171,172,173,174,175,176],[143,148,149,155],[143,158,166],[143,146,147,148],[148,152,154],[143,147,148,149,151,152,154,156,157,158,159,160],[143,148,149,154],[143,148],[143,148,149,152,154,155,157],[143,148,149,151,152,153],[145,148,149,155,161,162,164],[143,152],[153],[143,148,149,163]],"options":{"allowJs":true,"declaration":true,"experimentalDecorators":true,"jsx":4,"module":99,"noImplicitAny":true,"outDir":"./","preserveConstEnums":true,"removeComments":true,"rootDir":"../../src/client","skipLibCheck":true,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"sourceMap":false,"target":99,"tsBuildInfoFile":"./.tsbuildinfo","allowSyntheticDefaultImports":true,"alwaysStrict":true,"esModuleInterop":true},"referencedMap":[[135,1],[138,2],[122,3],[123,3],[121,4],[127,5],[128,6],[130,7],[129,6],[126,8],[131,9],[132,10],[133,11],[125,12],[145,13],[146,13],[143,14],[144,13],[91,15],[92,16],[93,15],[116,15],[94,16],[95,16],[96,16],[97,16],[98,16],[113,16],[119,17],[103,16],[99,16],[100,16],[114,16],[112,16],[115,15],[101,16],[104,16],[105,16],[102,16],[106,16],[107,16],[118,16],[117,16],[111,16],[110,16],[108,16],[109,16],[139,18],[169,13],[174,19],[172,13],[173,13],[175,20],[164,21],[162,13],[151,22],[153,23],[177,24],[166,25],[167,26],[149,27],[155,28],[161,29],[168,30],[156,31],[158,32],[159,31],[154,33],[165,34],[157,35],[160,13],[163,36],[171,37],[150,13],[148,13]]}
|
package/build/client/auth.d.ts
CHANGED
|
@@ -20,6 +20,9 @@ export declare function buildLoginMessage(sub: string, aud: string, cid: Uint8Ar
|
|
|
20
20
|
export declare function buildRegisterMessage(username: string, publicKey: Uint8Array): Uint8Array;
|
|
21
21
|
export interface AuthOptions {
|
|
22
22
|
readonly baseUrl?: string;
|
|
23
|
+
readonly serverKemPublicKey?: Uint8Array;
|
|
24
|
+
readonly headers?: Record<string, string>;
|
|
25
|
+
readonly onRequestFailed?: (status: number) => void;
|
|
23
26
|
}
|
|
24
27
|
export declare function register(username: string, password: string, email: string, opts?: AuthOptions): Promise<void>;
|
|
25
28
|
export declare function login(username: string, password: string, opts?: AuthOptions): Promise<Uint8Array>;
|
package/build/client/auth.js
CHANGED
|
@@ -102,15 +102,17 @@ function decodeKdf(r) {
|
|
|
102
102
|
salt: r.readBytes(),
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
|
-
async function postBinary(baseUrl, path, body) {
|
|
105
|
+
async function postBinary(baseUrl, path, body, options = {}) {
|
|
106
106
|
const res = await fetch(baseUrl + path, {
|
|
107
107
|
method: 'POST',
|
|
108
|
-
headers: { 'content-type': 'application/octet-stream' },
|
|
108
|
+
headers: { 'content-type': 'application/octet-stream', ...options.headers },
|
|
109
109
|
body: body,
|
|
110
110
|
credentials: 'same-origin',
|
|
111
111
|
});
|
|
112
|
-
if (!res.ok)
|
|
113
|
-
|
|
112
|
+
if (!res.ok) {
|
|
113
|
+
options.onRequestFailed?.(res.status);
|
|
114
|
+
throw new AuthError(AuthErrorCode.RequestFailed, `The auth request failed (HTTP ${String(res.status)}).`);
|
|
115
|
+
}
|
|
114
116
|
return new DataReader(new Uint8Array(await res.arrayBuffer()));
|
|
115
117
|
}
|
|
116
118
|
export async function register(username, password, email, opts = {}) {
|
|
@@ -167,6 +169,10 @@ export async function register(username, password, email, opts = {}) {
|
|
|
167
169
|
throw new AuthError(AuthErrorCode.RegistrationRejected, 'Registration was rejected.');
|
|
168
170
|
}
|
|
169
171
|
export async function login(username, password, opts = {}) {
|
|
172
|
+
const serverKemPublicKey = opts.serverKemPublicKey;
|
|
173
|
+
if (!(serverKemPublicKey instanceof Uint8Array) || serverKemPublicKey.length !== KEM_PUBLIC_KEY_LEN) {
|
|
174
|
+
throw new Error('A deployment ML-KEM public key is required');
|
|
175
|
+
}
|
|
170
176
|
const baseUrl = opts.baseUrl ?? '/auth';
|
|
171
177
|
const oprf = ristretto255_oprf.oprf;
|
|
172
178
|
const pw = utf8(password.normalize('NFKC'));
|
|
@@ -183,8 +189,8 @@ export async function login(username, password, opts = {}) {
|
|
|
183
189
|
throw new AuthError(AuthErrorCode.ProtocolError, 'The login challenge expired; retry.');
|
|
184
190
|
const oprfOutput = oprf.finalize(pw, blind, evaluated);
|
|
185
191
|
const seed = await deriveSeed(oprfOutput, kdf);
|
|
186
|
-
const { cipherText, sharedSecret } = ml_kem768.encapsulate(
|
|
187
|
-
const serverKemKeyId = await sha256Bytes(
|
|
192
|
+
const { cipherText, sharedSecret } = ml_kem768.encapsulate(serverKemPublicKey);
|
|
193
|
+
const serverKemKeyId = await sha256Bytes(serverKemPublicKey);
|
|
188
194
|
const message = buildLoginMessage(username, aud, cid, nonce, iat, exp, cipherText, kdf.memKiB, kdf.iterations, kdf.parallelism, serverKemKeyId);
|
|
189
195
|
let signature;
|
|
190
196
|
try {
|
|
@@ -371,13 +377,13 @@ export async function verifyTwoFactor(twoFaId, code, opts = {}) {
|
|
|
371
377
|
}
|
|
372
378
|
export async function setupTwoFactor(method, opts = {}) {
|
|
373
379
|
const baseUrl = opts.baseUrl ?? '/auth';
|
|
374
|
-
const res = await postBinary(baseUrl, '/2fa/setup', new DataWriter().writeU8(method).toBytes());
|
|
380
|
+
const res = await postBinary(baseUrl, '/2fa/setup', new DataWriter().writeU8(method).toBytes(), opts);
|
|
375
381
|
if (res.readU8() !== 0)
|
|
376
382
|
throw new AuthError(AuthErrorCode.TwoFactorSetupFailed, 'Enabling or disabling two-factor failed.');
|
|
377
383
|
}
|
|
378
384
|
export async function confirmTwoFactorSetup(code, opts = {}) {
|
|
379
385
|
const baseUrl = opts.baseUrl ?? '/auth';
|
|
380
|
-
const res = await postBinary(baseUrl, '/2fa/setup/verify', new DataWriter().writeString(code).toBytes());
|
|
386
|
+
const res = await postBinary(baseUrl, '/2fa/setup/verify', new DataWriter().writeString(code).toBytes(), opts);
|
|
381
387
|
if (res.readU8() !== 0)
|
|
382
388
|
throw new AuthError(AuthErrorCode.TwoFactorSetupFailed, 'Confirming the two-factor setup failed.');
|
|
383
389
|
}
|
|
@@ -385,10 +391,13 @@ export async function twoFactorStatus(opts = {}) {
|
|
|
385
391
|
const baseUrl = opts.baseUrl ?? '/auth';
|
|
386
392
|
const res = await fetch(baseUrl + '/2fa/status', {
|
|
387
393
|
method: 'GET',
|
|
394
|
+
headers: opts.headers,
|
|
388
395
|
credentials: 'same-origin',
|
|
389
396
|
});
|
|
390
|
-
if (!res.ok)
|
|
391
|
-
|
|
397
|
+
if (!res.ok) {
|
|
398
|
+
opts.onRequestFailed?.(res.status);
|
|
399
|
+
throw new AuthError(AuthErrorCode.RequestFailed, `The auth request failed (HTTP ${String(res.status)}).`);
|
|
400
|
+
}
|
|
392
401
|
return new DataReader(new Uint8Array(await res.arrayBuffer())).readU8();
|
|
393
402
|
}
|
|
394
403
|
export async function confirmEmail(token, opts = {}) {
|
package/build/client/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { mount } from './routing/mount.js';
|
|
2
2
|
export { Router } from './routing/Router.js';
|
|
3
|
-
export { Auth, register as authRegister, login as authLogin, buildLoginMessage, LOGIN_CONTEXT, AuthError, AuthErrorCode, UsernameTakenError, EmailInUseError, InvalidCredentialsError, EmailNotConfirmedError, TwoFactorRequiredError, ServerAuthFailedError, TwoFactorCodeError, ConfirmationInvalidError, PasswordResetInvalidError, WeakPasswordError, InvalidEmailError, InvalidUsernameError, checkPassword, isValidEmail, isValidUsername, DEFAULT_PASSWORD_POLICY, PASSWORD_RULE_LABELS, } from './auth.js';
|
|
3
|
+
export { Auth, register as authRegister, login as authLogin, buildLoginMessage, LOGIN_CONTEXT, AuthError, AuthErrorCode, UsernameTakenError, EmailInUseError, InvalidCredentialsError, EmailNotConfirmedError, TwoFactorRequiredError, ServerAuthFailedError, TwoFactorCodeError, ConfirmationInvalidError, PasswordResetInvalidError, WeakPasswordError, InvalidEmailError, InvalidUsernameError, checkPassword, isValidEmail, isValidUsername, DEFAULT_PASSWORD_POLICY, PASSWORD_RULE_LABELS, SERVER_KEM_PUBLIC_KEY, } from './auth.js';
|
|
4
4
|
export type { KdfParams, AuthOptions, PasswordPolicy, PasswordRule } from './auth.js';
|
|
5
5
|
export { Link } from './navigation/Link.js';
|
|
6
6
|
export type { LinkProps } from './navigation/Link.js';
|
package/build/client/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { mount } from './routing/mount.js';
|
|
2
2
|
export { Router } from './routing/Router.js';
|
|
3
|
-
export { Auth, register as authRegister, login as authLogin, buildLoginMessage, LOGIN_CONTEXT, AuthError, AuthErrorCode, UsernameTakenError, EmailInUseError, InvalidCredentialsError, EmailNotConfirmedError, TwoFactorRequiredError, ServerAuthFailedError, TwoFactorCodeError, ConfirmationInvalidError, PasswordResetInvalidError, WeakPasswordError, InvalidEmailError, InvalidUsernameError, checkPassword, isValidEmail, isValidUsername, DEFAULT_PASSWORD_POLICY, PASSWORD_RULE_LABELS, } from './auth.js';
|
|
3
|
+
export { Auth, register as authRegister, login as authLogin, buildLoginMessage, LOGIN_CONTEXT, AuthError, AuthErrorCode, UsernameTakenError, EmailInUseError, InvalidCredentialsError, EmailNotConfirmedError, TwoFactorRequiredError, ServerAuthFailedError, TwoFactorCodeError, ConfirmationInvalidError, PasswordResetInvalidError, WeakPasswordError, InvalidEmailError, InvalidUsernameError, checkPassword, isValidEmail, isValidUsername, DEFAULT_PASSWORD_POLICY, PASSWORD_RULE_LABELS, SERVER_KEM_PUBLIC_KEY, } from './auth.js';
|
|
4
4
|
export { Link } from './navigation/Link.js';
|
|
5
5
|
export { NavLink, matchActive } from './navigation/NavLink.js';
|
|
6
6
|
export { navigate, back, forward, refresh, setViewTransitions, setTransitions, href, } from './navigation/navigation.js';
|
|
@@ -22,6 +22,13 @@ function shouldViewTransition() {
|
|
|
22
22
|
}
|
|
23
23
|
let keyCounter = 0;
|
|
24
24
|
let currentKey = 'initial';
|
|
25
|
+
let currentIndex = 0;
|
|
26
|
+
let restoringHistory = false;
|
|
27
|
+
function permitsNavigation(href, kind) {
|
|
28
|
+
return window.dispatchEvent(new CustomEvent('toil-before-navigation', {
|
|
29
|
+
cancelable: true, detail: { href, kind },
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
25
32
|
function nextKey() {
|
|
26
33
|
keyCounter += 1;
|
|
27
34
|
return `t${String(keyCounter)}`;
|
|
@@ -89,15 +96,19 @@ export function subscribePending(listener) {
|
|
|
89
96
|
export function initNavigation() {
|
|
90
97
|
enableManualScrollRestoration();
|
|
91
98
|
const state = window.history.state;
|
|
99
|
+
const savedIndex = state?.__toilIndex;
|
|
100
|
+
currentIndex = typeof savedIndex === 'number' && Number.isSafeInteger(savedIndex) ? savedIndex : 0;
|
|
92
101
|
if (state?.__toilKey) {
|
|
93
102
|
currentKey = state.__toilKey;
|
|
94
103
|
}
|
|
95
104
|
else {
|
|
96
105
|
currentKey = nextKey();
|
|
97
|
-
window.history.replaceState({ ...state, __toilKey: currentKey }, '');
|
|
98
106
|
}
|
|
107
|
+
window.history.replaceState({ ...state, __toilKey: currentKey, __toilIndex: currentIndex }, '');
|
|
99
108
|
}
|
|
100
109
|
export function navigate(href, options) {
|
|
110
|
+
if (!permitsNavigation(href, 'navigate'))
|
|
111
|
+
return;
|
|
101
112
|
beginNavigation();
|
|
102
113
|
rememberScroll(currentKey);
|
|
103
114
|
let hash = '';
|
|
@@ -108,11 +119,12 @@ export function navigate(href, options) {
|
|
|
108
119
|
hash = '';
|
|
109
120
|
}
|
|
110
121
|
if (options?.replace) {
|
|
111
|
-
window.history.replaceState({ __toilKey: currentKey }, '', href);
|
|
122
|
+
window.history.replaceState({ __toilKey: currentKey, __toilIndex: currentIndex }, '', href);
|
|
112
123
|
}
|
|
113
124
|
else {
|
|
114
125
|
currentKey = nextKey();
|
|
115
|
-
|
|
126
|
+
currentIndex += 1;
|
|
127
|
+
window.history.pushState({ __toilKey: currentKey, __toilIndex: currentIndex }, '', href);
|
|
116
128
|
}
|
|
117
129
|
recordTransition(true);
|
|
118
130
|
planScroll({ hash, toTop: options?.scroll !== false });
|
|
@@ -129,6 +141,19 @@ export function refresh() {
|
|
|
129
141
|
notify();
|
|
130
142
|
}
|
|
131
143
|
function handlePopState(event) {
|
|
144
|
+
const destinationIndex = event.state?.__toilIndex;
|
|
145
|
+
if (restoringHistory && destinationIndex === currentIndex) {
|
|
146
|
+
restoringHistory = false;
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (typeof destinationIndex === 'number' && Number.isSafeInteger(destinationIndex) && destinationIndex !== currentIndex &&
|
|
150
|
+
!permitsNavigation(window.location.href, 'history')) {
|
|
151
|
+
restoringHistory = true;
|
|
152
|
+
window.history.go(currentIndex - destinationIndex);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (typeof destinationIndex === 'number' && Number.isSafeInteger(destinationIndex))
|
|
156
|
+
currentIndex = destinationIndex;
|
|
132
157
|
beginNavigation();
|
|
133
158
|
rememberScroll(currentKey);
|
|
134
159
|
const state = event.state;
|
|
@@ -15,6 +15,10 @@ function RoutePage(props) {
|
|
|
15
15
|
useRouteHead(head);
|
|
16
16
|
return (_jsx(LoaderDataContext.Provider, { value: data, children: createElement(Component) }));
|
|
17
17
|
}
|
|
18
|
+
function DataLayout(props) {
|
|
19
|
+
const { Component, data } = readRouteData({ pattern: props.dataKey, load: props.load }, props.params, props.dataKey, props.epoch);
|
|
20
|
+
return _jsx(LoaderDataContext.Provider, { value: data, children: createElement(Component, { children: props.children }) });
|
|
21
|
+
}
|
|
18
22
|
function renderMatched(matched, params, pathname, epoch, keyPrefix) {
|
|
19
23
|
const search = typeof window === 'undefined' ? '' : window.location.search;
|
|
20
24
|
const dataKey = keyPrefix + loaderKey(pathname, search);
|
|
@@ -29,8 +33,7 @@ function renderMatched(matched, params, pathname, epoch, keyPrefix) {
|
|
|
29
33
|
}
|
|
30
34
|
const chain = matched.layouts ?? [];
|
|
31
35
|
for (let i = chain.length - 1; i >= 0; i--) {
|
|
32
|
-
|
|
33
|
-
content = (_jsx(Suspense, { fallback: null, children: _jsx(NestedLayout, { children: content }) }));
|
|
36
|
+
content = (_jsx(Suspense, { fallback: null, children: _jsx(DataLayout, { load: chain[i], params: params, dataKey: `layout:${String(i)}:${dataKey}`, epoch: epoch, children: content }) }));
|
|
34
37
|
}
|
|
35
38
|
if (matched.errorComponent) {
|
|
36
39
|
content = (_jsx(ErrorBoundary, { fallback: errorComponent(matched.errorComponent), children: content }));
|