toiljs 0.0.14 → 0.0.16

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.
Files changed (225) hide show
  1. package/.babelrc +13 -13
  2. package/.gitattributes +2 -2
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -38
  4. package/.github/ISSUE_TEMPLATE/bug_report.yml +90 -90
  5. package/.github/ISSUE_TEMPLATE/config.yml +8 -8
  6. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -20
  7. package/.github/PULL_REQUEST_TEMPLATE.md +43 -43
  8. package/.github/changelog-config.json +45 -45
  9. package/.github/dependabot.yml +27 -27
  10. package/.github/workflows/ci.yml +191 -191
  11. package/.prettierrc.json +11 -11
  12. package/.vscode/settings.json +9 -9
  13. package/CHANGELOG.md +5 -5
  14. package/LICENSE +187 -187
  15. package/README.md +339 -315
  16. package/as-pect.asconfig.json +34 -34
  17. package/as-pect.config.js +65 -65
  18. package/assets/logo.svg +36 -36
  19. package/build/backend/.tsbuildinfo +1 -1
  20. package/build/cli/.tsbuildinfo +1 -1
  21. package/build/cli/index.js +2926 -191
  22. package/build/client/.tsbuildinfo +1 -1
  23. package/build/client/dev/devtools.d.ts +6 -0
  24. package/build/client/dev/devtools.js +442 -0
  25. package/build/client/dev/error-overlay.d.ts +9 -0
  26. package/build/client/dev/error-overlay.js +19 -4
  27. package/build/client/head/metadata.d.ts +3 -1
  28. package/build/client/head/metadata.js +8 -0
  29. package/build/client/index.d.ts +4 -4
  30. package/build/client/index.js +2 -2
  31. package/build/client/navigation/navigation.d.ts +2 -0
  32. package/build/client/navigation/navigation.js +9 -1
  33. package/build/client/navigation/prefetch.d.ts +1 -0
  34. package/build/client/navigation/prefetch.js +35 -0
  35. package/build/client/routing/Router.js +1 -1
  36. package/build/client/routing/hooks.js +6 -2
  37. package/build/client/routing/loader.d.ts +25 -0
  38. package/build/client/routing/loader.js +53 -7
  39. package/build/client/routing/mount.js +4 -3
  40. package/build/compiler/.tsbuildinfo +1 -1
  41. package/build/compiler/config.d.ts +18 -0
  42. package/build/compiler/config.js +8 -0
  43. package/build/compiler/docs.js +16 -16
  44. package/build/compiler/generate.js +3 -0
  45. package/build/compiler/index.d.ts +2 -2
  46. package/build/compiler/index.js +3 -1
  47. package/build/compiler/plugin.js +156 -0
  48. package/build/compiler/prerender.d.ts +1 -0
  49. package/build/compiler/prerender.js +2 -1
  50. package/build/compiler/seo.d.ts +2 -2
  51. package/build/compiler/seo.js +8 -6
  52. package/build/compiler/ssg.d.ts +5 -0
  53. package/build/compiler/ssg.js +121 -0
  54. package/build/io/.tsbuildinfo +1 -1
  55. package/build/logger/.tsbuildinfo +1 -1
  56. package/build/shared/.tsbuildinfo +1 -1
  57. package/eslint.config.js +48 -48
  58. package/examples/basic/client/404.tsx +11 -11
  59. package/examples/basic/client/components/.gitkeep +1 -1
  60. package/examples/basic/client/global-error.tsx +13 -13
  61. package/examples/basic/client/layout.tsx +25 -25
  62. package/examples/basic/client/public/images/.gitkeep +1 -1
  63. package/examples/basic/client/public/images/logo.svg +36 -36
  64. package/examples/basic/client/public/robots.txt +2 -2
  65. package/examples/basic/client/routes/docs/[...slug].tsx +12 -12
  66. package/examples/basic/client/routes/features/error/error.tsx +16 -16
  67. package/examples/basic/client/routes/features/template/b.tsx +14 -14
  68. package/examples/basic/client/routes/files/[[...slug]].tsx +21 -21
  69. package/examples/basic/client/routes/gallery/layout.tsx +13 -13
  70. package/examples/basic/client/routes/io.tsx +24 -24
  71. package/examples/basic/client/routes/loader-demo/loading.tsx +13 -13
  72. package/examples/basic/client/routes/search.tsx +61 -61
  73. package/examples/basic/client/toil.tsx +5 -5
  74. package/package.json +155 -147
  75. package/presets/eslint.js +88 -88
  76. package/presets/no-uint8array-tostring.js +200 -200
  77. package/presets/prettier.json +18 -18
  78. package/presets/tsconfig.json +37 -37
  79. package/src/backend/index.ts +160 -160
  80. package/src/cli/proc.ts +50 -50
  81. package/src/cli/updates.ts +69 -69
  82. package/src/cli/validate.ts +31 -31
  83. package/src/client/channel/channel.ts +146 -146
  84. package/src/client/components/Form.tsx +65 -65
  85. package/src/client/components/Script.tsx +113 -113
  86. package/src/client/components/Slot.tsx +21 -21
  87. package/src/client/dev/devtools.tsx +973 -0
  88. package/src/client/dev/error-overlay.tsx +30 -4
  89. package/src/client/head/head.ts +167 -167
  90. package/src/client/head/metadata.ts +19 -1
  91. package/src/client/index.ts +19 -9
  92. package/src/client/navigation/NavLink.tsx +86 -86
  93. package/src/client/navigation/navigation.ts +25 -5
  94. package/src/client/navigation/prefetch.ts +169 -130
  95. package/src/client/navigation/scroll.ts +53 -53
  96. package/src/client/routing/Router.tsx +8 -2
  97. package/src/client/routing/action.ts +122 -122
  98. package/src/client/routing/error-boundary.tsx +43 -43
  99. package/src/client/routing/hooks.ts +21 -6
  100. package/src/client/routing/loader.ts +325 -225
  101. package/src/client/routing/match.ts +47 -47
  102. package/src/client/routing/mount.tsx +54 -52
  103. package/src/client/routing/params-context.ts +10 -10
  104. package/src/client/routing/slot-context.ts +7 -7
  105. package/src/client/search/search.ts +189 -189
  106. package/src/client/search/use-page-search.ts +73 -73
  107. package/src/client/types.ts +73 -73
  108. package/src/compiler/config.ts +47 -1
  109. package/src/compiler/docs.ts +228 -228
  110. package/src/compiler/generate.ts +394 -391
  111. package/src/compiler/index.ts +64 -54
  112. package/src/compiler/pages.ts +70 -70
  113. package/src/compiler/plugin.ts +170 -2
  114. package/src/compiler/prerender.ts +5 -1
  115. package/src/compiler/seo.ts +23 -7
  116. package/src/compiler/ssg.ts +162 -0
  117. package/src/io/BinaryReader.ts +340 -340
  118. package/src/io/BinaryWriter.ts +385 -385
  119. package/src/io/FastMap.ts +127 -127
  120. package/src/io/index.ts +11 -11
  121. package/src/io/lengths.ts +14 -14
  122. package/src/io/types.ts +18 -18
  123. package/src/logger/index.ts +22 -22
  124. package/src/server/index.ts +10 -10
  125. package/src/server/main.ts +13 -13
  126. package/src/server/tsconfig.json +4 -4
  127. package/src/shared/index.ts +10 -10
  128. package/std/client/index.d.ts +15 -15
  129. package/std/client/package.json +3 -3
  130. package/test/assembly/example.spec.ts +7 -7
  131. package/test/channel.test.ts +21 -21
  132. package/test/dom/Link.test.tsx +47 -47
  133. package/test/dom/NavLink.test.tsx +37 -37
  134. package/test/dom/error-overlay.test.tsx +44 -44
  135. package/test/dom/loader.test.tsx +121 -121
  136. package/test/dom/navigation.test.ts +59 -59
  137. package/test/dom/revalidate.test.tsx +38 -38
  138. package/test/dom/route-head.test.tsx +78 -78
  139. package/test/dom/router-loading.test.tsx +44 -44
  140. package/test/dom/scroll.test.ts +56 -56
  141. package/test/dom/use-metadata.test.tsx +58 -0
  142. package/test/io.test.ts +93 -93
  143. package/test/navlink.test.ts +28 -28
  144. package/test/placeholder.test.ts +9 -9
  145. package/test/routes.test.ts +76 -76
  146. package/test/seo.test.ts +175 -164
  147. package/test/slot-layouts.test.ts +69 -69
  148. package/test/ssg.test.ts +36 -0
  149. package/test/update.test.ts +44 -44
  150. package/test/validate.test.ts +42 -42
  151. package/toil-routes.d.ts +7 -0
  152. package/toilconfig.json +30 -30
  153. package/tsconfig.backend.json +13 -13
  154. package/tsconfig.base.json +35 -35
  155. package/tsconfig.cli.json +13 -13
  156. package/tsconfig.client.json +14 -14
  157. package/tsconfig.compiler.json +13 -13
  158. package/tsconfig.io.json +12 -12
  159. package/tsconfig.json +22 -22
  160. package/tsconfig.logger.json +12 -12
  161. package/tsconfig.server.json +10 -10
  162. package/tsconfig.shared.json +12 -12
  163. package/vitest.config.ts +26 -26
  164. package/.idea/codeStyles/Project.xml +0 -54
  165. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  166. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  167. package/.idea/modules.xml +0 -8
  168. package/.idea/prettier.xml +0 -7
  169. package/.idea/toiljs.iml +0 -8
  170. package/.idea/vcs.xml +0 -6
  171. package/.toil/entry.tsx +0 -9
  172. package/.toil/index.html +0 -12
  173. package/.toil/routes.ts +0 -9
  174. package/build/cli/configure.d.ts +0 -16
  175. package/build/cli/configure.js +0 -272
  176. package/build/cli/create.d.ts +0 -16
  177. package/build/cli/create.js +0 -420
  178. package/build/cli/diagnostics.d.ts +0 -55
  179. package/build/cli/diagnostics.js +0 -333
  180. package/build/cli/doctor.d.ts +0 -6
  181. package/build/cli/doctor.js +0 -249
  182. package/build/cli/features.d.ts +0 -25
  183. package/build/cli/features.js +0 -107
  184. package/build/cli/index.d.ts +0 -2
  185. package/build/cli/proc.d.ts +0 -6
  186. package/build/cli/proc.js +0 -31
  187. package/build/cli/ui.d.ts +0 -9
  188. package/build/cli/ui.js +0 -75
  189. package/build/cli/update.d.ts +0 -7
  190. package/build/cli/update.js +0 -117
  191. package/build/cli/updates.d.ts +0 -10
  192. package/build/cli/updates.js +0 -45
  193. package/build/cli/validate.d.ts +0 -4
  194. package/build/cli/validate.js +0 -19
  195. package/build/client/Link.d.ts +0 -8
  196. package/build/client/Link.js +0 -44
  197. package/build/client/NavLink.d.ts +0 -14
  198. package/build/client/NavLink.js +0 -37
  199. package/build/client/Router.d.ts +0 -7
  200. package/build/client/Router.js +0 -55
  201. package/build/client/channel.d.ts +0 -23
  202. package/build/client/channel.js +0 -94
  203. package/build/client/error-boundary.d.ts +0 -16
  204. package/build/client/error-boundary.js +0 -19
  205. package/build/client/head.d.ts +0 -26
  206. package/build/client/head.js +0 -87
  207. package/build/client/hooks.d.ts +0 -17
  208. package/build/client/hooks.js +0 -48
  209. package/build/client/lazy.d.ts +0 -16
  210. package/build/client/lazy.js +0 -53
  211. package/build/client/match.d.ts +0 -2
  212. package/build/client/match.js +0 -32
  213. package/build/client/mount.d.ts +0 -2
  214. package/build/client/mount.js +0 -13
  215. package/build/client/navigation.d.ts +0 -13
  216. package/build/client/navigation.js +0 -97
  217. package/build/client/params-context.d.ts +0 -2
  218. package/build/client/params-context.js +0 -2
  219. package/build/client/prefetch.d.ts +0 -11
  220. package/build/client/prefetch.js +0 -100
  221. package/build/client/runtime.d.ts +0 -31
  222. package/build/client/runtime.js +0 -112
  223. package/build/client/scroll.d.ts +0 -8
  224. package/build/client/scroll.js +0 -36
  225. package/toil-env.d.ts +0 -16
