vona-cli-set-api 1.0.417 → 1.0.419

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.
Files changed (25) hide show
  1. package/cli/templates/create/module/boilerplate/_package.json +1 -1
  2. package/cli/templates/create/project/basic/boilerplate/_.gitignore +2 -0
  3. package/cli/templates/create/project/basic/boilerplate/package.original.json +1 -1
  4. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-base/package.json +2 -2
  5. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-index/package.json +2 -2
  6. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/modules/home-user/package.json +2 -2
  7. package/cli/templates/create/project/basic/boilerplate/src/suite/a-home/package.json +1 -1
  8. package/dist/index.js +13 -2
  9. package/dist-cli/templates/create/module/snippets/package.json.d.ts +7 -0
  10. package/dist-cli/templates/create/module/snippets/package.json.js +10 -0
  11. package/dist-cli/templates/create/module/snippets/tsconfig.json.d.ts +7 -0
  12. package/dist-cli/templates/create/module/snippets/tsconfig.json.js +12 -0
  13. package/dist-cli/templates/tools/crud/snippets/1-package.json.d.ts +7 -0
  14. package/dist-cli/templates/tools/crud/snippets/1-package.json.js +9 -0
  15. package/dist-cli/templates/tools/crud/snippets/2-meta.index.d.ts +7 -0
  16. package/dist-cli/templates/tools/crud/snippets/2-meta.index.js +44 -0
  17. package/dist-cli/templates/tools/crud/snippets/2-meta.version.d.ts +7 -0
  18. package/dist-cli/templates/tools/crud/snippets/2-meta.version.js +39 -0
  19. package/dist-cli/templates/tools/crud/snippets/3-en-us.d.ts +8 -0
  20. package/dist-cli/templates/tools/crud/snippets/3-en-us.js +25 -0
  21. package/dist-cli/templates/tools/crud/snippets/4-zh-cn.d.ts +2 -0
  22. package/dist-cli/templates/tools/crud/snippets/4-zh-cn.js +10 -0
  23. package/dist-cli/templates/tools/crud/utils.d.ts +5 -0
  24. package/dist-cli/templates/tools/crud/utils.js +13 -0
  25. package/package.json +5 -4
@@ -31,7 +31,7 @@
31
31
  "tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json",
32
32
  "prepublishOnly": "npm run tsc:publish",
33
33
  "prepack": "clean-package",
34
- "postpack": "clean-package restore"
34
+ "postpack": "clean-package restore && npm run clean"
35
35
  },
36
36
  "clean-package": {
37
37
  "indent": 2,
@@ -3,6 +3,8 @@ miniprogram_npm
3
3
  /typings/core
4
4
  /coverage
5
5
  **/dist/
6
+ **/dist-toolsIsolate/
7
+ **/dist-cli/
6
8
  /dist-releases
7
9
  /docs-api
8
10
  /run
@@ -46,7 +46,7 @@
46
46
  }
47
47
  },
