@build-script/package-tools 0.0.1

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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/config/rig.json +6 -0
  4. package/lib/command-file-map.generated.d.ts +23 -0
  5. package/lib/command-file-map.generated.d.ts.map +1 -0
  6. package/lib/command-file-map.generated.js +27 -0
  7. package/lib/command-file-map.generated.js.map +1 -0
  8. package/lib/commands/detect-package-change.d.ts +14 -0
  9. package/lib/commands/detect-package-change.d.ts.map +1 -0
  10. package/lib/commands/detect-package-change.js +55 -0
  11. package/lib/commands/detect-package-change.js.map +1 -0
  12. package/lib/commands/monorepo-bump-version.d.ts +22 -0
  13. package/lib/commands/monorepo-bump-version.d.ts.map +1 -0
  14. package/lib/commands/monorepo-bump-version.js +121 -0
  15. package/lib/commands/monorepo-bump-version.js.map +1 -0
  16. package/lib/commands/monorepo-cnpm-sync.d.ts +8 -0
  17. package/lib/commands/monorepo-cnpm-sync.d.ts.map +1 -0
  18. package/lib/commands/monorepo-cnpm-sync.js +16 -0
  19. package/lib/commands/monorepo-cnpm-sync.js.map +1 -0
  20. package/lib/commands/monorepo-invalid.d.ts +8 -0
  21. package/lib/commands/monorepo-invalid.d.ts.map +1 -0
  22. package/lib/commands/monorepo-invalid.js +19 -0
  23. package/lib/commands/monorepo-invalid.js.map +1 -0
  24. package/lib/commands/monorepo-list.d.ts +22 -0
  25. package/lib/commands/monorepo-list.d.ts.map +1 -0
  26. package/lib/commands/monorepo-list.js +40 -0
  27. package/lib/commands/monorepo-list.js.map +1 -0
  28. package/lib/commands/monorepo-publish.d.ts +22 -0
  29. package/lib/commands/monorepo-publish.d.ts.map +1 -0
  30. package/lib/commands/monorepo-publish.js +178 -0
  31. package/lib/commands/monorepo-publish.js.map +1 -0
  32. package/lib/commands/monorepo-tsconfig.d.ts +14 -0
  33. package/lib/commands/monorepo-tsconfig.d.ts.map +1 -0
  34. package/lib/commands/monorepo-tsconfig.js +131 -0
  35. package/lib/commands/monorepo-tsconfig.js.map +1 -0
  36. package/lib/commands/monorepo-upgrade.d.ts +8 -0
  37. package/lib/commands/monorepo-upgrade.d.ts.map +1 -0
  38. package/lib/commands/monorepo-upgrade.js +110 -0
  39. package/lib/commands/monorepo-upgrade.js.map +1 -0
  40. package/lib/commands/run-if-version-mismatch.d.ts +23 -0
  41. package/lib/commands/run-if-version-mismatch.d.ts.map +1 -0
  42. package/lib/commands/run-if-version-mismatch.js +64 -0
  43. package/lib/commands/run-if-version-mismatch.js.map +1 -0
  44. package/lib/commands/sync-my-readme.d.ts +9 -0
  45. package/lib/commands/sync-my-readme.d.ts.map +1 -0
  46. package/lib/commands/sync-my-readme.js +51 -0
  47. package/lib/commands/sync-my-readme.js.map +1 -0
  48. package/lib/commands/test.d.ts +9 -0
  49. package/lib/commands/test.d.ts.map +1 -0
  50. package/lib/commands/test.js +16 -0
  51. package/lib/commands/test.js.map +1 -0
  52. package/lib/common/cache/escape-package-path.d.ts +2 -0
  53. package/lib/common/cache/escape-package-path.d.ts.map +1 -0
  54. package/lib/common/cache/escape-package-path.js +7 -0
  55. package/lib/common/cache/escape-package-path.js.map +1 -0
  56. package/lib/common/cache/native.npm.d.ts +50 -0
  57. package/lib/common/cache/native.npm.d.ts.map +1 -0
  58. package/lib/common/cache/native.npm.js +162 -0
  59. package/lib/common/cache/native.npm.js.map +1 -0
  60. package/lib/common/functions/cli.d.ts +85 -0
  61. package/lib/common/functions/cli.d.ts.map +1 -0
  62. package/lib/common/functions/cli.js +110 -0
  63. package/lib/common/functions/cli.js.map +1 -0
  64. package/lib/common/functions/global-lifecycle.d.ts +5 -0
  65. package/lib/common/functions/global-lifecycle.d.ts.map +1 -0
  66. package/lib/common/functions/global-lifecycle.js +34 -0
  67. package/lib/common/functions/global-lifecycle.js.map +1 -0
  68. package/lib/common/git/git.d.ts +12 -0
  69. package/lib/common/git/git.d.ts.map +1 -0
  70. package/lib/common/git/git.js +65 -0
  71. package/lib/common/git/git.js.map +1 -0
  72. package/lib/common/package-manager/constant.d.ts +2 -0
  73. package/lib/common/package-manager/constant.d.ts.map +1 -0
  74. package/lib/common/package-manager/constant.js +2 -0
  75. package/lib/common/package-manager/constant.js.map +1 -0
  76. package/lib/common/package-manager/driver.abstract.d.ts +41 -0
  77. package/lib/common/package-manager/driver.abstract.d.ts.map +1 -0
  78. package/lib/common/package-manager/driver.abstract.js +138 -0
  79. package/lib/common/package-manager/driver.abstract.js.map +1 -0
  80. package/lib/common/package-manager/driver.npm.d.ts +7 -0
  81. package/lib/common/package-manager/driver.npm.d.ts.map +1 -0
  82. package/lib/common/package-manager/driver.npm.js +11 -0
  83. package/lib/common/package-manager/driver.npm.js.map +1 -0
  84. package/lib/common/package-manager/driver.pnpm.d.ts +7 -0
  85. package/lib/common/package-manager/driver.pnpm.d.ts.map +1 -0
  86. package/lib/common/package-manager/driver.pnpm.js +83 -0
  87. package/lib/common/package-manager/driver.pnpm.js.map +1 -0
  88. package/lib/common/package-manager/functions.d.ts +13 -0
  89. package/lib/common/package-manager/functions.d.ts.map +1 -0
  90. package/lib/common/package-manager/functions.js +95 -0
  91. package/lib/common/package-manager/functions.js.map +1 -0
  92. package/lib/common/package-manager/package-json.d.ts +5 -0
  93. package/lib/common/package-manager/package-json.d.ts.map +1 -0
  94. package/lib/common/package-manager/package-json.js +50 -0
  95. package/lib/common/package-manager/package-json.js.map +1 -0
  96. package/lib/common/package-manager/package-manager.d.ts +5 -0
  97. package/lib/common/package-manager/package-manager.d.ts.map +1 -0
  98. package/lib/common/package-manager/package-manager.js +27 -0
  99. package/lib/common/package-manager/package-manager.js.map +1 -0
  100. package/lib/common/package-manager/proxy.d.ts +5 -0
  101. package/lib/common/package-manager/proxy.d.ts.map +1 -0
  102. package/lib/common/package-manager/proxy.js +116 -0
  103. package/lib/common/package-manager/proxy.js.map +1 -0
  104. package/lib/common/shared-jobs/cnpm-sync.d.ts +4 -0
  105. package/lib/common/shared-jobs/cnpm-sync.d.ts.map +1 -0
  106. package/lib/common/shared-jobs/cnpm-sync.js +52 -0
  107. package/lib/common/shared-jobs/cnpm-sync.js.map +1 -0
  108. package/lib/common/shared-jobs/detect-change-job.d.ts +12 -0
  109. package/lib/common/shared-jobs/detect-change-job.d.ts.map +1 -0
  110. package/lib/common/shared-jobs/detect-change-job.js +52 -0
  111. package/lib/common/shared-jobs/detect-change-job.js.map +1 -0
  112. package/lib/common/shared-jobs/publish-package-version-job.d.ts +4 -0
  113. package/lib/common/shared-jobs/publish-package-version-job.d.ts.map +1 -0
  114. package/lib/common/shared-jobs/publish-package-version-job.js +40 -0
  115. package/lib/common/shared-jobs/publish-package-version-job.js.map +1 -0
  116. package/lib/common/taball/decompress.d.ts +2 -0
  117. package/lib/common/taball/decompress.d.ts.map +1 -0
  118. package/lib/common/taball/decompress.js +39 -0
  119. package/lib/common/taball/decompress.js.map +1 -0
  120. package/lib/common/taball/file-download.d.ts +15 -0
  121. package/lib/common/taball/file-download.d.ts.map +1 -0
  122. package/lib/common/taball/file-download.js +137 -0
  123. package/lib/common/taball/file-download.js.map +1 -0
  124. package/lib/common/temp-work-folder.d.ts +20 -0
  125. package/lib/common/temp-work-folder.d.ts.map +1 -0
  126. package/lib/common/temp-work-folder.js +68 -0
  127. package/lib/common/temp-work-folder.js.map +1 -0
  128. package/lib/common/version.generated.d.ts +12 -0
  129. package/lib/common/version.generated.d.ts.map +1 -0
  130. package/lib/common/version.generated.js +17 -0
  131. package/lib/common/version.generated.js.map +1 -0
  132. package/lib/main.d.ts +2 -0
  133. package/lib/main.d.ts.map +1 -0
  134. package/lib/main.js +115 -0
  135. package/lib/main.js.map +1 -0
  136. package/lib/tsconfig.tsbuildinfo +1 -0
  137. package/load.js +12 -0
  138. package/package.json +59 -0
  139. package/src/command-file-map.generated.ts +28 -0
  140. package/src/command-file-map.generator.ts +23 -0
  141. package/src/commands/detect-package-change.ts +57 -0
  142. package/src/commands/monorepo-bump-version.ts +152 -0
  143. package/src/commands/monorepo-cnpm-sync.ts +19 -0
  144. package/src/commands/monorepo-invalid.ts +22 -0
  145. package/src/commands/monorepo-list.ts +46 -0
  146. package/src/commands/monorepo-publish.ts +227 -0
  147. package/src/commands/monorepo-tsconfig.ts +156 -0
  148. package/src/commands/monorepo-upgrade.ts +131 -0
  149. package/src/commands/run-if-version-mismatch.ts +78 -0
  150. package/src/commands/sync-my-readme.ts +56 -0
  151. package/src/commands/test.ts +18 -0
  152. package/src/common/cache/escape-package-path.ts +6 -0
  153. package/src/common/cache/native.npm.ts +206 -0
  154. package/src/common/functions/cli.ts +145 -0
  155. package/src/common/functions/global-lifecycle.ts +40 -0
  156. package/src/common/git/git.ts +75 -0
  157. package/src/common/package-manager/constant.ts +1 -0
  158. package/src/common/package-manager/driver.abstract.ts +162 -0
  159. package/src/common/package-manager/driver.npm.ts +13 -0
  160. package/src/common/package-manager/driver.pnpm.ts +113 -0
  161. package/src/common/package-manager/functions.ts +117 -0
  162. package/src/common/package-manager/package-json.ts +56 -0
  163. package/src/common/package-manager/package-manager.ts +46 -0
  164. package/src/common/package-manager/proxy.ts +129 -0
  165. package/src/common/shared-jobs/cnpm-sync.ts +57 -0
  166. package/src/common/shared-jobs/detect-change-job.ts +76 -0
  167. package/src/common/shared-jobs/publish-package-version-job.ts +46 -0
  168. package/src/common/taball/decompress.ts +41 -0
  169. package/src/common/taball/file-download.ts +166 -0
  170. package/src/common/temp-work-folder.ts +80 -0
  171. package/src/common/version.generated.ts +18 -0
  172. package/src/common/version.generator.ts +15 -0
  173. package/src/global.d.ts +17 -0
  174. package/src/main.ts +144 -0
  175. package/src/tsconfig.json +11 -0
