toiljs 0.0.15 → 0.0.19

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 (273) 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 +116 -5
  14. package/LICENSE +187 -187
  15. package/README.md +524 -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/backend/index.d.ts +1 -0
  21. package/build/backend/index.js +20 -1
  22. package/build/cli/.tsbuildinfo +1 -1
  23. package/build/cli/index.js +1320 -696
  24. package/build/client/.tsbuildinfo +1 -1
  25. package/build/client/dev/devtools.d.ts +6 -0
  26. package/build/client/dev/devtools.js +479 -0
  27. package/build/client/dev/error-overlay.d.ts +9 -0
  28. package/build/client/dev/error-overlay.js +19 -4
  29. package/build/client/errors.d.ts +1 -0
  30. package/build/client/errors.js +3 -0
  31. package/build/client/index.d.ts +2 -0
  32. package/build/client/index.js +2 -0
  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 +23 -0
  38. package/build/client/routing/loader.js +53 -7
  39. package/build/client/routing/mount.js +4 -3
  40. package/build/client/rpc.d.ts +1 -0
  41. package/build/client/rpc.js +37 -0
  42. package/build/compiler/.tsbuildinfo +1 -1
  43. package/build/compiler/config.d.ts +16 -0
  44. package/build/compiler/config.js +9 -0
  45. package/build/compiler/docs.js +78 -21
  46. package/build/compiler/generate.js +5 -4
  47. package/build/compiler/index.d.ts +3 -2
  48. package/build/compiler/index.js +2 -2
  49. package/build/compiler/plugin.js +228 -0
  50. package/build/compiler/prerender.d.ts +1 -0
  51. package/build/compiler/prerender.js +1 -1
  52. package/build/compiler/seo.d.ts +1 -1
  53. package/build/compiler/seo.js +20 -5
  54. package/build/compiler/ssg.js +39 -2
  55. package/build/compiler/vite.js +25 -0
  56. package/build/io/.tsbuildinfo +1 -1
  57. package/build/io/codec.d.ts +54 -0
  58. package/build/io/codec.js +143 -0
  59. package/build/io/index.d.ts +1 -2
  60. package/build/io/index.js +1 -2
  61. package/build/logger/.tsbuildinfo +1 -1
  62. package/build/shared/.tsbuildinfo +1 -1
  63. package/eslint.config.js +48 -48
  64. package/examples/basic/client/404.tsx +11 -11
  65. package/examples/basic/client/components/.gitkeep +1 -1
  66. package/examples/basic/client/global-error.tsx +13 -13
  67. package/examples/basic/client/layout.tsx +25 -25
  68. package/examples/basic/client/public/images/.gitkeep +1 -1
  69. package/examples/basic/client/public/images/logo.svg +36 -36
  70. package/examples/basic/client/public/robots.txt +2 -2
  71. package/examples/basic/client/routes/docs/[...slug].tsx +12 -12
  72. package/examples/basic/client/routes/features/error/error.tsx +16 -16
  73. package/examples/basic/client/routes/features/index.tsx +1 -1
  74. package/examples/basic/client/routes/features/template/b.tsx +14 -14
  75. package/examples/basic/client/routes/files/[[...slug]].tsx +21 -21
  76. package/examples/basic/client/routes/gallery/layout.tsx +13 -13
  77. package/examples/basic/client/routes/io.tsx +23 -24
  78. package/examples/basic/client/routes/loader-demo/loading.tsx +13 -13
  79. package/examples/basic/client/routes/rest.tsx +74 -0
  80. package/examples/basic/client/routes/rpc.tsx +43 -0
  81. package/examples/basic/client/routes/search.tsx +61 -61
  82. package/examples/basic/client/toil.tsx +5 -5
  83. package/package.json +167 -148
  84. package/presets/eslint.js +88 -88
  85. package/presets/no-uint8array-tostring.js +200 -200
  86. package/presets/prettier-plugin.js +51 -0
  87. package/presets/prettier.json +19 -18
  88. package/presets/tsconfig.json +37 -37
  89. package/server/runtime/README.md +97 -0
  90. package/server/runtime/abort/abort.ts +27 -0
  91. package/server/runtime/env/Server.ts +61 -0
  92. package/server/runtime/envelope.ts +191 -0
  93. package/server/runtime/exports/index.ts +52 -0
  94. package/server/runtime/handlers/ToilHandler.ts +34 -0
  95. package/server/runtime/index.ts +26 -0
  96. package/server/runtime/lang/Potential.ts +5 -0
  97. package/server/runtime/memory.ts +81 -0
  98. package/server/runtime/request.ts +55 -0
  99. package/server/runtime/response.ts +86 -0
  100. package/server/runtime/rest/Rest.ts +39 -0
  101. package/server/runtime/rest/RestHandler.ts +20 -0
  102. package/server/runtime/rest/RouteContext.ts +82 -0
  103. package/server/runtime/rest/match.ts +48 -0
  104. package/server/runtime/tsconfig.json +7 -0
  105. package/src/backend/index.ts +202 -160
  106. package/src/cli/create.ts +15 -5
  107. package/src/cli/diagnostics.ts +81 -0
  108. package/src/cli/doctor.ts +384 -7
  109. package/src/cli/index.ts +11 -2
  110. package/src/cli/proc.ts +50 -50
  111. package/src/cli/updates.ts +69 -69
  112. package/src/cli/validate.ts +31 -31
  113. package/src/client/channel/channel.ts +146 -146
  114. package/src/client/components/Form.tsx +65 -65
  115. package/src/client/components/Script.tsx +113 -113
  116. package/src/client/components/Slot.tsx +21 -21
  117. package/src/client/dev/devtools.tsx +1018 -0
  118. package/src/client/dev/error-overlay.tsx +30 -4
  119. package/src/client/errors.ts +11 -0
  120. package/src/client/head/head.ts +167 -167
  121. package/src/client/head/metadata.ts +112 -112
  122. package/src/client/index.ts +91 -89
  123. package/src/client/navigation/NavLink.tsx +86 -86
  124. package/src/client/navigation/navigation.ts +235 -235
  125. package/src/client/navigation/prefetch.ts +169 -130
  126. package/src/client/navigation/scroll.ts +53 -53
  127. package/src/client/routing/Router.tsx +8 -2
  128. package/src/client/routing/action.ts +122 -122
  129. package/src/client/routing/error-boundary.tsx +43 -43
  130. package/src/client/routing/hooks.ts +21 -6
  131. package/src/client/routing/loader.ts +325 -235
  132. package/src/client/routing/match.ts +47 -47
  133. package/src/client/routing/mount.tsx +54 -52
  134. package/src/client/routing/params-context.ts +10 -10
  135. package/src/client/routing/slot-context.ts +7 -7
  136. package/src/client/rpc.ts +64 -0
  137. package/src/client/search/search.ts +189 -189
  138. package/src/client/search/use-page-search.ts +73 -73
  139. package/src/client/types.ts +73 -73
  140. package/src/compiler/config.ts +221 -182
  141. package/src/compiler/docs.ts +285 -228
  142. package/src/compiler/generate.ts +395 -394
  143. package/src/compiler/index.ts +66 -57
  144. package/src/compiler/pages.ts +70 -70
  145. package/src/compiler/plugin.ts +258 -2
  146. package/src/compiler/prerender.ts +156 -156
  147. package/src/compiler/seo.ts +417 -390
  148. package/src/compiler/ssg.ts +171 -126
  149. package/src/compiler/vite.ts +34 -0
  150. package/src/io/FastMap.ts +151 -127
  151. package/src/io/FastSet.ts +15 -1
  152. package/src/io/codec.ts +217 -0
  153. package/src/io/index.ts +10 -11
  154. package/src/io/lengths.ts +14 -14
  155. package/src/io/types.ts +19 -18
  156. package/src/logger/index.ts +22 -22
  157. package/src/shared/index.ts +10 -10
  158. package/std/client/index.d.ts +15 -15
  159. package/std/client/package.json +3 -3
  160. package/test/assembly/example.spec.ts +17 -7
  161. package/test/channel.test.ts +21 -21
  162. package/test/doctor.test.ts +65 -0
  163. package/test/dom/Link.test.tsx +47 -47
  164. package/test/dom/NavLink.test.tsx +37 -37
  165. package/test/dom/error-overlay.test.tsx +44 -44
  166. package/test/dom/loader.test.tsx +121 -121
  167. package/test/dom/navigation.test.ts +59 -59
  168. package/test/dom/revalidate.test.tsx +38 -38
  169. package/test/dom/route-head.test.tsx +78 -78
  170. package/test/dom/router-loading.test.tsx +44 -44
  171. package/test/dom/scroll.test.ts +56 -56
  172. package/test/dom/use-metadata.test.tsx +58 -58
  173. package/test/errors.test.ts +21 -0
  174. package/test/io.test.ts +117 -93
  175. package/test/navlink.test.ts +28 -28
  176. package/test/placeholder.test.ts +9 -9
  177. package/test/prettier-plugin.test.ts +46 -0
  178. package/test/routes.test.ts +76 -76
  179. package/test/rpc.test.ts +50 -0
  180. package/test/seo.test.ts +175 -164
  181. package/test/slot-layouts.test.ts +69 -69
  182. package/test/ssg.test.ts +36 -36
  183. package/test/update.test.ts +44 -44
  184. package/test/validate.test.ts +42 -42
  185. package/tests/data-parity/generated-parity.ts +99 -0
  186. package/tests/data-parity/parity.ts +80 -0
  187. package/tests/data-parity/spec.ts +46 -0
  188. package/toil-routes.d.ts +7 -0
  189. package/tsconfig.backend.json +13 -13
  190. package/tsconfig.base.json +35 -35
  191. package/tsconfig.cli.json +13 -13
  192. package/tsconfig.client.json +14 -14
  193. package/tsconfig.compiler.json +13 -13
  194. package/tsconfig.io.json +12 -12
  195. package/tsconfig.json +22 -22
  196. package/tsconfig.logger.json +12 -12
  197. package/tsconfig.server.json +10 -10
  198. package/tsconfig.shared.json +12 -12
  199. package/vitest.config.ts +26 -26
  200. package/.idea/codeStyles/Project.xml +0 -54
  201. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  202. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  203. package/.idea/modules.xml +0 -8
  204. package/.idea/prettier.xml +0 -7
  205. package/.idea/toiljs.iml +0 -8
  206. package/.idea/vcs.xml +0 -6
  207. package/.toil/entry.tsx +0 -9
  208. package/.toil/index.html +0 -12
  209. package/.toil/routes.ts +0 -9
  210. package/build/cli/configure.d.ts +0 -16
  211. package/build/cli/configure.js +0 -272
  212. package/build/cli/create.d.ts +0 -16
  213. package/build/cli/create.js +0 -420
  214. package/build/cli/diagnostics.d.ts +0 -55
  215. package/build/cli/diagnostics.js +0 -333
  216. package/build/cli/doctor.d.ts +0 -6
  217. package/build/cli/doctor.js +0 -249
  218. package/build/cli/features.d.ts +0 -25
  219. package/build/cli/features.js +0 -107
  220. package/build/cli/index.d.ts +0 -2
  221. package/build/cli/proc.d.ts +0 -6
  222. package/build/cli/proc.js +0 -31
  223. package/build/cli/ui.d.ts +0 -9
  224. package/build/cli/ui.js +0 -75
  225. package/build/cli/update.d.ts +0 -7
  226. package/build/cli/update.js +0 -117
  227. package/build/cli/updates.d.ts +0 -10
  228. package/build/cli/updates.js +0 -45
  229. package/build/cli/validate.d.ts +0 -4
  230. package/build/cli/validate.js +0 -19
  231. package/build/client/Link.d.ts +0 -8
  232. package/build/client/Link.js +0 -44
  233. package/build/client/NavLink.d.ts +0 -14
  234. package/build/client/NavLink.js +0 -37
  235. package/build/client/Router.d.ts +0 -7
  236. package/build/client/Router.js +0 -55
  237. package/build/client/channel.d.ts +0 -23
  238. package/build/client/channel.js +0 -94
  239. package/build/client/error-boundary.d.ts +0 -16
  240. package/build/client/error-boundary.js +0 -19
  241. package/build/client/head.d.ts +0 -26
  242. package/build/client/head.js +0 -87
  243. package/build/client/hooks.d.ts +0 -17
  244. package/build/client/hooks.js +0 -48
  245. package/build/client/lazy.d.ts +0 -16
  246. package/build/client/lazy.js +0 -53
  247. package/build/client/match.d.ts +0 -2
  248. package/build/client/match.js +0 -32
  249. package/build/client/mount.d.ts +0 -2
  250. package/build/client/mount.js +0 -13
  251. package/build/client/navigation.d.ts +0 -13
  252. package/build/client/navigation.js +0 -97
  253. package/build/client/params-context.d.ts +0 -2
  254. package/build/client/params-context.js +0 -2
  255. package/build/client/prefetch.d.ts +0 -11
  256. package/build/client/prefetch.js +0 -100
  257. package/build/client/runtime.d.ts +0 -31
  258. package/build/client/runtime.js +0 -112
  259. package/build/client/scroll.d.ts +0 -8
  260. package/build/client/scroll.js +0 -36
  261. package/build/io/BinaryReader.d.ts +0 -44
  262. package/build/io/BinaryReader.js +0 -244
  263. package/build/io/BinaryWriter.d.ts +0 -44
  264. package/build/io/BinaryWriter.js +0 -297
  265. package/build/server/release.wasm +0 -0
  266. package/build/server/release.wat +0 -9
  267. package/src/io/BinaryReader.ts +0 -340
  268. package/src/io/BinaryWriter.ts +0 -385
  269. package/src/server/index.ts +0 -10
  270. package/src/server/main.ts +0 -13
  271. package/src/server/tsconfig.json +0 -4
  272. package/toil-env.d.ts +0 -16
  273. package/toilconfig.json +0 -30
