@electron-forge/core-utils 7.7.0 → 7.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAS,MAAM,6BAA6B,CAAC;AAQvF,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAC9D,MAAM,MAAM,SAAS,GAAG;IAAE,UAAU,EAAE,uBAAuB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAI/H;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,uBAAuB,EAAE,SAAS,CAmBvE,CAAC;AA2BF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,OAAO,CAAC,SAAS,CA+B1D,CAAC;AAEF,eAAO,MAAM,mBAAmB,OAAc,SAAS,SAAS,cAAc,SAAS,iBAAiB,KAAG,QAAQ,MAAM,CAExH,CAAC"}
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAS,MAAM,6BAA6B,CAAC;AAQvF,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAC9D,MAAM,MAAM,SAAS,GAAG;IAAE,UAAU,EAAE,uBAAuB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAI/H;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,uBAAuB,EAAE,SAAS,CAmBvE,CAAC;AA2BF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,OAAO,CAAC,SAAS,CAmC1D,CAAC;AAEF,eAAO,MAAM,mBAAmB,OAAc,SAAS,SAAS,cAAc,SAAS,iBAAiB,KAAG,QAAQ,MAAM,CAExH,CAAC"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.spawnPackageManager = exports.resolvePackageManager = exports.PACKAGE_MANAGERS = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
7
8
  const cross_spawn_promise_1 = require("@malept/cross-spawn-promise");
8
9
  const chalk_1 = __importDefault(require("chalk"));
9
10
  const debug_1 = __importDefault(require("debug"));
