@solidjs/start 2.0.0-beta.0 → 2.0.0-beta.10

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 (117) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/dist/config/boundary-modules.d.ts +14 -0
  3. package/dist/config/boundary-modules.js +41 -0
  4. package/dist/config/dev-server.d.ts +3 -1
  5. package/dist/config/dev-server.js +25 -5
  6. package/dist/config/env.js +16 -12
  7. package/dist/config/fs-router.d.ts +1 -1
  8. package/dist/config/fs-router.js +28 -21
  9. package/dist/config/fs-routes/router.d.ts +2 -1
  10. package/dist/config/fs-routes/router.js +8 -10
  11. package/dist/config/index.js +42 -7
  12. package/dist/directives/index.js +39 -7
  13. package/dist/fns/handler.js +40 -4
  14. package/dist/fns/registration.d.ts +2 -1
  15. package/dist/fns/registration.js +4 -1
  16. package/dist/http/http.d.ts +81 -0
  17. package/dist/http/http.js +129 -0
  18. package/dist/http/index.d.ts +2 -81
  19. package/dist/http/index.js +6 -129
  20. package/dist/middleware/index.d.ts +1 -0
  21. package/dist/middleware/index.js +1 -0
  22. package/dist/server/StartServer.jsx +1 -1
  23. package/dist/server/handler.d.ts +3 -61
  24. package/dist/server/handler.js +4 -8
  25. package/dist/server/spa/StartServer.jsx +1 -1
  26. package/dist/server/spa/handler.d.ts +2 -30
  27. package/dist/server/web-stream.d.ts +9 -0
  28. package/dist/server/web-stream.js +26 -0
  29. package/dist/shared/HttpHeader.jsx +1 -1
  30. package/env.d.ts +12 -0
  31. package/package.json +14 -8
  32. package/scripts/build.js +0 -15
  33. package/scripts/validate-imports.js +0 -316
  34. package/src/client/StartClient.tsx +0 -34
  35. package/src/client/index.tsx +0 -2
  36. package/src/client/mount.ts +0 -1
  37. package/src/client/spa/index.tsx +0 -9
  38. package/src/config/constants.ts +0 -19
  39. package/src/config/dev-server.ts +0 -157
  40. package/src/config/env.ts +0 -105
  41. package/src/config/fs-router.ts +0 -162
  42. package/src/config/fs-routes/fs-watcher.ts +0 -66
  43. package/src/config/fs-routes/index.ts +0 -136
  44. package/src/config/fs-routes/router.ts +0 -184
  45. package/src/config/fs-routes/tree-shake.ts +0 -324
  46. package/src/config/index.ts +0 -239
  47. package/src/config/lazy.ts +0 -132
  48. package/src/config/manifest.ts +0 -120
  49. package/src/config/utils.ts +0 -5
  50. package/src/config/vite-utils.ts +0 -113
  51. package/src/directives/bubble-function-declaration.ts +0 -33
  52. package/src/directives/compile.ts +0 -54
  53. package/src/directives/generate-unique-name.ts +0 -22
  54. package/src/directives/get-descriptive-name.ts +0 -39
  55. package/src/directives/get-import-identifier.ts +0 -34
  56. package/src/directives/get-root-statement-path.ts +0 -14
  57. package/src/directives/index.ts +0 -233
  58. package/src/directives/is-statement-top-level.ts +0 -13
  59. package/src/directives/paths.ts +0 -63
  60. package/src/directives/plugin.ts +0 -389
  61. package/src/directives/remove-unused-variables.ts +0 -70
  62. package/src/directives/types.ts +0 -12
  63. package/src/directives/xxhash32.ts +0 -214
  64. package/src/env.d.ts +0 -17
  65. package/src/fns/client.ts +0 -141
  66. package/src/fns/handler.spec.ts +0 -85
  67. package/src/fns/handler.ts +0 -287
  68. package/src/fns/registration.ts +0 -19
  69. package/src/fns/serialization.ts +0 -250
  70. package/src/fns/server.ts +0 -46
  71. package/src/fns/shared.ts +0 -116
  72. package/src/http/index.ts +0 -216
  73. package/src/index.tsx +0 -7
  74. package/src/internal.d.ts +0 -14
  75. package/src/middleware/index.ts +0 -92
  76. package/src/router.tsx +0 -37
  77. package/src/server/StartServer.tsx +0 -58
  78. package/src/server/assets/PatchVirtualDevStyles.tsx +0 -31
  79. package/src/server/assets/index.ts +0 -70
  80. package/src/server/assets/render.tsx +0 -46
  81. package/src/server/collect-styles.ts +0 -70
  82. package/src/server/fetchEvent.spec.ts +0 -85
  83. package/src/server/fetchEvent.ts +0 -36
  84. package/src/server/handler.ts +0 -261
  85. package/src/server/index.tsx +0 -29
  86. package/src/server/manifest/client-manifest.ts +0 -8
  87. package/src/server/manifest/dev-client-manifest.ts +0 -21
  88. package/src/server/manifest/dev-ssr-manifest.ts +0 -23
  89. package/src/server/manifest/prod-client-manifest.ts +0 -21
  90. package/src/server/manifest/prod-ssr-manifest.ts +0 -109
  91. package/src/server/manifest/ssr-manifest.ts +0 -10
  92. package/src/server/routes.ts +0 -126
  93. package/src/server/spa/StartServer.tsx +0 -42
  94. package/src/server/spa/handler.ts +0 -29
  95. package/src/server/spa/index.tsx +0 -5
  96. package/src/server/types.ts +0 -82
  97. package/src/server/util.ts +0 -12
  98. package/src/shared/ErrorBoundary.tsx +0 -52
  99. package/src/shared/GET.ts +0 -8
  100. package/src/shared/HttpHeader.tsx +0 -42
  101. package/src/shared/HttpStatusCode.ts +0 -27
  102. package/src/shared/clientOnly.ts +0 -44
  103. package/src/shared/dev-overlay/CodeView.tsx +0 -90
  104. package/src/shared/dev-overlay/DevOverlayDialog.tsx +0 -316
  105. package/src/shared/dev-overlay/createStackFrame.ts +0 -74
  106. package/src/shared/dev-overlay/download.ts +0 -6
  107. package/src/shared/dev-overlay/env.d.ts +0 -4
  108. package/src/shared/dev-overlay/get-source-map.ts +0 -33
  109. package/src/shared/dev-overlay/icons.tsx +0 -456
  110. package/src/shared/dev-overlay/index.tsx +0 -63
  111. package/src/shared/dev-overlay/styles.css +0 -292
  112. package/src/shared/lazy.ts +0 -52
  113. package/src/shared/serverFunction.ts +0 -10
  114. package/src/utils/debounce.ts +0 -10
  115. package/src/virtual.d.ts +0 -27
  116. package/tsconfig.json +0 -24
  117. package/vitest.config.ts +0 -9
