@octanejs/rsbuild-plugin 0.1.42 → 0.1.43

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/README.md CHANGED
@@ -108,8 +108,17 @@ export default defineConfig({
108
108
  ```
109
109
 
110
110
  You can also pass `pluginOctane({ strong: true })`. The plugin option takes
111
- priority over the app config. Dependencies are unaffected unless they begin a
112
- module with `"use strong"`.
111
+ priority over the app config. Strong mode opts application code into immutable
112
+ render snapshots and pure render projections. The compiler rejects detectable
113
+ state, ref, Effect Event, snapshot-mutation, and nondeterministic-render
114
+ violations; production client builds condition memoization on the author's
115
+ assertion that every user-authored render operation is pure for its witnessed
116
+ inputs. Callee shape and `use*` spelling do not disable that optimization.
117
+
118
+ Dependencies retain compatibility behavior unless they begin a module with
119
+ `"use strong"`. Strong analysis is bounded: an unknown call is assumed pure, so
120
+ imported live accessors do not become immutable merely because their caller opts
121
+ in. Keep such consumers in compatibility mode or pass an actual snapshot.
113
122
 
114
123
  App mode currently serves from the root path and uses Rsbuild's default asset
115
124
  prefix. Keep `server.base` at `/` and `output.assetPrefix` at `auto` or `/`; for
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@octanejs/rsbuild-plugin",
3
- "version": "0.1.42",
3
+ "version": "0.1.43",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "engines": {
@@ -48,12 +48,12 @@
48
48
  }
49
49
  },
50
50
  "dependencies": {
51
- "@octanejs/app-core": "0.0.43",
52
- "@octanejs/rspack-plugin": "0.1.42"
51
+ "@octanejs/app-core": "0.0.44",
52
+ "@octanejs/rspack-plugin": "0.1.43"
53
53
  },
54
54
  "peerDependencies": {
55
55
  "@rsbuild/core": "^2.0.0",
56
- "octane": "0.1.47"
56
+ "octane": "0.1.48"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@rsbuild/core": "^2.1.6",
@@ -63,6 +63,6 @@
63
63
  "playwright": "^1.61.1",
64
64
  "type-fest": "^5.8.0",
65
65
  "vitest": "^4.1.10",
66
- "octane": "0.1.47"
66
+ "octane": "0.1.48"
67
67
  }
68
68
  }
package/src/project.js CHANGED
@@ -106,6 +106,7 @@ function maskNonCode(source) {
106
106
  * @param {string} id
107
107
  */
108
108
  function ownsServerModule(source, id) {
109
+ if (!source.includes('module') || !source.includes('server')) return false;
109
110
  if (!SERVER_MODULE_CANDIDATE.test(maskNonCode(source))) return false;
110
111
  const compiled = compile(source, id, { mode: 'server' });
111
112
  return COMPILED_SERVER_NAMESPACE.test(maskNonCode(compiled.code));
package/types/index.d.ts CHANGED
@@ -28,8 +28,9 @@ export interface OctaneRsbuildPluginOptions {
28
28
  /** Enable component profiling in the browser environment. */
29
29
  profile?: boolean;
30
30
  /**
31
- * Override `compiler.strong` for this integration. Strong mode applies to
32
- * project-owned modules; dependencies can opt in with `"use strong"`.
31
+ * Override `compiler.strong` for this integration. Strong asserts pure
32
+ * immutable-snapshot renders in project-owned modules; dependencies can opt
33
+ * in with `"use strong"`.
33
34
  */
34
35
  strong?: boolean;
35
36
  /**