@bleedingdev/modern-js-create 3.2.0-ultramodern.4 → 3.2.0-ultramodern.6
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 +12 -0
- package/dist/index.js +27 -15
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -12,6 +12,13 @@
|
|
|
12
12
|
|
|
13
13
|
Please follow [Quick Start](https://modernjs.dev/en/guides/get-started/quick-start) to get started with Modern.js.
|
|
14
14
|
|
|
15
|
+
For UltraModern.js, use the BleedingDev create package. It defaults to the
|
|
16
|
+
canonical SuperApp workspace and published BleedingDev package aliases:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pnpm dlx @bleedingdev/modern-js-create my-super-app
|
|
20
|
+
```
|
|
21
|
+
|
|
15
22
|
### Router Template
|
|
16
23
|
|
|
17
24
|
You can scaffold a TanStack Router first template:
|
|
@@ -89,6 +96,11 @@ See
|
|
|
89
96
|
`docs/super-app-rfc-adr/WORKSPACE-0001-micro-vertical-workspace-scaffolding.md`
|
|
90
97
|
for the canonical workspace topology and local orchestration model.
|
|
91
98
|
|
|
99
|
+
The published `@bleedingdev/modern-js-create` package is the preferred
|
|
100
|
+
UltraModern.js entrypoint. The lower-level `--ultramodern-*` flags remain
|
|
101
|
+
available for release engineering and local package-source testing, but users
|
|
102
|
+
should not need them for normal app creation.
|
|
103
|
+
|
|
92
104
|
### Local Monorepo Testing
|
|
93
105
|
|
|
94
106
|
When testing unreleased Modern.js packages from a local monorepo checkout, use
|
package/dist/index.js
CHANGED
|
@@ -485,7 +485,7 @@ const EN_LOCALE = {
|
|
|
485
485
|
example7: ' create my-app --bff',
|
|
486
486
|
example8: ' create my-app --router tanstack --bff-runtime effect',
|
|
487
487
|
example9: ' create my-app --router tanstack --bff-runtime effect --workspace',
|
|
488
|
-
example10: ' create my-super-app
|
|
488
|
+
example10: ' pnpm dlx @bleedingdev/modern-js-create my-super-app',
|
|
489
489
|
moreInfo: '📚 Learn more: https://modernjs.dev'
|
|
490
490
|
},
|
|
491
491
|
version: {
|
|
@@ -845,6 +845,7 @@ function createRootPackageJson(scope, packageSource) {
|
|
|
845
845
|
private: true,
|
|
846
846
|
name: scope,
|
|
847
847
|
version: '0.1.0',
|
|
848
|
+
packageManager: 'pnpm@11.1.2',
|
|
848
849
|
scripts: {
|
|
849
850
|
dev: `pnpm --parallel --filter ${ultramodern_workspace_packageName(scope, shellApp.packageSuffix)} --filter ${ultramodern_workspace_packageName(scope, 'remote-commerce')} --filter ${ultramodern_workspace_packageName(scope, 'remote-identity')} --filter ${ultramodern_workspace_packageName(scope, 'remote-design-system')} dev`,
|
|
850
851
|
'dev:shell': `pnpm --filter ${ultramodern_workspace_packageName(scope, shellApp.packageSuffix)} dev`,
|
|
@@ -859,7 +860,7 @@ function createRootPackageJson(scope, packageSource) {
|
|
|
859
860
|
},
|
|
860
861
|
engines: {
|
|
861
862
|
node: '>=20',
|
|
862
|
-
pnpm: '>=
|
|
863
|
+
pnpm: '>=11.0.0'
|
|
863
864
|
},
|
|
864
865
|
workspaces: [
|
|
865
866
|
'apps/*',
|
|
@@ -1580,7 +1581,7 @@ function createTemplateManifest(modernVersion, packageSource) {
|
|
|
1580
1581
|
'template-manifest-retained'
|
|
1581
1582
|
],
|
|
1582
1583
|
expectedCommands: [
|
|
1583
|
-
|
|
1584
|
+
'pnpm install',
|
|
1584
1585
|
'pnpm run ultramodern:check'
|
|
1585
1586
|
]
|
|
1586
1587
|
}
|
|
@@ -2008,9 +2009,19 @@ function writeTemplateManifestEvidence(targetDir, manifest) {
|
|
|
2008
2009
|
});
|
|
2009
2010
|
node_fs.writeFileSync(evidencePath, `${JSON.stringify(manifest, null, 2)}\n`);
|
|
2010
2011
|
}
|
|
2011
|
-
function
|
|
2012
|
+
function readCreatePackageJson() {
|
|
2012
2013
|
const createPackageJson = node_path.resolve(src_dirname, '..', 'package.json');
|
|
2013
|
-
|
|
2014
|
+
return JSON.parse(node_fs.readFileSync(createPackageJson, 'utf-8'));
|
|
2015
|
+
}
|
|
2016
|
+
function isBleedingDevCreatePackage(createPackage) {
|
|
2017
|
+
return '@bleedingdev/modern-js-create' === createPackage.name;
|
|
2018
|
+
}
|
|
2019
|
+
function getBleedingDevFrameworkVersion(createPackage, fallbackVersion) {
|
|
2020
|
+
const frameworkVersion = createPackage.ultramodern?.frameworkVersion;
|
|
2021
|
+
return 'string' == typeof frameworkVersion && frameworkVersion.length > 0 ? frameworkVersion : fallbackVersion;
|
|
2022
|
+
}
|
|
2023
|
+
function showVersion() {
|
|
2024
|
+
const createPackage = readCreatePackageJson();
|
|
2014
2025
|
const version = createPackage.version || 'unknown';
|
|
2015
2026
|
console.log(i18n.t(localeKeys.version.message, {
|
|
2016
2027
|
version
|
|
@@ -2081,14 +2092,15 @@ function detectWorkspaceProtocolFlag() {
|
|
|
2081
2092
|
const args = process.argv.slice(2);
|
|
2082
2093
|
return args.includes('--workspace');
|
|
2083
2094
|
}
|
|
2084
|
-
function detectUltramodernWorkspaceFlag() {
|
|
2095
|
+
function detectUltramodernWorkspaceFlag(createPackage) {
|
|
2085
2096
|
const args = process.argv.slice(2);
|
|
2086
|
-
return args.includes(ULTRAMODERN_WORKSPACE_FLAG);
|
|
2097
|
+
return args.includes(ULTRAMODERN_WORKSPACE_FLAG) || isBleedingDevCreatePackage(createPackage);
|
|
2087
2098
|
}
|
|
2088
|
-
function detectUltramodernPackageSource(args,
|
|
2099
|
+
function detectUltramodernPackageSource(args, defaultPackageVersion, createPackage) {
|
|
2100
|
+
const bleedingDevDefaults = isBleedingDevCreatePackage(createPackage);
|
|
2089
2101
|
const strategy = getOptionValue(args, [
|
|
2090
2102
|
'--ultramodern-package-source'
|
|
2091
|
-
]) ?? 'workspace';
|
|
2103
|
+
]) ?? (bleedingDevDefaults ? 'install' : 'workspace');
|
|
2092
2104
|
if ('workspace' !== strategy && 'install' !== strategy) {
|
|
2093
2105
|
console.error('--ultramodern-package-source must be "workspace" or "install"');
|
|
2094
2106
|
process.exit(1);
|
|
@@ -2097,13 +2109,13 @@ function detectUltramodernPackageSource(args, modernVersion) {
|
|
|
2097
2109
|
strategy,
|
|
2098
2110
|
modernPackageVersion: getOptionValue(args, [
|
|
2099
2111
|
'--ultramodern-package-version'
|
|
2100
|
-
]) ??
|
|
2112
|
+
]) ?? defaultPackageVersion,
|
|
2101
2113
|
registry: getOptionValue(args, [
|
|
2102
2114
|
'--ultramodern-package-registry'
|
|
2103
2115
|
]),
|
|
2104
2116
|
aliasScope: getOptionValue(args, [
|
|
2105
2117
|
'--ultramodern-package-scope'
|
|
2106
|
-
]),
|
|
2118
|
+
]) ?? (bleedingDevDefaults && 'install' === strategy ? 'bleedingdev' : void 0),
|
|
2107
2119
|
aliasPackageNamePrefix: getOptionValue(args, [
|
|
2108
2120
|
'--ultramodern-package-name-prefix'
|
|
2109
2121
|
]) ?? 'modern-js-'
|
|
@@ -2194,16 +2206,16 @@ async function main() {
|
|
|
2194
2206
|
process.exit(1);
|
|
2195
2207
|
}
|
|
2196
2208
|
}
|
|
2197
|
-
const
|
|
2198
|
-
const createPackage = JSON.parse(node_fs.readFileSync(createPackageJson, 'utf-8'));
|
|
2209
|
+
const createPackage = readCreatePackageJson();
|
|
2199
2210
|
const version = createPackage.version || 'latest';
|
|
2200
|
-
const
|
|
2211
|
+
const ultramodernPackageVersion = isBleedingDevCreatePackage(createPackage) ? getBleedingDevFrameworkVersion(createPackage, version) : version;
|
|
2212
|
+
const generateWorkspace = detectUltramodernWorkspaceFlag(createPackage);
|
|
2201
2213
|
if (generateWorkspace) {
|
|
2202
2214
|
generateUltramodernWorkspace({
|
|
2203
2215
|
targetDir,
|
|
2204
2216
|
packageName: generatedPackageName,
|
|
2205
2217
|
modernVersion: version,
|
|
2206
|
-
packageSource: detectUltramodernPackageSource(args,
|
|
2218
|
+
packageSource: detectUltramodernPackageSource(args, ultramodernPackageVersion, createPackage)
|
|
2207
2219
|
});
|
|
2208
2220
|
const dim = '\x1b[2m\x1b[3m';
|
|
2209
2221
|
const reset = '\x1b[0m';
|
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.6",
|
|
25
25
|
"types": "./dist/types/index.d.ts",
|
|
26
26
|
"main": "./dist/index.js",
|
|
27
27
|
"bin": {
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@types/node": "^25.8.0",
|
|
42
42
|
"@typescript/native-preview": "7.0.0-dev.20260516.1",
|
|
43
43
|
"tsx": "^4.22.0",
|
|
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.5"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -52,5 +52,8 @@
|
|
|
52
52
|
"build": "rslib build && pnpm -w tsgo:dts \"$PWD\"",
|
|
53
53
|
"dev": "rslib build -w",
|
|
54
54
|
"start": "node ./dist/index.js"
|
|
55
|
+
},
|
|
56
|
+
"ultramodern": {
|
|
57
|
+
"frameworkVersion": "3.2.0-ultramodern.5"
|
|
55
58
|
}
|
|
56
59
|
}
|