diff --git a/.vscode/settings.json b/.vscode/settings.json index 6eea7dbf..f803a68a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,67 +1,44 @@ { "cSpell.words": [ "ADB's", - "addrs", + "adbd", "allowlist", "arraybuffer", "autorun", - "Backends", "brotli", "Callout", - "carriernetworkchange", - "CLASSPATH", + "Cascadia", "CLSE", "CNXN", - "cybojenix", "Deserialization", - "endregion", + "Embedder", "fluentui", "genymobile", "Genymobile's", "getprop", - "GPRS", - "hardcode", - "hardcodes", - "hhmm", - "hisi", - "HSPA", - "jmuxer", "keyof", - "killforward", "laggy", - "lapo", - "libusb", "localabstract", "lstat", + "luma", "mitm", - "Muxer", - "nosim", + "Nalu", "opendir", "PKCS", - "pluggable", - "powersave", - "reimplement", - "reimplemented", - "Remux", - "Remuxer", - "RSASSA", "runtimes", "Scrcpy", - "scrollback", "sendrecv", + "sideload", "streamsaver", "struct", "struct's", - "systemui", - "sysui", "tcpip", "tinyh", + "transferables", "tsbuildinfo", "typeof", - "uifabric", "webadb", "webcodecs", - "webpackbar", "websockify", "webusb", "wifi", diff --git a/apps/book/docs/basics/architecture.md b/apps/book/docs/basics/architecture.md index 35462ff8..eb37728a 100644 --- a/apps/book/docs/basics/architecture.md +++ b/apps/book/docs/basics/architecture.md @@ -2,7 +2,12 @@ sidebar_position: 1 --- -# Achitecture + + +# Architecture This part describes the architecture of native ADB and Web ADB, and why there are designed in this way. @@ -110,7 +115,7 @@ Web ADB reuses native ADB daemons, but there is no **client**/**server**: One ap ### Core -**Core** is the `@yume-chan/adb` package. It generates data in ADB protocol, without "host prefix" (not needed because packets are directly sent to **daemons** via **backends**). +**Core** is the `@yume-chan/adb` package. It generates data in ADB protocol, without "host prefix" (not needed because packets are directly sent to **daemons** via a **backend**). ### Backend diff --git a/apps/book/docs/basics/connection.md b/apps/book/docs/basics/connection.md index a683717d..4e0b1470 100644 --- a/apps/book/docs/basics/connection.md +++ b/apps/book/docs/basics/connection.md @@ -2,6 +2,13 @@ sidebar_position: 3 --- + + # Connection In native ADB architecture, once ADB **server** detects a new device, it initiates a connection by sending a `CNXN` [packet](./packet.md). @@ -48,7 +55,7 @@ Device banners describe device information and capabilities. It has the followin *DeviceBanner* **:**
  *DeviceIdentifier* **::** *ParameterList* **\0** -*DeviceIdentifer* **:**
+*DeviceIdentifier* **:**
  **host**
  **device**
  **bootloader** diff --git a/apps/demo/components/demo-mode.tsx b/apps/demo/components/demo-mode.tsx index aa8b54fc..0aec875e 100644 --- a/apps/demo/components/demo-mode.tsx +++ b/apps/demo/components/demo-mode.tsx @@ -32,8 +32,11 @@ const MobileDataTypeOptions = '5ge': '5GE', '5g+': '5G+', 'e': 'EDGE', + // cspell: disable-next-line 'g': 'GPRS', + // cspell: disable-next-line 'h': 'HSPA', + // cspell: disable-next-line 'h+': 'HSPA+', 'lte': 'LTE', 'lte+': 'LTE+', diff --git a/apps/demo/components/terminal.tsx b/apps/demo/components/terminal.tsx index a5413d82..e729a08c 100644 --- a/apps/demo/components/terminal.tsx +++ b/apps/demo/components/terminal.tsx @@ -1,3 +1,4 @@ +// cspell: ignore scrollback import { AdbShell, encodeUtf8 } from "@yume-chan/adb"; import { AutoDisposable } from "@yume-chan/event"; diff --git a/apps/demo/pages/file-manager.tsx b/apps/demo/pages/file-manager.tsx index 19580da6..77d66b06 100644 --- a/apps/demo/pages/file-manager.tsx +++ b/apps/demo/pages/file-manager.tsx @@ -154,8 +154,8 @@ class FileManagerState { }); break; case 1: - // StreamSaver doens't work with strict site isolation enabled (`Cross-Origin-Embedder-Policy: require-corp`), - // `SharedArrayBuffer` doesn't work WHITHOUT strict site isolation. + // StreamSaver doesn't work with strict site isolation enabled (`Cross-Origin-Embedder-Policy: require-corp`), + // `SharedArrayBuffer` doesn't work WITHOUT strict site isolation. if (this.selectedItems[0].type === LinuxFileType.File && typeof SharedArrayBuffer === 'undefined') { result.push({ key: 'download', diff --git a/apps/demo/pages/index.mdx b/apps/demo/pages/index.mdx index 97ca7207..02277f23 100644 --- a/apps/demo/pages/index.mdx +++ b/apps/demo/pages/index.mdx @@ -10,6 +10,7 @@ It started because I want to try the webadb/webadb.js + * cybojenix/WebADB However, they are all pretty simple and not maintained, so I decided to make my own. diff --git a/apps/demo/pages/power.tsx b/apps/demo/pages/power.tsx index 0be93e91..0323e055 100644 --- a/apps/demo/pages/power.tsx +++ b/apps/demo/pages/power.tsx @@ -1,3 +1,6 @@ +// cspell: ignore bootloader +// cspell: ignore fastboot + import { DefaultButton, Icon, MessageBar, MessageBarType, TooltipHost } from "@fluentui/react"; import { observer } from "mobx-react-lite"; import { NextPage } from "next"; diff --git a/apps/demo/pages/tcpip.tsx b/apps/demo/pages/tcpip.tsx index ed31c3c3..82adc480 100644 --- a/apps/demo/pages/tcpip.tsx +++ b/apps/demo/pages/tcpip.tsx @@ -1,3 +1,5 @@ +// cspell: ignore addrs + import { CommandBar, ICommandBarItemProps, MessageBar, Stack, StackItem, Text, TextField, Toggle } from "@fluentui/react"; import { autorun, makeAutoObservable, runInAction } from "mobx"; import { observer } from "mobx-react-lite"; diff --git a/libraries/adb-credential-web/src/index.ts b/libraries/adb-credential-web/src/index.ts index b4ce8682..66551849 100644 --- a/libraries/adb-credential-web/src/index.ts +++ b/libraries/adb-credential-web/src/index.ts @@ -1,3 +1,5 @@ +// cspell: ignore RSASSA + import { AdbCredentialStore, calculateBase64EncodedLength, calculatePublicKey, calculatePublicKeyLength, decodeBase64, encodeBase64 } from "@yume-chan/adb"; const Utf8Encoder = new TextEncoder(); diff --git a/libraries/adb/src/commands/demo-mode.ts b/libraries/adb/src/commands/demo-mode.ts index 4e3c19c2..6c0dcdcd 100644 --- a/libraries/adb/src/commands/demo-mode.ts +++ b/libraries/adb/src/commands/demo-mode.ts @@ -1,3 +1,9 @@ +// cspell: ignore carriernetworkchange +// cspell: ignore powersave +// cspell: ignore nosim +// cspell: ignore systemui +// cspell: ignore sysui + import { AdbCommandBase } from './base'; export enum AdbDemoModeSignalStrength { @@ -155,6 +161,11 @@ export class AdbDemoMode extends AdbCommandBase { } public async setTime(hour: number, minute: number): Promise { - await this.broadcast('clock', { hhmm: `${hour.toString().padStart(2, '0')}${minute.toString().padStart(2, '0')}` }); + await this.broadcast('clock', { + // cspell: disable-next-line + hhmm: + hour.toString().padStart(2, '0') + + minute.toString().padStart(2, '0'), + }); } } diff --git a/libraries/adb/src/commands/power.ts b/libraries/adb/src/commands/power.ts index c4c843c8..7a53c244 100644 --- a/libraries/adb/src/commands/power.ts +++ b/libraries/adb/src/commands/power.ts @@ -1,3 +1,8 @@ +// cspell: ignore bootloader +// cspell: ignore fastboot +// cspell: ignore keyevent +// cspell: ignore longpress + import { AdbCommandBase } from "./base"; export class AdbPower extends AdbCommandBase { diff --git a/libraries/adb/src/commands/reverse.ts b/libraries/adb/src/commands/reverse.ts index 229e22b5..dd6c56d1 100644 --- a/libraries/adb/src/commands/reverse.ts +++ b/libraries/adb/src/commands/reverse.ts @@ -1,3 +1,5 @@ +// cspell: ignore killforward + import { AutoDisposable } from '@yume-chan/event'; import Struct from '@yume-chan/struct'; import type { AdbPacket } from '../packet'; diff --git a/libraries/adb/src/utils/base64.spec.ts b/libraries/adb/src/utils/base64.spec.ts index f763d51c..79a9cc03 100644 --- a/libraries/adb/src/utils/base64.spec.ts +++ b/libraries/adb/src/utils/base64.spec.ts @@ -45,18 +45,22 @@ describe('base64', () => { }); it("input length 3", () => { + /* cspell: disable-next-line */ expect(new Uint8Array(decodeBase64('AAEC'))).toEqual(new Uint8Array([0, 1, 2])); }); it("input length 4", () => { + /* cspell: disable-next-line */ expect(new Uint8Array(decodeBase64('AAECAw=='))).toEqual(new Uint8Array([0, 1, 2, 3])); }); it("input length 5", () => { + /* cspell: disable-next-line */ expect(new Uint8Array(decodeBase64('AAECAwQ='))).toEqual(new Uint8Array([0, 1, 2, 3, 4])); }); it("input length 6", () => { + /* cspell: disable-next-line */ expect(new Uint8Array(decodeBase64('AAECAwQF'))).toEqual(new Uint8Array([0, 1, 2, 3, 4, 5])); }); @@ -115,6 +119,7 @@ describe('base64', () => { ) ) ) + /* cspell: disable-next-line */ ).toEqual(new Uint8Array([65, 65, 69, 67])); // AAEC }); @@ -127,6 +132,7 @@ describe('base64', () => { ) ) ) + /* cspell: disable-next-line */ ).toEqual(new Uint8Array([65, 65, 69, 67, 65, 119, 61, 61])); // AAECAw== }); @@ -139,6 +145,7 @@ describe('base64', () => { ) ) ) + /* cspell: disable-next-line */ ).toEqual(new Uint8Array([65, 65, 69, 67, 65, 119, 81, 61])); // AAECAwQ= }); @@ -151,6 +158,7 @@ describe('base64', () => { ) ) ) + /* cspell: disable-next-line */ ).toEqual(new Uint8Array([65, 65, 69, 67, 65, 119, 81, 70])); // AAECAwQF }); diff --git a/libraries/adb/src/utils/base64.ts b/libraries/adb/src/utils/base64.ts index 7eb27983..d7c76c0b 100644 --- a/libraries/adb/src/utils/base64.ts +++ b/libraries/adb/src/utils/base64.ts @@ -140,6 +140,7 @@ export function encodeBase64( let outputIndex = outputOffset + outputLength - 1; if (paddingLength === 2) { + /* cspell: disable-next-line */ // aaaaaabb const x = input[inputIndex]!; inputIndex -= 1; @@ -156,10 +157,12 @@ export function encodeBase64( output[outputIndex] = indexToChar[x >> 2]!; outputIndex -= 1; } else if (paddingLength === 1) { + /* cspell: disable-next-line */ // bbbbcccc const y = input[inputIndex]!; inputIndex -= 1; + /* cspell: disable-next-line */ // aaaaaabb const x = input[inputIndex]!; inputIndex -= 1; @@ -178,14 +181,17 @@ export function encodeBase64( } while (inputIndex >= inputOffset) { + /* cspell: disable-next-line */ // ccdddddd const z = input[inputIndex]!; inputIndex -= 1; + /* cspell: disable-next-line */ // bbbbcccc const y = input[inputIndex]!; inputIndex -= 1; + /* cspell: disable-next-line */ // aaaaaabb const x = input[inputIndex]!; inputIndex -= 1; diff --git a/libraries/scrcpy/src/client.ts b/libraries/scrcpy/src/client.ts index 03012556..33bded02 100644 --- a/libraries/scrcpy/src/client.ts +++ b/libraries/scrcpy/src/client.ts @@ -160,6 +160,7 @@ export class ScrcpyClient { process = await this.device.childProcess.spawn( [ + // cspell: disable-next-line `CLASSPATH=${path}`, 'app_process', /* unused */ '/', diff --git a/libraries/scrcpy/src/options/1_16.ts b/libraries/scrcpy/src/options/1_16.ts index 6849939a..348d770a 100644 --- a/libraries/scrcpy/src/options/1_16.ts +++ b/libraries/scrcpy/src/options/1_16.ts @@ -118,7 +118,7 @@ export class ScrcpyOptions1_16; } - protected getArgumnetOrder(): (keyof T)[] { + protected getArgumentOrder(): (keyof T)[] { return [ 'logLevel', 'maxSize', @@ -158,7 +158,7 @@ export class ScrcpyOptions1_16 toScrcpyOptionValue(this.value[key] || defaults[key], '-')); } diff --git a/libraries/scrcpy/src/options/1_18.ts b/libraries/scrcpy/src/options/1_18.ts index 903cf624..b363d2ab 100644 --- a/libraries/scrcpy/src/options/1_18.ts +++ b/libraries/scrcpy/src/options/1_18.ts @@ -17,8 +17,8 @@ export class ScrcpyOptions1_18 [key, toScrcpyOptionValue(value, undefined)] as const) .filter((pair): pair is [string, string] => pair[1] !== undefined) diff --git a/libraries/scrcpy/src/sps.ts b/libraries/scrcpy/src/sps.ts index 44c1ea65..75522777 100644 --- a/libraries/scrcpy/src/sps.ts +++ b/libraries/scrcpy/src/sps.ts @@ -1,3 +1,6 @@ +// cspell: ignore golomb +// cspell: ignore qpprime + class BitReader { private buffer: Uint8Array; diff --git a/libraries/struct/README.md b/libraries/struct/README.md index 40761f29..ee5aa784 100644 --- a/libraries/struct/README.md +++ b/libraries/struct/README.md @@ -1,5 +1,10 @@ # @yume-chan/struct + + ![license](https://img.shields.io/npm/l/@yume-chan/struct) ![npm type definitions](https://img.shields.io/npm/types/@yume-chan/struct) [![npm version](https://img.shields.io/npm/v/@yume-chan/struct)](https://www.npmjs.com/package/@yume-chan/struct) @@ -42,6 +47,8 @@ const buffer = MyStruct.serialize({ }); ``` + + - [Installation](#installation) - [Quick Start](#quick-start) - [Compatibility](#compatibility) @@ -68,6 +75,8 @@ const buffer = MyStruct.serialize({ - [`get`/`set`](#getset) - [`serialize`](#serialize-1) + + ## Compatibility | | Chrome | Edge | Firefox | Internet Explorer | Safari | Node.js | @@ -447,7 +456,7 @@ Multiple calls merge all extra fields together. postDeserialize(): Struct; ``` -Remove any registered post deserialization callback. +Remove any registered post-deserialization callback. ```ts postDeserialize(