@cyberismo/data-handler 0.0.6 → 0.0.8
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.
- package/README.md +1 -0
- package/dist/card-metadata-updater.d.ts +1 -0
- package/dist/card-metadata-updater.js +7 -2
- package/dist/card-metadata-updater.js.map +1 -1
- package/dist/command-handler.d.ts +6 -1
- package/dist/command-handler.js +16 -15
- package/dist/command-handler.js.map +1 -1
- package/dist/command-manager.d.ts +15 -4
- package/dist/command-manager.js +41 -9
- package/dist/command-manager.js.map +1 -1
- package/dist/commands/calculate.d.ts +4 -10
- package/dist/commands/calculate.js +67 -78
- package/dist/commands/calculate.js.map +1 -1
- package/dist/commands/create.d.ts +1 -1
- package/dist/commands/create.js +15 -10
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/export.js +3 -3
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/import.d.ts +3 -8
- package/dist/commands/import.js +17 -15
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/index.d.ts +1 -2
- package/dist/commands/index.js +1 -2
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/remove.d.ts +1 -1
- package/dist/commands/remove.js +4 -10
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/show.d.ts +6 -3
- package/dist/commands/show.js +8 -5
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/validate.d.ts +0 -8
- package/dist/commands/validate.js +6 -36
- package/dist/commands/validate.js.map +1 -1
- package/dist/containers/project/project-content-watcher.d.ts +28 -0
- package/dist/containers/project/project-content-watcher.js +54 -0
- package/dist/containers/project/project-content-watcher.js.map +1 -0
- package/dist/containers/project/project-paths.js +1 -1
- package/dist/containers/project/project-paths.js.map +1 -1
- package/dist/containers/project/resource-collector.d.ts +2 -1
- package/dist/containers/project/resource-collector.js +33 -23
- package/dist/containers/project/resource-collector.js.map +1 -1
- package/dist/containers/project.d.ts +9 -7
- package/dist/containers/project.js +58 -18
- package/dist/containers/project.js.map +1 -1
- package/dist/containers/template.d.ts +1 -0
- package/dist/containers/template.js +7 -2
- package/dist/containers/template.js.map +1 -1
- package/dist/exceptions/index.d.ts +20 -0
- package/dist/exceptions/index.js +16 -0
- package/dist/exceptions/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/macros.d.ts +5 -1
- package/dist/interfaces/project-interfaces.d.ts +5 -0
- package/dist/interfaces/project-interfaces.js.map +1 -1
- package/dist/interfaces/resource-interfaces.d.ts +14 -22
- package/dist/interfaces/resource-interfaces.js +10 -9
- package/dist/interfaces/resource-interfaces.js.map +1 -1
- package/dist/macros/base-macro.d.ts +2 -0
- package/dist/macros/base-macro.js +66 -19
- package/dist/macros/base-macro.js.map +1 -1
- package/dist/macros/graph/index.d.ts +0 -1
- package/dist/macros/graph/index.js +16 -12
- package/dist/macros/graph/index.js.map +1 -1
- package/dist/macros/index.d.ts +30 -3
- package/dist/macros/index.js +36 -6
- package/dist/macros/index.js.map +1 -1
- package/dist/macros/report/index.d.ts +13 -10
- package/dist/macros/report/index.js +35 -38
- package/dist/macros/report/index.js.map +1 -1
- package/dist/module-manager.d.ts +32 -11
- package/dist/module-manager.js +301 -147
- package/dist/module-manager.js.map +1 -1
- package/dist/project-settings.js +8 -8
- package/dist/project-settings.js.map +1 -1
- package/dist/resources/array-handler.js +6 -1
- package/dist/resources/array-handler.js.map +1 -1
- package/dist/resources/card-type-resource.d.ts +13 -9
- package/dist/resources/card-type-resource.js +47 -23
- package/dist/resources/card-type-resource.js.map +1 -1
- package/dist/resources/create-defaults.d.ts +10 -9
- package/dist/resources/create-defaults.js +15 -12
- package/dist/resources/create-defaults.js.map +1 -1
- package/dist/resources/field-type-resource.d.ts +0 -1
- package/dist/resources/field-type-resource.js +2 -10
- package/dist/resources/field-type-resource.js.map +1 -1
- package/dist/resources/file-resource.d.ts +7 -7
- package/dist/resources/file-resource.js +32 -7
- package/dist/resources/file-resource.js.map +1 -1
- package/dist/resources/folder-resource.d.ts +10 -9
- package/dist/resources/folder-resource.js +10 -9
- package/dist/resources/folder-resource.js.map +1 -1
- package/dist/resources/report-resource.d.ts +5 -6
- package/dist/resources/report-resource.js +16 -7
- package/dist/resources/report-resource.js.map +1 -1
- package/dist/resources/template-resource.d.ts +5 -6
- package/dist/resources/template-resource.js +7 -6
- package/dist/resources/template-resource.js.map +1 -1
- package/dist/resources/workflow-resource.d.ts +15 -8
- package/dist/resources/workflow-resource.js +124 -8
- package/dist/resources/workflow-resource.js.map +1 -1
- package/dist/types/queries.d.ts +11 -10
- package/dist/types/queries.js +10 -9
- package/dist/types/queries.js.map +1 -1
- package/dist/utils/clingo-fact-builder.d.ts +1 -0
- package/dist/utils/clingo-fact-builder.js +8 -3
- package/dist/utils/clingo-fact-builder.js.map +1 -1
- package/dist/utils/clingo-facts.js +15 -11
- package/dist/utils/clingo-facts.js.map +1 -1
- package/dist/utils/constants.d.ts +18 -12
- package/dist/utils/constants.js +18 -11
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/log-utils.d.ts +15 -2
- package/dist/utils/log-utils.js +20 -37
- package/dist/utils/log-utils.js.map +1 -1
- package/dist/utils/report.d.ts +27 -0
- package/dist/utils/report.js +60 -0
- package/dist/utils/report.js.map +1 -0
- package/dist/utils/resource-utils.js +3 -0
- package/dist/utils/resource-utils.js.map +1 -1
- package/dist/utils/sanitize-svg.d.ts +3 -4
- package/dist/utils/sanitize-svg.js +4 -7
- package/dist/utils/sanitize-svg.js.map +1 -1
- package/dist/utils/validate.js +2 -1
- package/dist/utils/validate.js.map +1 -1
- package/package.json +9 -11
- package/src/card-metadata-updater.ts +7 -2
- package/src/command-handler.ts +23 -13
- package/src/command-manager.ts +54 -13
- package/src/commands/calculate.ts +90 -106
- package/src/commands/create.ts +18 -10
- package/src/commands/export.ts +3 -2
- package/src/commands/import.ts +30 -17
- package/src/commands/index.ts +0 -2
- package/src/commands/remove.ts +7 -12
- package/src/commands/show.ts +13 -5
- package/src/commands/validate.ts +14 -44
- package/src/containers/project/project-content-watcher.ts +65 -0
- package/src/containers/project/project-paths.ts +1 -1
- package/src/containers/project/resource-collector.ts +33 -14
- package/src/containers/project.ts +96 -19
- package/src/containers/template.ts +7 -2
- package/src/exceptions/index.ts +36 -0
- package/src/index.ts +2 -0
- package/src/interfaces/macros.ts +5 -1
- package/src/interfaces/project-interfaces.ts +8 -0
- package/src/interfaces/resource-interfaces.ts +15 -22
- package/src/macros/base-macro.ts +89 -25
- package/src/macros/graph/index.ts +22 -12
- package/src/macros/index.ts +61 -8
- package/src/macros/report/index.ts +42 -43
- package/src/module-manager.ts +383 -177
- package/src/project-settings.ts +9 -11
- package/src/resources/array-handler.ts +7 -2
- package/src/resources/card-type-resource.ts +61 -46
- package/src/resources/create-defaults.ts +15 -12
- package/src/resources/field-type-resource.ts +2 -17
- package/src/resources/file-resource.ts +46 -8
- package/src/resources/folder-resource.ts +11 -10
- package/src/resources/report-resource.ts +19 -7
- package/src/resources/template-resource.ts +7 -6
- package/src/resources/workflow-resource.ts +155 -8
- package/src/types/queries.ts +11 -10
- package/src/utils/clingo-fact-builder.ts +8 -3
- package/src/utils/clingo-facts.ts +18 -12
- package/src/utils/constants.ts +20 -12
- package/src/utils/log-utils.ts +24 -45
- package/src/utils/report.ts +86 -0
- package/src/utils/resource-utils.ts +4 -0
- package/src/utils/sanitize-svg.ts +4 -9
- package/src/utils/validate.ts +3 -2
- package/dist/commands/export-site.d.ts +0 -45
- package/dist/commands/export-site.js +0 -301
- package/dist/commands/export-site.js.map +0 -1
- package/src/commands/export-site.ts +0 -356
package/dist/module-manager.js
CHANGED
|
@@ -10,30 +10,28 @@
|
|
|
10
10
|
You should have received a copy of the GNU Affero General Public
|
|
11
11
|
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
12
12
|
*/
|
|
13
|
-
import fs from 'node:fs';
|
|
14
13
|
import { join } from 'node:path';
|
|
15
14
|
import { mkdir, readdir, rm } from 'node:fs/promises';
|
|
16
|
-
import
|
|
17
|
-
import http from 'isomorphic-git/http/node/index.js';
|
|
15
|
+
import { simpleGit } from 'simple-git';
|
|
18
16
|
import { copyDir, deleteDir, pathExists } from './utils/file-utils.js';
|
|
19
17
|
import { Project } from './containers/project.js';
|
|
20
18
|
import { ProjectPaths } from './containers/project/project-paths.js';
|
|
21
19
|
import { readJsonFile } from './utils/json.js';
|
|
22
20
|
import { Validate } from './commands/index.js';
|
|
23
21
|
const FILE_PROTOCOL = 'file:';
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
const HTTPS_PROTOCOL = 'https:';
|
|
23
|
+
// timeout in milliseconds for git client (no stdout / stderr activity)
|
|
24
|
+
const DEFAULT_TIMEOUT = 10000;
|
|
26
25
|
/**
|
|
27
26
|
* Class that handles module updates and imports.
|
|
28
27
|
*/
|
|
29
28
|
export class ModuleManager {
|
|
30
29
|
project;
|
|
31
|
-
importCmd;
|
|
32
30
|
modules = [];
|
|
33
31
|
tempModulesDir = '';
|
|
34
|
-
|
|
32
|
+
defaultBranchCache = new Map();
|
|
33
|
+
constructor(project) {
|
|
35
34
|
this.project = project;
|
|
36
|
-
this.importCmd = importCmd;
|
|
37
35
|
this.tempModulesDir = join(this.project.paths.tempFolder, 'modules');
|
|
38
36
|
}
|
|
39
37
|
// Copies module files into project directories.
|
|
@@ -43,71 +41,92 @@ export class ModuleManager {
|
|
|
43
41
|
// Update the resources.
|
|
44
42
|
await this.project.collectModuleResources();
|
|
45
43
|
}
|
|
46
|
-
//
|
|
47
|
-
async
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
// Creates a map of what dependencies each module depend from.
|
|
45
|
+
async buildDependencyGraph(dependencies) {
|
|
46
|
+
const dependencyNames = dependencies.map((item) => item.name);
|
|
47
|
+
const dependencyGraph = new Map();
|
|
48
|
+
for (const dependency of dependencyNames) {
|
|
49
|
+
dependencyGraph.set(dependency, await this.transientDependencies(dependency));
|
|
50
|
+
}
|
|
51
|
+
return dependencyGraph;
|
|
52
|
+
}
|
|
53
|
+
// Returns 'true' if 'moduleName' can be removed.
|
|
54
|
+
canBeRemoved(dependencies, moduleName) {
|
|
55
|
+
let unused = true;
|
|
56
|
+
dependencies.forEach((transientDependencies, key) => {
|
|
57
|
+
if (key !== moduleName && transientDependencies.has(moduleName)) {
|
|
58
|
+
unused = false;
|
|
59
|
+
}
|
|
54
60
|
});
|
|
55
|
-
|
|
61
|
+
return unused;
|
|
56
62
|
}
|
|
57
63
|
// Handles cloning of a repository.
|
|
58
|
-
async clone(module, verbose = true) {
|
|
64
|
+
async clone(module, verbose = true, credentials) {
|
|
59
65
|
if (!module.name || module.name === '') {
|
|
60
66
|
module.name = this.repositoryName(module.location);
|
|
61
67
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
const destinationPath = join(this.tempModulesDir, module.name);
|
|
69
|
+
let remote = module.location;
|
|
70
|
+
if (module.private) {
|
|
71
|
+
if (credentials &&
|
|
72
|
+
credentials?.username &&
|
|
73
|
+
credentials?.token &&
|
|
74
|
+
module.location.startsWith(HTTPS_PROTOCOL)) {
|
|
75
|
+
if (verbose) {
|
|
76
|
+
console.log(`... Using HTTPS with credentials '${credentials?.username}' for cloning '${module.name}'`);
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
const repoUrl = new URL(module.location);
|
|
80
|
+
const user = credentials?.username;
|
|
81
|
+
const pass = credentials?.token;
|
|
82
|
+
const host = repoUrl.host;
|
|
83
|
+
const path = repoUrl.pathname;
|
|
84
|
+
remote = `https://${user}:${pass}@${host}${path}`;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
throw new Error(`Invalid repository URL: ${module.location}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else if (module.location.startsWith('git@')) {
|
|
91
|
+
if (verbose) {
|
|
92
|
+
console.log(`... Using SSH for cloning '${module.name}'`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
65
95
|
}
|
|
66
|
-
|
|
67
|
-
|
|
96
|
+
else {
|
|
97
|
+
if (verbose) {
|
|
98
|
+
console.log(`... Using HTTPS without credentials for cloning '${module.name}'`);
|
|
99
|
+
}
|
|
68
100
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
module
|
|
101
|
+
try {
|
|
102
|
+
await mkdir(this.tempModulesDir, { recursive: true });
|
|
103
|
+
const cloneOptions = await this.setCloneOptions(module);
|
|
104
|
+
await rm(destinationPath, { recursive: true, force: true });
|
|
105
|
+
const git = simpleGit({
|
|
106
|
+
timeout: {
|
|
107
|
+
block: DEFAULT_TIMEOUT,
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
await git
|
|
111
|
+
// turn off git prompts
|
|
112
|
+
.env({ GIT_TERMINAL_PROMPT: 0, GCM_INTERACTIVE: 'never' })
|
|
113
|
+
.clone(remote, destinationPath, cloneOptions);
|
|
72
114
|
if (verbose) {
|
|
73
|
-
console.log(`...
|
|
115
|
+
console.log(`... Cloned '${module.name}' to a temporary folder`);
|
|
74
116
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
fs,
|
|
80
|
-
http,
|
|
81
|
-
dir: join(this.tempModulesDir, module.name),
|
|
82
|
-
url: repoUrl.toString(),
|
|
83
|
-
depth: 1,
|
|
84
|
-
onAuth: () => {
|
|
85
|
-
// Turn credentials 'off' when they are not available
|
|
86
|
-
if (!process.env.CYBERISMO_GIT_USER ||
|
|
87
|
-
!process.env.CYBERISMO_GIT_TOKEN) {
|
|
88
|
-
return undefined;
|
|
89
|
-
}
|
|
90
|
-
// Turn credentials 'off' for public repos
|
|
91
|
-
if (!module.private) {
|
|
92
|
-
return undefined;
|
|
93
|
-
}
|
|
94
|
-
return {
|
|
95
|
-
username: process.env.CYBERISMO_GIT_USER,
|
|
96
|
-
password: process.env.CYBERISMO_GIT_TOKEN,
|
|
97
|
-
};
|
|
98
|
-
},
|
|
99
|
-
});
|
|
100
|
-
if (verbose) {
|
|
101
|
-
console.log(`... Cloned '${module.name}' to a temporary folder`);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
if (error instanceof Error)
|
|
120
|
+
throw new Error(`Failed to clone module '${module.name}': ${error.message}`);
|
|
102
121
|
}
|
|
103
122
|
return module.name;
|
|
104
123
|
}
|
|
105
124
|
// Collects all module prefixes from module hierarchy into 'this.modules'.
|
|
106
125
|
// Note that collected result can contain duplicates.
|
|
107
|
-
async collectModulePrefixes(modules) {
|
|
126
|
+
async collectModulePrefixes(modules, credentials) {
|
|
108
127
|
if (modules) {
|
|
109
128
|
for (const module of modules) {
|
|
110
|
-
await this.doCollectModulePrefix(module);
|
|
129
|
+
await this.doCollectModulePrefix(module, credentials);
|
|
111
130
|
}
|
|
112
131
|
}
|
|
113
132
|
}
|
|
@@ -121,9 +140,48 @@ export class ModuleManager {
|
|
|
121
140
|
throw new Error(`Module not found from '${path}'`);
|
|
122
141
|
}
|
|
123
142
|
}
|
|
143
|
+
// Gets the default branch for a repository from remote or cache
|
|
144
|
+
async defaultBranch(module) {
|
|
145
|
+
if (this.defaultBranchCache.has(module.location)) {
|
|
146
|
+
return this.defaultBranchCache.get(module.location);
|
|
147
|
+
}
|
|
148
|
+
// Set the default branch if branch was not specified
|
|
149
|
+
if (!module.branch) {
|
|
150
|
+
const destinationPath = join(this.tempModulesDir, module.name);
|
|
151
|
+
// Only return path after cloning
|
|
152
|
+
if (pathExists(destinationPath)) {
|
|
153
|
+
const git = simpleGit({
|
|
154
|
+
timeout: {
|
|
155
|
+
block: DEFAULT_TIMEOUT,
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
const options = ['--abbrev-ref', 'HEAD'];
|
|
159
|
+
const defaultBranch = await git.cwd(destinationPath).revparse(options);
|
|
160
|
+
this.defaultBranchCache.set(module.location, defaultBranch);
|
|
161
|
+
return defaultBranch;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// The actual default branch will be updated later (after cloning).
|
|
165
|
+
return '';
|
|
166
|
+
}
|
|
167
|
+
// Fetches direct dependencies of a module.
|
|
168
|
+
async dependencies(moduleName) {
|
|
169
|
+
const allModules = await this.project.modules();
|
|
170
|
+
if (!allModules)
|
|
171
|
+
return new Set();
|
|
172
|
+
const module = allModules.find((m) => m.name === moduleName);
|
|
173
|
+
if (!module) {
|
|
174
|
+
throw new Error(`Module '${moduleName}' not found`);
|
|
175
|
+
}
|
|
176
|
+
const modulePath = join(module.path, module.name, 'cardsConfig.json');
|
|
177
|
+
const moduleConfiguration = (await readJsonFile(modulePath));
|
|
178
|
+
return moduleConfiguration.modules
|
|
179
|
+
? new Set(moduleConfiguration.modules.map((m) => m.name))
|
|
180
|
+
: new Set();
|
|
181
|
+
}
|
|
124
182
|
// Collects one module's dependency prefixes to 'this.modules'.
|
|
125
183
|
// Note that there can be duplicate entries.
|
|
126
|
-
async doCollectModulePrefix(module) {
|
|
184
|
+
async doCollectModulePrefix(module, credentials) {
|
|
127
185
|
let moduleRoot = '';
|
|
128
186
|
if (this.isFileModule(module)) {
|
|
129
187
|
const urlStart = FILE_PROTOCOL.length;
|
|
@@ -131,41 +189,36 @@ export class ModuleManager {
|
|
|
131
189
|
moduleRoot = module.location.substring(urlStart, module.location.length);
|
|
132
190
|
}
|
|
133
191
|
else {
|
|
134
|
-
await this.clone(module, false);
|
|
192
|
+
await this.clone(module, false, credentials);
|
|
135
193
|
moduleRoot = join(this.tempModulesDir, module.name);
|
|
136
194
|
}
|
|
137
195
|
this.modules.push(module);
|
|
138
196
|
const configuration = await this.configuration(moduleRoot);
|
|
139
|
-
await this.collectModulePrefixes(configuration.modules);
|
|
197
|
+
await this.collectModulePrefixes(configuration.modules, credentials);
|
|
140
198
|
}
|
|
141
199
|
// Updates one module that is read from local file system.
|
|
142
200
|
async handleFileModule(module) {
|
|
143
|
-
this.
|
|
201
|
+
this.stripProtocolFromLocation(module);
|
|
144
202
|
await this.remove(module);
|
|
145
|
-
await this.importFromFolder(module);
|
|
203
|
+
await this.importFromFolder(module.location, module.name);
|
|
146
204
|
}
|
|
147
205
|
// Updates one module that is received from Git.
|
|
148
206
|
async handleGitModule(module) {
|
|
149
207
|
await this.clone(module);
|
|
150
|
-
|
|
208
|
+
const tempLocation = join(this.tempModulesDir, module.name);
|
|
151
209
|
await this.remove(module);
|
|
152
|
-
await this.
|
|
210
|
+
await this.importFromFolder(tempLocation, module.name);
|
|
153
211
|
}
|
|
154
212
|
// Updates one module.
|
|
155
213
|
async handleModule(module) {
|
|
156
|
-
return this.
|
|
157
|
-
? this.
|
|
158
|
-
: this.
|
|
214
|
+
return this.isGitModule(module)
|
|
215
|
+
? this.handleGitModule(module)
|
|
216
|
+
: this.handleFileModule(module);
|
|
159
217
|
}
|
|
160
|
-
//
|
|
161
|
-
async importFromFolder(
|
|
162
|
-
await this.
|
|
163
|
-
console.log(`... Imported module '${
|
|
164
|
-
}
|
|
165
|
-
// Handles importing a module from '.temp' folder
|
|
166
|
-
async importFromTemp(module) {
|
|
167
|
-
await this.importCmd.updateExistingModule(join(this.tempModulesDir, module.name));
|
|
168
|
-
console.log(`... Imported module '${module.name}' to '${this.project.configuration.name}'`);
|
|
218
|
+
// Imports from a given folder. Is used both for .temp/<module name> and file locations.
|
|
219
|
+
async importFromFolder(path, name) {
|
|
220
|
+
await this.importFileModule(path);
|
|
221
|
+
console.log(`... Imported module '${name}' to '${this.project.configuration.name}'`);
|
|
169
222
|
}
|
|
170
223
|
// Returns true if module is imported from file-system.
|
|
171
224
|
isFileModule(module) {
|
|
@@ -173,19 +226,54 @@ export class ModuleManager {
|
|
|
173
226
|
return false;
|
|
174
227
|
return module.location.startsWith('file:');
|
|
175
228
|
}
|
|
229
|
+
// Returns true if module is imported from git.
|
|
230
|
+
isGitModule(module) {
|
|
231
|
+
if (!module.location)
|
|
232
|
+
return false;
|
|
233
|
+
return (module.location.startsWith('https:') || module.location.startsWith('git@'));
|
|
234
|
+
}
|
|
235
|
+
// Collect modules that could be removed from .cards/modules when
|
|
236
|
+
// 'moduleName' is removed.
|
|
237
|
+
async orphanedModules(dependencies, moduleName) {
|
|
238
|
+
const projectModules = this.project.configuration.modules;
|
|
239
|
+
const removableTransientModules = [];
|
|
240
|
+
if (dependencies.has(moduleName)) {
|
|
241
|
+
const deps = dependencies.get(moduleName);
|
|
242
|
+
for (const dependency of deps) {
|
|
243
|
+
const projectDependency = projectModules.some((item) => item.name === dependency);
|
|
244
|
+
if (projectDependency)
|
|
245
|
+
continue;
|
|
246
|
+
let orphanModule = true;
|
|
247
|
+
dependencies.forEach((transientDependencies, key) => {
|
|
248
|
+
if (key === moduleName)
|
|
249
|
+
return;
|
|
250
|
+
if (transientDependencies.has(dependency)) {
|
|
251
|
+
orphanModule = false;
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
if (orphanModule) {
|
|
255
|
+
removableTransientModules.push(dependency);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return removableTransientModules;
|
|
260
|
+
}
|
|
176
261
|
// Prepares '.temp/modules' for cloning
|
|
177
262
|
async prepare() {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
await
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
263
|
+
try {
|
|
264
|
+
await mkdir(this.tempModulesDir, { recursive: true });
|
|
265
|
+
const files = await readdir(this.tempModulesDir);
|
|
266
|
+
for (const file of files) {
|
|
267
|
+
const filePath = join(this.tempModulesDir, file);
|
|
268
|
+
await rm(filePath, {
|
|
269
|
+
force: true,
|
|
270
|
+
recursive: true,
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
throw new Error(`Failed to prepare temporary directory: ${error}`);
|
|
184
276
|
}
|
|
185
|
-
}
|
|
186
|
-
// Returns whether to use git or file system for handling the module.
|
|
187
|
-
protocol(module) {
|
|
188
|
-
return this.isFileModule(module) ? 'file' : 'git';
|
|
189
277
|
}
|
|
190
278
|
// Handles removing an imported module.
|
|
191
279
|
async remove(module) {
|
|
@@ -198,47 +286,32 @@ export class ModuleManager {
|
|
|
198
286
|
console.error(`... New imported module '${module.name}', skipping remove`);
|
|
199
287
|
}
|
|
200
288
|
}
|
|
201
|
-
// Remove module files.
|
|
202
|
-
async removeModuleFiles(moduleName) {
|
|
203
|
-
const module = await this.project.module(moduleName);
|
|
204
|
-
if (!module) {
|
|
205
|
-
throw new Error(`Module '${moduleName}' not found`);
|
|
206
|
-
}
|
|
207
|
-
await deleteDir(module.path);
|
|
208
|
-
}
|
|
209
|
-
// Updates module's 'location' not to have 'protocol:' in the beginning (only for "file:" needed).
|
|
210
|
-
removeProtocolFromLocation(module) {
|
|
211
|
-
const protocol = this.protocol(module);
|
|
212
|
-
module.location = module.location.substring(protocol.length + 1, module.location.length);
|
|
213
|
-
}
|
|
214
289
|
// Checks for duplicate ModuleSetting entries and throws an error if modules
|
|
215
290
|
// with the same name have different branches or locations.
|
|
216
|
-
// Treats undefined branch, empty string branch, and
|
|
291
|
+
// Treats undefined branch, empty string branch, and default branch as equivalent.
|
|
217
292
|
// Returns an array with duplicate entries removed
|
|
218
|
-
removeDuplicates(modules) {
|
|
293
|
+
async removeDuplicates(modules) {
|
|
219
294
|
const moduleMap = new Map();
|
|
220
|
-
//
|
|
221
|
-
const normalizeBranch = (
|
|
222
|
-
|
|
223
|
-
return MAIN_BRANCH;
|
|
224
|
-
}
|
|
225
|
-
return branch;
|
|
295
|
+
// Normalize branch names by checking against the default branch for each module
|
|
296
|
+
const normalizeBranch = async (module) => {
|
|
297
|
+
return module.branch ? module.branch : await this.defaultBranch(module);
|
|
226
298
|
};
|
|
227
299
|
for (const module of modules) {
|
|
228
300
|
const existingModule = moduleMap.get(module.name);
|
|
229
301
|
if (existingModule) {
|
|
230
|
-
if (existingModule.private
|
|
302
|
+
if ((existingModule.private && !module.private) ||
|
|
303
|
+
(!existingModule.private && module.private)) {
|
|
231
304
|
throw new Error(`Module conflict: '${module.name}' has different access:\n` +
|
|
232
|
-
` - ${existingModule.private
|
|
233
|
-
` - ${module.private
|
|
305
|
+
` - ${Boolean(existingModule.private)}\n` +
|
|
306
|
+
` - ${Boolean(module.private)}`);
|
|
234
307
|
}
|
|
235
308
|
if (existingModule.location !== module.location) {
|
|
236
309
|
throw new Error(`Module conflict: '${module.name}' has different locations:\n` +
|
|
237
310
|
` - ${existingModule.location}\n` +
|
|
238
311
|
` - ${module.location}`);
|
|
239
312
|
}
|
|
240
|
-
const existingBranch = normalizeBranch(existingModule
|
|
241
|
-
const newBranch = normalizeBranch(module
|
|
313
|
+
const existingBranch = await normalizeBranch(existingModule);
|
|
314
|
+
const newBranch = await normalizeBranch(module);
|
|
242
315
|
if (existingBranch !== newBranch) {
|
|
243
316
|
throw new Error(`Module conflict: '${module.name}' has different branches:\n` +
|
|
244
317
|
` - ${existingModule.branch || 'undefined'}\n` +
|
|
@@ -251,12 +324,86 @@ export class ModuleManager {
|
|
|
251
324
|
}
|
|
252
325
|
return Array.from(moduleMap.values());
|
|
253
326
|
}
|
|
327
|
+
// Remove module files.
|
|
328
|
+
async removeModuleFiles(moduleName) {
|
|
329
|
+
const module = await this.project.module(moduleName);
|
|
330
|
+
if (!module) {
|
|
331
|
+
throw new Error(`Module '${moduleName}' not found`);
|
|
332
|
+
}
|
|
333
|
+
await deleteDir(module.path);
|
|
334
|
+
}
|
|
254
335
|
// Gets repository name from gitUrl
|
|
255
336
|
repositoryName(gitUrl) {
|
|
256
337
|
const last = gitUrl.lastIndexOf('/');
|
|
257
338
|
const repoName = gitUrl.substring(last + 1, gitUrl.length - 4); //remove trailing ".git"
|
|
258
339
|
return repoName;
|
|
259
340
|
}
|
|
341
|
+
// Sets cloning options with support for default branch.
|
|
342
|
+
async setCloneOptions(module) {
|
|
343
|
+
const cloneOptions = ['--depth', '1'];
|
|
344
|
+
const defaultBranch = await this.defaultBranch(module);
|
|
345
|
+
// Only specify branch if it's different from the default branch
|
|
346
|
+
if (module.branch &&
|
|
347
|
+
module.branch !== '' &&
|
|
348
|
+
module.branch !== defaultBranch) {
|
|
349
|
+
cloneOptions.push('--branch', module.branch);
|
|
350
|
+
}
|
|
351
|
+
return cloneOptions;
|
|
352
|
+
}
|
|
353
|
+
// Updates module's 'location' not to have 'protocol:' in the beginning (only for "file:" needed).
|
|
354
|
+
stripProtocolFromLocation(module) {
|
|
355
|
+
const protocol = this.isFileModule(module) ? 'file' : 'git';
|
|
356
|
+
module.location = module.location.substring(protocol.length + 1, module.location.length);
|
|
357
|
+
}
|
|
358
|
+
// Fetches all dependencies for a module.
|
|
359
|
+
async transientDependencies(moduleName) {
|
|
360
|
+
const dependencies = await this.dependencies(moduleName);
|
|
361
|
+
let transientDependencies = new Set(dependencies);
|
|
362
|
+
for (const dependency of dependencies) {
|
|
363
|
+
const depTransients = await this.transientDependencies(dependency);
|
|
364
|
+
transientDependencies = new Set([
|
|
365
|
+
...transientDependencies,
|
|
366
|
+
...depTransients,
|
|
367
|
+
]);
|
|
368
|
+
}
|
|
369
|
+
return transientDependencies;
|
|
370
|
+
}
|
|
371
|
+
// Updates modules in the project.
|
|
372
|
+
async update(module, credentials) {
|
|
373
|
+
// Prints dots every half second so that user knows that something is ongoing
|
|
374
|
+
function start() {
|
|
375
|
+
console.log('... Collecting unique modules. This takes a moment.');
|
|
376
|
+
return setInterval(() => process.stdout.write(`.`), 500);
|
|
377
|
+
}
|
|
378
|
+
// Stops the above, and shows results
|
|
379
|
+
function finished(interval, modules) {
|
|
380
|
+
clearInterval(interval);
|
|
381
|
+
if (modules.length > 0) {
|
|
382
|
+
console.log(`\n... Found modules: ${modules.join(', ')}`);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
await this.prepare();
|
|
386
|
+
let modules = module ? [module] : this.project.configuration.modules;
|
|
387
|
+
if (modules.length === 0) {
|
|
388
|
+
throw new Error(`No modules in the project!`);
|
|
389
|
+
}
|
|
390
|
+
modules = modules.filter((module) => this.isGitModule(module));
|
|
391
|
+
const dotInterval = start();
|
|
392
|
+
let uniqueModules = [];
|
|
393
|
+
try {
|
|
394
|
+
await this.collectModulePrefixes(modules, credentials);
|
|
395
|
+
uniqueModules = await this.removeDuplicates(this.modules);
|
|
396
|
+
}
|
|
397
|
+
finally {
|
|
398
|
+
finished(dotInterval, uniqueModules.map((item) => item.name));
|
|
399
|
+
// Update modules parallel.
|
|
400
|
+
const promises = [];
|
|
401
|
+
uniqueModules.forEach((module) => promises.push(this.handleModule(module)));
|
|
402
|
+
await Promise.all(promises);
|
|
403
|
+
await deleteDir(this.tempModulesDir);
|
|
404
|
+
await this.project.collectModuleResources();
|
|
405
|
+
}
|
|
406
|
+
}
|
|
260
407
|
// Checks that module prefix is not in use in the project
|
|
261
408
|
async validatePrefix(modulePrefix) {
|
|
262
409
|
// Do not allow modules with same prefixes.
|
|
@@ -293,16 +440,16 @@ export class ModuleManager {
|
|
|
293
440
|
* Imports module from gitUrl.
|
|
294
441
|
* @param source Git URL to import from.
|
|
295
442
|
* @param options Modules setting options.
|
|
443
|
+
* @param credentials Credentials for private repositories.
|
|
296
444
|
* @returns module prefix as defined in its CardsConfig.json
|
|
297
445
|
*/
|
|
298
|
-
async importGitModule(source, options) {
|
|
299
|
-
const
|
|
300
|
-
name:
|
|
446
|
+
async importGitModule(source, options, credentials) {
|
|
447
|
+
const clonedName = await this.clone({
|
|
448
|
+
name: this.repositoryName(source),
|
|
301
449
|
location: source,
|
|
302
450
|
...options,
|
|
303
|
-
});
|
|
304
|
-
|
|
305
|
-
const clonePath = join(this.project.paths.tempFolder, 'modules', repoName);
|
|
451
|
+
}, undefined, credentials);
|
|
452
|
+
const clonePath = join(this.tempModulesDir, clonedName);
|
|
306
453
|
const modulePrefix = (await this.configuration(clonePath)).cardKeyPrefix;
|
|
307
454
|
await this.validatePrefix(modulePrefix);
|
|
308
455
|
const sourcePath = new ProjectPaths(clonePath).resourcesFolder;
|
|
@@ -311,40 +458,47 @@ export class ModuleManager {
|
|
|
311
458
|
return modulePrefix;
|
|
312
459
|
}
|
|
313
460
|
/**
|
|
314
|
-
*
|
|
461
|
+
* Removed module from project.
|
|
462
|
+
* If module is not used by any other modules, then will remove the module from disk as well.
|
|
463
|
+
* Otherwise, only updates project configuration.
|
|
464
|
+
* @param moduleName Name of the module to remove
|
|
315
465
|
*/
|
|
316
|
-
async
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
// Stops the above, and shows results
|
|
323
|
-
function finished(interval, modules) {
|
|
324
|
-
clearInterval(interval);
|
|
325
|
-
console.log(`\n... Found modules: ${modules.join(', ')}`);
|
|
326
|
-
}
|
|
327
|
-
await this.prepare();
|
|
328
|
-
const modules = this.project.configuration.modules;
|
|
329
|
-
if (modules.length === 0) {
|
|
330
|
-
throw new Error(`No modules in the project!`);
|
|
331
|
-
}
|
|
332
|
-
const dotInterval = start();
|
|
333
|
-
// Collect prefixes from project's dependency modules.
|
|
334
|
-
await this.collectModulePrefixes(modules);
|
|
335
|
-
let uniqueModules = [];
|
|
336
|
-
try {
|
|
337
|
-
uniqueModules = this.removeDuplicates(this.modules);
|
|
466
|
+
async removeModule(moduleName) {
|
|
467
|
+
const projectModules = this.project.configuration.modules;
|
|
468
|
+
const dependencies = await this.buildDependencyGraph(projectModules);
|
|
469
|
+
const module = await this.project.module(moduleName);
|
|
470
|
+
if (!module) {
|
|
471
|
+
throw new Error(`Module '${moduleName}' not found`);
|
|
338
472
|
}
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
await
|
|
345
|
-
|
|
473
|
+
// Project module can always be removed from project configuration,
|
|
474
|
+
// but modules under .cards/modules must be checked not to be used by
|
|
475
|
+
// other modules.
|
|
476
|
+
if (this.canBeRemoved(dependencies, moduleName)) {
|
|
477
|
+
const orphans = await this.orphanedModules(dependencies, moduleName);
|
|
478
|
+
await deleteDir(module.path);
|
|
479
|
+
for (const moduleToDelete of orphans) {
|
|
480
|
+
const modulePath = join(this.project.paths.modulesFolder, moduleToDelete);
|
|
481
|
+
await deleteDir(modulePath);
|
|
482
|
+
}
|
|
346
483
|
await this.project.collectModuleResources();
|
|
347
484
|
}
|
|
485
|
+
await this.project.configuration.removeModule(moduleName);
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Imports module from a local file path or a git URL.
|
|
489
|
+
* @param module Module to update. If not provided, updates all modules.
|
|
490
|
+
* @param credentials Optional credentials for private repositories.
|
|
491
|
+
* @returns Module prefix as defined in its CardsConfig.json
|
|
492
|
+
*/
|
|
493
|
+
async updateModule(module, credentials) {
|
|
494
|
+
return this.update(module, credentials);
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* Updates all imported modules.
|
|
498
|
+
* @param credentials Optional credentials for private modules.
|
|
499
|
+
*/
|
|
500
|
+
async updateModules(credentials) {
|
|
501
|
+
return this.update(undefined, credentials);
|
|
348
502
|
}
|
|
349
503
|
}
|
|
350
504
|
//# sourceMappingURL=module-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-manager.js","sourceRoot":"","sources":["../src/module-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module-manager.js","sourceRoot":"","sources":["../src/module-manager.ts"],"names":[],"mappings":"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"}
|