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
+
+


[](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(