@wireapp/copy-config 2.2.2 → 2.2.4
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/lib/CopyConfig.d.ts.map +1 -1
- package/lib/CopyConfig.js +13 -14
- package/lib/cli.js +2 -2
- package/lib/utils.d.ts +19 -20
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +4 -4
- package/package.json +4 -4
package/lib/CopyConfig.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyConfig.d.ts","sourceRoot":"","sources":["../src/CopyConfig.ts"],"names":[],"mappings":"AAoBA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAYtD,qBAAa,UAAU;IAQnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAP1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAGrD,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACrB,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"CopyConfig.d.ts","sourceRoot":"","sources":["../src/CopyConfig.ts"],"names":[],"mappings":"AAoBA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAYtD,qBAAa,UAAU;IAQnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAP1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAGrD,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACrB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,YAAA;IAiB1C,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,YAAY;IAmBP,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YA2CpE,KAAK;YAkCL,aAAa;IAKd,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CA0BvC"}
|
package/lib/CopyConfig.js
CHANGED
|
@@ -57,12 +57,14 @@ const defaultOptions = {
|
|
|
57
57
|
repositoryUrl: 'https://github.com/wireapp/wire-web-config-default#master',
|
|
58
58
|
};
|
|
59
59
|
class CopyConfig {
|
|
60
|
+
logger;
|
|
61
|
+
options;
|
|
62
|
+
noClone = false;
|
|
63
|
+
noCleanup = false;
|
|
64
|
+
filterFiles = ['.DS_Store'];
|
|
60
65
|
constructor(options, logger) {
|
|
61
66
|
this.logger = logger;
|
|
62
|
-
this.
|
|
63
|
-
this.noCleanup = false;
|
|
64
|
-
this.filterFiles = ['.DS_Store'];
|
|
65
|
-
this.options = Object.assign(Object.assign({}, defaultOptions), options);
|
|
67
|
+
this.options = { ...defaultOptions, ...options };
|
|
66
68
|
this.readEnvVars();
|
|
67
69
|
if (!this.options.repositoryUrl && !this.options.externalDir) {
|
|
68
70
|
throw new Error('Option "repositoryUrl" or "externalDir" required');
|
|
@@ -118,7 +120,6 @@ class CopyConfig {
|
|
|
118
120
|
});
|
|
119
121
|
}
|
|
120
122
|
async copyDirOrFile(source, destination) {
|
|
121
|
-
var _a, _b, _c;
|
|
122
123
|
const filter = (src) => {
|
|
123
124
|
for (const fileName in this.filterFiles) {
|
|
124
125
|
if (src.endsWith(fileName)) {
|
|
@@ -132,18 +133,18 @@ class CopyConfig {
|
|
|
132
133
|
throw new Error('Cannot copy a directory into a file.');
|
|
133
134
|
}
|
|
134
135
|
if (isGlob(source)) {
|
|
135
|
-
|
|
136
|
+
this.logger?.info(`Resolving "${source}"`);
|
|
136
137
|
const copiedFiles = await utils.copyAsync(source, destination);
|
|
137
138
|
for (const copiedFile of copiedFiles) {
|
|
138
139
|
const [copiedFrom, copiedTo] = copiedFile.history;
|
|
139
|
-
|
|
140
|
+
this.logger?.debug(`Copying "${copiedFrom}" -> "${copiedTo}"`);
|
|
140
141
|
}
|
|
141
142
|
return copiedFiles.map(file => file.path);
|
|
142
143
|
}
|
|
143
144
|
if (utils.isFile(source) && !utils.isFile(destination)) {
|
|
144
145
|
destination = path_1.default.join(destination, path_1.default.basename(source));
|
|
145
146
|
}
|
|
146
|
-
|
|
147
|
+
this.logger?.debug(`Copying "${source}" -> "${destination}"`);
|
|
147
148
|
// Info: "fs.copy" creates all sub-folders which are needed along the way:
|
|
148
149
|
// see https://github.com/jprichardson/node-fs-extra/blob/7.0.1/lib/copy/copy.js#L43
|
|
149
150
|
// by default, fs.copy() copies folders recursively
|
|
@@ -151,7 +152,6 @@ class CopyConfig {
|
|
|
151
152
|
return [destination];
|
|
152
153
|
}
|
|
153
154
|
async clone() {
|
|
154
|
-
var _a, _b, _c;
|
|
155
155
|
const repositoryData = this.options.repositoryUrl.split('#');
|
|
156
156
|
let bareUrl = repositoryData[0];
|
|
157
157
|
const branch = repositoryData[1] || 'master';
|
|
@@ -160,7 +160,7 @@ class CopyConfig {
|
|
|
160
160
|
await this.removeBasedir();
|
|
161
161
|
}
|
|
162
162
|
if (stderrVersion) {
|
|
163
|
-
|
|
163
|
+
this.logger?.error(`No git installation found: (error: "${stderrVersion}"). Trying to download the zip file ...`);
|
|
164
164
|
}
|
|
165
165
|
if (stderrVersion || this.options.forceDownload) {
|
|
166
166
|
if (bareUrl.startsWith('git')) {
|
|
@@ -168,11 +168,11 @@ class CopyConfig {
|
|
|
168
168
|
bareUrl = bareUrl.replace(gitProtocolRegex, 'https://$1$2/$3');
|
|
169
169
|
}
|
|
170
170
|
const url = `${bareUrl}/archive/${branch}.zip`;
|
|
171
|
-
|
|
171
|
+
this.logger?.info(`Downloading "${url}" ...`);
|
|
172
172
|
await utils.downloadFileAsync(url, this.options.baseDir);
|
|
173
173
|
}
|
|
174
174
|
else {
|
|
175
|
-
|
|
175
|
+
this.logger?.info(`Cloning "${bareUrl}" (branch "${branch}") ...`);
|
|
176
176
|
const command = `git clone --depth 1 -b ${branch} ${bareUrl} ${this.options.baseDir}`;
|
|
177
177
|
const { stderr: stderrClone } = await utils.execAsync(command);
|
|
178
178
|
if (stderrClone.includes('fatal')) {
|
|
@@ -181,8 +181,7 @@ class CopyConfig {
|
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
async removeBasedir() {
|
|
184
|
-
|
|
185
|
-
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug(`Cleaning up "${this.options.baseDir}" ...`);
|
|
184
|
+
this.logger?.debug(`Cleaning up "${this.options.baseDir}" ...`);
|
|
186
185
|
await utils.rimrafAsync(this.options.baseDir);
|
|
187
186
|
}
|
|
188
187
|
async copy() {
|
package/lib/cli.js
CHANGED
|
@@ -30,7 +30,7 @@ const _1 = require("./");
|
|
|
30
30
|
const configExplorer = (0, cosmiconfig_1.cosmiconfig)('copyconfig');
|
|
31
31
|
const configFile = await configExplorer.search();
|
|
32
32
|
const config = configFile ? configFile.config : undefined;
|
|
33
|
-
const logLevel =
|
|
33
|
+
const logLevel = config?.logLevel || 'info';
|
|
34
34
|
const logger = logLevel !== 'silent' ? (0, logdown_1.default)('@wireapp/copy-config', { markdown: false }) : undefined;
|
|
35
35
|
if (logger) {
|
|
36
36
|
logger.state.isEnabled = true;
|
|
@@ -44,7 +44,7 @@ const _1 = require("./");
|
|
|
44
44
|
}
|
|
45
45
|
const copiedFiles = await new _1.CopyConfig(config, logger).copy();
|
|
46
46
|
const copyMessage = copiedFiles.length ? `Copied ${copiedFiles.length}` : "Didn't copy any";
|
|
47
|
-
logger
|
|
47
|
+
logger?.info(`${copyMessage} file${copiedFiles.length === 1 ? '' : 's'}.`);
|
|
48
48
|
})().catch(error => {
|
|
49
49
|
console.error(error);
|
|
50
50
|
process.exit(1);
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,34 +1,33 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import File from 'vinyl';
|
|
3
2
|
import { exec } from 'child_process';
|
|
4
3
|
export declare function copyAsync(source: string, destination: string): Promise<File[]>;
|
|
5
4
|
export declare function downloadFileAsync(url: string, baseDir: string): Promise<void>;
|
|
6
5
|
export declare function extractAsync(zipFile: string, destination: string): Promise<void>;
|
|
7
6
|
export declare const isFile: (path: string) => boolean;
|
|
8
|
-
export declare const rimrafAsync: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions
|
|
9
|
-
rimraf: (path: string | string[], opt?: import("rimraf").RimrafAsyncOptions
|
|
10
|
-
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
11
|
-
rimrafSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
12
|
-
manual: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions
|
|
13
|
-
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
7
|
+
export declare const rimrafAsync: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions) => Promise<boolean>) & {
|
|
8
|
+
rimraf: (path: string | string[], opt?: import("rimraf").RimrafAsyncOptions) => Promise<boolean>;
|
|
9
|
+
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
10
|
+
rimrafSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
11
|
+
manual: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions) => Promise<boolean>) & {
|
|
12
|
+
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
14
13
|
};
|
|
15
|
-
manualSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
16
|
-
native: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions
|
|
17
|
-
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
14
|
+
manualSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
15
|
+
native: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions) => Promise<boolean>) & {
|
|
16
|
+
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
18
17
|
};
|
|
19
|
-
nativeSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
20
|
-
posix: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions
|
|
21
|
-
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
18
|
+
nativeSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
19
|
+
posix: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions) => Promise<boolean>) & {
|
|
20
|
+
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
22
21
|
};
|
|
23
|
-
posixSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
24
|
-
windows: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions
|
|
25
|
-
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
22
|
+
posixSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
23
|
+
windows: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions) => Promise<boolean>) & {
|
|
24
|
+
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
26
25
|
};
|
|
27
|
-
windowsSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
28
|
-
moveRemove: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions
|
|
29
|
-
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
26
|
+
windowsSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
27
|
+
moveRemove: ((path: string | string[], opt?: import("rimraf").RimrafAsyncOptions) => Promise<boolean>) & {
|
|
28
|
+
sync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
30
29
|
};
|
|
31
|
-
moveRemoveSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions
|
|
30
|
+
moveRemoveSync: (path: string | string[], opt?: import("rimraf").RimrafSyncOptions) => boolean;
|
|
32
31
|
};
|
|
33
32
|
export declare const execAsync: typeof exec.__promisify__;
|
|
34
33
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAwBA,OAAO,IAAI,MAAM,OAAO,CAAC;AAEzB,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AAInC,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAUpF;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBnF;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtF;AAED,eAAO,MAAM,MAAM,SAAU,MAAM,YAA0B,CAAC;AAC9D,eAAO,MAAM,WAAW;yCAzBhB,CAAC;uCACP,CAAA;6CAGgB,CAAC;0CAGjB,CAAD;2CACoC,CAAC;;6CAGvB,CAAC;0CAEO,CAAC;2CAEhB,CAAL;;6CAE2B,CAAC;yCACiB,CAAC;2CAOjD,CAAC;;4CAEO,CAAC;2CAA4E,CAAC;2CAA0F,CAAC;;8CAAsF,CAAC;8CAA+E,CAAC;2CAA0F,CAAC;;iDAAyF,CAAC;CAF5e,CAAC;AAClC,eAAO,MAAM,SAAS,2BAAkB,CAAC"}
|
package/lib/utils.js
CHANGED
|
@@ -21,7 +21,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
21
21
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.execAsync = exports.rimrafAsync = exports.isFile =
|
|
24
|
+
exports.execAsync = exports.rimrafAsync = exports.isFile = void 0;
|
|
25
|
+
exports.copyAsync = copyAsync;
|
|
26
|
+
exports.downloadFileAsync = downloadFileAsync;
|
|
27
|
+
exports.extractAsync = extractAsync;
|
|
25
28
|
const axios_1 = __importDefault(require("axios"));
|
|
26
29
|
const copy_1 = __importDefault(require("copy"));
|
|
27
30
|
const fs_extra_1 = require("fs-extra");
|
|
@@ -39,7 +42,6 @@ async function copyAsync(source, destination) {
|
|
|
39
42
|
}
|
|
40
43
|
return new Promise((resolve, reject) => (0, copy_1.default)(source, destination, (error, files = []) => (error ? reject(error) : resolve(files))));
|
|
41
44
|
}
|
|
42
|
-
exports.copyAsync = copyAsync;
|
|
43
45
|
async function downloadFileAsync(url, baseDir) {
|
|
44
46
|
const zipFile = path_1.default.join(baseDir, 'archive.zip');
|
|
45
47
|
await (0, fs_extra_1.ensureDir)(baseDir);
|
|
@@ -58,7 +60,6 @@ async function downloadFileAsync(url, baseDir) {
|
|
|
58
60
|
await extractAsync(zipFile, baseDir);
|
|
59
61
|
await (0, fs_extra_1.remove)(zipFile);
|
|
60
62
|
}
|
|
61
|
-
exports.downloadFileAsync = downloadFileAsync;
|
|
62
63
|
async function extractAsync(zipFile, destination) {
|
|
63
64
|
const jszip = new jszip_1.default();
|
|
64
65
|
await (0, fs_extra_1.ensureDir)(destination);
|
|
@@ -78,7 +79,6 @@ async function extractAsync(zipFile, destination) {
|
|
|
78
79
|
}
|
|
79
80
|
}));
|
|
80
81
|
}
|
|
81
|
-
exports.extractAsync = extractAsync;
|
|
82
82
|
const isFile = (path) => /\w\.\w+$/.test(path);
|
|
83
83
|
exports.isFile = isFile;
|
|
84
84
|
exports.rimrafAsync = rimraf_1.rimraf;
|
package/package.json
CHANGED
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
"main": "lib/index",
|
|
10
10
|
"bin": "lib/cli.js",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"axios": "1.7.
|
|
12
|
+
"axios": "1.7.3",
|
|
13
13
|
"copy": "0.3.2",
|
|
14
14
|
"cosmiconfig": "9.0.0",
|
|
15
15
|
"fs-extra": "11.2.0",
|
|
16
16
|
"jszip": "3.10.1",
|
|
17
17
|
"logdown": "3.3.1",
|
|
18
|
-
"rimraf": "
|
|
18
|
+
"rimraf": "6.0.1"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@swc/core": "^1.3.10",
|
|
@@ -35,6 +35,6 @@
|
|
|
35
35
|
"test": "jest",
|
|
36
36
|
"test:coverage": "jest --coverage"
|
|
37
37
|
},
|
|
38
|
-
"version": "2.2.
|
|
39
|
-
"gitHead": "
|
|
38
|
+
"version": "2.2.4",
|
|
39
|
+
"gitHead": "770b4a01d2b88aa3e07a0f737c481fcb0819bcc6"
|
|
40
40
|
}
|