@git.zone/cli 2.13.10 → 2.13.11

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 (102) hide show
  1. package/assets/templates/{npmextra/npmextra.json → smartconfig/_smartconfig.json} +3 -0
  2. package/dist_ts/classes.gitzoneconfig.js +4 -4
  3. package/dist_ts/gitzone.cli.js +1 -15
  4. package/dist_ts/mod_commit/index.js +4 -4
  5. package/dist_ts/mod_config/classes.commitconfig.d.ts +3 -3
  6. package/dist_ts/mod_config/classes.commitconfig.js +20 -20
  7. package/dist_ts/mod_config/classes.releaseconfig.d.ts +3 -3
  8. package/dist_ts/mod_config/classes.releaseconfig.js +21 -21
  9. package/dist_ts/mod_config/index.js +12 -12
  10. package/dist_ts/mod_format/classes.baseformatter.d.ts +2 -9
  11. package/dist_ts/mod_format/classes.baseformatter.js +13 -26
  12. package/dist_ts/mod_format/classes.formatplanner.d.ts +1 -3
  13. package/dist_ts/mod_format/classes.formatplanner.js +11 -39
  14. package/dist_ts/mod_format/classes.formatstats.d.ts +0 -5
  15. package/dist_ts/mod_format/classes.formatstats.js +3 -35
  16. package/dist_ts/mod_format/formatters/cleanup.formatter.js +1 -2
  17. package/dist_ts/mod_format/formatters/copy.formatter.js +5 -8
  18. package/dist_ts/mod_format/formatters/gitignore.formatter.d.ts +5 -0
  19. package/dist_ts/mod_format/formatters/gitignore.formatter.js +23 -29
  20. package/dist_ts/mod_format/formatters/packagejson.formatter.js +5 -5
  21. package/dist_ts/mod_format/formatters/prettier.formatter.js +4 -12
  22. package/dist_ts/mod_format/formatters/{npmextra.formatter.d.ts → smartconfig.formatter.d.ts} +6 -1
  23. package/dist_ts/mod_format/formatters/smartconfig.formatter.js +180 -0
  24. package/dist_ts/mod_format/formatters/templates.formatter.js +1 -10
  25. package/dist_ts/mod_format/formatters/tsconfig.formatter.js +6 -4
  26. package/dist_ts/mod_format/index.d.ts +0 -4
  27. package/dist_ts/mod_format/index.js +27 -78
  28. package/dist_ts/mod_format/interfaces.format.d.ts +1 -18
  29. package/dist_ts/mod_format/interfaces.format.js +16 -2
  30. package/dist_ts/mod_format/mod.plugins.d.ts +2 -7
  31. package/dist_ts/mod_format/mod.plugins.js +3 -8
  32. package/dist_ts/mod_services/classes.globalregistry.js +2 -2
  33. package/dist_ts/mod_services/classes.servicemanager.d.ts +2 -2
  34. package/dist_ts/mod_services/classes.servicemanager.js +21 -21
  35. package/dist_ts/plugins.d.ts +2 -2
  36. package/dist_ts/plugins.js +3 -3
  37. package/package.json +4 -10
  38. package/ts/classes.gitzoneconfig.ts +3 -3
  39. package/ts/gitzone.cli.ts +0 -17
  40. package/ts/mod_commit/index.ts +3 -3
  41. package/ts/mod_config/classes.commitconfig.ts +19 -19
  42. package/ts/mod_config/classes.releaseconfig.ts +20 -20
  43. package/ts/mod_config/index.ts +11 -11
  44. package/ts/mod_format/classes.baseformatter.ts +14 -25
  45. package/ts/mod_format/classes.formatplanner.ts +10 -39
  46. package/ts/mod_format/classes.formatstats.ts +2 -42
  47. package/ts/mod_format/formatters/cleanup.formatter.ts +0 -1
  48. package/ts/mod_format/formatters/copy.formatter.ts +4 -8
  49. package/ts/mod_format/formatters/gitignore.formatter.ts +25 -29
  50. package/ts/mod_format/formatters/packagejson.formatter.ts +4 -4
  51. package/ts/mod_format/formatters/prettier.formatter.ts +3 -13
  52. package/ts/mod_format/formatters/smartconfig.formatter.ts +213 -0
  53. package/ts/mod_format/formatters/templates.formatter.ts +0 -9
  54. package/ts/mod_format/formatters/tsconfig.formatter.ts +6 -3
  55. package/ts/mod_format/index.ts +35 -98
  56. package/ts/mod_format/interfaces.format.ts +16 -19
  57. package/ts/mod_format/mod.plugins.ts +2 -12
  58. package/ts/mod_services/classes.globalregistry.ts +2 -2
  59. package/ts/mod_services/classes.servicemanager.ts +20 -20
  60. package/ts/plugins.ts +2 -2
  61. package/dist_ts/mod_format/classes.changecache.d.ts +0 -26
  62. package/dist_ts/mod_format/classes.changecache.js +0 -181
  63. package/dist_ts/mod_format/classes.dependency-analyzer.d.ts +0 -13
  64. package/dist_ts/mod_format/classes.dependency-analyzer.js +0 -93
  65. package/dist_ts/mod_format/classes.rollbackmanager.d.ts +0 -22
  66. package/dist_ts/mod_format/classes.rollbackmanager.js +0 -259
  67. package/dist_ts/mod_format/format.cleanup.d.ts +0 -2
  68. package/dist_ts/mod_format/format.cleanup.js +0 -25
  69. package/dist_ts/mod_format/format.copy.d.ts +0 -24
  70. package/dist_ts/mod_format/format.copy.js +0 -77
  71. package/dist_ts/mod_format/format.gitignore.d.ts +0 -2
  72. package/dist_ts/mod_format/format.gitignore.js +0 -48
  73. package/dist_ts/mod_format/format.license.d.ts +0 -2
  74. package/dist_ts/mod_format/format.license.js +0 -26
  75. package/dist_ts/mod_format/format.npmextra.d.ts +0 -5
  76. package/dist_ts/mod_format/format.npmextra.js +0 -125
  77. package/dist_ts/mod_format/format.packagejson.d.ts +0 -2
  78. package/dist_ts/mod_format/format.packagejson.js +0 -145
  79. package/dist_ts/mod_format/format.prettier.d.ts +0 -2
  80. package/dist_ts/mod_format/format.prettier.js +0 -56
  81. package/dist_ts/mod_format/format.readme.d.ts +0 -1
  82. package/dist_ts/mod_format/format.readme.js +0 -29
  83. package/dist_ts/mod_format/format.templates.d.ts +0 -5
  84. package/dist_ts/mod_format/format.templates.js +0 -68
  85. package/dist_ts/mod_format/format.tsconfig.d.ts +0 -2
  86. package/dist_ts/mod_format/format.tsconfig.js +0 -28
  87. package/dist_ts/mod_format/formatters/npmextra.formatter.js +0 -142
  88. package/ts/mod_format/classes.changecache.ts +0 -235
  89. package/ts/mod_format/classes.dependency-analyzer.ts +0 -117
  90. package/ts/mod_format/classes.rollbackmanager.ts +0 -340
  91. package/ts/mod_format/format.cleanup.ts +0 -26
  92. package/ts/mod_format/format.copy.ts +0 -93
  93. package/ts/mod_format/format.gitignore.ts +0 -54
  94. package/ts/mod_format/format.license.ts +0 -32
  95. package/ts/mod_format/format.npmextra.ts +0 -151
  96. package/ts/mod_format/format.packagejson.ts +0 -196
  97. package/ts/mod_format/format.prettier.ts +0 -66
  98. package/ts/mod_format/format.readme.ts +0 -29
  99. package/ts/mod_format/format.templates.ts +0 -79
  100. package/ts/mod_format/format.tsconfig.ts +0 -31
  101. package/ts/mod_format/formatters/npmextra.formatter.ts +0 -174
  102. /package/{npmextra.json → .smartconfig.json} +0 -0
