fscr 6.2.6 → 7.3.0

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 (72) hide show
  1. package/README.md +48 -30
  2. package/dist/index.js +502 -186
  3. package/dist/lib/auth/auth-conf.js +49 -45
  4. package/dist/lib/cache/README.md +341 -0
  5. package/dist/lib/cache/cli.js +152 -0
  6. package/dist/lib/cache/file-watcher.js +193 -0
  7. package/dist/lib/cache/index.js +422 -0
  8. package/dist/lib/cache/monitor.js +224 -0
  9. package/dist/lib/commands/doctor.js +225 -0
  10. package/dist/lib/completions/completion.js +342 -0
  11. package/dist/lib/completions/generator.js +152 -0
  12. package/dist/lib/completions/scripts/bash.sh +108 -0
  13. package/dist/lib/completions/scripts/fish.sh +105 -0
  14. package/dist/lib/completions/scripts/powershell.ps1 +168 -0
  15. package/dist/lib/completions/scripts/zsh.sh +124 -0
  16. package/dist/lib/diagnostics/cache.js +121 -0
  17. package/dist/lib/diagnostics/fileSystem.js +236 -0
  18. package/dist/lib/diagnostics/gitCheck.js +41 -0
  19. package/dist/lib/diagnostics/nodeVersion.js +68 -0
  20. package/dist/lib/diagnostics/packageManager.js +64 -0
  21. package/dist/lib/diagnostics/performance.js +141 -0
  22. package/dist/lib/encryption/decryptConfig.js +3 -2
  23. package/dist/lib/encryption/encryption.js +153 -113
  24. package/dist/lib/generators/generateFScripts.js +16 -13
  25. package/dist/lib/generators/generateToc.js +23 -14
  26. package/dist/lib/generators/index.js +1 -1
  27. package/dist/lib/git/pub.js +27 -17
  28. package/dist/lib/git/taskRunner.js +79 -69
  29. package/dist/lib/git/validateNotDev.js +65 -54
  30. package/dist/lib/optionList.js +69 -57
  31. package/dist/lib/parsers/parseScriptsMd.cached.js +208 -0
  32. package/dist/lib/parsers/parseScriptsMd.js +88 -79
  33. package/dist/lib/parsers/parseScriptsPackage.js +4 -3
  34. package/dist/lib/performance/cache.js +199 -0
  35. package/dist/lib/performance/lazy-loader.js +189 -0
  36. package/dist/lib/performance/monitor.js +303 -0
  37. package/dist/lib/plugins/deployment/index.js +113 -0
  38. package/dist/lib/plugins/hooks.js +17 -0
  39. package/dist/lib/plugins/loader.js +91 -0
  40. package/dist/lib/plugins/task-notifier/index.js +72 -0
  41. package/dist/lib/release/bump.js +50 -45
  42. package/dist/lib/release/commitWithMessage.js +80 -52
  43. package/dist/lib/release/publish.js +19 -14
  44. package/dist/lib/release/pushToGit.js +40 -31
  45. package/dist/lib/release/releasenotes.js +116 -97
  46. package/dist/lib/release/seeChangedFiles.js +68 -60
  47. package/dist/lib/release/sort.js +200 -116
  48. package/dist/lib/release/tree.js +161 -147
  49. package/dist/lib/release/validateNotDev.js +52 -44
  50. package/dist/lib/running/index.js +1 -1
  51. package/dist/lib/running/runCLICommand.js +41 -31
  52. package/dist/lib/running/runParallel.js +61 -59
  53. package/dist/lib/running/runSequence.js +55 -53
  54. package/dist/lib/startScripts.js +129 -114
  55. package/dist/lib/taskList.js +97 -90
  56. package/dist/lib/test-files/.fscripts.md +113 -0
  57. package/dist/lib/test-files/.fscripts.test.md +103 -0
  58. package/dist/lib/test-files/.fscriptsb.md +107 -0
  59. package/dist/lib/test-files/.mdtest.md +40 -0
  60. package/dist/lib/test-files/consoleSample.js +13 -9
  61. package/dist/lib/test-files/inputSample.js +17 -14
  62. package/dist/lib/test-files/testConsole.js +1 -1
  63. package/dist/lib/test-files/testInput.js +1 -1
  64. package/dist/lib/upgradePackages.js +56 -46
  65. package/dist/lib/utils/clear.js +16 -13
  66. package/dist/lib/utils/console.js +27 -21
  67. package/dist/lib/utils/encryption.js +55 -13
  68. package/dist/lib/utils/hash.js +128 -0
  69. package/dist/lib/utils/helpers.js +153 -142
  70. package/dist/lib/utils/index.js +1 -1
  71. package/dist/lib/utils/prompt.js +24 -29
  72. package/package.json +11 -29
