@decaf-ts/utils 1.3.1 → 1.5.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 (74) hide show
  1. package/README.md +1 -1
  2. package/dist/utils.cjs +1 -1
  3. package/dist/utils.cjs.map +1 -1
  4. package/dist/utils.js +1 -1
  5. package/dist/utils.js.map +1 -1
  6. package/lib/cjs/bin/build-scripts.cjs +0 -0
  7. package/lib/cjs/bin/modules.cjs +14 -0
  8. package/lib/cjs/bin/modules.cjs.map +1 -0
  9. package/lib/cjs/bin/npm-link.cjs +14 -0
  10. package/lib/cjs/bin/npm-link.cjs.map +1 -0
  11. package/lib/cjs/bin/npm-token.cjs +14 -0
  12. package/lib/cjs/bin/npm-token.cjs.map +1 -0
  13. package/lib/cjs/bin/release-chain-dispatch.cjs +0 -0
  14. package/lib/cjs/bin/release-chain.cjs +0 -0
  15. package/lib/cjs/bin/run-all.cjs +14 -0
  16. package/lib/cjs/bin/run-all.cjs.map +1 -0
  17. package/lib/cjs/bin/tag-release.cjs +0 -0
  18. package/lib/cjs/cli/commands/index.cjs +5 -0
  19. package/lib/cjs/cli/commands/index.cjs.map +1 -1
  20. package/lib/cjs/cli/commands/modules.cjs +66 -0
  21. package/lib/cjs/cli/commands/modules.cjs.map +1 -0
  22. package/lib/cjs/cli/commands/npm-link.cjs +165 -0
  23. package/lib/cjs/cli/commands/npm-link.cjs.map +1 -0
  24. package/lib/cjs/cli/commands/npm-token.cjs +63 -0
  25. package/lib/cjs/cli/commands/npm-token.cjs.map +1 -0
  26. package/lib/cjs/cli/commands/run-all.cjs +55 -0
  27. package/lib/cjs/cli/commands/run-all.cjs.map +1 -0
  28. package/lib/cjs/cli/commands/tag-release-shell.cjs +177 -0
  29. package/lib/cjs/cli/commands/tag-release-shell.cjs.map +1 -0
  30. package/lib/cjs/index.cjs +1 -1
  31. package/lib/esm/bin/modules.js +10 -0
  32. package/lib/esm/bin/modules.js.map +1 -0
  33. package/lib/esm/bin/npm-link.js +10 -0
  34. package/lib/esm/bin/npm-link.js.map +1 -0
  35. package/lib/esm/bin/npm-token.js +10 -0
  36. package/lib/esm/bin/npm-token.js.map +1 -0
  37. package/lib/esm/bin/run-all.js +10 -0
  38. package/lib/esm/bin/run-all.js.map +1 -0
  39. package/lib/esm/cli/commands/index.js +5 -0
  40. package/lib/esm/cli/commands/index.js.map +1 -1
  41. package/lib/esm/cli/commands/modules.js +56 -0
  42. package/lib/esm/cli/commands/modules.js.map +1 -0
  43. package/lib/esm/cli/commands/npm-link.js +157 -0
  44. package/lib/esm/cli/commands/npm-link.js.map +1 -0
  45. package/lib/esm/cli/commands/npm-token.js +55 -0
  46. package/lib/esm/cli/commands/npm-token.js.map +1 -0
  47. package/lib/esm/cli/commands/run-all.js +47 -0
  48. package/lib/esm/cli/commands/run-all.js.map +1 -0
  49. package/lib/esm/cli/commands/tag-release-shell.js +169 -0
  50. package/lib/esm/cli/commands/tag-release-shell.js.map +1 -0
  51. package/lib/esm/index.js +1 -1
  52. package/lib/types/bin/modules.d.cts +1 -0
  53. package/lib/types/bin/modules.d.mts +1 -0
  54. package/lib/types/bin/npm-link.d.cts +1 -0
  55. package/lib/types/bin/npm-link.d.mts +1 -0
  56. package/lib/types/bin/npm-token.d.cts +1 -0
  57. package/lib/types/bin/npm-token.d.mts +1 -0
  58. package/lib/types/bin/run-all.d.cts +1 -0
  59. package/lib/types/bin/run-all.d.mts +1 -0
  60. package/lib/types/cli/commands/index.d.cts +5 -0
  61. package/lib/types/cli/commands/index.d.mts +5 -0
  62. package/lib/types/cli/commands/modules.d.cts +18 -0
  63. package/lib/types/cli/commands/modules.d.mts +18 -0
  64. package/lib/types/cli/commands/npm-link.d.cts +34 -0
  65. package/lib/types/cli/commands/npm-link.d.mts +34 -0
  66. package/lib/types/cli/commands/npm-token.d.cts +22 -0
  67. package/lib/types/cli/commands/npm-token.d.mts +22 -0
  68. package/lib/types/cli/commands/run-all.d.cts +21 -0
  69. package/lib/types/cli/commands/run-all.d.mts +21 -0
  70. package/lib/types/cli/commands/tag-release-shell.d.cts +56 -0
  71. package/lib/types/cli/commands/tag-release-shell.d.mts +56 -0
  72. package/lib/types/index.d.cts +1 -1
  73. package/lib/types/index.d.mts +1 -1
  74. package/package.json +6 -2
