diff --git a/src/blobs/carrier.ts b/src/blobs/carrier.ts index c3e3d959a..5eff293ca 100644 --- a/src/blobs/carrier.ts +++ b/src/blobs/carrier.ts @@ -60,7 +60,7 @@ export async function fetchUpdateConfig( log(`requestData: ${outFile}`) await fs.writeFile(outFile, JSON.stringify(Request.toJSON(requestData), null, 4)) } - const encodedRequest = Request.encode(requestData).finish() + const encodedRequest = Buffer.from(Request.encode(requestData).finish()) if (debug) { const reqFile = path.join(tmpDir, 'encodedRequestData') await fs.writeFile(reqFile, encodedRequest) diff --git a/src/commands/collect-state.ts b/src/commands/collect-state.ts index ed301e6a4..160d4e398 100644 --- a/src/commands/collect-state.ts +++ b/src/commands/collect-state.ts @@ -320,7 +320,7 @@ async function runStateCollectionBuild( break } catch (e) { logElapsedTime(buildStart, `${device} phase ${phase} state collection build failed in`) - let stderr = e.message as string + let stderr = (e as Error).message as string if (stderr !== undefined) { log(`\n${statusPrefix}stderr:\n` + stderr) } diff --git a/src/commands/fetch-build-index.ts b/src/commands/fetch-build-index.ts index 5b41e0884..2ba305464 100644 --- a/src/commands/fetch-build-index.ts +++ b/src/commands/fetch-build-index.ts @@ -1,5 +1,5 @@ import { Command, Flags } from '@oclif/core' -import { YAMLMap } from 'yaml/types' +import { YAMLMap } from 'yaml' import assert from 'assert' import YAML, { Document } from 'yaml' diff --git a/src/commands/update-carrier-settings.ts b/src/commands/update-carrier-settings.ts index 614b68b68..61c67e2c2 100644 --- a/src/commands/update-carrier-settings.ts +++ b/src/commands/update-carrier-settings.ts @@ -1,4 +1,5 @@ import { Command, Flags } from '@oclif/core' +import util from 'util' import { downloadAllConfigs, fetchUpdateConfig, getCarrierSettingsUpdatesDir } from '../blobs/carrier' import { BUILD_VERSION_SDK_PROP, loadPartitionProps } from '../blobs/props' @@ -46,7 +47,7 @@ export default class UpdateCarrierSettings extends Command { ) let sdkVersion = mapGet(mapGet(stockProps, Partition.System), BUILD_VERSION_SDK_PROP) const updateConfig = await fetchUpdateConfig(config.device.name, buildId, sdkVersion, flags.debug) - if (flags.debug) log(updateConfig) + if (flags.debug) log(util.inspect(updateConfig, false, Infinity)) await downloadAllConfigs(updateConfig, outDir, flags.debug) } else { this.log(`${config.device.name} is not supported due to lack of cellular connectivity`) diff --git a/src/frontend/source.ts b/src/frontend/source.ts index 96a1b98cc..482d38a50 100644 --- a/src/frontend/source.ts +++ b/src/frontend/source.ts @@ -1,5 +1,5 @@ import assert from 'assert' -import { createReadStream, promises as fs } from 'fs' +import { createReadStream, promises as fs, ReadOptionsWithBuffer } from 'fs' import { FileHandle, FileReadOptions } from 'fs/promises' import hasha from 'hasha' import path from 'path' @@ -584,11 +584,12 @@ class FdReader extends yauzl.Reader { // do not initialize buffer contents, assert below ensures that it's fully written out let buffer = Buffer.allocUnsafe(length) - let opts = { - buffer, - length, + let opts: ReadOptionsWithBuffer = { + buffer: buffer, + length: length, + offset: 0, position: this.off + start, - } as FileReadOptions + } assert((await this.fd.read(opts)).bytesRead === length) return buffer diff --git a/src/images/build-index.ts b/src/images/build-index.ts index 911ce848f..7d00748a2 100644 --- a/src/images/build-index.ts +++ b/src/images/build-index.ts @@ -2,7 +2,7 @@ import assert from 'assert' import { JSDOM } from 'jsdom' import fetch from 'node-fetch' import path from 'path' -import { Document, YAMLMap } from 'yaml' +import { Document as YAMLDocument, YAMLMap } from 'yaml' import { loadAndMergeConfig } from '../config/config-loader' import { DeviceBuildId, DeviceConfig, makeDeviceBuildId } from '../config/device' @@ -108,7 +108,7 @@ async function fetchBuildIndexInner( } } - return new Document().createNode(buildIndex) as YAMLMap + return new YAMLDocument().createNode(buildIndex) as YAMLMap } function parseFactoryOrOtaPage(buildIndex: BuildIndex, pageType: string, dom: JSDOM, devices: Set) { diff --git a/src/images/download.ts b/src/images/download.ts index 5284fe1a6..703930d70 100644 --- a/src/images/download.ts +++ b/src/images/download.ts @@ -84,6 +84,10 @@ async function downloadImageInner( if (!resp.ok) { throw new Error(`${resp.status}: ${resp.statusText}; ${image.toString()} `) } + if (resp.body === null) { + throw new Error(`missing response body for ${image.toString()}`) + } + let downloaded = 0 let totalSizeStr: string | null diff --git a/src/util/exact-filter.ts b/src/util/exact-filter.ts index 5f7e3aa8c..5bc877670 100644 --- a/src/util/exact-filter.ts +++ b/src/util/exact-filter.ts @@ -81,7 +81,7 @@ interface FilterEntries2Result { hasTransforms: boolean } -export function filterEntries2(cmd: EntryFilter2Cmd) { +export function filterEntries2>(cmd: EntryFilter2Cmd) { let unknownEntries: string[] = [] let filtered: [string, T][] = [] let hasTransforms = false diff --git a/src/util/log.ts b/src/util/log.ts index 8f5ff8a13..931a9aaf8 100644 --- a/src/util/log.ts +++ b/src/util/log.ts @@ -69,7 +69,7 @@ function updateStatusLines() { } } -let pendingWrites: unknown[] = [] +let pendingWrites: (string | Buffer | Uint8Array)[] = [] let currentStatus: string | null = null let isClearPending = false @@ -149,7 +149,7 @@ function write(str: string | Buffer | Uint8Array, callback?: () => void) { } } -export function log(str: string | Buffer | DataView) { +export function log(str: string | Buffer | Uint8Array) { if (currentStatus !== null) { clearStatusLines() write(str)