@pitlane/dev 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @pitlane/dev
2
2
 
3
+ ## 0.2.0
4
+
5
+ Target Remix `3.0.0-beta.10`.
6
+
7
+ - Raised the `remix` peer dependency to `^3.0.0-beta.10` (from
8
+ `^3.0.0-beta.5`). Remix beta.6 removed the legacy package-aligned `remix/*`
9
+ import aliases, so beta.5 and earlier are no longer supported.
10
+ - `run()` from `remix/ui` now ships a default frame resolver and takes
11
+ `(src, options)`, so the documented `app/entry.browser.ts` no longer needs a
12
+ hand-written `resolveFrame`. The plugin itself is unchanged.
13
+ - Tested against Vite 8.1 (Rolldown), Vite+ 0.2 (`vp`), and
14
+ `remix@3.0.0-beta.10`.
15
+
16
+ ## 0.1.1
17
+
18
+ No changes to the plugin. First release published through the tokenless
19
+ trusted-publishing pipeline — this version and everything after it carries an
20
+ npm provenance attestation (0.1.0 was published locally while the pipeline was
21
+ bootstrapped).
22
+
3
23
  ## 0.1.0
4
24
 
5
25
  Initial release.
package/README.md CHANGED
@@ -12,7 +12,7 @@ npm install --save-dev @pitlane/dev
12
12
  vp add -D @pitlane/dev
13
13
  ```
14
14
 
15
- Requires `remix@^3.0.0-beta.5` and `vite@>=7` as peers. v0.1.0 is tested against **Vite 8.1** (Rolldown), **Vite+ 0.2** (`vp`), and `remix@3.0.0-beta.5` — the [templates](https://github.com/pitlane-tools/templates) are the continuously tested reference.
15
+ Requires `remix@^3.0.0-beta.10` and `vite@>=7` as peers. Tested against **Vite 8.1** (Rolldown), **Vite+ 0.2** (`vp`), and `remix@3.0.0-beta.10` — the [templates](https://github.com/pitlane-tools/templates) are the continuously tested reference.
16
16
 
17
17
  ## Quick start
18
18
 
@@ -65,10 +65,6 @@ run({
65
65
  let mod = await import(/* @vite-ignore */ moduleUrl);
66
66
  return mod[exportName];
67
67
  },
68
- async resolveFrame(src, signal) {
69
- let response = await fetch(src, { headers: { accept: "text/html" }, signal });
70
- return response.body ?? (await response.text());
71
- },
72
68
  });
73
69
  ```
74
70
 
@@ -88,11 +84,11 @@ remix({
88
84
  });
89
85
  ```
90
86
 
91
- | Option | Type | Default | Purpose |
92
- | -------------------- | ----------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
93
- | `clientEntry` | `string \| false` | `"app/entry.browser"` | Client entry module. Pass `false` for fully server-rendered apps with no hydration. |
94
- | `serverEntry` | `string` | `"app/entry.server"` | Server entry module, built as `dist/ssr/index.js`. |
95
- | `serverEnvironments` | `string[]` | `["ssr"]` | Environment names the `clientEntry()` transform treats as "server". |
87
+ | Option | Type | Default | Purpose |
88
+ | -------------------- | ----------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
89
+ | `clientEntry` | `string \| false` | `"app/entry.browser"` | Client entry module. Pass `false` for fully server-rendered apps with no hydration. |
90
+ | `serverEntry` | `string` | `"app/entry.server"` | Server entry module, built as `dist/ssr/index.js`. |
91
+ | `serverEnvironments` | `string[]` | `["ssr"]` | Environment names the `clientEntry()` transform treats as "server". |
96
92
  | `serverHandler` | `boolean` | `true` | Serve dev requests through your server entry. Set `false` when `@cloudflare/vite-plugin`, `@netlify/vite-plugin`, or `nitro/vite` owns dev-time request handling. |
97
93
 
98
94
  ## The server entry contract
@@ -169,7 +165,14 @@ import { clientEntry, on } from "remix/ui";
169
165
  export const Counter = clientEntry(import.meta.url, handle => {
170
166
  let count = 0;
171
167
  return () => (
172
- <button mix={[on("click", () => { count++; handle.update(); })]}>
168
+ <button
169
+ mix={[
170
+ on("click", () => {
171
+ count++;
172
+ handle.update();
173
+ }),
174
+ ]}
175
+ >
173
176
  Count: <span>{count}</span>
174
177
  </button>
175
178
  );
@@ -282,12 +285,12 @@ dist/
282
285
 
283
286
  ## Compatibility
284
287
 
285
- | Dependency | Tested against |
286
- | ---------- | -------------- |
287
- | `vite` | 8.1.5 |
288
- | `vite-plus`| 0.2.6 |
289
- | `remix` | 3.0.0-beta.5 |
290
- | Node | 24 LTS, 25 |
288
+ | Dependency | Tested against |
289
+ | ----------- | -------------- |
290
+ | `vite` | 8.1.5 |
291
+ | `vite-plus` | 0.2.6 |
292
+ | `remix` | 3.0.0-beta.10 |
293
+ | Node | 24 LTS, 25 |
291
294
 
292
295
  Remix 3 is in beta; each `@pitlane/dev` release records the exact beta it was verified against. Rolldown is not required — the transform runs identically on generic Vite and Vite+.
293
296
 
@@ -299,7 +302,7 @@ Remix 3 is in beta; each `@pitlane/dev` release records the exact beta it was ve
299
302
  // package.json
300
303
  {
301
304
  "devDependencies": { "vite": "npm:@voidzero-dev/vite-plus-core@latest" },
302
- "pnpm": { "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@latest" } }
305
+ "pnpm": { "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@latest" } },
303
306
  }
304
307
  ```