package/src/main.ts ADDED
@@ -0,0 +1,144 @@
1
+ import type { ISubArgsReaderApi } from '@idlebox/args';
2
+ import { AppExit, prettyPrintError } from '@idlebox/common';
3
+ import { createRootLogger, EnableLogLevel } from '@idlebox/logger';
4
+ import { resolve } from 'node:path';
5
+ import cmdList from './command-file-map.generated.js';
6
+ import {
7
+ argv,
8
+ DieError,
9
+ isHelp,
10
+ isQuiet,
11
+ isVerbose,
12
+ pCmd,
13
+ pDesc,
14
+ printCommonOptions,
15
+ type CommandDefine,
16
+ } from './common/functions/cli.js';
17
+ import { registerShutdownHandlers, shutdown } from './common/functions/global-lifecycle.js';
18
+ import { configureProxyFromEnvironment } from './common/package-manager/proxy.js';
19
+
20
+ createRootLogger('', isVerbose ? EnableLogLevel.verbose : isQuiet ? EnableLogLevel.error : EnableLogLevel.log);
21
+
22
+ const usage_prefix = '\x1B[1mnjspkg\x1B[0m \x1B[38;5;3m[通用参数]\x1B[0m';
23
+
24
+ try {
25
+ process.exitCode = await main();
26
+ if (argv.flag('--verbose')) {
27
+ console.log('exit code: %d', process.exitCode);
28
+ }
29
+ process.exit();
30
+ } catch (e: any) {
31
+ if (e instanceof AppExit) {
32
+ } else if (e instanceof DieError) {
33
+ console.error('错误: %s', e.message);
34
+ shutdown(1);
35
+ } else {
36
+ prettyPrintError('main', e);
37
+ shutdown(1);
38
+ }
39
+ }
40
+
41
+ type MainFunc = (argv: ISubArgsReaderApi) => Promise<number> | number;
42
+
43
+ async function importCommand(cmd: keyof typeof cmdList) {
44
+ const exports = await import(cmdList[cmd]);
45
+ const main: MainFunc = exports.main;
46
+ const Command: new () => CommandDefine = exports.Command;
47
+ return { main, Command };
48
+ }
49
+
50
+ async function main() {
51
+ const chdir = argv.single(['--package']);
52
+ if (chdir) process.chdir(resolve(process.cwd(), chdir));
53
+
54
+ const allKnownCommands = Object.keys(cmdList) as (keyof typeof cmdList)[];
55
+
56
+ const subArgv = argv.command(allKnownCommands);
57
+
58
+ if (subArgv?.value && cmdList[subArgv.value]) {
59
+ const cmd = subArgv.value;
60
+ const { main, Command } = await importCommand(cmd);
61
+
62
+ if (isHelp) {
63
+ const command = new Command();
64
+ process.stderr.write(`Usage: ${usage_prefix} ${pCmd(cmd)} ${command.usage.trim()}\n`);
65
+ process.stderr.write(`${command.help.trim().replace(/^/gm, ' ')}\n\n`);
66
+ printCommonOptions();
67
+ process.stderr.write('\n');
68
+ return 0;
69
+ }
70
+
71
+ registerShutdownHandlers();
72
+ configureProxyFromEnvironment();
73
+
74
+ // RUN MAIN HERE
75
+ return await main(subArgv);
76
+ }
77
+
78
+ if (isHelp) {
79
+ } else if (argv.unused().length === 0) {
80
+ console.error('Command is required. pass -h / --help to get usage.');
81
+ return 1;
82
+ } else {
83
+ console.error('\x1B[38;5;9mUnknown command: %s\x1B[0m\n', argv.unused()[0]);
84
+
85
+ printLegend();
86
+ process.stderr.write('\n');
87
+ const tbl = table();
88
+ for (const cmd of allKnownCommands) {
89
+ const { Command } = await importCommand(cmd);
90
+
91
+ const command = new Command();
92
+ if (command.isHidden) continue;
93
+
94
+ tbl.line(cmd, command.description.trim());
95
+ }
96
+ tbl.emit();
97
+ process.stderr.write('\n');
98
+
99
+ return 22;
100
+ }
101
+
102
+ printLegend();
103
+ process.stderr.write('\n');
104
+ printCommonOptions();
105
+ process.stderr.write('\n');
106
+
107
+ for (const cmd of allKnownCommands) {
108
+ const { Command } = await importCommand(cmd);
109
+ const command = new Command();
110
+ if (command.isHidden) continue;
111
+
112
+ let usage = command.usage.trim();
113
+ if (usage) usage += ' ';
114
+ usage += pDesc(command.description.trim());
115
+ process.stderr.write(`${pCmd(cmd)} ${usage}\n`);
116
+ const s = command.help.trim();
117
+ process.stderr.write(`${s.replace(/^/gm, ' ')}\n\n`);
118
+ }
119
+
120
+ return isHelp ? 0 : 22;
121
+ }
122
+
123
+ function printLegend() {
124
+ process.stderr.write(
125
+ `\x1B[2mUsage:\x1B[0m\n ${usage_prefix} \x1B[38;5;10m<命令>\x1B[0m \x1B[38;5;14m[命令参数]\x1B[0m\n`,
126
+ );
127
+ }
128
+
129
+ function table() {
130
+ const elements: [string, string][] = [];
131
+
132
+ return {
133
+ line(left: string, right: string) {
134
+ elements.push([left, right]);
135
+ },
136
+ emit() {
137
+ const max_left = Math.max(...elements.map((s) => s[0].length));
138
+
139
+ for (const [left, right] of elements) {
140
+ process.stderr.write(` ${pCmd(left.padEnd(max_left))} ${right}\n`);
141
+ }
142
+ },
143
+ };
144
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "@internal/local-rig/profiles/default/tsconfig.json",
3
+ "compilerOptions": {
4
+ "typeRoots": ["../node_modules/@types", "../node_modules"],
5
+ "outDir": "../lib",
6
+ "rootDir": "./",
7
+ "types": ["node"],
8
+ "noEmitOnError": false
9
+ },
10
+ "exclude": ["**/*.generator.ts"]
11
+ }