@bleedingdev/modern-js-create 3.2.0-ultramodern.104 → 3.2.0-ultramodern.106
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/dist/index.js +64 -17
- package/package.json +4 -4
- package/template/package.json.handlebars +14 -14
- package/template/pnpm-workspace.yaml +5 -0
- package/template/scripts/validate-ultramodern.mjs.handlebars +10 -2
- package/template-workspace/pnpm-workspace.yaml +6 -1
- package/template-workspace/scripts/setup-agent-reference-repos.mjs +8 -6
package/dist/index.js
CHANGED
|
@@ -619,25 +619,26 @@ function createModernPackagesMetadata(packageNames, packageSource, options = {})
|
|
|
619
619
|
}
|
|
620
620
|
const ultramodern_workspace_dirname = node_path.dirname(fileURLToPath(import.meta.url));
|
|
621
621
|
const workspaceTemplateDir = node_path.resolve(ultramodern_workspace_dirname, '..', 'template-workspace');
|
|
622
|
-
const TANSTACK_ROUTER_VERSION = '1.170.
|
|
623
|
-
const MODULE_FEDERATION_VERSION = '2.5.
|
|
622
|
+
const TANSTACK_ROUTER_VERSION = '1.170.15';
|
|
623
|
+
const MODULE_FEDERATION_VERSION = '2.5.1';
|
|
624
624
|
const ZEPHYR_RSPACK_PLUGIN_VERSION = '1.1.1';
|
|
625
625
|
const ZEPHYR_AGENT_VERSION = '1.1.1';
|
|
626
|
-
const WRANGLER_VERSION = '4.
|
|
626
|
+
const WRANGLER_VERSION = '4.98.0';
|
|
627
627
|
const CLOUDFLARE_COMPATIBILITY_DATE = '2026-06-02';
|
|
628
628
|
const TAILWIND_VERSION = '4.3.0';
|
|
629
629
|
const TAILWIND_POSTCSS_VERSION = '4.3.0';
|
|
630
|
-
const
|
|
630
|
+
const POSTCSS_VERSION = '8.5.15';
|
|
631
|
+
const EFFECT_TSGO_VERSION = '0.14.0';
|
|
631
632
|
const TYPESCRIPT_VERSION = '6.0.3';
|
|
632
|
-
const TYPESCRIPT_NATIVE_PREVIEW_VERSION = '7.0.0-dev.
|
|
633
|
-
const OXLINT_VERSION = '1.
|
|
634
|
-
const OXFMT_VERSION = '0.
|
|
635
|
-
const ULTRACITE_VERSION = '7.
|
|
633
|
+
const TYPESCRIPT_NATIVE_PREVIEW_VERSION = '7.0.0-dev.20260606.1';
|
|
634
|
+
const OXLINT_VERSION = '1.68.0';
|
|
635
|
+
const OXFMT_VERSION = '0.53.0';
|
|
636
|
+
const ULTRACITE_VERSION = '7.8.1';
|
|
636
637
|
const LEFTHOOK_VERSION = '^2.1.9';
|
|
637
|
-
const I18NEXT_VERSION = '26.
|
|
638
|
-
const REACT_VERSION = '^19.2.
|
|
639
|
-
const REACT_DOM_VERSION = '^19.2.
|
|
640
|
-
const REACT_ROUTER_DOM_VERSION = '7.
|
|
638
|
+
const I18NEXT_VERSION = '26.3.1';
|
|
639
|
+
const REACT_VERSION = '^19.2.7';
|
|
640
|
+
const REACT_DOM_VERSION = '^19.2.7';
|
|
641
|
+
const REACT_ROUTER_DOM_VERSION = '7.17.0';
|
|
641
642
|
const PNPM_VERSION = '11.5.0';
|
|
642
643
|
const GENERATED_CONTRACT_PATH = '.modernjs/ultramodern-generated-contract.json';
|
|
643
644
|
const RSTACK_AGENT_SKILLS_COMMIT = '61c948b42512e223bad44b83af4080eba48b2677';
|
|
@@ -1017,13 +1018,13 @@ function appDevDependencies(packageSource, enableTailwind) {
|
|
|
1017
1018
|
'@effect/tsgo': EFFECT_TSGO_VERSION,
|
|
1018
1019
|
...enableTailwind ? {
|
|
1019
1020
|
'@tailwindcss/postcss': `^${TAILWIND_POSTCSS_VERSION}`,
|
|
1020
|
-
postcss:
|
|
1021
|
+
postcss: `^${POSTCSS_VERSION}`,
|
|
1021
1022
|
tailwindcss: `^${TAILWIND_VERSION}`
|
|
1022
1023
|
} : {},
|
|
1023
1024
|
"@typescript/native-preview": TYPESCRIPT_NATIVE_PREVIEW_VERSION,
|
|
1024
1025
|
'@types/node': '^20',
|
|
1025
|
-
'@types/react': '^19.
|
|
1026
|
-
'@types/react-dom': '^19.
|
|
1026
|
+
'@types/react': '^19.2.17',
|
|
1027
|
+
'@types/react-dom': '^19.2.3',
|
|
1027
1028
|
typescript: TYPESCRIPT_VERSION,
|
|
1028
1029
|
'zephyr-rspack-plugin': ZEPHYR_RSPACK_PLUGIN_VERSION,
|
|
1029
1030
|
wrangler: WRANGLER_VERSION
|
|
@@ -3697,7 +3698,7 @@ export const ${apiExport} = HttpApi.make('${apiName}').add(
|
|
|
3697
3698
|
.add(
|
|
3698
3699
|
HttpApiEndpoint.get('list', '/effect/${stem}', {
|
|
3699
3700
|
query: {
|
|
3700
|
-
limit: Schema.optional(Schema.
|
|
3701
|
+
limit: Schema.optional(Schema.FiniteFromString),
|
|
3701
3702
|
},
|
|
3702
3703
|
success: Schema.Struct({
|
|
3703
3704
|
items: Schema.Array(${schemaExport}),
|
|
@@ -5305,6 +5306,10 @@ assert(rootPackage.scripts?.['cloudflare:proof'] === 'node ./scripts/proof-cloud
|
|
|
5305
5306
|
assert(rootPackage.scripts?.['skills:install'] === 'node ./scripts/bootstrap-agent-skills.mjs', 'Root must expose skills:install');
|
|
5306
5307
|
assert(rootPackage.scripts?.['skills:check'] === 'node ./scripts/bootstrap-agent-skills.mjs --check', 'Root must expose skills:check');
|
|
5307
5308
|
assert(rootPackage.scripts?.postinstall === "oxfmt . '!repos/**' && node ./scripts/bootstrap-agent-skills.mjs && node ./scripts/setup-agent-reference-repos.mjs", 'Root postinstall must format, bootstrap agent skills, initialize git/hooks, and install reference repositories');
|
|
5309
|
+
const agentReferenceRepoSetup = readText('scripts/setup-agent-reference-repos.mjs');
|
|
5310
|
+
assert(agentReferenceRepoSetup.includes("['commit', '--no-verify', '-m', message]"), 'Agent reference repo installer commits must skip hooks during postinstall');
|
|
5311
|
+
assert(agentReferenceRepoSetup.includes("commitInstallerChanges('Initialize UltraModern workspace')"), 'Initial agent reference repo commit must use the installer commit helper');
|
|
5312
|
+
assert(agentReferenceRepoSetup.includes("commitInstallerChanges('Record agent reference repo manifest')"), 'Agent reference repo manifest commit must use the installer commit helper');
|
|
5308
5313
|
|
|
5309
5314
|
const expectedAppIds = ['shell-super-app', ...fullStackVerticals.map(vertical => vertical.id)];
|
|
5310
5315
|
const expectedCloudflareCompatibilityDate = '${CLOUDFLARE_COMPATIBILITY_DATE}';
|
|
@@ -6319,10 +6324,24 @@ const sha1Pattern = /^[0-9a-f]{40}$/;
|
|
|
6319
6324
|
const sha256Pattern = /^[0-9a-f]{64}$/;
|
|
6320
6325
|
const templateIdPattern = /^[a-z0-9][a-z0-9._-]*$/;
|
|
6321
6326
|
const packageNamePattern = /^(?:@[a-z0-9._-]+\/)?[a-z0-9._-]+$/;
|
|
6322
|
-
const src_TANSTACK_ROUTER_VERSION = '1.170.
|
|
6327
|
+
const src_TANSTACK_ROUTER_VERSION = '1.170.15';
|
|
6323
6328
|
const src_TAILWIND_VERSION = '4.3.0';
|
|
6324
6329
|
const src_TAILWIND_POSTCSS_VERSION = '4.3.0';
|
|
6325
6330
|
const src_PNPM_VERSION = '11.5.0';
|
|
6331
|
+
const src_I18NEXT_VERSION = '26.3.1';
|
|
6332
|
+
const src_REACT_VERSION = '^19.2.7';
|
|
6333
|
+
const src_REACT_DOM_VERSION = '^19.2.7';
|
|
6334
|
+
const REACT_I18NEXT_VERSION = '17.0.8';
|
|
6335
|
+
const src_EFFECT_TSGO_VERSION = '0.14.0';
|
|
6336
|
+
const src_TYPESCRIPT_NATIVE_PREVIEW_VERSION = '7.0.0-dev.20260606.1';
|
|
6337
|
+
const HAPPY_DOM_VERSION = '^20.10.1';
|
|
6338
|
+
const RSTEST_CORE_VERSION = '0.10.3';
|
|
6339
|
+
const src_OXFMT_VERSION = '0.53.0';
|
|
6340
|
+
const src_OXLINT_VERSION = '1.68.0';
|
|
6341
|
+
const src_POSTCSS_VERSION = '^8.5.15';
|
|
6342
|
+
const src_ULTRACITE_VERSION = '7.8.1';
|
|
6343
|
+
const TYPES_REACT_VERSION = '^19.2.17';
|
|
6344
|
+
const TYPES_REACT_DOM_VERSION = '^19.2.3';
|
|
6326
6345
|
const requiredDeniedPaths = [
|
|
6327
6346
|
'.git/**',
|
|
6328
6347
|
'.npmrc',
|
|
@@ -7135,6 +7154,20 @@ async function main() {
|
|
|
7135
7154
|
pluginBffVersion: modernPackageSpecifier('@modern-js/plugin-bff', packageSource),
|
|
7136
7155
|
pluginI18nVersion: modernPackageSpecifier('@modern-js/plugin-i18n', packageSource),
|
|
7137
7156
|
tanstackRouterVersion: src_TANSTACK_ROUTER_VERSION,
|
|
7157
|
+
i18nextVersion: src_I18NEXT_VERSION,
|
|
7158
|
+
reactVersion: src_REACT_VERSION,
|
|
7159
|
+
reactDomVersion: src_REACT_DOM_VERSION,
|
|
7160
|
+
reactI18nextVersion: REACT_I18NEXT_VERSION,
|
|
7161
|
+
effectTsgoVersion: src_EFFECT_TSGO_VERSION,
|
|
7162
|
+
typescriptNativePreviewVersion: src_TYPESCRIPT_NATIVE_PREVIEW_VERSION,
|
|
7163
|
+
rstestCoreVersion: RSTEST_CORE_VERSION,
|
|
7164
|
+
happyDomVersion: HAPPY_DOM_VERSION,
|
|
7165
|
+
oxfmtVersion: src_OXFMT_VERSION,
|
|
7166
|
+
oxlintVersion: src_OXLINT_VERSION,
|
|
7167
|
+
postcssVersion: src_POSTCSS_VERSION,
|
|
7168
|
+
ultraciteVersion: src_ULTRACITE_VERSION,
|
|
7169
|
+
typesReactVersion: TYPES_REACT_VERSION,
|
|
7170
|
+
typesReactDomVersion: TYPES_REACT_DOM_VERSION,
|
|
7138
7171
|
tailwindVersion: src_TAILWIND_VERSION,
|
|
7139
7172
|
tailwindPostcssVersion: src_TAILWIND_POSTCSS_VERSION,
|
|
7140
7173
|
pnpmVersion: src_PNPM_VERSION,
|
|
@@ -7240,6 +7273,20 @@ function copyTemplate(src, dest, options) {
|
|
|
7240
7273
|
pluginBffVersion: options.pluginBffVersion,
|
|
7241
7274
|
pluginI18nVersion: options.pluginI18nVersion,
|
|
7242
7275
|
tanstackRouterVersion: options.tanstackRouterVersion,
|
|
7276
|
+
i18nextVersion: options.i18nextVersion,
|
|
7277
|
+
reactVersion: options.reactVersion,
|
|
7278
|
+
reactDomVersion: options.reactDomVersion,
|
|
7279
|
+
reactI18nextVersion: options.reactI18nextVersion,
|
|
7280
|
+
effectTsgoVersion: options.effectTsgoVersion,
|
|
7281
|
+
typescriptNativePreviewVersion: options.typescriptNativePreviewVersion,
|
|
7282
|
+
rstestCoreVersion: options.rstestCoreVersion,
|
|
7283
|
+
happyDomVersion: options.happyDomVersion,
|
|
7284
|
+
oxfmtVersion: options.oxfmtVersion,
|
|
7285
|
+
oxlintVersion: options.oxlintVersion,
|
|
7286
|
+
postcssVersion: options.postcssVersion,
|
|
7287
|
+
ultraciteVersion: options.ultraciteVersion,
|
|
7288
|
+
typesReactVersion: options.typesReactVersion,
|
|
7289
|
+
typesReactDomVersion: options.typesReactDomVersion,
|
|
7243
7290
|
tailwindVersion: options.tailwindVersion,
|
|
7244
7291
|
tailwindPostcssVersion: options.tailwindPostcssVersion,
|
|
7245
7292
|
pnpmVersion: options.pnpmVersion,
|
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.106",
|
|
25
25
|
"types": "./dist/types/index.d.ts",
|
|
26
26
|
"main": "./dist/index.js",
|
|
27
27
|
"bin": {
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@rslib/core": "0.21.5",
|
|
41
41
|
"@types/node": "^25.9.1",
|
|
42
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
42
|
+
"@typescript/native-preview": "7.0.0-dev.20260606.1",
|
|
43
43
|
"tsx": "^4.22.3",
|
|
44
|
-
"@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.2.0-ultramodern.
|
|
44
|
+
"@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.2.0-ultramodern.106"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -54,6 +54,6 @@
|
|
|
54
54
|
"start": "node ./dist/index.js"
|
|
55
55
|
},
|
|
56
56
|
"ultramodern": {
|
|
57
|
-
"frameworkVersion": "3.2.0-ultramodern.
|
|
57
|
+
"frameworkVersion": "3.2.0-ultramodern.106"
|
|
58
58
|
}
|
|
59
59
|
}
|
|
@@ -30,34 +30,34 @@
|
|
|
30
30
|
"@modern-js/runtime": "{{runtimeVersion}}",
|
|
31
31
|
{{#if isTanstackRouter}} "@tanstack/react-router": "{{tanstackRouterVersion}}",
|
|
32
32
|
{{/if}}
|
|
33
|
-
"i18next": "
|
|
34
|
-
"react": "
|
|
35
|
-
"react-dom": "
|
|
36
|
-
"react-i18next": "
|
|
33
|
+
"i18next": "{{i18nextVersion}}",
|
|
34
|
+
"react": "{{reactVersion}}",
|
|
35
|
+
"react-dom": "{{reactDomVersion}}",
|
|
36
|
+
"react-i18next": "{{reactI18nextVersion}}"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@effect/tsgo": "
|
|
39
|
+
"@effect/tsgo": "{{effectTsgoVersion}}",
|
|
40
40
|
"@modern-js/adapter-rstest": "{{adapterRstestVersion}}",
|
|
41
41
|
"@modern-js/app-tools": "{{appToolsVersion}}",
|
|
42
42
|
{{#if enableBff}} "@modern-js/plugin-bff": "{{pluginBffVersion}}",
|
|
43
43
|
{{/if}} "@modern-js/tsconfig": "{{tsconfigVersion}}",
|
|
44
|
-
"@rstest/core": "
|
|
44
|
+
"@rstest/core": "{{rstestCoreVersion}}",
|
|
45
45
|
{{#if enableTailwind}}
|
|
46
46
|
"@tailwindcss/postcss": "^{{tailwindPostcssVersion}}",
|
|
47
47
|
{{/if}}
|
|
48
48
|
"@types/node": "^20",
|
|
49
|
-
"@types/react": "
|
|
50
|
-
"@types/react-dom": "
|
|
51
|
-
"@typescript/native-preview": "
|
|
52
|
-
"happy-dom": "
|
|
49
|
+
"@types/react": "{{typesReactVersion}}",
|
|
50
|
+
"@types/react-dom": "{{typesReactDomVersion}}",
|
|
51
|
+
"@typescript/native-preview": "{{typescriptNativePreviewVersion}}",
|
|
52
|
+
"happy-dom": "{{happyDomVersion}}",
|
|
53
53
|
{{#unless isSubproject}}
|
|
54
54
|
"lefthook": "^2.1.9",
|
|
55
|
-
"oxfmt": "
|
|
56
|
-
"oxlint": "
|
|
57
|
-
{{/unless}}{{#if enableTailwind}} "postcss": "
|
|
55
|
+
"oxfmt": "{{oxfmtVersion}}",
|
|
56
|
+
"oxlint": "{{oxlintVersion}}",
|
|
57
|
+
{{/unless}}{{#if enableTailwind}} "postcss": "{{postcssVersion}}",
|
|
58
58
|
{{/if}} "rimraf": "^6.1.3"{{#if enableTailwind}},
|
|
59
59
|
"tailwindcss": "^{{tailwindVersion}}"{{/if}}{{#unless isSubproject}},
|
|
60
|
-
"ultracite": "
|
|
60
|
+
"ultracite": "{{ultraciteVersion}}"{{/unless}}
|
|
61
61
|
},
|
|
62
62
|
"engines": {
|
|
63
63
|
"node": ">=20",
|
|
@@ -3,6 +3,11 @@ minimumReleaseAgeStrict: true
|
|
|
3
3
|
minimumReleaseAgeIgnoreMissingTime: false
|
|
4
4
|
minimumReleaseAgeExclude:
|
|
5
5
|
- '@bleedingdev/modern-js-*'
|
|
6
|
+
- '@tanstack/react-router'
|
|
7
|
+
- '@tanstack/router-core'
|
|
8
|
+
- '@typescript/native-preview'
|
|
9
|
+
- '@typescript/native-preview-*'
|
|
10
|
+
- '@types/react'
|
|
6
11
|
trustPolicy: no-downgrade
|
|
7
12
|
trustPolicyIgnoreAfter: 1440
|
|
8
13
|
blockExoticSubdeps: true
|
|
@@ -422,11 +422,19 @@ if (readPnpmConfig('minimumReleaseAgeIgnoreMissingTime') !== false) {
|
|
|
422
422
|
console.error('pnpm minimumReleaseAgeIgnoreMissingTime must be false');
|
|
423
423
|
process.exit(1);
|
|
424
424
|
}
|
|
425
|
+
const expectedMinimumReleaseAgeExcludes = [
|
|
426
|
+
'@bleedingdev/modern-js-*',
|
|
427
|
+
'@tanstack/react-router',
|
|
428
|
+
'@tanstack/router-core',
|
|
429
|
+
'@typescript/native-preview',
|
|
430
|
+
'@typescript/native-preview-*',
|
|
431
|
+
'@types/react',
|
|
432
|
+
];
|
|
425
433
|
if (
|
|
426
434
|
JSON.stringify(readPnpmConfig('minimumReleaseAgeExclude')) !==
|
|
427
|
-
JSON.stringify(
|
|
435
|
+
JSON.stringify(expectedMinimumReleaseAgeExcludes)
|
|
428
436
|
) {
|
|
429
|
-
console.error('pnpm minimumReleaseAgeExclude must allow
|
|
437
|
+
console.error('pnpm minimumReleaseAgeExclude must allow only approved latest-lane package cohorts');
|
|
430
438
|
process.exit(1);
|
|
431
439
|
}
|
|
432
440
|
if (readPnpmConfig('trustPolicy') !== 'no-downgrade') {
|
|
@@ -8,6 +8,11 @@ minimumReleaseAgeStrict: true
|
|
|
8
8
|
minimumReleaseAgeIgnoreMissingTime: false
|
|
9
9
|
minimumReleaseAgeExclude:
|
|
10
10
|
- '@bleedingdev/modern-js-*'
|
|
11
|
+
- '@tanstack/react-router'
|
|
12
|
+
- '@tanstack/router-core'
|
|
13
|
+
- '@typescript/native-preview'
|
|
14
|
+
- '@typescript/native-preview-*'
|
|
15
|
+
- '@types/react'
|
|
11
16
|
trustPolicy: no-downgrade
|
|
12
17
|
trustPolicyIgnoreAfter: 1440
|
|
13
18
|
blockExoticSubdeps: true
|
|
@@ -22,7 +27,7 @@ peerDependencyRules:
|
|
|
22
27
|
typescript: '>=6.0.0'
|
|
23
28
|
|
|
24
29
|
overrides:
|
|
25
|
-
'@tanstack/react-router': 1.170.
|
|
30
|
+
'@tanstack/react-router': 1.170.15
|
|
26
31
|
node-fetch: '^3.3.2'
|
|
27
32
|
|
|
28
33
|
allowBuilds:
|
|
@@ -122,6 +122,12 @@ function porcelainStatus() {
|
|
|
122
122
|
return run('git', ['status', '--porcelain'], { timeout: 30000 });
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
function commitInstallerChanges(message) {
|
|
126
|
+
run('git', ['commit', '--no-verify', '-m', message], {
|
|
127
|
+
timeout: 120000,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
|
|
125
131
|
function ensureGitRepository() {
|
|
126
132
|
if (!isGitWorkTree()) {
|
|
127
133
|
if (checkOnly) {
|
|
@@ -139,9 +145,7 @@ function ensureGitRepository() {
|
|
|
139
145
|
}
|
|
140
146
|
log('creating initial workspace commit before adding reference subtrees');
|
|
141
147
|
run('git', ['add', '-A'], { timeout: 30000 });
|
|
142
|
-
|
|
143
|
-
timeout: 120000,
|
|
144
|
-
});
|
|
148
|
+
commitInstallerChanges('Initialize UltraModern workspace');
|
|
145
149
|
return true;
|
|
146
150
|
}
|
|
147
151
|
|
|
@@ -311,9 +315,7 @@ function commitManifestIfChanged() {
|
|
|
311
315
|
return;
|
|
312
316
|
}
|
|
313
317
|
run('git', ['add', manifestPath], { timeout: 30000 });
|
|
314
|
-
|
|
315
|
-
timeout: 120000,
|
|
316
|
-
});
|
|
318
|
+
commitInstallerChanges('Record agent reference repo manifest');
|
|
317
319
|
}
|
|
318
320
|
|
|
319
321
|
function main() {
|