@@ -28,111 +28,130 @@ import childProcess from "child_process";
28
28
 
29
29
  const pathToCwd = process.cwd();
30
30
  const grouped = (data, filesChanged) => {
31
- let output = {};
32
- let current;
33
- for (const pdata of data) {
34
- current = output;
35
- for (const segment of pdata.split("/")) {
36
- if (segment !== "") {
37
- if (!(segment in current)) {
38
- current[segment] = {};
31
+ let output = {};
32
+ let current;
33
+
34
+ for (const pdata of data) {
35
+ current = output;
36
+
37
+ for (const segment of pdata.split("/")) {
38
+ if (segment !== "") {
39
+ if (!(segment in current)) {
40
+ current[segment] = {};
41
+ }
42
+
43
+ current = current[segment];
44
+ }
39
45
  }
40
- current = current[segment];
41
- }
42
46
  }
43
- }
44
- let level = "";
45
- const deepClone = obj => {
46
- let clone = Object.assign({}, obj);
47
- Object.keys(clone).forEach(key => {
48
- let findMac = filesChanged.find(z => z.filename === key || z.filename === level + key);
49
- if (typeof obj[key] === "object" && Object.keys(obj[key]).length) {
50
- level += key + "/";
51
- clone[key] = deepClone(obj[key]);
52
- } else if (findMac) {
53
- let stat = findMac.status === undefined ? "Deleted" : findMac.status;
54
- console.info("-- Console STATUS", findMac.status, stat, key);
55
- stat = stat.replace(/\x1B[[(?);]{0,2}(;?\d)*./g, "");
56
- clone[key] = stat;
57
- } else {
58
- clone[key] = "";
59
- }
60
- return clone[key];
61
- });
62
- return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : clone;
63
- };
64
- output = deepClone(output);
65
- console.info(tree(output, {
66
- symbol: true,
67
- highlight: true,
68
- padding: 1,
69
- colors: {
70
- string: "black",
71
- number: "red",
72
- boolean: "red",
73
- infinity: "red",
74
- nan: "red",
75
- null: "cyan",
76
- undefined: "gray",
77
- regexp: "green",
78
- key: "black",
79
- object: "grey",
80
- array: "red"
81
- }
82
- }));
47
+ let level = "";
48
+ const deepClone = obj => {
49
+ let clone = Object.assign({}, obj);
50
+ Object.keys(clone).forEach(key => {
51
+ let findMac = filesChanged.find(z => z.filename === key || z.filename === level + key);
52
+ if (typeof obj[key] === "object" && Object.keys(obj[key]).length) {
53
+ level += key + "/";
54
+ clone[key] = deepClone(obj[key]);
55
+ } else if (findMac) {
56
+ let stat = findMac.status === undefined ? "Deleted" : findMac.status;
57
+ console.info("-- Console STATUS", findMac.status, stat, key);
58
+ stat = stat.replace(/\x1B[[(?);]{0,2}(;?\d)*./g, "");
59
+ clone[key] = stat;
60
+ } else {
61
+ clone[key] = "";
62
+ }
63
+ return clone[key];
64
+ });
65
+ return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : clone;
66
+ };
67
+ output = deepClone(output);
68
+ console.info(
69
+ tree(output, {
70
+ symbol: true,
71
+ highlight: true,
72
+ padding: 1,
73
+ colors: {
74
+ string: "black",
75
+ number: "red",
76
+ boolean: "red",
77
+ infinity: "red",
78
+ nan: "red",
79
+ null: "cyan",
80
+ undefined: "gray",
81
+ regexp: "green",
82
+ key: "black",
83
+ object: "grey",
84
+ array: "red"
85
+ }
86
+ })
87
+ );
83
88
 
84
- // jclrz(output);
85
- //
86
- return output;
89
+ // jclrz(output);
90
+ //
91
+ return output;
87
92
  };
93
+
88
94
  import sgfPkg from "staged-git-files";
89
95
  const sgf = sgfPkg.default || sgfPkg;
90
96
  (async () => {
91
- const howManyCommitsBack = await new Promise(resolve => {
92
- inquirer.prompt([{
93
- type: "input",
94
- message: "How many commits do you want to compare in the past?",
95
- default: 5,
96
- name: "howMany"
97
- }]).then(async ({
98
- howMany
99
- }) => {
100
- resolve(howMany);
97
+ const howManyCommitsBack = await new Promise(resolve => {
98
+ inquirer
99
+ .prompt([
100
+ {
101
+ type: "input",
102
+ message: "How many commits do you want to compare in the past?",
103
+ default: 5,
104
+ name: "howMany"
105
+ }
106
+ ])
107
+ .then(async ({ howMany }) => {
108
+ resolve(howMany);
109
+ });
101
110
  });
102
- });
103
- const results = await sgf();
104
- let updatedFiles = await ggg({
105
- diffFilter: "ACDMRTUXB",
106
- showStatus: true,
107
- showCommitted: false
108
- });
109
- updatedFiles = [...updatedFiles.unCommittedFiles, ...results];
110
- let z = ""; // grouped(updatedFiles.map(e => e.filename).sort(), updatedFiles);
111
- try {
112
- z = childProcess.execSync(`git log -${howManyCommitsBack} --oneline | nl -v0 | sed 's/^ \\+/&HEAD~/'`, {
113
- env: Object.assign({}, process.env)
114
- }).toString();
115
- // console.info("--- INFO z", z);
116
- } catch (e) {}
117
- z = z.split("\n").slice(-2)[0].split("\t").slice(-2)[1].split(" ")[0];
118
- const last = await new Promise(rzz => {
119
- git.isGit(pathToCwd, function (exists) {
120
- if (!exists) return;
121
- git.commit(pathToCwd, function (err, result) {
122
- if (err) throw err;
123
- rzz(result);
124
- });
111
+
112
+ const results = await sgf();
113
+
114
+ let updatedFiles = await ggg({
115
+ diffFilter: "ACDMRTUXB",
116
+ showStatus: true,
117
+ showCommitted: false
125
118
  });
126
- });
127
- console.info("-- Console FROM", z, "TO", last);
128
- const OPTIONS = {
129
- branch: "Development"
130
- };
131
- const RANGE = `${z}..${last}`;
132
- const TEMPLATE = "markdown";
133
- const changelog = await releaseNotes(OPTIONS, RANGE, TEMPLATE);
134
- console.log(`Changelog between ${RANGE}\n\n${changelog}`);
135
- // await fs.writeFileSync(path.resolve(process.cwd(), "release.md"), changelog, "utf-8");
119
+ updatedFiles = [...updatedFiles.unCommittedFiles, ...results];
120
+ let z = ""; // grouped(updatedFiles.map(e => e.filename).sort(), updatedFiles);
121
+ try {
122
+ z = childProcess
123
+ .execSync(`git log -${howManyCommitsBack} --oneline | nl -v0 | sed 's/^ \\+/&HEAD~/'`, {
124
+ env: Object.assign({}, process.env)
125
+ })
126
+ .toString();
127
+ // console.info("--- INFO z", z);
128
+ } catch (e) {}
129
+ z = z
130
+ .split("\n")
131
+ .slice(-2)[0]
132
+ .split("\t")
133
+ .slice(-2)[1]
134
+ .split(" ")[0];
135
+ const last = await new Promise(rzz => {
136
+ git.isGit(pathToCwd, function(exists) {
137
+ if (!exists) return;
138
+
139
+ git.commit(pathToCwd, function(err, result) {
140
+ if (err) throw err;
141
+ rzz(result);
142
+ });
143
+ });
144
+ });
145
+ console.info("-- Console FROM", z, "TO", last);
146
+
147
+ const OPTIONS = {
148
+ branch: "Development"
149
+ };
150
+ const RANGE = `${z}..${last}`;
151
+ const TEMPLATE = "markdown";
152
+ const changelog = await releaseNotes(OPTIONS, RANGE, TEMPLATE);
153
+ console.log(`Changelog between ${RANGE}\n\n${changelog}`);
154
+ // await fs.writeFileSync(path.resolve(process.cwd(), "release.md"), changelog, "utf-8");
136
155
  })();
137
156
  //
138
157
 
@@ -155,4 +174,4 @@ const sgf = sgfPkg.default || sgfPkg;
155
174
  // // .catch(ex => {
156
175
  // // console.error(ex);
157
176
  // // process.exit(1);
158
- // // resolve();
177
+ // // resolve();
@@ -19,71 +19,79 @@ import tree from "./tree.js";
19
19
  // const syms = ["⌯", "➢", "⃕", "⌁", "⌐", "━", "═", "⇝"];
20
20
 
21
21
  const grouped = (data, filesChanged) => {
22
- let output = {};
23
- let current;
24
- for (const pdata of data) {
25
- current = output;
26
- for (const segment of pdata.split("/")) {
27
- if (segment !== "") {
28
- if (!(segment in current)) {
29
- current[segment] = {};
22
+ let output = {};
23
+ let current;
24
+
25
+ for (const pdata of data) {
26
+ current = output;
27
+
28
+ for (const segment of pdata.split("/")) {
29
+ if (segment !== "") {
30
+ if (!(segment in current)) {
31
+ current[segment] = {};
32
+ }
33
+
34
+ current = current[segment];
35
+ }
30
36
  }
31
- current = current[segment];
32
- }
33
37
  }
34
- }
35
- let level = "";
36
- const deepClone = obj => {
37
- let clone = Object.assign({}, obj);
38
- Object.keys(clone).forEach(key => {
39
- let findMac = filesChanged.find(z => z.filename === key || z.filename === level + key);
40
- if (typeof obj[key] === "object" && Object.keys(obj[key]).length) {
41
- level += key + "/";
42
- clone[key] = deepClone(obj[key]);
43
- } else if (findMac) {
44
- let stat = findMac.status === undefined ? "Deleted" : findMac.status;
45
- stat = stat.replace(/\x1B[[(?);]{0,2}(;?\d)*./g, "");
46
- clone[key] = stat;
47
- } else {
48
- clone[key] = "";
49
- }
50
- return clone[key];
51
- });
52
- return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : clone;
53
- };
54
- output = deepClone(output);
38
+ let level = "";
39
+ const deepClone = obj => {
40
+ let clone = Object.assign({}, obj);
41
+ Object.keys(clone).forEach(key => {
42
+ let findMac = filesChanged.find(z => z.filename === key || z.filename === level + key);
43
+ if (typeof obj[key] === "object" && Object.keys(obj[key]).length) {
44
+ level += key + "/";
45
+ clone[key] = deepClone(obj[key]);
46
+ } else if (findMac) {
47
+ let stat = findMac.status === undefined ? "Deleted" : findMac.status;
48
+ stat = stat.replace(/\x1B[[(?);]{0,2}(;?\d)*./g, "");
49
+ clone[key] = stat;
50
+ } else {
51
+ clone[key] = "";
52
+ }
53
+ return clone[key];
54
+ });
55
+ return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : clone;
56
+ };
57
+ output = deepClone(output);
55
58
 
56
- // jclrz(output);
57
- //
58
- return output;
59
+ // jclrz(output);
60
+ //
61
+ return output;
59
62
  };
63
+
60
64
  import sgfPkg from "staged-git-files";
61
65
  const sgf = sgfPkg.default || sgfPkg;
62
66
  const seeChangedFiles = async () => {
63
- const results = await sgf();
64
- let updatedFiles = await ggg({
65
- diffFilter: "ACDMRTUXB",
66
- showStatus: true,
67
- showCommitted: false
68
- });
69
- updatedFiles = [...updatedFiles.unCommittedFiles, ...results];
70
- console.log(tree(grouped(updatedFiles.map(e => e.filename).sort(), updatedFiles), {
71
- symbol: true,
72
- highlight: true,
73
- padding: 1,
74
- colors: {
75
- string: "black",
76
- number: "red",
77
- boolean: "red",
78
- infinity: "red",
79
- nan: "red",
80
- null: "cyan",
81
- undefined: "gray",
82
- regexp: "green",
83
- key: "black",
84
- object: "grey",
85
- array: "red"
86
- }
87
- }));
67
+ const results = await sgf();
68
+
69
+ let updatedFiles = await ggg({
70
+ diffFilter: "ACDMRTUXB",
71
+ showStatus: true,
72
+ showCommitted: false
73
+ });
74
+ updatedFiles = [...updatedFiles.unCommittedFiles, ...results];
75
+ console.log(
76
+ tree(grouped(updatedFiles.map(e => e.filename).sort(), updatedFiles), {
77
+ symbol: true,
78
+ highlight: true,
79
+ padding: 1,
80
+ colors: {
81
+ string: "black",
82
+ number: "red",
83
+ boolean: "red",
84
+ infinity: "red",
85
+ nan: "red",
86
+ null: "cyan",
87
+ undefined: "gray",
88
+ regexp: "green",
89
+ key: "black",
90
+ object: "grey",
91
+ array: "red"
92
+ }
93
+ })
94
+ );
88
95
  };
89
- export default seeChangedFiles;
96
+
97
+ export default seeChangedFiles;