@bleedingdev/modern-js-main-doc 3.5.0-ultramodern.3 → 3.5.0-ultramodern.4
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.
|
@@ -197,11 +197,12 @@ The generated `api.client.*` API only exists for loader-materialized `@api/index
|
|
|
197
197
|
## Effect cohort
|
|
198
198
|
|
|
199
199
|
UltraModern-generated workspaces pin the framework-compatible Effect cohort
|
|
200
|
-
through `pnpm-workspace.yaml` overrides. For `3.5.0-ultramodern.
|
|
200
|
+
through `pnpm-workspace.yaml` overrides. For `3.5.0-ultramodern.4`, generated
|
|
201
201
|
apps use:
|
|
202
202
|
|
|
203
203
|
```yaml
|
|
204
204
|
trustPolicyExclude:
|
|
205
|
+
- 'effect@4.0.0-beta.91'
|
|
205
206
|
- '@effect/opentelemetry@4.0.0-beta.91'
|
|
206
207
|
|
|
207
208
|
overrides:
|
|
@@ -212,9 +213,9 @@ overrides:
|
|
|
212
213
|
Do not add a different direct `effect` version in an app package. A mismatched
|
|
213
214
|
Effect beta can fail while building layers or HTTP middleware because runtime
|
|
214
215
|
services come from different package instances. Keep the generated
|
|
215
|
-
`trustPolicyExclude`
|
|
216
|
-
`@effect/opentelemetry` trusted-publisher to provenance metadata
|
|
217
|
-
without weakening UltraModern API architecture checks.
|
|
216
|
+
`trustPolicyExclude` entries with the same Effect cohort; they handle the
|
|
217
|
+
`effect` and `@effect/opentelemetry` trusted-publisher to provenance metadata
|
|
218
|
+
transition without weakening UltraModern API architecture checks.
|
|
218
219
|
|
|
219
220
|
## Contract tests
|
|
220
221
|
|
|
@@ -78,20 +78,20 @@ mise exec -- pnpm check
|
|
|
78
78
|
mise exec -- pnpm build
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
Strict generated API migration requires `3.5.0-ultramodern.
|
|
81
|
+
Strict generated API migration requires `3.5.0-ultramodern.4` or newer.
|
|
82
82
|
`3.4.0-ultramodern.20` and earlier cohorts do not include this full direct
|
|
83
83
|
`api/index.ts` generator, generated `.mts` checks, strict Oxlint boundary rule
|
|
84
84
|
set, Effect cohort overrides, and strict Effect migration command. Agents that
|
|
85
85
|
cannot install that BleedingDev cohort yet should use the local Modern.js
|
|
86
|
-
workspace for migration validation; otherwise pin `3.5.0-ultramodern.
|
|
86
|
+
workspace for migration validation; otherwise pin `3.5.0-ultramodern.4` or
|
|
87
87
|
newer with `--ultramodern-package-version`.
|
|
88
88
|
|
|
89
89
|
Before hand-editing package aliases or generated metadata, run the framework
|
|
90
90
|
migration command from the target workspace:
|
|
91
91
|
|
|
92
92
|
```bash
|
|
93
|
-
pnpm dlx @bleedingdev/modern-js-create@3.5.0-ultramodern.
|
|
94
|
-
migrate-strict-effect --version 3.5.0-ultramodern.
|
|
93
|
+
pnpm dlx @bleedingdev/modern-js-create@3.5.0-ultramodern.4 ultramodern \
|
|
94
|
+
migrate-strict-effect --version 3.5.0-ultramodern.4
|
|
95
95
|
pnpm api:check
|
|
96
96
|
pnpm contract:check
|
|
97
97
|
```
|
|
@@ -108,8 +108,9 @@ Generated strict Effect workspaces pin the compatible Effect cohort with pnpm
|
|
|
108
108
|
overrides: `effect@4.0.0-beta.91` and `@effect/vitest@4.0.0-beta.91`. Do not
|
|
109
109
|
add app-local direct Effect versions that disagree with those overrides. They
|
|
110
110
|
also carry a generated pnpm trust-policy exclusion for
|
|
111
|
-
`@effect/opentelemetry@4.0.0-beta.91` so pnpm
|
|
112
|
-
the Effect beta cohort's trusted-publisher to
|
|
111
|
+
`effect@4.0.0-beta.91` and `@effect/opentelemetry@4.0.0-beta.91` so pnpm
|
|
112
|
+
no-downgrade checks do not block the Effect beta cohort's trusted-publisher to
|
|
113
|
+
provenance metadata transition.
|
|
113
114
|
|
|
114
115
|
Gradual migration means old, unmigrated Modern.js apps can keep their existing
|
|
115
116
|
runtime until they are converted. Once a surface is generated or migrated as
|
|
@@ -195,10 +195,11 @@ export default defineConfig({
|
|
|
195
195
|
## Effect 版本组
|
|
196
196
|
|
|
197
197
|
UltraModern 生成的 workspace 会通过 `pnpm-workspace.yaml` overrides 锁定与框架兼容的
|
|
198
|
-
Effect 版本组。`3.5.0-ultramodern.
|
|
198
|
+
Effect 版本组。`3.5.0-ultramodern.4` 使用:
|
|
199
199
|
|
|
200
200
|
```yaml
|
|
201
201
|
trustPolicyExclude:
|
|
202
|
+
- 'effect@4.0.0-beta.91'
|
|
202
203
|
- '@effect/opentelemetry@4.0.0-beta.91'
|
|
203
204
|
|
|
204
205
|
overrides:
|
|
@@ -208,9 +209,9 @@ overrides:
|
|
|
208
209
|
|
|
209
210
|
不要在应用包里添加不同版本的直接 `effect` 依赖。Effect beta 不一致时,Layer 或 HTTP
|
|
210
211
|
middleware 构建可能因为运行时 service 来自不同包实例而失败。保留生成的
|
|
211
|
-
`trustPolicyExclude` 条目并让它跟随同一个 Effect 版本组;它用于处理
|
|
212
|
-
`@effect/opentelemetry` 从 trusted-publisher metadata 迁移到 provenance
|
|
213
|
-
时的 pnpm no-downgrade 检查。
|
|
212
|
+
`trustPolicyExclude` 条目并让它跟随同一个 Effect 版本组;它用于处理 `effect` 和
|
|
213
|
+
`@effect/opentelemetry` 从 trusted-publisher metadata 迁移到 provenance
|
|
214
|
+
attestation 时的 pnpm no-downgrade 检查。
|
|
214
215
|
|
|
215
216
|
## 契约测试
|
|
216
217
|
|
|
@@ -71,18 +71,18 @@ mise exec -- pnpm check
|
|
|
71
71
|
mise exec -- pnpm build
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
严格生成 API 迁移要求 `3.5.0-ultramodern.
|
|
74
|
+
严格生成 API 迁移要求 `3.5.0-ultramodern.4` 或更新版本。
|
|
75
75
|
`3.4.0-ultramodern.20` 及更早 cohort 还没有这套完整的直接
|
|
76
76
|
`api/index.ts` 生成器、生成的 `.mts` 检查、严格 Oxlint 边界规则、Effect 版本组
|
|
77
77
|
overrides 和严格 Effect 迁移命令。还不能安装该 BleedingDev cohort 的 agent 应使用本地
|
|
78
78
|
Modern.js workspace 做迁移校验;否则用 `--ultramodern-package-version` 固定
|
|
79
|
-
`3.5.0-ultramodern.
|
|
79
|
+
`3.5.0-ultramodern.4` 或更新版本。
|
|
80
80
|
|
|
81
81
|
手写 package alias 或生成 metadata 之前,先在目标 workspace 运行框架迁移命令:
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
|
-
pnpm dlx @bleedingdev/modern-js-create@3.5.0-ultramodern.
|
|
85
|
-
migrate-strict-effect --version 3.5.0-ultramodern.
|
|
84
|
+
pnpm dlx @bleedingdev/modern-js-create@3.5.0-ultramodern.4 ultramodern \
|
|
85
|
+
migrate-strict-effect --version 3.5.0-ultramodern.4
|
|
86
86
|
pnpm api:check
|
|
87
87
|
pnpm contract:check
|
|
88
88
|
```
|
|
@@ -96,9 +96,9 @@ pnpm overrides/trust policy 和 pnpm lockfile。剩余失败就是源码迁移
|
|
|
96
96
|
严格 Effect 生成 workspace 会通过 pnpm overrides 固定兼容版本组:
|
|
97
97
|
`effect@4.0.0-beta.91` 和 `@effect/vitest@4.0.0-beta.91`。不要添加与这些
|
|
98
98
|
overrides 冲突的 app 本地直接 Effect 版本。生成的 pnpm policy 还会为
|
|
99
|
-
`@effect/opentelemetry@4.0.0-beta.91` 添加
|
|
100
|
-
版本组从 trusted-publisher metadata
|
|
101
|
-
no-downgrade 检查误拦截。
|
|
99
|
+
`effect@4.0.0-beta.91` 和 `@effect/opentelemetry@4.0.0-beta.91` 添加
|
|
100
|
+
trust-policy exclusion,避免 Effect beta 版本组从 trusted-publisher metadata
|
|
101
|
+
迁移到 provenance attestation 时被 pnpm no-downgrade 检查误拦截。
|
|
102
102
|
|
|
103
103
|
渐进迁移意味着尚未迁移的旧 Modern.js app 可以保留现有 runtime,直到被转换为
|
|
104
104
|
UltraModern。一个 surface 一旦生成为或迁移为 UltraModern HTTP API,就只能使用
|
package/package.json
CHANGED
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
"modern.js",
|
|
20
20
|
"ultramodern.js"
|
|
21
21
|
],
|
|
22
|
-
"version": "3.5.0-ultramodern.
|
|
22
|
+
"version": "3.5.0-ultramodern.4",
|
|
23
23
|
"publishConfig": {
|
|
24
24
|
"registry": "https://registry.npmjs.org/",
|
|
25
25
|
"access": "public"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"mermaid": "^11.16.0",
|
|
29
|
-
"@modern-js/sandpack-react": "npm:@bleedingdev/modern-js-sandpack-react@3.5.0-ultramodern.
|
|
29
|
+
"@modern-js/sandpack-react": "npm:@bleedingdev/modern-js-sandpack-react@3.5.0-ultramodern.4"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@rsbuild/plugin-sass": "2.0.0",
|