@@ -1,191 +1,191 @@
1
- name: CI for TOILJS
2
-
3
- on:
4
- push:
5
- tags:
6
- - 'v*'
7
-
8
- jobs:
9
- publish:
10
- runs-on: ubuntu-latest
11
-
12
- permissions:
13
- contents: write
14
- id-token: write
15
-
16
- steps:
17
- - name: Checkout code
18
- uses: actions/checkout@v6
19
- with:
20
- fetch-depth: 0
21
-
22
- - name: Setup Node.js
23
- uses: actions/setup-node@v6
24
- with:
25
- node-version: '24.x'
26
- registry-url: 'https://registry.npmjs.org'
27
-
28
- - name: Update npm
29
- run: npm install -g npm@latest
30
-
31
- - name: Install dependencies
32
- run: npm install
33
-
34
- - name: Build the project
35
- run: npm run build
36
-
37
- - name: Determine npm tag
38
- id: npm_tag
39
- run: |
40
- VERSION="${{ github.ref_name }}"
41
- if [[ "$VERSION" == *"-alpha"* ]]; then
42
- echo "tag=alpha" >> $GITHUB_OUTPUT
43
- elif [[ "$VERSION" == *"-beta"* ]]; then
44
- echo "tag=beta" >> $GITHUB_OUTPUT
45
- elif [[ "$VERSION" == *"-rc"* ]]; then
46
- echo "tag=rc" >> $GITHUB_OUTPUT
47
- else
48
- echo "tag=latest" >> $GITHUB_OUTPUT
49
- fi
50
- echo "Determined npm tag: $(cat $GITHUB_OUTPUT | grep tag | cut -d= -f2)"
51
-
52
- - name: Publish to npm
53
- run: npm publish --access public --tag ${{ steps.npm_tag.outputs.tag }}
54
- env:
55
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
56
-
57
- release:
58
- runs-on: ubuntu-latest
59
- needs: publish
60
-
61
- permissions:
62
- contents: write
63
-
64
- steps:
65
- - name: Checkout code
66
- uses: actions/checkout@v6
67
- with:
68
- fetch-depth: 0
69
-
70
- - name: Determine if prerelease
71
- id: prerelease
72
- run: |
73
- VERSION="${{ github.ref_name }}"
74
- if [[ "$VERSION" == *"-alpha"* ]] || [[ "$VERSION" == *"-beta"* ]] || [[ "$VERSION" == *"-rc"* ]]; then
75
- echo "is_prerelease=true" >> $GITHUB_OUTPUT
76
- else
77
- echo "is_prerelease=false" >> $GITHUB_OUTPUT
78
- fi
79
-
80
- - name: Generate changelog
81
- id: changelog
82
- uses: mikepenz/release-changelog-builder-action@v6
83
- with:
84
- ignorePreReleases: ${{ steps.prerelease.outputs.is_prerelease == 'false' }}
85
- configurationJson: |
86
- {
87
- "categories": [
88
- {
89
- "title": "### Breaking Changes",
90
- "labels": ["breaking", "breaking-change", "BREAKING-CHANGE"]
91
- },
92
- {
93
- "title": "### Features",
94
- "labels": ["feature", "feat", "enhancement"]
95
- },
96
- {
97
- "title": "### Bug Fixes",
98
- "labels": ["bug", "fix", "bugfix"]
99
- },
100
- {
101
- "title": "### Performance",
102
- "labels": ["performance", "perf"]
103
- },
104
- {
105
- "title": "### Documentation",
106
- "labels": ["documentation", "docs"]
107
- },
108
- {
109
- "title": "### Dependencies",
110
- "labels": ["dependencies", "deps"]
111
- },
112
- {
113
- "title": "### Other Changes",
114
- "labels": []
115
- }
116
- ],
117
- "sort": {
118
- "order": "ASC",
119
- "on_property": "mergedAt"
120
- },
121
- "template": "#{{CHANGELOG}}",
122
- "pr_template": "- #{{TITLE}} ([##{{NUMBER}}](#{{URL}})) by @#{{AUTHOR}}",
123
- "empty_template": "- No changes",
124
- "max_tags_to_fetch": 200,
125
- "max_pull_requests": 200,
126
- "max_back_track_time_days": 365,
127
- "tag_resolver": {
128
- "method": "semver"
129
- }
130
- }
131
- env:
132
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
133
-
134
- - name: Update CHANGELOG.md
135
- env:
136
- CHANGELOG_CONTENT: ${{ steps.changelog.outputs.changelog }}
137
- run: |
138
- TAG="${{ github.ref_name }}"
139
- DATE=$(date +%Y-%m-%d)
140
- NEW_HEADER="## [$TAG] - $DATE"
141
-
142
- # Write changelog content to temp file using env var (avoids shell escaping)
143
- printf '%s\n' "$CHANGELOG_CONTENT" > /tmp/new_entry.md
144
-
145
- if [ -f CHANGELOG.md ]; then
146
- # Create new file with entry inserted after header line
147
- {
148
- head -n 1 CHANGELOG.md
149
- echo ""
150
- echo "$NEW_HEADER"
151
- echo ""
152
- cat /tmp/new_entry.md
153
- echo ""
154
- tail -n +2 CHANGELOG.md
155
- } > /tmp/CHANGELOG_NEW.md
156
- mv /tmp/CHANGELOG_NEW.md CHANGELOG.md
157
- else
158
- # Create new CHANGELOG.md
159
- {
160
- echo "# Changelog"
161
- echo ""
162
- echo "All notable changes to this project will be documented in this file."
163
- echo ""
164
- echo "This changelog is automatically generated from merged pull requests."
165
- echo ""
166
- echo "$NEW_HEADER"
167
- echo ""
168
- cat /tmp/new_entry.md
169
- } > CHANGELOG.md
170
- fi
171
-
172
- rm -f /tmp/new_entry.md
173
-
174
- - name: Commit changelog
175
- run: |
176
- git config user.name "github-actions[bot]"
177
- git config user.email "github-actions[bot]@users.noreply.github.com"
178
- git add CHANGELOG.md
179
- git diff --staged --quiet || git commit -m "docs: update CHANGELOG.md for ${{ github.ref_name }}"
180
- git push origin HEAD:main || echo "No changes to push or push failed"
181
-
182
- - name: Create GitHub Release
183
- uses: softprops/action-gh-release@v2
184
- with:
185
- tag_name: ${{ github.ref_name }}
186
- name: Release ${{ github.ref_name }}
187
- body: ${{ steps.changelog.outputs.changelog }}
188
- prerelease: ${{ steps.prerelease.outputs.is_prerelease == 'true' }}
189
- generate_release_notes: false
190
- env:
191
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1
+ name: CI for TOILJS
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+
12
+ permissions:
13
+ contents: write
14
+ id-token: write
15
+
16
+ steps:
17
+ - name: Checkout code
18
+ uses: actions/checkout@v6
19
+ with:
20
+ fetch-depth: 0
21
+
22
+ - name: Setup Node.js
23
+ uses: actions/setup-node@v6
24
+ with:
25
+ node-version: '24.x'
26
+ registry-url: 'https://registry.npmjs.org'
27
+
28
+ - name: Update npm
29
+ run: npm install -g npm@latest
30
+
31
+ - name: Install dependencies
32
+ run: npm install
33
+
34
+ - name: Build the project
35
+ run: npm run build
36
+
37
+ - name: Determine npm tag
38
+ id: npm_tag
39
+ run: |
40
+ VERSION="${{ github.ref_name }}"
41
+ if [[ "$VERSION" == *"-alpha"* ]]; then
42
+ echo "tag=alpha" >> $GITHUB_OUTPUT
43
+ elif [[ "$VERSION" == *"-beta"* ]]; then
44
+ echo "tag=beta" >> $GITHUB_OUTPUT
45
+ elif [[ "$VERSION" == *"-rc"* ]]; then
46
+ echo "tag=rc" >> $GITHUB_OUTPUT
47
+ else
48
+ echo "tag=latest" >> $GITHUB_OUTPUT
49
+ fi
50
+ echo "Determined npm tag: $(cat $GITHUB_OUTPUT | grep tag | cut -d= -f2)"
51
+
52
+ - name: Publish to npm
53
+ run: npm publish --access public --tag ${{ steps.npm_tag.outputs.tag }}
54
+ env:
55
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
56
+
57
+ release:
58
+ runs-on: ubuntu-latest
59
+ needs: publish
60
+
61
+ permissions:
62
+ contents: write
63
+
64
+ steps:
65
+ - name: Checkout code
66
+ uses: actions/checkout@v6
67
+ with:
68
+ fetch-depth: 0
69
+
70
+ - name: Determine if prerelease
71
+ id: prerelease
72
+ run: |
73
+ VERSION="${{ github.ref_name }}"
74
+ if [[ "$VERSION" == *"-alpha"* ]] || [[ "$VERSION" == *"-beta"* ]] || [[ "$VERSION" == *"-rc"* ]]; then
75
+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
76
+ else
77
+ echo "is_prerelease=false" >> $GITHUB_OUTPUT
78
+ fi
79
+
80
+ - name: Generate changelog
81
+ id: changelog
82
+ uses: mikepenz/release-changelog-builder-action@v6
83
+ with:
84
+ ignorePreReleases: ${{ steps.prerelease.outputs.is_prerelease == 'false' }}
85
+ configurationJson: |
86
+ {
87
+ "categories": [
88
+ {
89
+ "title": "### Breaking Changes",
90
+ "labels": ["breaking", "breaking-change", "BREAKING-CHANGE"]
91
+ },
92
+ {
93
+ "title": "### Features",
94
+ "labels": ["feature", "feat", "enhancement"]
95
+ },
96
+ {
97
+ "title": "### Bug Fixes",
98
+ "labels": ["bug", "fix", "bugfix"]
99
+ },
100
+ {
101
+ "title": "### Performance",
102
+ "labels": ["performance", "perf"]
103
+ },
104
+ {
105
+ "title": "### Documentation",
106
+ "labels": ["documentation", "docs"]
107
+ },
108
+ {
109
+ "title": "### Dependencies",
110
+ "labels": ["dependencies", "deps"]
111
+ },
112
+ {
113
+ "title": "### Other Changes",
114
+ "labels": []
115
+ }
116
+ ],
117
+ "sort": {
118
+ "order": "ASC",
119
+ "on_property": "mergedAt"
120
+ },
121
+ "template": "#{{CHANGELOG}}",
122
+ "pr_template": "- #{{TITLE}} ([##{{NUMBER}}](#{{URL}})) by @#{{AUTHOR}}",
123
+ "empty_template": "- No changes",
124
+ "max_tags_to_fetch": 200,
125
+ "max_pull_requests": 200,
126
+ "max_back_track_time_days": 365,
127
+ "tag_resolver": {
128
+ "method": "semver"
129
+ }
130
+ }
131
+ env:
132
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
133
+
134
+ - name: Update CHANGELOG.md
135
+ env:
136
+ CHANGELOG_CONTENT: ${{ steps.changelog.outputs.changelog }}
137
+ run: |
138
+ TAG="${{ github.ref_name }}"
139
+ DATE=$(date +%Y-%m-%d)
140
+ NEW_HEADER="## [$TAG] - $DATE"
141
+
142
+ # Write changelog content to temp file using env var (avoids shell escaping)
143
+ printf '%s\n' "$CHANGELOG_CONTENT" > /tmp/new_entry.md
144
+
145
+ if [ -f CHANGELOG.md ]; then
146
+ # Create new file with entry inserted after header line
147
+ {
148
+ head -n 1 CHANGELOG.md
149
+ echo ""
150
+ echo "$NEW_HEADER"
151
+ echo ""
152
+ cat /tmp/new_entry.md
153
+ echo ""
154
+ tail -n +2 CHANGELOG.md
155
+ } > /tmp/CHANGELOG_NEW.md
156
+ mv /tmp/CHANGELOG_NEW.md CHANGELOG.md
157
+ else
158
+ # Create new CHANGELOG.md
159
+ {
160
+ echo "# Changelog"
161
+ echo ""
162
+ echo "All notable changes to this project will be documented in this file."
163
+ echo ""
164
+ echo "This changelog is automatically generated from merged pull requests."
165
+ echo ""
166
+ echo "$NEW_HEADER"
167
+ echo ""
168
+ cat /tmp/new_entry.md
169
+ } > CHANGELOG.md
170
+ fi
171
+
172
+ rm -f /tmp/new_entry.md
173
+
174
+ - name: Commit changelog
175
+ run: |
176
+ git config user.name "github-actions[bot]"
177
+ git config user.email "github-actions[bot]@users.noreply.github.com"
178
+ git add CHANGELOG.md
179
+ git diff --staged --quiet || git commit -m "docs: update CHANGELOG.md for ${{ github.ref_name }}"
180
+ git push origin HEAD:main || echo "No changes to push or push failed"
181
+
182
+ - name: Create GitHub Release
183
+ uses: softprops/action-gh-release@v2
184
+ with:
185
+ tag_name: ${{ github.ref_name }}
186
+ name: Release ${{ github.ref_name }}
187
+ body: ${{ steps.changelog.outputs.changelog }}
188
+ prerelease: ${{ steps.prerelease.outputs.is_prerelease == 'true' }}
189
+ generate_release_notes: false
190
+ env:
191
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
package/.prettierrc.json CHANGED
@@ -1,12 +1,12 @@
1
- {
2
- "printWidth": 100,
3
- "trailingComma": "all",
4
- "tabWidth": 4,
5
- "semi": true,
6
- "singleQuote": true,
7
- "quoteProps": "as-needed",
8
- "bracketSpacing": true,
9
- "bracketSameLine": true,
10
- "arrowParens": "always",
11
- "singleAttributePerLine": true
1
+ {
2
+ "printWidth": 100,
3
+ "trailingComma": "all",
4
+ "tabWidth": 4,
5
+ "semi": true,
6
+ "singleQuote": true,
7
+ "quoteProps": "as-needed",
8
+ "bracketSpacing": true,
9
+ "bracketSameLine": true,
10
+ "arrowParens": "always",
11
+ "singleAttributePerLine": true
12
12
  }
@@ -1,10 +1,10 @@
1
- {
2
- "eslint.validate": ["javascript", "typescript"],
3
- "prettier.useEditorConfig": false,
4
- "prettier.useTabs": false,
5
- "prettier.configPath": ".prettierrc.json",
6
- "prettier.requireConfig": true,
7
- "prettier.tabWidth": 4,
8
- "prettier.singleQuote": true,
9
- "editor.formatOnSave": true,
1
+ {
2
+ "eslint.validate": ["javascript", "typescript"],
3
+ "prettier.useEditorConfig": false,
4
+ "prettier.useTabs": false,
5
+ "prettier.configPath": ".prettierrc.json",
6
+ "prettier.requireConfig": true,
7
+ "prettier.tabWidth": 4,
8
+ "prettier.singleQuote": true,
9
+ "editor.formatOnSave": true,
10
10
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,116 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- This changelog is automatically generated from merged pull requests.
1
+ # Changelog
2
+
3
+ ## [v0.0.16] - 2026-06-03
4
+
5
+ ### Other Changes
6
+
7
+ - feat: client/server config split, server rename, enforced client tooling ([#1](https://github.com/dacely-cloud/toiljs/pull/1)) by @BlobMaster41
8
+ - Epic branded CLI + interactive `toiljs create` ([#3](https://github.com/dacely-cloud/toiljs/pull/3)) by @BlobMaster41
9
+ - Client/server config split, src/server rename, enforced client tooling ([#2](https://github.com/dacely-cloud/toiljs/pull/2)) by @BlobMaster41
10
+ - feat: client WebSocket channel for the backend /_toil endpoint ([#7](https://github.com/dacely-cloud/toiljs/pull/7)) by @BlobMaster41
11
+ - feat: native BinaryWriter/BinaryReader + FastMap/FastSet (toiljs/io) ([#6](https://github.com/dacely-cloud/toiljs/pull/6)) by @BlobMaster41
12
+ - chore: remove all references ([#8](https://github.com/dacely-cloud/toiljs/pull/8)) by @BlobMaster41
13
+ - feat: harden the hyper-express backend server ([#9](https://github.com/dacely-cloud/toiljs/pull/9)) by @BlobMaster41
14
+ - feat: catch-all routes + custom 404 page ([#10](https://github.com/dacely-cloud/toiljs/pull/10)) by @BlobMaster41
15
+ - style: drop banner comments (TSDoc only) ([#11](https://github.com/dacely-cloud/toiljs/pull/11)) by @BlobMaster41
16
+ - feat: serve Vite dev through the hyper-express/uWS proxy ([#12](https://github.com/dacely-cloud/toiljs/pull/12)) by @BlobMaster41
17
+ - revert: drop the dev proxy (dev = plain Vite) ([#13](https://github.com/dacely-cloud/toiljs/pull/13)) by @BlobMaster41
18
+ - chore: unify test dirs (AssemblyScript specs under test/assembly) ([#14](https://github.com/dacely-cloud/toiljs/pull/14)) by @BlobMaster41
19
+ - feat(cli): brand color palette + tagline ([#15](https://github.com/dacely-cloud/toiljs/pull/15)) by @BlobMaster41
20
+ - fix(config): load toil.config via native ESM import ([#16](https://github.com/dacely-cloud/toiljs/pull/16)) by @BlobMaster41
21
+ - fix(io): ambient globals via toiljs/globals (toil-env.d.ts = pure reference) ([#17](https://github.com/dacely-cloud/toiljs/pull/17)) by @BlobMaster41
22
+ - feat(scaffold): brand default app styles ([#18](https://github.com/dacely-cloud/toiljs/pull/18)) by @BlobMaster41
23
+ - fix(io): self-contained toil-env.d.ts (fixes TS2304) ([#19](https://github.com/dacely-cloud/toiljs/pull/19)) by @BlobMaster41
24
+ - fix: inline toil-env globals + spawn DEP0190 + drop Next mentions (0.0.3) ([#21](https://github.com/dacely-cloud/toiljs/pull/21)) by @BlobMaster41
25
+ - feat(create): scaffold the WASM server (toilscript) setup ([#22](https://github.com/dacely-cloud/toiljs/pull/22)) by @BlobMaster41
26
+ - feat: one-command client+server build; example mirrors server setup ([#23](https://github.com/dacely-cloud/toiljs/pull/23)) by @BlobMaster41
27
+ - chore: say toilscript not AssemblyScript; clarify server eslint ignore ([#24](https://github.com/dacely-cloud/toiljs/pull/24)) by @BlobMaster41
28
+ - fix(compiler): extensionless route imports (TS5097) ([#25](https://github.com/dacely-cloud/toiljs/pull/25)) by @BlobMaster41
29
+ - feat(client): prefetch route chunks for visible & hovered links ([#26](https://github.com/dacely-cloud/toiljs/pull/26)) by @BlobMaster41
30
+ - refactor(client): split runtime.tsx into focused modules ([#27](https://github.com/dacely-cloud/toiljs/pull/27)) by @BlobMaster41
31
+ - feat(compiler): user-owned public/index.html template + static assets ([#28](https://github.com/dacely-cloud/toiljs/pull/28)) by @BlobMaster41
32
+ - feat(client): user-owned entry (client/toil.tsx), styles/components dirs, public/images, prettier HTML ([#29](https://github.com/dacely-cloud/toiljs/pull/29)) by @BlobMaster41
33
+ - feat(client): Toil native global + style-import types (TS2882) ([#30](https://github.com/dacely-cloud/toiljs/pull/30)) by @BlobMaster41
34
+ - feat(compiler): unified build/ output (build/client + build/server) ([#31](https://github.com/dacely-cloud/toiljs/pull/31)) by @BlobMaster41
35
+ - feat(cli): style-compiler choice, Tailwind, and toiljs configure ([#32](https://github.com/dacely-cloud/toiljs/pull/32)) by @BlobMaster41
36
+ - chore: strip inline comments (TSDoc only) + server tsconfig for toilscript ([#33](https://github.com/dacely-cloud/toiljs/pull/33)) by @BlobMaster41
37
+ - feat(compiler): move public/ under client (client/public) ([#34](https://github.com/dacely-cloud/toiljs/pull/34)) by @BlobMaster41
38
+ - fix(client): navigate via startTransition (kill Suspense flash) ([#35](https://github.com/dacely-cloud/toiljs/pull/35)) by @BlobMaster41
39
+ - fix(cli): robust toiljs configure + non-interactive flags ([#36](https://github.com/dacely-cloud/toiljs/pull/36)) by @BlobMaster41
40
+ - feat(client): Link forwards full anchor API + replace/prefetch ([#37](https://github.com/dacely-cloud/toiljs/pull/37)) by @BlobMaster41
41
+ - feat(client): NavLink (active class + aria-current) ([#38](https://github.com/dacely-cloud/toiljs/pull/38)) by @BlobMaster41
42
+ - feat(client): useRouter / usePathname / useSearchParams + history nav ([#39](https://github.com/dacely-cloud/toiljs/pull/39)) by @BlobMaster41
43
+ - feat(client): scroll management (top / restore / #hash) + scroll prop ([#40](https://github.com/dacely-cloud/toiljs/pull/40)) by @BlobMaster41
44
+ - feat(client): useNavigationPending() for loading indicators ([#41](https://github.com/dacely-cloud/toiljs/pull/41)) by @BlobMaster41
45
+ - feat(client): nested layouts (routes/**/layout.tsx) ([#42](https://github.com/dacely-cloud/toiljs/pull/42)) by @BlobMaster41
46
+ - feat(client): loading.tsx + error.tsx ([#43](https://github.com/dacely-cloud/toiljs/pull/43)) by @BlobMaster41
47
+ - feat(routing): optional catch-all [[...slug]] + route groups (group) ([#44](https://github.com/dacely-cloud/toiljs/pull/44)) by @BlobMaster41
48
+ - feat(create): AI-assistant helper files → .toil/docs ([#45](https://github.com/dacely-cloud/toiljs/pull/45)) by @BlobMaster41
49
+ - feat(create): AI assistant files are now selectable ([#46](https://github.com/dacely-cloud/toiljs/pull/46)) by @BlobMaster41
50
+ - feat(client): head/metadata API + file-based metadata ([#47](https://github.com/dacely-cloud/toiljs/pull/47)) by @BlobMaster41
51
+ - fix: audit findings ([#48](https://github.com/dacely-cloud/toiljs/pull/48)) by @BlobMaster41
52
+ - feat(compiler): image-import module declarations (svg/png/…) ([#49](https://github.com/dacely-cloud/toiljs/pull/49)) by @BlobMaster41
53
+ - feat(compiler): accept toiljs.config.* as well ([#50](https://github.com/dacely-cloud/toiljs/pull/50)) by @BlobMaster41
54
+ - refactor(client): organize src/client by feature ([#51](https://github.com/dacely-cloud/toiljs/pull/51)) by @BlobMaster41
55
+ - feat(compiler): clear error for empty import specifiers ([#52](https://github.com/dacely-cloud/toiljs/pull/52)) by @BlobMaster41
56
+ - feat(create): app template = the basic example (verbatim) ([#53](https://github.com/dacely-cloud/toiljs/pull/53)) by @BlobMaster41
57
+ - feat(create): explicit None option for AI assistant files ([#54](https://github.com/dacely-cloud/toiljs/pull/54)) by @BlobMaster41
58
+ - feat(create): scaffold .vscode/settings.json (workspace TS sdk) ([#55](https://github.com/dacely-cloud/toiljs/pull/55)) by @BlobMaster41
59
+ - feat(client): route data loaders (loader + useLoaderData) ([#56](https://github.com/dacely-cloud/toiljs/pull/56)) by @BlobMaster41
60
+ - refactor(create): single starter source (examples/basic/client), drop templates/ ([#57](https://github.com/dacely-cloud/toiljs/pull/57)) by @BlobMaster41
61
+ - chore: fix stale templates/app comments ([#58](https://github.com/dacely-cloud/toiljs/pull/58)) by @BlobMaster41
62
+ - feat(client): typed routes (Link/navigate hrefs + useParams) ([#59](https://github.com/dacely-cloud/toiljs/pull/59)) by @BlobMaster41
63
+ - docs: fill .toil/docs (real content, not TODO) ([#60](https://github.com/dacely-cloud/toiljs/pull/60)) by @BlobMaster41
64
+ - test: jsdom runtime tests (navigation / scroll / Link / NavLink) ([#61](https://github.com/dacely-cloud/toiljs/pull/61)) by @BlobMaster41
65
+ - feat(routing): template.tsx + global-error.tsx (+ loader spinner, eslint loader export) ([#62](https://github.com/dacely-cloud/toiljs/pull/62)) by @BlobMaster41
66
+ - fix(routing): instant page switches (no more freeze on navigation) ([#63](https://github.com/dacely-cloud/toiljs/pull/63)) by @BlobMaster41
67
+ - feat(client): <Image> + <Script> components ([#64](https://github.com/dacely-cloud/toiljs/pull/64)) by @BlobMaster41
68
+ - feat(loader): typed useLoaderData + cache control ([#65](https://github.com/dacely-cloud/toiljs/pull/65)) by @BlobMaster41
69
+ - feat(loader): useLoaderData(loader) form + allow revalidate export ([#66](https://github.com/dacely-cloud/toiljs/pull/66)) by @BlobMaster41
70
+ - feat(images): build-time image optimization (on by default) ([#67](https://github.com/dacely-cloud/toiljs/pull/67)) by @BlobMaster41
71
+ - feat(actions): mutations via useAction + <Form> ([#68](https://github.com/dacely-cloud/toiljs/pull/68)) by @BlobMaster41
72
+ - fix(loader): instant navigation (stop re-suspending no-loader routes) ([#69](https://github.com/dacely-cloud/toiljs/pull/69)) by @BlobMaster41
73
+ - feat(images): log optimized images during build ([#70](https://github.com/dacely-cloud/toiljs/pull/70)) by @BlobMaster41
74
+ - fix(routing): restore smooth nav transition (and keep loading spinners) ([#71](https://github.com/dacely-cloud/toiljs/pull/71)) by @BlobMaster41
75
+ - feat(dev): error overlay for uncaught render/async errors ([#73](https://github.com/dacely-cloud/toiljs/pull/73)) by @BlobMaster41
76
+ - feat(routing): parallel + intercepting routes ([#72](https://github.com/dacely-cloud/toiljs/pull/72)) by @BlobMaster41
77
+ - feat(head): metadata API (export const metadata / generateMetadata) ([#74](https://github.com/dacely-cloud/toiljs/pull/74)) by @BlobMaster41
78
+ - feat(seo): per-route build-time SEO + AI/social toolset ([#75](https://github.com/dacely-cloud/toiljs/pull/75)) by @BlobMaster41
79
+ - feat(fonts): preload bundled fonts at build (+ log) ([#77](https://github.com/dacely-cloud/toiljs/pull/77)) by @BlobMaster41
80
+ - fix(loader): show loading.tsx when revalidating the current route ([#76](https://github.com/dacely-cloud/toiljs/pull/76)) by @BlobMaster41
81
+ - feat(routing): opt-in animated view transitions ([#78](https://github.com/dacely-cloud/toiljs/pull/78)) by @BlobMaster41
82
+ - fix(head): per-route metadata wins over layout useHead defaults ([#79](https://github.com/dacely-cloud/toiljs/pull/79)) by @BlobMaster41
83
+ - fix(compiler): stop editors flagging route exports (metadata/loader/…) as unused ([#80](https://github.com/dacely-cloud/toiljs/pull/80)) by @BlobMaster41
84
+ - fix(routing): wire slots into mount, stop @slot routes recursing; full feature demo ([#82](https://github.com/dacely-cloud/toiljs/pull/82)) by @BlobMaster41
85
+ - fix(build): resolve node-polyfill shims for symlinked consumers; absolute demo asset paths ([#83](https://github.com/dacely-cloud/toiljs/pull/83)) by @BlobMaster41
86
+ - docs: README ([#81](https://github.com/dacely-cloud/toiljs/pull/81)) by @BlobMaster41
87
+ - feat(cli): add `toiljs doctor` ([#84](https://github.com/dacely-cloud/toiljs/pull/84)) by @BlobMaster41
88
+ - feat(cli): add `toiljs update` ([#85](https://github.com/dacely-cloud/toiljs/pull/85)) by @BlobMaster41
89
+ - feat(search): build-time page search + usePageSearch ([#86](https://github.com/dacely-cloud/toiljs/pull/86)) by @BlobMaster41
90
+ - fix(pkg): correct package description ([#87](https://github.com/dacely-cloud/toiljs/pull/87)) by @BlobMaster41
91
+ - fix(compiler): resolve broken vite-imagetools/client type reference ([#90](https://github.com/dacely-cloud/toiljs/pull/90)) by @BlobMaster41
92
+ - style: fix syntax ([#89](https://github.com/dacely-cloud/toiljs/pull/89)) by @BlobMaster41
93
+ - fix(readme): absolute logo URL for npm ([#91](https://github.com/dacely-cloud/toiljs/pull/91)) by @BlobMaster41
94
+ - build(cli): bundle the CLI, stop @clack leaking into consumers ([#93](https://github.com/dacely-cloud/toiljs/pull/93)) by @BlobMaster41
95
+ - feat(head): component metadata (useMetadata/<Metadata>) + href() helper ([#92](https://github.com/dacely-cloud/toiljs/pull/92)) by @BlobMaster41
96
+ - feat(ssg): build-time prerender for dynamic routes via generateStaticParams ([#94](https://github.com/dacely-cloud/toiljs/pull/94)) by @BlobMaster41
97
+ - feat(routing): loader transition off by default (opt-in client.transitions) ([#95](https://github.com/dacely-cloud/toiljs/pull/95)) by @BlobMaster41
98
+ - fix(routing): no empty page on navigation + fade-in ([#96](https://github.com/dacely-cloud/toiljs/pull/96)) by @BlobMaster41
99
+ - feat(seo): full page index in llms.txt (static + SSG, with metadata) ([#97](https://github.com/dacely-cloud/toiljs/pull/97)) by @BlobMaster41
100
+ - feat(dev): dev toolbar (Phase 1) ([#98](https://github.com/dacely-cloud/toiljs/pull/98)) by @BlobMaster41
101
+ - feat(dev): dev toolbar Data + Head/SEO tabs (Phase 2) ([#99](https://github.com/dacely-cloud/toiljs/pull/99)) by @BlobMaster41
102
+ - feat(devtools): AI assist + command palette (Phase 3) ([#100](https://github.com/dacely-cloud/toiljs/pull/100)) by @BlobMaster41
103
+ - docs(devtools): README section + export AiProvider for typed config ([#101](https://github.com/dacely-cloud/toiljs/pull/101)) by @BlobMaster41
104
+ - fix(devtools): cache getSnapshot to stop Data-tab infinite loop ([#102](https://github.com/dacely-cloud/toiljs/pull/102)) by @BlobMaster41
105
+ - fix(devtools): show vite version + tidy no-loader Data tab ([#104](https://github.com/dacely-cloud/toiljs/pull/104)) by @BlobMaster41
106
+ - fix(routing): hold previous page during navigation instead of blanking ([#103](https://github.com/dacely-cloud/toiljs/pull/103)) by @BlobMaster41
107
+ - feat(routing): prefetch loader data on hover so navigation feels instant ([#105](https://github.com/dacely-cloud/toiljs/pull/105)) by @BlobMaster41
108
+ - refactor(routing): drop the page fade-in ([#106](https://github.com/dacely-cloud/toiljs/pull/106)) by @BlobMaster41
109
+ - fix(pkg): add repository field for npm provenance ([#107](https://github.com/dacely-cloud/toiljs/pull/107)) by @BlobMaster41
110
+
111
+
112
+
113
+
114
+ All notable changes to this project will be documented in this file.
115
+
116
+ This changelog is automatically generated from merged pull requests.