@@ -1,145 +0,0 @@
1
- import * as plugins from './mod.plugins.js';
2
- import * as paths from '../paths.js';
3
- import * as gulpFunction from '@push.rocks/gulp-function';
4
- import { Project } from '../classes.project.js';
5
- import { logger } from '../gitzone.logging.js';
6
- /**
7
- * ensures a certain dependency
8
- */
9
- const ensureDependency = async (packageJsonObjectArg, position, constraint, dependencyArg) => {
10
- const [packageName, version] = dependencyArg.includes('@')
11
- ? dependencyArg.split('@').filter(Boolean)
12
- : [dependencyArg, 'latest'];
13
- const targetSections = [];
14
- switch (position) {
15
- case 'dep':
16
- targetSections.push('dependencies');
17
- break;
18
- case 'devDep':
19
- targetSections.push('devDependencies');
20
- break;
21
- case 'everywhere':
22
- targetSections.push('dependencies', 'devDependencies');
23
- break;
24
- }
25
- for (const section of targetSections) {
26
- if (!packageJsonObjectArg[section]) {
27
- packageJsonObjectArg[section] = {};
28
- }
29
- switch (constraint) {
30
- case 'exclude':
31
- delete packageJsonObjectArg[section][packageName];
32
- break;
33
- case 'include':
34
- if (!packageJsonObjectArg[section][packageName]) {
35
- packageJsonObjectArg[section][packageName] =
36
- version === 'latest' ? '^1.0.0' : version;
37
- }
38
- break;
39
- case 'latest':
40
- // Fetch latest version from npm
41
- try {
42
- const registry = new plugins.smartnpm.NpmRegistry();
43
- const packageInfo = await registry.getPackageInfo(packageName);
44
- const latestVersion = packageInfo['dist-tags'].latest;
45
- packageJsonObjectArg[section][packageName] = `^${latestVersion}`;
46
- }
47
- catch (error) {
48
- logger.log('warn', `Could not fetch latest version for ${packageName}, using existing or default`);
49
- if (!packageJsonObjectArg[section][packageName]) {
50
- packageJsonObjectArg[section][packageName] =
51
- version === 'latest' ? '^1.0.0' : version;
52
- }
53
- }
54
- break;
55
- }
56
- }
57
- };
58
- export const run = async (projectArg) => {
59
- const formatStreamWrapper = new plugins.smartstream.StreamWrapper([
60
- plugins.smartgulp.src([`package.json`]),
61
- gulpFunction.forEach(async (fileArg) => {
62
- const npmextraConfig = new plugins.npmextra.Smartconfig(paths.cwd);
63
- const gitzoneData = npmextraConfig.dataFor('@git.zone/cli', {});
64
- const fileString = fileArg.contents.toString();
65
- const packageJson = JSON.parse(fileString);
66
- // metadata
67
- packageJson.repository = {
68
- type: 'git',
69
- url: `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}.git`,
70
- };
71
- ((packageJson.bugs = {
72
- url: `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}/issues`,
73
- }),
74
- (packageJson.homepage = `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}#readme`));
75
- // Check for module type
76
- if (!packageJson.type) {
77
- logger.log('info', `setting packageJson.type to "module"`);
78
- packageJson.type = 'module';
79
- }
80
- // Check for private or public
81
- if (packageJson.private !== undefined) {
82
- logger.log('info', 'Success -> found private/public info in package.json!');
83
- }
84
- else {
85
- logger.log('error', 'found no private boolean! Setting it to private for now!');
86
- packageJson.private = true;
87
- }
88
- // Check for license
89
- if (packageJson.license) {
90
- logger.log('info', 'Success -> found license in package.json!');
91
- }
92
- else {
93
- logger.log('error', 'found no license! Setting it to UNLICENSED for now!');
94
- packageJson.license = 'UNLICENSED';
95
- }
96
- // Check for build script
97
- if (packageJson.scripts.build) {
98
- logger.log('info', 'Success -> found build script in package.json!');
99
- }
100
- else {
101
- logger.log('error', 'found no build script! Putting a placeholder there for now!');
102
- packageJson.scripts.build = `echo "Not needed for now"`;
103
- }
104
- // Check for buildDocs script
105
- if (!packageJson.scripts.buildDocs) {
106
- logger.log('info', 'found no buildDocs script! Putting tsdoc script there now.');
107
- packageJson.scripts.buildDocs = `tsdoc`;
108
- }
109
- // check for files
110
- packageJson.files = [
111
- 'ts/**/*',
112
- 'ts_web/**/*',
113
- 'dist/**/*',
114
- 'dist_*/**/*',
115
- 'dist_ts/**/*',
116
- 'dist_ts_web/**/*',
117
- 'assets/**/*',
118
- 'cli.js',
119
- 'smartconfig.json',
120
- 'readme.md',
121
- ];
122
- // check for dependencies
123
- // Note: @push.rocks/tapbundle is deprecated - use @git.zone/tstest/tapbundle instead
124
- await ensureDependency(packageJson, 'devDep', 'exclude', '@push.rocks/tapbundle');
125
- await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tstest');
126
- await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tsbuild');
127
- // set overrides
128
- const overridesContent = (await plugins.smartfs
129
- .file(plugins.path.join(paths.assetsDir, 'overrides.json'))
130
- .encoding('utf8')
131
- .read());
132
- const overrides = JSON.parse(overridesContent);
133
- packageJson.pnpm = packageJson.pnpm || {};
134
- packageJson.pnpm.overrides = overrides;
135
- // exclude
136
- // TODO
137
- fileArg.setContentsFromString(JSON.stringify(packageJson, null, 2));
138
- }),
139
- plugins.smartgulp.replace(),
140
- ]);
141
- await formatStreamWrapper.run().catch((error) => {
142
- console.log(error);
143
- });
144
- };
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnBhY2thZ2Vqc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXQucGFja2FnZWpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEtBQUssWUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFDNUIsb0JBQXlCLEVBQ3pCLFFBQXlDLEVBQ3pDLFVBQTRDLEVBQzVDLGFBQXFCLEVBQ3JCLEVBQUU7SUFDRixNQUFNLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRTlCLE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUVwQyxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssS0FBSztZQUNSLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDcEMsTUFBTTtRQUNSLEtBQUssUUFBUTtZQUNYLGNBQWMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN2QyxNQUFNO1FBQ1IsS0FBSyxZQUFZO1lBQ2YsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUN2RCxNQUFNO0lBQ1YsQ0FB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
@@ -1,2 +0,0 @@
1
- import { Project } from '../classes.project.js';
2
- export declare const run: (projectArg: Project) => Promise<void>;
@@ -1,56 +0,0 @@
1
- import * as plugins from './mod.plugins.js';
2
- import prettier from 'prettier';
3
- import { Project } from '../classes.project.js';
4
- import { logger } from '../gitzone.logging.js';
5
- const prettierDefaultTypeScriptConfig = {
6
- printWidth: 100,
7
- parser: 'typescript',
8
- singleQuote: true,
9
- };
10
- const prettierDefaultMarkdownConfig = {
11
- singleQuote: true,
12
- printWidth: 100,
13
- parser: 'markdown',
14
- };
15
- const filesToFormat = [
16
- `ts/**/*.ts`,
17
- `test/**/*.ts`,
18
- `readme.md`,
19
- `docs/**/*.md`,
20
- ];
21
- const choosePrettierConfig = (fileArg) => {
22
- switch (fileArg.parsedPath.ext) {
23
- case '.ts':
24
- return prettierDefaultTypeScriptConfig;
25
- case '.md':
26
- return prettierDefaultMarkdownConfig;
27
- default:
28
- return {};
29
- }
30
- };
31
- const prettierTypeScriptPipestop = plugins.through2.obj(async (fileArg, enc, cb) => {
32
- const fileString = fileArg.contentBuffer.toString();
33
- const chosenConfig = choosePrettierConfig(fileArg);
34
- const filePasses = await prettier.check(fileString, chosenConfig);
35
- if (filePasses) {
36
- logger.log('info', `OK! -> ${fileArg.path} passes!`);
37
- cb(null);
38
- }
39
- else {
40
- logger.log('info', `${fileArg.path} is being reformated!`);
41
- const formatedFileString = await prettier.format(fileString, chosenConfig);
42
- fileArg.setContentsFromString(formatedFileString);
43
- cb(null, fileArg);
44
- }
45
- });
46
- export const run = async (projectArg) => {
47
- const formatStreamWrapper = new plugins.smartstream.StreamWrapper([
48
- plugins.smartgulp.src(filesToFormat),
49
- prettierTypeScriptPipestop,
50
- plugins.smartgulp.replace(),
51
- ]);
52
- await formatStreamWrapper.run().catch((error) => {
53
- console.log(error);
54
- });
55
- };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnByZXR0aWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXQucHJldHRpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxNQUFNLCtCQUErQixHQUFxQjtJQUN4RCxVQUFVLEVBQUUsR0FBRztJQUNmLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLFdBQVcsRUFBRSxJQUFJO0NBQ2xCLENBQUM7QUFFRixNQUFNLDZCQUE2QixHQUFxQjtJQUN0RCxXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsR0FBRztJQUNmLE1BQU0sRUFBRSxVQUFVO0NBQ25CLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRztJQUNwQixZQUFZO0lBQ1osY0FBYztJQUNkLFdBQVc7SUFDWCxjQUFjO0NBQ2YsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFvQyxFQUFFLEVBQUU7SUFDcEUsUUFBUSxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9CLEtBQUssS0FBSztZQUNSLE9BQU8sK0JBQStCLENBQUM7UUFDekMsS0FBSyxLQUFLO1lBQ1IsT0FBTyw2QkFBNkIsQ0FBQztRQUN2QztZQUNFLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sMEJBQTBCLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQ3JELEtBQUssRUFBRSxPQUFvQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRTtJQUN0RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BELE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sVUFBVSxHQUFHLE1BQU0sUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbEUsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFVBQVUsT0FBTyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUM7UUFDckQsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLHVCQUF1QixDQUFDLENBQUM7UUFDM0QsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQzlDLFVBQVUsRUFDVixZQUFZLENBQ2IsQ0FBQztRQUNGLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xELEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEIsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxVQUFtQixFQUFFLEVBQUU7SUFDL0MsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUNwQywwQkFBMEI7UUFDMUIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7S0FDNUIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIn0=
@@ -1 +0,0 @@
1
- export declare const run: () => Promise<void>;
@@ -1,29 +0,0 @@
1
- import * as plugins from './mod.plugins.js';
2
- import * as paths from '../paths.js';
3
- export const run = async () => {
4
- const readmePath = plugins.path.join(paths.cwd, 'readme.md');
5
- const readmeHintsPath = plugins.path.join(paths.cwd, 'readme.hints.md');
6
- // Check and initialize readme.md if it doesn't exist
7
- const readmeExists = await plugins.smartfs.file(readmePath).exists();
8
- if (!readmeExists) {
9
- await plugins.smartfs.file(readmePath)
10
- .encoding('utf8')
11
- .write('# Project Readme\n\nThis is the initial readme file.');
12
- console.log('Initialized readme.md');
13
- }
14
- else {
15
- console.log('readme.md already exists');
16
- }
17
- // Check and initialize readme.hints.md if it doesn't exist
18
- const readmeHintsExists = await plugins.smartfs.file(readmeHintsPath).exists();
19
- if (!readmeHintsExists) {
20
- await plugins.smartfs.file(readmeHintsPath)
21
- .encoding('utf8')
22
- .write('# Project Readme Hints\n\nThis is the initial readme hints file.');
23
- console.log('Initialized readme.hints.md');
24
- }
25
- else {
26
- console.log('readme.hints.md already exists');
27
- }
28
- };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnJlYWRtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9mb3JtYXQvZm9ybWF0LnJlYWRtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLElBQUksRUFBRTtJQUM1QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzdELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUV4RSxxREFBcUQ7SUFDckQsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDbkMsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUNoQixLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUNqRSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdkMsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELDJEQUEyRDtJQUMzRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0UsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdkIsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDeEMsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUNoQixLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUM3RSxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDN0MsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztBQUNILENBQUMsQ0FBQyJ9
@@ -1,5 +0,0 @@
1
- import { Project } from '../classes.project.js';
2
- /**
3
- * takes care of updating files from templates
4
- */
5
- export declare const run: (project: Project) => Promise<void>;
@@ -1,68 +0,0 @@
1
- import * as plugins from './mod.plugins.js';
2
- import * as paths from '../paths.js';
3
- import { logger } from '../gitzone.logging.js';
4
- import { Project } from '../classes.project.js';
5
- /**
6
- * takes care of updating files from templates
7
- */
8
- export const run = async (project) => {
9
- const templateModule = await import('../mod_template/index.js');
10
- // update vscode
11
- const vscodeTemplate = await templateModule.getTemplate('vscode');
12
- await vscodeTemplate.writeToDisk(paths.cwd);
13
- logger.log('info', `Updated vscode template!`);
14
- // update gitlab ci and Dockerfile
15
- switch (project.gitzoneConfig.data.projectType) {
16
- case 'npm':
17
- case 'wcc':
18
- if (project.gitzoneConfig.data.npmciOptions.npmAccessLevel === 'public') {
19
- const ciTemplateDefault = await templateModule.getTemplate('ci_default');
20
- ciTemplateDefault.writeToDisk(paths.cwd);
21
- }
22
- else {
23
- const ciTemplateDefault = await templateModule.getTemplate('ci_default_private');
24
- ciTemplateDefault.writeToDisk(paths.cwd);
25
- }
26
- logger.log('info', 'Updated .gitlabci.yml!');
27
- break;
28
- case 'service':
29
- case 'website':
30
- const ciTemplateDocker = await templateModule.getTemplate('ci_docker');
31
- await ciTemplateDocker.writeToDisk(paths.cwd);
32
- logger.log('info', 'Updated CI/CD config files!');
33
- // lets care about docker
34
- const dockerTemplate = await templateModule.getTemplate('dockerfile_service');
35
- dockerTemplate.writeToDisk(paths.cwd);
36
- logger.log('info', 'Updated Dockerfile!');
37
- // lets care about cli
38
- const cliTemplate = await templateModule.getTemplate('cli');
39
- await cliTemplate.writeToDisk(paths.cwd);
40
- logger.log('info', 'Updated cli.ts.js and cli.js!');
41
- break;
42
- default:
43
- break;
44
- }
45
- // update html
46
- if (project.gitzoneConfig.data.projectType === 'website') {
47
- const websiteUpdateTemplate = await templateModule.getTemplate('website_update');
48
- const variables = {
49
- assetbrokerUrl: project.gitzoneConfig.data.module.assetbrokerUrl,
50
- legalUrl: project.gitzoneConfig.data.module.legalUrl,
51
- };
52
- console.log('updating website template with variables\n', JSON.stringify(variables, null, 2));
53
- websiteUpdateTemplate.supplyVariables(variables);
54
- await websiteUpdateTemplate.writeToDisk(paths.cwd);
55
- logger.log('info', `Updated html for website!`);
56
- }
57
- else if (project.gitzoneConfig.data.projectType === 'service') {
58
- const websiteUpdateTemplate = await templateModule.getTemplate('service_update');
59
- await websiteUpdateTemplate.writeToDisk(paths.cwd);
60
- logger.log('info', `Updated html for element template!`);
61
- }
62
- else if (project.gitzoneConfig.data.projectType === 'wcc') {
63
- const wccUpdateTemplate = await templateModule.getTemplate('wcc_update');
64
- await wccUpdateTemplate.writeToDisk(paths.cwd);
65
- logger.log('info', `Updated html for wcc template!`);
66
- }
67
- };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9mb3JtYXQvZm9ybWF0LnRlbXBsYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUM1QyxNQUFNLGNBQWMsR0FBRyxNQUFNLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBRWhFLGdCQUFnQjtJQUNoQixNQUFNLGNBQWMsR0FBRyxNQUFNLGNBQWMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEUsTUFBTSxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBRS9DLGtDQUFrQztJQUNsQyxRQUFRLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9DLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxLQUFLO1lBQ1IsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN4RSxNQUFNLGlCQUFpQixHQUNyQixNQUFNLGNBQWMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2pELGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0saUJBQWlCLEdBQ3JCLE1BQU0sY0FBYyxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUN6RCxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1lBQzdDLE1BQU07UUFDUixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssU0FBUztZQUNaLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxjQUFjLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBRWxELHlCQUF5QjtZQUN6QixNQUFNLGNBQWMsR0FDbEIsTUFBTSxjQUFjLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDekQsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsQ0FBQztZQUUxQyxzQkFBc0I7WUFDdEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsK0JBQStCLENBQUMsQ0FBQztZQUNwRCxNQUFNO1FBQ1I7WUFDRSxNQUFNO0lBQ1YsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN6RCxNQUFNLHFCQUFxQixHQUN6QixNQUFNLGNBQWMsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRCxNQUFNLFNBQVMsR0FBRztZQUNoQixjQUFjLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWM7WUFDaEUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1NBQ3JELENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUNULDRDQUE0QyxFQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ25DLENBQUM7UUFDRixxQkFBcUIsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakQsTUFBTSxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDbEQsQ0FBQztTQUFNLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hFLE1BQU0scUJBQXFCLEdBQ3pCLE1BQU0sY0FBYyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELE1BQU0scUJBQXFCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDO0lBQzNELENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUM1RCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sY0FBYyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6RSxNQUFNLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0FBQ0gsQ0FBQyxDQUFDIn0=
@@ -1,2 +0,0 @@
1
- import { Project } from '../classes.project.js';
2
- export declare const run: (projectArg: Project) => Promise<void>;
@@ -1,28 +0,0 @@
1
- import * as plugins from './mod.plugins.js';
2
- import * as paths from '../paths.js';
3
- import { logger } from '../gitzone.logging.js';
4
- import { Project } from '../classes.project.js';
5
- export const run = async (projectArg) => {
6
- // lets care about tsconfig.json
7
- logger.log('info', 'Formatting tsconfig.json...');
8
- const factory = plugins.smartfile.SmartFileFactory.nodeFs();
9
- const tsconfigSmartfile = await factory.fromFilePath(plugins.path.join(paths.cwd, 'tsconfig.json'));
10
- const tsconfigObject = JSON.parse(tsconfigSmartfile.parseContentAsString());
11
- tsconfigObject.compilerOptions = tsconfigObject.compilerOptions || {};
12
- tsconfigObject.compilerOptions.baseUrl = '.';
13
- tsconfigObject.compilerOptions.paths = {};
14
- const tsPublishMod = await import('@git.zone/tspublish');
15
- const tsPublishInstance = new tsPublishMod.TsPublish();
16
- const publishModules = await tsPublishInstance.getModuleSubDirs(paths.cwd);
17
- for (const publishModule of Object.keys(publishModules)) {
18
- const publishConfig = publishModules[publishModule];
19
- tsconfigObject.compilerOptions.paths[`${publishConfig.name}`] = [
20
- `./${publishModule}/index.js`,
21
- ];
22
- }
23
- await tsconfigSmartfile.editContentAsString(async () => {
24
- return JSON.stringify(tsconfigObject, null, 2);
25
- });
26
- await tsconfigSmartfile.write();
27
- };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LnRzY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXQudHNjb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUVyQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsVUFBbUIsRUFBRSxFQUFFO0lBQy9DLGdDQUFnQztJQUNoQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQzlDLENBQUM7SUFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUM1RSxjQUFjLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO0lBQ3RFLGNBQWMsQ0FBQyxlQUFlLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUM3QyxjQUFjLENBQUMsZUFBZSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDMUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN6RCxNQUFNLGlCQUFpQixHQUFHLElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3ZELE1BQU0sY0FBYyxHQUFHLE1BQU0saUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNFLEtBQUssTUFBTSxhQUFhLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ3hELE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxjQUFjLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHO1lBQzlELEtBQUssYUFBYSxXQUFXO1NBQzlCLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNyRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0saUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDbEMsQ0FBQyxDQUFDIn0=
@@ -1,142 +0,0 @@
1
- import { BaseFormatter } from '../classes.baseformatter.js';
2
- import * as plugins from '../mod.plugins.js';
3
- import { logger, logVerbose } from '../../gitzone.logging.js';
4
- /**
5
- * Migrates npmextra.json from old namespace keys to new package-scoped keys
6
- */
7
- const migrateNamespaceKeys = (npmextraJson) => {
8
- let migrated = false;
9
- const migrations = [
10
- { oldKey: 'gitzone', newKey: '@git.zone/cli' },
11
- { oldKey: 'tsdoc', newKey: '@git.zone/tsdoc' },
12
- { oldKey: 'npmdocker', newKey: '@git.zone/tsdocker' },
13
- { oldKey: 'npmci', newKey: '@ship.zone/szci' },
14
- { oldKey: 'szci', newKey: '@ship.zone/szci' },
15
- ];
16
- for (const { oldKey, newKey } of migrations) {
17
- if (npmextraJson[oldKey]) {
18
- if (!npmextraJson[newKey]) {
19
- // New key doesn't exist - simple rename
20
- npmextraJson[newKey] = npmextraJson[oldKey];
21
- }
22
- else {
23
- // New key exists - merge old into new (old values don't overwrite new)
24
- npmextraJson[newKey] = {
25
- ...npmextraJson[oldKey],
26
- ...npmextraJson[newKey],
27
- };
28
- }
29
- delete npmextraJson[oldKey];
30
- migrated = true;
31
- }
32
- }
33
- return migrated;
34
- };
35
- /**
36
- * Migrates npmAccessLevel from @ship.zone/szci to @git.zone/cli.release.accessLevel
37
- */
38
- const migrateAccessLevel = (npmextraJson) => {
39
- const szciConfig = npmextraJson['@ship.zone/szci'];
40
- if (!szciConfig?.npmAccessLevel) {
41
- return false;
42
- }
43
- const gitzoneConfig = npmextraJson['@git.zone/cli'] || {};
44
- if (gitzoneConfig?.release?.accessLevel) {
45
- delete szciConfig.npmAccessLevel;
46
- return true;
47
- }
48
- if (!npmextraJson['@git.zone/cli']) {
49
- npmextraJson['@git.zone/cli'] = {};
50
- }
51
- if (!npmextraJson['@git.zone/cli'].release) {
52
- npmextraJson['@git.zone/cli'].release = {};
53
- }
54
- npmextraJson['@git.zone/cli'].release.accessLevel = szciConfig.npmAccessLevel;
55
- delete szciConfig.npmAccessLevel;
56
- return true;
57
- };
58
- export class NpmextraFormatter extends BaseFormatter {
59
- get name() {
60
- return 'npmextra';
61
- }
62
- async analyze() {
63
- const changes = [];
64
- const npmextraPath = 'smartconfig.json';
65
- // Check if file exists
66
- const exists = await plugins.smartfs.file(npmextraPath).exists();
67
- if (!exists) {
68
- logVerbose('npmextra.json does not exist, skipping');
69
- return changes;
70
- }
71
- // Read current content
72
- const currentContent = (await plugins.smartfs
73
- .file(npmextraPath)
74
- .encoding('utf8')
75
- .read());
76
- // Parse and compute new content
77
- const npmextraJson = JSON.parse(currentContent);
78
- // Apply migrations (these are automatic, non-interactive)
79
- migrateNamespaceKeys(npmextraJson);
80
- migrateAccessLevel(npmextraJson);
81
- // Ensure namespaces exist
82
- if (!npmextraJson['@git.zone/cli']) {
83
- npmextraJson['@git.zone/cli'] = {};
84
- }
85
- if (!npmextraJson['@ship.zone/szci']) {
86
- npmextraJson['@ship.zone/szci'] = {};
87
- }
88
- const newContent = JSON.stringify(npmextraJson, null, 2);
89
- // Only add change if content differs
90
- if (newContent !== currentContent) {
91
- changes.push({
92
- type: 'modify',
93
- path: npmextraPath,
94
- module: this.name,
95
- description: 'Migrate and format npmextra.json',
96
- content: newContent,
97
- });
98
- }
99
- return changes;
100
- }
101
- async applyChange(change) {
102
- if (change.type !== 'modify' || !change.content)
103
- return;
104
- // Parse the content to check for missing required fields
105
- const npmextraJson = JSON.parse(change.content);
106
- // Check for missing required module information
107
- const expectedRepoInformation = [
108
- 'projectType',
109
- 'module.githost',
110
- 'module.gitscope',
111
- 'module.gitrepo',
112
- 'module.description',
113
- 'module.npmPackagename',
114
- 'module.license',
115
- ];
116
- const interactInstance = new plugins.smartinteract.SmartInteract();
117
- for (const expectedRepoInformationItem of expectedRepoInformation) {
118
- if (!plugins.smartobject.smartGet(npmextraJson['@git.zone/cli'], expectedRepoInformationItem)) {
119
- interactInstance.addQuestions([
120
- {
121
- message: `What is the value of ${expectedRepoInformationItem}`,
122
- name: expectedRepoInformationItem,
123
- type: 'input',
124
- default: 'undefined variable',
125
- },
126
- ]);
127
- }
128
- }
129
- const answerbucket = await interactInstance.runQueue();
130
- for (const expectedRepoInformationItem of expectedRepoInformation) {
131
- const cliProvidedValue = answerbucket.getAnswerFor(expectedRepoInformationItem);
132
- if (cliProvidedValue) {
133
- plugins.smartobject.smartAdd(npmextraJson['@git.zone/cli'], expectedRepoInformationItem, cliProvidedValue);
134
- }
135
- }
136
- // Write the final content
137
- const finalContent = JSON.stringify(npmextraJson, null, 2);
138
- await this.modifyFile(change.path, finalContent);
139
- logger.log('info', 'Updated npmextra.json');
140
- }
141
- }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtZXh0cmEuZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX2Zvcm1hdC9mb3JtYXR0ZXJzL25wbWV4dHJhLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlEOztHQUVHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFlBQWlCLEVBQVcsRUFBRTtJQUMxRCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDckIsTUFBTSxVQUFVLEdBQUc7UUFDakIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUU7UUFDOUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtRQUM5QyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFO1FBQ3JELEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUU7UUFDOUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtLQUM5QyxDQUFDO0lBQ0YsS0FBSyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzVDLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUMxQix3Q0FBd0M7Z0JBQ3hDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUMsQ0FBQztpQkFB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