zova-cli-set-front 1.2.118 → 1.2.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.
@@ -1,6 +1,6 @@
1
1
  import { metadataCustomSnippet } from '@cabloy/cli';
2
2
 
3
- const __snippet_declare = "import { ZPage<%=argv.nameMeta.fullCapitalize%> } from './.metadata/page/<%=argv.pageName%>.js';\n";
3
+ const __snippet_declare = "import { ZPage<%=argv.nameMeta.fullCapitalize%> } from './.metadata/page/<%=argv.pageName%>.ts';\n";
4
4
  const __snippet_body = '{ path: \'<%=argv.moduleInfo.name!==argv.pageName?argv.pageName:""%>\', component: ZPage<%=argv.nameMeta.fullCapitalize%> },';
5
5
 
6
6
  export default metadataCustomSnippet({
@@ -19,7 +19,7 @@ export default metadataCustomSnippet({
19
19
  ast = ast.replace(" } from 'zova';", ", Use } from 'zova';");
20
20
  }
21
21
  ast = ast
22
- .replace("from 'zova-module-a-bean';", `from 'zova-module-a-bean';\nimport { ${argv.renderClassName} } from './render.${argv.renderName}.jsx';`)
22
+ .replace("from 'zova-module-a-bean';", `from 'zova-module-a-bean';\nimport { ${argv.renderClassName} } from './render.${argv.renderName}.tsx';`)
23
23
  .replace(
24
24
  'extends BeanRenderBase {',
25
25
  `extends BeanRenderBase {\n @Use()\n $$$$render${argv.renderNameCapitalize}: ${argv.renderClassName};\n`,
@@ -19,7 +19,7 @@ export default metadataCustomSnippet({
19
19
  ast = ast.replace(" } from 'zova';", ", Use } from 'zova';");
20
20
  }
21
21
  ast = ast
22
- .replace("from 'zova-module-a-bean';", `from 'zova-module-a-bean';\nimport { ${argv.styleClassName} } from './style.${argv.styleName}.js';`)
22
+ .replace("from 'zova-module-a-bean';", `from 'zova-module-a-bean';\nimport { ${argv.styleClassName} } from './style.${argv.styleName}.ts';`)
23
23
  .replace('extends BeanStyleBase {', `extends BeanStyleBase {\n @Use()\n $$$$style${argv.styleNameCapitalize}: ${argv.styleClassName};\n`);
24
24
  // ok
25
25
  return ast;
package/dist/index.js CHANGED
@@ -505,6 +505,7 @@ class CliBinBuildRest extends BeanCliBase {
505
505
  format: ['esm'],
506
506
  outDir,
507
507
  tsconfig: 'tsconfig.rest.json',
508
+ dts: false,
508
509
  plugins: [svgResolverPlugin()],
509
510
  deps: {
510
511
  alwaysBundle: _id => {
@@ -533,9 +534,12 @@ class CliBinBuildRest extends BeanCliBase {
533
534
  outDir,
534
535
  tsconfig: 'tsconfig.rest.json',
535
536
  clean: false,
537
+ checks: {
538
+ namespaceConflict: false
539
+ },
536
540
  dts: {
537
541
  resolver: 'oxc',
538
- tsgo: true,
542
+ generator: 'tsgo',
539
543
  eager: true,
540
544
  tsconfig: 'tsconfig.rest.json',
541
545
  emitDtsOnly: true
@@ -1775,7 +1779,7 @@ export const OpenApiBaseURL = (sys: ZovaSys) => {
1775
1779
  });
1776
1780
  // output: openapi/index.ts
1777
1781
  const indexFile = path.join(module.root, 'src/api/openapi/index.ts');
1778
- await fse.outputFile(indexFile, "export * from './baseURL.js';\nexport * from './schemas.js';\nexport * from './types.js';");
1782
+ await fse.outputFile(indexFile, "export * from './baseURL.ts';\nexport * from './schemas.ts';\nexport * from './types.ts';");
1779
1783
  await this.helper.formatFile({
1780
1784
  fileName: indexFile
1781
1785
  });
@@ -1795,7 +1799,7 @@ export const OpenApiBaseURL = (sys: ZovaSys) => {
1795
1799
  }
1796
1800
  let contentSchemas = typeSchemas.join('\n');
1797
1801
  if (contentSchemas.includes('components["schemas"]')) {
1798
- contentSchemas = `import type { components } from './types.js';\n${contentSchemas}`;
1802
+ contentSchemas = `import type { components } from './types.ts';\n${contentSchemas}`;
1799
1803
  }
1800
1804
  contentSchemas = `// eslint-disable\n${contentSchemas}`;
1801
1805
  return contentSchemas;
@@ -1955,8 +1959,8 @@ export const OpenApiBaseURL = (sys: ZovaSys) => {
1955
1959
  if (contentSignatures.length > 0) importsOpenapiValue.push('OpenApiBaseURL');
1956
1960
  if (contentTypes2.includes('components["schemas"]')) importsOpenapiType.push('components');
1957
1961
  if (contentTypes2.includes('paths[')) importsOpenapiType.push('paths');
1958
- const contentImportsOpenapiValue = importsOpenapiValue.length > 0 ? `import { ${importsOpenapiValue.join(', ')} } from './openapi/index.js';` : '';
1959
- const contentImportsOpenapiType = importsOpenapiType.length > 0 ? `import type { ${importsOpenapiType.join(', ')} } from './openapi/index.js';` : '';
1962
+ const contentImportsOpenapiValue = importsOpenapiValue.length > 0 ? `import { ${importsOpenapiValue.join(', ')} } from './openapi/index.ts';` : '';
1963
+ const contentImportsOpenapiType = importsOpenapiType.length > 0 ? `import type { ${importsOpenapiType.join(', ')} } from './openapi/index.ts';` : '';
1960
1964
  const contentImportsOpenapi = [contentImportsOpenapiValue, contentImportsOpenapiType].filter(item => !!item).join('\n');
1961
1965
  // apiContent
1962
1966
  const apiContent = `import { Api, BeanApiBase } from 'zova-module-a-api';
@@ -1985,7 +1989,7 @@ export class Api${apiName} extends BeanApiBase {
1985
1989
  }
1986
1990
  `);
1987
1991
  }
1988
- const contentImportsApiPath = importsApiPath.length > 0 ? `import { ${importsApiPath.join(', ')} } from '../api/${apiNameLower}.js';` : '';
1992
+ const contentImportsApiPath = importsApiPath.length > 0 ? `import { ${importsApiPath.join(', ')} } from '../api/${apiNameLower}.ts';` : '';
1989
1993
  const apiMetaContent = `import { BeanBase } from 'zova';
1990
1994
  import { ApiMeta } from 'zova-module-a-api';
1991
1995
  ${contentImportsApiPath}
@@ -2646,7 +2650,7 @@ class CliRefactorRenameComponent extends BeanCliBase {
2646
2650
  const routesFile = path.join(targetDir, 'src/routes.ts');
2647
2651
  let content = (await fse.readFile(routesFile)).toString();
2648
2652
  //
2649
- content = content.replace(`import { ZPage${argv.nameMeta.shortCapitalize} } from './.metadata/page/${argv.nameMeta.short}.js';`, `import { ZPage${argv.componentNameNewCapitalize} } from './.metadata/page/${argv.componentNameNew}.js';`);
2653
+ content = content.replace(`import { ZPage${argv.nameMeta.shortCapitalize} } from './.metadata/page/${argv.nameMeta.short}.ts';`, `import { ZPage${argv.componentNameNewCapitalize} } from './.metadata/page/${argv.componentNameNew}.ts';`);
2650
2654
  //
2651
2655
  const ast = gogocode(content);
2652
2656
  const astNode = ast.find('export const routes: IModuleRoute[] = [$_$]');
@@ -2772,8 +2776,8 @@ async function generateConfig(modulePath) {
2772
2776
  if (!(await fse.pathExists(configFile))) return '';
2773
2777
  // combine
2774
2778
  const content = `/** config: begin */
2775
- export * from '../config/config.js';
2776
- import { config } from '../config/config.js';
2779
+ export * from '../config/config.ts';
2780
+ import { config } from '../config/config.ts';
2777
2781
  /** config: end */
2778
2782
  `;
2779
2783
  return content;
@@ -2783,8 +2787,8 @@ async function generateConstant(modulePath) {
2783
2787
  if (!(await fse.pathExists(constantFile))) return '';
2784
2788
  // combine
2785
2789
  const content = `/** constant: begin */
2786
- export * from '../config/constants.js';
2787
- import { constants } from '../config/constants.js';
2790
+ export * from '../config/constants.ts';
2791
+ import { constants } from '../config/constants.ts';
2788
2792
  /** constant: end */
2789
2793
  `;
2790
2794
  return content;
@@ -2800,7 +2804,7 @@ async function generateLocale1(modulePath) {
2800
2804
  for (const file of files) {
2801
2805
  const localeName = path.basename(file, '.ts');
2802
2806
  const className = `locale_${localeName.replace('-', '_')}`;
2803
- contentImports.push(`import ${className} from '../config/locale/${localeName}.js';`);
2807
+ contentImports.push(`import ${className} from '../config/locale/${localeName}.ts';`);
2804
2808
  contentLocales.push(` '${localeName}': ${className},`);
2805
2809
  }
2806
2810
  // combine
@@ -2816,7 +2820,7 @@ async function generateLocale2(contentLocales) {
2816
2820
  if (!contentLocales) return '';
2817
2821
  // combine
2818
2822
  const content = `/** locale: begin */
2819
- import { locales } from './locales.js';
2823
+ import { locales } from './locales.ts';
2820
2824
  /** locale: end */
2821
2825
  `;
2822
2826
  return content;
@@ -2826,8 +2830,8 @@ async function generateError(modulePath) {
2826
2830
  if (!(await fse.pathExists(errorFile))) return '';
2827
2831
  // combine
2828
2832
  const content = `/** error: begin */
2829
- export * from '../config/errors.js';
2830
- import { errors } from '../config/errors.js';
2833
+ export * from '../config/errors.ts';
2834
+ import { errors } from '../config/errors.ts';
2831
2835
  /** error: end */
2832
2836
  `;
2833
2837
  return content;
@@ -2991,7 +2995,7 @@ async function generateMonkey_common(modulePath, commandName) {
2991
2995
  if (!(await fse.pathExists(monkeyFile))) return '';
2992
2996
  // combine
2993
2997
  const content = `/** ${commandName}: begin */
2994
- export * from '../${commandName}.js';
2998
+ export * from '../${commandName}.ts';
2995
2999
  /** ${commandName}: end */
2996
3000
  `;
2997
3001
  return content;
@@ -3001,7 +3005,7 @@ async function generateMain_common(modulePath, commandName) {
3001
3005
  if (!(await fse.pathExists(monkeyFile))) return '';
3002
3006
  // combine
3003
3007
  const content = `/** ${commandName}: begin */
3004
- export * from '../${commandName}.js';
3008
+ export * from '../${commandName}.ts';
3005
3009
  /** ${commandName}: end */
3006
3010
  `;
3007
3011
  return content;
@@ -3035,8 +3039,8 @@ async function globAllTsFiles(moduleName, modulePath) {
3035
3039
  if (fileName.startsWith('_')) continue;
3036
3040
  const parts = fileName.split('.').slice(0, -1);
3037
3041
  const isIgnore = checkIgnoreOfParts(parts);
3038
- const fileNameJS = fileName.replace('.ts', '.js').replace('.tsx', '.jsx');
3039
- const fileNameJSRelative = path.relative(pathMetadata, filePath).replace(/\\/g, '/').replace('.ts', '.js').replace('.tsx', '.jsx');
3042
+ const fileNameJS = fileName;
3043
+ const fileNameJSRelative = path.relative(pathMetadata, filePath).replace(/\\/g, '/');
3040
3044
  const fileContent = fse.readFileSync(filePath).toString();
3041
3045
  const isVirtual = fileContent.includes('@Virtual()');
3042
3046
  const isPreload = fileContent.includes('@Preload()');
@@ -3300,7 +3304,7 @@ async function generateScope(moduleName, relativeNameCapitalize, scopeResources,
3300
3304
  // combine
3301
3305
  const content = `/** scope: begin */
3302
3306
  import { ${contentImports.join(', ')} } from 'zova';
3303
- import { Scope } from '${moduleName === 'a-bean' ? '../lib/scope.js' : 'zova-module-a-bean'}';
3307
+ import { Scope } from '${moduleName === 'a-bean' ? '../lib/scope.ts' : 'zova-module-a-bean'}';
3304
3308
 
3305
3309
  @Scope()
3306
3310
  export class ScopeModule${relativeNameCapitalize} extends BeanScopeBase {}
@@ -3368,7 +3372,7 @@ async function generateScopeResourcesMeta(globFiles, metaName, _metaMeta, _scene
3368
3372
  if (globFiles.length === 0) return '';
3369
3373
  // combine
3370
3374
  const content = `/** meta ${metaName}: begin */
3371
- import { Meta${toUpperCaseFirstChar(metaName)} } from '../bean/meta.${metaName}.js';
3375
+ import { Meta${toUpperCaseFirstChar(metaName)} } from '../bean/meta.${metaName}.ts';
3372
3376
  /** meta ${metaName}: end */
3373
3377
  `;
3374
3378
  return content;
@@ -3520,14 +3524,30 @@ class CliToolsMetadata extends BeanCliBase {
3520
3524
  }
3521
3525
  async _generateThis(moduleName, relativeNameCapitalize, modulePath) {
3522
3526
  const thisDest = path.join(modulePath, 'src/.metadata/this.ts');
3523
- if (await fse.pathExists(thisDest)) return;
3527
+ const exportLine = `export { ScopeModule${relativeNameCapitalize} as ScopeModule } from './index.ts';`;
3528
+ if (await fse.pathExists(thisDest)) {
3529
+ const content = await fse.readFile(thisDest, 'utf8');
3530
+ const migrated = this._migrateOwnedExport(content, exportLine);
3531
+ if (migrated !== content) await fse.writeFile(thisDest, migrated);
3532
+ return;
3533
+ }
3524
3534
  const content = `export const __ThisModule__ = '${moduleName}';
3525
- export { ScopeModule${relativeNameCapitalize} as ScopeModule } from './index.js';
3535
+ ${exportLine}
3526
3536
  `;
3527
3537
  // save
3528
3538
  await fse.writeFile(thisDest, content);
3529
3539
  }
3540
+ _migrateOwnedExport(content, exportLine) {
3541
+ const pattern = escapeRegExp(exportLine).replace('\\.ts', '\\.(?:js|ts)').replaceAll("'", '[\'"]');
3542
+ let seen = false;
3543
+ return content.replace(new RegExp(`^([ \\t]*)${pattern}([ \\t]*)(\\r?)(\\n|$)`, 'gm'), (_line, indent, trailing, carriageReturn, newline) => {
3544
+ if (seen) return '';
3545
+ seen = true;
3546
+ return `${indent}${exportLine}${trailing}${carriageReturn}${newline}`;
3547
+ });
3548
+ }
3530
3549
  async _prependExportIfNeeded(jsContent, exportLine, sourceFile, modulePath) {
3550
+ jsContent = this._migrateOwnedExport(jsContent, exportLine);
3531
3551
  const sourcePath = path.join(modulePath, sourceFile);
3532
3552
  if ((await fse.pathExists(sourcePath)) && !jsContent.includes(exportLine)) {
3533
3553
  return `${exportLine}\n${jsContent}`;
@@ -3540,10 +3560,10 @@ export { ScopeModule${relativeNameCapitalize} as ScopeModule } from './index.js'
3540
3560
  if (await fse.pathExists(jsFile)) {
3541
3561
  jsContent = (await fse.readFile(jsFile)).toString();
3542
3562
  }
3543
- jsContent = await this._prependExportIfNeeded(jsContent, "export * from './types/index.js';", 'src/types/index.ts', modulePath);
3544
- jsContent = await this._prependExportIfNeeded(jsContent, "export * from './lib/index.js';", 'src/lib/index.ts', modulePath);
3545
- jsContent = await this._prependExportIfNeeded(jsContent, "export * from './.metadata/locales.js';", 'src/.metadata/locales.ts', modulePath);
3546
- jsContent = await this._prependExportIfNeeded(jsContent, "export * from './.metadata/index.js';", 'src/.metadata/index.ts', modulePath);
3563
+ jsContent = await this._prependExportIfNeeded(jsContent, "export * from './types/index.ts';", 'src/types/index.ts', modulePath);
3564
+ jsContent = await this._prependExportIfNeeded(jsContent, "export * from './lib/index.ts';", 'src/lib/index.ts', modulePath);
3565
+ jsContent = await this._prependExportIfNeeded(jsContent, "export * from './.metadata/locales.ts';", 'src/.metadata/locales.ts', modulePath);
3566
+ jsContent = await this._prependExportIfNeeded(jsContent, "export * from './.metadata/index.ts';", 'src/.metadata/index.ts', modulePath);
3547
3567
  // trim empty
3548
3568
  jsContent = jsContent.replace('export {};\n', '');
3549
3569
  // write
@@ -9,6 +9,7 @@ export declare class CliToolsMetadata extends BeanCliBase {
9
9
  _generateMetadata(moduleName: string, force: boolean): Promise<void>;
10
10
  _generateLocales(modulePath: string, contentLocales: any): Promise<void>;
11
11
  _generateThis(moduleName: string, relativeNameCapitalize: string, modulePath: string): Promise<void>;
12
+ _migrateOwnedExport(content: string, exportLine: string): string;
12
13
  _prependExportIfNeeded(jsContent: string, exportLine: string, sourceFile: string, modulePath: string): Promise<string>;
13
14
  _generateIndex(modulePath: string): Promise<void>;
14
15
  _generatePackage(modulePath: string, beansPreload: string[]): Promise<void>;
@@ -1,5 +1,5 @@
1
- export declare function generateConfig(modulePath: string): Promise<"" | "/** config: begin */\nexport * from '../config/config.js';\nimport { config } from '../config/config.js';\n/** config: end */\n">;
2
- export declare function generateConstant(modulePath: string): Promise<"" | "/** constant: begin */\nexport * from '../config/constants.js';\nimport { constants } from '../config/constants.js';\n/** constant: end */\n">;
1
+ export declare function generateConfig(modulePath: string): Promise<"" | "/** config: begin */\nexport * from '../config/config.ts';\nimport { config } from '../config/config.ts';\n/** config: end */\n">;
2
+ export declare function generateConstant(modulePath: string): Promise<"" | "/** constant: begin */\nexport * from '../config/constants.ts';\nimport { constants } from '../config/constants.ts';\n/** constant: end */\n">;
3
3
  export declare function generateLocale1(modulePath: string): Promise<string>;
4
- export declare function generateLocale2(contentLocales: string): Promise<"" | "/** locale: begin */\nimport { locales } from './locales.js';\n/** locale: end */\n">;
5
- export declare function generateError(modulePath: string): Promise<"" | "/** error: begin */\nexport * from '../config/errors.js';\nimport { errors } from '../config/errors.js';\n/** error: end */\n">;
4
+ export declare function generateLocale2(contentLocales: string): Promise<"" | "/** locale: begin */\nimport { locales } from './locales.ts';\n/** locale: end */\n">;
5
+ export declare function generateError(modulePath: string): Promise<"" | "/** error: begin */\nexport * from '../config/errors.ts';\nimport { errors } from '../config/errors.ts';\n/** error: end */\n">;
@@ -1,5 +1,5 @@
1
1
  import { metadataCustomSnippet } from '@cabloy/cli';
2
- const __snippet_declare = "import { ZPage<%=argv.nameMeta.fullCapitalize%> } from './.metadata/page/<%=argv.pageName%>.js';\n";
2
+ const __snippet_declare = "import { ZPage<%=argv.nameMeta.fullCapitalize%> } from './.metadata/page/<%=argv.pageName%>.ts';\n";
3
3
  const __snippet_body = '{ path: \'<%=argv.moduleInfo.name!==argv.pageName?argv.pageName:""%>\', component: ZPage<%=argv.nameMeta.fullCapitalize%> },';
4
4
  export default metadataCustomSnippet({
5
5
  file: 'src/routes.ts',
@@ -9,7 +9,7 @@ export default metadataCustomSnippet({
9
9
  ast = ast.replace(" } from 'zova';", ", Use } from 'zova';");
10
10
  }
11
11
  ast = ast
12
- .replace("from 'zova-module-a-bean';", `from 'zova-module-a-bean';\nimport { ${argv.renderClassName} } from './render.${argv.renderName}.jsx';`)
12
+ .replace("from 'zova-module-a-bean';", `from 'zova-module-a-bean';\nimport { ${argv.renderClassName} } from './render.${argv.renderName}.tsx';`)
13
13
  .replace('extends BeanRenderBase {', `extends BeanRenderBase {\n @Use()\n $$$$render${argv.renderNameCapitalize}: ${argv.renderClassName};\n`);
14
14
  // ok
15
15
  return ast;
@@ -9,7 +9,7 @@ export default metadataCustomSnippet({
9
9
  ast = ast.replace(" } from 'zova';", ", Use } from 'zova';");
10
10
  }
11
11
  ast = ast
12
- .replace("from 'zova-module-a-bean';", `from 'zova-module-a-bean';\nimport { ${argv.styleClassName} } from './style.${argv.styleName}.js';`)
12
+ .replace("from 'zova-module-a-bean';", `from 'zova-module-a-bean';\nimport { ${argv.styleClassName} } from './style.${argv.styleName}.ts';`)
13
13
  .replace('extends BeanStyleBase {', `extends BeanStyleBase {\n @Use()\n $$$$style${argv.styleNameCapitalize}: ${argv.styleClassName};\n`);
14
14
  // ok
15
15
  return ast;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-cli-set-front",
3
- "version": "1.2.118",
4
- "gitHead": "31497914f41f111229d4d35139e4a609a522b49d",
3
+ "version": "1.2.120",
4
+ "gitHead": "c27fb3b5f3566b676b7d635e2e26545c6d389ad7",
5
5
  "description": "zova cli-set-front",
6
6
  "keywords": [
7
7
  "framework",
@@ -59,12 +59,15 @@
59
59
  "rolldown": "^1.2.14",
60
60
  "rolldown-plugin-dts": "^0.22.5",
61
61
  "svgo": "^3.2.0",
62
- "tsdown": "^0.21.7",
62
+ "tsdown": "^0.23.1",
63
63
  "typescript": "^5.9.3",
64
64
  "urllib": "^4.6.11",
65
65
  "vite": "^8.3.4",
66
66
  "yaml": "^2.8.3",
67
67
  "zova-openapi": "^1.1.17",
68
- "zova-vite": "^1.1.50"
68
+ "zova-vite": "^1.1.51"
69
+ },
70
+ "engines": {
71
+ "node": ">=24.11.0"
69
72
  }
70
73
  }