@@ -0,0 +1,157 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { execSync } from "node:child_process";
4
+ import { Command } from "./../command.js";
5
+ import { readGitModulesDeep } from "./modules.js";
6
+ const options = {
7
+ maxTraversal: {
8
+ type: "string",
9
+ default: "2",
10
+ },
11
+ excludes: {
12
+ type: "string",
13
+ multiple: true,
14
+ default: ["@decaf-ts/utils", "@decaf-ts/logging"],
15
+ },
16
+ include: {
17
+ type: "string",
18
+ multiple: true,
19
+ default: [],
20
+ },
21
+ operation: {
22
+ type: "string",
23
+ default: "link",
24
+ },
25
+ };
26
+ function getScope(packageName) {
27
+ return packageName.split("/")[0] || "";
28
+ }
29
+ function getPackageName(packageName) {
30
+ return packageName.split("/")[1] || packageName;
31
+ }
32
+ function getDependencyList(pkg) {
33
+ return [
34
+ ...Object.keys(pkg.dependencies || {}),
35
+ ...Object.keys(pkg.devDependencies || {}),
36
+ ...Object.keys(pkg.peerDependencies || {}),
37
+ ];
38
+ }
39
+ function normalizeList(value) {
40
+ if (Array.isArray(value)) {
41
+ return value.map((item) => `${item}`.trim()).filter(Boolean);
42
+ }
43
+ if (typeof value === "string" && value.length > 0) {
44
+ return value
45
+ .split(",")
46
+ .map((item) => item.trim())
47
+ .filter(Boolean);
48
+ }
49
+ return [];
50
+ }
51
+ function matchesPattern(value, pattern) {
52
+ return (value === pattern ||
53
+ path.basename(value) === pattern ||
54
+ value.endsWith(`/${pattern}`));
55
+ }
56
+ export class NpmLinkCommand extends Command {
57
+ constructor() {
58
+ super("NpmLinkCommand", options);
59
+ }
60
+ help() {
61
+ this.log.info("link: create symlinks for decaf-ts dependency outputs inside each matching module");
62
+ this.log.info("unlink: remove symlinked decaf-ts dependencies from each matching module, then reinstall");
63
+ this.log.info("other operations: run the matching npm command inside each selected module");
64
+ }
65
+ async run(answers) {
66
+ const maxTraversal = Number.parseInt(`${answers.maxTraversal || "2"}`, 10);
67
+ const include = normalizeList(answers.include);
68
+ const excludes = normalizeList(answers.excludes);
69
+ const defaultExcludes = ["@decaf-ts/utils", "@decaf-ts/logging"];
70
+ const operation = `${answers.operation || "link"}`.trim() || "link";
71
+ const outerPkg = JSON.parse(fs.readFileSync(path.join(process.cwd(), "package.json"), "utf8"));
72
+ const scope = getScope(outerPkg.name);
73
+ const modules = readGitModulesDeep(process.cwd(), Number.isFinite(maxTraversal) ? maxTraversal : 2);
74
+ const selectedModules = modules.filter((moduleName) => include.length > 0
75
+ ? include.some((pattern) => matchesPattern(moduleName, pattern))
76
+ : true);
77
+ const shouldIgnoreDependency = (dependency) => (excludes.length > 0 ? excludes : defaultExcludes).some((pattern) => matchesPattern(dependency, pattern));
78
+ for (const moduleName of selectedModules) {
79
+ const moduleRoot = path.join(process.cwd(), moduleName);
80
+ let pkg;
81
+ try {
82
+ pkg = JSON.parse(fs.readFileSync(path.join(moduleRoot, "package.json"), "utf8"));
83
+ }
84
+ catch {
85
+ continue;
86
+ }
87
+ const dependencies = getDependencyList(pkg).filter((dep) => dep.startsWith(scope));
88
+ if (operation === "link") {
89
+ for (const dependency of dependencies) {
90
+ if (shouldIgnoreDependency(dependency))
91
+ continue;
92
+ const innerCodePath = dependency.endsWith("styles") ? "dist" : "lib";
93
+ const packageName = getPackageName(dependency);
94
+ try {
95
+ const packageRoot = path.join(moduleRoot, "node_modules", scope, packageName);
96
+ const dependencyTarget = path.join(moduleRoot, "node_modules", dependency);
97
+ const sourcePath = path.join(process.cwd(), packageName, innerCodePath);
98
+ const linkPath = path.join(packageRoot, innerCodePath);
99
+ if (!fs.existsSync(sourcePath)) {
100
+ console.log(`Skipping ${dependency} as it does not exist in the master repository`);
101
+ continue;
102
+ }
103
+ console.log(`linking ${dependency} as a dependency of ${moduleName}`);
104
+ fs.rmSync(dependencyTarget, { force: true, recursive: true });
105
+ fs.mkdirSync(packageRoot, { recursive: true });
106
+ fs.rmSync(linkPath, { force: true, recursive: true });
107
+ fs.symlinkSync(path.relative(packageRoot, sourcePath), linkPath, "dir");
108
+ }
109
+ catch (error) {
110
+ console.log(`Failed to link ${dependency} as a dependency of ${moduleName}: ${error}`);
111
+ process.exit(1);
112
+ }
113
+ }
114
+ continue;
115
+ }
116
+ if (operation === "unlink") {
117
+ for (const dependency of dependencies) {
118
+ if (shouldIgnoreDependency(dependency))
119
+ continue;
120
+ console.log(`unlinking ${dependency} as a dependency of ${moduleName}`);
121
+ try {
122
+ fs.rmSync(path.join(moduleRoot, "node_modules", dependency), {
123
+ force: true,
124
+ recursive: true,
125
+ });
126
+ }
127
+ catch {
128
+ process.exit(1);
129
+ }
130
+ }
131
+ try {
132
+ execSync("npm run do-install", {
133
+ cwd: moduleRoot,
134
+ env: process.env,
135
+ stdio: "inherit",
136
+ });
137
+ }
138
+ catch {
139
+ process.exit(1);
140
+ }
141
+ continue;
142
+ }
143
+ console.log(`${operation}ing ${moduleName}`);
144
+ try {
145
+ execSync(`npm ${operation}`, {
146
+ cwd: moduleRoot,
147
+ env: process.env,
148
+ stdio: "inherit",
149
+ });
150
+ }
151
+ catch {
152
+ process.exit(1);
153
+ }
154
+ }
155
+ }
156
+ }
157
+ //# sourceMappingURL=npm-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-link.js","sourceRoot":"","sources":["../../../../src/cli/commands/npm-link.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { Command } from "./../command.js";
4
+ import { readGitModulesDeep } from "./modules.js";
5
+ const options = {
6
+ maxTraversal: {
7
+ type: "string",
8
+ default: "2",
9
+ },
10
+ tokenFiles: {
11
+ type: "string",
12
+ multiple: true,
13
+ default: [".token", ".npmtoken"],
14
+ },
15
+ };
16
+ function normalizeList(value) {
17
+ if (Array.isArray(value)) {
18
+ return value.map((item) => `${item}`.trim()).filter(Boolean);
19
+ }
20
+ if (typeof value === "string" && value.length > 0) {
21
+ return value
22
+ .split(",")
23
+ .map((item) => item.trim())
24
+ .filter(Boolean);
25
+ }
26
+ return [];
27
+ }
28
+ export class NpmTokenCommand extends Command {
29
+ constructor() {
30
+ super("NpmTokenCommand", options);
31
+ }
32
+ async run(answers) {
33
+ const maxTraversal = Number.parseInt(`${answers.maxTraversal || "2"}`, 10);
34
+ const tokenFiles = normalizeList(answers.tokenFiles);
35
+ const effectiveTokenFiles = tokenFiles.length > 0 ? tokenFiles : [".token", ".npmtoken"];
36
+ const modules = readGitModulesDeep(process.cwd(), Number.isFinite(maxTraversal) ? maxTraversal : 2);
37
+ for (const moduleName of modules) {
38
+ const moduleRoot = path.join(process.cwd(), moduleName);
39
+ try {
40
+ for (const tokenFile of effectiveTokenFiles) {
41
+ console.log(`linking ${tokenFile} to ${moduleName}`);
42
+ fs.rmSync(path.join(moduleRoot, tokenFile), {
43
+ force: true,
44
+ recursive: true,
45
+ });
46
+ fs.symlinkSync(path.join("..", tokenFile), path.join(moduleRoot, tokenFile));
47
+ }
48
+ }
49
+ catch {
50
+ process.exit(1);
51
+ }
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=npm-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-token.js","sourceRoot":"","sources":["../../../../src/cli/commands/npm-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,wBAAmB;AAErC,OAAO,EAAE,kBAAkB,EAAE,qBAAkB;AAE/C,MAAM,OAAO,GAAG;IACd,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG;KACb;IACD,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;KACjC;CACF,CAAC;AAEF,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK;aACT,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,OAA6B;IAChE;QACE,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAES,KAAK,CAAC,GAAG,CACjB,OAIG;QAEH,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,YAAY,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,mBAAmB,GACvB,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,kBAAkB,CAChC,OAAO,CAAC,GAAG,EAAE,EACb,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACjD,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;YACxD,IAAI,CAAC;gBACH,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;oBAC5C,OAAO,CAAC,GAAG,CAAC,WAAW,SAAS,OAAO,UAAU,EAAE,CAAC,CAAC;oBACrD,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;wBAC1C,KAAK,EAAE,IAAI;wBACX,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;oBACH,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { execSync } from "node:child_process";
4
+ import { Command } from "./../command.js";
5
+ import { readGitModules } from "./modules.js";
6
+ const options = {
7
+ basePath: {
8
+ type: "string",
9
+ default: process.cwd(),
10
+ },
11
+ command: {
12
+ type: "string",
13
+ default: undefined,
14
+ },
15
+ };
16
+ export class RunAllCommand extends Command {
17
+ constructor() {
18
+ super("RunAllCommand", options);
19
+ }
20
+ async run(answers) {
21
+ const basePath = typeof answers.basePath === "string" && answers.basePath.trim().length > 0
22
+ ? answers.basePath.trim()
23
+ : process.cwd();
24
+ const command = typeof answers.command === "string" ? answers.command.trim() : "";
25
+ if (command.length === 0) {
26
+ throw new Error("run-all requires a command to execute");
27
+ }
28
+ const modules = readGitModules(basePath);
29
+ for (const moduleName of modules) {
30
+ const moduleRoot = path.join(basePath, moduleName);
31
+ if (!fs.existsSync(moduleRoot))
32
+ continue;
33
+ console.log(`running ${command} ${moduleName}`);
34
+ try {
35
+ execSync(command, {
36
+ cwd: moduleRoot,
37
+ env: process.env,
38
+ stdio: "inherit",
39
+ });
40
+ }
41
+ catch {
42
+ process.exit(1);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ //# sourceMappingURL=run-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-all.js","sourceRoot":"","sources":["../../../../src/cli/commands/run-all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,wBAAmB;AAErC,OAAO,EAAE,cAAc,EAAE,qBAAkB;AAE3C,MAAM,OAAO,GAAG;IACd,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;KACvB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;KACnB;CACF,CAAC;AAEF,MAAM,OAAO,aAAc,SAAQ,OAA6B;IAC9D;QACE,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAES,KAAK,CAAC,GAAG,CACjB,OAIG;QAEH,MAAM,QAAQ,GACZ,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YACxE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;YACzB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACpB,MAAM,OAAO,GACX,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzC,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,SAAS;YAEzC,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,EAAE;oBAChB,GAAG,EAAE,UAAU;oBACf,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,169 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { execSync } from "node:child_process";
4
+ import { Command } from "./../command.js";
5
+ import { UserInput } from "./../../input/input.js";
6
+ import { NoCIFLag } from "./../../utils/constants.js";
7
+ const options = {
8
+ public: {
9
+ type: "boolean",
10
+ default: false,
11
+ },
12
+ private: {
13
+ type: "boolean",
14
+ default: false,
15
+ },
16
+ gitToken: {
17
+ type: "string",
18
+ default: ".token",
19
+ },
20
+ npmToken: {
21
+ type: "string",
22
+ default: ".npmtoken",
23
+ },
24
+ gitUser: {
25
+ type: "string",
26
+ default: undefined,
27
+ },
28
+ allowFromBranch: {
29
+ type: "boolean",
30
+ default: false,
31
+ },
32
+ tag: {
33
+ type: "string",
34
+ default: undefined,
35
+ },
36
+ message: {
37
+ type: "string",
38
+ default: undefined,
39
+ },
40
+ };
41
+ export class TagReleaseCommand extends Command {
42
+ constructor() {
43
+ super("TagReleaseCommand", options);
44
+ }
45
+ async ensureReleaseBranch(allowFromBranch = false) {
46
+ if (allowFromBranch)
47
+ return;
48
+ const currentBranch = execSync("git rev-parse --abbrev-ref HEAD", {
49
+ cwd: process.cwd(),
50
+ encoding: "utf8",
51
+ }).trim();
52
+ if (currentBranch !== "master" && currentBranch !== "main") {
53
+ throw new Error(`release must be run from 'master' or 'main' branch. Current branch: ${currentBranch}`);
54
+ }
55
+ }
56
+ async prepareTag(tag) {
57
+ tag = `${tag || ""}`.trim();
58
+ if (tag.length > 0) {
59
+ return tag;
60
+ }
61
+ execSync("git tag --sort=-taggerdate | head -n 5", {
62
+ cwd: process.cwd(),
63
+ stdio: "inherit",
64
+ });
65
+ return UserInput.insistForText("tag", "What should be the new tag? (accepts v*.*.*[-...])", (val) => !!val.toString().match(/^v[0-9]+\.[0-9]+\.[0-9]+(-[0-9a-zA-Z-]+)?$/));
66
+ }
67
+ async prepareMessage(message) {
68
+ message = `${message || ""}`.trim();
69
+ if (message.length > 0) {
70
+ return message;
71
+ }
72
+ return UserInput.insistForText("message", "Tag Message", (val) => !!val && val.toString().length > 0);
73
+ }
74
+ hasToken(fileName) {
75
+ try {
76
+ return fs.statSync(path.join(process.cwd(), fileName)).size > 0;
77
+ }
78
+ catch {
79
+ return false;
80
+ }
81
+ }
82
+ readToken(fileName) {
83
+ return fs.readFileSync(path.join(process.cwd(), fileName), "utf8").trim();
84
+ }
85
+ async run(answers) {
86
+ await this.ensureReleaseBranch(answers.allowFromBranch === true);
87
+ const publishAccessFlag = answers.private === true ? "private" : "public";
88
+ const tag = await this.prepareTag(answers.tag);
89
+ const message = await this.prepareMessage(answers.message);
90
+ const gitTokenFile = `${answers.gitToken || ".token"}`;
91
+ const npmTokenFile = `${answers.npmToken || ".npmtoken"}`;
92
+ const gitUser = typeof answers.gitUser === "string" && answers.gitUser.trim().length > 0
93
+ ? answers.gitUser.trim()
94
+ : execSync("git config user.name", {
95
+ cwd: process.cwd(),
96
+ encoding: "utf8",
97
+ }).trim();
98
+ execSync("npm run prepare-release", {
99
+ cwd: process.cwd(),
100
+ stdio: "inherit",
101
+ });
102
+ const status = execSync("git status --porcelain", {
103
+ cwd: process.cwd(),
104
+ encoding: "utf8",
105
+ });
106
+ if (status.trim().length > 0) {
107
+ execSync("git add .", { cwd: process.cwd(), stdio: "inherit" });
108
+ execSync(`git commit -m "${tag} - ${message} - after release preparation"`, {
109
+ cwd: process.cwd(),
110
+ stdio: "inherit",
111
+ });
112
+ }
113
+ execSync(`npm version "${tag}" -m "${message}"`, {
114
+ cwd: process.cwd(),
115
+ stdio: "inherit",
116
+ });
117
+ const remoteUrl = execSync("git remote get-url origin", {
118
+ cwd: process.cwd(),
119
+ encoding: "utf8",
120
+ }).trim();
121
+ if (this.hasToken(gitTokenFile)) {
122
+ const currentBranch = execSync("git rev-parse --abbrev-ref HEAD", {
123
+ cwd: process.cwd(),
124
+ encoding: "utf8",
125
+ });
126
+ let upstream = "";
127
+ try {
128
+ upstream = execSync("git rev-parse --abbrev-ref --symbolic-full-name '@{u}'", {
129
+ cwd: process.cwd(),
130
+ encoding: "utf8",
131
+ });
132
+ }
133
+ catch {
134
+ upstream = "";
135
+ }
136
+ const token = this.readToken(gitTokenFile);
137
+ execSync(`git push "https://${gitUser}:${token}@${remoteUrl.replace(/^https:\/\//, "")}" --follow-tags`, {
138
+ cwd: process.cwd(),
139
+ stdio: "inherit",
140
+ });
141
+ if (upstream.trim().length > 0) {
142
+ try {
143
+ execSync(`git branch --set-upstream-to="${upstream.trim()}" "${currentBranch.trim()}"`, {
144
+ cwd: process.cwd(),
145
+ stdio: "inherit",
146
+ });
147
+ }
148
+ catch {
149
+ // ignore restore failures
150
+ }
151
+ }
152
+ }
153
+ else {
154
+ execSync("git push --follow-tags", {
155
+ cwd: process.cwd(),
156
+ stdio: "inherit",
157
+ });
158
+ }
159
+ const npmAccessValue = publishAccessFlag === "public" ? "public" : "restricted";
160
+ if (message.endsWith(NoCIFLag) && this.hasToken(npmTokenFile)) {
161
+ const npmToken = this.readToken(npmTokenFile);
162
+ execSync(`NPM_TOKEN="${npmToken}" npm publish --access "${npmAccessValue}"`, {
163
+ cwd: process.cwd(),
164
+ stdio: "inherit",
165
+ });
166
+ }
167
+ }
168
+ }
169
+ //# sourceMappingURL=tag-release-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-release-shell.js","sourceRoot":"","sources":["../../../../src/cli/commands/tag-release-shell.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -27,7 +27,7 @@ export * from "./release-chain/index.js";
27
27
  * @const VERSION
28
28
  * @memberOf module:utils
29
29
  */
30
- export const VERSION = "1.3.0";
30
+ export const VERSION = "1.5.0";
31
31
  /**
32
32
  * @description Represents the current version of the module.
33
33
  * @summary Stores the version for the @decaf-ts/utils package. The build replaces
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,8 @@
1
1
  export * from "./build-scripts.d.cts";
2
2
  export * from "./tag-release.d.cts";
3
3
  export * from "./release-chain.d.cts";
4
+ export * from "./modules.d.cts";
5
+ export * from "./npm-link.d.cts";
6
+ export * from "./npm-token.d.cts";
7
+ export * from "./run-all.d.cts";
8
+ export * from "./tag-release-shell.d.cts";
@@ -1,3 +1,8 @@
1
1
  export * from "./build-scripts.d.mts";
2
2
  export * from "./tag-release.d.mts";
3
3
  export * from "./release-chain.d.mts";
4
+ export * from "./modules.d.mts";
5
+ export * from "./npm-link.d.mts";
6
+ export * from "./npm-token.d.mts";
7
+ export * from "./run-all.d.mts";
8
+ export * from "./tag-release-shell.d.mts";
@@ -0,0 +1,18 @@
1
+ import { Command } from "../command.d.cts";
2
+ import { DefaultCommandValues } from "../constants.d.cts";
3
+ import { LoggingConfig } from "@decaf-ts/logging";
4
+ export declare function readGitModules(basePath?: string): string[];
5
+ export declare function readGitModulesDeep(basePath?: string, maxTraversal?: number): string[];
6
+ declare const options: {
7
+ basePath: {
8
+ type: string;
9
+ default: string;
10
+ };
11
+ };
12
+ export declare class ModulesCommand extends Command<typeof options, void> {
13
+ constructor();
14
+ protected run(answers: LoggingConfig & typeof DefaultCommandValues & {
15
+ basePath: string;
16
+ }): Promise<void>;
17
+ }
18
+ export {};
@@ -0,0 +1,18 @@
1
+ import { Command } from "../command.d.mts";
2
+ import { DefaultCommandValues } from "../constants.d.mts";
3
+ import { LoggingConfig } from "@decaf-ts/logging";
4
+ export declare function readGitModules(basePath?: string): string[];
5
+ export declare function readGitModulesDeep(basePath?: string, maxTraversal?: number): string[];
6
+ declare const options: {
7
+ basePath: {
8
+ type: string;
9
+ default: string;
10
+ };
11
+ };
12
+ export declare class ModulesCommand extends Command<typeof options, void> {
13
+ constructor();
14
+ protected run(answers: LoggingConfig & typeof DefaultCommandValues & {
15
+ basePath: string;
16
+ }): Promise<void>;
17
+ }
18
+ export {};
@@ -0,0 +1,34 @@
1
+ import { LoggingConfig } from "@decaf-ts/logging";
2
+ import { Command } from "../command.d.cts";
3
+ import { DefaultCommandValues } from "../constants.d.cts";
4
+ declare const options: {
5
+ maxTraversal: {
6
+ type: string;
7
+ default: string;
8
+ };
9
+ excludes: {
10
+ type: string;
11
+ multiple: boolean;
12
+ default: string[];
13
+ };
14
+ include: {
15
+ type: string;
16
+ multiple: boolean;
17
+ default: never[];
18
+ };
19
+ operation: {
20
+ type: string;
21
+ default: string;
22
+ };
23
+ };
24
+ export declare class NpmLinkCommand extends Command<typeof options, void> {
25
+ constructor();
26
+ protected help(): void;
27
+ protected run(answers: LoggingConfig & typeof DefaultCommandValues & {
28
+ maxTraversal: unknown;
29
+ excludes: unknown;
30
+ include: unknown;
31
+ operation: unknown;
32
+ }): Promise<void>;
33
+ }
34
+ export {};
@@ -0,0 +1,34 @@
1
+ import { LoggingConfig } from "@decaf-ts/logging";
2
+ import { Command } from "../command.d.mts";
3
+ import { DefaultCommandValues } from "../constants.d.mts";
4
+ declare const options: {
5
+ maxTraversal: {
6
+ type: string;
7
+ default: string;
8
+ };
9
+ excludes: {
10
+ type: string;
11
+ multiple: boolean;
12
+ default: string[];
13
+ };
14
+ include: {
15
+ type: string;
16
+ multiple: boolean;
17
+ default: never[];
18
+ };
19
+ operation: {
20
+ type: string;
21
+ default: string;
22
+ };
23
+ };
24
+ export declare class NpmLinkCommand extends Command<typeof options, void> {
25
+ constructor();
26
+ protected help(): void;
27
+ protected run(answers: LoggingConfig & typeof DefaultCommandValues & {
28
+ maxTraversal: unknown;
29
+ excludes: unknown;
30
+ include: unknown;
31
+ operation: unknown;
32
+ }): Promise<void>;
33
+ }
34
+ export {};
@@ -0,0 +1,22 @@
1
+ import { LoggingConfig } from "@decaf-ts/logging";
2
+ import { Command } from "../command.d.cts";
3
+ import { DefaultCommandValues } from "../constants.d.cts";
4
+ declare const options: {
5
+ maxTraversal: {
6
+ type: string;
7
+ default: string;
8
+ };
9
+ tokenFiles: {
10
+ type: string;
11
+ multiple: boolean;
12
+ default: string[];
13
+ };
14
+ };
15
+ export declare class NpmTokenCommand extends Command<typeof options, void> {
16
+ constructor();
17
+ protected run(answers: LoggingConfig & typeof DefaultCommandValues & {
18
+ maxTraversal: unknown;
19
+ tokenFiles: unknown;
20
+ }): Promise<void>;
21
+ }
22
+ export {};