Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | 4x 4x 4x 4x 59x 59x 33x 15x 4x 1x 4x 15x 4x 16x 16x 16x 16x 16x 16x 4x 16x 16x 62x 4x 11x 11x | import { Response as NodeFetchResponse } from 'node-fetch' import { RESOLVE_VERSION } from './commons/loggerTexts' import type { IMetadataResponse } from './interfaces/interfaces' import type { IOSSettings } from './interfaces/os.interfaces' import type { IListStore } from './interfaces/store.interfaces' import { spinner } from './log/spinner' /* eslint-disable-next-line @typescript-eslint/no-var-requires */ const fetch = require('node-fetch') const CHROMIUM_TAGS_URL = 'https://chromium.googlesource.com/chromium/src/+refs' function checkStatus(response: NodeFetchResponse) { Iif (!response.ok) { // TODO: check of response.error is correct throw new Error(`Status Code: ${response.status} ${(response as (NodeFetchResponse & { error: string })).error}`) } return response } const toJson = (response: Response): Promise<unknown> => response.json() const toText = (response: Response): Promise<string> => response.text() export async function fetchLocalStore(url: string): Promise<IListStore> { return fetch(url) .then(checkStatus) .then(toJson) } /** * Fetch all chromium tags (containing the version) via googlesource url */ export async function fetchChromiumTags(): Promise<string> { return fetch(CHROMIUM_TAGS_URL) .then(checkStatus) .then(toText) } export async function fetchBranchPosition(version: string): Promise<string> { spinner.start(RESOLVE_VERSION) return fetch(`https://omahaproxy.appspot.com/deps.json?version=${version}`) .then(checkStatus) .then(toJson) .then((response: { chromium_base_position?: string }) => response.chromium_base_position) .then((resolvedVersion: string | undefined) => { if (resolvedVersion) { spinner.success() } else E{ spinner.error() } return resolvedVersion }) } export async function fetchChromeUrl(branchPosition: string, osSettings: IOSSettings): Promise<string | undefined> { const snapshotUrl = `https://www.googleapis.com/storage/v1/b/chromium-browser-snapshots/o?delimiter=/&prefix=${osSettings.url}/${branchPosition}/&fields=items(kind,mediaLink,metadata,name,size,updated),kind,prefixes,nextPageToken` // TODO: adjust field in request const chromeMetadataResponse: IMetadataResponse = await fetch(snapshotUrl) .then(checkStatus) .then(toJson) return chromeMetadataResponse.items?.find(item => item.name === `${osSettings.url}/${branchPosition}/chrome-${osSettings.filename}.zip`)?.mediaLink } export async function fetchChromeZipFile(url: string): Promise<NodeFetchResponse> { const response = await fetch(url) return checkStatus(response) } |