toiljs 0.0.34 → 0.0.37
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 +15 -0
- package/README.md +1 -0
- package/as-pect.config.js +8 -2
- package/build/cli/.tsbuildinfo +1 -1
- package/build/cli/index.js +97 -0
- package/build/client/.tsbuildinfo +1 -1
- package/build/client/auth.d.ts +42 -0
- package/build/client/auth.js +182 -0
- package/build/client/index.d.ts +5 -1
- package/build/client/index.js +3 -1
- package/build/client/routing/loader.d.ts +1 -0
- package/build/client/routing/loader.js +37 -0
- package/build/client/routing/mount.js +32 -1
- package/build/client/ssr/markers.d.ts +34 -0
- package/build/client/ssr/markers.js +49 -0
- package/build/compiler/.tsbuildinfo +1 -1
- package/build/compiler/docs.js +88 -1
- package/build/compiler/generate.d.ts +2 -0
- package/build/compiler/generate.js +2 -2
- package/build/compiler/index.js +2 -0
- package/build/compiler/ssr-codegen.d.ts +2 -0
- package/build/compiler/ssr-codegen.js +36 -0
- package/build/compiler/template-build.d.ts +29 -0
- package/build/compiler/template-build.js +150 -0
- package/build/compiler/template.d.ts +22 -0
- package/build/compiler/template.js +169 -0
- package/build/devserver/.tsbuildinfo +1 -1
- package/build/devserver/crypto.js +15 -0
- package/build/devserver/host.js +1 -0
- package/build/devserver/module.d.ts +1 -0
- package/build/devserver/module.js +23 -1
- package/docs/README.md +56 -0
- package/docs/auth.md +261 -0
- package/docs/caching.md +115 -0
- package/docs/cookies.md +457 -0
- package/docs/crypto.md +130 -0
- package/docs/data.md +131 -0
- package/docs/getting-started.md +128 -0
- package/docs/routing.md +259 -0
- package/docs/rpc.md +149 -0
- package/docs/ssr.md +184 -0
- package/docs/time.md +43 -0
- package/examples/basic/client/routes/auth.tsx +198 -0
- package/examples/basic/client/routes/cookies.tsx +199 -0
- package/examples/basic/client/routes/features/index.tsx +34 -10
- package/examples/basic/client/routes/hello.tsx +43 -0
- package/examples/basic/client/routes/pq.tsx +260 -0
- package/examples/basic/server/AuthTestHandler.ts +15 -0
- package/examples/basic/server/AuthVerifyHandler.ts +23 -0
- package/examples/basic/server/CacheHandler.ts +25 -0
- package/examples/basic/server/DecoCache.ts +18 -0
- package/examples/basic/server/FastTrapHandler.ts +8 -0
- package/examples/basic/server/SpinHandler.ts +18 -0
- package/examples/basic/server/SsrGreetingRender.ts +27 -0
- package/examples/basic/server/authexample-main.ts +8 -0
- package/examples/basic/server/authtest-main.ts +8 -0
- package/examples/basic/server/authverify-main.ts +8 -0
- package/examples/basic/server/cache-main.ts +8 -0
- package/examples/basic/server/core/AppHandler.ts +243 -0
- package/examples/basic/server/deco-main.ts +18 -0
- package/examples/basic/server/main.ts +2 -0
- package/examples/basic/server/routes/Auth.ts +184 -0
- package/examples/basic/server/routes/PqDemo.ts +130 -0
- package/examples/basic/server/routes/Session.ts +74 -0
- package/examples/basic/server/spin-main.ts +13 -0
- package/examples/basic/server/ssr/greeting.slots.ts +19 -0
- package/examples/basic/server/ssr-main.ts +18 -0
- package/examples/basic/server/toil-server-env.d.ts +94 -0
- package/examples/basic/server/trap-main.ts +8 -0
- package/package.json +5 -3
- package/server/globals/auth.ts +281 -0
- package/server/runtime/README.md +61 -0
- package/server/runtime/env/Server.ts +12 -0
- package/server/runtime/exports/index.ts +17 -0
- package/server/runtime/exports/render.ts +51 -0
- package/server/runtime/http/base64.ts +104 -0
- package/server/runtime/http/cookie.ts +416 -0
- package/server/runtime/http/cookies.ts +197 -0
- package/server/runtime/http/date.ts +72 -0
- package/server/runtime/http/percent.ts +76 -0
- package/server/runtime/http/securecookies.ts +224 -0
- package/server/runtime/index.ts +17 -0
- package/server/runtime/request.ts +24 -0
- package/server/runtime/response.ts +29 -0
- package/server/runtime/ssr/Ssr.ts +43 -0
- package/server/runtime/ssr/encode.ts +110 -0
- package/server/runtime/ssr/escape.ts +83 -0
- package/server/runtime/ssr/slots.ts +144 -0
- package/server/runtime/time.ts +29 -0
- package/src/cli/create.ts +105 -0
- package/src/client/auth.ts +327 -0
- package/src/client/index.ts +5 -1
- package/src/client/routing/loader.ts +56 -0
- package/src/client/routing/mount.tsx +37 -1
- package/src/client/ssr/markers.tsx +140 -0
- package/src/compiler/docs.ts +88 -1
- package/src/compiler/generate.ts +2 -2
- package/src/compiler/index.ts +5 -0
- package/src/compiler/ssr-codegen.ts +85 -0
- package/src/compiler/template-build.ts +275 -0
- package/src/compiler/template.ts +265 -0
- package/src/devserver/crypto.ts +23 -0
- package/src/devserver/host.ts +4 -0
- package/src/devserver/module.ts +39 -1
- package/test/assembly/cookie.spec.ts +302 -0
- package/test/assembly/example.spec.ts +5 -1
- package/test/assembly/ssr.spec.ts +94 -0
- package/test/devserver.test.ts +42 -0
- package/test/ssr-render.test.ts +128 -0
- package/test/ssr-template.test.tsx +348 -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/errors.ts","../../node_modules/@types/react-dom/client.d.ts","../../src/client/dev/error-overlay.tsx","../../node_modules/@types/react-dom/index.d.ts","../../src/client/navigation/scroll.ts","../../src/client/types.ts","../../src/client/navigation/navigation.ts","../../src/client/head/head.ts","../../src/client/routing/match.ts","../../src/client/head/metadata.ts","../../src/client/routing/loader.ts","../../src/client/search/search.ts","../../src/client/dev/devtools.tsx","../../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/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/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"],"fileIdsList":[[92],[90,91],[92,93],[92,93,117],[92,93,112],[92,93,96,99,100,102,104,105],[93],[93,101,102],[93,94,99,100,101,102,103,104,105,107,110,113,114,115,116,117,118,119,120,121,122,123,124],[92,93,99,100,107],[92,93,110,115],[92,93,97,98,99],[93,99,102,104],[92,93,98,99,100,101,102,104,108,109,110,111,112],[92,93,99,100,104],[92,93,99],[92,93,99,100,102,104,107,109],[92,93,99,100,101,102,103],[93,95,96,99,100,106,107,113],[92,93,102],[93,103],[92,93,99,100,105]],"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":"dc782ff85b2cb10075ecffc158af7bfb27ff97bf8491c917efea0c3d622d5ac4","impliedFormat":1},{"version":"b838d4c72740eb0afd284bf7575b74c624b105eff2e8c7b4aeead57e7ac320ff","impliedFormat":1},{"version":"cbc4073fb15a767ab8787ce067b3266807ea2ef8456aa85e3a55ff5a62c33bdd","signature":"7cf224e300294bcb276cf440125703dd0da90e1b5aa8070a3f7ca043475979c1"},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"890c987c12bc431c8d51f2c663b7d689be996e9ada6a3de2b2e95af43b69e25e","signature":"61814a0254524d3e14d405795a649b8b838386ff0f82caf50a0b7d4c72008c3d"},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"dbafe5664a764167d089a3ecce720259c6f4837696f2cf5e0adb199de6a9150c","signature":"2b2db01796f774852b44cacad054f31b9e63a3c4ed787d12c1dd75c75e602bef"},{"version":"43c268c58c28f2f6f80bc2a42104a2e8ce3891d1c8a2b8767e2a52606e61952b","signature":"d86aae3a61fb2a3734379428044eefd6b048996f3a1a1cd7e57bb94d3d36b02b"},{"version":"31946b8cd45a08d2f4d3be4e8b31b5896e5f0fb24840cc53e6d9a45d71e24506","signature":"50c12b83406070a98041a222f49db12395234ac00db0f16d18d01d8fccfe9d9d"},{"version":"ffed9a09c6bb6fcb84d667349a799875a9f03522afab97db8daa260f704329b2","signature":"2100acdf9780bbfaa7c7c41109ea60464c7e17af1fb6ab3aa89e860ad1c3f350"},{"version":"f6eaf207ae99ba6778460fa1d857e80c870be1533e9b1668060f0f53e6aa6b41","signature":"b9f112f8e9a593f362dd5f434f8f997385dd62f15e2d2fb6d316e5d0d9942a51"},{"version":"648f0495d4f45f8a0a29b5734255abbfea0d653e9b008697fbfb2e3bb0438396","signature":"86c42189ea1d9f57a18c3bf07dc69d1401acc1ebfd560c83fc7272826c0d28e2"},{"version":"9f688902791590bb64d8f9e04b6df74a93a3fb9ca965bc5e5ac9f631d3cc1bb8","signature":"26661a45e46e1ddd3976b866514eb2562bda9008d847288b92b654c45d54e69a"},{"version":"3fcfd875b042c0855e76061aae81b0d8333c1990c1e4ca4d1f3141652b988b06","signature":"b43c263b28c6f20a6d7066e22f6906fe51605b6a4b7709a3c47d7cf6c0ccf93e"},{"version":"ed66d40e70ddc024ac659da839ba6197d0df2289cbe47e7ef8743a5659e3e2ed","signature":"58d2bb278ba2b594a3b664571b357e10388c6a1eef2c27e2946d3ee447fb4e16"},{"version":"26a4fb1b862a479d7a5d90aa1745f070d44bc351e79c6e4f8a6481b206a1655b","signature":"ad70244d75add3a5819000694ceb8f6ffca2fff2bd49acbd6786e1457c9d1d82","affectsGlobalScope":true},{"version":"c75f2d502a494c79d167c744446b8e360d89ced10fa3b052867ef2604ac635c7","signature":"9382f138465c4775c54940f2a3d4334a083a6fc9a622a7c926c5f8233228cbae"},{"version":"336f74bb2ca217a8b08f3c146c41295de7597a86d52ca333fac5634561261846","signature":"c8525f0be940a19f3d03f06b6e43d4bea21ba910db62fb5024ecc671bcc23932"},{"version":"2df764abdd1a4c7d40802723069185fc333ff51a494bd84472ac48bfaac09f34","signature":"b47403a7e6e239e43bf3b91e224e38b4c8345da2dc9967a2a1682996e1d48829"},{"version":"bdf04d4dd9ed94c85da1be565643ef5fad4212b7a545da8f4792deb4cf426665","signature":"c6384012cac726d5b05237d2bd2c9c9da0893feaf54ab1dd0042fe141b9e5bd8"},{"version":"1ac886967a62c940d61ab89f3411f64893d779d69e1435f15215547ba50fa03b","signature":"994bfb8326dca5c985462ba74b5c64146aef0e3ea7bbbbf265ad426d884fbc9e"},{"version":"b5f79dd85b6024ba711a6434232d410799d63ec3ac1b259290ccb2cf9907bd45","signature":"00dd4ce0458ebf64e2e0617d4bc04f3a9a569bc388f3a20c1c4416d465e99245"},{"version":"9cd7480bca9eca570026b270717fd76b72e508310af3b9bbe906c1f69e5fe59b","signature":"e5f0e0e21621bb3e87958857cc9695abf011fb257bd249abd42ae97b3b61e1d0"},{"version":"9c613530527e7eddd1ef9fade0ee8fe5a6f9ac40bb7b454ff1e03530cafde053","signature":"5cf43ceac60fba7927af9ce9b27fb6031854fc923263b78c353fb986857218b9"},{"version":"64837fd5187d6a3c2abc6a265251be66c4a9961c369e5cf647ac87511d328d90","signature":"0caa217adbbdb001facd9aeb363fa2a446eabbeb4e5af2c1f2c3d1ef4bbffc6e"},{"version":"40896dfcdeafc76e4d85bfd4acca390f542032e613c6f5b7c5c8e1e99bb3b63d","signature":"63bfd9f3fbbcb2dc649dd7303b9fdcf5680c25e217228a5abe005674bfc8bed5"},{"version":"f79040aab08b6460794739412f2f175f902517183e6a5196e4aec528d4634347","signature":"bbaa85a96900ee24d770ce38f7807d2d3cc2ca203e223cd4080447680910992e"},{"version":"69a362101efd9d9fe1a4d2d246ae3ac1d76ffc26e222817d13146f7a07bfe5cd","signature":"ea9768ee8ae2400a4352956f0937ff7ce12640c4de3c69d6e71e8a2f954ad58a"},{"version":"c1765ec7c06443b1c353c2bb94b99b3b5a423acd7ee15bb434f7697d955111a8","signature":"7302ddfa6ab62295a7ad2cf47cc8b933be587d161d5b818aba3e85d7af69e59e"},{"version":"d6b31ff724e8e01666f5ea0bbfd3e36dc12a0d6183971489d8d3d3bacbc64ff7","signature":"d9ce1372a43589027af010d0293b17099bf27089071c6d12ce30eb94b70191af"},{"version":"3a457804833548916b70ab4349e05b3aba51f5a83e611f08c5706dd276e76123","signature":"dbb3eab27a108491f80873c1031ddc0b1a16c47f4c32e2ec2e70b83e9cee161b"},{"version":"e70ff59723d81c0daea510f74742aaa463d396a1601eb8962d452ab7a9f40d83","signature":"8aec088c8b901c6fe9e7fe22785892138849af77a640d12b7015ec52a95aa27c"},{"version":"f550120244fd3952cebde6d6dd1765709be01789e01016ea39ec838383452619","signature":"d358bf9f604d2d3ac588fc908565f9c8a60bcb8e6993461b20ef5ca60e9a8f57"},{"version":"3bc09df54906e09c2d16052dbbf297de61b02cb6e43c7d5aabe76a46ae4cf9c7","signature":"634f049e544e98a25a34d98b8eec70a5a99c353ee282570503e6d1f5a8b57277"}],"root":[94,96,[98,125]],"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":[[95,1],[97,1],[92,2],[93,1],[118,3],[122,4],[120,3],[121,3],[123,5],[106,6],[96,3],[94,7],[101,3],[103,8],[125,9],[115,10],[116,11],[100,12],[107,13],[98,7],[113,14],[117,15],[108,16],[110,17],[111,16],[104,18],[102,7],[114,19],[109,20],[112,3],[124,7],[105,21],[119,22],[99,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/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/@btc-vision/post-quantum/utils.d.ts","../../node_modules/@btc-vision/post-quantum/ml-dsa.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-dom/client.d.ts","../../src/client/dev/error-overlay.tsx","../../node_modules/@types/react-dom/index.d.ts","../../src/client/navigation/scroll.ts","../../src/client/types.ts","../../src/client/navigation/navigation.ts","../../src/client/head/head.ts","../../src/client/routing/match.ts","../../src/client/head/metadata.ts","../../src/client/routing/loader.ts","../../src/client/search/search.ts","../../src/client/dev/devtools.tsx","../../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/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/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/ssr/markers.tsx","../../src/client/index.ts"],"fileIdsList":[[127],[127,128,129,130],[125],[124],[92],[90,91],[94],[94,95],[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,120,121,122],[93,123,126,131],[92,93],[92,93,156],[92,93,151],[92,93,135,138,139,141,143,144],[93],[93,140,141],[93,132,133,138,139,140,141,142,143,144,146,149,152,153,154,155,156,157,158,159,160,161,162,163,164],[92,93,138,139,146],[92,93,149,154],[92,93,136,137,138],[93,138,141,143],[92,93,137,138,139,140,141,143,147,148,149,150,151],[92,93,138,139,143],[92,93,138],[92,93,138,139,141,143,146,148],[92,93,138,139,140,141,142],[93,134,135,138,139,141,143,145,146,152],[92,93,141],[93,142],[92,93,138,139,144]],"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":"dc782ff85b2cb10075ecffc158af7bfb27ff97bf8491c917efea0c3d622d5ac4","impliedFormat":1},{"version":"b838d4c72740eb0afd284bf7575b74c624b105eff2e8c7b4aeead57e7ac320ff","impliedFormat":1},{"version":"a957a1395986cd6863bae5a42c58d66886df90f1931c911fbe406f8321335e6f","impliedFormat":1},{"version":"a2bc59da4f44ff533bd0b7ea20946f8c52eae8895531746dee71603e3b7d5578","impliedFormat":1},{"version":"9828342b073c3d2a51680d84be6e8693c15209142d4c3c49f9af9ad3e8a9dacc","impliedFormat":1},{"version":"7cabf9ff89f3a1de0524b3a50265ba1294a88e495e114dcae8da0cbc50fc92f2","impliedFormat":1},{"version":"9d7a70722e17134d5eab42d3dd710eacbe42fd1210d80287f6639c29ee2a7c10","impliedFormat":1},{"version":"165409ea4281fef67eea472050347967441004e84d22a8977a94e1976823d5be","impliedFormat":1},{"version":"505abecc03fe091b97b747dc320fff4679344de28c922564193151c0cefb3180","impliedFormat":1},{"version":"0f90009e6c417c9336b260496ea53729a9c70933895e2ce545fff272b9301bb2","impliedFormat":1},{"version":"c0a488e0b571aec7a957ecad80792af284c357b48ba6d2d8b4444aa2be6c5a2f","impliedFormat":1},{"version":"ff2ce6f20d8c9346ab61a3444f5bca603f327d26352eb0ab6f40cb1f48e84c84","impliedFormat":1},{"version":"7c9fc8fbe28c6fe364d78be412d8467619b87dc828f2cf5ef525db7d7837c9f7","impliedFormat":1},{"version":"c824d703f55424408de202f826ff50eced9ad4c07edf12ff99fef7a7ca820f5b","impliedFormat":1},{"version":"6efbf9b08c3e5a48b93858e7b96eb61f9ca6d5c5d27709dc16f806e0ba1067cc","impliedFormat":1},{"version":"1b6d8a8926e323af55c6777a6f6561191ea3da6beabe8e7d91c152df3c693bac","impliedFormat":1},{"version":"587173d12395c6996972afd696425044d322eb0174e76d7d5888caf35d88831d","impliedFormat":1},{"version":"de5ba33082f9ac12bd6a9e44c530a5dd708d145fff6cc2dd7cb30321a8882a6b","impliedFormat":1},{"version":"a50a03f03f65f3cc4e012c86464f310755462c7059f1581a9c666b5457d102e1","impliedFormat":1},{"version":"89b954bd9c00a77ce3d889e1cc78b034779e2593fe0adfa14b6e56baafeb5de2","impliedFormat":1},{"version":"9935b6341ac96a5027526efc1ec75114ccf2009b6ed602f65bc82e75ac2089b1","impliedFormat":1},{"version":"f8776dc3e57237b3de45b8ab5f224adc00dd90fe217f1a34ed6442606807c122","impliedFormat":1},{"version":"b0c8c7af35a444fd4054c12d971eabcd7ec4be2e840fc60f8897b5732cb3a20b","impliedFormat":1},{"version":"4f9bd8f00fe9f0ae8b5d2fffed8d47915b61b428e33b2ee9aa3ef159e98e305c","impliedFormat":1},{"version":"bbe6c08cefd08a23dc36eca9dae8aeb30895debf15387ab6904b591e3b6b3217","impliedFormat":1},{"version":"0c3880ad1eee5252b7f02c6ff10bd2666cb9a59ae698d552ec5b0a4a7b9611d8","impliedFormat":1},{"version":"d5d71ded265f144dec6604983fbfaf201844d7cd8614aadab8ad5227e99545d3","impliedFormat":1},{"version":"907d2ea3b3fed567fe2dff6747f7642f57aa8b3c288becf4843113ac98331ee3","impliedFormat":1},{"version":"33da6d63dbab160960cdd6e1dba0716bbc2f60af4aeb229ea9b318303c2015e1","impliedFormat":1},{"version":"6dc0148fe65a487db8bd552670f0fe87498c0a8e644c38092a185a05030282bf","impliedFormat":1},{"version":"6bd476fd8a150f5211488cc1d58d412dabec0da0977295ea1f06957b1d28ed13","impliedFormat":1},{"version":"5e134f083c46ea016764a484ac86f664564303f87bc3ca7cfd4b74ccbacad282","impliedFormat":1},{"version":"79766c737b0a94c9d47424412054f0193d78dbfd3b71cfe2ec4f5efce419c081","impliedFormat":99},{"version":"932651adcabacf9201322edc6ad4ff4bd5ae80aaa01b2349568b871fe974309d","impliedFormat":99},{"version":"2556cdc20cd28b566f54e9912f802380174abe3beaa6b45e962f0d81b0449812","impliedFormat":99},"6a4c287c863003342a42d8bf876c7df4c2e82e95f556af5ade71f05255845200","272e7bc3a3734cc9e7419625f04cff7095131e315e51a83fa992a5134763df49","95d7fc009e516b8c2fc93192181dbf7858c70402d070ed85c61c34be685df103","3952955b5e83c1164fc78d7d54377fd4d09d2c11b79763cba53a7ff4b27a0601","48d0d0bebe2ccfd875953713d746fe4adae81b1e3a91ffafae29ead23fd5c39b",{"version":"6acefc454e359c2e8022e176acdb39a482300bf5c4e5f90e4e45f7a2bf0faef7","signature":"5f95a8ab7f4f8b0f80eb586c13a4ed58516d46522f24b0a2f88befc16cc32b51"},{"version":"cbc4073fb15a767ab8787ce067b3266807ea2ef8456aa85e3a55ff5a62c33bdd","signature":"7cf224e300294bcb276cf440125703dd0da90e1b5aa8070a3f7ca043475979c1"},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"890c987c12bc431c8d51f2c663b7d689be996e9ada6a3de2b2e95af43b69e25e","signature":"61814a0254524d3e14d405795a649b8b838386ff0f82caf50a0b7d4c72008c3d"},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"dbafe5664a764167d089a3ecce720259c6f4837696f2cf5e0adb199de6a9150c","signature":"2b2db01796f774852b44cacad054f31b9e63a3c4ed787d12c1dd75c75e602bef"},{"version":"43c268c58c28f2f6f80bc2a42104a2e8ce3891d1c8a2b8767e2a52606e61952b","signature":"d86aae3a61fb2a3734379428044eefd6b048996f3a1a1cd7e57bb94d3d36b02b"},{"version":"31946b8cd45a08d2f4d3be4e8b31b5896e5f0fb24840cc53e6d9a45d71e24506","signature":"50c12b83406070a98041a222f49db12395234ac00db0f16d18d01d8fccfe9d9d"},{"version":"ffed9a09c6bb6fcb84d667349a799875a9f03522afab97db8daa260f704329b2","signature":"2100acdf9780bbfaa7c7c41109ea60464c7e17af1fb6ab3aa89e860ad1c3f350"},{"version":"f6eaf207ae99ba6778460fa1d857e80c870be1533e9b1668060f0f53e6aa6b41","signature":"b9f112f8e9a593f362dd5f434f8f997385dd62f15e2d2fb6d316e5d0d9942a51"},{"version":"648f0495d4f45f8a0a29b5734255abbfea0d653e9b008697fbfb2e3bb0438396","signature":"86c42189ea1d9f57a18c3bf07dc69d1401acc1ebfd560c83fc7272826c0d28e2"},{"version":"7cf026fb27d74cab8e8fb566dc4685c4289da2fa8a15baaa08c258aa177ccbdc","signature":"ba8cda0a8ef4aaa88a574d7e25ea6eaac5e6b9a25c862afdd948d8b6780014b6"},{"version":"3fcfd875b042c0855e76061aae81b0d8333c1990c1e4ca4d1f3141652b988b06","signature":"b43c263b28c6f20a6d7066e22f6906fe51605b6a4b7709a3c47d7cf6c0ccf93e"},{"version":"ed66d40e70ddc024ac659da839ba6197d0df2289cbe47e7ef8743a5659e3e2ed","signature":"58d2bb278ba2b594a3b664571b357e10388c6a1eef2c27e2946d3ee447fb4e16"},{"version":"26a4fb1b862a479d7a5d90aa1745f070d44bc351e79c6e4f8a6481b206a1655b","signature":"ad70244d75add3a5819000694ceb8f6ffca2fff2bd49acbd6786e1457c9d1d82","affectsGlobalScope":true},{"version":"c75f2d502a494c79d167c744446b8e360d89ced10fa3b052867ef2604ac635c7","signature":"9382f138465c4775c54940f2a3d4334a083a6fc9a622a7c926c5f8233228cbae"},{"version":"336f74bb2ca217a8b08f3c146c41295de7597a86d52ca333fac5634561261846","signature":"c8525f0be940a19f3d03f06b6e43d4bea21ba910db62fb5024ecc671bcc23932"},{"version":"2df764abdd1a4c7d40802723069185fc333ff51a494bd84472ac48bfaac09f34","signature":"b47403a7e6e239e43bf3b91e224e38b4c8345da2dc9967a2a1682996e1d48829"},{"version":"bdf04d4dd9ed94c85da1be565643ef5fad4212b7a545da8f4792deb4cf426665","signature":"c6384012cac726d5b05237d2bd2c9c9da0893feaf54ab1dd0042fe141b9e5bd8"},{"version":"1ac886967a62c940d61ab89f3411f64893d779d69e1435f15215547ba50fa03b","signature":"994bfb8326dca5c985462ba74b5c64146aef0e3ea7bbbbf265ad426d884fbc9e"},{"version":"b5f79dd85b6024ba711a6434232d410799d63ec3ac1b259290ccb2cf9907bd45","signature":"00dd4ce0458ebf64e2e0617d4bc04f3a9a569bc388f3a20c1c4416d465e99245"},{"version":"bac07bea110528858c371e63326ca2090923f4695cb75f28691619f5346a3022","signature":"e5f0e0e21621bb3e87958857cc9695abf011fb257bd249abd42ae97b3b61e1d0"},{"version":"9c613530527e7eddd1ef9fade0ee8fe5a6f9ac40bb7b454ff1e03530cafde053","signature":"5cf43ceac60fba7927af9ce9b27fb6031854fc923263b78c353fb986857218b9"},{"version":"64837fd5187d6a3c2abc6a265251be66c4a9961c369e5cf647ac87511d328d90","signature":"0caa217adbbdb001facd9aeb363fa2a446eabbeb4e5af2c1f2c3d1ef4bbffc6e"},{"version":"40896dfcdeafc76e4d85bfd4acca390f542032e613c6f5b7c5c8e1e99bb3b63d","signature":"63bfd9f3fbbcb2dc649dd7303b9fdcf5680c25e217228a5abe005674bfc8bed5"},{"version":"f79040aab08b6460794739412f2f175f902517183e6a5196e4aec528d4634347","signature":"bbaa85a96900ee24d770ce38f7807d2d3cc2ca203e223cd4080447680910992e"},{"version":"69a362101efd9d9fe1a4d2d246ae3ac1d76ffc26e222817d13146f7a07bfe5cd","signature":"ea9768ee8ae2400a4352956f0937ff7ce12640c4de3c69d6e71e8a2f954ad58a"},{"version":"c1765ec7c06443b1c353c2bb94b99b3b5a423acd7ee15bb434f7697d955111a8","signature":"7302ddfa6ab62295a7ad2cf47cc8b933be587d161d5b818aba3e85d7af69e59e"},{"version":"d6b31ff724e8e01666f5ea0bbfd3e36dc12a0d6183971489d8d3d3bacbc64ff7","signature":"d9ce1372a43589027af010d0293b17099bf27089071c6d12ce30eb94b70191af"},{"version":"3a457804833548916b70ab4349e05b3aba51f5a83e611f08c5706dd276e76123","signature":"dbb3eab27a108491f80873c1031ddc0b1a16c47f4c32e2ec2e70b83e9cee161b"},{"version":"e70ff59723d81c0daea510f74742aaa463d396a1601eb8962d452ab7a9f40d83","signature":"8aec088c8b901c6fe9e7fe22785892138849af77a640d12b7015ec52a95aa27c"},{"version":"f550120244fd3952cebde6d6dd1765709be01789e01016ea39ec838383452619","signature":"d358bf9f604d2d3ac588fc908565f9c8a60bcb8e6993461b20ef5ca60e9a8f57"},{"version":"86a549f25a39b5e2ed3d6ac18bfee10d0ffbf159e02b165ccbed90bf650e0a95","signature":"800d43dc6dd4e0c95e96354de9c04fdef0cb87481cd9623351b5140c484ee733"},{"version":"0a2a6775ba8868b97cc72b914252bf80c521b123a850afe49cd10584f2e6df86","signature":"c3c346b49b46539846c7b9f1839f12261c45c27284df419f0f5182875f250b58"}],"root":[132,133,135,[137,165]],"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":[[128,1],[131,2],[126,3],[125,4],[134,5],[136,5],[92,6],[93,5],[95,7],[96,8],[97,7],[120,7],[98,8],[99,8],[100,8],[101,8],[102,8],[117,8],[123,9],[107,8],[103,8],[104,8],[118,8],[116,8],[119,7],[105,8],[108,8],[109,8],[106,8],[110,8],[111,8],[122,8],[121,8],[115,8],[114,8],[112,8],[113,8],[132,10],[157,11],[161,12],[159,11],[160,11],[162,13],[145,14],[135,11],[133,15],[140,11],[142,16],[165,17],[154,18],[155,19],[139,20],[146,21],[137,15],[152,22],[156,23],[147,24],[149,25],[150,24],[143,26],[141,15],[153,27],[148,28],[151,11],[163,15],[144,29],[158,30],[164,11],[138,11]],"version":"6.0.3"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export declare const LOGIN_CONTEXT = "qauth:login:v1";
|
|
2
|
+
export declare const PUBLIC_KEY_LEN = 1312;
|
|
3
|
+
export declare const SECRET_KEY_LEN = 2560;
|
|
4
|
+
export declare const SIGNATURE_LEN = 2420;
|
|
5
|
+
export declare const SEED_LEN = 32;
|
|
6
|
+
export interface KdfParams {
|
|
7
|
+
readonly memKiB: number;
|
|
8
|
+
readonly iterations: number;
|
|
9
|
+
readonly parallelism: number;
|
|
10
|
+
readonly salt: Uint8Array;
|
|
11
|
+
}
|
|
12
|
+
export interface Challenge {
|
|
13
|
+
readonly cid: Uint8Array;
|
|
14
|
+
readonly aud: string;
|
|
15
|
+
readonly kdf: KdfParams;
|
|
16
|
+
readonly nonce: Uint8Array;
|
|
17
|
+
readonly iat: bigint;
|
|
18
|
+
readonly exp: bigint;
|
|
19
|
+
}
|
|
20
|
+
export declare function buildLoginMessage(sub: string, aud: string, cid: Uint8Array, nonce: Uint8Array, iat: bigint, exp: bigint): Uint8Array;
|
|
21
|
+
export interface AuthOptions {
|
|
22
|
+
readonly baseUrl?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function register(username: string, password: string, opts?: AuthOptions): Promise<void>;
|
|
25
|
+
export declare function login(username: string, password: string, opts?: AuthOptions): Promise<Uint8Array>;
|
|
26
|
+
export interface IdentityProof {
|
|
27
|
+
readonly envelope: Uint8Array;
|
|
28
|
+
readonly publicKeyHex: string;
|
|
29
|
+
readonly nonceHex: string;
|
|
30
|
+
readonly signatureLen: number;
|
|
31
|
+
readonly deriveMs: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function proveIdentity(username: string, password: string, opts?: {
|
|
34
|
+
baseUrl?: string;
|
|
35
|
+
}): Promise<IdentityProof>;
|
|
36
|
+
export declare const Auth: {
|
|
37
|
+
readonly register: typeof register;
|
|
38
|
+
readonly login: typeof login;
|
|
39
|
+
readonly proveIdentity: typeof proveIdentity;
|
|
40
|
+
readonly buildLoginMessage: typeof buildLoginMessage;
|
|
41
|
+
readonly LOGIN_CONTEXT: "qauth:login:v1";
|
|
42
|
+
};
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { argon2id, sha256 } from 'hash-wasm';
|
|
2
|
+
import { ml_dsa44 } from '@btc-vision/post-quantum/ml-dsa.js';
|
|
3
|
+
import { DataReader, DataWriter } from 'toiljs/io';
|
|
4
|
+
export const LOGIN_CONTEXT = 'qauth:login:v1';
|
|
5
|
+
export const PUBLIC_KEY_LEN = 1312;
|
|
6
|
+
export const SECRET_KEY_LEN = 2560;
|
|
7
|
+
export const SIGNATURE_LEN = 2420;
|
|
8
|
+
export const SEED_LEN = 32;
|
|
9
|
+
function wipe(buf) {
|
|
10
|
+
crypto.getRandomValues(buf);
|
|
11
|
+
buf.fill(0);
|
|
12
|
+
}
|
|
13
|
+
async function deriveSeed(password, kdf) {
|
|
14
|
+
return argon2id({
|
|
15
|
+
password: new TextEncoder().encode(password.normalize('NFKC')),
|
|
16
|
+
salt: kdf.salt,
|
|
17
|
+
iterations: kdf.iterations,
|
|
18
|
+
parallelism: kdf.parallelism,
|
|
19
|
+
memorySize: kdf.memKiB,
|
|
20
|
+
hashLength: SEED_LEN,
|
|
21
|
+
outputType: 'binary',
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
export function buildLoginMessage(sub, aud, cid, nonce, iat, exp) {
|
|
25
|
+
return new DataWriter()
|
|
26
|
+
.writeU8(1)
|
|
27
|
+
.writeString(sub)
|
|
28
|
+
.writeString(aud)
|
|
29
|
+
.writeBytes(cid)
|
|
30
|
+
.writeBytes(nonce)
|
|
31
|
+
.writeU64(iat)
|
|
32
|
+
.writeU64(exp)
|
|
33
|
+
.toBytes();
|
|
34
|
+
}
|
|
35
|
+
function decodeKdf(r) {
|
|
36
|
+
return {
|
|
37
|
+
memKiB: r.readU32(),
|
|
38
|
+
iterations: r.readU32(),
|
|
39
|
+
parallelism: r.readU32(),
|
|
40
|
+
salt: r.readBytes(),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function decodeChallenge(r) {
|
|
44
|
+
const cid = r.readBytes();
|
|
45
|
+
const aud = r.readString();
|
|
46
|
+
const kdf = decodeKdf(r);
|
|
47
|
+
const nonce = r.readBytes();
|
|
48
|
+
const iat = r.readU64();
|
|
49
|
+
const exp = r.readU64();
|
|
50
|
+
return { cid, aud, kdf, nonce, iat, exp };
|
|
51
|
+
}
|
|
52
|
+
async function postBinary(baseUrl, path, body) {
|
|
53
|
+
const res = await fetch(baseUrl + path, {
|
|
54
|
+
method: 'POST',
|
|
55
|
+
headers: { 'content-type': 'application/octet-stream' },
|
|
56
|
+
body: body,
|
|
57
|
+
credentials: 'same-origin',
|
|
58
|
+
});
|
|
59
|
+
if (!res.ok)
|
|
60
|
+
throw new Error('auth: request failed');
|
|
61
|
+
return new DataReader(new Uint8Array(await res.arrayBuffer()));
|
|
62
|
+
}
|
|
63
|
+
export async function register(username, password, opts = {}) {
|
|
64
|
+
const baseUrl = opts.baseUrl ?? '/auth';
|
|
65
|
+
const start = await postBinary(baseUrl, '/register/start', new DataWriter().writeString(username).toBytes());
|
|
66
|
+
const status = start.readU8();
|
|
67
|
+
if (status !== 0)
|
|
68
|
+
throw new Error('auth: registration unavailable');
|
|
69
|
+
const kdf = decodeKdf(start);
|
|
70
|
+
const seed = await deriveSeed(password, kdf);
|
|
71
|
+
let publicKey;
|
|
72
|
+
try {
|
|
73
|
+
const kp = ml_dsa44.keygen(seed);
|
|
74
|
+
publicKey = kp.publicKey;
|
|
75
|
+
wipe(kp.secretKey);
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
wipe(seed);
|
|
79
|
+
}
|
|
80
|
+
if (publicKey.length !== PUBLIC_KEY_LEN)
|
|
81
|
+
throw new Error('auth: bad public key length');
|
|
82
|
+
const finish = await postBinary(baseUrl, '/register/finish', new DataWriter().writeString(username).writeBytes(publicKey).toBytes());
|
|
83
|
+
if (finish.readU8() !== 0)
|
|
84
|
+
throw new Error('auth: registration rejected');
|
|
85
|
+
}
|
|
86
|
+
export async function login(username, password, opts = {}) {
|
|
87
|
+
const baseUrl = opts.baseUrl ?? '/auth';
|
|
88
|
+
const ch = decodeChallenge(await postBinary(baseUrl, '/login/start', new DataWriter().writeString(username).toBytes()));
|
|
89
|
+
if (BigInt(Math.floor(Date.now() / 1000)) >= ch.exp)
|
|
90
|
+
throw new Error('auth: challenge expired');
|
|
91
|
+
const message = buildLoginMessage(username, ch.aud, ch.cid, ch.nonce, ch.iat, ch.exp);
|
|
92
|
+
const seed = await deriveSeed(password, ch.kdf);
|
|
93
|
+
let signature;
|
|
94
|
+
try {
|
|
95
|
+
const kp = ml_dsa44.keygen(seed);
|
|
96
|
+
try {
|
|
97
|
+
signature = ml_dsa44.sign(message, kp.secretKey, { context: new TextEncoder().encode(LOGIN_CONTEXT) });
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
wipe(kp.secretKey);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
wipe(seed);
|
|
105
|
+
}
|
|
106
|
+
if (signature.length !== SIGNATURE_LEN)
|
|
107
|
+
throw new Error('auth: bad signature length');
|
|
108
|
+
const res = await postBinary(baseUrl, '/login/finish', new DataWriter().writeBytes(ch.cid).writeBytes(signature).toBytes());
|
|
109
|
+
if (res.readU8() !== 0)
|
|
110
|
+
throw new Error('auth: login failed');
|
|
111
|
+
return res.readBytes();
|
|
112
|
+
}
|
|
113
|
+
function toHex(bytes) {
|
|
114
|
+
let s = '';
|
|
115
|
+
for (const b of bytes)
|
|
116
|
+
s += b.toString(16).padStart(2, '0');
|
|
117
|
+
return s;
|
|
118
|
+
}
|
|
119
|
+
async function demoSalt(username) {
|
|
120
|
+
const hex = await sha256('pq-demo|' + username);
|
|
121
|
+
const out = new Uint8Array(16);
|
|
122
|
+
for (let i = 0; i < 16; i++)
|
|
123
|
+
out[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
|
|
124
|
+
return out;
|
|
125
|
+
}
|
|
126
|
+
export async function proveIdentity(username, password, opts = {}) {
|
|
127
|
+
const baseUrl = opts.baseUrl ?? '/pq';
|
|
128
|
+
const cres = await fetch(baseUrl + '/challenge', { credentials: 'same-origin' });
|
|
129
|
+
if (!cres.ok)
|
|
130
|
+
throw new Error('pq: challenge request failed');
|
|
131
|
+
const cr = new DataReader(new Uint8Array(await cres.arrayBuffer()));
|
|
132
|
+
const aud = cr.readString();
|
|
133
|
+
const cid = cr.readBytes();
|
|
134
|
+
const nonce = cr.readBytes();
|
|
135
|
+
const iat = cr.readU64();
|
|
136
|
+
const exp = cr.readU64();
|
|
137
|
+
const token = cr.readString();
|
|
138
|
+
const salt = await demoSalt(username);
|
|
139
|
+
const t0 = Date.now();
|
|
140
|
+
const seed = await argon2id({
|
|
141
|
+
password: new TextEncoder().encode(password.normalize('NFKC')),
|
|
142
|
+
salt,
|
|
143
|
+
iterations: 2,
|
|
144
|
+
parallelism: 1,
|
|
145
|
+
memorySize: 16 * 1024,
|
|
146
|
+
hashLength: SEED_LEN,
|
|
147
|
+
outputType: 'binary',
|
|
148
|
+
});
|
|
149
|
+
const deriveMs = Date.now() - t0;
|
|
150
|
+
const message = buildLoginMessage(username, aud, cid, nonce, iat, exp);
|
|
151
|
+
let publicKey;
|
|
152
|
+
let signature;
|
|
153
|
+
try {
|
|
154
|
+
const kp = ml_dsa44.keygen(seed);
|
|
155
|
+
publicKey = kp.publicKey;
|
|
156
|
+
try {
|
|
157
|
+
signature = ml_dsa44.sign(message, kp.secretKey, {
|
|
158
|
+
context: new TextEncoder().encode(LOGIN_CONTEXT),
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
finally {
|
|
162
|
+
wipe(kp.secretKey);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
finally {
|
|
166
|
+
wipe(seed);
|
|
167
|
+
}
|
|
168
|
+
const envelope = new DataWriter()
|
|
169
|
+
.writeString(username)
|
|
170
|
+
.writeString(token)
|
|
171
|
+
.writeBytes(publicKey)
|
|
172
|
+
.writeBytes(signature)
|
|
173
|
+
.toBytes();
|
|
174
|
+
return {
|
|
175
|
+
envelope,
|
|
176
|
+
publicKeyHex: toHex(publicKey.slice(0, 16)),
|
|
177
|
+
nonceHex: toHex(nonce.slice(0, 16)),
|
|
178
|
+
signatureLen: signature.length,
|
|
179
|
+
deriveMs,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
export const Auth = { register, login, proveIdentity, buildLoginMessage, LOGIN_CONTEXT };
|
package/build/client/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
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, proveIdentity, buildLoginMessage, LOGIN_CONTEXT } from './auth.js';
|
|
4
|
+
export type { KdfParams, Challenge, AuthOptions, IdentityProof } from './auth.js';
|
|
3
5
|
export { Link } from './navigation/Link.js';
|
|
4
6
|
export type { LinkProps } from './navigation/Link.js';
|
|
5
7
|
export { NavLink, matchActive } from './navigation/NavLink.js';
|
|
@@ -8,7 +10,7 @@ export { navigate, back, forward, refresh, setViewTransitions, setTransitions, h
|
|
|
8
10
|
export type { NavigateOptions } from './navigation/navigation.js';
|
|
9
11
|
export { useParams, useNavigate, useLocation, usePathname, useSearchParams, useRouter, useNavigationPending, } from './routing/hooks.js';
|
|
10
12
|
export type { RouterInstance } from './routing/hooks.js';
|
|
11
|
-
export { useLoaderData, revalidate, invalidateLoaderData } from './routing/loader.js';
|
|
13
|
+
export { useLoaderData, revalidate, invalidateLoaderData, LoaderDataContext } from './routing/loader.js';
|
|
12
14
|
export type { LoaderArgs, LoaderFunction, LoaderData, Revalidate, StaticParams, GenerateStaticParams, } from './routing/loader.js';
|
|
13
15
|
export { useAction } from './routing/action.js';
|
|
14
16
|
export type { UseActionOptions, ActionState, ActionHandle, RevalidateTarget, } from './routing/action.js';
|
|
@@ -36,3 +38,5 @@ export { Slot } from './components/Slot.js';
|
|
|
36
38
|
export type { SlotProps } from './components/Slot.js';
|
|
37
39
|
export { Server } from './rpc.js';
|
|
38
40
|
export { parseError } from './errors.js';
|
|
41
|
+
export { Hole, RawHtml, Repeat, Island, __setSsrBuild, __isSsrBuild } from './ssr/markers.js';
|
|
42
|
+
export type { HoleProps, RawHtmlProps, RepeatProps, IslandProps } from './ssr/markers.js';
|
package/build/client/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
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, proveIdentity, buildLoginMessage, LOGIN_CONTEXT } from './auth.js';
|
|
3
4
|
export { Link } from './navigation/Link.js';
|
|
4
5
|
export { NavLink, matchActive } from './navigation/NavLink.js';
|
|
5
6
|
export { navigate, back, forward, refresh, setViewTransitions, setTransitions, href, } from './navigation/navigation.js';
|
|
6
7
|
export { useParams, useNavigate, useLocation, usePathname, useSearchParams, useRouter, useNavigationPending, } from './routing/hooks.js';
|
|
7
|
-
export { useLoaderData, revalidate, invalidateLoaderData } from './routing/loader.js';
|
|
8
|
+
export { useLoaderData, revalidate, invalidateLoaderData, LoaderDataContext } from './routing/loader.js';
|
|
8
9
|
export { useAction } from './routing/action.js';
|
|
9
10
|
export { prefetch } from './navigation/prefetch.js';
|
|
10
11
|
export { matchRoute } from './routing/match.js';
|
|
@@ -19,3 +20,4 @@ export { Form } from './components/Form.js';
|
|
|
19
20
|
export { Slot } from './components/Slot.js';
|
|
20
21
|
export { Server } from './rpc.js';
|
|
21
22
|
export { parseError } from './errors.js';
|
|
23
|
+
export { Hole, RawHtml, Repeat, Island, __setSsrBuild, __isSsrBuild } from './ssr/markers.js';
|
|
@@ -41,6 +41,7 @@ export declare function inspectLoaderCache(): LoaderCacheSnapshot[];
|
|
|
41
41
|
export declare function loaderKey(pathname: string, search: string): string;
|
|
42
42
|
export declare function prefetchRouteData(route: RouteDef, params: RouteParams, pathname: string, search: string): void;
|
|
43
43
|
export declare function readRouteData(route: RouteDef, params: RouteParams, key: string, epoch: number): RouteData;
|
|
44
|
+
export declare function hydrateLoaderData(route: RouteDef, params: RouteParams, pathname: string, search: string, data: unknown): void;
|
|
44
45
|
export declare function clearLoaderData(): void;
|
|
45
46
|
export declare function invalidateLoaderData(href?: string): void;
|
|
46
47
|
export declare function revalidate(href?: string): void;
|
|
@@ -120,6 +120,43 @@ export function readRouteData(route, params, key, epoch) {
|
|
|
120
120
|
}
|
|
121
121
|
return entry.value;
|
|
122
122
|
}
|
|
123
|
+
export function hydrateLoaderData(route, params, pathname, search, data) {
|
|
124
|
+
const key = loaderKey(pathname, search);
|
|
125
|
+
if (cache.has(key))
|
|
126
|
+
return;
|
|
127
|
+
const epoch = navigationEpoch();
|
|
128
|
+
const entry = {
|
|
129
|
+
status: 'pending',
|
|
130
|
+
promise: Promise.resolve(),
|
|
131
|
+
loadedAt: 0,
|
|
132
|
+
revalidate: 0,
|
|
133
|
+
epoch,
|
|
134
|
+
hasLoader: true,
|
|
135
|
+
prefetched: true,
|
|
136
|
+
};
|
|
137
|
+
entry.promise = route.load().then(async (mod) => {
|
|
138
|
+
const searchParams = new URLSearchParams(search);
|
|
139
|
+
let head;
|
|
140
|
+
if (mod.generateMetadata) {
|
|
141
|
+
head = resolveMetadata(await mod.generateMetadata({ params, searchParams, data }));
|
|
142
|
+
}
|
|
143
|
+
else if (mod.metadata) {
|
|
144
|
+
head = resolveMetadata(mod.metadata);
|
|
145
|
+
}
|
|
146
|
+
entry.value = { Component: mod.default, data, head };
|
|
147
|
+
entry.revalidate = mod.revalidate ?? 0;
|
|
148
|
+
entry.loadedAt = Date.now();
|
|
149
|
+
entry.status = 'done';
|
|
150
|
+
emitCache();
|
|
151
|
+
}, (error) => {
|
|
152
|
+
entry.error = error;
|
|
153
|
+
entry.loadedAt = Date.now();
|
|
154
|
+
entry.status = 'error';
|
|
155
|
+
emitCache();
|
|
156
|
+
});
|
|
157
|
+
cache.set(key, entry);
|
|
158
|
+
emitCache();
|
|
159
|
+
}
|
|
123
160
|
export function clearLoaderData() {
|
|
124
161
|
cache.clear();
|
|
125
162
|
emitCache();
|
|
@@ -1,10 +1,37 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { createRoot } from 'react-dom/client';
|
|
2
|
+
import { createRoot, hydrateRoot } from 'react-dom/client';
|
|
3
3
|
import { DevToolbar } from '../dev/devtools.js';
|
|
4
4
|
import { DevErrorBoundary, DevErrorOverlay, initDevErrorOverlay, } from '../dev/error-overlay.js';
|
|
5
5
|
import { initNavigation } from '../navigation/navigation.js';
|
|
6
6
|
import { startPrefetcher } from '../navigation/prefetch.js';
|
|
7
|
+
import { hydrateLoaderData } from './loader.js';
|
|
8
|
+
import { matchRoute } from './match.js';
|
|
7
9
|
import { Router } from './Router.js';
|
|
10
|
+
function isSsrDocument() {
|
|
11
|
+
return typeof document !== 'undefined' && document.getElementById('__toil_ssr') !== null;
|
|
12
|
+
}
|
|
13
|
+
function seedSsrHydration(routes) {
|
|
14
|
+
if (typeof document === 'undefined' || typeof window === 'undefined')
|
|
15
|
+
return;
|
|
16
|
+
const el = document.getElementById('__toil_state');
|
|
17
|
+
if (!el || !el.textContent)
|
|
18
|
+
return;
|
|
19
|
+
let state;
|
|
20
|
+
try {
|
|
21
|
+
state = JSON.parse(el.textContent);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const { pathname, search } = window.location;
|
|
27
|
+
for (const route of routes) {
|
|
28
|
+
const params = matchRoute(route.pattern, pathname);
|
|
29
|
+
if (params) {
|
|
30
|
+
hydrateLoaderData(route, params, pathname, search, state.data);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
8
35
|
export function mount(routes, layout = null, notFound = null, globalError = null, slots = {}) {
|
|
9
36
|
const el = document.getElementById('root');
|
|
10
37
|
if (!el)
|
|
@@ -15,6 +42,10 @@ export function mount(routes, layout = null, notFound = null, globalError = null
|
|
|
15
42
|
initDevErrorOverlay();
|
|
16
43
|
createRoot(el).render(_jsxs(_Fragment, { children: [_jsx(DevErrorBoundary, { children: app }), _jsx(DevErrorOverlay, {}), _jsx(DevToolbar, { routes: routes, slots: slots })] }));
|
|
17
44
|
}
|
|
45
|
+
else if (isSsrDocument()) {
|
|
46
|
+
seedSsrHydration(routes);
|
|
47
|
+
hydrateRoot(el, app);
|
|
48
|
+
}
|
|
18
49
|
else {
|
|
19
50
|
createRoot(el).render(app);
|
|
20
51
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export declare const SENTINEL_START: string;
|
|
3
|
+
export declare const SENTINEL_SEP: string;
|
|
4
|
+
export declare const SENTINEL_END: string;
|
|
5
|
+
export declare const enum HoleKindChar {
|
|
6
|
+
Text = "t",
|
|
7
|
+
Raw = "h",
|
|
8
|
+
Attr = "a",
|
|
9
|
+
RepeatOpen = "R",
|
|
10
|
+
RepeatClose = "r"
|
|
11
|
+
}
|
|
12
|
+
export declare function __setSsrBuild(on: boolean): void;
|
|
13
|
+
export declare function __isSsrBuild(): boolean;
|
|
14
|
+
export interface HoleProps {
|
|
15
|
+
id: string;
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
}
|
|
18
|
+
export declare function Hole(props: HoleProps): ReactNode;
|
|
19
|
+
export interface RawHtmlProps {
|
|
20
|
+
id: string;
|
|
21
|
+
html: string;
|
|
22
|
+
as?: keyof React.JSX.IntrinsicElements;
|
|
23
|
+
}
|
|
24
|
+
export declare function RawHtml(props: RawHtmlProps): ReactNode;
|
|
25
|
+
export interface RepeatProps<T> {
|
|
26
|
+
id: string;
|
|
27
|
+
each: readonly T[];
|
|
28
|
+
children: (item: T, index: number) => ReactNode;
|
|
29
|
+
}
|
|
30
|
+
export declare function Repeat<T>(props: RepeatProps<T>): ReactNode;
|
|
31
|
+
export interface IslandProps {
|
|
32
|
+
children?: ReactNode;
|
|
33
|
+
}
|
|
34
|
+
export declare function Island(props: IslandProps): ReactNode;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createElement, Fragment } from 'react';
|
|
2
|
+
export const SENTINEL_START = String.fromCharCode(0xe000);
|
|
3
|
+
export const SENTINEL_SEP = String.fromCharCode(0xe001);
|
|
4
|
+
export const SENTINEL_END = String.fromCharCode(0xe002);
|
|
5
|
+
export var HoleKindChar;
|
|
6
|
+
(function (HoleKindChar) {
|
|
7
|
+
HoleKindChar["Text"] = "t";
|
|
8
|
+
HoleKindChar["Raw"] = "h";
|
|
9
|
+
HoleKindChar["Attr"] = "a";
|
|
10
|
+
HoleKindChar["RepeatOpen"] = "R";
|
|
11
|
+
HoleKindChar["RepeatClose"] = "r";
|
|
12
|
+
})(HoleKindChar || (HoleKindChar = {}));
|
|
13
|
+
let ssrBuild = false;
|
|
14
|
+
export function __setSsrBuild(on) {
|
|
15
|
+
ssrBuild = on;
|
|
16
|
+
}
|
|
17
|
+
export function __isSsrBuild() {
|
|
18
|
+
return ssrBuild;
|
|
19
|
+
}
|
|
20
|
+
function token(kind, id) {
|
|
21
|
+
return SENTINEL_START + kind + id + SENTINEL_END;
|
|
22
|
+
}
|
|
23
|
+
function textNode(s) {
|
|
24
|
+
return createElement(Fragment, null, s);
|
|
25
|
+
}
|
|
26
|
+
export function Hole(props) {
|
|
27
|
+
if (ssrBuild)
|
|
28
|
+
return textNode(token("t", props.id));
|
|
29
|
+
return createElement(Fragment, null, props.children);
|
|
30
|
+
}
|
|
31
|
+
export function RawHtml(props) {
|
|
32
|
+
const tag = props.as ?? 'div';
|
|
33
|
+
if (ssrBuild) {
|
|
34
|
+
return createElement(tag, null, token("h", props.id));
|
|
35
|
+
}
|
|
36
|
+
return createElement(tag, { dangerouslySetInnerHTML: { __html: props.html } });
|
|
37
|
+
}
|
|
38
|
+
export function Repeat(props) {
|
|
39
|
+
if (ssrBuild) {
|
|
40
|
+
const sample = props.each.length > 0 ? props.each[0] : undefined;
|
|
41
|
+
return createElement(Fragment, null, token("R", props.id), sample !== undefined ? props.children(sample, 0) : null, token("r", props.id));
|
|
42
|
+
}
|
|
43
|
+
return createElement(Fragment, null, props.each.map((item, i) => props.children(item, i)));
|
|
44
|
+
}
|
|
45
|
+
export function Island(props) {
|
|
46
|
+
if (ssrBuild)
|
|
47
|
+
return null;
|
|
48
|
+
return createElement(Fragment, null, props.children);
|
|
49
|
+
}
|