ugly-app 0.1.374 → 0.1.376
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +161 -0
- package/coverage/client/AppProvider.tsx.html +1 -1
- package/coverage/client/FeedbackContext.ts.html +1 -1
- package/coverage/client/LoginPopup.tsx.html +1 -1
- package/coverage/client/Router.tsx.html +1 -1
- package/coverage/client/Screenshot.ts.html +1 -1
- package/coverage/client/StringsProvider.tsx.html +28 -28
- package/coverage/client/ViewFlipper.tsx.html +1 -1
- package/coverage/client/animation/Animated.tsx.html +1 -1
- package/coverage/client/animation/animatedValue.ts.html +1 -1
- package/coverage/client/animation/index.html +1 -1
- package/coverage/client/components/Button.tsx.html +1 -1
- package/coverage/client/components/FeedbackButton.tsx.html +1 -1
- package/coverage/client/components/Input.tsx.html +1 -1
- package/coverage/client/components/Modal.tsx.html +1 -1
- package/coverage/client/components/Text.tsx.html +1 -1
- package/coverage/client/components/Toast.tsx.html +1 -1
- package/coverage/client/components/index.html +1 -1
- package/coverage/client/components/zIndex.ts.html +1 -1
- package/coverage/client/createSocket.ts.html +34 -34
- package/coverage/client/index.html +1 -1
- package/coverage/clover.xml +83 -83
- package/coverage/collab/server/CollabServer.ts.html +1 -1
- package/coverage/collab/server/index.html +1 -1
- package/coverage/coverage-final.json +8 -8
- package/coverage/index.html +1 -1
- package/coverage/server/Cache.ts.html +1 -1
- package/coverage/server/DB.ts.html +1 -1
- package/coverage/server/DataProxyClient.ts.html +3 -3
- package/coverage/server/Email.ts.html +1 -1
- package/coverage/server/EmailTemplate.ts.html +1 -1
- package/coverage/server/EventLogAdmin.ts.html +1 -1
- package/coverage/server/NatsProxyClient.ts.html +1 -1
- package/coverage/server/PushNotification.ts.html +1 -1
- package/coverage/server/RateLimit.ts.html +1 -1
- package/coverage/server/Router.ts.html +4 -4
- package/coverage/server/SchemaCheck.ts.html +1 -1
- package/coverage/server/Socket.ts.html +1 -1
- package/coverage/server/Strings.ts.html +1 -1
- package/coverage/server/ai/ImageGenClient.ts.html +1 -1
- package/coverage/server/ai/ProviderBalance.ts.html +1 -1
- package/coverage/server/ai/TextGenClient.ts.html +1 -1
- package/coverage/server/ai/WebSearchClient.ts.html +1 -1
- package/coverage/server/ai/index.html +1 -1
- package/coverage/server/ai/index.ts.html +1 -1
- package/coverage/server/ai/providers/UglyBotImageGenProvider.ts.html +1 -1
- package/coverage/server/ai/providers/UglyBotTextGenProvider.ts.html +1 -1
- package/coverage/server/ai/providers/UglyBotWebSearchProvider.ts.html +1 -1
- package/coverage/server/ai/providers/index.html +1 -1
- package/coverage/server/ai/types.ts.html +1 -1
- package/coverage/server/billing/BillingGateway.ts.html +1 -1
- package/coverage/server/billing/BillingLedger.ts.html +1 -1
- package/coverage/server/billing/CreditStore.ts.html +1 -1
- package/coverage/server/billing/LimitEnforcer.ts.html +1 -1
- package/coverage/server/billing/UserLimitCache.ts.html +1 -1
- package/coverage/server/billing/index.html +1 -1
- package/coverage/server/billing/types.ts.html +1 -1
- package/coverage/server/embeddings/EmbeddingClient.ts.html +1 -1
- package/coverage/server/embeddings/index.html +1 -1
- package/coverage/server/embeddings/providers/OpenAI.ts.html +1 -1
- package/coverage/server/embeddings/providers/index.html +1 -1
- package/coverage/server/embeddings/registry.ts.html +1 -1
- package/coverage/server/index.html +1 -1
- package/coverage/server/uglyBotProxy.ts.html +1 -1
- package/coverage/shared/AiProxy.ts.html +1 -1
- package/coverage/shared/Api.ts.html +2 -2
- package/coverage/shared/Audio.ts.html +1 -1
- package/coverage/shared/DB.ts.html +1 -1
- package/coverage/shared/Errors.ts.html +1 -1
- package/coverage/shared/Experiment.ts.html +1 -1
- package/coverage/shared/FrameworkMessages.ts.html +1 -1
- package/coverage/shared/FrameworkRequests.ts.html +13 -28
- package/coverage/shared/ImageGen.ts.html +1 -1
- package/coverage/shared/Router.ts.html +1 -1
- package/coverage/shared/SchemaDiff.ts.html +1 -1
- package/coverage/shared/SchemaSerializer.ts.html +1 -1
- package/coverage/shared/Strings.ts.html +1 -1
- package/coverage/shared/TextGen.ts.html +1 -1
- package/coverage/shared/UglyBotMessages.ts.html +1 -1
- package/coverage/shared/Voice.ts.html +1 -1
- package/coverage/shared/index.html +1 -1
- package/coverage/shared/index.ts.html +1 -1
- package/coverage/shared/lang/builtin_en.ts.html +1 -1
- package/coverage/shared/lang/index.html +1 -1
- package/coverage/shared/uglyBotUrl.ts.html +1 -1
- package/coverage/three/server/VideoEncoder.ts.html +4 -4
- package/coverage/three/server/index.html +1 -1
- package/coverage/three/shared/CameraController.ts.html +13 -13
- package/coverage/three/shared/PostProcessing.ts.html +1 -1
- package/coverage/three/shared/index.html +1 -1
- package/coverage/webrtc/server/VideoRoomServer.ts.html +1 -1
- package/coverage/webrtc/server/index.html +1 -1
- package/coverage/worker/TaskHost.ts.html +1 -1
- package/coverage/worker/index.html +1 -1
- package/dist/cli/doctor.d.ts +12 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +255 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/index.js +13 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/server/bootstrap.d.ts +34 -0
- package/dist/server/bootstrap.d.ts.map +1 -0
- package/dist/server/bootstrap.js +52 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/shared/AiProxy.d.ts.map +1 -1
- package/dist/shared/AiProxy.js +6 -0
- package/dist/shared/AiProxy.js.map +1 -1
- package/dist/shared/TextGen.d.ts +44 -4
- package/dist/shared/TextGen.d.ts.map +1 -1
- package/dist/shared/TextGen.js +247 -4
- package/dist/shared/TextGen.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/doctor.ts +269 -0
- package/src/cli/index.ts +13 -0
- package/src/cli/version.ts +1 -1
- package/src/server/bootstrap.ts +56 -0
- package/src/server/index.ts +1 -0
- package/src/shared/AiProxy.ts +7 -0
- package/src/shared/TextGen.ts +302 -4
- package/templates/AGENTS.md +10 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# ugly-app — agent-facing guide
|
|
2
|
+
|
|
3
|
+
You are working inside an **ugly-app child app** (or the ugly-app framework itself). This file is the framework's own agent-facing documentation. Read it BEFORE grepping `node_modules/ugly-app/**` or guessing at config — the answers below are authoritative and a lot shorter than the source.
|
|
4
|
+
|
|
5
|
+
If you are looking at this file inside `node_modules/ugly-app/`, you are in a child app. If you are looking at it at the top of the `ugly-app/` repo, you are editing the framework itself — most of this file still applies.
|
|
6
|
+
|
|
7
|
+
## Architecture in one paragraph
|
|
8
|
+
|
|
9
|
+
Child apps are Node.js/React projects that depend on the published `ugly-app` package. Runtime infrastructure (PostgreSQL, NATS, object storage, vector search) is **not** provided by a local `docker-compose.yml` in the child app — it is provisioned by ugly.bot and reached over a WebSocket called the **DataProxy**. The `ugly-app` CLI, the server runtime, and your seed scripts all talk to DataProxy instead of connecting to Postgres directly. A child app has no `docker-compose.yml`, no `.env` file, and no local Postgres.
|
|
10
|
+
|
|
11
|
+
## Config model (NOT `.env`)
|
|
12
|
+
|
|
13
|
+
ugly-app child apps **do not use `.env` files**. Stop looking for one — it will not be there and adding one will not help.
|
|
14
|
+
|
|
15
|
+
Instead, two things hold configuration:
|
|
16
|
+
|
|
17
|
+
1. **`.uglyapp`** — a JSON file at the child app's root, written by `ugly-app configure`. Contains:
|
|
18
|
+
- `projectId` — stable identifier used as the DB/NATS/storage prefix
|
|
19
|
+
- `localPort` — Vite dev server port
|
|
20
|
+
- `uglyBotToken` / `localToken` — project tokens (can be migrated to the auth store below)
|
|
21
|
+
2. **Auth store** — project and user tokens at `~/.ugly-bot/auth.json` (cloud) and `~/.ugly-bot/local.json` (local ugly.bot). Managed by `ugly-app login`.
|
|
22
|
+
|
|
23
|
+
At runtime, `ensureInfra()` (from `src/cli/ensureInfra.ts`) reads both, opens a tunnel to ugly.bot, receives a short-lived DataProxy token, and sets `process.env.DATA_PROXY_URL` + `process.env.DATA_PROXY_TOKEN` for the current process only. The tokens are NOT written to a dotenv file.
|
|
24
|
+
|
|
25
|
+
## First-run checklist
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx ugly-app configure # writes .uglyapp with a fresh projectId + port
|
|
29
|
+
npx ugly-app login # authenticates against ugly.bot, mints a project token
|
|
30
|
+
npx ugly-app db:migrate # applies pending migrations via DataProxy
|
|
31
|
+
npx ugly-app dev # starts Vite + server + tsc + eslint
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
If `db:migrate` reports `[DataProxy] Not connected`, you skipped `configure` or `login` — run them. Do not try to start a local Postgres; there isn't one.
|
|
35
|
+
|
|
36
|
+
## Diagnose first, act second: `ugly-app doctor`
|
|
37
|
+
|
|
38
|
+
Run `npx ugly-app doctor` at the start of any task that touches infra, migrations, or data. It prints a single report covering:
|
|
39
|
+
|
|
40
|
+
- `.uglyapp` presence + parsed contents
|
|
41
|
+
- Whether an auth token is present for cloud / local
|
|
42
|
+
- DataProxy connection status + resolved URL
|
|
43
|
+
- Pending vs. applied migrations
|
|
44
|
+
- Obvious fixes ("run `ugly-app configure`", "run `ugly-app login`", etc.)
|
|
45
|
+
|
|
46
|
+
Reading `doctor`'s output first is almost always faster than guessing what's wrong from a failing command.
|
|
47
|
+
|
|
48
|
+
## CLI catalog
|
|
49
|
+
|
|
50
|
+
Every script in a child app's `package.json` that looks like `"ugly-app <cmd>"` is implemented in `src/cli/<cmd>.ts`. Cheat sheet:
|
|
51
|
+
|
|
52
|
+
| Command | Purpose |
|
|
53
|
+
|---|---|
|
|
54
|
+
| `init [name]` | Scaffold a new child app from `templates/` |
|
|
55
|
+
| `configure` | Write a fresh `.uglyapp` (projectId, port) |
|
|
56
|
+
| `login` | Authenticate to ugly.bot, mint project tokens |
|
|
57
|
+
| `dev` | Start server, Vite, tsc, eslint concurrently |
|
|
58
|
+
| `build` | Production build (Vite + tsc) |
|
|
59
|
+
| `doctor` | Print current config + infra state (run this FIRST when stuck) |
|
|
60
|
+
| `db:migrate` | Apply pending migrations |
|
|
61
|
+
| `db:migrate --status` | Show applied vs pending without running |
|
|
62
|
+
| `db:schema-gen` | Generate migration from collection schema diff |
|
|
63
|
+
| `db:schema-status` | Show current schema drift |
|
|
64
|
+
| `publish:assets` | Push static assets to CDN |
|
|
65
|
+
| `purge:assets` | Remove old asset bundles |
|
|
66
|
+
| `error:dev` / `error:prod` | Query error logs from dev-tunnel / prod |
|
|
67
|
+
| `perf:dev` / `perf:prod` | Query perf logs |
|
|
68
|
+
| `feedback:dev` / `feedback:prod` | Query user feedback |
|
|
69
|
+
| `feedback:submit` / `feedback:resolve` | Manage feedback items |
|
|
70
|
+
| `dev-logs` | Tail local JSONL dev logs |
|
|
71
|
+
| `auth:create-account` | Create a user directly in the DB |
|
|
72
|
+
| `auth:create-bot` | Create a bot principal |
|
|
73
|
+
| `textGen <prompt>` | AI text generation via CLI |
|
|
74
|
+
| `imageGen <prompt>` | AI image generation via CLI |
|
|
75
|
+
| `url` | Print local dev URL from `.uglyapp` |
|
|
76
|
+
| `deploy` | Build + deploy to ugly.bot infra |
|
|
77
|
+
| `prod --buildId <id>` | Promote a build to production |
|
|
78
|
+
| `versions` / `versions:prune` | List / clean deployed versions |
|
|
79
|
+
| `domain <sub>` | Reserve a custom subdomain |
|
|
80
|
+
| `infra:destroy` | Tear down all project infrastructure |
|
|
81
|
+
| `cloud:cleanup` | Clean up cloud dev resources |
|
|
82
|
+
| `upgrade` | Upgrade framework config files |
|
|
83
|
+
|
|
84
|
+
## Package entry points
|
|
85
|
+
|
|
86
|
+
Child apps import only via these paths — there is no deep-import contract beyond what's listed here:
|
|
87
|
+
|
|
88
|
+
- `ugly-app/server` — server-side primitives: `createApp`, `verifyToken`, `pgQuery`, `createTypedDB`, `textGen`, `imageGen`, `storage`, `initDataProxy`, `isDataProxyConnected`, `bootstrapInfra` (see below)
|
|
89
|
+
- `ugly-app/shared` — zod schemas, `req()`/`authReq()`, type helpers, `definePage`/`definePages`
|
|
90
|
+
- `ugly-app/client` — React components + hooks (`useRouter`, `TabContent`, `TabContentAllActive`, etc.)
|
|
91
|
+
- `ugly-app/playwright` — test helpers
|
|
92
|
+
- `ugly-app/markdown/*`, `ugly-app/collab/*`, `ugly-app/conversation/*` — optional subsystems
|
|
93
|
+
- `ugly-app/vite`, `ugly-app/eslint` — build config helpers
|
|
94
|
+
|
|
95
|
+
## Writing data from a script
|
|
96
|
+
|
|
97
|
+
Seed scripts, one-off imports, and cron-ish batch jobs all need the same three lines of boilerplate:
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
import { bootstrapInfra, createTypedDB } from 'ugly-app/server';
|
|
101
|
+
import { collections } from '../shared/collections.js';
|
|
102
|
+
|
|
103
|
+
await bootstrapInfra(); // ensureInfra() + initDataProxy()
|
|
104
|
+
const db = createTypedDB(collections);
|
|
105
|
+
await db.file.insert({ ... });
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**`bootstrapInfra()` is the supported entry point.** It wraps `ensureInfra()` (which reads `.uglyapp`, handles login, requests a DataProxy token) and `initDataProxy()` (which opens the WebSocket). Your script can freely use `pgQuery`, `createTypedDB`, `storage`, etc. after it returns.
|
|
109
|
+
|
|
110
|
+
Legacy scripts that set `DATA_PROXY_URL` / `DATA_PROXY_TOKEN` by hand still work, but they're fragile — tokens rotate, and a human is not meant to copy them out of a tunnel. Use `bootstrapInfra()` in anything new.
|
|
111
|
+
|
|
112
|
+
## Adding an endpoint
|
|
113
|
+
|
|
114
|
+
1. Define in `shared/api.ts` with `req()` (public) or `authReq()` (authed) + Zod schemas.
|
|
115
|
+
2. Add a handler to the `requests` object in `server/index.ts`, typed with `satisfies RequestHandlers<typeof requests>`.
|
|
116
|
+
3. Import `db`, `storage`, `textGen(userId)`, `imageGen(userId)` from `'ugly-app/server'` directly.
|
|
117
|
+
|
|
118
|
+
Handler signatures:
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
// req() — public, userId may be null
|
|
122
|
+
getPublicData: async (userId: string | null, input) => { ... }
|
|
123
|
+
|
|
124
|
+
// authReq() — authed, userId always present
|
|
125
|
+
submitFeedback: async (userId: string, input) => { ... }
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Every endpoint is reachable via WebSocket (`socket.request(name, input)`) and HTTP (`POST /api/:name { input }`).
|
|
129
|
+
|
|
130
|
+
## Adding or changing a collection
|
|
131
|
+
|
|
132
|
+
1. Edit the Zod schema in `shared/collections.ts`.
|
|
133
|
+
2. Run `npx ugly-app db:schema-gen` — generates a migration with `REPLACE_ME` placeholders where human judgment is required.
|
|
134
|
+
3. Fix the `REPLACE_ME`s, then run `npx ugly-app db:migrate`.
|
|
135
|
+
4. The app refuses to boot until pending migrations are applied — that's intentional.
|
|
136
|
+
|
|
137
|
+
Never edit collection schemas without regenerating the migration. The schema check at boot will immediately fail.
|
|
138
|
+
|
|
139
|
+
## Common failure modes
|
|
140
|
+
|
|
141
|
+
| Symptom | Likely cause | Fix |
|
|
142
|
+
|---|---|---|
|
|
143
|
+
| `[DataProxy] Not connected` | no `.uglyapp`, no login, or DataProxy token expired | `ugly-app configure` then `ugly-app login`, then re-run |
|
|
144
|
+
| `docker compose ... no configuration file provided` | you are in a child app and tried to start infra locally | There is no local docker-compose. Run `ugly-app doctor` instead. |
|
|
145
|
+
| `command not found: ugly-app` | CLI not on PATH | use `npx ugly-app <cmd>` or add `./node_modules/.bin` to PATH |
|
|
146
|
+
| `Schema drift detected` on boot | collections changed without a migration | `ugly-app db:schema-gen`, fix REPLACE_MEs, `ugly-app db:migrate` |
|
|
147
|
+
| `db:migrate` exits on `_migrations` read error | DataProxy connected but the migrations table is gone | re-run; `ensureMigrationsTable()` is idempotent |
|
|
148
|
+
|
|
149
|
+
## Critical rules
|
|
150
|
+
|
|
151
|
+
- **Never** add `.env` files to a child app — config goes through `.uglyapp` + the auth store.
|
|
152
|
+
- **Never** change a collection without `db:schema-gen` → fix REPLACE_MEs → `db:migrate`.
|
|
153
|
+
- **Never** use module-level Maps for per-user state — use NATS KV or DB (multi-server).
|
|
154
|
+
- **Always** call `bootstrapInfra()` (or its CLI equivalent) before reading/writing data in scripts.
|
|
155
|
+
- **Always** include a `schema: ZodSchema` when defining a collection.
|
|
156
|
+
- **Always** use framework UI components (`Button`, `Pressable`, `TabPicker`, `TabContent`, `Pager`, `ScrollView`, `Input`, `SelectView`, `Modal`, `FlatList`) with `data-id` and `aria-label` instead of raw HTML.
|
|
157
|
+
- **Never** read `process.env` in client code — use `import.meta.env.VITE_*`.
|
|
158
|
+
|
|
159
|
+
## When in doubt
|
|
160
|
+
|
|
161
|
+
Run `npx ugly-app doctor`. If that doesn't clear it up, read the file this file lives next to in `node_modules/ugly-app/` — the `CLAUDE.md` next to this `AGENTS.md` has the current framework rules, and the source under `dist/` is the ground truth for any specific call.
|
|
@@ -880,7 +880,7 @@ function PopupLayer({ popups }: { popups: PopupEntry[] }) {
|
|
|
880
880
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
881
881
|
Code coverage generated by
|
|
882
882
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
883
|
-
at 2026-04-
|
|
883
|
+
at 2026-04-15T02:27:16.035Z
|
|
884
884
|
</div>
|
|
885
885
|
<script src="../prettify.js"></script>
|
|
886
886
|
<script>
|
|
@@ -118,7 +118,7 @@ export function clearFeedbackContext(): void {
|
|
|
118
118
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
119
119
|
Code coverage generated by
|
|
120
120
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
121
|
-
at 2026-04-
|
|
121
|
+
at 2026-04-15T02:27:16.035Z
|
|
122
122
|
</div>
|
|
123
123
|
<script src="../prettify.js"></script>
|
|
124
124
|
<script>
|
|
@@ -322,7 +322,7 @@ export function LoginPopup({ onSuccess, inline = false }: LoginPopupProps) {
|
|
|
322
322
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
323
323
|
Code coverage generated by
|
|
324
324
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
325
|
-
at 2026-04-
|
|
325
|
+
at 2026-04-15T02:27:16.035Z
|
|
326
326
|
</div>
|
|
327
327
|
<script src="../prettify.js"></script>
|
|
328
328
|
<script>
|
|
@@ -2218,7 +2218,7 @@ export function Link<
|
|
|
2218
2218
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2219
2219
|
Code coverage generated by
|
|
2220
2220
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2221
|
-
at 2026-04-
|
|
2221
|
+
at 2026-04-15T02:27:16.035Z
|
|
2222
2222
|
</div>
|
|
2223
2223
|
<script src="../prettify.js"></script>
|
|
2224
2224
|
<script>
|
|
@@ -775,7 +775,7 @@ export function captureElementMap(): ElementMap {
|
|
|
775
775
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
776
776
|
Code coverage generated by
|
|
777
777
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
778
|
-
at 2026-04-
|
|
778
|
+
at 2026-04-15T02:27:16.035Z
|
|
779
779
|
</div>
|
|
780
780
|
<script src="../prettify.js"></script>
|
|
781
781
|
<script>
|
|
@@ -319,18 +319,18 @@
|
|
|
319
319
|
<span class="cline-any cline-neutral"> </span>
|
|
320
320
|
<span class="cline-any cline-neutral"> </span>
|
|
321
321
|
<span class="cline-any cline-neutral"> </span>
|
|
322
|
-
<span class="cline-any cline-yes">
|
|
322
|
+
<span class="cline-any cline-yes">34x</span>
|
|
323
323
|
<span class="cline-any cline-neutral"> </span>
|
|
324
324
|
<span class="cline-any cline-neutral"> </span>
|
|
325
325
|
<span class="cline-any cline-neutral"> </span>
|
|
326
|
-
<span class="cline-any cline-yes">
|
|
326
|
+
<span class="cline-any cline-yes">34x</span>
|
|
327
327
|
<span class="cline-any cline-neutral"> </span>
|
|
328
328
|
<span class="cline-any cline-neutral"> </span>
|
|
329
329
|
<span class="cline-any cline-neutral"> </span>
|
|
330
330
|
<span class="cline-any cline-neutral"> </span>
|
|
331
331
|
<span class="cline-any cline-neutral"> </span>
|
|
332
|
-
<span class="cline-any cline-yes">
|
|
333
|
-
<span class="cline-any cline-yes">
|
|
332
|
+
<span class="cline-any cline-yes">34x</span>
|
|
333
|
+
<span class="cline-any cline-yes">34x</span>
|
|
334
334
|
<span class="cline-any cline-neutral"> </span>
|
|
335
335
|
<span class="cline-any cline-neutral"> </span>
|
|
336
336
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -350,16 +350,16 @@
|
|
|
350
350
|
<span class="cline-any cline-neutral"> </span>
|
|
351
351
|
<span class="cline-any cline-neutral"> </span>
|
|
352
352
|
<span class="cline-any cline-neutral"> </span>
|
|
353
|
-
<span class="cline-any cline-yes">
|
|
354
|
-
<span class="cline-any cline-yes">
|
|
355
|
-
<span class="cline-any cline-yes">
|
|
356
|
-
<span class="cline-any cline-yes">
|
|
353
|
+
<span class="cline-any cline-yes">34x</span>
|
|
354
|
+
<span class="cline-any cline-yes">34x</span>
|
|
355
|
+
<span class="cline-any cline-yes">34x</span>
|
|
356
|
+
<span class="cline-any cline-yes">34x</span>
|
|
357
357
|
<span class="cline-any cline-neutral"> </span>
|
|
358
358
|
<span class="cline-any cline-neutral"> </span>
|
|
359
|
-
<span class="cline-any cline-yes">
|
|
359
|
+
<span class="cline-any cline-yes">34x</span>
|
|
360
360
|
<span class="cline-any cline-neutral"> </span>
|
|
361
361
|
<span class="cline-any cline-neutral"> </span>
|
|
362
|
-
<span class="cline-any cline-yes">
|
|
362
|
+
<span class="cline-any cline-yes">34x</span>
|
|
363
363
|
<span class="cline-any cline-yes">21x</span>
|
|
364
364
|
<span class="cline-any cline-yes">21x</span>
|
|
365
365
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -368,21 +368,21 @@
|
|
|
368
368
|
<span class="cline-any cline-neutral"> </span>
|
|
369
369
|
<span class="cline-any cline-neutral"> </span>
|
|
370
370
|
<span class="cline-any cline-neutral"> </span>
|
|
371
|
-
<span class="cline-any cline-yes">
|
|
372
|
-
<span class="cline-any cline-yes">
|
|
373
|
-
<span class="cline-any cline-yes">
|
|
374
|
-
<span class="cline-any cline-yes">
|
|
371
|
+
<span class="cline-any cline-yes">34x</span>
|
|
372
|
+
<span class="cline-any cline-yes">34x</span>
|
|
373
|
+
<span class="cline-any cline-yes">34x</span>
|
|
374
|
+
<span class="cline-any cline-yes">34x</span>
|
|
375
375
|
<span class="cline-any cline-neutral"> </span>
|
|
376
376
|
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-yes">
|
|
377
|
+
<span class="cline-any cline-yes">34x</span>
|
|
378
378
|
<span class="cline-any cline-neutral"> </span>
|
|
379
379
|
<span class="cline-any cline-neutral"> </span>
|
|
380
|
-
<span class="cline-any cline-yes">
|
|
380
|
+
<span class="cline-any cline-yes">34x</span>
|
|
381
381
|
<span class="cline-any cline-yes">21x</span>
|
|
382
382
|
<span class="cline-any cline-neutral"> </span>
|
|
383
383
|
<span class="cline-any cline-neutral"> </span>
|
|
384
384
|
<span class="cline-any cline-neutral"> </span>
|
|
385
|
-
<span class="cline-any cline-yes">
|
|
385
|
+
<span class="cline-any cline-yes">34x</span>
|
|
386
386
|
<span class="cline-any cline-yes">21x</span>
|
|
387
387
|
<span class="cline-any cline-yes">4x</span>
|
|
388
388
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -403,7 +403,7 @@
|
|
|
403
403
|
<span class="cline-any cline-neutral"> </span>
|
|
404
404
|
<span class="cline-any cline-neutral"> </span>
|
|
405
405
|
<span class="cline-any cline-neutral"> </span>
|
|
406
|
-
<span class="cline-any cline-yes">
|
|
406
|
+
<span class="cline-any cline-yes">34x</span>
|
|
407
407
|
<span class="cline-any cline-neutral"> </span>
|
|
408
408
|
<span class="cline-any cline-yes">7x</span>
|
|
409
409
|
<span class="cline-any cline-yes">7x</span>
|
|
@@ -425,12 +425,12 @@
|
|
|
425
425
|
<span class="cline-any cline-neutral"> </span>
|
|
426
426
|
<span class="cline-any cline-neutral"> </span>
|
|
427
427
|
<span class="cline-any cline-neutral"> </span>
|
|
428
|
-
<span class="cline-any cline-yes">
|
|
429
|
-
<span class="cline-any cline-yes">
|
|
428
|
+
<span class="cline-any cline-yes">34x</span>
|
|
429
|
+
<span class="cline-any cline-yes">34x</span>
|
|
430
430
|
<span class="cline-any cline-neutral"> </span>
|
|
431
431
|
<span class="cline-any cline-neutral"> </span>
|
|
432
432
|
<span class="cline-any cline-neutral"> </span>
|
|
433
|
-
<span class="cline-any cline-yes">
|
|
433
|
+
<span class="cline-any cline-yes">34x</span>
|
|
434
434
|
<span class="cline-any cline-neutral"> </span>
|
|
435
435
|
<span class="cline-any cline-neutral"> </span>
|
|
436
436
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -447,16 +447,16 @@
|
|
|
447
447
|
<span class="cline-any cline-neutral"> </span>
|
|
448
448
|
<span class="cline-any cline-neutral"> </span>
|
|
449
449
|
<span class="cline-any cline-neutral"> </span>
|
|
450
|
-
<span class="cline-any cline-yes">
|
|
451
|
-
<span class="cline-any cline-yes">
|
|
452
|
-
<span class="cline-any cline-yes">
|
|
450
|
+
<span class="cline-any cline-yes">28x</span>
|
|
451
|
+
<span class="cline-any cline-yes">28x</span>
|
|
452
|
+
<span class="cline-any cline-yes">25x</span>
|
|
453
453
|
<span class="cline-any cline-neutral"> </span>
|
|
454
454
|
<span class="cline-any cline-neutral"> </span>
|
|
455
455
|
<span class="cline-any cline-neutral"> </span>
|
|
456
456
|
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-yes">
|
|
458
|
-
<span class="cline-any cline-yes">
|
|
459
|
-
<span class="cline-any cline-yes">
|
|
457
|
+
<span class="cline-any cline-yes">28x</span>
|
|
458
|
+
<span class="cline-any cline-yes">28x</span>
|
|
459
|
+
<span class="cline-any cline-yes">25x</span>
|
|
460
460
|
<span class="cline-any cline-neutral"> </span>
|
|
461
461
|
<span class="cline-any cline-neutral"> </span>
|
|
462
462
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -682,7 +682,7 @@ export function useStringsContext(): StringsContextValue | null {
|
|
|
682
682
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
683
683
|
Code coverage generated by
|
|
684
684
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
685
|
-
at 2026-04-
|
|
685
|
+
at 2026-04-15T02:27:16.035Z
|
|
686
686
|
</div>
|
|
687
687
|
<script src="../prettify.js"></script>
|
|
688
688
|
<script>
|
|
@@ -763,7 +763,7 @@ export function ViewFlipper({
|
|
|
763
763
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
764
764
|
Code coverage generated by
|
|
765
765
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
766
|
-
at 2026-04-
|
|
766
|
+
at 2026-04-15T02:27:16.035Z
|
|
767
767
|
</div>
|
|
768
768
|
<script src="../prettify.js"></script>
|
|
769
769
|
<script>
|
|
@@ -529,7 +529,7 @@ export const Animated = {
|
|
|
529
529
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
530
530
|
Code coverage generated by
|
|
531
531
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
532
|
-
at 2026-04-
|
|
532
|
+
at 2026-04-15T02:27:16.035Z
|
|
533
533
|
</div>
|
|
534
534
|
<script src="../../prettify.js"></script>
|
|
535
535
|
<script>
|
|
@@ -706,7 +706,7 @@ export function useAnimatedValueTracker(animatedValue: AnimatedValueRef): number
|
|
|
706
706
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
707
707
|
Code coverage generated by
|
|
708
708
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
709
|
-
at 2026-04-
|
|
709
|
+
at 2026-04-15T02:27:16.035Z
|
|
710
710
|
</div>
|
|
711
711
|
<script src="../../prettify.js"></script>
|
|
712
712
|
<script>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2026-04-
|
|
119
|
+
at 2026-04-15T02:27:16.035Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -364,7 +364,7 @@ export function Button({
|
|
|
364
364
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
365
365
|
Code coverage generated by
|
|
366
366
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
367
|
-
at 2026-04-
|
|
367
|
+
at 2026-04-15T02:27:16.035Z
|
|
368
368
|
</div>
|
|
369
369
|
<script src="../../prettify.js"></script>
|
|
370
370
|
<script>
|
|
@@ -616,7 +616,7 @@ export function FeedbackButton(): ReactNode {
|
|
|
616
616
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
617
617
|
Code coverage generated by
|
|
618
618
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
619
|
-
at 2026-04-
|
|
619
|
+
at 2026-04-15T02:27:16.035Z
|
|
620
620
|
</div>
|
|
621
621
|
<script src="../../prettify.js"></script>
|
|
622
622
|
<script>
|
|
@@ -271,7 +271,7 @@ export function Input({
|
|
|
271
271
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
272
272
|
Code coverage generated by
|
|
273
273
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
274
|
-
at 2026-04-
|
|
274
|
+
at 2026-04-15T02:27:16.035Z
|
|
275
275
|
</div>
|
|
276
276
|
<script src="../../prettify.js"></script>
|
|
277
277
|
<script>
|
|
@@ -262,7 +262,7 @@ export function Modal({
|
|
|
262
262
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
263
263
|
Code coverage generated by
|
|
264
264
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
265
|
-
at 2026-04-
|
|
265
|
+
at 2026-04-15T02:27:16.035Z
|
|
266
266
|
</div>
|
|
267
267
|
<script src="../../prettify.js"></script>
|
|
268
268
|
<script>
|
|
@@ -334,7 +334,7 @@ export function Text({
|
|
|
334
334
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
335
335
|
Code coverage generated by
|
|
336
336
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
337
|
-
at 2026-04-
|
|
337
|
+
at 2026-04-15T02:27:16.035Z
|
|
338
338
|
</div>
|
|
339
339
|
<script src="../../prettify.js"></script>
|
|
340
340
|
<script>
|
|
@@ -220,7 +220,7 @@ export function Toast({
|
|
|
220
220
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
221
221
|
Code coverage generated by
|
|
222
222
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
223
|
-
at 2026-04-
|
|
223
|
+
at 2026-04-15T02:27:16.035Z
|
|
224
224
|
</div>
|
|
225
225
|
<script src="../../prettify.js"></script>
|
|
226
226
|
<script>
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
192
192
|
Code coverage generated by
|
|
193
193
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
194
|
-
at 2026-04-
|
|
194
|
+
at 2026-04-15T02:27:16.035Z
|
|
195
195
|
</div>
|
|
196
196
|
<script src="../../prettify.js"></script>
|
|
197
197
|
<script>
|
|
@@ -103,7 +103,7 @@ export const Z = {
|
|
|
103
103
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
104
104
|
Code coverage generated by
|
|
105
105
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
106
|
-
at 2026-04-
|
|
106
|
+
at 2026-04-15T02:27:16.035Z
|
|
107
107
|
</div>
|
|
108
108
|
<script src="../../prettify.js"></script>
|
|
109
109
|
<script>
|
|
@@ -951,21 +951,21 @@
|
|
|
951
951
|
<span class="cline-any cline-neutral"> </span>
|
|
952
952
|
<span class="cline-any cline-neutral"> </span>
|
|
953
953
|
<span class="cline-any cline-neutral"> </span>
|
|
954
|
-
<span class="cline-any cline-yes">
|
|
955
|
-
<span class="cline-any cline-yes">
|
|
956
|
-
<span class="cline-any cline-yes">
|
|
954
|
+
<span class="cline-any cline-yes">421x</span>
|
|
955
|
+
<span class="cline-any cline-yes">421x</span>
|
|
956
|
+
<span class="cline-any cline-yes">421x</span>
|
|
957
957
|
<span class="cline-any cline-neutral"> </span>
|
|
958
958
|
<span class="cline-any cline-neutral"> </span>
|
|
959
|
-
<span class="cline-any cline-yes">
|
|
959
|
+
<span class="cline-any cline-yes">421x</span>
|
|
960
960
|
<span class="cline-any cline-neutral"> </span>
|
|
961
961
|
<span class="cline-any cline-yes">100x</span>
|
|
962
962
|
<span class="cline-any cline-neutral"> </span>
|
|
963
963
|
<span class="cline-any cline-neutral"> </span>
|
|
964
964
|
<span class="cline-any cline-neutral"> </span>
|
|
965
965
|
<span class="cline-any cline-neutral"> </span>
|
|
966
|
-
<span class="cline-any cline-yes">
|
|
967
|
-
<span class="cline-any cline-yes">
|
|
968
|
-
<span class="cline-any cline-yes">
|
|
966
|
+
<span class="cline-any cline-yes">407x</span>
|
|
967
|
+
<span class="cline-any cline-yes">407x</span>
|
|
968
|
+
<span class="cline-any cline-yes">13x</span>
|
|
969
969
|
<span class="cline-any cline-neutral"> </span>
|
|
970
970
|
<span class="cline-any cline-neutral"> </span>
|
|
971
971
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1032,7 +1032,7 @@
|
|
|
1032
1032
|
<span class="cline-any cline-neutral"> </span>
|
|
1033
1033
|
<span class="cline-any cline-neutral"> </span>
|
|
1034
1034
|
<span class="cline-any cline-neutral"> </span>
|
|
1035
|
-
<span class="cline-any cline-yes">
|
|
1035
|
+
<span class="cline-any cline-yes">510x</span>
|
|
1036
1036
|
<span class="cline-any cline-yes">75x</span>
|
|
1037
1037
|
<span class="cline-any cline-yes">75x</span>
|
|
1038
1038
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1204,21 +1204,21 @@
|
|
|
1204
1204
|
<span class="cline-any cline-neutral"> </span>
|
|
1205
1205
|
<span class="cline-any cline-neutral"> </span>
|
|
1206
1206
|
<span class="cline-any cline-neutral"> </span>
|
|
1207
|
-
<span class="cline-any cline-yes">
|
|
1208
|
-
<span class="cline-any cline-yes">
|
|
1209
|
-
<span class="cline-any cline-yes">
|
|
1207
|
+
<span class="cline-any cline-yes">329x</span>
|
|
1208
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1209
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1210
1210
|
<span class="cline-any cline-neutral"> </span>
|
|
1211
|
-
<span class="cline-any cline-yes">
|
|
1212
|
-
<span class="cline-any cline-yes">
|
|
1211
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1212
|
+
<span class="cline-any cline-yes">329x</span>
|
|
1213
1213
|
<span class="cline-any cline-yes">6x</span>
|
|
1214
1214
|
<span class="cline-any cline-yes">12x</span>
|
|
1215
1215
|
<span class="cline-any cline-neutral"> </span>
|
|
1216
1216
|
<span class="cline-any cline-neutral"> </span>
|
|
1217
1217
|
<span class="cline-any cline-neutral"> </span>
|
|
1218
|
-
<span class="cline-any cline-yes">
|
|
1219
|
-
<span class="cline-any cline-yes">
|
|
1218
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1219
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1220
1220
|
<span class="cline-any cline-neutral"> </span>
|
|
1221
|
-
<span class="cline-any cline-yes">
|
|
1221
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1222
1222
|
<span class="cline-any cline-yes">75x</span>
|
|
1223
1223
|
<span class="cline-any cline-yes">75x</span>
|
|
1224
1224
|
<span class="cline-any cline-yes">75x</span>
|
|
@@ -1249,12 +1249,12 @@
|
|
|
1249
1249
|
<span class="cline-any cline-neutral"> </span>
|
|
1250
1250
|
<span class="cline-any cline-neutral"> </span>
|
|
1251
1251
|
<span class="cline-any cline-neutral"> </span>
|
|
1252
|
-
<span class="cline-any cline-yes">
|
|
1253
|
-
<span class="cline-any cline-yes">
|
|
1254
|
-
<span class="cline-any cline-yes">
|
|
1255
|
-
<span class="cline-any cline-yes">
|
|
1252
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1253
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1254
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1255
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1256
1256
|
<span class="cline-any cline-neutral"> </span>
|
|
1257
|
-
<span class="cline-any cline-yes">
|
|
1257
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1258
1258
|
<span class="cline-any cline-yes">3x</span>
|
|
1259
1259
|
<span class="cline-any cline-yes">3x</span>
|
|
1260
1260
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -1265,27 +1265,27 @@
|
|
|
1265
1265
|
<span class="cline-any cline-yes">3x</span>
|
|
1266
1266
|
<span class="cline-any cline-neutral"> </span>
|
|
1267
1267
|
<span class="cline-any cline-neutral"> </span>
|
|
1268
|
-
<span class="cline-any cline-yes">
|
|
1269
|
-
<span class="cline-any cline-yes">
|
|
1268
|
+
<span class="cline-any cline-yes">325x</span>
|
|
1269
|
+
<span class="cline-any cline-yes">325x</span>
|
|
1270
1270
|
<span class="cline-any cline-yes">1x</span>
|
|
1271
1271
|
<span class="cline-any cline-yes">1x</span>
|
|
1272
1272
|
<span class="cline-any cline-neutral"> </span>
|
|
1273
|
-
<span class="cline-any cline-yes">
|
|
1273
|
+
<span class="cline-any cline-yes">325x</span>
|
|
1274
1274
|
<span class="cline-any cline-neutral"> </span>
|
|
1275
|
-
<span class="cline-any cline-yes">
|
|
1276
|
-
<span class="cline-any cline-yes">
|
|
1277
|
-
<span class="cline-any cline-yes">
|
|
1278
|
-
<span class="cline-any cline-yes">
|
|
1279
|
-
<span class="cline-any cline-yes">
|
|
1280
|
-
<span class="cline-any cline-yes">
|
|
1275
|
+
<span class="cline-any cline-yes">325x</span>
|
|
1276
|
+
<span class="cline-any cline-yes">321x</span>
|
|
1277
|
+
<span class="cline-any cline-yes">321x</span>
|
|
1278
|
+
<span class="cline-any cline-yes">321x</span>
|
|
1279
|
+
<span class="cline-any cline-yes">228x</span>
|
|
1280
|
+
<span class="cline-any cline-yes">228x</span>
|
|
1281
1281
|
<span class="cline-any cline-neutral"> </span>
|
|
1282
1282
|
<span class="cline-any cline-neutral"> </span>
|
|
1283
|
-
<span class="cline-any cline-yes">
|
|
1284
|
-
<span class="cline-any cline-yes">
|
|
1283
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1284
|
+
<span class="cline-any cline-yes">4x</span>
|
|
1285
1285
|
<span class="cline-any cline-neutral"> </span>
|
|
1286
1286
|
<span class="cline-any cline-neutral"> </span>
|
|
1287
1287
|
<span class="cline-any cline-neutral"> </span>
|
|
1288
|
-
<span class="cline-any cline-yes">
|
|
1288
|
+
<span class="cline-any cline-yes">328x</span>
|
|
1289
1289
|
<span class="cline-any cline-neutral"> </span>
|
|
1290
1290
|
<span class="cline-any cline-neutral"> </span>
|
|
1291
1291
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -2233,7 +2233,7 @@ export function createSocket<R extends AppRegistryBase>(
|
|
|
2233
2233
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2234
2234
|
Code coverage generated by
|
|
2235
2235
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2236
|
-
at 2026-04-
|
|
2236
|
+
at 2026-04-15T02:27:16.035Z
|
|
2237
2237
|
</div>
|
|
2238
2238
|
<script src="../prettify.js"></script>
|
|
2239
2239
|
<script>
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
207
207
|
Code coverage generated by
|
|
208
208
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
209
|
-
at 2026-04-
|
|
209
|
+
at 2026-04-15T02:27:16.035Z
|
|
210
210
|
</div>
|
|
211
211
|
<script src="../prettify.js"></script>
|
|
212
212
|
<script>
|