@mikeyt23/node-cli-utils 2.0.0-beta.1 → 2.0.0-beta.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.
Files changed (51) hide show
  1. package/dist/cjs/GitUtility.d.ts +7 -0
  2. package/dist/cjs/GitUtility.d.ts.map +1 -0
  3. package/dist/cjs/GitUtility.js +49 -0
  4. package/dist/cjs/TarballUtility.d.ts +17 -7
  5. package/dist/cjs/TarballUtility.d.ts.map +1 -1
  6. package/dist/cjs/TarballUtility.js +18 -24
  7. package/dist/cjs/certUtils.d.ts +53 -17
  8. package/dist/cjs/certUtils.d.ts.map +1 -1
  9. package/dist/cjs/certUtils.js +175 -111
  10. package/dist/cjs/dbMigrationUtils.js +44 -54
  11. package/dist/cjs/dotnetUtils.d.ts.map +1 -1
  12. package/dist/cjs/dotnetUtils.js +4 -2
  13. package/dist/cjs/esmSpecific.d.mts +5 -0
  14. package/dist/cjs/esmSpecific.d.mts.map +1 -1
  15. package/dist/cjs/esmSpecific.mjs +6 -1
  16. package/dist/cjs/generalUtils.d.ts +268 -26
  17. package/dist/cjs/generalUtils.d.ts.map +1 -1
  18. package/dist/cjs/generalUtils.js +522 -106
  19. package/dist/cjs/generalUtilsInternal.d.ts +9 -3
  20. package/dist/cjs/generalUtilsInternal.d.ts.map +1 -1
  21. package/dist/cjs/generalUtilsInternal.js +159 -59
  22. package/dist/cjs/hostsUtils.d.ts +16 -0
  23. package/dist/cjs/hostsUtils.d.ts.map +1 -0
  24. package/dist/cjs/hostsUtils.js +82 -0
  25. package/dist/cjs/runWhileParentAlive.js +7 -9
  26. package/dist/esm/GitUtility.d.ts +7 -0
  27. package/dist/esm/GitUtility.d.ts.map +1 -0
  28. package/dist/esm/GitUtility.js +43 -0
  29. package/dist/esm/TarballUtility.d.ts +17 -7
  30. package/dist/esm/TarballUtility.d.ts.map +1 -1
  31. package/dist/esm/TarballUtility.js +21 -25
  32. package/dist/esm/certUtils.d.ts +53 -17
  33. package/dist/esm/certUtils.d.ts.map +1 -1
  34. package/dist/esm/certUtils.js +172 -86
  35. package/dist/esm/dbMigrationUtils.js +45 -55
  36. package/dist/esm/dotnetUtils.d.ts.map +1 -1
  37. package/dist/esm/dotnetUtils.js +4 -2
  38. package/dist/esm/esmSpecific.d.mts +5 -0
  39. package/dist/esm/esmSpecific.d.mts.map +1 -1
  40. package/dist/esm/esmSpecific.mjs +6 -1
  41. package/dist/esm/generalUtils.d.ts +268 -26
  42. package/dist/esm/generalUtils.d.ts.map +1 -1
  43. package/dist/esm/generalUtils.js +490 -105
  44. package/dist/esm/generalUtilsInternal.d.ts +9 -3
  45. package/dist/esm/generalUtilsInternal.d.ts.map +1 -1
  46. package/dist/esm/generalUtilsInternal.js +150 -57
  47. package/dist/esm/hostsUtils.d.ts +16 -0
  48. package/dist/esm/hostsUtils.d.ts.map +1 -0
  49. package/dist/esm/hostsUtils.js +69 -0
  50. package/dist/esm/runWhileParentAlive.js +8 -10
  51. package/package.json +4 -2
