@bleedingdev/modern-js-create 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.
- package/README.md +6 -5
- package/dist/cjs/ultramodern-tooling/commands.cjs +14 -7
- package/dist/esm/ultramodern-tooling/commands.js +14 -7
- package/dist/esm-node/ultramodern-tooling/commands.js +14 -7
- package/package.json +3 -3
- package/template-workspace/README.md.handlebars +5 -4
- package/template-workspace/pnpm-workspace.yaml.handlebars +1 -0
package/README.md
CHANGED
|
@@ -193,8 +193,8 @@ For strict Effect API migrations, update generated package metadata and Modern
|
|
|
193
193
|
package aliases through the framework command before hand-editing app code:
|
|
194
194
|
|
|
195
195
|
```bash
|
|
196
|
-
pnpm dlx @bleedingdev/modern-js-create@3.5.0-ultramodern.
|
|
197
|
-
migrate-strict-effect --version 3.5.0-ultramodern.
|
|
196
|
+
pnpm dlx @bleedingdev/modern-js-create@3.5.0-ultramodern.4 ultramodern \
|
|
197
|
+
migrate-strict-effect --version 3.5.0-ultramodern.4
|
|
198
198
|
pnpm api:check
|
|
199
199
|
pnpm contract:check
|
|
200
200
|
pnpm check
|
|
@@ -212,9 +212,10 @@ your back. If `pnpm api:check` still fails, migrate the source to
|
|
|
212
212
|
Generated strict Effect workspaces pin the compatible Effect cohort through
|
|
213
213
|
`pnpm-workspace.yaml` overrides: `effect@4.0.0-beta.91` and
|
|
214
214
|
`@effect/vitest@4.0.0-beta.91`. The generated pnpm policy also excludes the
|
|
215
|
-
known `@effect/opentelemetry@4.0.0-beta.91`
|
|
216
|
-
|
|
217
|
-
update the framework cohort when the runtime
|
|
215
|
+
known `effect@4.0.0-beta.91` and `@effect/opentelemetry@4.0.0-beta.91`
|
|
216
|
+
trusted-publisher to provenance transitions from no-downgrade checks. Do not
|
|
217
|
+
override those in app packages; update the framework cohort when the runtime
|
|
218
|
+
moves.
|
|
218
219
|
|
|
219
220
|
Use `--ultramodern-package-source=install` for published cohort proof and pin a
|
|
220
221
|
specific release with `--ultramodern-package-version` when CI must prove an
|
|
@@ -229,6 +229,10 @@ const generatedToolingDependencyPins = new Map([
|
|
|
229
229
|
versions_cjs_namespaceObject.ZEPHYR_RSPACK_PLUGIN_VERSION
|
|
230
230
|
]
|
|
231
231
|
]);
|
|
232
|
+
const strictEffectTrustPolicyExclusions = [
|
|
233
|
+
`effect@${versions_cjs_namespaceObject.EFFECT_VERSION}`,
|
|
234
|
+
`@effect/opentelemetry@${versions_cjs_namespaceObject.EFFECT_VERSION}`
|
|
235
|
+
];
|
|
232
236
|
function updateGeneratedToolingDependencies(packageJson) {
|
|
233
237
|
let changed = false;
|
|
234
238
|
for (const section of [
|
|
@@ -360,10 +364,6 @@ function updateGeneratedPnpmWorkspacePolicy(workspaceRoot) {
|
|
|
360
364
|
[
|
|
361
365
|
/^ {2}effect: .+$/mu,
|
|
362
366
|
` effect: ${versions_cjs_namespaceObject.EFFECT_VERSION}`
|
|
363
|
-
],
|
|
364
|
-
[
|
|
365
|
-
/^ {2}- '@effect\/opentelemetry@[^']+'$/mu,
|
|
366
|
-
` - '@effect/opentelemetry@${versions_cjs_namespaceObject.EFFECT_VERSION}'`
|
|
367
367
|
]
|
|
368
368
|
];
|
|
369
369
|
for (const [pattern, replacement] of replacements){
|
|
@@ -371,9 +371,16 @@ function updateGeneratedPnpmWorkspacePolicy(workspaceRoot) {
|
|
|
371
371
|
source = result.source;
|
|
372
372
|
changed = result.changed || changed;
|
|
373
373
|
}
|
|
374
|
-
const
|
|
375
|
-
|
|
376
|
-
|
|
374
|
+
for (const item of strictEffectTrustPolicyExclusions){
|
|
375
|
+
const packageName = item.slice(0, item.lastIndexOf('@'));
|
|
376
|
+
const escapedPackageName = packageName.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
|
|
377
|
+
const currentVersion = replaceYamlLine(source, new RegExp(`^ {2}- '${escapedPackageName}@[^']+'$`, 'mu'), ` - '${item}'`);
|
|
378
|
+
source = currentVersion.source;
|
|
379
|
+
changed = currentVersion.changed || changed;
|
|
380
|
+
const trustPolicyExclude = ensureYamlListItem(source, 'trustPolicyExclude', item);
|
|
381
|
+
source = trustPolicyExclude.source;
|
|
382
|
+
changed = trustPolicyExclude.changed || changed;
|
|
383
|
+
}
|
|
377
384
|
if (changed) external_node_fs_default().writeFileSync(workspaceFile, source, 'utf-8');
|
|
378
385
|
return changed;
|
|
379
386
|
}
|
|
@@ -182,6 +182,10 @@ const generatedToolingDependencyPins = new Map([
|
|
|
182
182
|
ZEPHYR_RSPACK_PLUGIN_VERSION
|
|
183
183
|
]
|
|
184
184
|
]);
|
|
185
|
+
const strictEffectTrustPolicyExclusions = [
|
|
186
|
+
`effect@${EFFECT_VERSION}`,
|
|
187
|
+
`@effect/opentelemetry@${EFFECT_VERSION}`
|
|
188
|
+
];
|
|
185
189
|
function updateGeneratedToolingDependencies(packageJson) {
|
|
186
190
|
let changed = false;
|
|
187
191
|
for (const section of [
|
|
@@ -313,10 +317,6 @@ function updateGeneratedPnpmWorkspacePolicy(workspaceRoot) {
|
|
|
313
317
|
[
|
|
314
318
|
/^ {2}effect: .+$/mu,
|
|
315
319
|
` effect: ${EFFECT_VERSION}`
|
|
316
|
-
],
|
|
317
|
-
[
|
|
318
|
-
/^ {2}- '@effect\/opentelemetry@[^']+'$/mu,
|
|
319
|
-
` - '@effect/opentelemetry@${EFFECT_VERSION}'`
|
|
320
320
|
]
|
|
321
321
|
];
|
|
322
322
|
for (const [pattern, replacement] of replacements){
|
|
@@ -324,9 +324,16 @@ function updateGeneratedPnpmWorkspacePolicy(workspaceRoot) {
|
|
|
324
324
|
source = result.source;
|
|
325
325
|
changed = result.changed || changed;
|
|
326
326
|
}
|
|
327
|
-
const
|
|
328
|
-
|
|
329
|
-
|
|
327
|
+
for (const item of strictEffectTrustPolicyExclusions){
|
|
328
|
+
const packageName = item.slice(0, item.lastIndexOf('@'));
|
|
329
|
+
const escapedPackageName = packageName.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
|
|
330
|
+
const currentVersion = replaceYamlLine(source, new RegExp(`^ {2}- '${escapedPackageName}@[^']+'$`, 'mu'), ` - '${item}'`);
|
|
331
|
+
source = currentVersion.source;
|
|
332
|
+
changed = currentVersion.changed || changed;
|
|
333
|
+
const trustPolicyExclude = ensureYamlListItem(source, 'trustPolicyExclude', item);
|
|
334
|
+
source = trustPolicyExclude.source;
|
|
335
|
+
changed = trustPolicyExclude.changed || changed;
|
|
336
|
+
}
|
|
330
337
|
if (changed) node_fs.writeFileSync(workspaceFile, source, 'utf-8');
|
|
331
338
|
return changed;
|
|
332
339
|
}
|
|
@@ -183,6 +183,10 @@ const generatedToolingDependencyPins = new Map([
|
|
|
183
183
|
ZEPHYR_RSPACK_PLUGIN_VERSION
|
|
184
184
|
]
|
|
185
185
|
]);
|
|
186
|
+
const strictEffectTrustPolicyExclusions = [
|
|
187
|
+
`effect@${EFFECT_VERSION}`,
|
|
188
|
+
`@effect/opentelemetry@${EFFECT_VERSION}`
|
|
189
|
+
];
|
|
186
190
|
function updateGeneratedToolingDependencies(packageJson) {
|
|
187
191
|
let changed = false;
|
|
188
192
|
for (const section of [
|
|
@@ -314,10 +318,6 @@ function updateGeneratedPnpmWorkspacePolicy(workspaceRoot) {
|
|
|
314
318
|
[
|
|
315
319
|
/^ {2}effect: .+$/mu,
|
|
316
320
|
` effect: ${EFFECT_VERSION}`
|
|
317
|
-
],
|
|
318
|
-
[
|
|
319
|
-
/^ {2}- '@effect\/opentelemetry@[^']+'$/mu,
|
|
320
|
-
` - '@effect/opentelemetry@${EFFECT_VERSION}'`
|
|
321
321
|
]
|
|
322
322
|
];
|
|
323
323
|
for (const [pattern, replacement] of replacements){
|
|
@@ -325,9 +325,16 @@ function updateGeneratedPnpmWorkspacePolicy(workspaceRoot) {
|
|
|
325
325
|
source = result.source;
|
|
326
326
|
changed = result.changed || changed;
|
|
327
327
|
}
|
|
328
|
-
const
|
|
329
|
-
|
|
330
|
-
|
|
328
|
+
for (const item of strictEffectTrustPolicyExclusions){
|
|
329
|
+
const packageName = item.slice(0, item.lastIndexOf('@'));
|
|
330
|
+
const escapedPackageName = packageName.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
|
|
331
|
+
const currentVersion = replaceYamlLine(source, new RegExp(`^ {2}- '${escapedPackageName}@[^']+'$`, 'mu'), ` - '${item}'`);
|
|
332
|
+
source = currentVersion.source;
|
|
333
|
+
changed = currentVersion.changed || changed;
|
|
334
|
+
const trustPolicyExclude = ensureYamlListItem(source, 'trustPolicyExclude', item);
|
|
335
|
+
source = trustPolicyExclude.source;
|
|
336
|
+
changed = trustPolicyExclude.changed || changed;
|
|
337
|
+
}
|
|
331
338
|
if (changed) node_fs.writeFileSync(workspaceFile, source, 'utf-8');
|
|
332
339
|
return changed;
|
|
333
340
|
}
|
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=20"
|
|
23
23
|
},
|
|
24
|
-
"version": "3.5.0-ultramodern.
|
|
24
|
+
"version": "3.5.0-ultramodern.4",
|
|
25
25
|
"types": "./dist/types/index.d.ts",
|
|
26
26
|
"main": "./dist/esm-node/index.js",
|
|
27
27
|
"bin": {
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"@modern-js/codesmith": "2.6.9",
|
|
78
78
|
"oxfmt": "0.56.0",
|
|
79
79
|
"ultracite": "7.8.3",
|
|
80
|
-
"@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.5.0-ultramodern.
|
|
80
|
+
"@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.5.0-ultramodern.4"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@rslib/core": "0.23.1",
|
|
@@ -99,6 +99,6 @@
|
|
|
99
99
|
"test": "rm -rf dist && rslib build -c rslibconfig.mts && rstest --passWithNoTests"
|
|
100
100
|
},
|
|
101
101
|
"ultramodern": {
|
|
102
|
-
"frameworkVersion": "3.5.0-ultramodern.
|
|
102
|
+
"frameworkVersion": "3.5.0-ultramodern.4"
|
|
103
103
|
}
|
|
104
104
|
}
|
|
@@ -170,14 +170,15 @@ Generated pnpm overrides pin the framework-compatible Effect cohort. Keep
|
|
|
170
170
|
`effect` and `@effect/vitest` aligned with `pnpm-workspace.yaml`; do not add
|
|
171
171
|
new direct package-level Effect versions unless the whole UltraModern cohort is
|
|
172
172
|
upgraded. The generated pnpm trust policy intentionally excludes the matching
|
|
173
|
-
`@effect/opentelemetry` cohort
|
|
174
|
-
beta publishes move from trusted-publisher metadata to
|
|
173
|
+
`effect` and `@effect/opentelemetry` cohort packages from no-downgrade checks
|
|
174
|
+
while Effect's beta publishes move from trusted-publisher metadata to
|
|
175
|
+
provenance attestations.
|
|
175
176
|
|
|
176
177
|
For older generated workspaces, run the framework migration command first:
|
|
177
178
|
|
|
178
179
|
```bash
|
|
179
|
-
pnpm dlx @bleedingdev/modern-js-create@3.5.0-ultramodern.
|
|
180
|
-
migrate-strict-effect --version 3.5.0-ultramodern.
|
|
180
|
+
pnpm dlx @bleedingdev/modern-js-create@3.5.0-ultramodern.4 ultramodern \
|
|
181
|
+
migrate-strict-effect --version 3.5.0-ultramodern.4
|
|
181
182
|
pnpm api:check
|
|
182
183
|
pnpm contract:check
|
|
183
184
|
```
|