toiljs 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/prettier.xml +1 -0
- package/as-pect.config.js +1 -1
- package/build/backend/.tsbuildinfo +1 -1
- package/build/backend/index.js +1 -2
- package/build/cli/.tsbuildinfo +1 -1
- package/build/cli/configure.d.ts +15 -0
- package/build/cli/configure.js +201 -0
- package/build/cli/create.d.ts +4 -0
- package/build/cli/create.js +193 -68
- package/build/cli/features.d.ts +23 -0
- package/build/cli/features.js +85 -0
- package/build/cli/index.js +42 -2
- package/build/cli/proc.d.ts +1 -0
- package/build/cli/proc.js +11 -0
- package/build/cli/ui.js +1 -2
- package/build/cli/validate.d.ts +4 -0
- package/build/cli/validate.js +19 -0
- package/build/client/.tsbuildinfo +1 -1
- package/build/client/Link.d.ts +8 -0
- package/build/client/Link.js +44 -0
- package/build/client/NavLink.d.ts +14 -0
- package/build/client/NavLink.js +37 -0
- package/build/client/Router.d.ts +7 -0
- package/build/client/Router.js +55 -0
- package/build/client/channel/channel.d.ts +23 -0
- package/build/client/channel/channel.js +94 -0
- package/build/client/error-boundary.d.ts +16 -0
- package/build/client/error-boundary.js +19 -0
- package/build/client/head/head.d.ts +26 -0
- package/build/client/head/head.js +87 -0
- package/build/client/head.d.ts +26 -0
- package/build/client/head.js +87 -0
- package/build/client/hooks.d.ts +17 -0
- package/build/client/hooks.js +48 -0
- package/build/client/index.d.ts +18 -6
- package/build/client/index.js +10 -3
- package/build/client/lazy.d.ts +16 -0
- package/build/client/lazy.js +53 -0
- package/build/client/match.js +7 -0
- package/build/client/mount.d.ts +2 -0
- package/build/client/mount.js +13 -0
- package/build/client/navigation/Link.d.ts +8 -0
- package/build/client/navigation/Link.js +44 -0
- package/build/client/navigation/NavLink.d.ts +14 -0
- package/build/client/navigation/NavLink.js +37 -0
- package/build/client/navigation/navigation.d.ts +13 -0
- package/build/client/navigation/navigation.js +97 -0
- package/build/client/navigation/prefetch.d.ts +11 -0
- package/build/client/navigation/prefetch.js +100 -0
- package/build/client/navigation/scroll.d.ts +8 -0
- package/build/client/navigation/scroll.js +36 -0
- package/build/client/navigation.d.ts +13 -0
- package/build/client/navigation.js +97 -0
- package/build/client/params-context.d.ts +2 -0
- package/build/client/params-context.js +2 -0
- package/build/client/prefetch.d.ts +11 -0
- package/build/client/prefetch.js +100 -0
- package/build/client/routing/Router.d.ts +7 -0
- package/build/client/routing/Router.js +55 -0
- package/build/client/routing/error-boundary.d.ts +16 -0
- package/build/client/routing/error-boundary.js +19 -0
- package/build/client/routing/hooks.d.ts +17 -0
- package/build/client/routing/hooks.js +48 -0
- package/build/client/routing/lazy.d.ts +16 -0
- package/build/client/routing/lazy.js +53 -0
- package/build/client/routing/match.d.ts +2 -0
- package/build/client/routing/match.js +32 -0
- package/build/client/routing/mount.d.ts +2 -0
- package/build/client/routing/mount.js +13 -0
- package/build/client/routing/params-context.d.ts +2 -0
- package/build/client/routing/params-context.js +2 -0
- package/build/client/scroll.d.ts +8 -0
- package/build/client/scroll.js +36 -0
- package/build/client/types.d.ts +27 -0
- package/build/client/types.js +1 -0
- package/build/compiler/.tsbuildinfo +1 -1
- package/build/compiler/config.d.ts +2 -0
- package/build/compiler/config.js +14 -2
- package/build/compiler/docs.d.ts +10 -0
- package/build/compiler/docs.js +59 -0
- package/build/compiler/generate.js +144 -16
- package/build/compiler/index.d.ts +4 -2
- package/build/compiler/index.js +4 -3
- package/build/compiler/plugin.js +16 -1
- package/build/compiler/routes.js +5 -1
- package/build/compiler/vite.d.ts +1 -1
- package/build/compiler/vite.js +17 -1
- package/build/io/.tsbuildinfo +1 -1
- package/build/io/BinaryWriter.js +2 -2
- package/eslint.config.js +1 -1
- package/examples/basic/.toil/docs/cli.md +3 -0
- package/examples/basic/.toil/docs/client.md +3 -0
- package/examples/basic/.toil/docs/index.md +3 -0
- package/examples/basic/.toil/docs/routing.md +3 -0
- package/examples/basic/.toil/docs/server.md +3 -0
- package/examples/basic/.toil/docs/styling.md +3 -0
- package/examples/basic/.toil/entry.tsx +3 -8
- package/examples/basic/.toil/globals.ts +6 -0
- package/examples/basic/.toil/index.html +16 -12
- package/examples/basic/.toil/public/images/.gitkeep +1 -0
- package/examples/basic/.toil/public/images/logo.svg +37 -0
- package/examples/basic/.toil/public/robots.txt +2 -0
- package/examples/basic/.toil/routes.ts +9 -7
- package/examples/basic/build/client/assets/404-Bq0jNTUo.js +1 -0
- package/examples/basic/build/client/assets/_...slug_-CXKf6qnB.js +1 -0
- package/examples/basic/build/client/assets/_id_-BadAyQnb.js +1 -0
- package/examples/basic/build/client/assets/about-BOhoEcEO.js +1 -0
- package/examples/basic/build/client/assets/get-started-BIXpcjkT.js +9 -0
- package/examples/basic/build/client/assets/index-BmqcTaBB.js +1 -0
- package/examples/basic/build/client/assets/io-DEVjjaJj.js +1 -0
- package/examples/basic/build/client/assets/layout-DJegirdz.js +1 -0
- package/examples/basic/build/client/assets/react-DEQrz1q7.js +9 -0
- package/examples/basic/build/client/assets/rolldown-runtime-KL5VtC6j.js +1 -0
- package/examples/basic/build/client/assets/routes-BYWn6TxK.js +1 -0
- package/examples/basic/build/client/css/style.css +2 -0
- package/examples/basic/build/client/images/.gitkeep +1 -0
- package/examples/basic/build/client/images/logo.svg +37 -0
- package/examples/basic/build/client/index.html +17 -0
- package/examples/basic/build/client/robots.txt +2 -0
- package/examples/basic/client/404.tsx +2 -5
- package/examples/basic/client/components/.gitkeep +1 -0
- package/examples/basic/client/components/Footer.tsx +8 -0
- package/examples/basic/client/components/HoneycombBackground.tsx +162 -0
- package/examples/basic/client/layout.tsx +43 -26
- package/examples/basic/client/public/favicon.ico +0 -0
- package/examples/basic/client/public/images/.gitkeep +1 -0
- package/examples/basic/client/public/images/logo.svg +37 -0
- package/examples/basic/client/public/index.html +16 -0
- package/examples/basic/client/public/robots.txt +2 -0
- package/examples/basic/client/routes/about.tsx +1 -3
- package/examples/basic/client/routes/blog/[id].tsx +2 -4
- package/examples/basic/client/routes/docs/[...slug].tsx +3 -6
- package/examples/basic/client/routes/get-started.tsx +84 -0
- package/examples/basic/client/routes/index.tsx +74 -7
- package/examples/basic/client/routes/io.tsx +3 -7
- package/examples/basic/client/styles/main.css +461 -0
- package/examples/basic/client/toil.tsx +7 -0
- package/examples/basic/node_modules/.bin/toilinit +16 -0
- package/examples/basic/node_modules/.bin/toilinit.cmd +17 -0
- package/examples/basic/node_modules/.bin/toilinit.ps1 +28 -0
- package/examples/basic/node_modules/.bin/toilscript +16 -0
- package/examples/basic/node_modules/.bin/toilscript.cmd +17 -0
- package/examples/basic/node_modules/.bin/toilscript.ps1 +28 -0
- package/examples/basic/node_modules/.bin/wasm-as +16 -0
- package/examples/basic/node_modules/.bin/wasm-as.cmd +17 -0
- package/examples/basic/node_modules/.bin/wasm-as.ps1 +28 -0
- package/examples/basic/node_modules/.bin/wasm-ctor-eval +16 -0
- package/examples/basic/node_modules/.bin/wasm-ctor-eval.cmd +17 -0
- package/examples/basic/node_modules/.bin/wasm-ctor-eval.ps1 +28 -0
- package/examples/basic/node_modules/.bin/wasm-dis +16 -0
- package/examples/basic/node_modules/.bin/wasm-dis.cmd +17 -0
- package/examples/basic/node_modules/.bin/wasm-dis.ps1 +28 -0
- package/examples/basic/node_modules/.bin/wasm-merge +16 -0
- package/examples/basic/node_modules/.bin/wasm-merge.cmd +17 -0
- package/examples/basic/node_modules/.bin/wasm-merge.ps1 +28 -0
- package/examples/basic/node_modules/.bin/wasm-metadce +16 -0
- package/examples/basic/node_modules/.bin/wasm-metadce.cmd +17 -0
- package/examples/basic/node_modules/.bin/wasm-metadce.ps1 +28 -0
- package/examples/basic/node_modules/.bin/wasm-opt +16 -0
- package/examples/basic/node_modules/.bin/wasm-opt.cmd +17 -0
- package/examples/basic/node_modules/.bin/wasm-opt.ps1 +28 -0
- package/examples/basic/node_modules/.bin/wasm-reduce +16 -0
- package/examples/basic/node_modules/.bin/wasm-reduce.cmd +17 -0
- package/examples/basic/node_modules/.bin/wasm-reduce.ps1 +28 -0
- package/examples/basic/node_modules/.bin/wasm-shell +16 -0
- package/examples/basic/node_modules/.bin/wasm-shell.cmd +17 -0
- package/examples/basic/node_modules/.bin/wasm-shell.ps1 +28 -0
- package/examples/basic/node_modules/.bin/wasm2js +16 -0
- package/examples/basic/node_modules/.bin/wasm2js.cmd +17 -0
- package/examples/basic/node_modules/.bin/wasm2js.ps1 +28 -0
- package/examples/basic/node_modules/.package-lock.json +49 -1
- package/examples/basic/node_modules/.vite/deps/_metadata.json +9 -9
- package/examples/basic/node_modules/binaryen/LICENSE +201 -0
- package/examples/basic/node_modules/binaryen/README.md +1362 -0
- package/examples/basic/node_modules/binaryen/bin/package.json +3 -0
- package/examples/basic/node_modules/binaryen/bin/wasm-as +0 -0
- package/examples/basic/node_modules/binaryen/bin/wasm-ctor-eval +0 -0
- package/examples/basic/node_modules/binaryen/bin/wasm-dis +0 -0
- package/examples/basic/node_modules/binaryen/bin/wasm-merge +0 -0
- package/examples/basic/node_modules/binaryen/bin/wasm-metadce +0 -0
- package/examples/basic/node_modules/binaryen/bin/wasm-opt +0 -0
- package/examples/basic/node_modules/binaryen/bin/wasm-reduce +0 -0
- package/examples/basic/node_modules/binaryen/bin/wasm-shell +0 -0
- package/examples/basic/node_modules/binaryen/bin/wasm2js +0 -0
- package/examples/basic/node_modules/binaryen/index.d.ts +2371 -0
- package/examples/basic/node_modules/binaryen/index.js +30552 -0
- package/examples/basic/node_modules/binaryen/package.json +50 -0
- package/examples/basic/node_modules/long/LICENSE +202 -0
- package/examples/basic/node_modules/long/README.md +286 -0
- package/examples/basic/node_modules/long/index.d.ts +2 -0
- package/examples/basic/node_modules/long/index.js +1581 -0
- package/examples/basic/node_modules/long/package.json +58 -0
- package/examples/basic/node_modules/long/types.d.ts +474 -0
- package/examples/basic/node_modules/long/umd/index.d.ts +3 -0
- package/examples/basic/node_modules/long/umd/index.js +1622 -0
- package/examples/basic/node_modules/long/umd/package.json +3 -0
- package/examples/basic/node_modules/long/umd/types.d.ts +474 -0
- package/examples/basic/node_modules/toilscript/LICENSE +201 -0
- package/examples/basic/node_modules/toilscript/NOTICE +94 -0
- package/examples/basic/node_modules/toilscript/README.md +66 -0
- package/examples/basic/node_modules/toilscript/bin/toilinit.js +468 -0
- package/examples/basic/node_modules/toilscript/bin/toilscript.js +35 -0
- package/examples/basic/node_modules/toilscript/dist/cli.d.ts +4 -0
- package/examples/basic/node_modules/toilscript/dist/cli.generated.d.ts +10027 -0
- package/examples/basic/node_modules/toilscript/dist/cli.js +24474 -0
- package/examples/basic/node_modules/toilscript/dist/cli.js.map +7 -0
- package/examples/basic/node_modules/toilscript/dist/importmap.json +9 -0
- package/examples/basic/node_modules/toilscript/dist/toilscript.d.ts +4 -0
- package/examples/basic/node_modules/toilscript/dist/toilscript.generated.d.ts +11242 -0
- package/examples/basic/node_modules/toilscript/dist/toilscript.js +337 -0
- package/examples/basic/node_modules/toilscript/dist/toilscript.js.map +7 -0
- package/examples/basic/node_modules/toilscript/dist/transform.cjs +1 -0
- package/examples/basic/node_modules/toilscript/dist/transform.d.ts +1 -0
- package/examples/basic/node_modules/toilscript/dist/transform.js +1 -0
- package/examples/basic/node_modules/toilscript/dist/web.js +22 -0
- package/examples/basic/node_modules/toilscript/lib/binaryen.d.ts +2 -0
- package/examples/basic/node_modules/toilscript/lib/binaryen.js +2 -0
- package/examples/basic/node_modules/toilscript/package.json +115 -0
- package/examples/basic/node_modules/toilscript/std/README.md +6 -0
- package/examples/basic/node_modules/toilscript/std/assembly/array.ts +550 -0
- package/examples/basic/node_modules/toilscript/std/assembly/arraybuffer.ts +77 -0
- package/examples/basic/node_modules/toilscript/std/assembly/atomics.ts +127 -0
- package/examples/basic/node_modules/toilscript/std/assembly/bindings/asyncify.ts +16 -0
- package/examples/basic/node_modules/toilscript/std/assembly/bindings/dom.ts +291 -0
- package/examples/basic/node_modules/toilscript/std/assembly/bindings/node.ts +6 -0
- package/examples/basic/node_modules/toilscript/std/assembly/bitflags.ts +53 -0
- package/examples/basic/node_modules/toilscript/std/assembly/builtins.ts +2650 -0
- package/examples/basic/node_modules/toilscript/std/assembly/byteslice.ts +177 -0
- package/examples/basic/node_modules/toilscript/std/assembly/compat.ts +2 -0
- package/examples/basic/node_modules/toilscript/std/assembly/console.ts +42 -0
- package/examples/basic/node_modules/toilscript/std/assembly/crypto.ts +9 -0
- package/examples/basic/node_modules/toilscript/std/assembly/dataview.ts +181 -0
- package/examples/basic/node_modules/toilscript/std/assembly/date.ts +375 -0
- package/examples/basic/node_modules/toilscript/std/assembly/diagnostics.ts +11 -0
- package/examples/basic/node_modules/toilscript/std/assembly/encoding.ts +151 -0
- package/examples/basic/node_modules/toilscript/std/assembly/endian.ts +45 -0
- package/examples/basic/node_modules/toilscript/std/assembly/error.ts +44 -0
- package/examples/basic/node_modules/toilscript/std/assembly/fixedarray.ts +173 -0
- package/examples/basic/node_modules/toilscript/std/assembly/fixedmap.ts +326 -0
- package/examples/basic/node_modules/toilscript/std/assembly/fixedset.ts +275 -0
- package/examples/basic/node_modules/toilscript/std/assembly/function.ts +42 -0
- package/examples/basic/node_modules/toilscript/std/assembly/index.d.ts +2892 -0
- package/examples/basic/node_modules/toilscript/std/assembly/iterator.ts +35 -0
- package/examples/basic/node_modules/toilscript/std/assembly/map.ts +269 -0
- package/examples/basic/node_modules/toilscript/std/assembly/math.ts +3289 -0
- package/examples/basic/node_modules/toilscript/std/assembly/memory.ts +123 -0
- package/examples/basic/node_modules/toilscript/std/assembly/number.ts +388 -0
- package/examples/basic/node_modules/toilscript/std/assembly/object.ts +36 -0
- package/examples/basic/node_modules/toilscript/std/assembly/performance.ts +9 -0
- package/examples/basic/node_modules/toilscript/std/assembly/pointer.ts +80 -0
- package/examples/basic/node_modules/toilscript/std/assembly/polyfills.ts +27 -0
- package/examples/basic/node_modules/toilscript/std/assembly/process.ts +50 -0
- package/examples/basic/node_modules/toilscript/std/assembly/reference.ts +48 -0
- package/examples/basic/node_modules/toilscript/std/assembly/regexp.ts +12 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/README.md +83 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/common.ts +81 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/index-incremental.ts +2 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/index-memory.ts +1 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/index-minimal.ts +2 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/index-stub.ts +1 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/index.d.ts +37 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/itcms.ts +419 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/memory-runtime.ts +94 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/rtrace.ts +15 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/stub.ts +133 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/tcms.ts +254 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt/tlsf.ts +592 -0
- package/examples/basic/node_modules/toilscript/std/assembly/rt.ts +90 -0
- package/examples/basic/node_modules/toilscript/std/assembly/set.ts +225 -0
- package/examples/basic/node_modules/toilscript/std/assembly/shared/feature.ts +68 -0
- package/examples/basic/node_modules/toilscript/std/assembly/shared/runtime.ts +13 -0
- package/examples/basic/node_modules/toilscript/std/assembly/shared/target.ts +11 -0
- package/examples/basic/node_modules/toilscript/std/assembly/shared/tsconfig.json +11 -0
- package/examples/basic/node_modules/toilscript/std/assembly/shared/typeinfo.ts +72 -0
- package/examples/basic/node_modules/toilscript/std/assembly/staticarray.ts +423 -0
- package/examples/basic/node_modules/toilscript/std/assembly/string.ts +850 -0
- package/examples/basic/node_modules/toilscript/std/assembly/symbol.ts +114 -0
- package/examples/basic/node_modules/toilscript/std/assembly/table.ts +16 -0
- package/examples/basic/node_modules/toilscript/std/assembly/toilscript.ts +16 -0
- package/examples/basic/node_modules/toilscript/std/assembly/tsconfig.json +6 -0
- package/examples/basic/node_modules/toilscript/std/assembly/typedarray.ts +1954 -0
- package/examples/basic/node_modules/toilscript/std/assembly/uri.ts +17 -0
- package/examples/basic/node_modules/toilscript/std/assembly/util/bytes.ts +107 -0
- package/examples/basic/node_modules/toilscript/std/assembly/util/casemap.ts +497 -0
- package/examples/basic/node_modules/toilscript/std/assembly/util/error.ts +58 -0
- package/examples/basic/node_modules/toilscript/std/assembly/util/hash.ts +117 -0
- package/examples/basic/node_modules/toilscript/std/assembly/util/math.ts +1922 -0
- package/examples/basic/node_modules/toilscript/std/assembly/util/memory.ts +290 -0
- package/examples/basic/node_modules/toilscript/std/assembly/util/number.ts +873 -0
- package/examples/basic/node_modules/toilscript/std/assembly/util/sort.ts +313 -0
- package/examples/basic/node_modules/toilscript/std/assembly/util/string.ts +1202 -0
- package/examples/basic/node_modules/toilscript/std/assembly/util/uri.ts +275 -0
- package/examples/basic/node_modules/toilscript/std/assembly/vector.ts +4 -0
- package/examples/basic/node_modules/toilscript/std/assembly.json +16 -0
- package/examples/basic/node_modules/toilscript/std/portable/index.d.ts +461 -0
- package/examples/basic/node_modules/toilscript/std/portable/index.js +416 -0
- package/examples/basic/node_modules/toilscript/std/portable.json +11 -0
- package/examples/basic/node_modules/toilscript/std/types/assembly/index.d.ts +1 -0
- package/examples/basic/node_modules/toilscript/std/types/assembly/package.json +3 -0
- package/examples/basic/node_modules/toilscript/std/types/portable/index.d.ts +1 -0
- package/examples/basic/node_modules/toilscript/std/types/portable/package.json +3 -0
- package/examples/basic/node_modules/toilscript/tsconfig-base.json +13 -0
- package/examples/basic/node_modules/toilscript/util/README.md +23 -0
- package/examples/basic/node_modules/toilscript/util/browser/fs.js +1 -0
- package/examples/basic/node_modules/toilscript/util/browser/module.js +5 -0
- package/examples/basic/node_modules/toilscript/util/browser/path.js +520 -0
- package/examples/basic/node_modules/toilscript/util/browser/process.js +59 -0
- package/examples/basic/node_modules/toilscript/util/browser/url.js +23 -0
- package/examples/basic/node_modules/toilscript/util/cpu.d.ts +9 -0
- package/examples/basic/node_modules/toilscript/util/cpu.js +42 -0
- package/examples/basic/node_modules/toilscript/util/find.d.ts +6 -0
- package/examples/basic/node_modules/toilscript/util/find.js +20 -0
- package/examples/basic/node_modules/toilscript/util/node.d.ts +21 -0
- package/examples/basic/node_modules/toilscript/util/node.js +34 -0
- package/examples/basic/node_modules/toilscript/util/options.d.ts +70 -0
- package/examples/basic/node_modules/toilscript/util/options.js +262 -0
- package/examples/basic/node_modules/toilscript/util/terminal.d.ts +52 -0
- package/examples/basic/node_modules/toilscript/util/terminal.js +35 -0
- package/examples/basic/node_modules/toilscript/util/text.d.ts +26 -0
- package/examples/basic/node_modules/toilscript/util/text.js +114 -0
- package/examples/basic/node_modules/toilscript/util/tsconfig.json +9 -0
- package/examples/basic/node_modules/toilscript/util/web.d.ts +11 -0
- package/examples/basic/node_modules/toilscript/util/web.js +33 -0
- package/examples/basic/package-lock.json +50 -1
- package/examples/basic/package.json +5 -2
- package/examples/basic/server/index.ts +3 -0
- package/examples/basic/server/main.ts +6 -0
- package/examples/basic/server/tsconfig.json +7 -0
- package/examples/basic/toil-env.d.ts +20 -1
- package/examples/basic/toil.config.ts +2 -5
- package/examples/basic/toilconfig.json +30 -0
- package/package.json +2 -2
- package/presets/eslint.js +2 -7
- package/presets/no-uint8array-tostring.js +4 -5
- package/presets/prettier.json +8 -1
- package/src/backend/index.ts +11 -18
- package/src/cli/configure.ts +272 -0
- package/src/cli/create.ts +267 -82
- package/src/cli/features.ts +128 -0
- package/src/cli/index.ts +44 -3
- package/src/cli/proc.ts +20 -0
- package/src/cli/ui.ts +4 -6
- package/src/cli/validate.ts +31 -0
- package/src/client/head/head.ts +140 -0
- package/src/client/index.ts +39 -9
- package/src/client/navigation/Link.tsx +99 -0
- package/src/client/navigation/NavLink.tsx +86 -0
- package/src/client/navigation/navigation.ts +142 -0
- package/src/client/navigation/prefetch.ts +130 -0
- package/src/client/navigation/scroll.ts +53 -0
- package/src/client/routing/Router.tsx +95 -0
- package/src/client/routing/error-boundary.tsx +43 -0
- package/src/client/routing/hooks.ts +115 -0
- package/src/client/routing/lazy.ts +93 -0
- package/src/client/{match.ts → routing/match.ts} +11 -3
- package/src/client/routing/mount.tsx +28 -0
- package/src/client/routing/params-context.ts +10 -0
- package/src/client/types.ts +36 -0
- package/src/compiler/config.ts +26 -10
- package/src/compiler/docs.ts +87 -0
- package/src/compiler/generate.ts +180 -23
- package/src/compiler/index.ts +6 -4
- package/src/compiler/plugin.ts +22 -1
- package/src/compiler/routes.ts +13 -7
- package/src/compiler/vite.ts +28 -5
- package/src/io/BinaryReader.ts +1 -5
- package/src/io/BinaryWriter.ts +3 -3
- package/src/server/index.ts +3 -4
- package/src/server/tsconfig.json +4 -0
- package/templates/app/client/404.tsx +11 -0
- package/templates/app/client/components/.gitkeep +1 -0
- package/templates/app/client/components/Footer.tsx +8 -0
- package/templates/app/client/components/HoneycombBackground.tsx +162 -0
- package/templates/app/client/layout.tsx +53 -0
- package/templates/app/client/public/favicon.ico +0 -0
- package/templates/app/client/public/images/.gitkeep +1 -0
- package/templates/app/client/public/images/logo.svg +37 -0
- package/templates/app/client/public/index.html +16 -0
- package/templates/app/client/public/robots.txt +2 -0
- package/templates/app/client/routes/about.tsx +11 -0
- package/templates/app/client/routes/blog/[id].tsx +12 -0
- package/templates/app/client/routes/docs/[...slug].tsx +12 -0
- package/templates/app/client/routes/get-started.tsx +84 -0
- package/templates/app/client/routes/index.tsx +80 -0
- package/templates/app/client/routes/io.tsx +24 -0
- package/templates/app/client/styles/main.css +461 -0
- package/templates/app/client/toil.tsx +7 -0
- package/test/channel.test.ts +1 -1
- package/test/configure.test.ts +90 -0
- package/test/features.test.ts +111 -0
- package/test/head.test.ts +35 -0
- package/test/io.test.ts +8 -0
- package/test/navlink.test.ts +28 -0
- package/test/routes.test.ts +16 -1
- package/test/validate.test.ts +42 -0
- package/vitest.config.ts +1 -1
- package/examples/basic/dist/assets/404-D1bS2aH_.js +0 -1
- package/examples/basic/dist/assets/_...slug_-wR3shlWn.js +0 -1
- package/examples/basic/dist/assets/_id_-EWYvHfi2.js +0 -1
- package/examples/basic/dist/assets/about-Ddvj1tjF.js +0 -1
- package/examples/basic/dist/assets/index-CdG0me90.js +0 -1
- package/examples/basic/dist/assets/io-CODNJU57.js +0 -1
- package/examples/basic/dist/assets/layout-C15ZTPYI.js +0 -1
- package/examples/basic/dist/assets/react-JbAfoxYe.js +0 -9
- package/examples/basic/dist/assets/rolldown-runtime-1VNLd2iN.js +0 -1
- package/examples/basic/dist/assets/routes-GoydenoY.js +0 -1
- package/examples/basic/dist/index.html +0 -12
- package/src/client/runtime.tsx +0 -190
- /package/src/client/{channel.ts → channel/channel.ts} +0 -0
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
1
2
|
// AUTO-GENERATED by toil — do not edit.
|
|
2
3
|
import type { RouteDef, LayoutLoader, NotFoundLoader } from 'toiljs/client';
|
|
3
4
|
|
|
4
5
|
export const routes: RouteDef[] = [
|
|
5
|
-
{ pattern: "/blog/:id", load: () => import("../client/routes/blog/[id]
|
|
6
|
-
{ pattern: "/docs/*slug", load: () => import("../client/routes/docs/[...slug]
|
|
7
|
-
{ pattern: "/about", load: () => import("../client/routes/about
|
|
8
|
-
{ pattern: "/
|
|
9
|
-
{ pattern: "/", load: () => import("../client/routes/
|
|
6
|
+
{ pattern: "/blog/:id", load: () => import("../client/routes/blog/[id]"), layouts: [] },
|
|
7
|
+
{ pattern: "/docs/*slug", load: () => import("../client/routes/docs/[...slug]"), layouts: [] },
|
|
8
|
+
{ pattern: "/about", load: () => import("../client/routes/about"), layouts: [] },
|
|
9
|
+
{ pattern: "/get-started", load: () => import("../client/routes/get-started"), layouts: [] },
|
|
10
|
+
{ pattern: "/io", load: () => import("../client/routes/io"), layouts: [] },
|
|
11
|
+
{ pattern: "/", load: () => import("../client/routes/index"), layouts: [] },
|
|
10
12
|
];
|
|
11
13
|
|
|
12
|
-
export const layout: LayoutLoader = () => import("../client/layout
|
|
13
|
-
export const notFound: NotFoundLoader = () => import("../client/404
|
|
14
|
+
export const layout: LayoutLoader = () => import("../client/layout");
|
|
15
|
+
export const notFound: NotFoundLoader = () => import("../client/404");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./react-DEQrz1q7.js";var t=e();function n(){return(0,t.jsxs)(`main`,{children:[(0,t.jsx)(`h1`,{children:`404 — Page not found`}),(0,t.jsxs)(`p`,{children:[`This custom page is served from `,(0,t.jsx)(`code`,{children:`client/404.tsx`}),` whenever no route matches.`]}),(0,t.jsx)(Toil.Link,{href:`/`,children:`Back home`})]})}export{n as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./react-DEQrz1q7.js";var t=e();function n(){let{slug:e}=Toil.useParams();return(0,t.jsxs)(`main`,{children:[(0,t.jsx)(`h1`,{children:`Docs`}),(0,t.jsxs)(`p`,{children:[`Catch-all route `,(0,t.jsx)(`code`,{children:`client/routes/docs/[...slug].tsx`}),` matched: `,(0,t.jsx)(`code`,{children:e})]}),(0,t.jsx)(Toil.Link,{href:`/`,children:`Back home`})]})}export{n as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./react-DEQrz1q7.js";var t=e();function n(){let{id:e}=Toil.useParams();return(0,t.jsxs)(`main`,{children:[(0,t.jsxs)(`h1`,{children:[`Blog post `,e]}),(0,t.jsxs)(`p`,{children:[`Dynamic route from `,(0,t.jsx)(`code`,{children:`client/routes/blog/[id].tsx`}),`.`]}),(0,t.jsx)(Toil.Link,{href:`/`,children:`Back home`})]})}export{n as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./react-DEQrz1q7.js";var t=e();function n(){return(0,t.jsxs)(`main`,{children:[(0,t.jsx)(`h1`,{children:`About`}),(0,t.jsxs)(`p`,{children:[`This page is served by `,(0,t.jsx)(`code`,{children:`client/routes/about.tsx`}),`.`]}),(0,t.jsx)(Toil.Link,{href:`/`,children:`Back home`})]})}export{n as default};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{r as e}from"./react-DEQrz1q7.js";var t=e();function n(){return(0,t.jsxs)(`div`,{className:`gs-page`,children:[(0,t.jsxs)(`div`,{className:`gs-hero`,children:[(0,t.jsx)(`h1`,{className:`gs-title`,children:`Get Started`}),(0,t.jsx)(`p`,{className:`gs-desc`,children:`Everything you need to build your first ToilJS app.`})]}),(0,t.jsxs)(`section`,{className:`gs-section`,children:[(0,t.jsx)(`h2`,{className:`gs-section-title`,children:`Project Structure`}),(0,t.jsxs)(`div`,{className:`gs-grid`,children:[(0,t.jsxs)(`div`,{className:`gs-card gs-card--accent1`,children:[(0,t.jsx)(`div`,{className:`gs-card-icon`,children:(0,t.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,t.jsx)(`path`,{d:`M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z`})})}),(0,t.jsx)(`h3`,{children:`File-based Routing`}),(0,t.jsxs)(`p`,{children:[`Every `,(0,t.jsx)(`code`,{children:`.tsx`}),` file in `,(0,t.jsx)(`code`,{children:`client/routes/`}),` becomes a route. No config required.`]}),(0,t.jsx)(`pre`,{children:(0,t.jsx)(`code`,{children:`index.tsx → /
|
|
2
|
+
about.tsx → /about
|
|
3
|
+
[id].tsx → /:id
|
|
4
|
+
[...slug].tsx → /*`})})]}),(0,t.jsxs)(`div`,{className:`gs-card gs-card--accent2`,children:[(0,t.jsx)(`div`,{className:`gs-card-icon`,children:(0,t.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,t.jsx)(`rect`,{x:`2`,y:`3`,width:`20`,height:`14`,rx:`2`}),(0,t.jsx)(`path`,{d:`M8 21h8M12 17v4`})]})}),(0,t.jsx)(`h3`,{children:`Public Folder`}),(0,t.jsxs)(`p`,{children:[`Files in `,(0,t.jsx)(`code`,{children:`public/`}),` are copied as-is to the build root. Reference them with an absolute path.`]}),(0,t.jsx)(`pre`,{children:(0,t.jsx)(`code`,{children:`public/images/logo.svg
|
|
5
|
+
→ /images/logo.svg`})})]}),(0,t.jsxs)(`div`,{className:`gs-card gs-card--accent3`,children:[(0,t.jsx)(`div`,{className:`gs-card-icon`,children:(0,t.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,t.jsx)(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),(0,t.jsx)(`path`,{d:`M3 9h18M9 21V9`})]})}),(0,t.jsx)(`h3`,{children:`Layout`}),(0,t.jsxs)(`p`,{children:[(0,t.jsx)(`code`,{children:`client/layout.tsx`}),` wraps every page. Use it for your nav, footer, providers, and global styles.`]})]}),(0,t.jsxs)(`div`,{className:`gs-card gs-card--accent4`,children:[(0,t.jsx)(`div`,{className:`gs-card-icon`,children:(0,t.jsx)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,t.jsx)(`polygon`,{points:`13 2 3 14 12 14 11 22 21 10 12 10 13 2`})})}),(0,t.jsx)(`h3`,{children:`Entry Point`}),(0,t.jsxs)(`p`,{children:[(0,t.jsx)(`code`,{children:`client/toil.tsx`}),` is the app entry. Import global CSS and call `,(0,t.jsx)(`code`,{children:`Toil.mount()`}),` — runs once on startup.`]})]})]})]}),(0,t.jsxs)(`section`,{className:`gs-section`,children:[(0,t.jsx)(`h2`,{className:`gs-section-title`,children:`Navigation`}),(0,t.jsxs)(`div`,{className:`gs-card gs-card--flat`,children:[(0,t.jsx)(`div`,{className:`gs-card-icon`,children:(0,t.jsxs)(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,t.jsx)(`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`}),(0,t.jsx)(`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`})]})}),(0,t.jsxs)(`h3`,{children:[`Use `,(0,t.jsx)(`code`,{children:`<Toil.Link>`}),` for client-side navigation`]}),(0,t.jsxs)(`p`,{children:[`Avoids full page reloads and keeps transitions instant. Use a regular `,(0,t.jsx)(`code`,{children:`<a>`}),` only for external links.`]}),(0,t.jsx)(`pre`,{children:(0,t.jsx)(`code`,{children:`// ✅ Internal navigation
|
|
6
|
+
<Toil.Link href="/about">About</Toil.Link>
|
|
7
|
+
|
|
8
|
+
// ✅ External link
|
|
9
|
+
<a href="https://toil.org" target="_blank">Docs</a>`})})]})]}),(0,t.jsxs)(`div`,{className:`gs-actions`,children:[(0,t.jsx)(Toil.Link,{href:`/`,className:`btn btn-secondary`,children:`← Back home`}),(0,t.jsx)(`a`,{href:`https://toil.org/docs`,target:`_blank`,rel:`noopener noreferrer`,className:`btn btn-primary`,children:`Read the Docs`})]})]})}export{n as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-KL5VtC6j.js";import{n as t,r as n,t as r}from"./react-DEQrz1q7.js";var i=n(),a=r(),o=new Map,s=null;function c(){typeof window<`u`&&`scrollRestoration`in window.history&&(window.history.scrollRestoration=`manual`)}function l(e){o.set(e,window.scrollY)}function u(e){s={restore:e.restoreKey===void 0?null:o.get(e.restoreKey)??0,hash:e.hash,toTop:e.toTop}}function d(){let e=s;if(s=null,e){if(e.hash){let t=document.getElementById(decodeURIComponent(e.hash.slice(1)));if(t){t.scrollIntoView();return}}if(e.restore!==null){window.scrollTo(0,e.restore);return}e.toTop&&window.scrollTo(0,0)}}var f=new Set,p=!1,m=0,h=`initial`;function g(){return m+=1,`t${String(m)}`}function _(){for(let e of f)e()}var v=0,y=0,b=new Set;function ee(){for(let e of b)e()}function te(){v+=1,ee()}function ne(){y!==v&&(y=v,ee())}function re(){return v!==y}function ie(e){return b.add(e),()=>{b.delete(e)}}function ae(){c();let e=window.history.state;e?.__toilKey?h=e.__toilKey:(h=g(),window.history.replaceState({...e,__toilKey:h},``))}function x(e,t){te(),l(h);let n=``;try{n=new URL(e,window.location.href).hash}catch{n=``}t?.replace?window.history.replaceState({__toilKey:h},``,e):(h=g(),window.history.pushState({__toilKey:h},``,e)),u({hash:n,toTop:t?.scroll!==!1}),_()}function S(){window.history.back()}function C(){window.history.forward()}function w(){_()}function oe(e){te(),l(h),h=e.state?.__toilKey??`initial`,u({restoreKey:h,hash:window.location.hash,toTop:!1}),_()}function se(e){return p||(window.addEventListener(`popstate`,oe),p=!0),f.add(e),()=>{f.delete(e)}}function T(e,t){let n=e.split(`/`).filter(Boolean),r=t.split(`/`).filter(Boolean),i={};for(let e=0;e<n.length;e++){let t=n[e];if(t.startsWith(`**`))return i[t.slice(2)]=r.slice(e).map(e=>decodeURIComponent(e)).join(`/`),i;if(t.startsWith(`*`)){let n=r.slice(e);return n.length===0?null:(i[t.slice(1)]=n.map(e=>decodeURIComponent(e)).join(`/`),i)}if(e>=r.length)return null;let a=r[e];if(t.startsWith(`:`))i[t.slice(1)]=decodeURIComponent(a);else if(t!==a)return null}return n.length===r.length?i:null}var E=[],D=new WeakSet,O=null,k=null;function A(e){let t;try{t=new URL(e,window.location.href)}catch{return null}if(t.origin!==window.location.origin)return null;for(let e of E)if(T(e.pattern,t.pathname))return e;return null}function ce(e){D.has(e)||(D.add(e),e.load().catch(()=>{D.delete(e)}))}function j(e){let t=A(e);t&&ce(t)}function le(e){return!(e.target&&e.target!==`_self`||e.hasAttribute(`download`)||e.dataset.noPrefetch!==void 0)}function M(e){!O||!le(e)||!A(e.href)||O.observe(e)}function N(e){e.querySelectorAll(`a[href]`).forEach(e=>{e instanceof HTMLAnchorElement&&M(e)})}function ue(){let e=navigator.connection;return e?e.saveData===!0||e.effectiveType===`slow-2g`||e.effectiveType===`2g`:!1}function de(e){if(E=e,typeof window>`u`||typeof IntersectionObserver>`u`||typeof MutationObserver>`u`||O||ue())return;O=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=t.target;e instanceof HTMLAnchorElement&&(O?.unobserve(e),j(e.href))}},{rootMargin:`200px`}),k=new MutationObserver(e=>{for(let t of e)for(let e of t.addedNodes)e instanceof HTMLAnchorElement?M(e):e instanceof Element&&N(e)});let t=()=>{N(document),k?.observe(document.body,{childList:!0,subtree:!0})};typeof requestIdleCallback==`function`?requestIdleCallback(t):setTimeout(t,200)}var P=t();function F(e){"@babel/helpers - typeof";return F=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},F(e)}function fe(e,t){if(F(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(F(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function pe(e){var t=fe(e,`string`);return F(t)==`symbol`?t:t+``}function I(e,t,n){return(t=pe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var me=class extends P.Component{constructor(...e){super(...e),I(this,`state`,{error:null}),I(this,`reset`,()=>{this.setState({error:null})})}static getDerivedStateFromError(e){return{error:e}}render(){let{error:e}=this.state;if(e){let t=this.props.fallback;return(0,i.jsx)(P.Suspense,{fallback:null,children:(0,i.jsx)(t,{error:e,reset:this.reset})})}return this.props.children}},L=(0,P.createContext)({}),he={push:(e,t)=>{x(e,t)},replace:e=>{x(e,{replace:!0})},back:S,forward:C,refresh:w,prefetch:j};function ge(){return(0,P.useContext)(L)}function _e(){return x}function ve(){return he}function R(){let[,e]=(0,P.useReducer)(e=>e+1,0);(0,P.useEffect)(()=>se(()=>{(0,P.startTransition)(()=>{e()})}),[])}function z(){return R(),window.location.pathname}function ye(){return z()}function be(){return R(),new URLSearchParams(window.location.search)}function xe(){return(0,P.useSyncExternalStore)(ie,re,()=>!1)}function B(e,t){let n=e.get(t);return n||(n=(0,P.lazy)(t),e.set(t,n)),n}var Se=new Map;function Ce(e){return B(Se,e)}var we=new Map;function Te(e){return B(we,e)}var V=new Map;function Ee(e){let t=V.get(e);return t||(t=(0,P.lazy)(e.load),V.set(e,t)),t}var H=null,U=null;function De(e){return(U!==e||!H)&&(H=(0,P.lazy)(e),U=e),H}var W=new Map;function Oe(e){let t=W.get(e);return t||(t=(0,P.lazy)(e),W.set(e,t)),t}var G=null,K=null;function ke(e){return(K!==e||!G)&&(G=(0,P.lazy)(e),K=e),G}function q(e){let{routes:t,layout:n=null,notFound:r=null}=e,a=z();(0,P.useEffect)(()=>{d(),ne()});let o,s={};for(let e of t){let t=T(e.pattern,a);if(t){o=e,s=t;break}}let c;if(o){let e=Ee(o);c=(0,i.jsx)(P.Suspense,{fallback:o.loading?(0,P.createElement)(P.Suspense,{fallback:null},(0,P.createElement)(Ce(o.loading))):null,children:(0,i.jsx)(e,{})});let t=o.layouts??[];for(let e=t.length-1;e>=0;e--)c=(0,i.jsx)(P.Suspense,{fallback:null,children:(0,i.jsx)(Oe(t[e]),{children:c})});o.errorComponent&&(c=(0,i.jsx)(me,{fallback:Te(o.errorComponent),children:c}))}else c=r?(0,i.jsx)(P.Suspense,{fallback:null,children:(0,i.jsx)(ke(r),{})}):(0,i.jsx)(`div`,{style:{padding:24,fontFamily:`system-ui`},children:`404 — Not found`});return n&&(c=(0,i.jsx)(P.Suspense,{fallback:null,children:(0,i.jsx)(De(n),{children:c})})),(0,i.jsx)(L.Provider,{value:s,children:c})}function Ae(e,t=null,n=null){let r=document.getElementById(`root`);if(!r)throw Error(`toil: #root element not found`);ae(),(0,a.createRoot)(r).render((0,i.jsx)(q,{routes:e,layout:t,notFound:n})),de(e)}function je(e){try{return new URL(e,window.location.href).origin!==window.location.origin}catch{return!0}}function J(e){let{href:t,replace:n=!1,scroll:r=!0,prefetch:a=!0,onClick:o,onPointerEnter:s,onFocus:c,children:l,...u}=e,d=e=>{o?.(e),!(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||u.target!==void 0&&u.target!==`_self`||u.download!==void 0||t.startsWith(`#`)||je(t))&&(e.preventDefault(),x(t,{replace:n,scroll:r}))},f=()=>{a&&j(t)},p=e=>{s?.(e),f()},m=e=>{c?.(e),f()};return(0,i.jsx)(`a`,{...u,...a?{}:{"data-no-prefetch":``},href:t,onClick:d,onPointerEnter:p,onFocus:m,children:l})}function Y(e){return e.length>1?e.replace(/\/+$/,``):e}function Me(e,t,n){let r=Y(e),i=Y(t);return i===r?!0:n?!1:r===`/`?!0:i.startsWith(r+`/`)}function Ne(e){let{href:t,className:n,style:r,children:a,end:o=!1,activeClassName:s=`active`,...c}=e,l=z(),u=t;try{u=new URL(t,window.location.href).pathname}catch{u=t}let d=Me(u,l,o),f={isActive:d},p=typeof n==`function`?n(f):[n,d?s:void 0].filter(Boolean).join(` `)||void 0,m=typeof r==`function`?r(f):r,h=typeof a==`function`?a(f):a;return(0,i.jsx)(J,{...c,href:t,className:p,style:m,"aria-current":d?`page`:void 0,children:h})}function X(e=`/_toil`,t=window.location){let n=t.protocol===`https:`?`wss:`:`ws:`,r=e.startsWith(`/`)?e:`/${e}`;return`${n}//${t.host}${r}`}function Pe(e,t={}){let n=t.url??X(t.path),r=t.reconnect??!0,i=t.reconnectDelay??1e3,a=null,o=!1,s,c=()=>{let t=new WebSocket(n);t.binaryType=`arraybuffer`,a=t,t.addEventListener(`message`,t=>{(typeof t.data==`string`||t.data instanceof ArrayBuffer)&&e(t.data)}),t.addEventListener(`close`,()=>{!o&&r&&(s=setTimeout(c,i))})};return c(),{send:e=>{a&&a.readyState===WebSocket.OPEN&&a.send(e)},close:()=>{o=!0,s!==void 0&&clearTimeout(s),a?.close()}}}function Fe(e={}){let{path:t,url:n,reconnect:r,reconnectDelay:i}=e,[a,o]=(0,P.useState)(!1),[s,c]=(0,P.useState)([]),l=(0,P.useRef)(null);return(0,P.useEffect)(()=>{let e=n??X(t),a=r??!0,s=i??1e3,u=!1,d,f=()=>{let t=new WebSocket(e);t.binaryType=`arraybuffer`,l.current=t,t.addEventListener(`open`,()=>{u||o(!0)}),t.addEventListener(`message`,e=>{if(typeof e.data==`string`){let t=e.data;c(e=>[...e,t])}else if(e.data instanceof ArrayBuffer){let t=e.data;c(e=>[...e,t])}}),t.addEventListener(`close`,()=>{u||(o(!1),a&&(d=setTimeout(f,s)))})};return f(),()=>{u=!0,d!==void 0&&clearTimeout(d),l.current?.close()}},[t,n,r,i]),{connected:a,messages:s,send:(0,P.useCallback)(e=>{let t=l.current;t&&t.readyState===WebSocket.OPEN&&t.send(e)},[])}}var Ie=e({Link:()=>J,NavLink:()=>Ne,Router:()=>q,back:()=>S,connectChannel:()=>Pe,forward:()=>C,matchActive:()=>Me,matchRoute:()=>T,mount:()=>Ae,navigate:()=>x,prefetch:()=>j,refresh:()=>w,resolveChannelUrl:()=>X,useChannel:()=>Fe,useLocation:()=>z,useNavigate:()=>_e,useNavigationPending:()=>xe,useParams:()=>ge,usePathname:()=>ye,useRouter:()=>ve,useSearchParams:()=>be}),Z=class{constructor(e){I(this,`buffer`,void 0),I(this,`currentOffset`,0),this.buffer=new DataView(e.buffer,e.byteOffset,e.byteLength)}get byteLength(){return this.buffer.byteLength}static stringCompare(e,t){return e.localeCompare(t)}static bigintCompare(e,t){return e<t?-1:+(e>t)}static numberCompare(e,t){return e<t?-1:+(e>t)}setBuffer(e){this.buffer=new DataView(e.buffer,e.byteOffset,e.byteLength),this.currentOffset=0}length(){return this.buffer.byteLength}bytesLeft(){return this.buffer.byteLength-this.currentOffset}readI8(){this.verifyEnd(this.currentOffset+1);let e=this.buffer.getInt8(this.currentOffset);return this.currentOffset+=1,e}readI16(e=!0){this.verifyEnd(this.currentOffset+2);let t=this.buffer.getInt16(this.currentOffset,!e);return this.currentOffset+=2,t}readI32(e=!0){this.verifyEnd(this.currentOffset+4);let t=this.buffer.getInt32(this.currentOffset,!e);return this.currentOffset+=4,t}readI64(e=!0){this.verifyEnd(this.currentOffset+8);let t=this.buffer.getBigInt64(this.currentOffset,!e);return this.currentOffset+=8,t}readU8(){this.verifyEnd(this.currentOffset+1);let e=this.buffer.getUint8(this.currentOffset);return this.currentOffset+=1,e}readU16(e=!0){this.verifyEnd(this.currentOffset+2);let t=this.buffer.getUint16(this.currentOffset,!e);return this.currentOffset+=2,t}readU32(e=!0){this.verifyEnd(this.currentOffset+4);let t=this.buffer.getUint32(this.currentOffset,!e);return this.currentOffset+=4,t}readU64(e=!0){this.verifyEnd(this.currentOffset+8);let t=this.buffer.getBigUint64(this.currentOffset,!e);return this.currentOffset+=8,t}readU128(e=!0){let t=this.readBytes(16),n=t;return e||(n=this.reverseBytes(t)),BigInt(`0x`+this.toHexString(n))}readU256(e=!0){let t=this.readBytes(32),n=t;return e||(n=this.reverseBytes(t)),BigInt(`0x`+this.toHexString(n))}readI128(e=!0){let t=this.readBytes(16),n=t;e||(n=this.reverseBytes(t));let r=BigInt(`0x`+this.toHexString(n));if(n[0]&128){let e=BigInt(1)<<BigInt(128);r-=e}return r}readBoolean(){return this.readU8()!==0}readSelector(){return this.readU32(!0)}readBytes(e,t=!1){this.verifyEnd(this.currentOffset+e);let n=new Uint8Array(e);for(let r=0;r<e;r++){let e=this.buffer.getUint8(this.currentOffset++);if(t&&e===0){n=new Uint8Array(n.subarray(0,r));break}n[r]=e}return n}readString(e){let t=new TextDecoder,n=this.readBytes(e,!1);return t.decode(n)}readStringWithLength(e=!0){let t=this.readU32(e);return this.readString(t)}readBytesWithLength(e=0,t=!0){let n=this.readU32(t);if(e>0&&n>e)throw Error(`Data length exceeds maximum length.`);return this.readBytes(n)}readArrayOfBuffer(e=!0){let t=this.readU16(e),n=Array(t);for(let e=0;e<t;e++)n[e]=this.readBytesWithLength();return n}readU256Array(e=!0){let t=this.readU16(e),n=Array(t);for(let r=0;r<t;r++)n[r]=this.readU256(e);return n}readU128Array(e=!0){let t=this.readU16(e),n=Array(t);for(let r=0;r<t;r++)n[r]=this.readU128(e);return n}readU64Array(e=!0){let t=this.readU16(e),n=Array(t);for(let r=0;r<t;r++)n[r]=this.readU64(e);return n}readU32Array(e=!0){let t=this.readU16(e),n=Array(t);for(let r=0;r<t;r++)n[r]=this.readU32(e);return n}readU16Array(e=!0){let t=this.readU16(e),n=Array(t);for(let r=0;r<t;r++)n[r]=this.readU16(e);return n}readU8Array(){let e=this.readU16(!0),t=Array(e);for(let n=0;n<e;n++)t[n]=this.readU8();return t}readStringArray(e=!0){let t=this.readU16(e),n=Array(t);for(let r=0;r<t;r++)n[r]=this.readStringWithLength(e);return n}readBytesArray(e=!0){let t=this.readU16(e),n=Array(t);for(let r=0;r<t;r++)n[r]=this.readBytesWithLength(0,e);return n}getOffset(){return this.currentOffset}setOffset(e){this.currentOffset=e}verifyEnd(e){if(e>this.buffer.byteLength)throw Error(`Attempt to read beyond buffer length: requested up to byte offset ${e}, but buffer is only ${this.buffer.byteLength} bytes.`)}reverseBytes(e){let t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e[e.length-1-n];return t}toHexString(e){return Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}},Le;function Q(e,t=32){if(e<0n)throw RangeError(`Value cannot be negative`);let n=e.toString(16).padStart(t*2,`0`);if(n.length>t*2)throw RangeError(`Value exceeds ${t}-byte range`);let r=new Uint8Array(t);for(let e=0;e<t;e++)r[e]=parseInt(n.substring(e*2,e*2+2),16);return r}Le=Symbol.dispose;var Re=class e{constructor(e=0){I(this,`currentOffset`,0),I(this,`buffer`,void 0),this.buffer=this.getDefaultBuffer(e)}static estimateArrayOfBufferLength(e){if(e.length>65535)throw Error(`Array size is too large`);let t=2;for(let n=0;n<e.length;n++)t+=4+e[n].length;return t}writeU8(e){if(e>255)throw Error(`u8 value is too large.`);this.allocSafe(1),this.buffer.setUint8(this.currentOffset++,e)}writeU16(e,t=!0){if(e>65535)throw Error(`u16 value is too large.`);this.allocSafe(2),this.buffer.setUint16(this.currentOffset,e,!t),this.currentOffset+=2}writeU32(e,t=!0){if(e>4294967295)throw Error(`u32 value is too large.`);this.allocSafe(4),this.buffer.setUint32(this.currentOffset,e,!t),this.currentOffset+=4}writeU64(e,t=!0){if(e>18446744073709551615n)throw Error(`u64 value is too large.`);this.allocSafe(8),this.buffer.setBigUint64(this.currentOffset,e,!t),this.currentOffset+=8}writeI8(e){if(e<-128||e>127)throw Error(`i8 value is out of range.`);this.allocSafe(1),this.buffer.setInt8(this.currentOffset,e),this.currentOffset+=1}writeI16(e,t=!0){if(e<-32768||e>32767)throw Error(`i16 value is out of range.`);this.allocSafe(2),this.buffer.setInt16(this.currentOffset,e,!t),this.currentOffset+=2}writeI32(e,t=!0){if(e<-2147483648||e>2147483647)throw Error(`i32 value is out of range.`);this.allocSafe(4),this.buffer.setInt32(this.currentOffset,e,!t),this.currentOffset+=4}writeI64(e,t=!0){if(e<-9223372036854775808n||e>9223372036854775807n)throw Error(`i64 value is out of range.`);this.allocSafe(8),this.buffer.setBigInt64(this.currentOffset,e,!t),this.currentOffset+=8}writeSelector(e){this.writeU32(e,!0)}writeBoolean(e){this.writeU8(+!!e)}writeI128(e,t=!0){if(e>170141183460469231731687303715884105727n||e<-170141183460469231731687303715884105728n)throw Error(`i128 value is too large.`);this.allocSafe(16);let n=Q(e,16);if(n.byteLength!==16)throw Error(`Invalid i128 value: ${e}`);if(t)for(let e=0;e<n.byteLength;e++)this.writeU8(n[e]);else for(let e=n.byteLength-1;e>=0;e--)this.writeU8(n[e])}writeU256(e,t=!0){if(e>115792089237316195423570985008687907853269984665640564039457584007913129639935n||e<0n)throw Error(`u256 value is too large or negative.`);this.allocSafe(32);let n=Q(e);if(n.byteLength!==32)throw Error(`Invalid u256 value: ${e}`);if(t)for(let e=0;e<n.byteLength;e++)this.writeU8(n[e]);else for(let e=n.byteLength-1;e>=0;e--)this.writeU8(n[e])}writeU128(e,t=!0){if(e>340282366920938463463374607431768211455n||e<0n)throw Error(`u128 value is too large or negative.`);this.allocSafe(16);let n=Q(e,16);if(n.byteLength!==16)throw Error(`Invalid u128 value: ${e}`);if(t)for(let e=0;e<n.byteLength;e++)this.writeU8(n[e]);else for(let e=n.byteLength-1;e>=0;e--)this.writeU8(n[e])}writeBytes(e){this.allocSafe(e.byteLength);for(let t=0;t<e.byteLength;t++)this.writeU8(e[t])}writeString(e){let t=new TextEncoder().encode(e);this.allocSafe(t.length),this.writeBytes(t)}writeStringWithLength(e){let t=new TextEncoder().encode(e);this.allocSafe(4+t.length),this.writeU32(t.length),this.writeBytes(t)}getBuffer(e=!0){let t=new Uint8Array(this.buffer.byteLength);for(let e=0;e<this.buffer.byteLength;e++)t[e]=this.buffer.getUint8(e);return e&&this.clear(),t}reset(){this.currentOffset=0,this.buffer=this.getDefaultBuffer(4)}toBytesReader(){return new Z(this.getBuffer())}getOffset(){return this.currentOffset}setOffset(e){this.currentOffset=e}clear(){this.currentOffset=0,this.buffer=this.getDefaultBuffer()}[Le](){this.clear()}allocSafe(e){this.currentOffset+e>this.buffer.byteLength&&this.resize(e)}writeBytesWithLength(e){this.writeU32(e.length),this.writeBytes(e)}writeArrayOfBuffer(t,n=!0){let r=e.estimateArrayOfBufferLength(t);this.allocSafe(r),this.writeU16(t.length,n);for(let e=0;e<t.length;e++)this.writeU32(t[e].length,n),this.writeBytes(t[e])}writeU32Array(e,t=!0){if(e.length>65535)throw Error(`Array size is too large`);this.writeU16(e.length,t);for(let n=0;n<e.length;n++)this.writeU32(e[n],t)}writeU256Array(e,t=!0){if(e.length>65535)throw Error(`Array size is too large`);this.writeU16(e.length,t);for(let n=0;n<e.length;n++)this.writeU256(e[n],t)}writeU128Array(e,t=!0){if(e.length>65535)throw Error(`Array size is too large`);this.writeU16(e.length,t);for(let n=0;n<e.length;n++)this.writeU128(e[n],t)}writeStringArray(e){if(e.length>65535)throw Error(`Array size is too large`);this.writeU16(e.length);for(let t=0;t<e.length;t++)this.writeStringWithLength(e[t])}writeU16Array(e,t=!0){if(e.length>65535)throw Error(`Array size is too large`);this.writeU16(e.length,t);for(let n=0;n<e.length;n++)this.writeU16(e[n],t)}writeU8Array(e){if(e.length>65535)throw Error(`Array size is too large`);this.writeU16(e.length);for(let t=0;t<e.length;t++)this.writeU8(e[t])}writeU64Array(e,t=!0){if(e.length>65535)throw Error(`Array size is too large`);this.writeU16(e.length,t);for(let n=0;n<e.length;n++)this.writeU64(e[n],t)}writeBytesArray(e){if(e.length>65535)throw Error(`Array size is too large`);this.writeU16(e.length);for(let t=0;t<e.length;t++)this.writeBytesWithLength(e[t])}resize(e){let t=new Uint8Array(this.buffer.byteLength+e);for(let e=0;e<this.buffer.byteLength;e++)t[e]=this.buffer.getUint8(e);this.buffer=new DataView(t.buffer,t.byteOffset,t.byteLength)}getDefaultBuffer(e=0){return new DataView(new ArrayBuffer(e))}},ze=Symbol.dispose,Be=Symbol.iterator,Ve=class e{constructor(t){if(I(this,`_keys`,[]),I(this,`_values`,{}),t instanceof e)this.setAll(t);else if(t)for(let[e,n]of t)this.set(e,n)}get size(){return this._keys.length}setAll(e){this._keys=[...e._keys],this._values={...e._values}}addAll(e){for(let[t,n]of e.entries())this.set(t,n)}*keys(){yield*this._keys}*values(){for(let e of this._keys)yield this._values[e]}*entries(){for(let e of this._keys)yield[e,this._values[e]]}set(e,t){return this.has(e)||this._keys.push(e),this._values[e]=t,this}indexOf(e){if(!this.has(e))return-1;for(let t=0;t<this._keys.length;t++)if(this._keys[t]===e)return t;throw Error(`Key not found, this should not happen.`)}get(e){return this._values[e]}has(e){return Object.prototype.hasOwnProperty.call(this._values,e)}delete(e){if(!this.has(e))return!1;let t=this.indexOf(e);return this._keys.splice(t,1),delete this._values[e],!0}clear(){this._keys=[],this._values={}}[ze](){this.clear()}forEach(e,t){for(let n of this._keys)e.call(t,this._values[n],n,this)}*[Be](){for(let e of this._keys)yield[e,this._values[e]]}},He=Symbol.dispose,Ue=Symbol.iterator;Object.assign(globalThis,{Toil:Ie,BinaryWriter:Re,BinaryReader:Z,FastMap:Ve,FastSet:class e{constructor(t){if(I(this,`_values`,[]),I(this,`_index`,{}),t instanceof e)this.addAll(t);else if(t)for(let e of t)this.add(e)}get size(){return this._values.length}add(e){return this.has(e)||(this._values.push(e),this._index[e]=!0),this}has(e){return Object.prototype.hasOwnProperty.call(this._index,e)}indexOf(e){for(let t=0;t<this._values.length;t++)if(this._values[t]===e)return t;return-1}delete(e){if(!this.has(e))return!1;let t=this.indexOf(e);return t!==-1&&this._values.splice(t,1),delete this._index[e],!0}addAll(e){for(let t of e.values())this.add(t)}*values(){yield*this._values}*keys(){yield*this._values}forEach(e,t){for(let n of this._values)e.call(t,n,n,this)}clear(){this._values=[],this._index={}}[He](){this.clear()}*[Ue](){yield*this._values}}});var We=(function(){let e=typeof document<`u`&&document.createElement(`link`).relList;return e&&e.supports&&e.supports(`modulepreload`)?`modulepreload`:`preload`})(),Ge=function(e){return`/`+e},Ke={},$=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Ge(t,n),t in Ke)return;Ke[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:We,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};Toil.mount([{pattern:`/blog/:id`,load:()=>$(()=>import(`./_id_-BadAyQnb.js`),[]),layouts:[]},{pattern:`/docs/*slug`,load:()=>$(()=>import(`./_...slug_-CXKf6qnB.js`),[]),layouts:[]},{pattern:`/about`,load:()=>$(()=>import(`./about-BOhoEcEO.js`),[]),layouts:[]},{pattern:`/get-started`,load:()=>$(()=>import(`./get-started-BIXpcjkT.js`),[]),layouts:[]},{pattern:`/io`,load:()=>$(()=>import(`./io-DEVjjaJj.js`),[]),layouts:[]},{pattern:`/`,load:()=>$(()=>import(`./routes-BYWn6TxK.js`),[]),layouts:[]}],()=>$(()=>import(`./layout-DJegirdz.js`),[]),()=>$(()=>import(`./404-Bq0jNTUo.js`),[]));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./react-DEQrz1q7.js";var t=e();function n(){let e=new BinaryWriter;e.writeU32(42),e.writeStringWithLength(`hello toil`);let n=e.getBuffer(),r=new BinaryReader(n),i=r.readU32(),a=r.readStringWithLength(),o=new FastSet;return o.add(1n).add(2n).add(1n),(0,t.jsxs)(`main`,{children:[(0,t.jsx)(`h1`,{children:`Native IO`}),(0,t.jsxs)(`p`,{children:[(0,t.jsx)(`code`,{children:`new BinaryWriter()`}),` with no import — round-tripped `,i,` and "`,a,`" through`,` `,n.length,` bytes; FastSet size `,o.size,`.`]}),(0,t.jsx)(Toil.Link,{href:`/`,children:`Back home`})]})}export{n as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./react-DEQrz1q7.js";var t=e();function n(){return(0,t.jsx)(`footer`,{className:`footer`,children:`Built with ToilJS · Powered by Dacely`})}var r=()=>(0,t.jsx)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:(0,t.jsx)(`path`,{d:`M12 2C6.477 2 2 6.477 2 12c0 4.418 2.865 8.166 6.839 9.489.5.092.682-.217.682-.482 0-.237-.009-.868-.013-1.703-2.782.604-3.369-1.341-3.369-1.341-.454-1.154-1.11-1.462-1.11-1.462-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0 1 12 6.836a9.59 9.59 0 0 1 2.504.337c1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.202 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.579.688.481C19.138 20.163 22 16.418 22 12c0-5.523-4.477-10-10-10z`})});function i({children:e}){return(0,t.jsxs)(`div`,{className:`app`,children:[(0,t.jsxs)(`header`,{className:`nav`,children:[(0,t.jsxs)(Toil.Link,{href:`/`,className:`nav-logo`,children:[(0,t.jsx)(`img`,{src:`images/logo.svg`,alt:`ToilJS`,width:28,height:28}),(0,t.jsx)(`span`,{children:`ToilJS`})]}),(0,t.jsxs)(`nav`,{className:`nav-links`,children:[(0,t.jsx)(Toil.Link,{href:`https://toil.org/docs`,children:`Docs`}),(0,t.jsxs)(`a`,{href:`https://github.com/btc-vision/toiljs`,target:`_blank`,rel:`noopener noreferrer`,className:`nav-github`,children:[(0,t.jsx)(r,{}),`GitHub`]})]})]}),(0,t.jsx)(`main`,{className:`content`,children:e}),(0,t.jsx)(n,{})]})}export{i as default};
|