@bleedingdev/modern-js-create 3.2.0-ultramodern.12 → 3.2.0-ultramodern.120
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 +146 -74
- package/bin/run.js +0 -0
- package/dist/cjs/create-package-root.cjs +65 -0
- package/dist/cjs/index.cjs +498 -0
- package/dist/cjs/locale/en.cjs +94 -0
- package/dist/cjs/locale/index.cjs +50 -0
- package/dist/cjs/locale/zh.cjs +94 -0
- package/dist/cjs/ultramodern-package-source.cjs +135 -0
- package/dist/cjs/ultramodern-workspace.cjs +6797 -0
- package/dist/esm/create-package-root.js +16 -0
- package/dist/esm/index.js +461 -0
- package/dist/esm/locale/en.js +56 -0
- package/dist/esm/locale/index.js +9 -0
- package/dist/esm/locale/zh.js +56 -0
- package/dist/esm/ultramodern-package-source.js +63 -0
- package/dist/esm/ultramodern-workspace.js +6738 -0
- package/dist/esm-node/create-package-root.js +17 -0
- package/dist/esm-node/index.js +462 -0
- package/dist/esm-node/locale/en.js +57 -0
- package/dist/esm-node/locale/index.js +10 -0
- package/dist/esm-node/locale/zh.js +57 -0
- package/dist/esm-node/ultramodern-package-source.js +64 -0
- package/dist/esm-node/ultramodern-workspace.js +6739 -0
- package/dist/types/create-package-root.d.ts +1 -0
- package/dist/types/locale/en.d.ts +7 -7
- package/dist/types/locale/index.d.ts +111 -2
- package/dist/types/locale/zh.d.ts +7 -7
- package/dist/types/ultramodern-package-source.d.ts +28 -0
- package/dist/types/ultramodern-workspace.d.ts +12 -3
- package/package.json +33 -15
- package/template-workspace/.agents/agent-reference-repos.json +24 -0
- package/template-workspace/.agents/skills-lock.json +19 -0
- package/template-workspace/.codex/hooks.json +16 -0
- package/template-workspace/.github/renovate.json +29 -0
- package/template-workspace/.github/workflows/ultramodern-workspace-gates.yml.handlebars +70 -0
- package/template-workspace/.gitignore.handlebars +5 -0
- package/template-workspace/.mise.toml.handlebars +2 -0
- package/template-workspace/AGENTS.md +43 -11
- package/template-workspace/README.md.handlebars +116 -11
- package/template-workspace/lefthook.yml +24 -0
- package/template-workspace/oxfmt.config.ts +1 -0
- package/template-workspace/oxlint.config.ts +1 -0
- package/template-workspace/pnpm-workspace.yaml +31 -8
- package/template-workspace/scripts/bootstrap-agent-skills.mjs +204 -21
- package/template-workspace/scripts/setup-agent-reference-repos.mjs +370 -0
- package/dist/index.js +0 -2626
- package/template/.agents/skills-lock.json +0 -34
- package/template/.browserslistrc +0 -4
- package/template/.github/workflows/ultramodern-gates.yml.handlebars +0 -30
- package/template/.gitignore.handlebars +0 -30
- package/template/.nvmrc +0 -2
- package/template/AGENTS.md +0 -25
- package/template/README.md +0 -79
- package/template/api/effect/index.ts.handlebars +0 -23
- package/template/api/lambda/hello.ts.handlebars +0 -6
- package/template/config/public/locales/cs/translation.json +0 -39
- package/template/config/public/locales/en/translation.json +0 -39
- package/template/modern.config.ts.handlebars +0 -53
- package/template/oxfmt.config.ts +0 -8
- package/template/oxlint.config.ts +0 -12
- package/template/package.json.handlebars +0 -67
- package/template/postcss.config.mjs.handlebars +0 -6
- package/template/scripts/bootstrap-agent-skills.mjs +0 -95
- package/template/scripts/check-i18n-strings.mjs +0 -83
- package/template/scripts/validate-ultramodern.mjs.handlebars +0 -178
- package/template/shared/effect/api.ts.handlebars +0 -17
- package/template/src/modern-app-env.d.ts +0 -1
- package/template/src/modern.runtime.ts.handlebars +0 -23
- package/template/src/routes/index.css.handlebars +0 -129
- package/template/src/routes/layout.tsx.handlebars +0 -9
- package/template/src/routes/page.tsx.handlebars +0 -155
- package/template/tailwind.config.ts.handlebars +0 -10
- package/template/tsconfig.json +0 -120
- package/template-workspace/scripts/check-i18n-strings.mjs +0 -83
- package/template-workspace/scripts/validate-ultramodern-workspace.mjs.handlebars +0 -433
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const __rslib_import_meta_url__ = /*#__PURE__*/ function() {
|
|
3
|
+
return "u" < typeof document ? new (require('url'.replace('', ''))).URL('file:' + __filename).href : document.currentScript && document.currentScript.src || new URL('main.js', document.baseURI).href;
|
|
4
|
+
}();
|
|
5
|
+
var __webpack_require__ = {};
|
|
6
|
+
(()=>{
|
|
7
|
+
__webpack_require__.n = (module)=>{
|
|
8
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
9
|
+
__webpack_require__.d(getter, {
|
|
10
|
+
a: getter
|
|
11
|
+
});
|
|
12
|
+
return getter;
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
17
|
+
var define = (defs, kind)=>{
|
|
18
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
[kind]: defs[key]
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
define(getters, "get");
|
|
24
|
+
define(values, "value");
|
|
25
|
+
};
|
|
26
|
+
})();
|
|
27
|
+
(()=>{
|
|
28
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
29
|
+
})();
|
|
30
|
+
var __webpack_exports__ = {};
|
|
31
|
+
const external_node_child_process_namespaceObject = require("node:child_process");
|
|
32
|
+
const external_node_fs_namespaceObject = require("node:fs");
|
|
33
|
+
var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
|
|
34
|
+
const external_node_path_namespaceObject = require("node:path");
|
|
35
|
+
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
36
|
+
const external_node_readline_namespaceObject = require("node:readline");
|
|
37
|
+
var external_node_readline_default = /*#__PURE__*/ __webpack_require__.n(external_node_readline_namespaceObject);
|
|
38
|
+
const external_node_url_namespaceObject = require("node:url");
|
|
39
|
+
const external_create_package_root_cjs_namespaceObject = require("./create-package-root.cjs");
|
|
40
|
+
const index_cjs_namespaceObject = require("./locale/index.cjs");
|
|
41
|
+
const external_ultramodern_package_source_cjs_namespaceObject = require("./ultramodern-package-source.cjs");
|
|
42
|
+
const external_ultramodern_workspace_cjs_namespaceObject = require("./ultramodern-workspace.cjs");
|
|
43
|
+
const src_dirname = external_node_path_default().dirname((0, external_node_url_namespaceObject.fileURLToPath)(__rslib_import_meta_url__));
|
|
44
|
+
const createPackageRoot = (0, external_create_package_root_cjs_namespaceObject.resolveCreatePackageRoot)(src_dirname);
|
|
45
|
+
const semverPattern = /^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
|
|
46
|
+
const LEGACY_MODERN_JS_FLAG = '--legacy-modern-js';
|
|
47
|
+
const LEGACY_MODERN_JS_CONFIRMATION = 'USE LEGACY MODERN.JS';
|
|
48
|
+
function getOptionValue(args, names) {
|
|
49
|
+
for (const name of names){
|
|
50
|
+
const prefix = `${name}=`;
|
|
51
|
+
const byEquals = args.find((arg)=>arg.startsWith(prefix));
|
|
52
|
+
if (byEquals) return byEquals.slice(prefix.length);
|
|
53
|
+
const index = args.findIndex((arg)=>arg === name);
|
|
54
|
+
if (-1 !== index && args[index + 1] && !args[index + 1].startsWith('-')) return args[index + 1];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const detectLanguage = ()=>{
|
|
58
|
+
const lang = getOptionValue(process.argv.slice(2), [
|
|
59
|
+
'--lang',
|
|
60
|
+
'-l'
|
|
61
|
+
]);
|
|
62
|
+
if ('zh' === lang) return 'zh';
|
|
63
|
+
return 'en';
|
|
64
|
+
};
|
|
65
|
+
index_cjs_namespaceObject.i18n.changeLanguage({
|
|
66
|
+
locale: detectLanguage()
|
|
67
|
+
});
|
|
68
|
+
function readCreatePackageJson() {
|
|
69
|
+
const createPackageJson = external_node_path_default().join(createPackageRoot, 'package.json');
|
|
70
|
+
return JSON.parse(external_node_fs_default().readFileSync(createPackageJson, 'utf-8'));
|
|
71
|
+
}
|
|
72
|
+
function isBleedingDevCreatePackage(createPackage) {
|
|
73
|
+
return createPackage.name === external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_CREATE_PACKAGE;
|
|
74
|
+
}
|
|
75
|
+
function getBleedingDevFrameworkVersion(createPackage, fallbackVersion) {
|
|
76
|
+
const frameworkVersion = createPackage.ultramodern?.frameworkVersion;
|
|
77
|
+
return 'string' == typeof frameworkVersion && frameworkVersion.length > 0 ? frameworkVersion : fallbackVersion;
|
|
78
|
+
}
|
|
79
|
+
function showVersion() {
|
|
80
|
+
const createPackage = readCreatePackageJson();
|
|
81
|
+
const version = createPackage.version || 'unknown';
|
|
82
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.version.message, {
|
|
83
|
+
version
|
|
84
|
+
}));
|
|
85
|
+
process.exit(0);
|
|
86
|
+
}
|
|
87
|
+
function showHelp() {
|
|
88
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.title));
|
|
89
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.description));
|
|
90
|
+
console.log('');
|
|
91
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.usage));
|
|
92
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.usageExample));
|
|
93
|
+
console.log('');
|
|
94
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.options));
|
|
95
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.optionHelp));
|
|
96
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.optionVersion));
|
|
97
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.optionLang));
|
|
98
|
+
if (index_cjs_namespaceObject.localeKeys.help.optionTailwind) console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.optionTailwind));
|
|
99
|
+
if (index_cjs_namespaceObject.localeKeys.help.optionUltramodernPackageSource) console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.optionUltramodernPackageSource));
|
|
100
|
+
if (index_cjs_namespaceObject.localeKeys.help.optionUltramodernPackageScope) console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.optionUltramodernPackageScope));
|
|
101
|
+
if (index_cjs_namespaceObject.localeKeys.help.optionUltramodernPackageNamePrefix) console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.optionUltramodernPackageNamePrefix));
|
|
102
|
+
if (index_cjs_namespaceObject.localeKeys.help.optionVertical) console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.optionVertical));
|
|
103
|
+
if (index_cjs_namespaceObject.localeKeys.help.optionLegacyModernJs) console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.optionLegacyModernJs));
|
|
104
|
+
console.log('');
|
|
105
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.examples));
|
|
106
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.example1));
|
|
107
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.example2));
|
|
108
|
+
if (index_cjs_namespaceObject.localeKeys.help.example4) console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.example4));
|
|
109
|
+
if (index_cjs_namespaceObject.localeKeys.help.example5) console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.example5));
|
|
110
|
+
if (index_cjs_namespaceObject.localeKeys.help.example6) console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.example6));
|
|
111
|
+
if (index_cjs_namespaceObject.localeKeys.help.example12) console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.example12));
|
|
112
|
+
console.log('');
|
|
113
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.help.moreInfo));
|
|
114
|
+
console.log('');
|
|
115
|
+
process.exit(0);
|
|
116
|
+
}
|
|
117
|
+
function promptInput(question) {
|
|
118
|
+
const rl = external_node_readline_default().createInterface({
|
|
119
|
+
input: process.stdin,
|
|
120
|
+
output: process.stdout
|
|
121
|
+
});
|
|
122
|
+
return new Promise((resolve)=>{
|
|
123
|
+
rl.question(question, (answer)=>{
|
|
124
|
+
rl.close();
|
|
125
|
+
resolve(answer.trim());
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function detectLegacyModernJsFlag(args) {
|
|
130
|
+
if (args.some((arg)=>arg.startsWith(`${LEGACY_MODERN_JS_FLAG}=`))) {
|
|
131
|
+
console.error(`${LEGACY_MODERN_JS_FLAG} does not accept a value.`);
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
return args.includes(LEGACY_MODERN_JS_FLAG);
|
|
135
|
+
}
|
|
136
|
+
function stripLegacyModernJsArgs(args) {
|
|
137
|
+
return args.filter((arg)=>arg !== LEGACY_MODERN_JS_FLAG);
|
|
138
|
+
}
|
|
139
|
+
async function confirmLegacyModernJsSetup() {
|
|
140
|
+
console.error('');
|
|
141
|
+
console.error(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.legacyModernJsWarning));
|
|
142
|
+
console.error('');
|
|
143
|
+
const answer = await promptInput(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.prompt.legacyModernJsConfirmation, {
|
|
144
|
+
confirmation: LEGACY_MODERN_JS_CONFIRMATION
|
|
145
|
+
}));
|
|
146
|
+
if (answer !== LEGACY_MODERN_JS_CONFIRMATION) {
|
|
147
|
+
console.error(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.error.legacyModernJsNotConfirmed));
|
|
148
|
+
process.exit(1);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function delegateLegacyModernJsSetup(args) {
|
|
152
|
+
const forwardedArgs = stripLegacyModernJsArgs(args);
|
|
153
|
+
if (commandExists('pnpm')) return void runSetupCommand('pnpm', [
|
|
154
|
+
'dlx',
|
|
155
|
+
'@modern-js/create',
|
|
156
|
+
...forwardedArgs
|
|
157
|
+
], {
|
|
158
|
+
stdio: 'inherit'
|
|
159
|
+
});
|
|
160
|
+
if (commandExists('npx')) return void runSetupCommand('npx', [
|
|
161
|
+
'@modern-js/create',
|
|
162
|
+
...forwardedArgs
|
|
163
|
+
], {
|
|
164
|
+
stdio: 'inherit'
|
|
165
|
+
});
|
|
166
|
+
throw new Error('Legacy Modern.js setup requires pnpm or npx to run @modern-js/create.');
|
|
167
|
+
}
|
|
168
|
+
function detectTailwindFlag() {
|
|
169
|
+
const args = process.argv.slice(2);
|
|
170
|
+
return !args.includes('--no-tailwind');
|
|
171
|
+
}
|
|
172
|
+
function detectExplicitTailwindFlag() {
|
|
173
|
+
const args = process.argv.slice(2);
|
|
174
|
+
if (args.includes('--no-tailwind')) return false;
|
|
175
|
+
if (args.includes('--tailwind')) return true;
|
|
176
|
+
}
|
|
177
|
+
function detectVerticalFlag() {
|
|
178
|
+
const args = process.argv.slice(2);
|
|
179
|
+
if (args.some((arg)=>arg.startsWith('--vertical='))) {
|
|
180
|
+
console.error('--vertical does not accept a value. Use: create <name> --vertical');
|
|
181
|
+
process.exit(1);
|
|
182
|
+
}
|
|
183
|
+
return args.includes('--vertical');
|
|
184
|
+
}
|
|
185
|
+
function detectUltramodernPackageSource(args, defaultPackageVersion, createPackage) {
|
|
186
|
+
const bleedingDevDefaults = isBleedingDevCreatePackage(createPackage);
|
|
187
|
+
const strategy = getOptionValue(args, [
|
|
188
|
+
'--ultramodern-package-source'
|
|
189
|
+
]) ?? (bleedingDevDefaults ? 'install' : 'workspace');
|
|
190
|
+
if ('workspace' !== strategy && 'install' !== strategy) {
|
|
191
|
+
console.error('--ultramodern-package-source must be "workspace" or "install"');
|
|
192
|
+
process.exit(1);
|
|
193
|
+
}
|
|
194
|
+
const packageSourceStrategy = strategy;
|
|
195
|
+
const explicitRegistry = getOptionValue(args, [
|
|
196
|
+
'--ultramodern-package-registry'
|
|
197
|
+
]);
|
|
198
|
+
const aliasScope = getOptionValue(args, [
|
|
199
|
+
'--ultramodern-package-scope'
|
|
200
|
+
]) ?? (bleedingDevDefaults && 'install' === packageSourceStrategy && !explicitRegistry ? external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_PACKAGE_SCOPE : void 0);
|
|
201
|
+
return {
|
|
202
|
+
strategy: packageSourceStrategy,
|
|
203
|
+
modernPackageVersion: getOptionValue(args, [
|
|
204
|
+
'--ultramodern-package-version'
|
|
205
|
+
]) ?? defaultPackageVersion,
|
|
206
|
+
registry: explicitRegistry,
|
|
207
|
+
aliasScope,
|
|
208
|
+
aliasPackageNamePrefix: getOptionValue(args, [
|
|
209
|
+
'--ultramodern-package-name-prefix'
|
|
210
|
+
]) ?? (aliasScope ? external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_PACKAGE_NAME_PREFIX : void 0)
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
function hasExplicitUltramodernPackageSource(args, value) {
|
|
214
|
+
const configuredValue = getOptionValue(args, [
|
|
215
|
+
'--ultramodern-package-source'
|
|
216
|
+
]);
|
|
217
|
+
return value ? configuredValue === value : void 0 !== configuredValue;
|
|
218
|
+
}
|
|
219
|
+
function readBleedingDevFrameworkVersionFromRegistry() {
|
|
220
|
+
const envVersion = process.env[external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_FRAMEWORK_VERSION_ENV]?.trim();
|
|
221
|
+
if (envVersion) {
|
|
222
|
+
if (!semverPattern.test(envVersion)) {
|
|
223
|
+
console.error(`${external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_FRAMEWORK_VERSION_ENV} must be a valid semver version`);
|
|
224
|
+
process.exit(1);
|
|
225
|
+
}
|
|
226
|
+
return envVersion;
|
|
227
|
+
}
|
|
228
|
+
try {
|
|
229
|
+
const rawVersion = runSetupCommand('npm', [
|
|
230
|
+
'view',
|
|
231
|
+
`${external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_CREATE_PACKAGE}@latest`,
|
|
232
|
+
'ultramodern.frameworkVersion',
|
|
233
|
+
'--json'
|
|
234
|
+
]).trim();
|
|
235
|
+
const version = JSON.parse(rawVersion);
|
|
236
|
+
if ('string' == typeof version && semverPattern.test(version)) return version;
|
|
237
|
+
} catch {}
|
|
238
|
+
console.error([
|
|
239
|
+
`Could not resolve ${external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_CREATE_PACKAGE}@latest ultramodern.frameworkVersion.`,
|
|
240
|
+
'Pass --workspace to use local workspace protocol dependencies,',
|
|
241
|
+
'or pass --ultramodern-package-version with the exact BleedingDev framework cohort.'
|
|
242
|
+
].join(' '));
|
|
243
|
+
process.exit(1);
|
|
244
|
+
}
|
|
245
|
+
function resolveInstallBackedPackageSource(args, createPackage, packageSource) {
|
|
246
|
+
const explicitVersion = getOptionValue(args, [
|
|
247
|
+
'--ultramodern-package-version'
|
|
248
|
+
]);
|
|
249
|
+
const explicitRegistry = getOptionValue(args, [
|
|
250
|
+
'--ultramodern-package-registry'
|
|
251
|
+
]);
|
|
252
|
+
const aliasScope = getOptionValue(args, [
|
|
253
|
+
'--ultramodern-package-scope'
|
|
254
|
+
]) ?? packageSource.aliasScope ?? (explicitRegistry ? void 0 : external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_PACKAGE_SCOPE);
|
|
255
|
+
return {
|
|
256
|
+
...packageSource,
|
|
257
|
+
strategy: 'install',
|
|
258
|
+
modernPackageVersion: explicitVersion ?? (isBleedingDevCreatePackage(createPackage) ? packageSource.modernPackageVersion : readBleedingDevFrameworkVersionFromRegistry()),
|
|
259
|
+
aliasScope,
|
|
260
|
+
aliasPackageNamePrefix: getOptionValue(args, [
|
|
261
|
+
'--ultramodern-package-name-prefix'
|
|
262
|
+
]) ?? packageSource.aliasPackageNamePrefix ?? (aliasScope ? external_ultramodern_package_source_cjs_namespaceObject.BLEEDINGDEV_PACKAGE_NAME_PREFIX : void 0)
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
function resolveWorkspacePackageSource(args, createPackage, packageSource) {
|
|
266
|
+
if (hasExplicitUltramodernPackageSource(args, 'workspace')) return {
|
|
267
|
+
...packageSource,
|
|
268
|
+
strategy: 'workspace',
|
|
269
|
+
modernPackageVersion: external_ultramodern_package_source_cjs_namespaceObject.WORKSPACE_PACKAGE_VERSION
|
|
270
|
+
};
|
|
271
|
+
return resolveInstallBackedPackageSource(args, createPackage, packageSource);
|
|
272
|
+
}
|
|
273
|
+
function runSetupCommand(command, args, options = {}) {
|
|
274
|
+
return (0, external_node_child_process_namespaceObject.execFileSync)(command, args, {
|
|
275
|
+
cwd: options.cwd,
|
|
276
|
+
encoding: 'utf-8',
|
|
277
|
+
stdio: options.stdio ?? [
|
|
278
|
+
'ignore',
|
|
279
|
+
'pipe',
|
|
280
|
+
'pipe'
|
|
281
|
+
]
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
function commandExists(command) {
|
|
285
|
+
try {
|
|
286
|
+
runSetupCommand(command, [
|
|
287
|
+
'--version'
|
|
288
|
+
], {
|
|
289
|
+
stdio: 'ignore'
|
|
290
|
+
});
|
|
291
|
+
return true;
|
|
292
|
+
} catch {
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
function installGitForGeneratedProject() {
|
|
297
|
+
if (commandExists('git')) return;
|
|
298
|
+
const runShell = (script)=>runSetupCommand('sh', [
|
|
299
|
+
'-lc',
|
|
300
|
+
script
|
|
301
|
+
], {
|
|
302
|
+
stdio: 'inherit'
|
|
303
|
+
});
|
|
304
|
+
const sudo = 'function' == typeof process.getuid && 0 === process.getuid() ? '' : 'sudo ';
|
|
305
|
+
if (commandExists('brew')) runSetupCommand('brew', [
|
|
306
|
+
'install',
|
|
307
|
+
'git'
|
|
308
|
+
], {
|
|
309
|
+
stdio: 'inherit'
|
|
310
|
+
});
|
|
311
|
+
else if ('linux' === process.platform && commandExists('apt-get')) runShell(`${sudo}apt-get update && ${sudo}apt-get install -y git`);
|
|
312
|
+
else if ('linux' === process.platform && commandExists('dnf')) runShell(`${sudo}dnf install -y git`);
|
|
313
|
+
else if ('linux' === process.platform && commandExists('yum')) runShell(`${sudo}yum install -y git`);
|
|
314
|
+
else if ('linux' === process.platform && commandExists('apk')) runShell('apk add --no-cache git');
|
|
315
|
+
if (!commandExists('git')) throw new Error('Git is required for UltraModern setup. Install git and rerun create, or run pnpm skills:install after installing git.');
|
|
316
|
+
}
|
|
317
|
+
function isInsideGitWorkTree(targetDir) {
|
|
318
|
+
try {
|
|
319
|
+
return 'true' === runSetupCommand('git', [
|
|
320
|
+
'rev-parse',
|
|
321
|
+
'--is-inside-work-tree'
|
|
322
|
+
], {
|
|
323
|
+
cwd: targetDir
|
|
324
|
+
}).trim();
|
|
325
|
+
} catch {
|
|
326
|
+
return false;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
function initializeGeneratedGitRepository(targetDir) {
|
|
330
|
+
installGitForGeneratedProject();
|
|
331
|
+
if (isInsideGitWorkTree(targetDir)) return;
|
|
332
|
+
try {
|
|
333
|
+
runSetupCommand('git', [
|
|
334
|
+
'init',
|
|
335
|
+
'-b',
|
|
336
|
+
'main'
|
|
337
|
+
], {
|
|
338
|
+
cwd: targetDir,
|
|
339
|
+
stdio: 'inherit'
|
|
340
|
+
});
|
|
341
|
+
} catch {
|
|
342
|
+
runSetupCommand('git', [
|
|
343
|
+
'init'
|
|
344
|
+
], {
|
|
345
|
+
cwd: targetDir,
|
|
346
|
+
stdio: 'inherit'
|
|
347
|
+
});
|
|
348
|
+
runSetupCommand('git', [
|
|
349
|
+
'branch',
|
|
350
|
+
'-M',
|
|
351
|
+
'main'
|
|
352
|
+
], {
|
|
353
|
+
cwd: targetDir,
|
|
354
|
+
stdio: 'inherit'
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
function isDirectoryEmpty(dirPath) {
|
|
359
|
+
if (!external_node_fs_default().existsSync(dirPath)) return false;
|
|
360
|
+
try {
|
|
361
|
+
const files = external_node_fs_default().readdirSync(dirPath);
|
|
362
|
+
return 0 === files.length;
|
|
363
|
+
} catch {
|
|
364
|
+
return false;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
async function getProjectName() {
|
|
368
|
+
const args = process.argv.slice(2);
|
|
369
|
+
const optionWithValue = new Set([
|
|
370
|
+
'--lang',
|
|
371
|
+
'-l',
|
|
372
|
+
'--ultramodern-package-source',
|
|
373
|
+
'--ultramodern-package-version',
|
|
374
|
+
'--ultramodern-package-registry',
|
|
375
|
+
'--ultramodern-package-scope',
|
|
376
|
+
'--ultramodern-package-name-prefix'
|
|
377
|
+
]);
|
|
378
|
+
const optionWithoutValue = new Set([
|
|
379
|
+
'--help',
|
|
380
|
+
'-h',
|
|
381
|
+
'--version',
|
|
382
|
+
'-v',
|
|
383
|
+
'--tailwind',
|
|
384
|
+
'--no-tailwind',
|
|
385
|
+
'--workspace',
|
|
386
|
+
'--vertical',
|
|
387
|
+
LEGACY_MODERN_JS_FLAG
|
|
388
|
+
]);
|
|
389
|
+
const positionalArgs = [];
|
|
390
|
+
for(let i = 0; i < args.length; i++){
|
|
391
|
+
const arg = args[i];
|
|
392
|
+
if (!optionWithoutValue.has(arg)) {
|
|
393
|
+
if (optionWithValue.has(arg)) {
|
|
394
|
+
i += 1;
|
|
395
|
+
continue;
|
|
396
|
+
}
|
|
397
|
+
if (!(arg.startsWith('--lang=') || arg.startsWith('--ultramodern-package-source=') || arg.startsWith('--ultramodern-package-version=') || arg.startsWith('--ultramodern-package-registry=') || arg.startsWith('--ultramodern-package-scope=') || arg.startsWith('--ultramodern-package-name-prefix='))) positionalArgs.push(arg);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
if (positionalArgs.length > 1) {
|
|
401
|
+
console.error(`Unexpected positional argument: ${positionalArgs[1]}`);
|
|
402
|
+
process.exit(1);
|
|
403
|
+
}
|
|
404
|
+
const projectNameArg = positionalArgs[0];
|
|
405
|
+
if (projectNameArg) {
|
|
406
|
+
if ('.' === projectNameArg) return {
|
|
407
|
+
name: external_node_path_default().basename(process.cwd()),
|
|
408
|
+
useCurrentDir: true
|
|
409
|
+
};
|
|
410
|
+
return {
|
|
411
|
+
name: projectNameArg,
|
|
412
|
+
useCurrentDir: false
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
const currentDir = process.cwd();
|
|
416
|
+
if (isDirectoryEmpty(currentDir)) return {
|
|
417
|
+
name: external_node_path_default().basename(currentDir),
|
|
418
|
+
useCurrentDir: true
|
|
419
|
+
};
|
|
420
|
+
const projectName = await promptInput(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.prompt.projectName));
|
|
421
|
+
if (!projectName) {
|
|
422
|
+
console.error(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.error.projectNameEmpty));
|
|
423
|
+
process.exit(1);
|
|
424
|
+
}
|
|
425
|
+
return {
|
|
426
|
+
name: projectName,
|
|
427
|
+
useCurrentDir: false
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
async function main() {
|
|
431
|
+
const args = process.argv.slice(2);
|
|
432
|
+
if (args.includes('--help') || args.includes('-h')) return void showHelp();
|
|
433
|
+
if (args.includes('--version') || args.includes('-v')) return void showVersion();
|
|
434
|
+
if (detectLegacyModernJsFlag(args)) {
|
|
435
|
+
await confirmLegacyModernJsSetup();
|
|
436
|
+
delegateLegacyModernJsSetup(args);
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
console.log(`\n${index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.welcome)}\n`);
|
|
440
|
+
const { name: projectName, useCurrentDir } = await getProjectName();
|
|
441
|
+
const targetDir = useCurrentDir ? process.cwd() : external_node_path_default().isAbsolute(projectName) ? projectName : external_node_path_default().resolve(process.cwd(), projectName);
|
|
442
|
+
const generatedPackageName = useCurrentDir || external_node_path_default().isAbsolute(projectName) ? external_node_path_default().basename(targetDir) : projectName;
|
|
443
|
+
const createPackage = readCreatePackageJson();
|
|
444
|
+
const version = createPackage.version || 'latest';
|
|
445
|
+
const ultramodernPackageVersion = isBleedingDevCreatePackage(createPackage) ? getBleedingDevFrameworkVersion(createPackage, version) : version;
|
|
446
|
+
const addVertical = detectVerticalFlag();
|
|
447
|
+
if (addVertical) {
|
|
448
|
+
const overridePackageSource = args.some((arg)=>arg.startsWith('--ultramodern-package-')) ? detectUltramodernPackageSource(args, ultramodernPackageVersion, createPackage) : void 0;
|
|
449
|
+
(0, external_ultramodern_workspace_cjs_namespaceObject.addUltramodernVertical)({
|
|
450
|
+
workspaceRoot: process.cwd(),
|
|
451
|
+
name: generatedPackageName,
|
|
452
|
+
modernVersion: version,
|
|
453
|
+
enableTailwind: detectExplicitTailwindFlag(),
|
|
454
|
+
packageSource: overridePackageSource
|
|
455
|
+
});
|
|
456
|
+
const dim = '\x1b[2m\x1b[3m';
|
|
457
|
+
const reset = '\x1b[0m';
|
|
458
|
+
console.log(`${index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.success)}\n`);
|
|
459
|
+
console.log(`${dim} pnpm check${reset}\n`);
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
if (external_node_fs_default().existsSync(targetDir)) {
|
|
463
|
+
const files = external_node_fs_default().readdirSync(targetDir);
|
|
464
|
+
if (files.length > 0) {
|
|
465
|
+
console.error(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.error.directoryExists, {
|
|
466
|
+
projectName
|
|
467
|
+
}));
|
|
468
|
+
process.exit(1);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
const packageSource = resolveWorkspacePackageSource(args, createPackage, detectUltramodernPackageSource(args, ultramodernPackageVersion, createPackage));
|
|
472
|
+
(0, external_ultramodern_workspace_cjs_namespaceObject.generateUltramodernWorkspace)({
|
|
473
|
+
targetDir,
|
|
474
|
+
packageName: generatedPackageName,
|
|
475
|
+
modernVersion: version,
|
|
476
|
+
enableTailwind: detectTailwindFlag(),
|
|
477
|
+
packageSource
|
|
478
|
+
});
|
|
479
|
+
initializeGeneratedGitRepository(targetDir);
|
|
480
|
+
const dim = '\x1b[2m\x1b[3m';
|
|
481
|
+
const reset = '\x1b[0m';
|
|
482
|
+
console.log(`${index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.success)}\n`);
|
|
483
|
+
console.log(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.nextSteps));
|
|
484
|
+
if (!useCurrentDir) console.log(`${dim} ${index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.step1, {
|
|
485
|
+
projectName
|
|
486
|
+
})}${reset}`);
|
|
487
|
+
console.log(`${dim} ${index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.step2)}${reset}`);
|
|
488
|
+
console.log(`${dim} pnpm check${reset}`);
|
|
489
|
+
console.log(`${dim} ${index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.message.step3)}${reset}\n`);
|
|
490
|
+
}
|
|
491
|
+
main().catch((error)=>{
|
|
492
|
+
console.error(index_cjs_namespaceObject.i18n.t(index_cjs_namespaceObject.localeKeys.error.createFailed), error);
|
|
493
|
+
process.exit(1);
|
|
494
|
+
});
|
|
495
|
+
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
496
|
+
Object.defineProperty(exports, '__esModule', {
|
|
497
|
+
value: true
|
|
498
|
+
});
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
})();
|
|
18
|
+
(()=>{
|
|
19
|
+
__webpack_require__.r = (exports1)=>{
|
|
20
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
+
value: 'Module'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: true
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
var __webpack_exports__ = {};
|
|
29
|
+
__webpack_require__.r(__webpack_exports__);
|
|
30
|
+
const EN_LOCALE = {
|
|
31
|
+
prompt: {
|
|
32
|
+
projectName: 'Please enter project name: ',
|
|
33
|
+
legacyModernJsConfirmation: 'Type "{confirmation}" to continue with the original Modern.js setup: '
|
|
34
|
+
},
|
|
35
|
+
error: {
|
|
36
|
+
projectNameEmpty: 'Error: Project name cannot be empty',
|
|
37
|
+
directoryExists: 'Error: Directory "{projectName}" already exists and is not empty',
|
|
38
|
+
legacyModernJsNotConfirmed: 'Aborted. UltraModern.js remains the default unattended setup.',
|
|
39
|
+
createFailed: 'Error creating project:'
|
|
40
|
+
},
|
|
41
|
+
message: {
|
|
42
|
+
welcome: '🚀 Welcome to UltraModern.js',
|
|
43
|
+
success: '✨ Created successfully!',
|
|
44
|
+
nextSteps: '📋 Next steps:',
|
|
45
|
+
step1: 'cd {projectName}',
|
|
46
|
+
step2: 'pnpm install',
|
|
47
|
+
step3: 'pnpm dev',
|
|
48
|
+
legacyModernJsWarning: "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\nBRUTAL WARNING: YOU ARE OPTING OUT OF ULTRAMODERN.JS DEFAULTS.\nThe unattended default is the best UltraModern.js configuration:\na structured SuperApp workspace, presetUltramodern, TanStack Router,\nEffect BFF, Tailwind CSS v4, and the BleedingDev package cohort.\nThe original Modern.js setup is a dangerous opt-in path.\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
49
|
+
},
|
|
50
|
+
help: {
|
|
51
|
+
title: '🚀 UltraModern.js Project Creator',
|
|
52
|
+
description: 'Create a new UltraModern.js SuperApp workspace with the full quality baseline by default',
|
|
53
|
+
usage: '📖 Usage:',
|
|
54
|
+
usageExample: ' pnpm dlx @bleedingdev/modern-js-create [project-name] [options]',
|
|
55
|
+
options: '⚙️ Options:',
|
|
56
|
+
optionHelp: ' -h, --help Display this help message',
|
|
57
|
+
optionVersion: ' -v, --version Display version information',
|
|
58
|
+
optionLang: ' -l, --lang Set the language (en default; zh opt-in)',
|
|
59
|
+
optionTailwind: ' --no-tailwind Disable default Tailwind CSS v4 workspace styling',
|
|
60
|
+
optionWorkspace: ' --workspace Use workspace protocol for @modern-js dependencies (for local monorepo testing)',
|
|
61
|
+
optionUltramodernPackageSource: ' --ultramodern-package-source Select UltraModern package source (workspace or install; BleedingDev defaults to install aliases)',
|
|
62
|
+
optionUltramodernPackageScope: ' --ultramodern-package-scope Publish scope for npm alias installs (for example bleedingdev)',
|
|
63
|
+
optionUltramodernPackageNamePrefix: ' --ultramodern-package-name-prefix Prefix for npm alias package names (default: modern-js-)',
|
|
64
|
+
optionVertical: ' --vertical Mutate the current existing UltraModern workspace and wire a MicroVertical named <project-name>',
|
|
65
|
+
optionLegacyModernJs: ' --legacy-modern-js Opt into the original Modern.js setup after a large warning and typed confirmation',
|
|
66
|
+
examples: '💡 Examples:',
|
|
67
|
+
example1: ' pnpm dlx @bleedingdev/modern-js-create my-workspace',
|
|
68
|
+
example2: ' pnpm dlx @bleedingdev/modern-js-create my-workspace --lang zh',
|
|
69
|
+
example3: ' pnpm dlx @bleedingdev/modern-js-create my-workspace --no-tailwind',
|
|
70
|
+
example4: ' pnpm dlx @bleedingdev/modern-js-create --help',
|
|
71
|
+
example5: ' pnpm dlx @bleedingdev/modern-js-create .',
|
|
72
|
+
example6: ' pnpm dlx @bleedingdev/modern-js-create my-workspace --workspace',
|
|
73
|
+
example7: '',
|
|
74
|
+
example8: '',
|
|
75
|
+
example9: '',
|
|
76
|
+
example10: '',
|
|
77
|
+
example11: '',
|
|
78
|
+
example12: ' pnpm dlx @bleedingdev/modern-js-create catalog --vertical',
|
|
79
|
+
moreInfo: '📚 Learn more: https://modernjs.dev'
|
|
80
|
+
},
|
|
81
|
+
version: {
|
|
82
|
+
message: '@bleedingdev/modern-js-create version: {version}'
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
__webpack_require__.d(__webpack_exports__, {}, {
|
|
86
|
+
EN_LOCALE: EN_LOCALE
|
|
87
|
+
});
|
|
88
|
+
exports.EN_LOCALE = __webpack_exports__.EN_LOCALE;
|
|
89
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
90
|
+
"EN_LOCALE"
|
|
91
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
92
|
+
Object.defineProperty(exports, '__esModule', {
|
|
93
|
+
value: true
|
|
94
|
+
});
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
|
+
var define = (defs, kind)=>{
|
|
6
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
[kind]: defs[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
define(getters, "get");
|
|
12
|
+
define(values, "value");
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
})();
|
|
18
|
+
(()=>{
|
|
19
|
+
__webpack_require__.r = (exports1)=>{
|
|
20
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
+
value: 'Module'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: true
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
var __webpack_exports__ = {};
|
|
29
|
+
__webpack_require__.r(__webpack_exports__);
|
|
30
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
i18n: ()=>i18n,
|
|
32
|
+
localeKeys: ()=>localeKeys
|
|
33
|
+
});
|
|
34
|
+
const i18n_utils_namespaceObject = require("@modern-js/i18n-utils");
|
|
35
|
+
const external_en_cjs_namespaceObject = require("./en.cjs");
|
|
36
|
+
const external_zh_cjs_namespaceObject = require("./zh.cjs");
|
|
37
|
+
const i18n = new i18n_utils_namespaceObject.I18n();
|
|
38
|
+
const localeKeys = i18n.init('en', {
|
|
39
|
+
zh: external_zh_cjs_namespaceObject.ZH_LOCALE,
|
|
40
|
+
en: external_en_cjs_namespaceObject.EN_LOCALE
|
|
41
|
+
});
|
|
42
|
+
exports.i18n = __webpack_exports__.i18n;
|
|
43
|
+
exports.localeKeys = __webpack_exports__.localeKeys;
|
|
44
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
45
|
+
"i18n",
|
|
46
|
+
"localeKeys"
|
|
47
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
48
|
+
Object.defineProperty(exports, '__esModule', {
|
|
49
|
+
value: true
|
|
50
|
+
});
|