@@ -1,4 +1,5 @@
1
- import { whichSync } from './generalUtils.js';
1
+ import fs from 'node:fs';
2
+ import { mkdirp, spawnAsync, whichSync } from './generalUtils.js';
2
3
  export interface CreateTarballOptions {
3
4
  /**
4
5
  * A list of files or directories to exclude from the tarball.
@@ -7,16 +8,25 @@ export interface CreateTarballOptions {
7
8
  excludes?: string[];
8
9
  }
9
10
  export interface TarballUnpackOptions {
10
- createDirIfNotExists?: boolean;
11
- stripComponents?: number;
12
- throwOnNonEmptyUnpackDir?: boolean;
11
+ createDirIfNotExists: boolean;
12
+ stripComponents: number;
13
+ throwOnNonEmptyUnpackDir: boolean;
14
+ }
15
+ export interface TarballUtilityDependencies {
16
+ whichSyncFn: typeof whichSync;
17
+ spawnAsyncFn: typeof spawnAsync;
18
+ statSyncFn: typeof fs.statSync;
19
+ mkdirpFn: typeof mkdirp;
13
20
  }
14
21
  /**
15
22
  * This utility class exists so we can mock the `which` dependency in unit tests without resorting to libraries that hack the import system.
16
23
  */
17
24
  export declare class TarballUtility {
18
25
  private whichSyncFn;
19
- constructor(whichSyncFn: typeof whichSync);
26
+ private spawnAsyncFn;
27
+ private statSyncFn;
28
+ private mkdirpFn;
29
+ constructor(dependencies?: Partial<TarballUtilityDependencies>);
20
30
  /**
21
31
  * Creates a gzipped tarball from a directory by spawning a process to run OS-installed `tar` to avoid pulling in npm package dependencies.
22
32
  * Note that Windows has tar since Windows 10 1803 (see https://devblogs.microsoft.com/commandline/windows10v1803/.
@@ -35,7 +45,7 @@ export declare class TarballUtility {
35
45
  * @param unpackDirectory The directory to unpack the tarball into
36
46
  * @param options The options to use when unpacking the tarball. See {@link TarballUnpackOptions}.
37
47
  */
38
- unpackTarball: (tarballPath: string, unpackDirectory: string, options?: TarballUnpackOptions) => Promise<void>;
48
+ unpackTarball: (tarballPath: string, unpackDirectory: string, options?: Partial<TarballUnpackOptions>) => Promise<void>;
39
49
  /**
40
50
  * A more opinionated version of {@link unpackTarball} that assumes you want to create the directory and strip the first directory out of the unpacked files.
41
51
  * @param tarballPath The path to the tarball to unpack
@@ -48,6 +58,6 @@ export declare class TarballUtility {
48
58
  private tryCreateDirectory;
49
59
  }
50
60
  export declare const createTarball: (directoryToTarball: string, tarballPath: string, options?: CreateTarballOptions) => Promise<void>;
51
- export declare const unpackTarball: (tarballPath: string, unpackDirectory: string, options?: TarballUnpackOptions) => Promise<void>;
61
+ export declare const unpackTarball: (tarballPath: string, unpackDirectory: string, options?: Partial<TarballUnpackOptions>) => Promise<void>;
52
62
  export declare const unpackTarballContents: (tarballPath: string, unpackDirectory: string, stripComponents?: number) => Promise<void>;
53
63
  //# sourceMappingURL=TarballUtility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TarballUtility.d.ts","sourceRoot":"","sources":["../../src/TarballUtility.ts"],"names":[],"mappings":"AAGA,OAAO,EAA8D,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGzG,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAkB;gBAEzB,WAAW,EAAE,OAAO,SAAS;IAIzC;;;;;;;;;OASG;IACH,aAAa,uBAA8B,MAAM,eAAe,MAAM,YAAY,oBAAoB,mBA4CrG;IAED;;;;;;OAMG;IACH,aAAa,gBAAuB,MAAM,mBAAmB,MAAM,YAAY,oBAAoB,mBA0ClG;IAED;;;;;OAKG;IACH,qBAAqB,gBAAuB,MAAM,mBAAmB,MAAM,oBAAmB,MAAM,mBAEnG;IAED,OAAO,CAAC,WAAW,CAOlB;IAED,OAAO,CAAC,aAAa,CAOpB;IAED,OAAO,CAAC,kBAAkB,CAUzB;CACF;AAID,eAAO,MAAM,aAAa,uBA5ImB,MAAM,eAAe,MAAM,YAAY,oBAAoB,kBA4IlD,CAAA;AACtD,eAAO,MAAM,aAAa,gBAxFY,MAAM,mBAAmB,MAAM,YAAY,oBAAoB,kBAwF/C,CAAA;AACtD,eAAO,MAAM,qBAAqB,gBAvCY,MAAM,mBAAmB,MAAM,oBAAmB,MAAM,kBAuChC,CAAA"}
1
+ {"version":3,"file":"TarballUtility.d.ts","sourceRoot":"","sources":["../../src/TarballUtility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,OAAO,EAAiB,MAAM,EAAmC,UAAU,EAAS,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGxH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,EAAE,OAAO,CAAA;IAC7B,eAAe,EAAE,MAAM,CAAA;IACvB,wBAAwB,EAAE,OAAO,CAAA;CAClC;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,OAAO,SAAS,CAAA;IAC7B,YAAY,EAAE,OAAO,UAAU,CAAA;IAC/B,UAAU,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAA;IAC9B,QAAQ,EAAE,OAAO,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,QAAQ,CAAe;gBAEnB,YAAY,GAAE,OAAO,CAAC,0BAA0B,CAAM;IAOlE;;;;;;;;;OASG;IACH,aAAa,uBAA8B,MAAM,eAAe,MAAM,YAAY,oBAAoB,mBAsCrG;IAED;;;;;;OAMG;IACH,aAAa,gBAAuB,MAAM,mBAAmB,MAAM,YAAY,QAAQ,oBAAoB,CAAC,mBA0C3G;IAED;;;;;OAKG;IACH,qBAAqB,gBAAuB,MAAM,mBAAmB,MAAM,oBAAmB,MAAM,mBAEnG;IAED,OAAO,CAAC,WAAW,CAQlB;IAED,OAAO,CAAC,aAAa,CAOpB;IAED,OAAO,CAAC,kBAAkB,CAMzB;CACF;AAID,eAAO,MAAM,aAAa,uBAnImB,MAAM,eAAe,MAAM,YAAY,oBAAoB,kBAmIlD,CAAA;AACtD,eAAO,MAAM,aAAa,gBArFY,MAAM,mBAAmB,MAAM,YAAY,QAAQ,oBAAoB,CAAC,kBAqFxD,CAAA;AACtD,eAAO,MAAM,qBAAqB,gBApCY,MAAM,mBAAmB,MAAM,oBAAmB,MAAM,kBAoChC,CAAA"}
@@ -1,15 +1,20 @@
1
1
  import fs from 'node:fs';
2
- import fsp from 'node:fs/promises';
3
2
  import path from 'node:path';
4
- import { mkdirp, requireString, requireValidPath, spawnAsync, trace, whichSync } from './generalUtils.js';
3
+ import { ExtendedError, mkdirp, requireString, requireValidPath, spawnAsync, trace, whichSync } from './generalUtils.js';
5
4
  import { config } from './NodeCliUtilsConfig.js';
6
5
  /**
7
6
  * This utility class exists so we can mock the `which` dependency in unit tests without resorting to libraries that hack the import system.
8
7
  */
9
8
  export class TarballUtility {
10
9
  whichSyncFn;
11
- constructor(whichSyncFn) {
12
- this.whichSyncFn = whichSyncFn;
10
+ spawnAsyncFn;
11
+ statSyncFn;
12
+ mkdirpFn;
13
+ constructor(dependencies = {}) {
14
+ this.whichSyncFn = dependencies.whichSyncFn ?? whichSync;
15
+ this.spawnAsyncFn = dependencies.spawnAsyncFn ?? spawnAsync;
16
+ this.statSyncFn = dependencies.statSyncFn ?? fs.statSync;
17
+ this.mkdirpFn = dependencies.mkdirpFn ?? mkdirp;
13
18
  }
14
19
  /**
15
20
  * Creates a gzipped tarball from a directory by spawning a process to run OS-installed `tar` to avoid pulling in npm package dependencies.
@@ -29,28 +34,23 @@ export class TarballUtility {
29
34
  if (!this.whichSyncFn('tar').location) {
30
35
  throw new Error('tar command not found - please install tar on your OS to use this method, or consider using the npm package node-tar instead');
31
36
  }
32
- if (!fs.existsSync(directoryToTarball)) {
33
- throw new Error(`directoryToTarball does not exist: ${directoryToTarball}`);
34
- }
35
37
  if (tarballPath.endsWith('.tar.gz') === false) {
36
38
  throw new Error(`tarballPath must end with '.tar.gz': ${tarballPath}`);
37
39
  }
38
40
  const directoryToTarballParentDir = path.dirname(directoryToTarball);
39
41
  const directoryToTarballName = path.basename(directoryToTarball);
40
42
  const outputDirectory = path.dirname(tarballPath);
41
- const tarballName = path.basename(tarballPath);
42
43
  if (!fs.existsSync(outputDirectory)) {
43
44
  trace(`tarballPath directory does not exist - creating '${outputDirectory}'`);
44
- await mkdirp(outputDirectory);
45
+ await this.mkdirpFn(outputDirectory);
45
46
  }
46
47
  else if (fs.existsSync(tarballPath)) {
47
- trace(`removing existing tarball '${tarballName}' before creating new one`);
48
- await fsp.unlink(tarballPath);
48
+ throw new Error(`tarballPath already exists - delete, move or rename it first: ${tarballPath}`);
49
49
  }
50
50
  const excludesArgs = mergedOptions.excludes.length > 0 ? mergedOptions.excludes.map(exclude => `--exclude=${exclude}`) : [];
51
51
  const verboseFlag = config.traceEnabled ? ['-v'] : [];
52
52
  const args = [...(verboseFlag), '-czf', tarballPath, '-C', directoryToTarballParentDir, ...excludesArgs, directoryToTarballName];
53
- const result = await spawnAsync('tar', args);
53
+ const result = await this.spawnAsyncFn('tar', args);
54
54
  if (result.code !== 0) {
55
55
  throw new Error(`tar command failed with code ${result.code}`);
56
56
  }
@@ -89,7 +89,7 @@ export class TarballUtility {
89
89
  }
90
90
  const verboseFlag = config.traceEnabled ? ['-v'] : [];
91
91
  const args = [...(verboseFlag), '-xzf', tarballPath, '-C', unpackDirectory, '--strip-components', mergedOptions.stripComponents.toString()];
92
- const result = await spawnAsync('tar', args);
92
+ const result = await this.spawnAsyncFn('tar', args);
93
93
  if (result.code !== 0) {
94
94
  throw new Error(`tar command failed with code ${result.code}`);
95
95
  }
@@ -106,38 +106,34 @@ export class TarballUtility {
106
106
  };
107
107
  isDirectory = (path) => {
108
108
  try {
109
- const stats = fs.statSync(path);
109
+ const stats = this.statSyncFn(path);
110
110
  return stats.isDirectory();
111
111
  }
112
112
  catch (err) {
113
+ trace('error checking idDirectory (returning false)', err);
113
114
  return false;
114
115
  }
115
116
  };
116
117
  dirIsNotEmpty = (dirPath) => {
117
118
  try {
118
- const stats = fs.statSync(dirPath);
119
+ const stats = this.statSyncFn(dirPath);
119
120
  return stats.isDirectory() && fs.readdirSync(dirPath).length > 0;
120
121
  }
121
122
  catch (err) {
122
- return false;
123
+ throw new ExtendedError('Error checking dirIsNotEmpty - see innerError', err);
123
124
  }
124
125
  };
125
126
  tryCreateDirectory = async (dirPath) => {
126
127
  try {
127
- await mkdirp(dirPath);
128
+ await this.mkdirpFn(dirPath);
128
129
  }
129
130
  catch (err) {
130
- if (err instanceof Error) {
131
- throw new Error(`Error creating unpackDirectory: ${err.message}`);
132
- }
133
- else {
134
- throw new Error(`Error creating unpackDirectory: ${err}`);
135
- }
131
+ throw new ExtendedError('Error creating unpackDirectory - see innerError', err);
136
132
  }
137
133
  };
138
134
  }
139
- const defaultUtil = new TarballUtility(whichSync);
135
+ const defaultUtil = new TarballUtility();
140
136
  export const createTarball = defaultUtil.createTarball;
141
137
  export const unpackTarball = defaultUtil.unpackTarball;
142
138
  export const unpackTarballContents = defaultUtil.unpackTarballContents;
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFyYmFsbFV0aWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVGFyYmFsbFV0aWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3hCLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFBO0FBQ2xDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3pHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQWdCaEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUNqQixXQUFXLENBQWtCO0lBRXJDLFlBQVksV0FBNkI7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILGFBQWEsR0FBRyxLQUFLLEVBQUUsa0JBQTBCLEVBQUUsV0FBbUIsRUFBRSxPQUE4QixFQUFFLEVBQUU7UUFDeEcsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtRQUMxRCxhQUFhLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBRXpDLE1BQU0sY0FBYyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQTtRQUV2RCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4SEFBOEgsQ0FBQyxDQUFBO1NBQ2hKO1FBRUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsa0JBQWtC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
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFyYmFsbFV0aWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVGFyYmFsbFV0aWxpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3hCLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN4SCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUF1QmhEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDakIsV0FBVyxDQUFrQjtJQUM3QixZQUFZLENBQW1CO0lBQy9CLFVBQVUsQ0FBb0I7SUFDOUIsUUFBUSxDQUFlO0lBRS9CLFlBQVksZUFBb0QsRUFBRTtRQUNoRSxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFBO1FBQ3hELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUE7UUFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUE7UUFDeEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQTtJQUNqRCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsYUFBYSxHQUFHLEtBQUssRUFBRSxrQkFBMEIsRUFBRSxXQUFtQixFQUFFLE9BQThCLEVBQUUsRUFBRTtRQUN4RyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO1FBQzFELGFBQWEsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFFekMsTUFBTSxjQUFjLEdBQUcsRUFBRSxRQUFRLEVB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
@@ -1,30 +1,66 @@
1
+ /** Control what is logged when running certUtils functions. */
2
+ export interface CertLogOptions {
3
+ logSpawnOutput: boolean;
4
+ logTraceMessages: boolean;
5
+ logElevatedPermissionsMessage: boolean;
6
+ logSuccess: boolean;
7
+ }
8
+ export interface GenerateCertOptions extends CertLogOptions {
9
+ /** The directory to write the generated cert files to. Defaults to `./cert`. */
10
+ outputDirectory: string;
11
+ }
12
+ /** Subject, thumbprint or path to the pfx file. Used with the {@link winUninstallCert} function. */
13
+ export type CertIdentifier = string | {
14
+ thumbprint: string;
15
+ } | {
16
+ pfxPath: string;
17
+ };
18
+ /** The subject or path to the pfx file. Used with the {@link winCertIsInstalled} function. */
19
+ export type CertIdentifierWithoutThumbprint = string | {
20
+ pfxPath: string;
21
+ };
22
+ /** Cert info returned by {@link winGetPfxInfo}. */
23
+ export type CertInfo = {
24
+ subject: string;
25
+ thumbprint: string;
26
+ pfxPath: string;
27
+ };
1
28
  /**
2
29
  * Wrapper function for calling openssl to generate a self-signed cert to be used for developing a local website with trusted https.
3
30
  * @param url The url to generate a cert for. This will be used as the common name (CN) in the cert as well as the filename for the generated cert files.
4
- * @param outputDirectory The directory to write the generated cert files to. Defaults to './cert'.
31
+ * @param options Options for generating the cert.
32
+ * @returns The path to the generated pfx file.
5
33
  */
6
- export declare function generateCertWithOpenSsl(url: string, outputDirectory?: string): Promise<void>;
34
+ export declare function generateCertWithOpenSsl(url: string, options?: Partial<GenerateCertOptions>): Promise<string>;
7
35
  /**
8
- * Uses Powershell to install a cert to the local machine's trusted root store. Must have admin permissions.
9
- *
10
- * If the cert is already installed, this method will do nothing.
11
- * @param urlOrCertFilename The url or cert filename to install. The url + '.pfx' or the cert filename passed must match a file that exists in the certDirectory.
12
- * @param certDirectory The directory to look for the cert file in. Defaults to './cert'.
36
+ * Uses Powershell to install a cert to the local machine's trusted root store. Must have elevated permissions.
37
+ * If the cert is already installed, this function will do nothing.
38
+ * @param pfxPath The path to the pfx file to install.
13
39
  */
14
- export declare function winInstallCert(urlOrCertFilename: string, certDirectory?: string): Promise<void>;
40
+ export declare function winInstallCert(pfxPath: string, options?: Partial<CertLogOptions>): Promise<void>;
15
41
  /**
16
- * Uses Powershell to uninstall a cert from the local machine's trusted root store. Must have admin permissions.
17
- * @param urlOrSubject The url or subject of the cert to uninstall. If the cert was installed with the winInstallCert method, this will be the url passed to that method.
42
+ * Uses Powershell to check if a cert is already installed to the local machine's trusted root store.
43
+ * Uses the subject of the cert in order to avoid false negatives from regenerating the same self-signed cert
44
+ * with the same subject but different thumbprint. Note that this method is geared towards use with certs generated
45
+ * with the {@link generateCertWithOpenSsl} function, so this may not work using subject if your subject is not precisely "`CN=<url>`".
46
+ * @param identifier The subject or path to the pfx file of the cert to check.
47
+ * @returns `true` if the cert is already installed, `false` otherwise.
18
48
  */
19
- export declare function winUninstallCert(urlOrSubject: string): Promise<void>;
49
+ export declare function winCertIsInstalled(identifier: CertIdentifierWithoutThumbprint, options?: Partial<CertLogOptions>): Promise<boolean>;
20
50
  /**
21
- * Does not actually do anything - just outputs the manual instructions for installing a cert for use by chrome on linux.
51
+ * Uses Powershell to uninstall a cert from the local machine's trusted root store. Must have elevated permissions.
52
+ * @param identifier The subject, thumbprint or path to the pfx file of the cert to uninstall.
53
+ * @param options Options for uninstalling the cert.
22
54
  */
23
- export declare function linuxInstallCert(): void;
55
+ export declare function winUninstallCert(identifier: CertIdentifier, options?: Partial<CertLogOptions>): Promise<void>;
24
56
  /**
25
- * Uses Powershell to check if a cert is already installed to the local machine's trusted root store.
26
- * @param urlOrSubject The url or subject of the cert to check. If the cert was installed with the winInstallCert method, this will be the url passed to that method.
27
- * @returns `true` if the cert is already installed, `false` otherwise.
57
+ * Uses Powershell to get info about a cert.
58
+ * @param pfxPath The path to the pfx file to get info for.
59
+ * @returns The subject, thumbprint and pfxPath of the cert.
28
60
  */
29
- export declare function winCertAlreadyInstalled(urlOrSubject: string): Promise<boolean>;
61
+ export declare function winGetPfxInfo(pfxPath: string): Promise<CertInfo>;
62
+ /**
63
+ * Does not actually do anything - just outputs the manual instructions for installing a cert for use by chrome on linux.
64
+ */
65
+ export declare function linuxInstallCert(): void;
30
66
  //# sourceMappingURL=certUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"certUtils.d.ts","sourceRoot":"","sources":["../../src/certUtils.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,GAAE,MAAiB,iBAuD5F;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE,aAAa,SAAW,iBA8BvF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,iBAY1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,SAU/B;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBpF"}
1
+ {"version":3,"file":"certUtils.d.ts","sourceRoot":"","sources":["../../src/certUtils.ts"],"names":[],"mappings":"AAqBA,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,OAAO,CAAA;IACvB,gBAAgB,EAAE,OAAO,CAAA;IACzB,6BAA6B,EAAE,OAAO,CAAA;IACtC,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,gFAAgF;IAChF,eAAe,EAAE,MAAM,CAAA;CACxB;AASD,oGAAoG;AACpG,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAElF,8FAA8F;AAC9F,MAAM,MAAM,+BAA+B,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1E,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/E;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAkElH;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,iBAwBtF;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,+BAA+B,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkCzI;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,iBA+BnG;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqBtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,SAU/B"}