dugite 1.110.0 → 2.1.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 CHANGED
@@ -12,6 +12,12 @@ Add it to your project:
12
12
  > npm install dugite
13
13
  ```
14
14
 
15
+ or
16
+
17
+ ```
18
+ > yarn add dugite
19
+ ```
20
+
15
21
  Then reference it in your application:
16
22
 
17
23
  ```js
@@ -19,7 +25,7 @@ import { GitProcess, GitError, IGitResult } from 'dugite'
19
25
 
20
26
  const pathToRepository = 'C:/path/to/git/repository/'
21
27
 
22
- const result = await GitProcess.exec([ 'status' ], pathToRepository)
28
+ const result = await GitProcess.exec(['status'], pathToRepository)
23
29
  if (result.exitCode === 0) {
24
30
  const output = result.stdout
25
31
  // do some things with the output
@@ -31,16 +37,16 @@ if (result.exitCode === 0) {
31
37
 
32
38
  ### Features
33
39
 
34
- - make it easy to work with Git repositories
35
- - use the same commands as you would in a shell
36
- - access to the full set of commands, options and formatting that Git core uses
37
- - access to the latest features of Git
40
+ - make it easy to work with Git repositories
41
+ - use the same commands as you would in a shell
42
+ - access to the full set of commands, options and formatting that Git core uses
43
+ - access to the latest features of Git
38
44
 
39
45
  ### Supported Platforms
40
46
 
41
- - Windows 7 and later
42
- - macOS 10.9 and up
43
- - Linux (tested on Ubuntu Precise/Trusty and Fedora 24)
47
+ - Windows 7 and later
48
+ - macOS 10.9 and up
49
+ - Linux (tested on Ubuntu Precise/Trusty and Fedora 24)
44
50
 
45
51
  ### Status
46
52
 
@@ -52,7 +58,7 @@ If you are interested in getting involved with this project, refer to the [CONTR
52
58
 
53
59
  As this is under active development, the roadmap is also subject to change. Some ideas:
54
60
 
55
- - authentication support in-the-box
56
- - make environment setup easier to override
57
- - API additions for common tasks such as parsing output
58
- - error handling improvements
61
+ - authentication support in-the-box
62
+ - make environment setup easier to override
63
+ - API additions for common tasks such as parsing output
64
+ - error handling improvements
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RepositoryDoesNotExistErrorCode = exports.GitNotFoundErrorCode = exports.GitErrorRegexes = exports.GitError = void 0;
3
4
  /** The git errors which can be parsed from failed git commands. */
4
5
  var GitError;
5
6
  (function (GitError) {
@@ -126,7 +127,7 @@ exports.GitErrorRegexes = {
126
127
  'error: cannot (pull with rebase|rebase): You have unstaged changes\\.\n\\s*error: [Pp]lease commit or stash them\\.': GitError.RebaseWithLocalChanges,
127
128
  'error: commit (.+) is a merge but no -m option was given': GitError.MergeCommitNoMainlineOption,
128
129
  'fatal: detected dubious ownership in repository at (.+)': GitError.UnsafeDirectory,
129
- "fatal: path '(.+)' exists on disk, but not in '(.+)'": GitError.PathExistsButNotInRef
130
+ "fatal: path '(.+)' exists on disk, but not in '(.+)'": GitError.PathExistsButNotInRef,
130
131
  };
131
132
  /**
132
133
  * The error code for when git cannot be found. This most likely indicates a
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../lib/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../lib/errors.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupEnvironment = void 0;
3
4
  const path = require("path");
4
5
  function resolveEmbeddedGitDir() {
5
6
  if (process.platform === 'darwin' ||
@@ -82,7 +83,7 @@ function setupEnvironment(environmentVariables) {
82
83
  }
83
84
  const env = Object.assign({}, process.env, {
84
85
  GIT_EXEC_PATH: resolveGitExecPath(),
85
- PATH: envPath
86
+ PATH: envPath,
86
87
  }, environmentVariables);
87
88
  if (process.platform === 'win32') {
88
89
  // while reading the environment variable is case-insensitive
@@ -1 +1 @@
1
- {"version":3,"file":"git-environment.js","sourceRoot":"","sources":["../../lib/git-environment.ts"],"names":[],"mappings":";;AAAA,6BAA4B;AAE5B,SAAS,qBAAqB;IAC5B,IACE,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC7B,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC5B,OAAO,CAAC,QAAQ,KAAK,SAAS;QAC9B,OAAO,CAAC,QAAQ,KAAK,OAAO,EAC5B;QACA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,OAAO,IAAI;aACR,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;aACrC,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAA;KAChE;IACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AACvE,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa;IACpB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,EAAE;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;KACrD;SAAM;QACL,OAAO,qBAAqB,EAAE,CAAA;KAC/B;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;KAC3C;SAAM;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;KACvC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB;IACzB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,EAAE;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;KAC/C;IACD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE;YAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;SAC3D;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;KAC3D;SAAM;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;KAChD;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAC9B,oBAAuC;IAEvC,MAAM,WAAW,GAAG,gBAAgB,EAAE,CAAA;IAEtC,IAAI,OAAO,GAAW,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IAC5C,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAE9B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE;YAC1B,OAAO,GAAG,GAAG,MAAM,kBAAkB,MAAM,uBAAuB,OAAO,EAAE,CAAA;SAC5E;aAAM;YACL,OAAO,GAAG,GAAG,MAAM,kBAAkB,MAAM,uBAAuB,OAAO,EAAE,CAAA;SAC5E;KACF;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CACvB,EAAE,EACF,OAAO,CAAC,GAAG,EACX;QACE,aAAa,EAAE,kBAAkB,EAAE;QACnC,IAAI,EAAE,OAAO;KACd,EACD,oBAAoB,CACrB,CAAA;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,6DAA6D;QAC7D,8DAA8D;QAC9D,4DAA4D;QAC5D,EAAE;QACF,sDAAsD;QACtD,IAAI,GAAG,CAAC,IAAI,EAAE;YACZ,OAAO,GAAG,CAAC,IAAI,CAAA;SAChB;KACF;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QACjE,kDAAkD;QAClD,2CAA2C;QAC3C,MAAM,WAAW,GAAG,GAAG,MAAM,2BAA2B,CAAA;QACxD,GAAG,CAAC,gBAAgB,GAAG,WAAW,CAAA;KACnC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,uDAAuD;QACvD,uDAAuD;QACvD,wDAAwD;QACxD,GAAG,CAAC,MAAM,GAAG,MAAM,CAAA;QAEnB,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE;YACnD,mEAAmE;YACnE,4DAA4D;YAC5D,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAA;YACvC,MAAM,WAAW,GAAG,GAAG,OAAO,iBAAiB,CAAA;YAC/C,GAAG,CAAC,cAAc,GAAG,WAAW,CAAA;SACjC;KACF;IAED,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAA;AAC7B,CAAC;AA5DD,4CA4DC"}
1
+ {"version":3,"file":"git-environment.js","sourceRoot":"","sources":["../../lib/git-environment.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { GitError } from './errors';
3
4
  import { ChildProcess } from 'child_process';
4
5
  /** The result of shelling out to git. */
@@ -20,7 +21,7 @@ export interface IGitSpawnExecutionOptions {
20
21
  * set as environment variables before executing the git
21
22
  * process.
22
23
  */
23
- readonly env?: Object;
24
+ readonly env?: object;
24
25
  }
25
26
  /**
26
27
  * A set of configuration options that can be passed when
@@ -32,7 +33,7 @@ export interface IGitExecutionOptions {
32
33
  * set as environment variables before executing the git
33
34
  * process.
34
35
  */
35
- readonly env?: Object;
36
+ readonly env?: object;
36
37
  /**
37
38
  * An optional string or buffer which will be written to
38
39
  * the child process stdin stream immediately immediately
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
4
  return new (P || (P = Promise))(function (resolve, reject) {
4
5
  function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
6
  function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
9
  });
9
10
  };
10
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GitTaskCancelResult = exports.GitProcess = void 0;
11
13
  const fs = require("fs");
12
14
  const process_1 = require("process");
13
15
  const child_process_1 = require("child_process");
@@ -35,12 +37,12 @@ class GitProcess {
35
37
  if (options && options.env) {
36
38
  customEnv = options.env;
37
39
  }
38
- const { env, gitLocation } = git_environment_1.setupEnvironment(customEnv);
40
+ const { env, gitLocation } = (0, git_environment_1.setupEnvironment)(customEnv);
39
41
  const spawnArgs = {
40
42
  env,
41
- cwd: path
43
+ cwd: path,
42
44
  };
43
- const spawnedProcess = child_process_1.spawn(gitLocation, args, spawnArgs);
45
+ const spawnedProcess = (0, child_process_1.spawn)(gitLocation, args, spawnArgs);
44
46
  ignoreClosedInputStream(spawnedProcess);
45
47
  return spawnedProcess;
46
48
  }
@@ -82,7 +84,7 @@ class GitProcess {
82
84
  if (options && options.env) {
83
85
  customEnv = options.env;
84
86
  }
85
- const { env, gitLocation } = git_environment_1.setupEnvironment(customEnv);
87
+ const { env, gitLocation } = (0, git_environment_1.setupEnvironment)(customEnv);
86
88
  // Explicitly annotate opts since typescript is unable to infer the correct
87
89
  // signature for execFile when options is passed as an opaque hash. The type
88
90
  // definition for execFile currently infers based on the encoding parameter
@@ -92,9 +94,9 @@ class GitProcess {
92
94
  cwd: path,
93
95
  encoding: 'utf8',
94
96
  maxBuffer: options ? options.maxBuffer : 10 * 1024 * 1024,
95
- env
97
+ env,
96
98
  };
97
- const spawnedProcess = child_process_1.execFile(gitLocation, args, execOptions, function (err, stdout, stderr) {
99
+ const spawnedProcess = (0, child_process_1.execFile)(gitLocation, args, execOptions, function (err, stdout, stderr) {
98
100
  result.updateProcessEnded();
99
101
  if (!err) {
100
102
  resolve({ stdout, stderr, exitCode: 0 });
@@ -142,9 +144,14 @@ class GitProcess {
142
144
  });
143
145
  pidResolve(spawnedProcess.pid);
144
146
  ignoreClosedInputStream(spawnedProcess);
145
- if (options && options.stdin !== undefined) {
147
+ if (options && options.stdin !== undefined && spawnedProcess.stdin) {
146
148
  // See https://github.com/nodejs/node/blob/7b5ffa46fe4d2868c1662694da06eb55ec744bde/test/parallel/test-stdin-pipe-large.js
147
- spawnedProcess.stdin.end(options.stdin, options.stdinEncoding);
149
+ if (options.stdinEncoding) {
150
+ spawnedProcess.stdin.end(options.stdin, options.stdinEncoding);
151
+ }
152
+ else {
153
+ spawnedProcess.stdin.end(options.stdin);
154
+ }
148
155
  }
149
156
  if (options && options.processCallback) {
150
157
  options.processCallback(spawnedProcess);
@@ -190,7 +197,7 @@ exports.GitProcess = GitProcess;
190
197
  *
191
198
  * See https://github.com/desktop/desktop/pull/4027#issuecomment-366213276
192
199
  */
193
- function ignoreClosedInputStream(process) {
200
+ function ignoreClosedInputStream({ stdin }) {
194
201
  // If Node fails to spawn due to a runtime error (EACCESS, EAGAIN, etc)
195
202
  // it will not setup the stdio streams, see
196
203
  // https://github.com/nodejs/node/blob/v10.16.0/lib/internal/child_process.js#L342-L354
@@ -198,10 +205,10 @@ function ignoreClosedInputStream(process) {
198
205
  // the synchronous path so if we attempts to call `.on` on `.stdin`
199
206
  // (which is undefined) that error would be thrown before the underlying
200
207
  // error.
201
- if (!process.stdin) {
208
+ if (!stdin) {
202
209
  return;
203
210
  }
204
- process.stdin.on('error', err => {
211
+ stdin.on('error', err => {
205
212
  const code = err.code;
206
213
  // Is the error one that we'd expect from the input stream being
207
214
  // closed, i.e. EPIPE on macOS and EOF on Windows. We've also
@@ -218,7 +225,7 @@ function ignoreClosedInputStream(process) {
218
225
  //
219
226
  // "For all EventEmitter objects, if an 'error' event handler is not
220
227
  // provided, the error will be thrown"
221
- if (process.stdin.listeners('error').length <= 1) {
228
+ if (stdin.listeners('error').length <= 1) {
222
229
  throw err;
223
230
  }
224
231
  });
@@ -249,7 +256,7 @@ class GitTask {
249
256
  return GitTaskCancelResult.noProcessIdDefined;
250
257
  }
251
258
  try {
252
- process_1.kill(pid);
259
+ (0, process_1.kill)(pid);
253
260
  return GitTaskCancelResult.successfulCancel;
254
261
  }
255
262
  catch (e) { }
@@ -1 +1 @@
1
- {"version":3,"file":"git-process.js","sourceRoot":"","sources":["../../lib/git-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-process.js","sourceRoot":"","sources":["../../lib/git-process.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { GitProcess, IGitResult, IGitExecutionOptions, IGitTask, GitTaskCancelResult } from './git-process';
2
- export { GitError, RepositoryDoesNotExistErrorCode, GitNotFoundErrorCode } from './errors';
1
+ export { GitProcess, IGitResult, IGitExecutionOptions, IGitTask, GitTaskCancelResult, } from './git-process';
2
+ export { GitError, RepositoryDoesNotExistErrorCode, GitNotFoundErrorCode, } from './errors';
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GitNotFoundErrorCode = exports.RepositoryDoesNotExistErrorCode = exports.GitError = exports.GitTaskCancelResult = exports.GitProcess = void 0;
3
4
  var git_process_1 = require("./git-process");
4
- exports.GitProcess = git_process_1.GitProcess;
5
- exports.GitTaskCancelResult = git_process_1.GitTaskCancelResult;
5
+ Object.defineProperty(exports, "GitProcess", { enumerable: true, get: function () { return git_process_1.GitProcess; } });
6
+ Object.defineProperty(exports, "GitTaskCancelResult", { enumerable: true, get: function () { return git_process_1.GitTaskCancelResult; } });
6
7
  var errors_1 = require("./errors");
7
- exports.GitError = errors_1.GitError;
8
- exports.RepositoryDoesNotExistErrorCode = errors_1.RepositoryDoesNotExistErrorCode;
9
- exports.GitNotFoundErrorCode = errors_1.GitNotFoundErrorCode;
8
+ Object.defineProperty(exports, "GitError", { enumerable: true, get: function () { return errors_1.GitError; } });
9
+ Object.defineProperty(exports, "RepositoryDoesNotExistErrorCode", { enumerable: true, get: function () { return errors_1.RepositoryDoesNotExistErrorCode; } });
10
+ Object.defineProperty(exports, "GitNotFoundErrorCode", { enumerable: true, get: function () { return errors_1.GitNotFoundErrorCode; } });
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;AAAA,6CAMsB;AALpB,mCAAA,UAAU,CAAA;AAIV,4CAAA,mBAAmB,CAAA;AAErB,mCAA0F;AAAjF,4BAAA,QAAQ,CAAA;AAAE,mDAAA,+BAA+B,CAAA;AAAE,wCAAA,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;AAAA,6CAMsB;AALpB,yGAAA,UAAU,OAAA;AAIV,kHAAA,mBAAmB,OAAA;AAErB,mCAIiB;AAHf,kGAAA,QAAQ,OAAA;AACR,yHAAA,+BAA+B,OAAA;AAC/B,8GAAA,oBAAoB,OAAA"}
package/package.json CHANGED
@@ -1,26 +1,26 @@
1
1
  {
2
2
  "name": "dugite",
3
- "version": "1.110.0",
3
+ "version": "2.1.0",
4
4
  "description": "Elegant bindings for Git",
5
5
  "main": "./build/lib/index.js",
6
6
  "typings": "./build/lib/index.d.ts",
7
7
  "scripts": {
8
8
  "clean": "rimraf build",
9
- "build": "npm run clean && tsc -p ./tsconfig.json && tsc -p ./examples/tsconfig.json",
10
- "prepack": "npm run build && npm run test",
9
+ "build": "yarn clean && tsc -p ./tsconfig.json && tsc -p ./examples/tsconfig.json",
10
+ "prepack": "yarn build && yarn test",
11
11
  "postpublish": "git push --follow-tags",
12
- "test": "npm run test:fast && npm run test:slow && npm run test:external",
12
+ "test": "yarn test:fast && yarn test:slow && yarn test:external",
13
13
  "test:fast": "cross-env LOCAL_GIT_DIRECTORY=./git/ jest --runInBand --silent --config ./jest.fast.config.js",
14
14
  "test:slow": "cross-env LOCAL_GIT_DIRECTORY=./git/ jest --runInBand --silent --config ./jest.slow.config.js",
15
15
  "test:external": "jest --runInBand --silent --config ./jest.external.config.js",
16
+ "download-git": "node ./script/download-git.js",
16
17
  "postinstall": "node ./script/download-git.js",
17
18
  "prettify": "prettier \"{examples,lib,script,test}/**/*.ts\" --write",
18
19
  "is-it-pretty": "prettier --check \"{examples,lib,script,test}/**/*.ts\"",
19
20
  "update-embedded-git": "node ./script/update-embedded-git.js"
20
21
  },
21
22
  "engines": {
22
- "node": ">= 6",
23
- "npm": ">= 3"
23
+ "node": ">= 14"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",
@@ -33,28 +33,24 @@
33
33
  },
34
34
  "homepage": "https://github.com/desktop/dugite#readme",
35
35
  "dependencies": {
36
- "checksum": "^0.1.1",
37
- "got": "^9.6.0",
38
- "mkdirp": "^0.5.1",
39
36
  "progress": "^2.0.3",
40
- "rimraf": "^2.5.4",
41
- "tar": "^4.4.7"
37
+ "tar": "^6.1.11"
42
38
  },
43
39
  "devDependencies": {
44
- "@types/checksum": "^0.1.30",
45
- "@types/got": "^9.6.0",
46
- "@types/jest": "^24.0.0",
40
+ "@types/jest": "^28.1.7",
47
41
  "@types/mkdirp": "^0.5.2",
48
42
  "@types/node": "^11.9.0",
49
43
  "@types/progress": "^2.0.1",
50
44
  "@types/rimraf": "2.0.2",
45
+ "@types/tar": "^6.1.2",
51
46
  "byline": "^5.0.0",
52
47
  "cross-env": "^5.2.0",
53
48
  "find-git-exec": "0.0.1-alpha.2",
54
- "jest": "^24.1.0",
55
- "prettier": "^1.15.2",
49
+ "jest": "^28.1.3",
50
+ "prettier": "^2.7.1",
51
+ "rimraf": "^2.5.4",
56
52
  "temp": "^0.9.0",
57
- "ts-jest": "^24.0.0",
58
- "typescript": "^3.1.6"
53
+ "ts-jest": "^28.0.8",
54
+ "typescript": "^4.7.4"
59
55
  }
60
56
  }
@@ -1,56 +1,37 @@
1
1
  const fs = require('fs')
2
2
 
3
- const got = require('got')
4
3
  const ProgressBar = require('progress')
5
- const mkdirp = require('mkdirp')
6
- const checksum = require('checksum')
7
- const rimraf = require('rimraf')
8
4
  const tar = require('tar')
9
- const zlib = require('zlib')
5
+ const https = require('https')
6
+ const { createHash } = require('crypto')
7
+ const { rm, mkdir, createReadStream, createWriteStream, existsSync } = require('fs')
10
8
 
11
9
  const config = require('./config')()
12
10
 
13
- function extract(source, callback) {
14
- const extractor = tar
15
- .extract({ cwd: config.outputPath })
16
- .on('error', function(error) {
17
- callback(error)
18
- })
19
- .on('end', function() {
20
- callback()
21
- })
22
-
23
- fs.createReadStream(source)
24
- .on('error', function(error) {
25
- callback(error)
26
- })
27
- .pipe(zlib.Gunzip())
28
- .pipe(extractor)
29
- }
30
-
31
11
  const verifyFile = function(file, callback) {
32
- checksum.file(file, { algorithm: 'sha256' }, (_, hash) => {
12
+ const h = createHash('sha256').on('finish', () => {
13
+ const hash = h.digest('hex')
33
14
  const match = hash === config.checksum
34
-
35
15
  if (!match) {
36
16
  console.log(`Validation failed. Expected '${config.checksum}' but got '${hash}'`)
37
17
  }
38
-
39
18
  callback(match)
40
19
  })
20
+
21
+ createReadStream(file).pipe(h)
41
22
  }
42
23
 
43
24
  const unpackFile = function(file) {
44
- extract(file, function(error) {
45
- if (error) {
46
- console.log('Unable to extract archive, aborting...', error)
47
- process.exit(1)
48
- }
25
+ tar.x({ cwd: config.outputPath, file }).catch(e => {
26
+ console.log('Unable to extract archive, aborting...', error)
27
+ process.exit(1)
49
28
  })
50
29
  }
51
30
 
52
- const downloadAndUnpack = () => {
53
- console.log(`Downloading Git from: ${config.source}`)
31
+ const downloadAndUnpack = (url, isFollowingRedirect) => {
32
+ if (!isFollowingRedirect) {
33
+ console.log(`Downloading Git from: ${url}`)
34
+ }
54
35
 
55
36
  const options = {
56
37
  headers: {
@@ -60,33 +41,35 @@ const downloadAndUnpack = () => {
60
41
  secureProtocol: 'TLSv1_2_method'
61
42
  }
62
43
 
63
- const client = got.stream(config.source, options)
64
-
65
- client.pipe(fs.createWriteStream(config.tempFile))
44
+ const req = https.get(url, options)
66
45
 
67
- client.on('error', function(error) {
46
+ req.on('error', function(error) {
68
47
  if (error.code === 'ETIMEDOUT') {
69
48
  console.log(
70
- `A timeout has occurred while downloading '${config.source}' - check ` +
49
+ `A timeout has occurred while downloading '${url}' - check ` +
71
50
  `your internet connection and try again. If you are using a proxy, ` +
72
51
  `make sure that the HTTP_PROXY and HTTPS_PROXY environment variables are set.`,
73
52
  error
74
53
  )
75
54
  } else {
76
- console.log(`Error raised while downloading ${config.source}`, error)
55
+ console.log(`Error raised while downloading ${url}`, error)
77
56
  }
78
57
  process.exit(1)
79
58
  })
80
59
 
81
- client.on('response', function(res) {
60
+ req.on('response', function(res) {
61
+ if ([301, 302].includes(res.statusCode) && res.headers['location']) {
62
+ downloadAndUnpack(res.headers.location, true)
63
+ return
64
+ }
65
+
82
66
  if (res.statusCode !== 200) {
83
- console.log(`Non-200 response returned from ${config.source} - (${res.statusCode})`)
67
+ console.log(`Non-200 response returned from ${url} - (${res.statusCode})`)
84
68
  process.exit(1)
85
69
  }
86
70
 
87
71
  const len = parseInt(res.headers['content-length'], 10)
88
72
 
89
- console.log()
90
73
  const bar = new ProgressBar('Downloading Git [:bar] :percent :etas', {
91
74
  complete: '=',
92
75
  incomplete: ' ',
@@ -94,13 +77,10 @@ const downloadAndUnpack = () => {
94
77
  total: len
95
78
  })
96
79
 
97
- res.on('data', function(chunk) {
98
- bar.tick(chunk.length)
99
- })
80
+ res.pipe(createWriteStream(config.tempFile))
100
81
 
82
+ res.on('data', c => bar.tick(c.length))
101
83
  res.on('end', function() {
102
- console.log('\n')
103
-
104
84
  verifyFile(config.tempFile, valid => {
105
85
  if (valid) {
106
86
  unpackFile(config.tempFile)
@@ -121,34 +101,32 @@ if (config.source === '') {
121
101
  process.exit(0)
122
102
  }
123
103
 
124
- if (fs.existsSync(config.outputPath)) {
125
- try {
126
- rimraf.sync(config.outputPath)
127
- } catch (err) {
128
- console.error(err)
129
- return
130
- }
131
- }
132
-
133
- mkdirp(config.outputPath, function(error) {
104
+ rm(config.outputPath, { recursive: true, force: true }, error => {
134
105
  if (error) {
135
- console.log(`Unable to create directory at ${config.outputPath}`, error)
106
+ console.log(`Unable to clean directory at ${config.outputPath}`, error)
136
107
  process.exit(1)
137
108
  }
138
109
 
139
- const tempFile = config.tempFile
110
+ mkdir(config.outputPath, { recursive: true }, function(error) {
111
+ if (error) {
112
+ console.log(`Unable to create directory at ${config.outputPath}`, error)
113
+ process.exit(1)
114
+ }
140
115
 
141
- if (fs.existsSync(tempFile)) {
142
- verifyFile(tempFile, valid => {
143
- if (valid) {
144
- unpackFile(tempFile)
145
- } else {
146
- rimraf.sync(tempFile)
147
- downloadAndUnpack()
148
- }
149
- })
150
- return
151
- }
116
+ const tempFile = config.tempFile
117
+
118
+ if (existsSync(tempFile)) {
119
+ verifyFile(tempFile, valid => {
120
+ if (valid) {
121
+ unpackFile(tempFile)
122
+ } else {
123
+ rmSync(tempFile)
124
+ downloadAndUnpack(config.source)
125
+ }
126
+ })
127
+ return
128
+ }
152
129
 
153
- downloadAndUnpack()
130
+ downloadAndUnpack(config.source)
131
+ })
154
132
  })
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "win32-x64": {
3
- "name": "dugite-native-v2.35.4-ef7ff6e-windows-x64.tar.gz",
4
- "url": "https://github.com/desktop/dugite-native/releases/download/v2.35.4/dugite-native-v2.35.4-ef7ff6e-windows-x64.tar.gz",
5
- "checksum": "0ae184b6be3f6b64bf1dbf57523c99e06bb8db2c7dfcb067811da454dcd7391b"
3
+ "name": "dugite-native-v2.35.5-3767269-windows-x64.tar.gz",
4
+ "url": "https://github.com/desktop/dugite-native/releases/download/v2.35.5/dugite-native-v2.35.5-3767269-windows-x64.tar.gz",
5
+ "checksum": "ba646318727b3ba5f588c9d8c88a7f8018cf5e9babfc095d00cbefa26b1ca3e1"
6
6
  },
7
7
  "win32-ia32": {
8
- "name": "dugite-native-v2.35.4-ef7ff6e-windows-x86.tar.gz",
9
- "url": "https://github.com/desktop/dugite-native/releases/download/v2.35.4/dugite-native-v2.35.4-ef7ff6e-windows-x86.tar.gz",
10
- "checksum": "1c4d922d00c43fb4c423bd964b2d140e597ed0e6f6a8e3a0c312a407577fc685"
8
+ "name": "dugite-native-v2.35.5-3767269-windows-x86.tar.gz",
9
+ "url": "https://github.com/desktop/dugite-native/releases/download/v2.35.5/dugite-native-v2.35.5-3767269-windows-x86.tar.gz",
10
+ "checksum": "a850cb5af537f988712432beaae762e9aa419123608ec90ee1af637a3a4a2cdf"
11
11
  },
12
12
  "darwin-x64": {
13
- "name": "dugite-native-v2.35.4-ef7ff6e-macOS-x64.tar.gz",
14
- "url": "https://github.com/desktop/dugite-native/releases/download/v2.35.4/dugite-native-v2.35.4-ef7ff6e-macOS-x64.tar.gz",
15
- "checksum": "5a21720a791af01396476b1298f209b2de38dd7ab7d99132e73d8e3300d17679"
13
+ "name": "dugite-native-v2.35.5-3767269-macOS-x64.tar.gz",
14
+ "url": "https://github.com/desktop/dugite-native/releases/download/v2.35.5/dugite-native-v2.35.5-3767269-macOS-x64.tar.gz",
15
+ "checksum": "3be64ae9498eda86fe0e6d35338df5f6d208a4b9289dc464a1bc64f44a576b0f"
16
16
  },
17
17
  "darwin-arm64": {
18
- "name": "dugite-native-v2.35.4-ef7ff6e-macOS-arm64.tar.gz",
19
- "url": "https://github.com/desktop/dugite-native/releases/download/v2.35.4/dugite-native-v2.35.4-ef7ff6e-macOS-arm64.tar.gz",
20
- "checksum": "9f6fbcff96d8597506120e7c9b0d54980c4c9ce438b7fd36c009976710332272"
18
+ "name": "dugite-native-v2.35.5-3767269-macOS-arm64.tar.gz",
19
+ "url": "https://github.com/desktop/dugite-native/releases/download/v2.35.5/dugite-native-v2.35.5-3767269-macOS-arm64.tar.gz",
20
+ "checksum": "3c164a36eda9933a21540c98a909a45cdaa28ab4588743c5f8d0678fc890f776"
21
21
  },
22
22
  "linux-x64": {
23
- "name": "dugite-native-v2.35.4-ef7ff6e-ubuntu.tar.gz",
24
- "url": "https://github.com/desktop/dugite-native/releases/download/v2.35.4/dugite-native-v2.35.4-ef7ff6e-ubuntu.tar.gz",
25
- "checksum": "c747e0d8860c4de0c8bac10b23c87ec1b43c7d9c9ccbf466d4ecb03f473a81d3"
23
+ "name": "dugite-native-v2.35.5-3767269-ubuntu.tar.gz",
24
+ "url": "https://github.com/desktop/dugite-native/releases/download/v2.35.5/dugite-native-v2.35.5-3767269-ubuntu.tar.gz",
25
+ "checksum": "9a52b5a6c5b306403519d75fa9910bdd218ed5465d14135a4e0383a211e91257"
26
26
  }
27
27
  }
@@ -0,0 +1,27 @@
1
+ const https = require('https')
2
+
3
+ /** Quick-and-dirty async https (only) GET request */
4
+ const get = url => {
5
+ const options = {
6
+ headers: { 'User-Agent': 'dugite' },
7
+ secureProtocol: 'TLSv1_2_method'
8
+ }
9
+
10
+ return new Promise((resolve, reject) => {
11
+ https.get(url, options).on('response', res => {
12
+ if ([301, 302].includes(res.statusCode)) {
13
+ get(res.headers.location).then(resolve, reject)
14
+ } else if (res.statusCode !== 200) {
15
+ reject(new Error(`Got ${res.statusCode} from ${url}`))
16
+ } else {
17
+ const chunks = []
18
+ res.on('data', chunk => chunks.push(chunk))
19
+ res.on('end', () => {
20
+ resolve(Buffer.concat(chunks).toString('utf8'))
21
+ })
22
+ }
23
+ })
24
+ })
25
+ }
26
+
27
+ module.exports = { get }