|
2 | 2 | // THIS MUST BE CJS TO WORK WITH --require |
3 | 3 | 'use strict' |
4 | 4 |
|
| 5 | +const events = require('events') |
5 | 6 | const fs = require('fs') |
6 | | -const path = require('path') |
7 | 7 | const https = require('https') |
8 | | -const events = require('events') |
| 8 | +const path = require('path') |
9 | 9 | const rl = require('readline') |
10 | 10 | const { PassThrough } = require('stream') |
| 11 | + |
11 | 12 | const oraPromise = import('ora') |
12 | 13 | const isInteractivePromise = import('is-interactive') |
13 | 14 | const chalkPromise = import('chalk') |
@@ -38,10 +39,20 @@ const pubTokenPromise = sdkPromise.then(({ getDefaultKey, FREE_API_KEY }) => get |
38 | 39 | const apiKeySettingsPromise = sdkPromise.then(async ({ setupSdk }) => { |
39 | 40 | const sdk = await setupSdk() |
40 | 41 | const orgResult = await sdk.getOrganizations() |
41 | | - if (!orgResult.success) throw new Error('failed to fetch organizations info') |
| 42 | + if (!orgResult.success) { |
| 43 | + throw new Error('Failed to fetch organizations info: ' + orgResult.error.message) |
| 44 | + } |
42 | 45 | const orgs = Object.values(orgResult.data.organizations) |
43 | | - const result = await sdk.postSettings(orgs.map(id => ({ organization: id }))) |
44 | | - if (!result.success) throw new Error('failed to fetch API key settings') |
| 46 | + const settingsSelectors = [] |
| 47 | + for (const org of orgs) { |
| 48 | + if (org) { |
| 49 | + settingsSelectors.push({ organization: org.id }) |
| 50 | + } |
| 51 | + } |
| 52 | + const result = await sdk.postSettings(settingsSelectors) |
| 53 | + if (!result.success) { |
| 54 | + throw new Error('Failed to fetch API key settings: ' + result.error.message) |
| 55 | + } |
45 | 56 | return { |
46 | 57 | orgs, |
47 | 58 | settings: result.data |
@@ -277,7 +288,12 @@ class SafeArborist extends Arborist { |
277 | 288 | return this[kRiskyReify](...args) |
278 | 289 | } |
279 | 290 | args[0] ??= {} |
280 | | - const old = { ...args[0] } |
| 291 | + const old = { |
| 292 | + ...args[0], |
| 293 | + dryRun: false, |
| 294 | + save: Boolean(args[0].save ?? true), |
| 295 | + saveBundle: Boolean(args[0].saveBundle ?? false) |
| 296 | + } |
281 | 297 | // @ts-expect-error types are wrong |
282 | 298 | args[0].dryRun = true |
283 | 299 | args[0].save = false |
@@ -348,6 +364,7 @@ class SafeArborist extends Arborist { |
348 | 364 | } |
349 | 365 | return true |
350 | 366 | } |
| 367 | + // eslint-disable-next-line |
351 | 368 | return false |
352 | 369 | }) |
353 | 370 | if (proceed) { |
@@ -493,9 +510,9 @@ async function packagesHaveRiskyIssues (registry, pkgs, ora = null, input, outpu |
493 | 510 | } |
494 | 511 | for (const issue of (pkgData.value?.issues ?? [])) { |
495 | 512 | if (rules[issue.type]) { |
496 | | - if ((typeof rules[issue.type] == 'boolean' && rules[issue.type]) || rules[issue.type].action === 'error') { |
| 513 | + if ((typeof rules[issue.type] === 'boolean' && rules[issue.type]) || rules[issue.type].action === 'error') { |
497 | 514 | failures.push(issue) |
498 | | - } else if (rules[issue.type].action == 'warn') { |
| 515 | + } else if (rules[issue.type].action === 'warn') { |
499 | 516 | warns.push(issue) |
500 | 517 | } |
501 | 518 | } |
@@ -590,7 +607,7 @@ async function createTTYServer (colorLevel) { |
590 | 607 | const bufs = [] |
591 | 608 | conn.on('data', function awaitCapture (chunk) { |
592 | 609 | bufs.push(chunk) |
593 | | - const lineBuff = Buffer.concat(bufs) |
| 610 | + let lineBuff = Buffer.concat(bufs) |
594 | 611 | try { |
595 | 612 | if (!captured) { |
596 | 613 | const EOL = lineBuff.indexOf('\n'.charCodeAt(0)) |
|
0 commit comments