depflow 1.1.2 → 2.0.0-dev.2
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/build/cli/DepFLowCLI.d.ts +15 -0
- package/build/cli/DepFLowCLI.js +193 -0
- package/build/cli/DepFLowCLI.js.map +1 -0
- package/build/cli/bin.d.ts +2 -0
- package/build/cli/bin.js +37 -0
- package/build/cli/bin.js.map +1 -0
- package/build/config/Config.d.ts +28 -0
- package/build/config/Config.js +46 -0
- package/build/config/Config.js.map +1 -0
- package/build/config/ImportMap.d.ts +38 -0
- package/build/config/ImportMap.js +83 -0
- package/build/config/ImportMap.js.map +1 -0
- package/build/config/Tsconfig.d.ts +57 -0
- package/build/config/Tsconfig.js +99 -0
- package/build/config/Tsconfig.js.map +1 -0
- package/build/config/schemas.d.ts +592 -0
- package/build/config/schemas.js +51 -0
- package/build/config/schemas.js.map +1 -0
- package/build/support/Dependency.d.ts +127 -0
- package/build/support/Dependency.js +307 -0
- package/build/support/Dependency.js.map +1 -0
- package/build/support/File.d.ts +80 -0
- package/build/support/File.js +123 -0
- package/build/support/File.js.map +1 -0
- package/build/support/Git.js.map +1 -0
- package/build/support/PathFixer.d.ts +36 -0
- package/build/support/PathFixer.js +161 -0
- package/build/support/PathFixer.js.map +1 -0
- package/build/support/PathResolver/AliasCompiler.d.ts +25 -0
- package/build/support/PathResolver/AliasCompiler.js +39 -0
- package/build/support/PathResolver/AliasCompiler.js.map +1 -0
- package/build/support/PathResolver/PathResolver.d.ts +45 -0
- package/build/support/PathResolver/PathResolver.js +99 -0
- package/build/support/PathResolver/PathResolver.js.map +1 -0
- package/build/support/PathResolver/PathRewriter.d.ts +18 -0
- package/build/support/PathResolver/PathRewriter.js +47 -0
- package/build/support/PathResolver/PathRewriter.js.map +1 -0
- package/build/support/PathResolver/Utils.d.ts +36 -0
- package/build/support/PathResolver/Utils.js +45 -0
- package/build/support/PathResolver/Utils.js.map +1 -0
- package/build/support/PathResolver.d.ts +100 -0
- package/build/support/PathResolver.js +280 -0
- package/build/support/PathResolver.js.map +1 -0
- package/build/support/Resolver/AliasCompiler.d.ts +18 -0
- package/build/support/Resolver/AliasCompiler.js +32 -0
- package/build/support/Resolver/AliasCompiler.js.map +1 -0
- package/build/support/Resolver/PathResolver.d.ts +25 -0
- package/build/support/Resolver/PathResolver.js +79 -0
- package/build/support/Resolver/PathResolver.js.map +1 -0
- package/build/support/Resolver/PathRewriter.d.ts +10 -0
- package/build/support/Resolver/PathRewriter.js +39 -0
- package/build/support/Resolver/PathRewriter.js.map +1 -0
- package/build/support/Resolver/Utils.d.ts +36 -0
- package/build/support/Resolver/Utils.js +45 -0
- package/build/support/Resolver/Utils.js.map +1 -0
- package/build/support/Utils.d.ts +30 -0
- package/build/support/Utils.js +95 -0
- package/build/support/Utils.js.map +1 -0
- package/build/support/Validator.d.ts +22 -0
- package/build/support/Validator.js +28 -0
- package/build/support/Validator.js.map +1 -0
- package/package.json +6 -4
- package/build/Dependency.d.ts +0 -99
- package/build/Dependency.js +0 -258
- package/build/Dependency.js.map +0 -1
- package/build/File.d.ts +0 -45
- package/build/File.js +0 -113
- package/build/File.js.map +0 -1
- package/build/Git.js.map +0 -1
- package/build/PathFixer.d.ts +0 -35
- package/build/PathFixer.js +0 -159
- package/build/PathFixer.js.map +0 -1
- package/build/Validator.d.ts +0 -54
- package/build/Validator.js +0 -150
- package/build/Validator.js.map +0 -1
- package/build/bin.d.ts +0 -7
- package/build/bin.js +0 -241
- package/build/bin.js.map +0 -1
- /package/build/{Git.d.ts → support/Git.d.ts} +0 -0
- /package/build/{Git.js → support/Git.js} +0 -0
package/build/Dependency.js
DELETED
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
-
* @description Dependency utility.
|
|
4
|
-
* @license Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { promises as FS } from "fs";
|
|
7
|
-
import { spawn } from "child_process";
|
|
8
|
-
import Git from "./Git.js";
|
|
9
|
-
import File from "./File.js";
|
|
10
|
-
export class Dependency {
|
|
11
|
-
static include = ['*'];
|
|
12
|
-
name;
|
|
13
|
-
repo;
|
|
14
|
-
branch;
|
|
15
|
-
builder;
|
|
16
|
-
/**
|
|
17
|
-
* Create a new dependency
|
|
18
|
-
* @param dependency Dependency to create
|
|
19
|
-
* @param logger Logger to use
|
|
20
|
-
* @returns New dependency
|
|
21
|
-
*/
|
|
22
|
-
constructor(dependency) {
|
|
23
|
-
this.name = dependency.name;
|
|
24
|
-
this.repo = dependency.repo;
|
|
25
|
-
this.branch = dependency.branch;
|
|
26
|
-
this.builder = dependency.builder;
|
|
27
|
-
}
|
|
28
|
-
/** Get the folder of the dependency */
|
|
29
|
-
get folder() {
|
|
30
|
-
return this.name.startsWith('.') ? this.name : `.dep/${this.name}`;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Clone a dependency
|
|
34
|
-
* @param options Options to use
|
|
35
|
-
* @returns Promise<void>
|
|
36
|
-
*/
|
|
37
|
-
async clone(options = {}) {
|
|
38
|
-
if (await File.exists(this.folder)) {
|
|
39
|
-
if (!options.force)
|
|
40
|
-
return await this.pull();
|
|
41
|
-
else
|
|
42
|
-
await this.uninstall();
|
|
43
|
-
}
|
|
44
|
-
return await Git.clone(this.repo, this.folder, this.branch);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Pull a dependency
|
|
48
|
-
* @returns Promise<void>
|
|
49
|
-
*/
|
|
50
|
-
async pull() {
|
|
51
|
-
return await Git.pull(this.folder, this.branch);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Install a dependency
|
|
55
|
-
* @param options Options to use
|
|
56
|
-
* @returns Promise<void>
|
|
57
|
-
*/
|
|
58
|
-
async install() {
|
|
59
|
-
const output = [];
|
|
60
|
-
try {
|
|
61
|
-
const cloneResult = await this.clone();
|
|
62
|
-
output.push(cloneResult);
|
|
63
|
-
const buildResult = await this.build();
|
|
64
|
-
output.push(...buildResult);
|
|
65
|
-
return output;
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
throw error;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Uninstall a dependency
|
|
73
|
-
* @returns Promise<void>
|
|
74
|
-
*/
|
|
75
|
-
async uninstall() {
|
|
76
|
-
try {
|
|
77
|
-
const output = [];
|
|
78
|
-
const moves = this.builder
|
|
79
|
-
? this.builder
|
|
80
|
-
.map(step => step.move ? Dependency.getAllOutFolders(step.move) : [])
|
|
81
|
-
.reduce((acc, val) => acc.concat(val), [])
|
|
82
|
-
: [];
|
|
83
|
-
const folders = [this.folder, ...moves];
|
|
84
|
-
for (const folder of folders) {
|
|
85
|
-
if (!await File.exists(folder))
|
|
86
|
-
continue;
|
|
87
|
-
output.push(`Removing &C4${folder}`);
|
|
88
|
-
await FS.rm(folder, { recursive: true });
|
|
89
|
-
}
|
|
90
|
-
return output;
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
throw error;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
async build() {
|
|
97
|
-
const output = [];
|
|
98
|
-
if (!this.builder || this.builder.length === 0)
|
|
99
|
-
return output;
|
|
100
|
-
const shell = spawn('/bin/bash', [], {
|
|
101
|
-
stdio: ['pipe', 'pipe', 'pipe']
|
|
102
|
-
});
|
|
103
|
-
try {
|
|
104
|
-
for (const step of this.builder) {
|
|
105
|
-
if (step.run) {
|
|
106
|
-
const run = typeof step.run === 'string' ? [step.run] : step.run;
|
|
107
|
-
const commands = [`cd ${this.folder}`, ...run];
|
|
108
|
-
const results = await this.executeCommands(commands, shell);
|
|
109
|
-
output.push(...results);
|
|
110
|
-
}
|
|
111
|
-
if (step.move) {
|
|
112
|
-
const moveResults = await this.move(step.move);
|
|
113
|
-
output.push(...moveResults);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
catch (error) {
|
|
118
|
-
throw error;
|
|
119
|
-
}
|
|
120
|
-
finally {
|
|
121
|
-
shell.kill();
|
|
122
|
-
}
|
|
123
|
-
return output;
|
|
124
|
-
}
|
|
125
|
-
async move(move) {
|
|
126
|
-
const output = [];
|
|
127
|
-
if (typeof move === 'string' || Array.isArray(move)) {
|
|
128
|
-
const moves = Array.isArray(move) ? move : [move];
|
|
129
|
-
for (const destination of moves) {
|
|
130
|
-
const moveResult = await this.moveFiles(destination);
|
|
131
|
-
output.push(...moveResult);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
for (const key in move) {
|
|
136
|
-
const value = move[key];
|
|
137
|
-
const destinations = typeof value === 'string' ? [value] : value;
|
|
138
|
-
for (const destination of destinations) {
|
|
139
|
-
const moveResult = await this.moveFiles(destination, key);
|
|
140
|
-
output.push(...moveResult);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return output;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Execute multiple commands in a shell
|
|
148
|
-
* @param commands Commands to execute
|
|
149
|
-
* @param customShell Custom shell to use (optional)
|
|
150
|
-
* @returns Output of the commands
|
|
151
|
-
*/
|
|
152
|
-
async executeCommands(commands, shell) {
|
|
153
|
-
const output = [];
|
|
154
|
-
shell.stderr.on('data', data => output.push(data.toString()));
|
|
155
|
-
for (const command of commands) {
|
|
156
|
-
const result = await this.executeCommand(shell, command);
|
|
157
|
-
output.push(...result);
|
|
158
|
-
}
|
|
159
|
-
shell.kill();
|
|
160
|
-
return output;
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Execute a command in a shell
|
|
164
|
-
* @param shell Shell to execute the command in
|
|
165
|
-
* @param command Command to execute
|
|
166
|
-
* @returns Output of the command
|
|
167
|
-
*/
|
|
168
|
-
async executeCommand(shell, command) {
|
|
169
|
-
const output = [];
|
|
170
|
-
output.push(`&RRunning command &C4${command}`);
|
|
171
|
-
await new Promise((resolve, reject) => {
|
|
172
|
-
shell.stdin.write(command + '\n');
|
|
173
|
-
const marker = `__END_${Date.now()}__`;
|
|
174
|
-
shell.stdin.write(`echo ${marker}\n`);
|
|
175
|
-
let out = '';
|
|
176
|
-
const listener = (data) => {
|
|
177
|
-
if (data.toString().includes(marker)) {
|
|
178
|
-
shell.stdout.off('data', listener);
|
|
179
|
-
output.push(out.trim());
|
|
180
|
-
resolve();
|
|
181
|
-
}
|
|
182
|
-
else
|
|
183
|
-
out += data.toString().trim();
|
|
184
|
-
};
|
|
185
|
-
shell.stdout.on('data', listener);
|
|
186
|
-
shell.stderr.once('data', data => {
|
|
187
|
-
shell.stdout.off('data', listener);
|
|
188
|
-
output.push(data.toString().trim());
|
|
189
|
-
reject(new Error(`Command "${command}" failed with error: ${data.toString().trim()}`));
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
return output;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Move files from a dependency
|
|
196
|
-
* @param destination Destination folder
|
|
197
|
-
* @param source Source folder
|
|
198
|
-
* @returns The output of the operation
|
|
199
|
-
*/
|
|
200
|
-
async moveFiles(destination, source) {
|
|
201
|
-
const output = [];
|
|
202
|
-
destination = Array.isArray(destination) ? destination : [destination];
|
|
203
|
-
source = Dependency.getSourcePath(this.folder, source);
|
|
204
|
-
for (const folder of destination) {
|
|
205
|
-
try {
|
|
206
|
-
if (!await File.exists(source))
|
|
207
|
-
throw new Error(`Source path ${source} does not exist.`);
|
|
208
|
-
if (!await File.exists(folder)) {
|
|
209
|
-
if (!await File.isFile(source))
|
|
210
|
-
await FS.mkdir(folder, { recursive: true });
|
|
211
|
-
else {
|
|
212
|
-
const toCreate = folder.slice(0, folder.lastIndexOf('/'));
|
|
213
|
-
if (!await File.exists(toCreate))
|
|
214
|
-
await FS.mkdir(toCreate, { recursive: true });
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
output.push(`&RMoving source &C4${source} &Rto &C4${folder}`);
|
|
218
|
-
await FS.cp(source, folder, { recursive: true, force: true });
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
throw new Error(`Failed to move files from ${this.name} to ${folder}, \n${error}`);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
return output;
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Get the source path of a dependency
|
|
228
|
-
* @param source Source path
|
|
229
|
-
* @returns Source path
|
|
230
|
-
*/
|
|
231
|
-
static getSourcePath(folder, source) {
|
|
232
|
-
folder = folder.endsWith('/') ? folder.slice(0, -1) : folder;
|
|
233
|
-
if (!source)
|
|
234
|
-
return folder;
|
|
235
|
-
source = source.startsWith('/') ? source.slice(1) : source;
|
|
236
|
-
return `${folder}/${source}`.replace(/ /g, '\\ ');
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Get all folders of a dependency
|
|
240
|
-
* @param builder Builder to get folders from
|
|
241
|
-
* @returns Folders
|
|
242
|
-
*/
|
|
243
|
-
static getAllOutFolders(builder) {
|
|
244
|
-
const folders = [];
|
|
245
|
-
if (typeof builder === 'string')
|
|
246
|
-
folders.push(builder);
|
|
247
|
-
else if (Array.isArray(builder))
|
|
248
|
-
folders.push(...builder);
|
|
249
|
-
else
|
|
250
|
-
for (const key in builder) {
|
|
251
|
-
const out = this.getAllOutFolders(builder[key]);
|
|
252
|
-
folders.push(...out);
|
|
253
|
-
}
|
|
254
|
-
return folders;
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
export default Dependency;
|
|
258
|
-
//# sourceMappingURL=Dependency.js.map
|
package/build/Dependency.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dependency.js","sourceRoot":"","sources":["../src/Dependency.ts"],"names":[],"mappings":"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"}
|
package/build/File.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
-
* @description Utility to help with File operations.
|
|
4
|
-
* @license Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import Dependency from './Dependency.js';
|
|
7
|
-
export declare class File {
|
|
8
|
-
/**
|
|
9
|
-
* Validates and transforms raw data into a DependencyDef object.
|
|
10
|
-
* @param data - The raw data to extract from.
|
|
11
|
-
* @returns A valid DependencyDef object.
|
|
12
|
-
*/
|
|
13
|
-
private static extractDependency;
|
|
14
|
-
/**
|
|
15
|
-
* Reads and parses a dependency file.
|
|
16
|
-
* @param path - Path to the dependency file.
|
|
17
|
-
* @returns The parsed JSON content.
|
|
18
|
-
*/
|
|
19
|
-
private static read;
|
|
20
|
-
/**
|
|
21
|
-
* Loads, validates, and compiles dependencies from a file.
|
|
22
|
-
* @param path - Path to the dependency file.
|
|
23
|
-
* @returns An array of valid DependencyDef objects.
|
|
24
|
-
*/
|
|
25
|
-
static load(path: string): Promise<Dependency.Dependency[]>;
|
|
26
|
-
/**
|
|
27
|
-
* Saves an array of dependency definitions to a file.
|
|
28
|
-
* @param path - Path to the dependency file.
|
|
29
|
-
* @param dependencies - The dependencies to save.
|
|
30
|
-
*/
|
|
31
|
-
static save(path: string, dependencies: any[]): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Check if a file exists
|
|
34
|
-
* @param path Path to check
|
|
35
|
-
* @returns Promise<boolean>
|
|
36
|
-
*/
|
|
37
|
-
static isFile(path: string): Promise<boolean>;
|
|
38
|
-
/**
|
|
39
|
-
* Check if a file or folder exists
|
|
40
|
-
* @param path Path to check
|
|
41
|
-
* @returns Promise<boolean>
|
|
42
|
-
*/
|
|
43
|
-
static exists(path: string): Promise<boolean>;
|
|
44
|
-
}
|
|
45
|
-
export default File;
|
package/build/File.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
-
* @description Utility to help with File operations.
|
|
4
|
-
* @license Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { promises as FS } from 'fs';
|
|
7
|
-
import Validator from './Validator.js';
|
|
8
|
-
export class File {
|
|
9
|
-
/**
|
|
10
|
-
* Validates and transforms raw data into a DependencyDef object.
|
|
11
|
-
* @param data - The raw data to extract from.
|
|
12
|
-
* @returns A valid DependencyDef object.
|
|
13
|
-
*/
|
|
14
|
-
static extractDependency(data) {
|
|
15
|
-
Validator.validateDependency(data);
|
|
16
|
-
return data;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Reads and parses a dependency file.
|
|
20
|
-
* @param path - Path to the dependency file.
|
|
21
|
-
* @returns The parsed JSON content.
|
|
22
|
-
*/
|
|
23
|
-
static async read(path) {
|
|
24
|
-
try {
|
|
25
|
-
if (!await this.exists(path))
|
|
26
|
-
await FS.writeFile(path, '[]');
|
|
27
|
-
if (!await this.isFile(path))
|
|
28
|
-
throw new Error(`Dependency file at &C2${path}&R does not exist.`);
|
|
29
|
-
const content = await FS.readFile(path, 'utf-8');
|
|
30
|
-
return JSON.parse(content);
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
throw new Error(`Failed to read or parse dependency file at &C2${path}&R.`, { cause: error });
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Loads, validates, and compiles dependencies from a file.
|
|
38
|
-
* @param path - Path to the dependency file.
|
|
39
|
-
* @returns An array of valid DependencyDef objects.
|
|
40
|
-
*/
|
|
41
|
-
static async load(path) {
|
|
42
|
-
try {
|
|
43
|
-
const data = await this.read(path);
|
|
44
|
-
if (!Array.isArray(data))
|
|
45
|
-
throw new Error('Dependency file content must be an array.');
|
|
46
|
-
const dependencies = [];
|
|
47
|
-
for (const item of data)
|
|
48
|
-
dependencies.push(this.extractDependency(item));
|
|
49
|
-
return dependencies;
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
throw error;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Saves an array of dependency definitions to a file.
|
|
57
|
-
* @param path - Path to the dependency file.
|
|
58
|
-
* @param dependencies - The dependencies to save.
|
|
59
|
-
*/
|
|
60
|
-
static async save(path, dependencies) {
|
|
61
|
-
try {
|
|
62
|
-
const validatedDeps = [];
|
|
63
|
-
const seenNames = new Set();
|
|
64
|
-
for (const item of dependencies) {
|
|
65
|
-
const dependency = this.extractDependency(item);
|
|
66
|
-
if (seenNames.has(dependency.name))
|
|
67
|
-
throw new Error(`Duplicate dependency name found: "${dependency.name}".`);
|
|
68
|
-
seenNames.add(dependency.name);
|
|
69
|
-
validatedDeps.push(dependency);
|
|
70
|
-
}
|
|
71
|
-
try {
|
|
72
|
-
const content = JSON.stringify(validatedDeps, null, 4);
|
|
73
|
-
await FS.writeFile(path, content);
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
throw new Error(`Failed to write dependency file at &C2${path}&R.`, { cause: error });
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
throw error;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Check if a file exists
|
|
85
|
-
* @param path Path to check
|
|
86
|
-
* @returns Promise<boolean>
|
|
87
|
-
*/
|
|
88
|
-
static async isFile(path) {
|
|
89
|
-
try {
|
|
90
|
-
const stats = await FS.stat(path);
|
|
91
|
-
return stats.isFile();
|
|
92
|
-
}
|
|
93
|
-
catch {
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Check if a file or folder exists
|
|
99
|
-
* @param path Path to check
|
|
100
|
-
* @returns Promise<boolean>
|
|
101
|
-
*/
|
|
102
|
-
static async exists(path) {
|
|
103
|
-
try {
|
|
104
|
-
await FS.access(path);
|
|
105
|
-
return true;
|
|
106
|
-
}
|
|
107
|
-
catch {
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
export default File;
|
|
113
|
-
//# sourceMappingURL=File.js.map
|
package/build/File.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"File.js","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":"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"}
|
package/build/Git.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Git.js","sourceRoot":"","sources":["../src/Git.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,GAAG;IACL;;;;OAIG;IACK,MAAM,CAAC,IAAI,CAAC,OAAe;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAG,CAAC,CAAC;YAEhE,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC7C,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACJ,MAAM,YAAY,GAAG,4BAA4B,IAAI,KAAK,OAAO,KAAK,WAAW,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;oBACrG,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IACD;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,IAAY,EAAE,MAAe;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,MAAc;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,WAAW,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,MAAe;QAClD,MAAM,OAAO,GAAG,UAAU,IAAI,OAAO,CAAC;QACtC,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC;;YACzD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACJ;AAED,eAAe,GAAG,CAAC"}
|
package/build/PathFixer.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export declare class PathFixer {
|
|
2
|
-
readonly info: PathFixer.ProjectInfo;
|
|
3
|
-
readonly projectRoot: string;
|
|
4
|
-
static readonly IMPORT_REGEX: RegExp;
|
|
5
|
-
static readonly DEFAULT_PROJECT_INFO: PathFixer.ProjectInfo;
|
|
6
|
-
static readonly PROJECT_ROOT: string;
|
|
7
|
-
static readonly EXTENSIONS: string[];
|
|
8
|
-
absoluteRoot: string;
|
|
9
|
-
_alias: PathFixer.Alias[] | null;
|
|
10
|
-
constructor(info?: PathFixer.ProjectInfo, projectRoot?: string);
|
|
11
|
-
get alias(): PathFixer.Alias[];
|
|
12
|
-
run(): Promise<void>;
|
|
13
|
-
watch(): Promise<void>;
|
|
14
|
-
private process;
|
|
15
|
-
private processReplacer;
|
|
16
|
-
watchHandler(queue: Map<string, NodeJS.Timeout>, eventType: string, filename: string): Promise<void>;
|
|
17
|
-
watchTimeout(file: string, name: string): Promise<void>;
|
|
18
|
-
static getAllFiles(dir: string, extensions: string[]): Promise<string[]>;
|
|
19
|
-
static getProjectInfo(tsconfig?: string): Promise<PathFixer.ProjectInfo>;
|
|
20
|
-
}
|
|
21
|
-
declare namespace PathFixer {
|
|
22
|
-
interface Paths {
|
|
23
|
-
[alias: string]: string[];
|
|
24
|
-
}
|
|
25
|
-
interface Alias {
|
|
26
|
-
alias: string;
|
|
27
|
-
target: string;
|
|
28
|
-
}
|
|
29
|
-
interface ProjectInfo {
|
|
30
|
-
root: string;
|
|
31
|
-
out: string;
|
|
32
|
-
path: Paths;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
export default PathFixer;
|
package/build/PathFixer.js
DELETED
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
-
* @description Utility for path fixing.
|
|
4
|
-
* @license Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import path from 'path';
|
|
7
|
-
import syncFs, { promises as fs } from 'fs';
|
|
8
|
-
import { Logger, Utilities } from 'vortez';
|
|
9
|
-
const logger = new Logger({ prefix: 'PathFixer' });
|
|
10
|
-
export class PathFixer {
|
|
11
|
-
info;
|
|
12
|
-
projectRoot;
|
|
13
|
-
static IMPORT_REGEX = /(from\s+['"])([^'"]+)(['"])/g;
|
|
14
|
-
static DEFAULT_PROJECT_INFO = { root: 'src', out: 'build', path: {} };
|
|
15
|
-
static PROJECT_ROOT = process.cwd();
|
|
16
|
-
static EXTENSIONS = ['js', '.d.ts'];
|
|
17
|
-
absoluteRoot;
|
|
18
|
-
_alias = null;
|
|
19
|
-
constructor(info = PathFixer.DEFAULT_PROJECT_INFO, projectRoot = PathFixer.PROJECT_ROOT) {
|
|
20
|
-
this.info = info;
|
|
21
|
-
this.projectRoot = projectRoot;
|
|
22
|
-
const fullPath = path.join(projectRoot, info.out);
|
|
23
|
-
this.absoluteRoot = path.resolve(fullPath);
|
|
24
|
-
}
|
|
25
|
-
get alias() {
|
|
26
|
-
if (this._alias)
|
|
27
|
-
return this._alias;
|
|
28
|
-
const result = [];
|
|
29
|
-
for (const [key, value] of Object.entries(this.info.path)) {
|
|
30
|
-
let alias = key.replace(/\/\*$/, '');
|
|
31
|
-
// alias = alias.replace(new RegExp(`^${this.info.root}`), '');
|
|
32
|
-
alias = alias.replace(/^\//, '');
|
|
33
|
-
const root = this.info.root.replace(/^\.\//g, '');
|
|
34
|
-
let target = value[0].replace(/(?:^\.\/)|(?:\/\*$)/g, '');
|
|
35
|
-
target = target.replace(new RegExp(`^${this.info.root}`), '');
|
|
36
|
-
target = target.replace(/^\/|\/$/g, '');
|
|
37
|
-
target = path.resolve(this.absoluteRoot, target);
|
|
38
|
-
result.push({ alias, target });
|
|
39
|
-
}
|
|
40
|
-
this._alias = result;
|
|
41
|
-
return result;
|
|
42
|
-
}
|
|
43
|
-
async run() {
|
|
44
|
-
logger.log('&C2Starting path fixer, please wait...');
|
|
45
|
-
if (!await Utilities.fileExists(this.absoluteRoot))
|
|
46
|
-
return void logger.warn(`The root directory &C4${this.absoluteRoot}&R does not exist.`);
|
|
47
|
-
const files = await PathFixer.getAllFiles(this.absoluteRoot, PathFixer.EXTENSIONS);
|
|
48
|
-
logger.log(`&C2Found &C3${files.length} &C2files to process in &C4${this.absoluteRoot}.`);
|
|
49
|
-
let rewrittenCount = 0;
|
|
50
|
-
for (const file of files) {
|
|
51
|
-
const changed = await this.process(file);
|
|
52
|
-
if (changed)
|
|
53
|
-
rewrittenCount++;
|
|
54
|
-
}
|
|
55
|
-
logger.log(`&C2Path aliases rewritten in &C3${rewrittenCount} &C2files.`);
|
|
56
|
-
}
|
|
57
|
-
async watch() {
|
|
58
|
-
await this.run();
|
|
59
|
-
logger.log(`&C2Starting watcher in &C4${this.absoluteRoot}.`);
|
|
60
|
-
if (!await Utilities.fileExists(this.absoluteRoot))
|
|
61
|
-
await fs.mkdir(this.absoluteRoot, { recursive: true });
|
|
62
|
-
const watcher = syncFs.watch(this.absoluteRoot, { recursive: true });
|
|
63
|
-
const queue = new Map();
|
|
64
|
-
watcher.on('change', this.watchHandler.bind(this, queue));
|
|
65
|
-
}
|
|
66
|
-
async process(file) {
|
|
67
|
-
const content = await fs.readFile(file, 'utf8');
|
|
68
|
-
const newContent = content.replace(PathFixer.IMPORT_REGEX, this.processReplacer.bind(this, file));
|
|
69
|
-
if (content === newContent)
|
|
70
|
-
return false;
|
|
71
|
-
await fs.writeFile(file, newContent, 'utf8');
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
processReplacer(file, match, prefix, modulePath, suffix) {
|
|
75
|
-
const config = this.alias.find(config => modulePath.startsWith(`${config.alias}/`) || modulePath === config.alias);
|
|
76
|
-
if (!config)
|
|
77
|
-
return match;
|
|
78
|
-
const dir = path.dirname(file);
|
|
79
|
-
const restOfModulePath = modulePath.substring(config.alias.length);
|
|
80
|
-
const absoluteTarget = path.join(config.target, restOfModulePath);
|
|
81
|
-
let target = path.relative(dir, absoluteTarget);
|
|
82
|
-
if (!target.startsWith('.'))
|
|
83
|
-
target = `./${target}`;
|
|
84
|
-
target = target.replace(/\\/g, '/');
|
|
85
|
-
return `${prefix}${target}${suffix}`;
|
|
86
|
-
}
|
|
87
|
-
async watchHandler(queue, eventType, filename) {
|
|
88
|
-
if (!filename || !PathFixer.EXTENSIONS.some(ext => filename.endsWith(ext)))
|
|
89
|
-
return;
|
|
90
|
-
const fullPath = path.join(this.absoluteRoot, filename);
|
|
91
|
-
if (queue.has(fullPath))
|
|
92
|
-
clearTimeout(queue.get(fullPath));
|
|
93
|
-
queue.set(fullPath, setTimeout(this.watchTimeout.bind(this, fullPath, filename), 300));
|
|
94
|
-
}
|
|
95
|
-
async watchTimeout(file, name) {
|
|
96
|
-
try {
|
|
97
|
-
const stat = await fs.stat(file);
|
|
98
|
-
if (!stat.isFile())
|
|
99
|
-
return;
|
|
100
|
-
logger.log(`&C2Change detected in &C4${name}&C2. Processing`);
|
|
101
|
-
const changed = await this.process(file);
|
|
102
|
-
if (changed)
|
|
103
|
-
logger.log(`&C2File &C4${name}&C2 rewritten.`);
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
if (error.code && error.code === 'ENOENT') {
|
|
107
|
-
logger.warn(`File &C4${name}&R not found, it may have been deleted.`);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
logger.error(`Error processing file &C4${name}&R:`, error);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
static async getAllFiles(dir, extensions) {
|
|
115
|
-
const result = [];
|
|
116
|
-
if (!await Utilities.fileExists(dir))
|
|
117
|
-
return result;
|
|
118
|
-
const files = await fs.readdir(dir);
|
|
119
|
-
for (const file of files) {
|
|
120
|
-
const fullPath = path.join(dir, file);
|
|
121
|
-
try {
|
|
122
|
-
const stat = await fs.stat(fullPath);
|
|
123
|
-
if (stat.isDirectory()) {
|
|
124
|
-
const subFiles = await this.getAllFiles(fullPath, extensions);
|
|
125
|
-
result.push(...subFiles);
|
|
126
|
-
}
|
|
127
|
-
else if (stat.isFile() && extensions.some(ext => fullPath.endsWith(ext))) {
|
|
128
|
-
result.push(fullPath);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
catch (error) {
|
|
132
|
-
if (error && error.code === 'ENOENT') {
|
|
133
|
-
logger.warn(`File or directory &C4${fullPath}&R not found during scan, skipping.`);
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
logger.error(`Error scanning file &C4${fullPath}&R:`, error);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return result;
|
|
141
|
-
}
|
|
142
|
-
static async getProjectInfo(tsconfig = 'tsconfig.json') {
|
|
143
|
-
const info = PathFixer.DEFAULT_PROJECT_INFO;
|
|
144
|
-
const content = await fs.readFile(tsconfig, 'utf8');
|
|
145
|
-
const json = JSON.parse(content);
|
|
146
|
-
if (!json.compilerOptions)
|
|
147
|
-
return info;
|
|
148
|
-
const options = json.compilerOptions;
|
|
149
|
-
if (options.rootDir)
|
|
150
|
-
info.root = options.rootDir;
|
|
151
|
-
if (options.outDir)
|
|
152
|
-
info.out = options.outDir;
|
|
153
|
-
if (options.paths)
|
|
154
|
-
info.path = options.paths;
|
|
155
|
-
return info;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
export default PathFixer;
|
|
159
|
-
//# sourceMappingURL=PathFixer.js.map
|
package/build/PathFixer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PathFixer.js","sourceRoot":"","sources":["../src/PathFixer.ts"],"names":[],"mappings":"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"}
|