@@ -72,8 +73,12 @@ function pmFromUserAgent() {
72
73
  */
73
74
  const resolvePackageManager = async () => {
74
75
  const executingPM = pmFromUserAgent();
76
+ let lockfilePM;
75
77
  const lockfile = await (0, find_up_1.default)(['package-lock.json', 'yarn.lock', 'pnpm-lock.yaml', 'pnpm-workspace.yaml'], { type: 'file' });
76
- const lockfilePM = (lockfile && PM_FROM_LOCKFILE[lockfile]) ?? undefined;
78
+ if (lockfile) {
79
+ const lockfileName = node_path_1.default.basename(lockfile);
80
+ lockfilePM = PM_FROM_LOCKFILE[lockfileName];
81
+ }
77
82
  const installer = process.env.NODE_INSTALLER || executingPM?.name || lockfilePM;
78
83
  // TODO(erickzhao): Remove NODE_INSTALLER environment variable for Forge 8
79
84
  if (typeof process.env.NODE_INSTALLER === 'string' && !hasWarned) {
@@ -84,7 +89,7 @@ const resolvePackageManager = async () => {
84
89
  case 'yarn':
85
90
  case 'npm':
86
91
  case 'pnpm':
87
- d(`Resolved package manager to ${installer}. (Derived from NODE_INSTALLER: ${process.env.NODE_INSTALLER}, npm_config_user_agent: ${executingPM}, lockfile: ${lockfilePM}.)`);
92
+ d(`Resolved package manager to ${installer}. (Derived from NODE_INSTALLER: ${process.env.NODE_INSTALLER}, npm_config_user_agent: ${process.env.npm_config_user_agent}, lockfile: ${lockfilePM})`);
88
93
  return { ...exports.PACKAGE_MANAGERS[installer], version: executingPM?.version };
89
94
  default:
90
95
  if (installer !== undefined) {
@@ -98,7 +103,7 @@ const resolvePackageManager = async () => {
98
103
  };
99
104
  exports.resolvePackageManager = resolvePackageManager;
100
105
  const spawnPackageManager = async (pm, args, opts) => {
101
- return (0, cross_spawn_promise_1.spawn)(pm.executable, args, opts);
106
+ return (await (0, cross_spawn_promise_1.spawn)(pm.executable, args, opts)).trim();
102
107
  };
103
108
  exports.spawnPackageManager = spawnPackageManager;
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BhY2thZ2UtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxRUFBdUY7QUFDdkYsa0RBQTBCO0FBQzFCLGtEQUEwQjtBQUMxQixzREFBNkI7QUFDN0IsOERBQXFDO0FBRXJDLE1BQU0sQ0FBQyxHQUFHLElBQUEsZUFBSyxFQUFDLGdDQUFnQyxDQUFDLENBQUM7QUFLbEQsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBRXRCOztHQUVHO0FBQ1UsUUFBQSxnQkFBZ0IsR0FBK0M7SUFDMUUsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLE1BQU07UUFDbEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxHQUFHLEVBQUUsT0FBTztRQUNaLEtBQUssRUFBRSxTQUFTO0tBQ2pCO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsVUFBVSxFQUFFLEtBQUs7UUFDakIsT0FBTyxFQUFFLFNBQVM7UUFDbEIsR0FBRyxFQUFFLFlBQVk7UUFDakIsS0FBSyxFQUFFLGNBQWM7S0FDdEI7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsTUFBTTtRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLEdBQUcsRUFBRSxZQUFZO1FBQ2pCLEtBQUssRUFBRSxjQUFjO0tBQ3RCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQTRDO0lBQ2hFLG1CQUFtQixFQUFFLEtBQUs7SUFDMUIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZ0JBQWdCLEVBQUUsTUFBTTtDQUN6QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILFNBQVMsZUFBZTtJQUN0QixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDO0lBQ3BELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENB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
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BhY2thZ2UtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBNkI7QUFFN0IscUVBQXVGO0FBQ3ZGLGtEQUEwQjtBQUMxQixrREFBMEI7QUFDMUIsc0RBQTZCO0FBQzdCLDhEQUFxQztBQUVyQyxNQUFNLENBQUMsR0FBRyxJQUFBLGVBQUssRUFBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0FBS2xELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztBQUV0Qjs7R0FFRztBQUNVLFFBQUEsZ0JBQWdCLEdBQStDO0lBQzFFLElBQUksRUFBRTtRQUNKLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsR0FBRyxFQUFFLE9BQU87UUFDWixLQUFLLEVBQUUsU0FBUztLQUNqQjtJQUNELEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxLQUFLO1FBQ2pCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLEdBQUcsRUFBRSxZQUFZO1FBQ2pCLEtBQUssRUFBRSxjQUFjO0tBQ3RCO0lBQ0QsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLE1BQU07UUFDbEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxHQUFHLEVBQUUsWUFBWTtRQUNqQixLQUFLLEVBQUUsY0FBYztLQUN0QjtDQUNGLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUE0QztJQUNoRSxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGdCQUFnQixFQUFFLE1BQU07Q0FDekIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxTQUFTLGVBQWU7SUFDdEIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQztJQUNwRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxNQUFN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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electron-forge/core-utils",
3
- "version": "7.7.0",
3
+ "version": "7.8.0",
4
4
  "description": "Core utilities for the Electron Forge packages",
5
5
  "repository": "https://github.com/electron/forge",
6
6
  "author": "Samuel Attard",
@@ -8,7 +8,7 @@
8
8
  "main": "dist/index.js",
9
9
  "typings": "dist/index.d.ts",
10
10
  "dependencies": {
11
- "@electron-forge/shared-types": "7.7.0",
11
+ "@electron-forge/shared-types": "7.8.0",
12
12
  "@electron/rebuild": "^3.7.0",
13
13
  "@malept/cross-spawn-promise": "^2.0.0",
14
14
  "chalk": "^4.0.0",
@@ -28,5 +28,5 @@
28
28
  "dist",
29
29
  "src"
30
30
  ],
31
- "gitHead": "6a88c47b5916a39ee9f993d98d420c6c857de54c"
31
+ "gitHead": "f3af7b8e3ae06d9eca6e89423afe06df628125a3"
32
32
  }
@@ -1,3 +1,5 @@
1
+ import path from 'node:path';
2
+
1
3
  import { CrossSpawnArgs, CrossSpawnOptions, spawn } from '@malept/cross-spawn-promise';
2
4
  import chalk from 'chalk';
3
5
  import debug from 'debug';
@@ -75,8 +77,12 @@ function pmFromUserAgent() {
75
77
  */
76
78
  export const resolvePackageManager: () => Promise<PMDetails> = async () => {
77
79
  const executingPM = pmFromUserAgent();
80
+ let lockfilePM;
78
81
  const lockfile = await findUp(['package-lock.json', 'yarn.lock', 'pnpm-lock.yaml', 'pnpm-workspace.yaml'], { type: 'file' });
79
- const lockfilePM = (lockfile && PM_FROM_LOCKFILE[lockfile]) ?? undefined;
82
+ if (lockfile) {
83
+ const lockfileName = path.basename(lockfile);
84
+ lockfilePM = PM_FROM_LOCKFILE[lockfileName];
85
+ }
80
86
  const installer = process.env.NODE_INSTALLER || executingPM?.name || lockfilePM;
81
87
 
82
88
  // TODO(erickzhao): Remove NODE_INSTALLER environment variable for Forge 8
@@ -90,7 +96,7 @@ export const resolvePackageManager: () => Promise<PMDetails> = async () => {
90
96
  case 'npm':
91
97
  case 'pnpm':
92
98
  d(
93
- `Resolved package manager to ${installer}. (Derived from NODE_INSTALLER: ${process.env.NODE_INSTALLER}, npm_config_user_agent: ${executingPM}, lockfile: ${lockfilePM}.)`
99
+ `Resolved package manager to ${installer}. (Derived from NODE_INSTALLER: ${process.env.NODE_INSTALLER}, npm_config_user_agent: ${process.env.npm_config_user_agent}, lockfile: ${lockfilePM})`
94
100
  );
95
101
  return { ...PACKAGE_MANAGERS[installer], version: executingPM?.version };
96
102
  default:
@@ -107,5 +113,5 @@ export const resolvePackageManager: () => Promise<PMDetails> = async () => {
107
113
  };
108
114
 
109
115
  export const spawnPackageManager = async (pm: PMDetails, args?: CrossSpawnArgs, opts?: CrossSpawnOptions): Promise<string> => {
110
- return spawn(pm.executable, args, opts);
116
+ return (await spawn(pm.executable, args, opts)).trim();
111
117
  };