305
308
 
package/dist/index.mjs CHANGED
@@ -201,6 +201,7 @@ function build({ clientEntry, serverEntry }) {
201
201
  };
202
202
  }
203
203
  const RUNTIME_MODULE_ID = "\0pitlane:runtime";
204
+ const RUNTIME_MODULE_FILTER = new RegExp(`^${RUNTIME_MODULE_ID}$`);
204
205
  /**
205
206
  * Resolves `@pitlane/dev/runtime` imports to an inlined copy of the
206
207
  * implementation. The package is a dev dependency: built output must never
@@ -219,7 +220,7 @@ function runtimeInline() {
219
220
  }
220
221
  },
221
222
  load: {
222
- filter: { id: /^\0pitlane:runtime$/ },
223
+ filter: { id: RUNTIME_MODULE_FILTER },
223
224
  handler(id) {
224
225
  if (id === RUNTIME_MODULE_ID) return `export const mergeAssets = ${mergeAssets.toString()};\n`;
225
226
  }
package/package.json CHANGED
@@ -1,7 +1,13 @@
1
1
  {
2
2
  "name": "@pitlane/dev",
3
- "version": "0.1.0",
4
- "description": "remix() \u2014 the Remix 3 Vite plugin: build orchestration, clientEntry() hydration transform, dev server, and preview for any Vite or Vite+ project.",
3
+ "version": "0.2.0",
4
+ "description": "remix() the Remix 3 Vite plugin: build orchestration, clientEntry() hydration transform, dev server, and preview for any Vite or Vite+ project.",
5
+ "keywords": [
6
+ "pitlane",
7
+ "remix",
8
+ "vite",
9
+ "vite-plugin"
10
+ ],
5
11
  "homepage": "https://pitlane.tools/package/dev/",
6
12
  "bugs": {
7
13
  "url": "https://github.com/pitlane-tools/pitlane/issues"
@@ -13,12 +19,6 @@
13
19
  "url": "git+https://github.com/pitlane-tools/pitlane.git",
14
20
  "directory": "packages/dev"
15
21
  },
16
- "keywords": [
17
- "remix",
18
- "vite",
19
- "vite-plugin",
20
- "pitlane"
21
- ],
22
22
  "files": [
23
23
  "dist",
24
24
  "CHANGELOG.md"
@@ -46,19 +46,19 @@
46
46
  "magic-string": "^0.30.21",
47
47
  "oxc-parser": "^0.141.0"
48
48
  },
49
- "peerDependencies": {
50
- "remix": "^3.0.0-beta.5",
51
- "vite": ">=7.0.0"
52
- },
53
49
  "devDependencies": {
54
50
  "@cloudflare/vite-plugin": "^1.31.0",
55
51
  "@types/node": "^25.5.0",
56
- "remix": "3.0.0-beta.5",
52
+ "remix": "3.0.0-beta.10",
57
53
  "typescript": "^7.0.2",
58
54
  "vite": "^8.1.5",
59
55
  "vite-plus": "^0.2.6",
60
56
  "wrangler": "^4.114.0"
61
57
  },
58
+ "peerDependencies": {
59
+ "remix": "^3.0.0-beta.10",
60
+ "vite": ">=7.0.0"
61
+ },
62
62
  "engines": {
63
63
  "node": "^20.19.0 || >=22.12.0"
64
64
  }