@terascope/fetch-github-release 0.8.9 → 1.0.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.
- package/README.md +4 -4
- package/bin/fetch-github-release +5 -3
- package/dist/src/cli.js +7 -9
- package/dist/src/cli.js.map +1 -1
- package/dist/src/download.d.ts +1 -1
- package/dist/src/download.d.ts.map +1 -1
- package/dist/src/download.js +13 -17
- package/dist/src/download.js.map +1 -1
- package/dist/src/downloadRelease.d.ts.map +1 -1
- package/dist/src/downloadRelease.js +24 -31
- package/dist/src/downloadRelease.js.map +1 -1
- package/dist/src/getLatest.d.ts +1 -1
- package/dist/src/getLatest.d.ts.map +1 -1
- package/dist/src/getLatest.js +1 -5
- package/dist/src/getLatest.js.map +1 -1
- package/dist/src/getReleases.d.ts +2 -1
- package/dist/src/getReleases.d.ts.map +1 -1
- package/dist/src/getReleases.js +4 -10
- package/dist/src/getReleases.js.map +1 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/interfaces.js +1 -2
- package/dist/src/rpad.js +1 -5
- package/dist/src/rpad.js.map +1 -1
- package/package.json +13 -11
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
A node module to download Github release assets. It will also uncompress zip
|
|
4
4
|
files and skip downloading if a file already exists.
|
|
5
5
|
|
|
6
|
-
```
|
|
6
|
+
```bash
|
|
7
7
|
$ fetch-github-release -s darwin-x64 electron electron
|
|
8
8
|
Downloading electron/electron@v1.3.1...
|
|
9
9
|
electron-v1.3.1-darwi... ▇▇▇▇▇---------------------------------------------------- 662.8s
|
|
@@ -27,7 +27,7 @@ yarn global add @terascope/fetch-github-release
|
|
|
27
27
|
|
|
28
28
|
### Usage
|
|
29
29
|
|
|
30
|
-
```
|
|
30
|
+
```bash
|
|
31
31
|
Usage: fetch-github-release [options] <user> <repo> [outputdir]
|
|
32
32
|
|
|
33
33
|
Options:
|
|
@@ -43,8 +43,8 @@ Options:
|
|
|
43
43
|
|
|
44
44
|
Download `electron/electron` assets whose name contains `darwin-x64` to `/tmp`.
|
|
45
45
|
|
|
46
|
-
```
|
|
47
|
-
|
|
46
|
+
```bash
|
|
47
|
+
fetch-github-release -s darwin-x64 electron electron /tmp
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
If you need to download assets from a private repository or you need to avoid rate limits, you can set the environment variable `GITHUB_TOKEN`. To generate a token go to your Github [settings](https://github.com/settings/tokens) and a token with `public_repo` or `repo` (for private repos) permissions.
|
package/bin/fetch-github-release
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require(path.join(path.dirname(fs.realpathSync(__filename)), '../dist/src/cli'));
|
|
6
|
+
const filename = fileURLToPath(import.meta.url);
|
|
7
|
+
import(path.join(path.dirname(fs.realpathSync(filename)), '../dist/src/cli.js'));
|
package/dist/src/cli.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const downloadRelease_1 = require("./downloadRelease");
|
|
8
|
-
const command = yargs_1.default
|
|
1
|
+
import yargs from 'yargs';
|
|
2
|
+
import { hideBin } from 'yargs/helpers';
|
|
3
|
+
import { downloadRelease } from './downloadRelease.js';
|
|
4
|
+
const command = await yargs(hideBin(process.argv))
|
|
5
|
+
.alias('h', 'help')
|
|
6
|
+
.alias('v', 'version')
|
|
9
7
|
.option('prerelease', {
|
|
10
8
|
description: 'download prerelease',
|
|
11
9
|
type: 'boolean',
|
|
@@ -56,7 +54,7 @@ function filterAsset(asset) {
|
|
|
56
54
|
}
|
|
57
55
|
return new RegExp(command.search).test(asset.name);
|
|
58
56
|
}
|
|
59
|
-
|
|
57
|
+
downloadRelease(user, repo, outputdir, filterRelease, filterAsset, !!command.zipped, !!command.quiet).catch((err) => {
|
|
60
58
|
console.error(err);
|
|
61
59
|
process.exitCode = 1;
|
|
62
60
|
}).finally(() => {
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7C,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;KAClB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;KACrB,MAAM,CAAC,YAAY,EAAE;IAClB,WAAW,EAAE,qBAAqB;IAClC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,KAAK;CACjB,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IACd,WAAW,EAAE,uCAAuC;IACpD,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,QAAQ;CACjB,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACb,WAAW,EAAE,uBAAuB;IACpC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,KAAK;CACjB,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IACd,WAAW,EAAE,0BAA0B;IACvC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,KAAK;CACjB,CAAC;KACD,UAAU,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,QAAQ;CACjB,CAAC;KACD,WAAW,CAAC,MAAM,CAAC;KACnB,UAAU,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,QAAQ;CACjB,CAAC;KACD,WAAW,CAAC,MAAM,CAAC;KACnB,UAAU,CAAC,WAAW,EAAE;IACrB,WAAW,EAAE,yCAAyC;IACtD,IAAI,EAAE,QAAQ;CACjB,CAAC;KACD,IAAI,CAAC;AAEV,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAEhD,SAAS,aAAa,CAAC,OAAsB;IACzC,OAAO,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;AAClF,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACjB,OAAO,IAAI,CAAC;KACf;IAED,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,eAAe,CACX,IAAc,EACd,IAAc,EACd,SAAmB,EACnB,aAAa,EACb,WAAW,EACX,CAAC,CAAC,OAAO,CAAC,MAAM,EAChB,CAAC,CAAC,OAAO,CAAC,KAAK,CAClB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;IACZ,OAAO,CAAC,IAAI,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC"}
|
package/dist/src/download.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/download.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/download.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAmBvC,wBAAgB,QAAQ,CACpB,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,QAAQ,EACX,QAAQ,GAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAe,GAClD,OAAO,CAAC,IAAI,CAAC,CAgCf"}
|
package/dist/src/download.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.download = void 0;
|
|
7
|
-
const http_1 = __importDefault(require("http"));
|
|
8
|
-
const https_1 = __importDefault(require("https"));
|
|
9
|
-
const url_1 = __importDefault(require("url"));
|
|
1
|
+
import http from 'node:http';
|
|
2
|
+
import https from 'node:https';
|
|
3
|
+
import URL from 'node:url';
|
|
10
4
|
const { GITHUB_TOKEN } = process.env;
|
|
11
5
|
function getRequestOptions(urlString) {
|
|
12
|
-
const url =
|
|
6
|
+
const url = URL.parse(urlString);
|
|
13
7
|
const headers = {
|
|
14
8
|
Accept: 'application/octet-stream',
|
|
15
9
|
'User-Agent': '@terascope/fetch-github-release',
|
|
@@ -19,18 +13,17 @@ function getRequestOptions(urlString) {
|
|
|
19
13
|
}
|
|
20
14
|
return Object.assign({}, url, { headers });
|
|
21
15
|
}
|
|
22
|
-
function download(url, w, progress = () => { }) {
|
|
16
|
+
export function download(url, w, progress = () => { }) {
|
|
23
17
|
return new Promise((resolve, reject) => {
|
|
24
|
-
let protocol = /^https:/.exec(url) ?
|
|
18
|
+
let protocol = /^https:/.exec(url) ? https : http;
|
|
25
19
|
const options = getRequestOptions(url);
|
|
26
20
|
progress(0);
|
|
27
21
|
protocol
|
|
28
22
|
.get(options, (res1) => {
|
|
29
|
-
protocol = /^https:/.exec(res1.headers.location) ?
|
|
23
|
+
protocol = /^https:/.exec(res1.headers.location) ? https : http;
|
|
30
24
|
protocol
|
|
31
25
|
.get(res1.headers.location, (res2) => {
|
|
32
|
-
|
|
33
|
-
const total = parseInt((_a = res2.headers['content-length']) !== null && _a !== void 0 ? _a : '0', 10);
|
|
26
|
+
const total = parseInt(res2.headers['content-length'] ?? '0', 10);
|
|
34
27
|
let completed = 0;
|
|
35
28
|
res2.pipe(w);
|
|
36
29
|
res2.on('data', (data) => {
|
|
@@ -39,12 +32,15 @@ function download(url, w, progress = () => { }) {
|
|
|
39
32
|
});
|
|
40
33
|
res2.on('progress', progress);
|
|
41
34
|
res2.on('error', reject);
|
|
42
|
-
res2.on('end',
|
|
35
|
+
res2.on('end', () => {
|
|
36
|
+
w.on('close', () => {
|
|
37
|
+
resolve();
|
|
38
|
+
});
|
|
39
|
+
});
|
|
43
40
|
})
|
|
44
41
|
.on('error', reject);
|
|
45
42
|
})
|
|
46
43
|
.on('error', reject);
|
|
47
44
|
});
|
|
48
45
|
}
|
|
49
|
-
exports.download = download;
|
|
50
46
|
//# sourceMappingURL=download.js.map
|
package/dist/src/download.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/download.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/download.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAErC,SAAS,iBAAiB,CAAC,SAAiB;IACxC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,OAAO,GAA2B;QACpC,MAAM,EAAE,0BAA0B;QAClC,YAAY,EAAE,iCAAiC;KAClD,CAAC;IAEF,IAAI,YAAY,EAAE;QACd,OAAO,CAAC,aAAa,GAAG,SAAS,YAAY,EAAE,CAAC;KACnD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,QAAQ,CACpB,GAAW,EACX,CAAW,EACX,WAAyC,GAAG,EAAE,GAAE,CAAC;IAEjD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAEvC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEZ,QAAQ;aACH,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACnB,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAEjE,QAAQ;iBACH,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClE,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACrB,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC;oBACzB,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC9B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACzB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBAChB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;wBACf,OAAO,EAAE,CAAC;oBACd,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC;aACD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadRelease.d.ts","sourceRoot":"","sources":["../../src/downloadRelease.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"downloadRelease.d.ts","sourceRoot":"","sources":["../../src/downloadRelease.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAMjE;;;;;;;;;EASE;AACF,wBAAsB,eAAe,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAc,EACzD,WAAW,GAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAc,EAC5D,WAAW,UAAQ,EACnB,cAAc,UAAQ,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CA2DnB"}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const extract_zip_1 = __importDefault(require("extract-zip"));
|
|
11
|
-
const getReleases_1 = require("./getReleases");
|
|
12
|
-
const getLatest_1 = require("./getLatest");
|
|
13
|
-
const download_1 = require("./download");
|
|
14
|
-
const rpad_1 = require("./rpad");
|
|
1
|
+
import os from 'node:os';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import extract from 'extract-zip';
|
|
5
|
+
import MultiProgress from 'multi-progress';
|
|
6
|
+
import { getReleases } from './getReleases.js';
|
|
7
|
+
import { getLatest } from './getLatest.js';
|
|
8
|
+
import { download } from './download.js';
|
|
9
|
+
import { rpad } from './rpad.js';
|
|
15
10
|
function pass() {
|
|
16
11
|
return true;
|
|
17
12
|
}
|
|
18
|
-
const MultiProgress = require('multi-progress');
|
|
19
13
|
/**
|
|
20
14
|
* Download a specific github release
|
|
21
15
|
* @param user The name of the github user or organization
|
|
@@ -26,7 +20,7 @@ const MultiProgress = require('multi-progress');
|
|
|
26
20
|
* @param leaveZipped Optionally leave the file zipped
|
|
27
21
|
* @param leaveZipped Optionally disable logging for quiet output
|
|
28
22
|
*/
|
|
29
|
-
async function downloadRelease(user, repo, outputDir, filterRelease = pass, filterAsset = pass, leaveZipped = false, disableLogging = false) {
|
|
23
|
+
export async function downloadRelease(user, repo, outputDir, filterRelease = pass, filterAsset = pass, leaveZipped = false, disableLogging = false) {
|
|
30
24
|
if (!user) {
|
|
31
25
|
throw new Error('Missing user argument');
|
|
32
26
|
}
|
|
@@ -34,10 +28,10 @@ async function downloadRelease(user, repo, outputDir, filterRelease = pass, filt
|
|
|
34
28
|
throw new Error('Missing user argument');
|
|
35
29
|
}
|
|
36
30
|
const bars = new MultiProgress(process.stderr);
|
|
37
|
-
const releases = await
|
|
38
|
-
const release =
|
|
31
|
+
const releases = await getReleases(user, repo);
|
|
32
|
+
const release = getLatest(releases, filterRelease, filterAsset);
|
|
39
33
|
if (!release) {
|
|
40
|
-
throw new Error(`Could not find a release for ${user}/${repo} (${
|
|
34
|
+
throw new Error(`Could not find a release for ${user}/${repo} (${os.platform()} ${os.arch()})`);
|
|
41
35
|
}
|
|
42
36
|
if (!disableLogging) {
|
|
43
37
|
console.error(`Downloading ${user}/${repo}@${release.tag_name}...`);
|
|
@@ -45,7 +39,7 @@ async function downloadRelease(user, repo, outputDir, filterRelease = pass, filt
|
|
|
45
39
|
const promises = release.assets.map(async (asset) => {
|
|
46
40
|
let progress;
|
|
47
41
|
if (process.stdout.isTTY && !disableLogging) {
|
|
48
|
-
const bar = bars.newBar(`${
|
|
42
|
+
const bar = bars.newBar(`${rpad(asset.name, 24)} :bar :etas`, {
|
|
49
43
|
complete: '▇',
|
|
50
44
|
incomplete: '-',
|
|
51
45
|
width: process.stdout.columns - 36,
|
|
@@ -54,27 +48,26 @@ async function downloadRelease(user, repo, outputDir, filterRelease = pass, filt
|
|
|
54
48
|
progress = bar.update.bind(bar);
|
|
55
49
|
}
|
|
56
50
|
// eslint-disable-next-line no-param-reassign
|
|
57
|
-
outputDir =
|
|
58
|
-
if (!
|
|
59
|
-
|
|
51
|
+
outputDir = path.isAbsolute(outputDir) ? outputDir : path.resolve(outputDir);
|
|
52
|
+
if (!fs.existsSync(outputDir)) {
|
|
53
|
+
fs.mkdirSync(outputDir);
|
|
60
54
|
}
|
|
61
|
-
if (!
|
|
55
|
+
if (!fs.statSync(outputDir).isDirectory()) {
|
|
62
56
|
throw new Error(`Output path "${outputDir}" must be a directory`);
|
|
63
57
|
}
|
|
64
|
-
const destf =
|
|
65
|
-
if (!
|
|
66
|
-
const dest =
|
|
67
|
-
await
|
|
58
|
+
const destf = path.join(outputDir, asset.name);
|
|
59
|
+
if (!fs.existsSync(destf)) {
|
|
60
|
+
const dest = fs.createWriteStream(destf);
|
|
61
|
+
await download(asset.url, dest, progress);
|
|
68
62
|
if (!leaveZipped && /\.zip$/.exec(destf)) {
|
|
69
|
-
await (
|
|
63
|
+
await extract(destf, {
|
|
70
64
|
dir: outputDir
|
|
71
65
|
});
|
|
72
|
-
|
|
66
|
+
fs.unlinkSync(destf);
|
|
73
67
|
}
|
|
74
68
|
}
|
|
75
69
|
return destf;
|
|
76
70
|
});
|
|
77
71
|
return Promise.all(promises);
|
|
78
72
|
}
|
|
79
|
-
exports.downloadRelease = downloadRelease;
|
|
80
73
|
//# sourceMappingURL=downloadRelease.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadRelease.js","sourceRoot":"","sources":["../../src/downloadRelease.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"downloadRelease.js","sourceRoot":"","sources":["../../src/downloadRelease.ts"],"names":[],"mappings":"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"}
|
package/dist/src/getLatest.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { GithubRelease, GithubReleaseAsset } from './interfaces';
|
|
1
|
+
import { GithubRelease, GithubReleaseAsset } from './interfaces.js';
|
|
2
2
|
export declare function getLatest(releases: GithubRelease[], filterRelease?: (release: GithubRelease) => boolean, filterAsset?: (release: GithubReleaseAsset) => boolean): GithubRelease | null;
|
|
3
3
|
//# sourceMappingURL=getLatest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLatest.d.ts","sourceRoot":"","sources":["../../src/getLatest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"getLatest.d.ts","sourceRoot":"","sources":["../../src/getLatest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAMpE,wBAAgB,SAAS,CACrB,QAAQ,EAAE,aAAa,EAAE,EACzB,aAAa,GAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAc,EACzD,WAAW,GAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAc,GAC7D,aAAa,GAAC,IAAI,CAoBpB"}
|
package/dist/src/getLatest.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getLatest = void 0;
|
|
4
1
|
function pass() {
|
|
5
2
|
return true;
|
|
6
3
|
}
|
|
7
|
-
function getLatest(releases, filterRelease = pass, filterAsset = pass) {
|
|
4
|
+
export function getLatest(releases, filterRelease = pass, filterAsset = pass) {
|
|
8
5
|
if (!releases) {
|
|
9
6
|
return null;
|
|
10
7
|
}
|
|
@@ -20,5 +17,4 @@ function getLatest(releases, filterRelease = pass, filterAsset = pass) {
|
|
|
20
17
|
}
|
|
21
18
|
return null;
|
|
22
19
|
}
|
|
23
|
-
exports.getLatest = getLatest;
|
|
24
20
|
//# sourceMappingURL=getLatest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLatest.js","sourceRoot":"","sources":["../../src/getLatest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getLatest.js","sourceRoot":"","sources":["../../src/getLatest.ts"],"names":[],"mappings":"AAEA,SAAS,IAAI;IACT,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS,CACrB,QAAyB,EACzB,gBAAqD,IAAI,EACzD,cAAwD,IAAI;IAE5D,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAEhD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;QAClB,OAAO,IAAI,CAAC;KACf;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAElD,IAAI,MAAM,CAAC,MAAM,EAAE;YACf,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SACjD;KACJ;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getReleases.d.ts","sourceRoot":"","sources":["../../src/getReleases.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"getReleases.d.ts","sourceRoot":"","sources":["../../src/getReleases.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAgBtF;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC"}
|
package/dist/src/getReleases.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getReleases = void 0;
|
|
7
|
-
const got_1 = __importDefault(require("got"));
|
|
1
|
+
import got from 'got';
|
|
8
2
|
const { GITHUB_TOKEN } = process.env;
|
|
9
|
-
async function getReleases(user, repo) {
|
|
3
|
+
export async function getReleases(user, repo) {
|
|
10
4
|
const url = `https://api.github.com/repos/${user}/${repo}/releases`;
|
|
11
5
|
const requestConfig = {
|
|
12
6
|
headers: {
|
|
@@ -17,8 +11,8 @@ async function getReleases(user, repo) {
|
|
|
17
11
|
if (GITHUB_TOKEN) {
|
|
18
12
|
requestConfig.headers.Authorization = `token ${GITHUB_TOKEN}`;
|
|
19
13
|
}
|
|
20
|
-
const r = await
|
|
14
|
+
const r = await got.get(url, requestConfig);
|
|
21
15
|
return r.body;
|
|
22
16
|
}
|
|
23
|
-
|
|
17
|
+
export { HTTPError } from 'got';
|
|
24
18
|
//# sourceMappingURL=getReleases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getReleases.js","sourceRoot":"","sources":["../../src/getReleases.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getReleases.js","sourceRoot":"","sources":["../../src/getReleases.ts"],"names":[],"mappings":"AAAA,OAAO,GAAkC,MAAM,KAAK,CAAC;AAGrD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,IAAY;IACxD,MAAM,GAAG,GAAG,gCAAgC,IAAI,IAAI,IAAI,WAAW,CAAC;IAEpE,MAAM,aAAa,GAA8B;QAC7C,OAAO,EAAE;YACL,YAAY,EAAE,iCAAiC;SACxB;QAC3B,YAAY,EAAE,MAAM;KACvB,CAAC;IAEF,IAAI,YAAY,EAAE;QACd,aAAa,CAAC,OAAQ,CAAC,aAAa,GAAG,SAAS,YAAY,EAAE,CAAC;KAClE;IAED,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAkB,GAAG,EAAE,aAAa,CAAC,CAAC;IAC7D,OAAO,CAAC,CAAC,IAAI,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const downloadRelease_1 = require("./downloadRelease");
|
|
5
|
-
Object.defineProperty(exports, "downloadRelease", { enumerable: true, get: function () { return downloadRelease_1.downloadRelease; } });
|
|
1
|
+
import { downloadRelease } from './downloadRelease.js';
|
|
2
|
+
import { HTTPError } from './getReleases.js';
|
|
3
|
+
export { downloadRelease, HTTPError };
|
|
6
4
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC"}
|
package/dist/src/interfaces.js
CHANGED
package/dist/src/rpad.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.rpad = void 0;
|
|
4
|
-
function rpad(text, len) {
|
|
1
|
+
export function rpad(text, len) {
|
|
5
2
|
let t = text;
|
|
6
3
|
if (t.length > len) {
|
|
7
4
|
t = `${text.substr(0, len - 3)}...`;
|
|
8
5
|
}
|
|
9
6
|
return `${t}${new Array(len - t.length + 1).join(' ')}`;
|
|
10
7
|
}
|
|
11
|
-
exports.rpad = rpad;
|
|
12
8
|
//# sourceMappingURL=rpad.js.map
|
package/dist/src/rpad.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpad.js","sourceRoot":"","sources":["../../src/rpad.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rpad.js","sourceRoot":"","sources":["../../src/rpad.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,GAAW;IAC1C,IAAI,CAAC,GAAG,IAAI,CAAC;IAEb,IAAI,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE;QAChB,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;KACvC;IAED,OAAO,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5D,CAAC"}
|
package/package.json
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "1.0.0",
|
|
7
7
|
"description": "Download a specific release from github",
|
|
8
|
+
"type": "module",
|
|
8
9
|
"files": [
|
|
9
10
|
"dist/src/**/*",
|
|
10
11
|
"bin/*"
|
|
@@ -17,10 +18,10 @@
|
|
|
17
18
|
"lint": "eslint --ignore-path .gitignore --ext .js,.ts .",
|
|
18
19
|
"lint:fix": "yarn lint --fix",
|
|
19
20
|
"setup": "yarn && yarn build",
|
|
20
|
-
"test": "jest",
|
|
21
|
-
"test:cov": "jest --collectCoverage",
|
|
22
|
-
"test:watch": "jest --coverage=false --notify --watch --onlyChanged",
|
|
23
|
-
"test:debug": "env DEBUG=\"${DEBUG:-*teraslice*}\" jest --detectOpenHandles --coverage=false --runInBand",
|
|
21
|
+
"test": "NODE_OPTIONS='--experimental-vm-modules' jest",
|
|
22
|
+
"test:cov": "NODE_OPTIONS='--experimental-vm-modules' jest --collectCoverage",
|
|
23
|
+
"test:watch": "NODE_OPTIONS='--experimental-vm-modules' jest --coverage=false --notify --watch --onlyChanged",
|
|
24
|
+
"test:debug": "NODE_OPTIONS='--experimental-vm-modules' env DEBUG=\"${DEBUG:-*teraslice*}\" jest --detectOpenHandles --coverage=false --runInBand",
|
|
24
25
|
"check": "yarn run lint && yarn run test",
|
|
25
26
|
"clean": "rimraf dist coverage",
|
|
26
27
|
"prepublishOnly": "yarn run clean && yarn run build"
|
|
@@ -50,20 +51,21 @@
|
|
|
50
51
|
"yargs": "^17.2.1"
|
|
51
52
|
},
|
|
52
53
|
"devDependencies": {
|
|
53
|
-
"@terascope/eslint-config": "^0.
|
|
54
|
-
"@types/jest": "^
|
|
55
|
-
"@types/
|
|
54
|
+
"@terascope/eslint-config": "^0.8.0",
|
|
55
|
+
"@types/jest": "^29.5.12",
|
|
56
|
+
"@types/multi-progress": "^2.0.6",
|
|
57
|
+
"@types/node": "^22.0.2",
|
|
56
58
|
"@types/stream-buffers": "^3.0.4",
|
|
57
59
|
"@types/tmp": "^0.2.1",
|
|
58
60
|
"eslint": "^8.1.0",
|
|
59
|
-
"jest": "^
|
|
61
|
+
"jest": "^29.7.0",
|
|
60
62
|
"jest-extended": "^4.0.2",
|
|
61
63
|
"nock": "^13.0.2",
|
|
62
64
|
"node-notifier": "^10.0.0",
|
|
63
65
|
"rimraf": "^5.0.7",
|
|
64
66
|
"stream-buffers": "^3.0.0",
|
|
65
|
-
"tmp": "0.2.
|
|
66
|
-
"ts-jest": "^
|
|
67
|
+
"tmp": "0.2.3",
|
|
68
|
+
"ts-jest": "^29.2.4",
|
|
67
69
|
"typescript": "^4.4.3"
|
|
68
70
|
}
|
|
69
71
|
}
|