Skip to content

Commit 584271f

Browse files
authored
Merge pull request #7819 from QwikDev/v2-merge-main
chore: merge main into v2
2 parents 95e34f8 + d8343a2 commit 584271f

File tree

91 files changed

+6265
-4354
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+6265
-4354
lines changed

.devcontainer/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM cimg/rust:1.73-node
1+
FROM cimg/rust:1.88.0-node
22

33
RUN rustup --version; \
44
cargo --version; \

.husky/pre-commit

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/sh
2+
3+
if [ "$SKIP_SIMPLE_GIT_HOOKS" = "1" ]; then
4+
echo "[INFO] SKIP_SIMPLE_GIT_HOOKS is set to 1, skipping hook."
5+
exit 0
6+
fi
7+
8+
if [ -f "$SIMPLE_GIT_HOOKS_RC" ]; then
9+
. "$SIMPLE_GIT_HOOKS_RC"
10+
fi
11+
12+
pnpm pretty-quick --staged

CONTRIBUTING.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ You need to have these tools up and running in your local machine:
6969
- one of the following:
7070
- [Nix](https://nixos.org)
7171
- [Docker](https://www.docker.com/)
72-
- Locally installed NodeJS v18+ and optionally Rust
72+
- Locally installed NodeJS v22+ and optionally Rust
7373

7474
#### Nix
7575

@@ -95,6 +95,15 @@ Alternatively you can use [devcontainers/cli](https://github.com/devcontainers/c
9595
- In your terminal navigate to the Qwik's project root directory.
9696
- Then run `devcontainer up --workspace-folder .`. This command will start a Docker container with all required environment dependencies.
9797

98+
> [!TIP]
99+
> If you are using Podman, be sure to update the [VSCode dev container settings](https://code.visualstudio.com/remote/advancedcontainers/docker-options#_podman). Don't forget to allocate enough resources to the Podman machine to avoid slow builds.
100+
101+
> [!NOTE]
102+
> You may run into an `EEXISTS` error when the Dev Container runs the "updateContentCommand" script. This may happen if pnpm gets installed automatically during the setup process. You can ignore the error because the container will be setup correctly, then run `pnpm install` in the project root once the container is connected and the terminal is available.
103+
104+
> [!CAUTION]
105+
> The Dev Container may not work on Windows properly due to a difference with Windows container host volume permissions and ownership. It's recommended to use Mac or Linux instead, or configure your environment to build the project without Dev Containers.
106+
98107
##### Using development container without Dev Containers and VSCode
99108

100109
If you would like to make use of the development container solution, but don't use VSCode or Dev Containers, you still can do so, by following steps:
@@ -145,7 +154,7 @@ Furthermore, to build the optimizer you optionally need Rust.
145154

146155
1. Make sure [Rust](https://www.rust-lang.org/tools/install) is installed.
147156
2. Install [wasm-pack](https://rustwasm.github.io/wasm-pack/installer/) with `cargo install wasm-pack` .
148-
3. Node version >= `18`.
157+
3. Node version >= `22`.
149158
4. Make sure you have [pnpm](https://pnpm.io/installation) installed.
150159
5. run `pnpm install`
151160

@@ -164,6 +173,9 @@ pnpm install && pnpm build.local
164173

165174
If you want to work on the Rust code, use `build.full` instead of `build.local`.
166175

176+
> [!NOTE]
177+
> After running `build.local`, you may see Git diffs for API-related files and `JSXNode`. You should run the `api.update` script to resolve them.
178+
167179
### Fast build
168180

169181
This will build only Qwik and Qwik Router and their types. This is not enough to run the docs.
@@ -320,7 +332,6 @@ For larger PRs, it would really help if you follow these guidelines.
320332
For example: `feat(qwik-router): confetti animations` or `chore: pnpm api.update`
321333

322334
Common types include:
323-
324335
- feat: A new feature
325336
- fix: A bug fix
326337
- docs: Documentation only changes

e2e/qwik-cli-e2e/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ E2E project does the following internally:
1313
0. Vitest is configured to run a setup function once **PRIOR TO ALL** tests. During the setup `@qwik.dev/core`, `@qwik.dev/router` and `eslint-plugin-qwik` packages will be packed with `pnpm pack` Those will be used at a step 2 for every test. Tarballs are located in `temp/tarballs` folder within this repo. It is assumed that packages are built before E2E is executed.
1414

1515
1. Simulates `npm create qwik` locally using direct command `node packages/create-qwik/create-qwik.cjs playground {outputDir}`
16-
1716
- By default `outputDir` is an auto-generated one using `tmp` npm package. The application that is created here will be removed after the test is executed
1817
- It is possible to install into custom folder using environment variable `TEMP_E2E_PATH`. Here's how the command would look like in this case:
1918
- with absolute path `TEMP_E2E_PATH=/Users/name/projects/tests pnpm run test.e2e.cli`

package.json

Lines changed: 55 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -68,87 +68,103 @@
6868
],
6969
"range": ""
7070
}
71+
],
72+
"sortExports": [
73+
"types",
74+
"node-addons",
75+
"node",
76+
"browser",
77+
"module",
78+
"import",
79+
"require",
80+
"svelte",
81+
"development",
82+
"production",
83+
"script",
84+
"min",
85+
"default"
7186
]
7287
}
7388
},
7489
"dependencies": {
75-
"esbuild-plugin-raw": "^0.1.8"
90+
"esbuild-plugin-raw": "^0.2.0"
7691
},
7792
"devDependencies": {
78-
"@changesets/cli": "2.29.3",
93+
"@changesets/cli": "2.29.5",
7994
"@changesets/get-github-info": "0.6.0",
8095
"@changesets/types": "6.1.0",
8196
"@clack/prompts": "0.7.0",
82-
"@eslint/js": "9.25.1",
83-
"@mdx-js/mdx": "3.0.1",
84-
"@microsoft/api-documenter": "7.26.22",
85-
"@microsoft/api-extractor": "7.52.4",
97+
"@eslint/js": "9.33.0",
98+
"@mdx-js/mdx": "3.1.0",
99+
"@microsoft/api-documenter": "7.26.31",
100+
"@microsoft/api-extractor": "7.52.10",
86101
"@napi-rs/cli": "2.18.4",
87102
"@napi-rs/triples": "1.2.0",
88103
"@node-rs/helper": "1.6.0",
89104
"@octokit/action": "6.1.0",
90105
"@playwright/test": "1.50.1",
91106
"@qwik.dev/core": "workspace:*",
92-
"@qwik.dev/partytown": "0.11.1",
107+
"@qwik.dev/partytown": "0.11.2",
93108
"@qwik.dev/router": "workspace:*",
94109
"@types/brotli": "1.3.4",
95-
"@types/bun": "1.1.6",
110+
"@types/bun": "1.2.20",
96111
"@types/cross-spawn": "6.0.6",
97-
"@types/express": "4.17.21",
98-
"@types/node": "24.0.4",
99-
"@types/path-browserify": "1.0.2",
112+
"@types/express": "5.0.3",
113+
"@types/node": "24.2.1",
114+
"@types/path-browserify": "1.0.3",
100115
"@types/prompts": "2.4.9",
101-
"@types/react": "18.3.3",
102-
"@types/semver": "7.5.8",
116+
"@types/react": "19.1.10",
117+
"@types/semver": "7.7.0",
103118
"@types/tmp": "0.2.6",
104119
"@types/which-pm-runs": "1.0.2",
105-
"@vitejs/plugin-basic-ssl": "2.0.0",
120+
"@vitejs/plugin-basic-ssl": "2.1.0",
106121
"@vitest/coverage-v8": "3.2.4",
107122
"all-contributors-cli": "6.26.1",
108123
"brotli": "1.3.3",
109124
"create-qwik": "workspace:*",
110-
"cross-spawn": "7.0.3",
125+
"cross-spawn": "7.0.6",
111126
"csstype": "3.1.3",
112-
"dotenv": "16.4.5",
113-
"esbuild": "0.25.5",
114-
"eslint": "9.25.1",
115-
"eslint-plugin-import": "2.29.1",
127+
"dotenv": "16.5.0",
128+
"esbuild": "0.25.8",
129+
"eslint": "9.33.0",
130+
"eslint-plugin-import": "2.32.0",
116131
"eslint-plugin-no-only-tests": "3.3.0",
117132
"eslint-plugin-qwik": "workspace:*",
118133
"execa": "8.0.1",
119134
"express": "4.20.0",
120-
"globals": "16.0.0",
135+
"globals": "16.3.0",
121136
"install": "0.13.0",
122-
"memfs": "4.14.0",
137+
"memfs": "4.34.0",
123138
"monaco-editor": "0.45.0",
124139
"mri": "1.2.0",
125140
"path-browserify": "1.0.1",
126-
"prettier": "3.5.3",
127-
"prettier-plugin-jsdoc": "1.3.2",
128-
"pretty-quick": "4.0.0",
141+
"prettier": "3.6.2",
142+
"prettier-plugin-jsdoc": "1.3.3",
143+
"prettier-plugin-tailwindcss": "0.6.14",
144+
"pretty-quick": "4.2.2",
129145
"prompts": "2.4.2",
130-
"rollup": "4.44.0",
131-
"semver": "7.6.3",
132-
"simple-git-hooks": "2.11.1",
146+
"rollup": ">= 4.44.0",
147+
"semver": "7.7.2",
148+
"simple-git-hooks": "2.13.1",
133149
"snoop": "1.0.4",
134150
"source-map": "0.7.4",
135151
"svgo": "3.3.2",
136-
"syncpack": "12.3.3",
152+
"syncpack": "13.0.4",
137153
"terser": "5.43.1",
138154
"tmp": "0.2.3",
139155
"tree-kill": "1.2.2",
140-
"tsx": "4.19.2",
156+
"tsx": "4.20.3",
141157
"typescript": "5.8.3",
142-
"typescript-eslint": "8.26.1",
143-
"vfile": "6.0.2",
144-
"vite": "7.0.0",
158+
"typescript-eslint": "8.39.1",
159+
"vfile": "6.0.3",
160+
"vite": "7.1.0",
145161
"vite-imagetools": "7.1.0",
146162
"vite-plugin-dts": "4.5.4",
147163
"vite-tsconfig-paths": "5.1.4",
148164
"vitest": "3.2.4",
149165
"watchlist": "0.3.1",
150166
"which-pm-runs": "1.1.0",
151-
"zod": "3.22.4"
167+
"zod": "3.25.48"
152168
},
153169
"engines": {
154170
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
@@ -159,13 +175,14 @@
159175
"packageManager": "[email protected]",
160176
"pnpm": {
161177
"overrides": {
162-
"prettier": "3.5.3",
178+
"@builder.io/qwik": "npm:@qwik.dev/core@*",
179+
"@builder.io/qwik-city": "npm:@qwik.dev/router",
180+
"prettier": "3.6.2",
163181
"typescript": "5.8.3",
164-
"vfile": "6.0.2"
182+
"vfile": "6.0.3"
165183
},
166184
"patchedDependencies": {
167-
168-
"@auth/qwik": "patches/@auth__qwik.patch"
185+
169186
}
170187
},
171188
"private": true,
@@ -177,7 +194,6 @@
177194
"build.cli": "tsx --require ./scripts/runBefore.ts scripts/index.ts --cli --dev",
178195
"build.cli.prod": "tsx --require ./scripts/runBefore.ts scripts/index.ts --cli",
179196
"build.core": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwik --insights --qwikrouter --api --platform-binding",
180-
"build.router": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwikrouter --api",
181197
"build.eslint": "tsx --require ./scripts/runBefore.ts scripts/index.ts --eslint",
182198
"build.full": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --tsc-docs --qwik --insights --supabaseauthhelpers --api --eslint --qwikrouter --qwikworker --qwikreact --cli --platform-binding --wasm",
183199
"build.local": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --tsc-docs --qwik --insights --supabaseauthhelpers --api --eslint --qwikrouter --qwikworker --qwikreact --cli --platform-binding-wasm-copy",
@@ -187,6 +203,7 @@
187203
"build.platform": "tsx --require ./scripts/runBefore.ts scripts/index.ts --platform-binding",
188204
"build.platform.copy": "tsx --require ./scripts/runBefore.ts scripts/index.ts --platform-binding-wasm-copy",
189205
"build.qwik-router": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwikrouter",
206+
"build.router": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwikrouter --api",
190207
"build.validate": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwik --api --eslint --qwikrouter --platform-binding --wasm --validate",
191208
"build.vite": "tsx --require ./scripts/runBefore.ts scripts/index.ts --tsc --qwik --insights --api --qwikrouter --eslint --platform-binding-wasm-copy",
192209
"build.wasm": "tsx --require ./scripts/runBefore.ts scripts/index.ts --wasm",

packages/create-qwik/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"bugs": "https://github.com/QwikDev/qwik/issues",
88
"devDependencies": {
99
"@clack/prompts": "0.7.0",
10-
"@types/yargs": "17.0.32",
10+
"@types/yargs": "17.0.33",
1111
"kleur": "4.1.5",
1212
"yargs": "17.7.2"
1313
},

packages/docs/package.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,53 +7,53 @@
77
"devDependencies": {
88
"@algolia/autocomplete-core": "1.7.4",
99
"@algolia/client-search": "4.14.3",
10-
"@builder.io/qwik": "1.14.1",
11-
"@emotion/react": "11.13.0",
12-
"@emotion/styled": "11.13.0",
10+
"@builder.io/qwik": "npm:@qwik.dev/core@*",
11+
"@emotion/react": "11.14.0",
12+
"@emotion/styled": "11.14.1",
1313
"@modular-forms/qwik": "0.23.1",
1414
"@mui/material": "5.16.4",
1515
"@mui/system": "5.16.4",
1616
"@mui/x-data-grid": "6.20.4",
1717
"@qwik-ui/headless": "0.6.7",
1818
"@qwik.dev/core": "workspace:*",
19-
"@qwik.dev/partytown": "0.11.1",
19+
"@qwik.dev/partytown": "0.11.2",
2020
"@qwik.dev/react": "workspace:*",
2121
"@qwik.dev/router": "workspace:*",
22-
"@shikijs/colorized-brackets": "3.1.0",
23-
"@shikijs/rehype": "3.1.0",
24-
"@shikijs/transformers": "3.1.0",
25-
"@shikijs/types": "3.1.0",
26-
"@supabase/supabase-js": "2.49.4",
27-
"@tailwindcss/vite": "4.0.12",
28-
"@types/leaflet": "1.9.12",
29-
"@types/prismjs": "1.26.4",
30-
"@types/react": "18.3.3",
22+
"@shikijs/colorized-brackets": "3.9.1",
23+
"@shikijs/rehype": "3.9.1",
24+
"@shikijs/transformers": "3.9.1",
25+
"@shikijs/types": "3.9.1",
26+
"@supabase/supabase-js": "2.53.0",
27+
"@tailwindcss/vite": "4.1.11",
28+
"@types/leaflet": "1.9.20",
29+
"@types/prismjs": "1.26.5",
30+
"@types/react": "19.1.10",
3131
"@types/react-dom": "18.3.0",
3232
"@unpic/core": "0.0.42",
3333
"@unpic/qwik": "0.0.38",
3434
"algoliasearch": "4.16.0",
3535
"fflate": "0.8.2",
3636
"gray-matter": "4.0.3",
3737
"leaflet": "1.9.4",
38-
"magic-string": "0.30.11",
38+
"magic-string": "0.30.17",
3939
"openai": "3.3.0",
40-
"prettier": "3.5.3",
40+
"prettier": "3.6.2",
4141
"prism-themes": "1.9.0",
42-
"prismjs": "1.29.0",
42+
"prismjs": "1.30.0",
4343
"puppeteer": "22.13.1",
4444
"qwik-image": "0.0.16",
4545
"react": "18.3.1",
4646
"react-dom": "18.3.1",
47-
"shiki": "3.1.0",
47+
"shiki": "3.9.1",
4848
"snarkdown": "2.0.0",
49-
"tailwindcss": "4.0.12",
49+
"tailwindcss": "4.1.11",
5050
"terser": "5.43.1",
5151
"tsm": "2.3.0",
5252
"typescript": "5.8.3",
5353
"undici": "*",
5454
"valibot": "0.33.3",
55-
"vite": "7.0.0",
56-
"vite-plugin-inspect": "0.8.5",
55+
"vite": "7.1.0",
56+
"vite-plugin-inspect": "11.3.2",
5757
"vite-tsconfig-paths": "5.1.4",
5858
"wrangler": "3.65.1"
5959
},

packages/docs/src/repl/repl.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,7 @@
341341
}
342342

343343
.detail-options select {
344+
background-color: var(--repl-tab-bg-color);
344345
border: 1px solid var(--repl-tab-bg-color);
345346
border-radius: 3px;
346347
}

packages/docs/src/repl/repl.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ const getDependencies = (input: ReplAppInput) => {
185185
`${prefix}server.cjs`,
186186
`/bindings/qwik.wasm.cjs`,
187187
`/bindings/qwik_wasm_bg.wasm`,
188+
`${prefix}qwikloader.js`,
189+
`${prefix}preloader.mjs`,
188190
]) {
189191
bundles[p] = getNpmCdnUrl(bundled, QWIK_PKG_NAME, input.version, p);
190192
}

packages/docs/src/routes/(ecosystem)/ecosystem/index.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,6 @@ export default component$(() => {
234234
thumbnailBg={true}
235235
/>
236236
))}
237-
<AddIntegrationItem
238-
title="Add A Showcase"
239-
href="https://github.com/QwikDev/qwik/edit/main/packages/docs/scripts/pages.json"
240-
/>
241237
</ul>
242238
</section>
243239

0 commit comments

Comments
 (0)