48
48
  "dependencies": {
49
- "vona": "^5.0.236"
49
+ "vona": "^5.0.237"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@cabloy/lint": "^5.0.16",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-module-home-base",
3
3
  "type": "module",
4
- "version": "5.0.13",
4
+ "version": "5.0.14",
5
5
  "title": "home-base",
6
6
  "vonaModule": {
7
7
  "dependencies": {
@@ -33,7 +33,7 @@
33
33
  "tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json",
34
34
  "prepublishOnly": "npm run tsc:publish",
35
35
  "prepack": "clean-package",
36
- "postpack": "clean-package restore",
36
+ "postpack": "clean-package restore && npm run clean",
37
37
  "version": "node ../../../../../scripts/version-home.ts"
38
38
  },
39
39
  "clean-package": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-module-home-index",
3
3
  "type": "module",
4
- "version": "5.0.13",
4
+ "version": "5.0.14",
5
5
  "title": "home-index",
6
6
  "vonaModule": {
7
7
  "dependencies": {
@@ -33,7 +33,7 @@
33
33
  "tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json",
34
34
  "prepublishOnly": "npm run tsc:publish",
35
35
  "prepack": "clean-package",
36
- "postpack": "clean-package restore",
36
+ "postpack": "clean-package restore && npm run clean",
37
37
  "version": "node ../../../../../scripts/version-home.ts"
38
38
  },
39
39
  "clean-package": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-module-home-user",
3
3
  "type": "module",
4
- "version": "5.0.21",
4
+ "version": "5.0.22",
5
5
  "title": "home-user",
6
6
  "vonaModule": {
7
7
  "fileVersion": 1,
@@ -34,7 +34,7 @@
34
34
  "tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json",
35
35
  "prepublishOnly": "npm run tsc:publish",
36
36
  "prepack": "clean-package",
37
- "postpack": "clean-package restore",
37
+ "postpack": "clean-package restore && npm run clean",
38
38
  "version": "node ../../../../../scripts/version-home.ts"
39
39
  },
40
40
  "clean-package": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-suite-a-home",
3
3
  "type": "module",
4
- "version": "5.0.25",
4
+ "version": "5.0.26",
5
5
  "title": "a-home",
6
6
  "description": "",
7
7
  "author": "zhennann",
package/dist/index.js CHANGED
@@ -1068,12 +1068,13 @@ class CliCreateBean extends BeanCliBase {
1068
1068
  const boilerplates = this._getBoilerplatesOrSnippets('boilerplate', argv.boilerplate);
1069
1069
  const snippetsName = snippets[`${sceneName}:${argv.beanName}`] || snippets[sceneName];
1070
1070
  const boilerplateName = boilerplates[`${sceneName}:${argv.beanName}`] || boilerplates[sceneName];
1071
+ const boilerplatePath = `cli/${boilerplateName}`;
1071
1072
  // render
1072
1073
  await this.template.renderBoilerplateAndSnippets({
1073
1074
  targetDir: beanDir,
1074
1075
  setName: __ThisSetName__,
1075
1076
  snippetsPath: snippetsName,
1076
- boilerplatePath: boilerplateName
1077
+ boilerplatePath
1077
1078
  });
1078
1079
  // tools.metadata
1079
1080
  if (!argv.nometadata) {
@@ -2205,7 +2206,10 @@ async function generateMetadataCustom(cli, sceneName, sceneMeta, moduleName, mod
2205
2206
  const globFiles = await globBeanFiles(sceneName, sceneMeta, moduleName, modulePath);
2206
2207
  if (globFiles.length === 0) return '';
2207
2208
  // custom
2208
- const jsFile = path.join(sceneMeta.module.root, sceneMeta.metadataCustom);
2209
+ let jsFile = path.join(sceneMeta.module.root, 'dist-cli', sceneMeta.metadataCustom.replace('.ts', '.js'));
2210
+ if (!fse.existsSync(jsFile)) {
2211
+ jsFile = path.join(sceneMeta.module.root, 'cli', sceneMeta.metadataCustom);
2212
+ }
2209
2213
  return await cli.helper.importDynamic(jsFile, async instance => {
2210
2214
  const options = {
2211
2215
  cli,
@@ -2691,6 +2695,13 @@ export { ScopeModule${relativeNameCapitalize} as ScopeModule } from './index.ts'
2691
2695
  changed = true;
2692
2696
  pkg.files.push('cli');
2693
2697
  }
2698
+ if (pkg.scripts['tsc:publish'].includes('tsconfig.cli.json')) {
2699
+ const index = pkg.files.indexOf('dist-cli');
2700
+ if (index === -1) {
2701
+ changed = true;
2702
+ pkg.files.push('dist-cli');
2703
+ }
2704
+ }
2694
2705
  }
2695
2706
  // save
2696
2707
  if (changed) {
@@ -0,0 +1,7 @@
1
+ declare module '@cabloy/cli' {
2
+ interface ICommandArgv {
3
+ name: string;
4
+ }
5
+ }
6
+ declare const _default: import("@cabloy/cli").ISnippet<"json">;
7
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { metadataCustomSnippet } from '@cabloy/cli';
2
+ export default metadataCustomSnippet({
3
+ file: 'package.json',
4
+ language: 'json',
5
+ async transform({ /* cli, */ ast, argv }) {
6
+ ast.dependencies[`vona-module-${argv.name}`] = '^5.0.0';
7
+ // ok
8
+ return ast;
9
+ },
10
+ });
@@ -0,0 +1,7 @@
1
+ declare module '@cabloy/cli' {
2
+ interface ICommandArgv {
3
+ name: string;
4
+ }
5
+ }
6
+ declare const _default: import("@cabloy/cli").ISnippet<"json">;
7
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { metadataCustomSnippet } from '@cabloy/cli';
2
+ export default metadataCustomSnippet({
3
+ file: 'tsconfig.json',
4
+ language: 'json',
5
+ async transform({ /* cli, */ ast, argv }) {
6
+ ast.references.push({
7
+ path: `modules/${argv.name}/tsconfig.build.json`,
8
+ });
9
+ // ok
10
+ return ast;
11
+ },
12
+ });
@@ -0,0 +1,7 @@
1
+ declare module '@cabloy/cli' {
2
+ interface ICommandArgv {
3
+ fileVersion: number;
4
+ }
5
+ }
6
+ declare const _default: import("@cabloy/cli").ISnippet<"json">;
7
+ export default _default;
@@ -0,0 +1,9 @@
1
+ import { metadataCustomSnippet } from '@cabloy/cli';
2
+ export default metadataCustomSnippet({
3
+ file: 'package.json',
4
+ language: 'json',
5
+ async transform({ ast, argv }) {
6
+ argv.fileVersion = ast.vonaModule.fileVersion = 1 + (ast.vonaModule.fileVersion ?? 0);
7
+ return ast;
8
+ },
9
+ });
@@ -0,0 +1,7 @@
1
+ declare module '@cabloy/cli' {
2
+ interface ICommandArgv {
3
+ module: string;
4
+ }
5
+ }
6
+ declare const _default: import("@cabloy/cli").ISnippet<"plain">;
7
+ export default _default;
@@ -0,0 +1,44 @@
1
+ import fs from 'node:fs';
2
+ import { metadataCustomSnippet } from '@cabloy/cli';
3
+ import { catchError } from '@cabloy/utils';
4
+ const __snippet_import1 = 'import { $tableColumns } from \'vona-module-a-orm\';';
5
+ const __snippet_import2 = 'import { Entity<%=argv.resourceNameCapitalize%> } from \'../entity/<%=argv.resourceName%>.ts\';';
6
+ const __snippet_update = '...$tableColumns(() => Entity<%=argv.resourceNameCapitalize%>, \'name\'),';
7
+ export default metadataCustomSnippet({
8
+ file: 'src/bean/meta.index.ts',
9
+ language: 'plain',
10
+ format: true,
11
+ init: async ({ cli, argv, targetFile }) => {
12
+ await catchError(() => {
13
+ return cli.helper.invokeCli([
14
+ ':create:bean',
15
+ 'meta',
16
+ 'index',
17
+ `--module=${argv.module}`,
18
+ '--nometadata',
19
+ '--noformat',
20
+ ], { cwd: argv.projectPath });
21
+ });
22
+ return fs.readFileSync(targetFile).toString('utf8');
23
+ },
24
+ async transform({ cli, ast }) {
25
+ // import1
26
+ if (!ast.includes(__snippet_import1)) {
27
+ const code = await cli.template.renderContent({ content: __snippet_import1 });
28
+ ast = ast.replace('import { Meta } from \'vona-module-a-meta\';', `import { Meta } from 'vona-module-a-meta';\n${code}`);
29
+ }
30
+ // import2
31
+ let code = await cli.template.renderContent({ content: __snippet_import2 });
32
+ ast = ast.replace('import { $tableColumns } from \'vona-module-a-orm\';', `import { $tableColumns } from 'vona-module-a-orm';\n${code}`);
33
+ // update
34
+ code = await cli.template.renderContent({ content: __snippet_update });
35
+ if (ast.includes('indexes: {}')) {
36
+ ast = ast.replace('indexes: {', `indexes: {\n ${code}\n `);
37
+ }
38
+ else {
39
+ ast = ast.replace('indexes: {', `indexes: {\n ${code}`);
40
+ }
41
+ // ok
42
+ return ast;
43
+ },
44
+ });
@@ -0,0 +1,7 @@
1
+ declare module '@cabloy/cli' {
2
+ interface ICommandArgv {
3
+ module: string;
4
+ }
5
+ }
6
+ declare const _default: import("@cabloy/cli").ISnippet<"gogo">;
7
+ export default _default;
@@ -0,0 +1,39 @@
1
+ import fs from 'node:fs';
2
+ import { metadataCustomSnippet } from '@cabloy/cli';
3
+ import { catchError } from '@cabloy/utils';
4
+ const __snippet_update = `if (options.version === <%=argv.fileVersion%>) {
5
+ const entity<%=argv.resourceNameCapitalize%> = this.scope.entity.<%=argv.resourceName%>;
6
+ await this.bean.model.createTable(entity<%=argv.resourceNameCapitalize%>.$table, table => {
7
+ table.comment(entity<%=argv.resourceNameCapitalize%>.$comment.$table);
8
+ table.basicFields();
9
+ table.string(entity<%=argv.resourceNameCapitalize%>.name, 50).defaultTo(entity<%=argv.resourceNameCapitalize%>.$default.name).comment(entity<%=argv.resourceNameCapitalize%>.$comment.name);
10
+ table.string(entity<%=argv.resourceNameCapitalize%>.description, 255).comment(entity<%=argv.resourceNameCapitalize%>.$comment.description);
11
+ });
12
+ }
13
+ `;
14
+ export default metadataCustomSnippet({
15
+ file: 'src/bean/meta.version.ts',
16
+ language: 'gogo',
17
+ format: true,
18
+ init: async ({ cli, argv, targetFile }) => {
19
+ await catchError(() => {
20
+ return cli.helper.invokeCli([
21
+ ':create:bean',
22
+ 'meta',
23
+ 'version',
24
+ `--module=${argv.module}`,
25
+ '--nometadata',
26
+ '--noformat',
27
+ ], { cwd: argv.projectPath });
28
+ });
29
+ return fs.readFileSync(targetFile).toString('utf8');
30
+ },
31
+ async transform({ cli, ast }) {
32
+ // update
33
+ ast.replace('async update(_options: IMetaVersionUpdateOptions) {$$$1}', 'async update(options: IMetaVersionUpdateOptions) {$$$1}');
34
+ const code = await cli.template.renderContent({ content: __snippet_update });
35
+ ast.replace('async update($$$0) {$$$1}', `async update($$$0) {\n $$$1\n ${code}}`);
36
+ // ok
37
+ return ast;
38
+ },
39
+ });
@@ -0,0 +1,8 @@
1
+ declare module '@cabloy/cli' {
2
+ interface ICommandArgv {
3
+ module: string;
4
+ resourceNameCapitalize: string;
5
+ }
6
+ }
7
+ declare const _default: import("@cabloy/cli").ISnippet<"plain">;
8
+ export default _default;
@@ -0,0 +1,25 @@
1
+ import fs from 'node:fs';
2
+ import { metadataCustomSnippet } from '@cabloy/cli';
3
+ import { catchError } from '@cabloy/utils';
4
+ import { locale_transform } from "../utils.js";
5
+ const __resources = { Name: 'Name', Description: 'Description' };
6
+ export default metadataCustomSnippet({
7
+ file: 'src/config/locale/en-us.ts',
8
+ language: 'plain',
9
+ init: async ({ cli, argv, targetFile }) => {
10
+ await catchError(() => {
11
+ return cli.helper.invokeCli([
12
+ ':init:locale',
13
+ argv.module,
14
+ '--nometadata',
15
+ '--noformat',
16
+ ], {
17
+ cwd: argv.projectPath,
18
+ });
19
+ });
20
+ return fs.readFileSync(targetFile).toString('utf8');
21
+ },
22
+ async transform({ ast, argv }) {
23
+ return locale_transform({ ast, argv, resources: __resources });
24
+ },
25
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@cabloy/cli").ISnippet<"plain">;
2
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { metadataCustomSnippet } from '@cabloy/cli';
2
+ import { locale_transform } from "../utils.js";
3
+ const __resources = { Name: '名称', Description: '描述' };
4
+ export default metadataCustomSnippet({
5
+ file: 'src/config/locale/zh-cn.ts',
6
+ language: 'plain',
7
+ async transform({ ast, argv }) {
8
+ return locale_transform({ ast, argv, resources: __resources });
9
+ },
10
+ });
@@ -0,0 +1,5 @@
1
+ export declare function locale_transform({ ast, argv, resources }: {
2
+ ast: string;
3
+ argv: any;
4
+ resources: any;
5
+ }): Promise<string>;
@@ -0,0 +1,13 @@
1
+ import { evaluateSimple } from '@cabloy/utils';
2
+ export async function locale_transform({ ast, argv, resources }) {
3
+ const values = evaluateSimple(ast.replace('export default', '').replace(';', ''));
4
+ resources = Object.assign({}, resources, { [argv.resourceNameCapitalize]: argv.resourceNameCapitalize }, values);
5
+ const keys = Object.keys(resources).sort();
6
+ let content = '';
7
+ for (const key of keys) {
8
+ content += ` ${key}: '${resources[key].replaceAll('\'', '\\\'')}',\n`;
9
+ }
10
+ ast = `export default {\n${content}};\n`;
11
+ // ok
12
+ return ast;
13
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-cli-set-api",
3
3
  "type": "module",
4
- "version": "1.0.417",
4
+ "version": "1.0.419",
5
5
  "description": "vona cli-set-api",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -25,6 +25,7 @@
25
25
  "files": [
26
26
  "cli",
27
27
  "dist",
28
+ "dist-cli",
28
29
  "dist-toolsIsolate",
29
30
  "templates"
30
31
  ],
@@ -32,7 +33,7 @@
32
33
  "@babel/plugin-proposal-decorators": "^7.25.9",
33
34
  "@babel/plugin-transform-class-properties": "^7.25.9",
34
35
  "@babel/plugin-transform-typescript": "^7.26.8",
35
- "@cabloy/cli": "^3.0.72",
36
+ "@cabloy/cli": "^3.0.73",
36
37
  "@cabloy/dotenv": "^1.1.12",
37
38
  "@cabloy/extend": "^3.1.11",
38
39
  "@cabloy/module-glob": "^5.2.35",
@@ -69,7 +70,7 @@
69
70
  },
70
71
  "gitHead": "0eab9dc4a5622caffe89e7b1b3f02c08ccbc4c4b",
71
72
  "scripts": {
72
- "clean": "rimraf dist dist-toolsIsolate tsconfig.build.tsbuildinfo tsconfig.isolate.tsbuildinfo",
73
- "tsc:publish": "npm run clean && vona :bin:buildGeneral && tsc -p tsconfig.build.json && tsc -p tsconfig.isolate.json"
73
+ "clean": "rimraf dist dist-cli dist-toolsIsolate tsconfig.build.tsbuildinfo tsconfig.cli.tsbuildinfo tsconfig.isolate.tsbuildinfo",
74
+ "tsc:publish": "npm run clean && vona :bin:buildGeneral && tsc -p tsconfig.build.json && tsc -p tsconfig.cli.json && tsc -p tsconfig.isolate.json"
74
75
  }
75
76
  }