@@ -1,292 +0,0 @@
1
- [data-start-dev-overlay] {
2
- position: fixed;
3
- inset: 0px;
4
- z-index: 50;
5
- overflow-y: auto;
6
- }
7
-
8
- [data-start-dev-overlay]>div {
9
- position: relative;
10
- display: flex;
11
- align-items: center;
12
- justify-content: center;
13
- min-height: 100vh;
14
- }
15
-
16
- [data-start-dev-overlay-background] {
17
- position: absolute;
18
- inset: 0px;
19
- background-color: rgb(17 24 39 / 0.5);
20
- }
21
-
22
- [data-start-dev-overlay-panel] {
23
- display: flex;
24
- flex-direction: column;
25
- width: 75vw;
26
- margin-top: 2rem;
27
- margin-bottom: 2rem;
28
- gap: 0.5rem;
29
- color: rgb(17 24 39);
30
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
31
- }
32
-
33
- [data-start-dev-overlay-panel-container] {
34
- margin: 2rem;
35
- z-index: 10;
36
- }
37
-
38
- [data-start-dev-overlay-navbar] {
39
- display: flex;
40
- flex-direction: row;
41
- align-items: center;
42
- justify-content: space-between;
43
- gap: 0.5rem;
44
- }
45
-
46
- [data-start-dev-overlay-pagination] {
47
- display: flex;
48
- flex-direction: row;
49
- align-items: center;
50
- justify-content: center;
51
- gap: 0.5rem;
52
- border-radius: 9999px;
53
- background-color: rgb(249 250 251);
54
- padding: 0.25rem;
55
- }
56
-
57
- [data-start-dev-overlay-button] {
58
- display: flex;
59
- padding: 0.125rem;
60
- border-radius: 9999px;
61
- border-width: 0px;
62
- align-items: center;
63
- justify-content: center;
64
- background-color: rgb(249 250 251);
65
- color: rgb(17 24 39);
66
- transition-property: color, background-color, border-color, box-shadow;
67
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
68
- transition-duration: 150ms;
69
- }
70
-
71
- [data-start-dev-overlay-button]:hover {
72
- background-color: rgb(229 231 235);
73
- color: rgb(55 65 81);
74
- }
75
-
76
- [data-start-dev-overlay-button]:focus {
77
- outline: 2px solid transparent;
78
- outline-offset: 2px
79
- }
80
-
81
- [data-start-dev-overlay-button]:focus-visible {
82
- box-shadow: 0 0 0 calc(3px) rgb(17 24 39 / 0.75);
83
- }
84
-
85
- [data-start-dev-overlay-button]:active {
86
- background-color: rgb(243 244 246);
87
- color: rgb(31 41 55);
88
- }
89
-
90
- [data-start-dev-overlay-button]>svg {
91
- height: 1.5rem;
92
- width: 1.5rem;
93
- }
94
-
95
- [data-start-dev-overlay-page-counter] {
96
- font-size: 0.875rem;
97
- line-height: 1.25rem;
98
- font-weight: 600;
99
- }
100
-
101
- [data-start-dev-overlay-navbar-left] {
102
- display: flex;
103
- flex-direction: row;
104
- gap: 0.5rem;
105
- }
106
-
107
-
108
- [data-start-dev-overlay-controls] {
109
- display: flex;
110
- flex-direction: row;
111
- align-items: center;
112
- justify-content: center;
113
- gap: 0.25rem;
114
- border-radius: 9999px;
115
- background-color: rgb(249 250 251);
116
- padding: 0.25rem;
117
- }
118
-
119
- [data-start-dev-overlay-version] {
120
- display: flex;
121
- flex-direction: row;
122
- align-items: center;
123
- justify-content: center;
124
- gap: 0.25rem;
125
- border-radius: 9999px;
126
- background-color: rgb(249 250 251);
127
- padding: 0.25rem 0.5rem;
128
- font-size: 0.875rem;
129
- line-height: 1.25rem;
130
- font-weight: 600;
131
- }
132
-
133
- [data-start-dev-overlay-version]>div {
134
- height: 1.5rem;
135
- width: 1.5rem;
136
- }
137
-
138
- [data-start-dev-overlay-version]>div>svg {
139
- height: 1.5rem;
140
- width: 1.5rem;
141
- }
142
-
143
- [data-start-dev-overlay-content] {
144
- display: flex;
145
- flex-direction: column;
146
- gap: 0.75rem;
147
- border-radius: 1.5rem;
148
- background-color: rgb(249 250 251);
149
- padding: 1rem;
150
- }
151
-
152
- [data-start-dev-overlay-error-info] {
153
- display: flex;
154
- flex-direction: column;
155
- gap: 0.25rem;
156
- }
157
-
158
- [data-start-dev-overlay-error-info-name] {
159
- font-weight: 700;
160
- }
161
-
162
- [data-start-dev-overlay-error-info-message] {
163
- font-size: 1.5rem;
164
- line-height: 2rem;
165
- color: rgb(239 68 68);
166
- font-weight: 700;
167
- }
168
-
169
- [data-start-dev-overlay-stack-frames-content] {
170
- display: flex;
171
- flex-direction: column;
172
- gap: 0.75rem;
173
- }
174
-
175
- [data-start-dev-overlay-stack-frames] {
176
- flex: 1 1 0%;
177
- display: flex;
178
- flex-direction: column;
179
- margin: 0;
180
- margin-block: 0;
181
- list-style-type: none;
182
- padding-inline: 0;
183
- max-height: 16rem;
184
- overflow-y: auto;
185
- border-radius: 0.5rem;
186
- }
187
-
188
- [data-start-dev-overlay-stack-frame] {
189
- display: flex;
190
- flex-direction: row;
191
- align-items: center;
192
- justify-content: space-between;
193
- gap: 1rem;
194
- color: rgb(17 24 39);
195
- cursor: default;
196
- user-select: none;
197
- padding-top: 0.5rem;
198
- padding-bottom: 0.5rem;
199
- padding-left: 1rem;
200
- padding-right: 1rem;
201
- font-size: 0.875rem;
202
- line-height: 1.25rem;
203
- outline: none;
204
- }
205
-
206
- [data-start-dev-overlay-stack-frame][tc-active],
207
- [data-start-dev-overlay-stack-frame][tc-selected],
208
- [data-start-dev-overlay-stack-frame]:focus {
209
- background-color: rgb(219 234 254);
210
- color: rgb(30 58 138);
211
- }
212
-
213
- [data-start-dev-overlay-stack-frame-function] {
214
- font-weight: 700;
215
- }
216
-
217
- [data-start-dev-overlay-stack-frame-file] {
218
- white-space: nowrap;
219
- font-size: 0.75rem;
220
- /* 12px */
221
- line-height: 1rem;
222
- /* 16px */
223
- }
224
-
225
- [data-start-dev-overlay-stack-frames-code] {
226
- padding: 0.5rem 1rem;
227
- gap: 0.25rem;
228
- flex: 1 1 0%;
229
- display: flex;
230
- flex-direction: column;
231
- align-items: center;
232
- justify-content: center;
233
- border-radius: 0.5rem;
234
- background-color: rgb(17 24 39);
235
- }
236
-
237
- [data-start-dev-overlay-stack-frames-code-fallback] {
238
- display: flex;
239
- align-items: center;
240
- justify-content: center;
241
- color: rgb(249 250 251);
242
- min-height: 16rem;
243
- font-size: 0.875rem;
244
- line-height: 1.25rem;
245
- }
246
-
247
- [data-start-dev-overlay-stack-frames-code-source] {
248
- font-size: 0.875rem;
249
- line-height: 1.25rem;
250
- color: rgb(249 250 251);
251
- }
252
-
253
- [data-start-dev-overlay-stack-frames-code-container] {
254
- width: 100%;
255
- overflow: hidden;
256
- min-width: 100%;
257
- min-height: 16rem;
258
- border-top-width: 1px;
259
- border-top-style: solid;
260
- border-top-color: rgb(249 250 251);
261
- }
262
-
263
- [data-start-dev-overlay-code-view] {
264
- overflow: auto;
265
- min-width: 100%;
266
- min-height: 16rem;
267
- }
268
-
269
- [data-start-dev-overlay-code-view]>.shiki {
270
- float: left;
271
- min-width: 100%;
272
- overflow-x: auto;
273
- font-size: 0.75rem;
274
- line-height: 1rem;
275
- counter-reset: step;
276
- counter-increment: step calc(var(--dev-overlay-code-view-start, 1) - 1);
277
- background-color: transparent !important;
278
- }
279
-
280
- [data-start-dev-overlay-code-view]>.shiki .line::before {
281
- content: counter(step);
282
- counter-increment: step;
283
- width: 1rem;
284
- margin-right: 1.5rem;
285
- display: inline-block;
286
- text-align: right;
287
- color: rgba(115, 138, 148, .4)
288
- }
289
-
290
- [data-start-dev-overlay-error-line] {
291
- background-color: rgba(239, 68, 68, .4);
292
- }
@@ -1,52 +0,0 @@
1
- import { Component, lazy as solidLazy } from "solid-js";
2
- import { getRequestEvent, isServer } from "solid-js/web";
3
- import { getManifest } from "solid-start:get-manifest";
4
- import { useAssets } from "../server/assets/index.ts";
5
- import { Asset, PageEvent } from "../server/types.ts";
6
-
7
- const assetsById: Record<string, Asset[]> = {};
8
-
9
- const getAssets = async (id: string) => {
10
- if (assetsById[id]) return assetsById[id];
11
-
12
- const manifest = getManifest(import.meta.env.SSR && import.meta.env.DEV ? "ssr" : "client");
13
- const assets = await manifest.getAssets(id);
14
- if (import.meta.env.PROD) assetsById[id] = assets;
15
-
16
- return assets;
17
- };
18
-
19
- const withAssets = function <T extends () => Promise<{ default: Component<any> }>>(fn: T): T {
20
- const wrapper = async () => {
21
- const mod = await fn();
22
-
23
- // This id$$ export is generated by the lazy vite plugin
24
- const id: string = (mod as any).id$$;
25
- if (!id) return mod;
26
-
27
- if (!mod.default) {
28
- console.error(`Module ${id} does not export default`);
29
- return { default: () => [] };
30
- }
31
-
32
- const assets: Asset[] = await getAssets(id);
33
- if (!assets.length) return mod;
34
-
35
- return {
36
- default: (props: any) => {
37
- const { nonce } = getRequestEvent() as PageEvent;
38
- useAssets(assets, nonce);
39
-
40
- return mod.default(props);
41
- },
42
- };
43
- };
44
-
45
- return wrapper as T;
46
- };
47
-
48
- const lazy = !isServer
49
- ? solidLazy
50
- : <T extends Component<any>>(fn: () => Promise<{ default: T }>) => solidLazy(withAssets(fn));
51
-
52
- export default lazy;
@@ -1,10 +0,0 @@
1
- import { getRequestEvent } from "solid-js/web";
2
- import type { ServerFunctionMeta } from "../server/types.ts";
3
-
4
- /**
5
- *
6
- * Read more: https://docs.solidjs.com/solid-start/reference/server/get-server-function-meta
7
- */
8
- export function getServerFunctionMeta(): ServerFunctionMeta | undefined {
9
- return getRequestEvent()?.locals.serverFunctionMeta;
10
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * Creates a debounced function that delays the invocation of a function
3
- */
4
- export const debounce = <T extends (...args: any[]) => void>(cb: T, debounceMs: number) => {
5
- let timeout: NodeJS.Timeout | undefined;
6
- return (...args: Parameters<T>) => {
7
- clearTimeout(timeout);
8
- timeout = setTimeout(() => cb(...args), debounceMs)
9
- }
10
- }
package/src/virtual.d.ts DELETED
@@ -1,27 +0,0 @@
1
- declare module "solid-start:client-vite-manifest" {
2
- export const clientViteManifest: Record<
3
- string,
4
- { css?: Array<string>; file: string; [key: string]: unknown }
5
- >;
6
- }
7
-
8
- interface StartManifest {
9
- getAssets(id: string): Promise<import("./server/assets/render").Asset[]>;
10
- }
11
-
12
- declare module "solid-start:get-client-manifest" {
13
- export const getClientManifest: () => StartManifest;
14
- }
15
-
16
- declare module "solid-start:get-manifest" {
17
- export const getManifest: (target: "client" | "ssr") => StartManifest;
18
- }
19
-
20
- declare module "solid-start:app" {
21
- export default App as import("solid-js").Component;
22
- }
23
-
24
- declare module "solid-start:middleware" {
25
- type MaybeArray<T> = T | Array<T>;
26
- export default Middleware as import("h3").Middleware[];
27
- }
package/tsconfig.json DELETED
@@ -1,24 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ESNext",
4
- "module": "ESNext",
5
- "moduleResolution": "bundler",
6
- "strict": true,
7
- "noUncheckedIndexedAccess": true,
8
- "allowSyntheticDefaultImports": true,
9
- "esModuleInterop": true,
10
- "jsx": "preserve",
11
- "jsxImportSource": "solid-js",
12
- "allowJs": true,
13
- "isolatedModules": true,
14
- "outDir": "./dist",
15
- "declaration": true,
16
- "skipLibCheck": true,
17
- "types": ["vite/client"],
18
- "allowImportingTsExtensions": true,
19
- "rewriteRelativeImportExtensions": true,
20
- "rootDir": "./src",
21
- },
22
- "include": ["env.d.ts", "./src", "./src/env.d.ts"],
23
- "exclude": ["**/*.spec.ts"]
24
- }
package/vitest.config.ts DELETED
@@ -1,9 +0,0 @@
1
- import { defineConfig } from "vitest/config";
2
-
3
- export default defineConfig({
4
- test: {
5
- globals: true,
6
- environment: "node",
7
- mockReset: true,
8
- },
9
- });