@@ -1,13 +1,13 @@
1
- // Shown as the Suspense fallback while this route's `loader` runs (and its chunk loads). Because the
2
- // loader awaits 2s, you'll see this spinner before the page renders with its data.
3
- export default function LoaderDemoLoading() {
4
- return (
5
- <main>
6
- <div className="loading-bar" />
7
- <div className="loading-center">
8
- <span className="spinner" aria-hidden="true" />
9
- <p>Loading data…</p>
10
- </div>
11
- </main>
12
- );
13
- }
1
+ // Shown as the Suspense fallback while this route's `loader` runs (and its chunk loads). Because the
2
+ // loader awaits 2s, you'll see this spinner before the page renders with its data.
3
+ export default function LoaderDemoLoading() {
4
+ return (
5
+ <main>
6
+ <div className="loading-bar" />
7
+ <div className="loading-center">
8
+ <span className="spinner" aria-hidden="true" />
9
+ <p>Loading data…</p>
10
+ </div>
11
+ </main>
12
+ );
13
+ }
@@ -1,61 +1,61 @@
1
- import { useState } from 'react';
2
-
3
- export const metadata: Toil.Metadata = {
4
- title: 'Search',
5
- description: 'Search every page by its metadata and jump straight to it.',
6
- keywords: ['search', 'find', 'pages', 'metadata']
7
- };
8
-
9
- // A tiny site-wide search box. `usePageSearch` queries the compiler-built index of every page's
10
- // metadata (title/description/keywords/OpenGraph + static `searchHints` on dynamic routes), returns
11
- // ranked matches with their route `path`, and `goTo` navigates to whichever one you pick.
12
- export default function Search() {
13
- const [query, setQuery] = useState('');
14
- const { results, pages, goTo } = Toil.usePageSearch(query, { includeDynamic: true });
15
-
16
- return (
17
- <main>
18
- <h1>Search</h1>
19
- <p>
20
- Type to search across the metadata of all {pages.length} pages, title, description, keywords, and
21
- OpenGraph. Indexed at build by <code>client/routes/*</code>.
22
- </p>
23
-
24
- <input
25
- type="search"
26
- value={query}
27
- onChange={(e) => {
28
- setQuery(e.target.value);
29
- }}
30
- placeholder="Search pages… (try “blog”, “features”, “started”)"
31
- aria-label="Search pages"
32
- autoFocus
33
- style={{ width: '100%', padding: '0.6rem 0.8rem', fontSize: '1rem' }}
34
- />
35
-
36
- {query.trim() !== '' && (
37
- <ul style={{ listStyle: 'none', padding: 0, marginTop: '1rem' }}>
38
- {results.length === 0 && <li>No pages match “{query}”.</li>}
39
- {results.map((r) => (
40
- <li key={r.page.path} style={{ marginBottom: '0.75rem' }}>
41
- <button
42
- type="button"
43
- onClick={() => {
44
- goTo(r);
45
- }}
46
- disabled={r.page.dynamic}
47
- title={r.page.dynamic ? 'Dynamic route, needs params to open' : undefined}
48
- style={{ textAlign: 'left', cursor: r.page.dynamic ? 'default' : 'pointer' }}>
49
- <strong>{r.page.metadata.title ?? r.page.path}</strong> <code>{r.page.path}</code>
50
- {r.page.metadata.description !== undefined && <div>{r.page.metadata.description}</div>}
51
- <small>
52
- score {r.score.toFixed(1)} · matched {r.matches.join(', ')}
53
- </small>
54
- </button>
55
- </li>
56
- ))}
57
- </ul>
58
- )}
59
- </main>
60
- );
61
- }
1
+ import { useState } from 'react';
2
+
3
+ export const metadata: Toil.Metadata = {
4
+ title: 'Search',
5
+ description: 'Search every page by its metadata and jump straight to it.',
6
+ keywords: ['search', 'find', 'pages', 'metadata']
7
+ };
8
+
9
+ // A tiny site-wide search box. `usePageSearch` queries the compiler-built index of every page's
10
+ // metadata (title/description/keywords/OpenGraph + static `searchHints` on dynamic routes), returns
11
+ // ranked matches with their route `path`, and `goTo` navigates to whichever one you pick.
12
+ export default function Search() {
13
+ const [query, setQuery] = useState('');
14
+ const { results, pages, goTo } = Toil.usePageSearch(query, { includeDynamic: true });
15
+
16
+ return (
17
+ <main>
18
+ <h1>Search</h1>
19
+ <p>
20
+ Type to search across the metadata of all {pages.length} pages, title, description, keywords, and
21
+ OpenGraph. Indexed at build by <code>client/routes/*</code>.
22
+ </p>
23
+
24
+ <input
25
+ type="search"
26
+ value={query}
27
+ onChange={(e) => {
28
+ setQuery(e.target.value);
29
+ }}
30
+ placeholder="Search pages… (try “blog”, “features”, “started”)"
31
+ aria-label="Search pages"
32
+ autoFocus
33
+ style={{ width: '100%', padding: '0.6rem 0.8rem', fontSize: '1rem' }}
34
+ />
35
+
36
+ {query.trim() !== '' && (
37
+ <ul style={{ listStyle: 'none', padding: 0, marginTop: '1rem' }}>
38
+ {results.length === 0 && <li>No pages match “{query}”.</li>}
39
+ {results.map((r) => (
40
+ <li key={r.page.path} style={{ marginBottom: '0.75rem' }}>
41
+ <button
42
+ type="button"
43
+ onClick={() => {
44
+ goTo(r);
45
+ }}
46
+ disabled={r.page.dynamic}
47
+ title={r.page.dynamic ? 'Dynamic route, needs params to open' : undefined}
48
+ style={{ textAlign: 'left', cursor: r.page.dynamic ? 'default' : 'pointer' }}>
49
+ <strong>{r.page.metadata.title ?? r.page.path}</strong> <code>{r.page.path}</code>
50
+ {r.page.metadata.description !== undefined && <div>{r.page.metadata.description}</div>}
51
+ <small>
52
+ score {r.score.toFixed(1)} · matched {r.matches.join(', ')}
53
+ </small>
54
+ </button>
55
+ </li>
56
+ ))}
57
+ </ul>
58
+ )}
59
+ </main>
60
+ );
61
+ }
@@ -1,5 +1,5 @@
1
- import { routes, layout, notFound, globalError, slots } from 'toiljs/routes';
2
-
3
- import './styles/main.css';
4
-
5
- Toil.mount(routes, layout, notFound, globalError, slots);
1
+ import { routes, layout, notFound, globalError, slots } from 'toiljs/routes';
2
+
3
+ import './styles/main.css';
4
+
5
+ Toil.mount(routes, layout, notFound, globalError, slots);
package/package.json CHANGED
@@ -1,147 +1,155 @@
1
- {
2
- "name": "toiljs",
3
- "type": "module",
4
- "version": "0.0.14",
5
- "author": "Dacely",
6
- "description": "The modern React framework: a file-based React frontend and a ToilScript-compiled WebAssembly backend.",
7
- "engines": {
8
- "node": ">=24.0.0"
9
- },
10
- "exports": {
11
- ".": {
12
- "types": "./build/client/index.d.ts",
13
- "import": "./build/client/index.js",
14
- "default": "./build/client/index.js"
15
- },
16
- "./client": {
17
- "types": "./build/client/index.d.ts",
18
- "import": "./build/client/index.js",
19
- "default": "./build/client/index.js"
20
- },
21
- "./compiler": {
22
- "types": "./build/compiler/index.d.ts",
23
- "import": "./build/compiler/index.js",
24
- "default": "./build/compiler/index.js"
25
- },
26
- "./logger": {
27
- "types": "./build/logger/index.d.ts",
28
- "import": "./build/logger/index.js",
29
- "default": "./build/logger/index.js"
30
- },
31
- "./shared": {
32
- "types": "./build/shared/index.d.ts",
33
- "import": "./build/shared/index.js",
34
- "default": "./build/shared/index.js"
35
- },
36
- "./backend": {
37
- "types": "./build/backend/index.d.ts",
38
- "import": "./build/backend/index.js",
39
- "default": "./build/backend/index.js"
40
- },
41
- "./io": {
42
- "types": "./build/io/index.d.ts",
43
- "import": "./build/io/index.js",
44
- "default": "./build/io/index.js"
45
- },
46
- "./tsconfig": "./presets/tsconfig.json",
47
- "./eslint": "./presets/eslint.js",
48
- "./prettier": "./presets/prettier.json"
49
- },
50
- "bin": {
51
- "toiljs": "./build/cli/index.js"
52
- },
53
- "homepage": "https://toil.org",
54
- "keywords": [
55
- "toil",
56
- "toiljs",
57
- "typescript",
58
- "react",
59
- "webassembly",
60
- "framework"
61
- ],
62
- "license": "Apache-2.0",
63
- "main": "build/client/index.js",
64
- "types": "build/client/index.d.ts",
65
- "typings": "build/client/index.d.ts",
66
- "module": "build/client/index.js",
67
- "publishConfig": {
68
- "access": "public",
69
- "tag": "latest"
70
- },
71
- "scripts": {
72
- "watch": "tsc -p tsconfig.json --watch",
73
- "build": "npm run build:shared && npm run build:logger && npm run build:client && npm run build:io && npm run build:backend && npm run build:compiler && npm run build:cli && npm run build:server",
74
- "build:shared": "tsc -p tsconfig.shared.json",
75
- "build:logger": "tsc -p tsconfig.logger.json",
76
- "build:client": "tsc -p tsconfig.client.json",
77
- "build:io": "tsc -p tsconfig.io.json",
78
- "build:backend": "tsc -p tsconfig.backend.json",
79
- "build:compiler": "tsc -p tsconfig.compiler.json",
80
- "build:cli": "tsc -p tsconfig.cli.json",
81
- "build:server": "toilscript --target release",
82
- "test": "vitest run --coverage",
83
- "test:watch": "vitest",
84
- "test:ui": "vitest --ui",
85
- "test:coverage": "vitest run --coverage",
86
- "test:server": "asp --config as-pect.config.js --verbose --no-logo",
87
- "test:server:ci": "asp --config as-pect.config.js --summary --no-logo",
88
- "test:all": "npm run test && npm run test:server",
89
- "lint": "eslint src",
90
- "docs": "typedoc --out docs --tsconfig tsconfig.json --readme README.md --name TOILJS --plugin typedoc-material-theme --themeColor '#cb9820' --exclude src/server src",
91
- "setup": "npm i && npm run build"
92
- },
93
- "dependencies": {
94
- "@btc-vision/as-bignum": "^1.0.0",
95
- "@btc-vision/as-loader": "^0.0.0",
96
- "@btc-vision/hyper-express": "^6.17.4",
97
- "@clack/prompts": "^1.5.0",
98
- "@eslint-react/eslint-plugin": "^5.8.8",
99
- "@eslint/js": "^10.0.1",
100
- "@typescript-eslint/utils": "^8.60.0",
101
- "@vitejs/plugin-react": "^6.0.2",
102
- "eslint-plugin-react-hooks": "^7.1.1",
103
- "eslint-plugin-react-refresh": "^0.5.2",
104
- "picocolors": "^1.1.1",
105
- "sharp": "^0.34.5",
106
- "toilscript": "^0.1.4",
107
- "typescript-eslint": "^8.60.0",
108
- "vite": "^8.0.14",
109
- "vite-imagetools": "^10.0.0",
110
- "vite-plugin-node-polyfills": "^0.28.0"
111
- },
112
- "peerDependencies": {
113
- "eslint": ">=10.0.0",
114
- "prettier": ">=3.0.0",
115
- "react": ">=18.0.0",
116
- "react-dom": ">=18.0.0",
117
- "typescript": ">=6.0.0"
118
- },
119
- "devDependencies": {
120
- "@babel/core": "^7.29.7",
121
- "@babel/preset-env": "^7.29.7",
122
- "@babel/preset-typescript": "^7.29.7",
123
- "@btc-vision/as-covers-assembly": "^0.4.5",
124
- "@btc-vision/as-covers-transform": "^0.4.5",
125
- "@btc-vision/as-pect-assembly": "^8.3.0",
126
- "@btc-vision/as-pect-cli": "^8.3.0",
127
- "@btc-vision/as-pect-transform": "^8.3.0",
128
- "@microsoft/api-extractor": "7.58.7",
129
- "@testing-library/dom": "^10.4.1",
130
- "@testing-library/react": "^16.3.2",
131
- "@types/node": "^25.9.1",
132
- "@types/react": "^19.2.15",
133
- "@types/react-dom": "^19.2.3",
134
- "@vitest/coverage-v8": "^4.1.7",
135
- "@vitest/ui": "^4.1.7",
136
- "eslint": "^10.4.1",
137
- "jsdom": "^29.1.1",
138
- "micromatch": "^4.0.8",
139
- "playwright": "^1.60.0",
140
- "prettier": "^3.8.3",
141
- "react": "^19.2.6",
142
- "react-dom": "^19.2.6",
143
- "typedoc": "^0.28.19",
144
- "typescript": "^6.0.3",
145
- "vitest": "^4.1.7"
146
- }
147
- }
1
+ {
2
+ "name": "toiljs",
3
+ "type": "module",
4
+ "version": "0.0.16",
5
+ "author": "Dacely",
6
+ "description": "The modern React framework: a file-based React frontend and a ToilScript-compiled WebAssembly backend.",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/dacely-cloud/toiljs.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/dacely-cloud/toiljs/issues"
13
+ },
14
+ "engines": {
15
+ "node": ">=24.0.0"
16
+ },
17
+ "exports": {
18
+ ".": {
19
+ "types": "./build/client/index.d.ts",
20
+ "import": "./build/client/index.js",
21
+ "default": "./build/client/index.js"
22
+ },
23
+ "./client": {
24
+ "types": "./build/client/index.d.ts",
25
+ "import": "./build/client/index.js",
26
+ "default": "./build/client/index.js"
27
+ },
28
+ "./compiler": {
29
+ "types": "./build/compiler/index.d.ts",
30
+ "import": "./build/compiler/index.js",
31
+ "default": "./build/compiler/index.js"
32
+ },
33
+ "./logger": {
34
+ "types": "./build/logger/index.d.ts",
35
+ "import": "./build/logger/index.js",
36
+ "default": "./build/logger/index.js"
37
+ },
38
+ "./shared": {
39
+ "types": "./build/shared/index.d.ts",
40
+ "import": "./build/shared/index.js",
41
+ "default": "./build/shared/index.js"
42
+ },
43
+ "./backend": {
44
+ "types": "./build/backend/index.d.ts",
45
+ "import": "./build/backend/index.js",
46
+ "default": "./build/backend/index.js"
47
+ },
48
+ "./io": {
49
+ "types": "./build/io/index.d.ts",
50
+ "import": "./build/io/index.js",
51
+ "default": "./build/io/index.js"
52
+ },
53
+ "./tsconfig": "./presets/tsconfig.json",
54
+ "./eslint": "./presets/eslint.js",
55
+ "./prettier": "./presets/prettier.json"
56
+ },
57
+ "bin": {
58
+ "toiljs": "./build/cli/index.js"
59
+ },
60
+ "homepage": "https://toil.org",
61
+ "keywords": [
62
+ "toil",
63
+ "toiljs",
64
+ "typescript",
65
+ "react",
66
+ "webassembly",
67
+ "framework"
68
+ ],
69
+ "license": "Apache-2.0",
70
+ "main": "build/client/index.js",
71
+ "types": "build/client/index.d.ts",
72
+ "typings": "build/client/index.d.ts",
73
+ "module": "build/client/index.js",
74
+ "publishConfig": {
75
+ "access": "public",
76
+ "tag": "latest"
77
+ },
78
+ "scripts": {
79
+ "watch": "tsc -p tsconfig.json --watch",
80
+ "build": "npm run build:shared && npm run build:logger && npm run build:client && npm run build:io && npm run build:backend && npm run build:compiler && npm run build:cli && npm run build:server",
81
+ "build:shared": "tsc -p tsconfig.shared.json",
82
+ "build:logger": "tsc -p tsconfig.logger.json",
83
+ "build:client": "tsc -p tsconfig.client.json",
84
+ "build:io": "tsc -p tsconfig.io.json",
85
+ "build:backend": "tsc -p tsconfig.backend.json",
86
+ "build:compiler": "tsc -p tsconfig.compiler.json",
87
+ "build:cli": "tsc -p tsconfig.cli.json --noEmit && esbuild src/cli/index.ts --bundle --platform=node --format=esm --outfile=build/cli/index.js --external:toiljs/*",
88
+ "build:server": "toilscript --target release",
89
+ "test": "vitest run --coverage",
90
+ "test:watch": "vitest",
91
+ "test:ui": "vitest --ui",
92
+ "test:coverage": "vitest run --coverage",
93
+ "test:server": "asp --config as-pect.config.js --verbose --no-logo",
94
+ "test:server:ci": "asp --config as-pect.config.js --summary --no-logo",
95
+ "test:all": "npm run test && npm run test:server",
96
+ "lint": "eslint src",
97
+ "docs": "typedoc --out docs --tsconfig tsconfig.json --readme README.md --name TOILJS --plugin typedoc-material-theme --themeColor '#cb9820' --exclude src/server src",
98
+ "setup": "npm i && npm run build"
99
+ },
100
+ "dependencies": {
101
+ "@btc-vision/as-bignum": "^1.0.0",
102
+ "@btc-vision/as-loader": "^0.0.0",
103
+ "@btc-vision/hyper-express": "^6.17.4",
104
+ "@eslint-react/eslint-plugin": "^5.8.8",
105
+ "@eslint/js": "^10.0.1",
106
+ "@typescript-eslint/utils": "^8.60.0",
107
+ "@vitejs/plugin-react": "^6.0.2",
108
+ "eslint-plugin-react-hooks": "^7.1.1",
109
+ "eslint-plugin-react-refresh": "^0.5.2",
110
+ "picocolors": "^1.1.1",
111
+ "sharp": "^0.34.5",
112
+ "toilscript": "^0.1.4",
113
+ "typescript-eslint": "^8.60.0",
114
+ "vite": "^8.0.14",
115
+ "vite-imagetools": "^10.0.0",
116
+ "vite-plugin-node-polyfills": "^0.28.0"
117
+ },
118
+ "peerDependencies": {
119
+ "eslint": ">=10.0.0",
120
+ "prettier": ">=3.0.0",
121
+ "react": ">=18.0.0",
122
+ "react-dom": ">=18.0.0",
123
+ "typescript": ">=6.0.0"
124
+ },
125
+ "devDependencies": {
126
+ "@babel/core": "^7.29.7",
127
+ "@clack/prompts": "^1.5.0",
128
+ "@babel/preset-env": "^7.29.7",
129
+ "@babel/preset-typescript": "^7.29.7",
130
+ "@btc-vision/as-covers-assembly": "^0.4.5",
131
+ "@btc-vision/as-covers-transform": "^0.4.5",
132
+ "@btc-vision/as-pect-assembly": "^8.3.0",
133
+ "@btc-vision/as-pect-cli": "^8.3.0",
134
+ "@btc-vision/as-pect-transform": "^8.3.0",
135
+ "@microsoft/api-extractor": "7.58.7",
136
+ "@testing-library/dom": "^10.4.1",
137
+ "@testing-library/react": "^16.3.2",
138
+ "@types/node": "^25.9.1",
139
+ "@types/react": "^19.2.15",
140
+ "@types/react-dom": "^19.2.3",
141
+ "@vitest/coverage-v8": "^4.1.7",
142
+ "@vitest/ui": "^4.1.7",
143
+ "esbuild": "^0.28.0",
144
+ "eslint": "^10.4.1",
145
+ "jsdom": "^29.1.1",
146
+ "micromatch": "^4.0.8",
147
+ "playwright": "^1.60.0",
148
+ "prettier": "^3.8.3",
149
+ "react": "^19.2.6",
150
+ "react-dom": "^19.2.6",
151
+ "typedoc": "^0.28.19",
152
+ "typescript": "^6.0.3",
153
+ "vitest": "^4.1.7"
154
+ }
155
+ }