@bleedingdev/modern-js-create 3.2.0-ultramodern.125 → 3.2.0-ultramodern.127
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 +1 -1
- package/dist/cjs/ultramodern-workspace/package-json.cjs +1 -1
- package/dist/cjs/ultramodern-workspace/versions.cjs +1 -1
- package/dist/esm/ultramodern-workspace/package-json.js +1 -1
- package/dist/esm/ultramodern-workspace/versions.js +1 -1
- package/dist/esm-node/ultramodern-workspace/package-json.js +1 -1
- package/dist/esm-node/ultramodern-workspace/versions.js +1 -1
- package/dist/types/ultramodern-workspace/versions.d.ts +1 -1
- package/package.json +3 -3
- package/template-workspace/AGENTS.md.handlebars +1 -1
- package/template-workspace/README.md.handlebars +1 -1
- package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +13 -12
package/README.md
CHANGED
|
@@ -50,7 +50,7 @@ pnpm check
|
|
|
50
50
|
pnpm build
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
The generated toolchain baseline is Node `>=26` with pnpm `11
|
|
53
|
+
The generated toolchain baseline is Node `>=26` with pnpm `11+`.
|
|
54
54
|
`packageManager`, `.mise.toml`, generated validation, and CI should all agree
|
|
55
55
|
on that baseline; do not reintroduce Corepack or older pnpm aliases.
|
|
56
56
|
|
|
@@ -51,7 +51,7 @@ const REACT_ROUTER_DOM_VERSION = '7.17.0';
|
|
|
51
51
|
const TYPES_REACT_VERSION = '^19.2.17';
|
|
52
52
|
const TYPES_REACT_DOM_VERSION = '^19.2.3';
|
|
53
53
|
const NODE_VERSION = '26.3.0';
|
|
54
|
-
const PNPM_VERSION = '11.
|
|
54
|
+
const PNPM_VERSION = '11.7.0';
|
|
55
55
|
const RSTACK_AGENT_SKILLS_COMMIT = '61c948b42512e223bad44b83af4080eba48b2677';
|
|
56
56
|
const MODULE_FEDERATION_AGENT_SKILLS_COMMIT = '07bb5b6c43ad457609e00c081b72d4c42508ec76';
|
|
57
57
|
const ultramodernWorkspaceVersions = {
|
|
@@ -22,7 +22,7 @@ const REACT_ROUTER_DOM_VERSION = '7.17.0';
|
|
|
22
22
|
const TYPES_REACT_VERSION = '^19.2.17';
|
|
23
23
|
const TYPES_REACT_DOM_VERSION = '^19.2.3';
|
|
24
24
|
const NODE_VERSION = '26.3.0';
|
|
25
|
-
const PNPM_VERSION = '11.
|
|
25
|
+
const PNPM_VERSION = '11.7.0';
|
|
26
26
|
const RSTACK_AGENT_SKILLS_COMMIT = '61c948b42512e223bad44b83af4080eba48b2677';
|
|
27
27
|
const MODULE_FEDERATION_AGENT_SKILLS_COMMIT = '07bb5b6c43ad457609e00c081b72d4c42508ec76';
|
|
28
28
|
const ultramodernWorkspaceVersions = {
|
|
@@ -23,7 +23,7 @@ const REACT_ROUTER_DOM_VERSION = '7.17.0';
|
|
|
23
23
|
const TYPES_REACT_VERSION = '^19.2.17';
|
|
24
24
|
const TYPES_REACT_DOM_VERSION = '^19.2.3';
|
|
25
25
|
const NODE_VERSION = '26.3.0';
|
|
26
|
-
const PNPM_VERSION = '11.
|
|
26
|
+
const PNPM_VERSION = '11.7.0';
|
|
27
27
|
const RSTACK_AGENT_SKILLS_COMMIT = '61c948b42512e223bad44b83af4080eba48b2677';
|
|
28
28
|
const MODULE_FEDERATION_AGENT_SKILLS_COMMIT = '07bb5b6c43ad457609e00c081b72d4c42508ec76';
|
|
29
29
|
const ultramodernWorkspaceVersions = {
|
|
@@ -27,7 +27,7 @@ export declare const REACT_ROUTER_DOM_VERSION = "7.17.0";
|
|
|
27
27
|
export declare const TYPES_REACT_VERSION = "^19.2.17";
|
|
28
28
|
export declare const TYPES_REACT_DOM_VERSION = "^19.2.3";
|
|
29
29
|
export declare const NODE_VERSION = "26.3.0";
|
|
30
|
-
export declare const PNPM_VERSION = "11.
|
|
30
|
+
export declare const PNPM_VERSION = "11.7.0";
|
|
31
31
|
export declare const RSTACK_AGENT_SKILLS_COMMIT = "61c948b42512e223bad44b83af4080eba48b2677";
|
|
32
32
|
export declare const MODULE_FEDERATION_AGENT_SKILLS_COMMIT = "07bb5b6c43ad457609e00c081b72d4c42508ec76";
|
|
33
33
|
export declare const ultramodernWorkspaceVersions: {
|
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=20"
|
|
23
23
|
},
|
|
24
|
-
"version": "3.2.0-ultramodern.
|
|
24
|
+
"version": "3.2.0-ultramodern.127",
|
|
25
25
|
"types": "./dist/types/index.d.ts",
|
|
26
26
|
"main": "./dist/esm-node/index.js",
|
|
27
27
|
"bin": {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"bin"
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.2.0-ultramodern.
|
|
55
|
+
"@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.2.0-ultramodern.127"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@rslib/core": "0.22.0",
|
|
@@ -73,6 +73,6 @@
|
|
|
73
73
|
"test": "rm -rf dist && rslib build -c rslibconfig.mts && rstest --passWithNoTests"
|
|
74
74
|
},
|
|
75
75
|
"ultramodern": {
|
|
76
|
-
"frameworkVersion": "3.2.0-ultramodern.
|
|
76
|
+
"frameworkVersion": "3.2.0-ultramodern.127"
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -6,7 +6,7 @@ instructions, not optional reading.
|
|
|
6
6
|
|
|
7
7
|
## Quality Gates
|
|
8
8
|
|
|
9
|
-
Generated workspaces target Node `>=26` and pnpm `
|
|
9
|
+
Generated workspaces target Node `>=26` and pnpm `11+`. Keep
|
|
10
10
|
`packageManager`, `.mise.toml`, generated validation, and CI aligned to that
|
|
11
11
|
baseline; do not reintroduce Corepack or older pnpm aliases.
|
|
12
12
|
|
|
@@ -60,7 +60,7 @@ pnpm check
|
|
|
60
60
|
pnpm build
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
The generated toolchain baseline is Node `>=26` with pnpm `
|
|
63
|
+
The generated toolchain baseline is Node `>=26` with pnpm `11+`.
|
|
64
64
|
`packageManager`, `.mise.toml`, generated validation, and CI should all agree
|
|
65
65
|
on that baseline; do not reintroduce Corepack or older pnpm aliases.
|
|
66
66
|
|
|
@@ -5,7 +5,6 @@ import path from 'node:path';
|
|
|
5
5
|
const root = process.cwd();
|
|
6
6
|
const packageScope = '{{packageScope}}';
|
|
7
7
|
const expectedNodeVersion = '{{nodeVersion}}';
|
|
8
|
-
const expectedPnpmVersion = '{{pnpmVersion}}';
|
|
9
8
|
const tailwindEnabled = {{tailwindEnabledJson}};
|
|
10
9
|
const fullStackVerticals = {{fullStackVerticalsJson}};
|
|
11
10
|
const shellNamespace = {{shellNamespaceJson}};
|
|
@@ -203,20 +202,14 @@ const activePnpmVersion = execFileSync('pnpm', ['--pm-on-fail=ignore', '--versio
|
|
|
203
202
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
204
203
|
}).trim();
|
|
205
204
|
const activeNodeVersion = process.versions.node;
|
|
206
|
-
const minimumPnpmVersion =
|
|
207
|
-
const maximumPnpmVersion = {
|
|
208
|
-
major: minimumPnpmVersion.major,
|
|
209
|
-
minor: minimumPnpmVersion.minor + 1,
|
|
210
|
-
patch: 0,
|
|
211
|
-
};
|
|
205
|
+
const minimumPnpmVersion = { major: 11, minor: 0, patch: 0 };
|
|
212
206
|
const currentPnpmVersion = parseSemver(activePnpmVersion);
|
|
213
207
|
const minimumNodeVersion = { major: 26, minor: 0, patch: 0 };
|
|
214
208
|
const currentNodeVersion = parseSemver(activeNodeVersion);
|
|
215
209
|
|
|
216
210
|
assert(
|
|
217
|
-
compareSemver(currentPnpmVersion, minimumPnpmVersion) >= 0
|
|
218
|
-
|
|
219
|
-
`Generated workspace requires pnpm >=${expectedPnpmVersion} <${maximumPnpmVersion.major}.${maximumPnpmVersion.minor}.${maximumPnpmVersion.patch}; active pnpm is ${activePnpmVersion}. Run mise install, then rerun pnpm from the activated shell.`,
|
|
211
|
+
compareSemver(currentPnpmVersion, minimumPnpmVersion) >= 0,
|
|
212
|
+
`Generated workspace requires pnpm >=11; active pnpm is ${activePnpmVersion}. Run mise install, then rerun pnpm from the activated shell.`,
|
|
220
213
|
);
|
|
221
214
|
assert(
|
|
222
215
|
compareSemver(currentNodeVersion, minimumNodeVersion) >= 0,
|
|
@@ -322,12 +315,20 @@ const ownership = readJson('topology/ownership.json');
|
|
|
322
315
|
const overlay = readJson('topology/local-overlays/development.json');
|
|
323
316
|
|
|
324
317
|
assert(rootPackage.private === true, 'Root package must be private');
|
|
325
|
-
assert(rootPackage.packageManager ===
|
|
318
|
+
assert(typeof rootPackage.packageManager === 'string', 'Root must declare packageManager');
|
|
319
|
+
const packageManagerPnpmVersionMatch = /^pnpm@(\d+\.\d+\.\d+)$/u.exec(rootPackage.packageManager);
|
|
320
|
+
assert(packageManagerPnpmVersionMatch, 'Root packageManager must pin pnpm with a semver version');
|
|
321
|
+
const packageManagerPnpmVersion = packageManagerPnpmVersionMatch[1];
|
|
322
|
+
assert(
|
|
323
|
+
compareSemver(parseSemver(packageManagerPnpmVersion), minimumPnpmVersion) >= 0,
|
|
324
|
+
'Root packageManager must use pnpm >=11',
|
|
325
|
+
);
|
|
326
326
|
assert(rootPackage.engines?.node === '>=26', 'Root must require Node >=26');
|
|
327
|
+
assert(rootPackage.engines?.pnpm === '>=11', 'Root must require pnpm >=11');
|
|
327
328
|
assert(generatedContract.node?.version === expectedNodeVersion, 'Generated contract must record the Node toolchain version');
|
|
328
329
|
assert(generatedContract.node?.engineRange === '>=26', 'Generated contract must record the Node engine range');
|
|
329
330
|
assert(readText('.mise.toml').includes(`node = "${expectedNodeVersion}"`), 'mise must pin the generated Node version');
|
|
330
|
-
assert(readText('.mise.toml').includes(`pnpm = "${
|
|
331
|
+
assert(readText('.mise.toml').includes(`pnpm = "${packageManagerPnpmVersion}"`), 'mise must pin the generated pnpm version');
|
|
331
332
|
const workflowText = readText('.github/workflows/ultramodern-workspace-gates.yml');
|
|
332
333
|
assert(workflowText.includes(`node-version: "${expectedNodeVersion}"`), 'CI workflow must pin the generated Node version');
|
|
333
334
|
assert(!workflowText.includes('FORCE_JAVASCRIPT_ACTIONS_TO_NODE24'), 'CI workflow must not carry the legacy Node 24 override');
|