diff --git a/.ai/knowledge/02-dependencies.md b/.ai/knowledge/02-dependencies.md index db3049269..4ce2f5b3a 100644 --- a/.ai/knowledge/02-dependencies.md +++ b/.ai/knowledge/02-dependencies.md @@ -14,8 +14,8 @@ bunx # Execute packages | Tool | Minimum | Current | | ---------- | -------- | ------- | -| Node.js | >=24.0.0 | LTS 24 | -| Bun | 1.3.8 | 1.3.9 | +| Node.js | >=24.0.0 | 24 LTS + 25 current | +| Bun | 1.3.8 | 1.3.10 | | TypeScript | ^5.9.3 | 5.9.3 | ## Key Dependencies @@ -47,4 +47,4 @@ bun run clean # Clean all build artifacts - ❌ pnpm / npm / yarn - ❌ ESLint / Prettier - ❌ pnpm-lock.yaml (we have bun.lock) -- ❌ Node.js 25 (not LTS, use 24) +- ❌ Node.js <24 diff --git a/.ai/knowledge/08-integration-lane-checklist-2026-02-27.md b/.ai/knowledge/08-integration-lane-checklist-2026-02-27.md new file mode 100644 index 000000000..93c40cf7c --- /dev/null +++ b/.ai/knowledge/08-integration-lane-checklist-2026-02-27.md @@ -0,0 +1,29 @@ +# Integration Lane Checklist (Astro -> TanStack -> React Native -> Expo) + +This checklist enforces sequential delivery (`WIP = 1`) and explicit Definition +of Done for each lane. + +## Rules + +- Only one active lane at a time. +- Next lane starts only after previous lane reaches `done`. +- If blocked for more than one business day, stop lane and open a follow-up issue. + +## Lane Status + +| Lane | Status | Owner | Branch | PR | Notes | +| --- | --- | --- | --- | --- | --- | +| Astro | done | SQLoot | `feat/new-integrations` | TBD | `coverage:lane:astro` + gate pass, example build pass. | +| TanStack | done | SQLoot | `feat/new-integrations` | TBD | `coverage:lane:tanstack` + gate pass, example build pass. | +| React Native | done | SQLoot | `feat/new-integrations` | TBD | `coverage:lane:react-native` + gate pass, package build pass. | +| Expo | done | SQLoot | `feat/new-integrations` | TBD | `coverage:lane:expo` + web export pass; `expo-doctor` kept informational due Bun workspace duplicate-module false positives. | + +## DoD Checklist Template + +- [ ] Unit tests cover server/client/wrapper paths +- [ ] Error contract (`name`, `code`, message) is asserted +- [ ] Lane coverage command passes +- [ ] Lane coverage gate passes at `100/100/100/100` +- [ ] Example smoke build passes +- [ ] CI lane is green +- [ ] Knowledge log updated with snapshot and decisions diff --git a/.generated/evolu-docs/api-reference/bun/functions/runBunDbWorkerScope.mdx b/.generated/evolu-docs/api-reference/bun/functions/runBunDbWorkerScope.mdx deleted file mode 100644 index 249ace107..000000000 --- a/.generated/evolu-docs/api-reference/bun/functions/runBunDbWorkerScope.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/bun](/docs/api-reference/bun/page.mdx) / runBunDbWorkerScope - -```ts -function runBunDbWorkerScope(self: BunDbWorkerScope): void; -``` - -Defined in: [BunDbWorker.ts:43](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/bun/src/BunDbWorker.ts#L43) - -Database Worker scope for Bun. - -This is the entry point for the worker. It handles all incoming messages -and routes them to appropriate handlers. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `self` | [`BunDbWorkerScope`](/docs/api-reference/bun/interfaces/BunDbWorkerScope.mdx) | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/bun/interfaces/BunDbWorkerScope.mdx b/.generated/evolu-docs/api-reference/bun/interfaces/BunDbWorkerScope.mdx deleted file mode 100644 index 670b6e940..000000000 --- a/.generated/evolu-docs/api-reference/bun/interfaces/BunDbWorkerScope.mdx +++ /dev/null @@ -1,44 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/bun](/docs/api-reference/bun/page.mdx) / BunDbWorkerScope - -Defined in: [BunDbWorker.ts:32](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/bun/src/BunDbWorker.ts#L32) - -Minimal worker scope shape used by [runBunDbWorkerScope](/docs/api-reference/bun/functions/runBunDbWorkerScope.mdx). - -Using this explicit interface allows running the worker logic in tests -without spawning a real Worker thread. - -## Properties - - - -### onmessage - -```ts -onmessage: - | (event: MessageEvent) => void - | null; -``` - -Defined in: [BunDbWorker.ts:34](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/bun/src/BunDbWorker.ts#L34) - -*** - - - -### postMessage() - -```ts -postMessage: (message: DbWorkerOutput) => void; -``` - -Defined in: [BunDbWorker.ts:33](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/bun/src/BunDbWorker.ts#L33) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `message` | [`DbWorkerOutput`](/docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerOutput.mdx) | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/bun/page.mdx b/.generated/evolu-docs/api-reference/bun/page.mdx deleted file mode 100644 index 3cafb146b..000000000 --- a/.generated/evolu-docs/api-reference/bun/page.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / @evolu/bun - -Bun-specific Database Worker implementation. - -Uses bun:sqlite for synchronous SQLite operations inside a worker. -The worker receives messages from the main thread and executes -database operations. - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [BunDbWorkerScope](/docs/api-reference/bun/interfaces/BunDbWorkerScope.mdx) | Minimal worker scope shape used by [runBunDbWorkerScope](/docs/api-reference/bun/functions/runBunDbWorkerScope.mdx). | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [bunDbWorkerCode](/docs/api-reference/bun/variables/bunDbWorkerCode.mdx) | Worker code as a string for creating blob URLs. | - -## Functions - -| Function | Description | -| ------ | ------ | -| [runBunDbWorkerScope](/docs/api-reference/bun/functions/runBunDbWorkerScope.mdx) | Database Worker scope for Bun. | diff --git a/.generated/evolu-docs/api-reference/bun/variables/bunDbWorkerCode.mdx b/.generated/evolu-docs/api-reference/bun/variables/bunDbWorkerCode.mdx deleted file mode 100644 index 060b7ee4f..000000000 --- a/.generated/evolu-docs/api-reference/bun/variables/bunDbWorkerCode.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/bun](/docs/api-reference/bun/page.mdx) / bunDbWorkerCode - -```ts -const bunDbWorkerCode: "\nimport { Database } from \"bun:sqlite\";\n\nlet db = null;\nconst statementCache = new Map();\n\nconst clearStatementCache = () => {\n for (const statement of statementCache.values()) statement.finalize();\n statementCache.clear();\n};\n\nconst requireDb = () => {\n if (!db) throw new Error(\"Database not initialized\");\n return db;\n};\n\nconst getStatement = (sql) => {\n let statement = statementCache.get(sql);\n if (!statement) {\n statement = requireDb().query(sql);\n statementCache.set(sql, statement);\n }\n return statement;\n};\n\nself.onmessage = (event) => {\n const message = event.data;\n \n try {\n switch (message.type) {\n case \"DbWorkerInit\": {\n if (db) {\n clearStatementCache();\n db.close();\n }\n db = new Database(message.dbName === \":memory:\" ? \":memory:\" : `${message.dbName}.sqlite`);\n db.run(\"PRAGMA journal_mode = WAL;\");\n db.run(\"PRAGMA foreign_keys = ON;\");\n db.run(\"PRAGMA busy_timeout = 5000;\");\n db.run(`n CREATE TABLE IF NOT EXISTS __evolu_meta (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n );\n `);\n db.run(\n `INSERT INTO __evolu_meta (key, value)\n VALUES ('schemaVersion', ?)\n ON CONFLICT(key) DO UPDATE SET value = excluded.value;`,\n [String(message.schemaVersion)],\n );\n self.postMessage({ type: \"DbWorkerInitResponse\", success: true });\n break;\n }\n \n case \"DbWorkerGetAppOwner\": {\n const stmt = getStatement(\"SELECT value FROM __evolu_meta WHERE key = 'appOwner'\");\n const result = stmt.get();\n self.postMessage({\n type: \"DbWorkerAppOwner\",\n appOwner: result ? JSON.parse(result.value) : null,\n });\n break;\n }\n \n case \"DbWorkerQuery\": {\n const stmt = getStatement(message.sql);\n const params = message.params || [];\n const rows = params.length > 0 ? stmt.all(...params) : stmt.all();\n self.postMessage({ \n type: \"DbWorkerQueryResponse\", \n requestId: message.requestId, \n rows \n });\n break;\n }\n \n case \"DbWorkerMutate\": {\n const stmt = getStatement(message.sql);\n const params = message.params || [];\n const result = params.length > 0 ? stmt.run(...params) : stmt.run();\n self.postMessage({ \n type: \"DbWorkerMutateResponse\", \n requestId: message.requestId, \n changes: result.changes \n });\n break;\n }\n \n case \"DbWorkerExport\": {\n const data = requireDb().serialize();\n self.postMessage({ \n type: \"DbWorkerExportResponse\", \n requestId: message.requestId, \n data: new Uint8Array(data) \n });\n break;\n }\n \n case \"DbWorkerReset\": {\n const sqlite = requireDb();\n const tables = getStatement(\n \"SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE '__evolu_%' AND name NOT LIKE 'sqlite_%'\"\n ).all();\n for (const { name } of tables) {\n sqlite.run(`DROP TABLE IF EXISTS \"${name.replaceAll('\"', '\"\"')}\"`);\n }\n clearStatementCache();\n sqlite.run(\"DELETE FROM __evolu_meta WHERE key = 'appOwner'\");\n self.postMessage({ \n type: \"DbWorkerResetResponse\", \n requestId: message.requestId \n });\n break;\n }\n \n case \"DbWorkerClose\": {\n if (db) {\n clearStatementCache();\n db.close();\n db = null;\n }\n self.postMessage({\n type: \"DbWorkerCloseResponse\",\n requestId: message.requestId,\n });\n break;\n }\n \n default:\n throw new Error(\"Unknown message type: \" + message.type);\n }\n } catch (error) {\n self.postMessage({ \n type: \"DbWorkerError\", \n requestId: message.requestId,\n error: error.message \n });\n }\n};\n"; -``` - -Defined in: [BunDbWorker.ts:241](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/bun/src/BunDbWorker.ts#L241) - -Worker code as a string for creating blob URLs. - -This allows creating workers without external files. diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/appendToArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/appendToArray.mdx deleted file mode 100644 index 243ed05ab..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/appendToArray.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / appendToArray - -```ts -function appendToArray(array: readonly T[], item: T): readonly [T, T]; -``` - -Defined in: [packages/common/src/Array.ts:242](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L242) - -Appends an item to an array, returning a new non-empty readonly array. - -### Example - -```ts -appendToArray([1, 2, 3], 4); // [1, 2, 3, 4] -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] | -| `item` | `T` | - -## Returns - -readonly \[`T`, `T`\] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/arrayFrom.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/arrayFrom.mdx deleted file mode 100644 index 95c72fad5..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/arrayFrom.mdx +++ /dev/null @@ -1,72 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / arrayFrom - -## Call Signature - -```ts -function arrayFrom(iterable: Iterable): readonly T[]; -``` - -Defined in: [packages/common/src/Array.ts:174](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L174) - -Better `Array.from`. - -- Returns readonly arrays -- Accepts length directly: `arrayFrom(3, fn)` instead of `Array.from({ length: - 3 }, fn)` -- Skips copying if iterable is already an array (safe because readonly) - -### Example - -```ts -arrayFrom(new Set([1, 2, 3])); // ReadonlyArray -arrayFrom(3, (i) => i * 10); // [0, 10, 20] -arrayFrom(iterableMaybeArray); // no unnecessary copy -``` - -Unlike `Array.from`, there's no map parameter for iterables — use -[mapArray](/docs/api-reference/common/Array/functions/mapArray.mdx) instead, or -[iterator helpers](https://web.dev/blog/baseline-iterator-helpers) -directly on iterables. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `iterable` | [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<`T`\> | - -### Returns - -readonly `T`[] - -## Call Signature - -```ts -function arrayFrom(length: number, map: (index: number) => T): readonly T[]; -``` - -Defined in: [packages/common/src/Array.ts:176](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L176) - -From length and map function. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `length` | `number` | -| `map` | (`index`: `number`) => `T` | - -### Returns - -readonly `T`[] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/concatArrays.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/concatArrays.mdx deleted file mode 100644 index 9569b9e77..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/concatArrays.mdx +++ /dev/null @@ -1,92 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / concatArrays - -## Call Signature - -```ts -function concatArrays(first: readonly [T, T] | [T, ...T[]], second: readonly T[] | T[]): readonly [T, T]; -``` - -Defined in: [packages/common/src/Array.ts:380](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L380) - -Concatenates two arrays, returning a new readonly array. - -Returns a non-empty array when at least one input is non-empty. - -### Example - -```ts -concatArrays([1, 2], [3, 4]); // [1, 2, 3, 4] -concatArrays([], [1]); // [1] (non-empty) -concatArrays([1], []); // [1] (non-empty) -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `first` | readonly \[`T`, `T`\] \| \[`T`, `...T[]`\] | -| `second` | readonly `T`[] \| `T`[] | - -### Returns - -readonly \[`T`, `T`\] - -## Call Signature - -```ts -function concatArrays(first: readonly T[] | T[], second: readonly [T, T] | [T, ...T[]]): readonly [T, T]; -``` - -Defined in: [packages/common/src/Array.ts:385](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L385) - -Second non-empty. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `first` | readonly `T`[] \| `T`[] | -| `second` | readonly \[`T`, `T`\] \| \[`T`, `...T[]`\] | - -### Returns - -readonly \[`T`, `T`\] - -## Call Signature - -```ts -function concatArrays(first: readonly T[] | T[], second: readonly T[] | T[]): readonly T[]; -``` - -Defined in: [packages/common/src/Array.ts:390](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L390) - -Both possibly empty. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `first` | readonly `T`[] \| `T`[] | -| `second` | readonly `T`[] \| `T`[] | - -### Returns - -readonly `T`[] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/dedupeArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/dedupeArray.mdx deleted file mode 100644 index 8227263fe..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/dedupeArray.mdx +++ /dev/null @@ -1,77 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / dedupeArray - -## Call Signature - -```ts -function dedupeArray(array: readonly [T, T] | [T, ...T[]], by?: (item: T) => unknown): readonly [T, T]; -``` - -Defined in: [packages/common/src/Array.ts:473](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L473) - -Returns a new readonly array with duplicate items removed. If `by` is -provided, it will be used to derive the key for uniqueness; otherwise values -are used directly. Dedupes by reference equality of values (or extracted keys -when `by` is used). - -Preserves non-empty type. - -### Example - -```ts -// Dedupe primitives by value -dedupeArray([1, 2, 1, 3, 2]); // [1, 2, 3] - -// Dedupe objects by property -dedupeArray( - [ - { id: 1, name: "Alice" }, - { id: 2, name: "Bob" }, - { id: 1, name: "Alice 2" }, - ], - (item) => item.id, -); // [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }] -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly \[`T`, `T`\] \| \[`T`, `...T[]`\] | -| `by?` | (`item`: `T`) => `unknown` | - -### Returns - -readonly \[`T`, `T`\] - -## Call Signature - -```ts -function dedupeArray(array: readonly T[] | T[], by?: (item: T) => unknown): readonly T[]; -``` - -Defined in: [packages/common/src/Array.ts:478](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L478) - -Possibly empty array. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] \| `T`[] | -| `by?` | (`item`: `T`) => `unknown` | - -### Returns - -readonly `T`[] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/filterArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/filterArray.mdx deleted file mode 100644 index 1703c3d80..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/filterArray.mdx +++ /dev/null @@ -1,80 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / filterArray - -## Call Signature - -```ts -function filterArray(array: readonly T[], refinement: RefinementWithIndex): readonly S[]; -``` - -Defined in: [packages/common/src/Array.ts:430](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L430) - -Filters an array using a predicate or refinement function, returning a new -readonly array. - -When used with a refinement function (with `value is Type` syntax), -TypeScript will narrow the result type to the narrowed type, making it useful -for filtering with Evolu Types like `PositiveInt.is`. - -### Example - -### With predicate - -```ts -filterArray([1, 2, 3, 4, 5], (x) => x % 2 === 0); // [2, 4] -``` - -### With refinement - -```ts -const mixed: ReadonlyArray = [ - NonEmptyString.orThrow("hello"), - PositiveInt.orThrow(42), -]; -const positiveInts = filterArray(mixed, PositiveInt.is); -// positiveInts: ReadonlyArray (narrowed type) -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `S` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] | -| `refinement` | [`RefinementWithIndex`](/docs/api-reference/common/Types/type-aliases/RefinementWithIndex.mdx)\<`T`, `S`\> | - -### Returns - -readonly `S`[] - -## Call Signature - -```ts -function filterArray(array: readonly T[], predicate: PredicateWithIndex): readonly T[]; -``` - -Defined in: [packages/common/src/Array.ts:435](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L435) - -With predicate. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] | -| `predicate` | [`PredicateWithIndex`](/docs/api-reference/common/Types/type-aliases/PredicateWithIndex.mdx)\<`T`\> | - -### Returns - -readonly `T`[] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/firstInArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/firstInArray.mdx deleted file mode 100644 index bbc2a52f4..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/firstInArray.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / firstInArray - -```ts -function firstInArray(array: readonly [T, T]): T; -``` - -Defined in: [packages/common/src/Array.ts:647](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L647) - -Returns the first element of a non-empty array. - -### Example - -```ts -firstInArray(["a", "b", "c"]); // "a" -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly \[`T`, `T`\] | - -## Returns - -`T` diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/flatMapArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/flatMapArray.mdx deleted file mode 100644 index 4bc49d51a..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/flatMapArray.mdx +++ /dev/null @@ -1,137 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / flatMapArray - -## Call Signature - -```ts -function flatMapArray(array: - | readonly [readonly [T, T] | [T, ...T[]], readonly [T, T] | [T, ...T[]]] - | [readonly [T, T] | [T, ...T[]], ...(readonly [T, T] | [T, ...T[]])[]]): readonly [T, T]; -``` - -Defined in: [packages/common/src/Array.ts:328](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L328) - -Maps each element to an array and flattens the result. - -Preserves non-empty type when the input is non-empty and the mapper returns -non-empty arrays. When called without a mapper, flattens nested arrays using -[identity](/docs/api-reference/common/Function/functions/identity.mdx). - -### Example - -```ts -flatMapArray([ - [1, 2], - [3, 4], -]); // [1, 2, 3, 4] - -flatMapArray([1, 2, 3], (x) => [x, x * 10]); // [1, 10, 2, 20, 3, 30] -``` - -### Filter and map in one pass - -Return `[]` to filter out, `[value]` to keep: - -```ts -const errors = flatMapArray(fields, (f) => { - const result = validate(f); - return result.ok ? [] : [result.error]; -}); -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | \| readonly \[readonly \[`T`, `T`\] \| \[`T`, `...T[]`\], readonly \[`T`, `T`\] \| \[`T`, `...T[]`\]\] \| \[readonly \[`T`, `T`\] \| \[`T`, `...T[]`\], ...(readonly \[T, T\] \| \[T, ...T\[\]\])\[\]\] | - -### Returns - -readonly \[`T`, `T`\] - -## Call Signature - -```ts -function flatMapArray(array: readonly (readonly T[] | T[])[] | (readonly T[] | T[])[]): readonly T[]; -``` - -Defined in: [packages/common/src/Array.ts:334](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L334) - -Possibly empty nested arrays. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly (readonly `T`[] \| `T`[])[] \| (readonly `T`[] \| `T`[])[] | - -### Returns - -readonly `T`[] - -## Call Signature - -```ts -function flatMapArray(array: readonly [T, T] | [T, ...T[]], mapper: (item: T, index: number) => readonly [U, U] | [U, ...U[]]): readonly [U, U]; -``` - -Defined in: [packages/common/src/Array.ts:340](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L340) - -Non-empty with mapper returning non-empty. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `U` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly \[`T`, `T`\] \| \[`T`, `...T[]`\] | -| `mapper` | (`item`: `T`, `index`: `number`) => readonly \[`U`, `U`\] \| \[`U`, `...U[]`\] | - -### Returns - -readonly \[`U`, `U`\] - -## Call Signature - -```ts -function flatMapArray(array: readonly T[] | T[], mapper: (item: T, index: number) => readonly U[] | U[]): readonly U[]; -``` - -Defined in: [packages/common/src/Array.ts:348](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L348) - -With mapper function. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `U` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] \| `T`[] | -| `mapper` | (`item`: `T`, `index`: `number`) => readonly `U`[] \| `U`[] | - -### Returns - -readonly `U`[] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/isNonEmptyArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/isNonEmptyArray.mdx deleted file mode 100644 index 95a869573..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/isNonEmptyArray.mdx +++ /dev/null @@ -1,74 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / isNonEmptyArray - -## Call Signature - -```ts -function isNonEmptyArray(array: T[]): array is [T, ...T[]]; -``` - -Defined in: [packages/common/src/Array.ts:220](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L220) - -Checks if an array is non-empty and narrows its type to [NonEmptyArray](/docs/api-reference/common/Array/type-aliases/NonEmptyArray.mdx) -or [NonEmptyReadonlyArray](/docs/api-reference/common/Array/type-aliases/NonEmptyReadonlyArray.mdx) based on the input. - -To check if an array is empty, use `if (!isNonEmptyArray(arr))` — using the -negated guard is better than `.length === 0` for early returns because -TypeScript narrows the type after the check. - -### Example - -```ts -// Mutable array narrows to NonEmptyArray -const arr: Array = [1, 2, 3]; -if (isNonEmptyArray(arr)) { - shiftFromArray(arr); // arr is NonEmptyArray -} - -// Readonly array narrows to NonEmptyReadonlyArray -const readonly: ReadonlyArray = [1, 2, 3]; -if (isNonEmptyArray(readonly)) { - firstInArray(readonly); // readonly is NonEmptyReadonlyArray -} -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | `T`[] | - -### Returns - -`array is [T, ...T[]]` - -## Call Signature - -```ts -function isNonEmptyArray(array: readonly T[]): array is readonly [T, T]; -``` - -Defined in: [packages/common/src/Array.ts:222](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L222) - -Readonly array overload. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] | - -### Returns - -`array is readonly [T, T]` diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/lastInArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/lastInArray.mdx deleted file mode 100644 index b4d313314..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/lastInArray.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / lastInArray - -```ts -function lastInArray(array: readonly [T, T]): T; -``` - -Defined in: [packages/common/src/Array.ts:660](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L660) - -Returns the last element of a non-empty array. - -### Example - -```ts -lastInArray(["a", "b", "c"]); // "c" -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly \[`T`, `T`\] | - -## Returns - -`T` diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/mapArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/mapArray.mdx deleted file mode 100644 index 2b7f712ef..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/mapArray.mdx +++ /dev/null @@ -1,65 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / mapArray - -## Call Signature - -```ts -function mapArray(array: readonly [T, T] | [T, ...T[]], mapper: (item: T, index: number) => U): readonly [U, U]; -``` - -Defined in: [packages/common/src/Array.ts:277](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L277) - -Maps an array using a mapper function, returning a new readonly array. - -Preserves non-empty type. - -### Example - -```ts -mapArray([1, 2, 3], (x) => x * 2); // [2, 4, 6] -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `U` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly \[`T`, `T`\] \| \[`T`, `...T[]`\] | -| `mapper` | (`item`: `T`, `index`: `number`) => `U` | - -### Returns - -readonly \[`U`, `U`\] - -## Call Signature - -```ts -function mapArray(array: readonly T[] | T[], mapper: (item: T, index: number) => U): readonly U[]; -``` - -Defined in: [packages/common/src/Array.ts:282](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L282) - -Possibly empty array. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `U` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] \| `T`[] | -| `mapper` | (`item`: `T`, `index`: `number`) => `U` | - -### Returns - -readonly `U`[] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/partitionArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/partitionArray.mdx deleted file mode 100644 index 011e4f6ac..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/partitionArray.mdx +++ /dev/null @@ -1,89 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / partitionArray - -## Call Signature - -```ts -function partitionArray(array: readonly T[], refinement: RefinementWithIndex): readonly [readonly S[], readonly Exclude[]]; -``` - -Defined in: [packages/common/src/Array.ts:537](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L537) - -Partitions an array into two readonly arrays based on a predicate or -refinement function. - -Returns a tuple where the first array contains elements that satisfy the -predicate, and the second array contains elements that do not. - -When used with a refinement function (with `value is Type` syntax), -TypeScript will narrow the first array to the narrowed type, making it useful -for filtering with Evolu Types like `PositiveInt.is`. - -### Example - -### With predicate - -```ts -const [evens, odds] = partitionArray( - [1, 2, 3, 4, 5], - (x) => x % 2 === 0, -); -evens; // [2, 4] -odds; // [1, 3, 5] -``` - -### With refinement - -```ts -const mixed: ReadonlyArray = [ - NonEmptyString.orThrow("hello"), - PositiveInt.orThrow(42), -]; -const [positiveInts, strings] = partitionArray(mixed, PositiveInt.is); -// positiveInts: ReadonlyArray (narrowed type) -// strings: ReadonlyArray (Exclude) -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `S` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] | -| `refinement` | [`RefinementWithIndex`](/docs/api-reference/common/Types/type-aliases/RefinementWithIndex.mdx)\<`T`, `S`\> | - -### Returns - -readonly \[readonly `S`[], readonly `Exclude`\<`T`, `S`\>[]\] - -## Call Signature - -```ts -function partitionArray(array: readonly T[], predicate: PredicateWithIndex): readonly [readonly T[], readonly T[]]; -``` - -Defined in: [packages/common/src/Array.ts:542](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L542) - -With predicate. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] | -| `predicate` | [`PredicateWithIndex`](/docs/api-reference/common/Types/type-aliases/PredicateWithIndex.mdx)\<`T`\> | - -### Returns - -readonly \[readonly `T`[], readonly `T`[]\] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/popFromArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/popFromArray.mdx deleted file mode 100644 index 5e994ce69..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/popFromArray.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / popFromArray - -```ts -function popFromArray(array: [T, ...T[]]): T; -``` - -Defined in: [packages/common/src/Array.ts:701](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L701) - -Pops (removes and returns) the last element from a non-empty mutable array. - -**Mutates** the original array. - -### Example - -```ts -// Process a stack of callbacks (LIFO) -const callbackStack: Array<() => void> = [callback1, callback2]; -if (isNonEmptyArray(callbackStack)) { - popFromArray(callbackStack)(); // Remove and immediately invoke -} -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | \[`T`, `...T[]`\] | - -## Returns - -`T` diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/prependToArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/prependToArray.mdx deleted file mode 100644 index 81cd30c4c..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/prependToArray.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / prependToArray - -```ts -function prependToArray(array: readonly T[], item: T): readonly [T, T]; -``` - -Defined in: [packages/common/src/Array.ts:259](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L259) - -Prepends an item to an array, returning a new non-empty readonly array. - -### Example - -```ts -prependToArray([2, 3], 1); // [1, 2, 3] -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] | -| `item` | `T` | - -## Returns - -readonly \[`T`, `T`\] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/reverseArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/reverseArray.mdx deleted file mode 100644 index f9041d8c6..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/reverseArray.mdx +++ /dev/null @@ -1,61 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / reverseArray - -## Call Signature - -```ts -function reverseArray(array: readonly [T, T]): readonly [T, T]; -``` - -Defined in: [packages/common/src/Array.ts:606](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L606) - -Returns a new reversed readonly array. - -Wraps native `toReversed`. Preserves non-empty type. - -### Example - -```ts -reverseArray([1, 2, 3]); // [3, 2, 1] -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly \[`T`, `T`\] | - -### Returns - -readonly \[`T`, `T`\] - -## Call Signature - -```ts -function reverseArray(array: readonly T[]): readonly T[]; -``` - -Defined in: [packages/common/src/Array.ts:610](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L610) - -Possibly empty array. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] | - -### Returns - -readonly `T`[] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/shiftFromArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/shiftFromArray.mdx deleted file mode 100644 index 0237d43c8..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/shiftFromArray.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / shiftFromArray - -```ts -function shiftFromArray(array: [T, ...T[]]): T; -``` - -Defined in: [packages/common/src/Array.ts:681](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L681) - -Shifts (removes and returns) the first element from a non-empty mutable -array. - -**Mutates** the original array. - -### Example - -```ts -// Process a queue of callbacks -const waitingQueue: Array<() => void> = [callback1, callback2]; -if (isNonEmptyArray(waitingQueue)) { - shiftFromArray(waitingQueue)(); // Remove and immediately invoke -} -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | \[`T`, `...T[]`\] | - -## Returns - -`T` diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/sortArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/sortArray.mdx deleted file mode 100644 index ff27e7aed..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/sortArray.mdx +++ /dev/null @@ -1,63 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / sortArray - -## Call Signature - -```ts -function sortArray(array: readonly [T, T], compareFn?: (a: T, b: T) => number): readonly [T, T]; -``` - -Defined in: [packages/common/src/Array.ts:577](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L577) - -Returns a new sorted readonly array. - -Wraps native `toSorted`. Preserves non-empty type. - -### Example - -```ts -sortArray([3, 1, 2], (a, b) => a - b); // [1, 2, 3] -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly \[`T`, `T`\] | -| `compareFn?` | (`a`: `T`, `b`: `T`) => `number` | - -### Returns - -readonly \[`T`, `T`\] - -## Call Signature - -```ts -function sortArray(array: readonly T[], compareFn?: (a: T, b: T) => number): readonly T[]; -``` - -Defined in: [packages/common/src/Array.ts:582](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L582) - -Possibly empty array. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] | -| `compareFn?` | (`a`: `T`, `b`: `T`) => `number` | - -### Returns - -readonly `T`[] diff --git a/.generated/evolu-docs/api-reference/common/Array/functions/spliceArray.mdx b/.generated/evolu-docs/api-reference/common/Array/functions/spliceArray.mdx deleted file mode 100644 index c3de3cddc..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/functions/spliceArray.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / spliceArray - -```ts -function spliceArray( - array: readonly T[], - start: number, - deleteCount: number, ... - items: readonly T[]): readonly T[]; -``` - -Defined in: [packages/common/src/Array.ts:629](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L629) - -Returns a new readonly array with elements removed and/or replaced. - -Wraps native `toSpliced`. - -### Example - -```ts -spliceArray([1, 2, 3, 4], 1, 2); // [1, 4] -spliceArray([1, 2, 3], 1, 1, 10, 11); // [1, 10, 11, 3] -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | readonly `T`[] | -| `start` | `number` | -| `deleteCount` | `number` | -| ...`items` | readonly `T`[] | - -## Returns - -readonly `T`[] diff --git a/.generated/evolu-docs/api-reference/common/Array/page.mdx b/.generated/evolu-docs/api-reference/common/Array/page.mdx deleted file mode 100644 index a257ddd22..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/page.mdx +++ /dev/null @@ -1,171 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Array - -Array helpers that help TypeScript help you. - -- **Non-empty arrays**: compile-time guarantee of at least one element -- **Readonly arrays**: prevents accidental mutation - -Instead of checking array length at runtime, use [NonEmptyReadonlyArray](/docs/api-reference/common/Array/type-aliases/NonEmptyReadonlyArray.mdx) -so TypeScript rejects empty arrays at compile time. Functions like -[firstInArray](/docs/api-reference/common/Array/functions/firstInArray.mdx) require a non-empty array — TypeScript won't let us pass -an empty one. [mapArray](/docs/api-reference/common/Array/functions/mapArray.mdx) preserves non-emptiness (native `map` doesn't), -while [appendToArray](/docs/api-reference/common/Array/functions/appendToArray.mdx) and [prependToArray](/docs/api-reference/common/Array/functions/prependToArray.mdx) guarantee the result is -non-empty. - -All helpers return readonly arrays for safety. Consider how dangerous native -`sort()` is — it mutates the original array and returns it, making bugs hard -to track: - -```ts -const sortScores = (arr: number[]) => arr.sort((a, b) => a - b); - -const scores = [3, 1, 2]; -const leaderboard = sortScores(scores); -leaderboard; // [1, 2, 3] -scores; // [1, 2, 3] — original order lost! -``` - -Imagine every methods doing that. - -On a `ReadonlyArray`, `.sort()` doesn't even exist. Use [sortArray](/docs/api-reference/common/Array/functions/sortArray.mdx) -instead: - -```ts -const sortScores = (arr: ReadonlyArray) => - sortArray(arr, (a, b) => a - b); - -const scores: ReadonlyArray = [3, 1, 2]; -const leaderboard = sortScores(scores); -leaderboard; // [1, 2, 3] -scores; // [3, 1, 2] — safe! -``` - -Even better, require a [NonEmptyReadonlyArray](/docs/api-reference/common/Array/type-aliases/NonEmptyReadonlyArray.mdx) — there's nothing to sort -if the array is empty anyway: - -```ts -const sortScores = (arr: NonEmptyReadonlyArray) => - sortArray(arr, (a, b) => a - b); -``` - -Sorting an empty array isn't expensive, but functions can have side effects -like database queries or network requests. Using non-empty arrays whenever -possible is a good convention. - -For performance-critical cases where mutation is needed, Evolu provides -[shiftFromArray](/docs/api-reference/common/Array/functions/shiftFromArray.mdx) and [popFromArray](/docs/api-reference/common/Array/functions/popFromArray.mdx) — but only because they improve -type safety by returning a guaranteed `T` rather than an optional value. - -## Examples - -```ts -// Types - compile-time guarantee of at least one element -const _valid: NonEmptyReadonlyArray = [1, 2, 3]; -// ts-expect-error - empty array is not a valid NonEmptyReadonlyArray -const _invalid: NonEmptyReadonlyArray = []; - -// Type guards -const arr: ReadonlyArray = [1, 2, 3]; -if (isNonEmptyArray(arr)) { - firstInArray(arr); -} - -// Transformations -const appended = appendToArray([1, 2, 3], 4); // [1, 2, 3, 4] -const prepended = prependToArray([2, 3], 1); // [1, 2, 3] -const readonly: ReadonlyArray = [1, 2, 3]; -const mapped = mapArray(readonly, (x) => x * 2); // [2, 4, 6] -const filtered = filterArray(readonly, (x) => x > 1); // [2, 3] -const deduped = dedupeArray([1, 2, 1, 3, 2]); // [1, 2, 3] -const [evens, odds] = partitionArray( - [1, 2, 3, 4, 5], - (x) => x % 2 === 0, -); - -// Accessors -const first = firstInArray(["a", "b", "c"]); // "a" -const last = lastInArray(["a", "b", "c"]); // "c" - -// Mutations -const mutable: NonEmptyArray = [1, 2, 3]; -shiftFromArray(mutable); // 1 (guaranteed to exist) -mutable; // [2, 3] -``` - -## Composition - -All array helpers use a data-first style (the array is the first argument) -because it's natural for single operations: - -```ts -const timestamps = mapArray(messages, (m) => m.timestamp); -``` - -Data-first style also reads well for a few operations, often fitting on a -line: - -```ts -const cheapest = firstInArray(sortArray(prices, orderNumber)); -const uniqueNames = dedupeArray(mapArray(users, (u) => u.name)); -const latestDone = lastInArray(filterArray(jobs, isCompletedJob)); -``` - -For more operations, create a function like `getOldestActiveUser` or a -generic helper. - -Some libraries provide dual APIs with data-last for pipe-based composition. -Evolu prefers simplicity (in Latin, simplex means "one") so we don't have to -choose between seemingly equivalent options (Buridan's ass dilemma). - -Evolu doesn't provide `pipe` because few operations compose well without it, -and for more operations, well-named functions communicate intent better. - -## Types - -| Name | Description | -| ------ | ------ | -| [NonEmptyArray](/docs/api-reference/common/Array/type-aliases/NonEmptyArray.mdx) | An array with at least one element. | -| [NonEmptyReadonlyArray](/docs/api-reference/common/Array/type-aliases/NonEmptyReadonlyArray.mdx) | A readonly array with at least one element. | -| [isNonEmptyArray](/docs/api-reference/common/Array/functions/isNonEmptyArray.mdx) | Checks if an array is non-empty and narrows its type to [NonEmptyArray](/docs/api-reference/common/Array/type-aliases/NonEmptyArray.mdx) or [NonEmptyReadonlyArray](/docs/api-reference/common/Array/type-aliases/NonEmptyReadonlyArray.mdx) based on the input. | - -## Constants - -| Variable | Description | -| ------ | ------ | -| [emptyArray](/docs/api-reference/common/Array/variables/emptyArray.mdx) | An empty readonly array. | - -## Transformations - -| Function | Description | -| ------ | ------ | -| [appendToArray](/docs/api-reference/common/Array/functions/appendToArray.mdx) | Appends an item to an array, returning a new non-empty readonly array. | -| [concatArrays](/docs/api-reference/common/Array/functions/concatArrays.mdx) | Concatenates two arrays, returning a new readonly array. | -| [dedupeArray](/docs/api-reference/common/Array/functions/dedupeArray.mdx) | Returns a new readonly array with duplicate items removed. If `by` is provided, it will be used to derive the key for uniqueness; otherwise values are used directly. Dedupes by reference equality of values (or extracted keys when `by` is used). | -| [filterArray](/docs/api-reference/common/Array/functions/filterArray.mdx) | Filters an array using a predicate or refinement function, returning a new readonly array. | -| [flatMapArray](/docs/api-reference/common/Array/functions/flatMapArray.mdx) | Maps each element to an array and flattens the result. | -| [mapArray](/docs/api-reference/common/Array/functions/mapArray.mdx) | Maps an array using a mapper function, returning a new readonly array. | -| [partitionArray](/docs/api-reference/common/Array/functions/partitionArray.mdx) | Partitions an array into two readonly arrays based on a predicate or refinement function. | -| [prependToArray](/docs/api-reference/common/Array/functions/prependToArray.mdx) | Prepends an item to an array, returning a new non-empty readonly array. | -| [reverseArray](/docs/api-reference/common/Array/functions/reverseArray.mdx) | Returns a new reversed readonly array. | -| [sortArray](/docs/api-reference/common/Array/functions/sortArray.mdx) | Returns a new sorted readonly array. | -| [spliceArray](/docs/api-reference/common/Array/functions/spliceArray.mdx) | Returns a new readonly array with elements removed and/or replaced. | - -## Accessors - -| Function | Description | -| ------ | ------ | -| [firstInArray](/docs/api-reference/common/Array/functions/firstInArray.mdx) | Returns the first element of a non-empty array. | -| [lastInArray](/docs/api-reference/common/Array/functions/lastInArray.mdx) | Returns the last element of a non-empty array. | - -## Mutations - -| Function | Description | -| ------ | ------ | -| [popFromArray](/docs/api-reference/common/Array/functions/popFromArray.mdx) | Pops (removes and returns) the last element from a non-empty mutable array. | -| [shiftFromArray](/docs/api-reference/common/Array/functions/shiftFromArray.mdx) | Shifts (removes and returns) the first element from a non-empty mutable array. | - -## Constructors - -| Function | Description | -| ------ | ------ | -| [arrayFrom](/docs/api-reference/common/Array/functions/arrayFrom.mdx) | Better `Array.from`. | diff --git a/.generated/evolu-docs/api-reference/common/Array/type-aliases/NonEmptyArray.mdx b/.generated/evolu-docs/api-reference/common/Array/type-aliases/NonEmptyArray.mdx deleted file mode 100644 index a2a25d558..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/type-aliases/NonEmptyArray.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / NonEmptyArray - -```ts -type NonEmptyArray = [T, ...T[]]; -``` - -Defined in: [packages/common/src/Array.ts:133](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L133) - -An array with at least one element. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | diff --git a/.generated/evolu-docs/api-reference/common/Array/type-aliases/NonEmptyReadonlyArray.mdx b/.generated/evolu-docs/api-reference/common/Array/type-aliases/NonEmptyReadonlyArray.mdx deleted file mode 100644 index af2427b55..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/type-aliases/NonEmptyReadonlyArray.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / NonEmptyReadonlyArray - -```ts -type NonEmptyReadonlyArray = readonly [T, ...ReadonlyArray]; -``` - -Defined in: [packages/common/src/Array.ts:140](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L140) - -A readonly array with at least one element. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | diff --git a/.generated/evolu-docs/api-reference/common/Array/variables/emptyArray.mdx b/.generated/evolu-docs/api-reference/common/Array/variables/emptyArray.mdx deleted file mode 100644 index 4e5735efc..000000000 --- a/.generated/evolu-docs/api-reference/common/Array/variables/emptyArray.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Array](/docs/api-reference/common/Array/page.mdx) / emptyArray - -```ts -const emptyArray: ReadonlyArray = []; -``` - -Defined in: [packages/common/src/Array.ts:149](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Array.ts#L149) - -An empty readonly array. - -Use as a default or initial value to avoid allocating new empty arrays. diff --git a/.generated/evolu-docs/api-reference/common/Assert/page.mdx b/.generated/evolu-docs/api-reference/common/Assert/page.mdx deleted file mode 100644 index 0113de1ef..000000000 --- a/.generated/evolu-docs/api-reference/common/Assert/page.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Assert - -Runtime assertions for invariant checking. - -## Variables - -| Variable | Description | -| ------ | ------ | -| [assert](/docs/api-reference/common/Assert/variables/assert.mdx) | Ensures a condition is true, throwing an error with the provided message if not. | -| [assertNonEmptyArray](/docs/api-reference/common/Assert/variables/assertNonEmptyArray.mdx) | Asserts that an array is non-empty. | -| [assertNonEmptyReadonlyArray](/docs/api-reference/common/Assert/variables/assertNonEmptyReadonlyArray.mdx) | Asserts that a readonly array is non-empty. | -| [assertType](/docs/api-reference/common/Assert/variables/assertType.mdx) | Ensures a value conforms to a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | diff --git a/.generated/evolu-docs/api-reference/common/Assert/variables/assert.mdx b/.generated/evolu-docs/api-reference/common/Assert/variables/assert.mdx deleted file mode 100644 index 640d2614a..000000000 --- a/.generated/evolu-docs/api-reference/common/Assert/variables/assert.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Assert](/docs/api-reference/common/Assert/page.mdx) / assert - -```ts -const assert: (condition: unknown, message: string) => asserts condition; -``` - -Defined in: [packages/common/src/Assert.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Assert.ts#L27) - -Ensures a condition is true, throwing an error with the provided message if -not. - -Prevents invalid states from propagating through the system by halting -execution when a condition fails, improving reliability and debuggability. - -Do not use this instead of [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). Assertions are intended for -conditions that are logically guaranteed but not statically known by -TypeScript, or for catching and signaling developer mistakes eagerly. - -### Example - -```ts -assert(true, "true is not true"); // no-op -assert(false, "true is not true"); // throws Error -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `condition` | `unknown` | -| `message` | `string` | - -## Returns - -`asserts condition` diff --git a/.generated/evolu-docs/api-reference/common/Assert/variables/assertNonEmptyArray.mdx b/.generated/evolu-docs/api-reference/common/Assert/variables/assertNonEmptyArray.mdx deleted file mode 100644 index 1b59d7d51..000000000 --- a/.generated/evolu-docs/api-reference/common/Assert/variables/assertNonEmptyArray.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Assert](/docs/api-reference/common/Assert/page.mdx) / assertNonEmptyArray - -```ts -const assertNonEmptyArray: (arr: T[], message?: string) => asserts arr is [T, ...T[]]; -``` - -Defined in: [packages/common/src/Assert.ts:50](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Assert.ts#L50) - -Asserts that an array is non-empty. - -Ensures the provided array has at least one element, helping TypeScript infer -the array as non-empty when this is logically guaranteed but not statically -known. - -### Example - -```ts -assertNonEmptyArray([1, 2, 3]); // no-op -assertNonEmptyArray([]); // throws Error -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `arr` | `T`[] | -| `message?` | `string` | - -## Returns - -`asserts arr is [T, ...T[]]` diff --git a/.generated/evolu-docs/api-reference/common/Assert/variables/assertNonEmptyReadonlyArray.mdx b/.generated/evolu-docs/api-reference/common/Assert/variables/assertNonEmptyReadonlyArray.mdx deleted file mode 100644 index 0171dce8c..000000000 --- a/.generated/evolu-docs/api-reference/common/Assert/variables/assertNonEmptyReadonlyArray.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Assert](/docs/api-reference/common/Assert/page.mdx) / assertNonEmptyReadonlyArray - -```ts -const assertNonEmptyReadonlyArray: (arr: ReadonlyArray, message?: string) => asserts arr is readonly [T, ...T[]]; -``` - -Defined in: [packages/common/src/Assert.ts:74](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Assert.ts#L74) - -Asserts that a readonly array is non-empty. - -Ensures the provided readonly array has at least one element, helping -TypeScript infer non-emptiness when this is logically guaranteed but not -statically known. - -### Example - -```ts -assertNonEmptyReadonlyArray([1, 2, 3]); // no-op -assertNonEmptyReadonlyArray([]); // throws Error -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `arr` | `ReadonlyArray`\<`T`\> | -| `message?` | `string` | - -## Returns - -`asserts arr is readonly [T, ...T[]]` diff --git a/.generated/evolu-docs/api-reference/common/Assert/variables/assertType.mdx b/.generated/evolu-docs/api-reference/common/Assert/variables/assertType.mdx deleted file mode 100644 index 5d9d4b8d8..000000000 --- a/.generated/evolu-docs/api-reference/common/Assert/variables/assertType.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Assert](/docs/api-reference/common/Assert/page.mdx) / assertType - -```ts -const assertType: (type: T, value: unknown, message?: string) => asserts value is InferType; -``` - -Defined in: [packages/common/src/Assert.ts:98](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Assert.ts#L98) - -Ensures a value conforms to a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -Uses the Type name for the default error message. - -### Example - -```ts -const length = buffer.getLength(); - -// We know length is logically non-negative, but TypeScript doesn't. -assertType(NonNegativeInt, length); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `type` | `T` | -| `value` | `unknown` | -| `message?` | `string` | - -## Returns - -`asserts value is InferType` diff --git a/.generated/evolu-docs/api-reference/common/BigInt/functions/clampBigInt.mdx b/.generated/evolu-docs/api-reference/common/BigInt/functions/clampBigInt.mdx deleted file mode 100644 index bdc1c748d..000000000 --- a/.generated/evolu-docs/api-reference/common/BigInt/functions/clampBigInt.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [BigInt](/docs/api-reference/common/BigInt/page.mdx) / clampBigInt - -```ts -function clampBigInt(min: bigint, max: bigint): (n: bigint) => bigint; -``` - -Defined in: [packages/common/src/BigInt.ts:17](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/BigInt.ts#L17) - -Clamps a bigint within a given range. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `min` | `bigint` | -| `max` | `bigint` | - -## Returns - -```ts -(n: bigint): bigint; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `n` | `bigint` | - -### Returns - -`bigint` diff --git a/.generated/evolu-docs/api-reference/common/BigInt/functions/decrementBigInt.mdx b/.generated/evolu-docs/api-reference/common/BigInt/functions/decrementBigInt.mdx deleted file mode 100644 index 467aba7ad..000000000 --- a/.generated/evolu-docs/api-reference/common/BigInt/functions/decrementBigInt.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [BigInt](/docs/api-reference/common/BigInt/page.mdx) / decrementBigInt - -```ts -function decrementBigInt(n: bigint): bigint; -``` - -Defined in: [packages/common/src/BigInt.ts:13](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/BigInt.ts#L13) - -Decrements a bigint by 1. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `n` | `bigint` | - -## Returns - -`bigint` diff --git a/.generated/evolu-docs/api-reference/common/BigInt/functions/incrementBigInt.mdx b/.generated/evolu-docs/api-reference/common/BigInt/functions/incrementBigInt.mdx deleted file mode 100644 index 0714b0579..000000000 --- a/.generated/evolu-docs/api-reference/common/BigInt/functions/incrementBigInt.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [BigInt](/docs/api-reference/common/BigInt/page.mdx) / incrementBigInt - -```ts -function incrementBigInt(n: bigint): bigint; -``` - -Defined in: [packages/common/src/BigInt.ts:10](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/BigInt.ts#L10) - -Increments a bigint by 1. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `n` | `bigint` | - -## Returns - -`bigint` diff --git a/.generated/evolu-docs/api-reference/common/BigInt/functions/isBetweenBigInt.mdx b/.generated/evolu-docs/api-reference/common/BigInt/functions/isBetweenBigInt.mdx deleted file mode 100644 index b62e30b3b..000000000 --- a/.generated/evolu-docs/api-reference/common/BigInt/functions/isBetweenBigInt.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [BigInt](/docs/api-reference/common/BigInt/page.mdx) / isBetweenBigInt - -```ts -function isBetweenBigInt(min: bigint, max: bigint): Predicate; -``` - -Defined in: [packages/common/src/BigInt.ts:33](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/BigInt.ts#L33) - -Creates a predicate that checks if a BigInt is within a range, inclusive. - -### Example - -```ts -const isBetween10And20 = isBetweenBigInt(10n, 20n); -console.log(isBetween10And20(15n)); // true -console.log(isBetween10And20(25n)); // false -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `min` | `bigint` | -| `max` | `bigint` | - -## Returns - -[`Predicate`](/docs/api-reference/common/Types/type-aliases/Predicate.mdx)\<`bigint`\> diff --git a/.generated/evolu-docs/api-reference/common/BigInt/page.mdx b/.generated/evolu-docs/api-reference/common/BigInt/page.mdx deleted file mode 100644 index 3e756d397..000000000 --- a/.generated/evolu-docs/api-reference/common/BigInt/page.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / BigInt - -BigInt arithmetic and comparison utilities. - -## Functions - -| Function | Description | -| ------ | ------ | -| [clampBigInt](/docs/api-reference/common/BigInt/functions/clampBigInt.mdx) | Clamps a bigint within a given range. | -| [decrementBigInt](/docs/api-reference/common/BigInt/functions/decrementBigInt.mdx) | Decrements a bigint by 1. | -| [incrementBigInt](/docs/api-reference/common/BigInt/functions/incrementBigInt.mdx) | Increments a bigint by 1. | -| [isBetweenBigInt](/docs/api-reference/common/BigInt/functions/isBetweenBigInt.mdx) | Creates a predicate that checks if a BigInt is within a range, inclusive. | diff --git a/.generated/evolu-docs/api-reference/common/Brand/interfaces/Brand.mdx b/.generated/evolu-docs/api-reference/common/Brand/interfaces/Brand.mdx deleted file mode 100644 index 1fb7f6288..000000000 --- a/.generated/evolu-docs/api-reference/common/Brand/interfaces/Brand.mdx +++ /dev/null @@ -1,105 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Brand](/docs/api-reference/common/Brand/page.mdx) / Brand - -Defined in: [packages/common/src/Brand.ts:88](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Brand.ts#L88) - -An interface for creating branded types. - -Branded types enhance type safety by distinguishing otherwise identical -types, such as `number` or `string`, to enforce stricter type checks. For -example, instead of a plain `number`, use `PositiveInt`. Instead of a plain -`string`, use `TrimmedString`. - -Avoid primitive types in domain code—brand everything. Evolu Type provides -many brand helpers. - -### Single Brand - -```ts -// A branded type definition -type UserId = number & Brand<"UserId">; - -// A function that creates `UserId` values. -// Casting with `as UserId` is unsafe, so `createUserId` must be unit-tested. -const createUserId = (): UserId => { - return 123 as UserId; // Unsafe casting -}; - -const userId = createUserId(); - -// A function that accepts only `UserId`. -const getUser = (id: UserId) => { - // Implementation -}; - -getUser(userId); // Valid -getUser(123); // TypeScript error -getUser("123"); // TypeScript error -``` - -### Multiple Brands (to act like flags) - -```ts -// Define branded types -type Min1 = string & Brand<"Min1">; -type Max100 = string & Brand<"Max100">; -type Min1Max100 = string & Brand<"Min1" | "Max100">; - -// Functions requiring specific brands -const requiresMin1 = (value: Min1): void => {}; -const requiresMax100 = (value: Max100): void => {}; - -// Values with single brands -const min1Value: Min1 = "hello" as Min1; -const max100Value: Max100 = "world" as Max100; - -// Value with multiple brands -const min1Max100Value: Min1Max100 = "typescript" as Min1Max100; - -// Valid cases -requiresMin1(min1Value); // Valid -requiresMax100(max100Value); // Valid -requiresMin1(min1Max100Value); // Valid: Min1Max100 satisfies Min1 -requiresMax100(min1Max100Value); // Valid: Min1Max100 satisfies Max100 -``` - -### Standalone Brand - -Brand can be used alone without a base type for purely nominal typing. This -is useful for opaque values where the internal structure is hidden and type -identity is based on name only. For example, platform-specific handles can be -branded to prevent accidental mixing of implementations while keeping common -code platform-agnostic. - -```ts -// A nominal type with no underlying structure exposed -type NativePort = Brand<"NativePort">; - -// Only values explicitly cast to NativePort are accepted -const requiresNativePort = (port: NativePort): void => {}; - -const port: NativePort = nativeValue as NativePort; -requiresNativePort(port); // Valid -requiresNativePort(nativeValue); // TypeScript error -``` - -## Extended by - -- [`Redacted`](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) - -## Type Parameters - -| Type Parameter | -| ------ | -| `B` *extends* `string` | - -## Properties - - - -### \[\_\_\_brand\] - -```ts -readonly [___brand]: Readonly>; -``` - -Defined in: [packages/common/src/Brand.ts:89](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Brand.ts#L89) diff --git a/.generated/evolu-docs/api-reference/common/Brand/page.mdx b/.generated/evolu-docs/api-reference/common/Brand/page.mdx deleted file mode 100644 index 12af0f08e..000000000 --- a/.generated/evolu-docs/api-reference/common/Brand/page.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Brand - -A utility interface for creating branded types. - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx) | An interface for creating branded types. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [IsBranded](/docs/api-reference/common/Brand/type-aliases/IsBranded.mdx) | Determines whether a type `T` is a branded type. | diff --git a/.generated/evolu-docs/api-reference/common/Brand/type-aliases/IsBranded.mdx b/.generated/evolu-docs/api-reference/common/Brand/type-aliases/IsBranded.mdx deleted file mode 100644 index 944a8afa0..000000000 --- a/.generated/evolu-docs/api-reference/common/Brand/type-aliases/IsBranded.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Brand](/docs/api-reference/common/Brand/page.mdx) / IsBranded - -```ts -type IsBranded = T extends Brand ? true : false; -``` - -Defined in: [packages/common/src/Brand.ts:104](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Brand.ts#L104) - -Determines whether a type `T` is a branded type. - -Works with any base type intersected with a `Brand`. - -### Example - -- `IsBranded` -> false -- `IsBranded>` -> true - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | diff --git a/.generated/evolu-docs/api-reference/common/Buffer/classes/BufferError.mdx b/.generated/evolu-docs/api-reference/common/Buffer/classes/BufferError.mdx deleted file mode 100644 index 46d085775..000000000 --- a/.generated/evolu-docs/api-reference/common/Buffer/classes/BufferError.mdx +++ /dev/null @@ -1,376 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Buffer](/docs/api-reference/common/Buffer/page.mdx) / BufferError - -Defined in: [packages/common/src/Buffer.ts:22](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L22) - -Custom error for [Buffer](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx)-related failures like premature end of data. -Provides better stack traces for debugging binary protocol issues. - -## Extends - -- `Error` - -## Constructors - - - -### Constructor - -```ts -new BufferError(message: string): BufferError; -``` - -Defined in: [packages/common/src/Buffer.ts:23](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L23) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `message` | `string` | - -#### Returns - -`BufferError` - -#### Overrides - -```ts -Error.constructor -``` - -## Methods - - - -### captureStackTrace() - -#### Call Signature - -```ts -static captureStackTrace(targetObject: object, constructorOpt?: Function): void; -``` - -Defined in: node\_modules/.bun/@types+node@24.10.13/node\_modules/@types/node/globals.d.ts:52 - -Creates a `.stack` property on `targetObject`, which when accessed returns -a string representing the location in the code at which -`Error.captureStackTrace()` was called. - -```js -const myObject = {}; -Error.captureStackTrace(myObject); -myObject.stack; // Similar to `new Error().stack` -``` - -The first line of the trace will be prefixed with -`${myObject.name}: ${myObject.message}`. - -The optional `constructorOpt` argument accepts a function. If given, all frames -above `constructorOpt`, including `constructorOpt`, will be omitted from the -generated stack trace. - -The `constructorOpt` argument is useful for hiding implementation -details of error generation from the user. For instance: - -```js -function a() { - b(); -} - -function b() { - c(); -} - -function c() { - // Create an error without stack trace to avoid calculating the stack trace twice. - const { stackTraceLimit } = Error; - Error.stackTraceLimit = 0; - const error = new Error(); - Error.stackTraceLimit = stackTraceLimit; - - // Capture the stack trace above function b - Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace - throw error; -} - -a(); -``` - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `targetObject` | `object` | -| `constructorOpt?` | `Function` | - -##### Returns - -`void` - -##### Inherited from - -```ts -Error.captureStackTrace -``` - -#### Call Signature - -```ts -static captureStackTrace(targetObject: object, constructorOpt?: Function): void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/globals.d.ts:52 - -Creates a `.stack` property on `targetObject`, which when accessed returns -a string representing the location in the code at which -`Error.captureStackTrace()` was called. - -```js -const myObject = {}; -Error.captureStackTrace(myObject); -myObject.stack; // Similar to `new Error().stack` -``` - -The first line of the trace will be prefixed with -`${myObject.name}: ${myObject.message}`. - -The optional `constructorOpt` argument accepts a function. If given, all frames -above `constructorOpt`, including `constructorOpt`, will be omitted from the -generated stack trace. - -The `constructorOpt` argument is useful for hiding implementation -details of error generation from the user. For instance: - -```js -function a() { - b(); -} - -function b() { - c(); -} - -function c() { - // Create an error without stack trace to avoid calculating the stack trace twice. - const { stackTraceLimit } = Error; - Error.stackTraceLimit = 0; - const error = new Error(); - Error.stackTraceLimit = stackTraceLimit; - - // Capture the stack trace above function b - Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace - throw error; -} - -a(); -``` - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `targetObject` | `object` | -| `constructorOpt?` | `Function` | - -##### Returns - -`void` - -##### Inherited from - -```ts -Error.captureStackTrace -``` - -*** - - - -### isError() - -```ts -static isError(error: unknown): error is Error; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.error.d.ts:23 - -Indicates whether the argument provided is a built-in Error instance or not. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `error` | `unknown` | - -#### Returns - -`error is Error` - -#### Inherited from - -```ts -Error.isError -``` - -*** - - - -### prepareStackTrace() - -#### Call Signature - -```ts -static prepareStackTrace(err: Error, stackTraces: CallSite[]): any; -``` - -Defined in: node\_modules/.bun/@types+node@24.10.13/node\_modules/@types/node/globals.d.ts:56 - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `err` | `Error` | -| `stackTraces` | `CallSite`[] | - -##### Returns - -`any` - -##### See - -https://v8.dev/docs/stack-trace-api#customizing-stack-traces - -##### Inherited from - -```ts -Error.prepareStackTrace -``` - -#### Call Signature - -```ts -static prepareStackTrace(err: Error, stackTraces: CallSite[]): any; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/globals.d.ts:56 - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `err` | `Error` | -| `stackTraces` | `CallSite`[] | - -##### Returns - -`any` - -##### See - -https://v8.dev/docs/stack-trace-api#customizing-stack-traces - -##### Inherited from - -```ts -Error.prepareStackTrace -``` - -## Properties - - - -### cause? - -```ts -optional cause: unknown; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.es2022.error.d.ts:26 - -#### Inherited from - -```ts -Error.cause -``` - -*** - - - -### message - -```ts -message: string; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.es5.d.ts:1077 - -#### Inherited from - -```ts -Error.message -``` - -*** - - - -### name - -```ts -name: string; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.es5.d.ts:1076 - -#### Inherited from - -```ts -Error.name -``` - -*** - - - -### stack? - -```ts -optional stack: string; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.es5.d.ts:1078 - -#### Inherited from - -```ts -Error.stack -``` - -*** - - - -### stackTraceLimit - -```ts -static stackTraceLimit: number; -``` - -Defined in: node\_modules/.bun/@types+node@24.10.13/node\_modules/@types/node/globals.d.ts:68 - -The `Error.stackTraceLimit` property specifies the number of stack frames -collected by a stack trace (whether generated by `new Error().stack` or -`Error.captureStackTrace(obj)`). - -The default value is `10` but may be set to any valid JavaScript number. Changes -will affect any stack trace captured _after_ the value has been changed. - -If set to a non-number value, or set to a negative number, stack traces will -not capture any frames. - -#### Inherited from - -```ts -Error.stackTraceLimit -``` diff --git a/.generated/evolu-docs/api-reference/common/Buffer/functions/bytesToHex.mdx b/.generated/evolu-docs/api-reference/common/Buffer/functions/bytesToHex.mdx deleted file mode 100644 index 3105bdcf7..000000000 --- a/.generated/evolu-docs/api-reference/common/Buffer/functions/bytesToHex.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Buffer](/docs/api-reference/common/Buffer/page.mdx) / bytesToHex - -```ts -function bytesToHex(bytes: Uint8Array): string; -``` - -Defined in: node\_modules/.bun/@noble+ciphers@2.1.1/node\_modules/@noble/ciphers/utils.d.ts:40 - -Convert byte array to hex string. Uses built-in function, when available. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `bytes` | `Uint8Array` | - -## Returns - -`string` - -## Example - -```ts -bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123' -``` diff --git a/.generated/evolu-docs/api-reference/common/Buffer/functions/bytesToUtf8.mdx b/.generated/evolu-docs/api-reference/common/Buffer/functions/bytesToUtf8.mdx deleted file mode 100644 index f4c0524ba..000000000 --- a/.generated/evolu-docs/api-reference/common/Buffer/functions/bytesToUtf8.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Buffer](/docs/api-reference/common/Buffer/page.mdx) / bytesToUtf8 - -```ts -function bytesToUtf8(bytes: Uint8Array): string; -``` - -Defined in: node\_modules/.bun/@noble+ciphers@2.1.1/node\_modules/@noble/ciphers/utils.d.ts:58 - -Converts bytes to string using UTF8 encoding. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `bytes` | `Uint8Array` | - -## Returns - -`string` - -## Example - -```ts -bytesToUtf8(new Uint8Array([97, 98, 99])) // 'abc' -``` diff --git a/.generated/evolu-docs/api-reference/common/Buffer/functions/concatBytes.mdx b/.generated/evolu-docs/api-reference/common/Buffer/functions/concatBytes.mdx deleted file mode 100644 index b47ef1f60..000000000 --- a/.generated/evolu-docs/api-reference/common/Buffer/functions/concatBytes.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Buffer](/docs/api-reference/common/Buffer/page.mdx) / concatBytes - -```ts -function concatBytes(...arrays: Uint8Array[]): Uint8Array; -``` - -Defined in: node\_modules/.bun/@noble+ciphers@2.1.1/node\_modules/@noble/ciphers/utils.d.ts:72 - -Copies several Uint8Arrays into one. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`arrays` | `Uint8Array`\<`ArrayBufferLike`\>[] | - -## Returns - -`Uint8Array` diff --git a/.generated/evolu-docs/api-reference/common/Buffer/functions/createBuffer.mdx b/.generated/evolu-docs/api-reference/common/Buffer/functions/createBuffer.mdx deleted file mode 100644 index e773f52d4..000000000 --- a/.generated/evolu-docs/api-reference/common/Buffer/functions/createBuffer.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Buffer](/docs/api-reference/common/Buffer/page.mdx) / createBuffer - -```ts -function createBuffer(arrayLike?: Uint8Array | ArrayLike): Buffer; -``` - -Defined in: [packages/common/src/Buffer.ts:121](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L121) - -Creates a [Buffer](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) for efficient byte operations. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `arrayLike?` | `Uint8Array`\<`ArrayBufferLike`\> \| `ArrayLike`\<`number`\> | - -## Returns - -[`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Buffer/functions/hexToBytes.mdx b/.generated/evolu-docs/api-reference/common/Buffer/functions/hexToBytes.mdx deleted file mode 100644 index 734e8644d..000000000 --- a/.generated/evolu-docs/api-reference/common/Buffer/functions/hexToBytes.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Buffer](/docs/api-reference/common/Buffer/page.mdx) / hexToBytes - -```ts -function hexToBytes(hex: string): Uint8Array; -``` - -Defined in: node\_modules/.bun/@noble+ciphers@2.1.1/node\_modules/@noble/ciphers/utils.d.ts:45 - -Convert hex string to byte array. Uses built-in function, when available. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `hex` | `string` | - -## Returns - -`Uint8Array` - -## Example - -```ts -hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23]) -``` diff --git a/.generated/evolu-docs/api-reference/common/Buffer/functions/utf8ToBytes.mdx b/.generated/evolu-docs/api-reference/common/Buffer/functions/utf8ToBytes.mdx deleted file mode 100644 index 02b2d2452..000000000 --- a/.generated/evolu-docs/api-reference/common/Buffer/functions/utf8ToBytes.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Buffer](/docs/api-reference/common/Buffer/page.mdx) / utf8ToBytes - -```ts -function utf8ToBytes(str: string): Uint8Array; -``` - -Defined in: node\_modules/.bun/@noble+ciphers@2.1.1/node\_modules/@noble/ciphers/utils.d.ts:53 - -Converts string to bytes using UTF8 encoding. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `str` | `string` | - -## Returns - -`Uint8Array` - -## Example - -```ts -utf8ToBytes('abc') // new Uint8Array([97, 98, 99]) -``` diff --git a/.generated/evolu-docs/api-reference/common/Buffer/interfaces/Buffer.mdx b/.generated/evolu-docs/api-reference/common/Buffer/interfaces/Buffer.mdx deleted file mode 100644 index 2152b4994..000000000 --- a/.generated/evolu-docs/api-reference/common/Buffer/interfaces/Buffer.mdx +++ /dev/null @@ -1,215 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Buffer](/docs/api-reference/common/Buffer/page.mdx) / Buffer - -Defined in: [packages/common/src/Buffer.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L72) - -A Buffer is a dynamic, resizable container for binary data, optimized for -scenarios where the final size is unknown. It grows exponentially (doubling -its capacity) to minimize memory reallocations and uses `subarray` for -efficient, copy-free data access in methods like `unwrap` and `shift`. - -## Recommended Usage - -Create as few Buffers as possible—typically one main Buffer for the final -output. Temporary Buffers are allowed when necessary (e.g., for -variable-length headers), but avoid excessive allocations. Buffers can be -reused within functions by leveraging `reset` to clear contents while -preserving capacity, or `truncate` to adjust the length to a specific size, -reducing the need for new allocations. Pass Buffers to `encode*` functions to -append serialized data and use `decode*` functions to extract data. Both -`shift` and `shiftN` throw an [BufferError](/docs/api-reference/common/Buffer/classes/BufferError.mdx) with message "Buffer parse -ended prematurely" on failure, as do higher-level `decode*` functions, -providing stack traces for debugging instead of using [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). This -avoids allocation overhead in success cases and leverages exceptions' -diagnostic benefits. - -### Example - -```ts -const buffer = createBuffer(); -encodeNonNegativeInt(buffer, someInt); -encodeId(buffer, someId); -const result = buffer.unwrap(); // Final serialized data - -// Decoding example (throws on error) -try { - const num = decodeNonNegativeInt(buffer); - const id = decodeId(buffer); -} catch (e) { - console.error(e.stack); // Stack trace for debugging -} -``` - -For more on exponential growth, see: -https://blog.mozilla.org/nnethercote/2014/11/04/please-grow-your-buffers-exponentially - -## Properties - - - -### extend() - -```ts -extend: (arg: Uint8Array | ArrayLike) => void; -``` - -Defined in: [packages/common/src/Buffer.ts:83](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L83) - -Appends binary data to the buffer, resizing if necessary. Throws if -`arg.length` is not a non-negative integer. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `arg` | `Uint8Array`\<`ArrayBufferLike`\> \| `ArrayLike`\<`number`\> | - -#### Returns - -`void` - -*** - - - -### getCapacity() - -```ts -getCapacity: () => number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/Buffer.ts:74](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L74) - -Returns the current capacity of the buffer. - -#### Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - -*** - - - -### getLength() - -```ts -getLength: () => number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/Buffer.ts:77](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L77) - -Returns the current number of bytes stored in the buffer. - -#### Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - -*** - - - -### reset() - -```ts -reset: () => void; -``` - -Defined in: [packages/common/src/Buffer.ts:110](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L110) - -Resets the buffer to its initial empty state, preserving its capacity. - -This allows efficient buffer reuse without reallocating memory. Use this -when you want to clear the buffer and write new data, avoiding unnecessary -allocations. - -#### Returns - -`void` - -*** - - - -### shift() - -```ts -shift: () => number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/Buffer.ts:89](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L89) - -Removes and returns the first byte. Throws an `Error` with message "Buffer -parse ended prematurely" if the buffer is empty. - -#### Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - -*** - - - -### shiftN() - -```ts -shiftN: (n: number & Brand<"Int"> & Brand<"NonNegative">) => Uint8Array; -``` - -Defined in: [packages/common/src/Buffer.ts:95](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L95) - -Removes and returns the first `n` bytes. Throws an `Error` with message -"Buffer parse ended prematurely" if fewer than `n` bytes remain. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `n` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | - -#### Returns - -`Uint8Array` - -*** - - - -### truncate() - -```ts -truncate: (length: number & Brand<"Int"> & Brand<"NonNegative">) => void; -``` - -Defined in: [packages/common/src/Buffer.ts:101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L101) - -Truncates the buffer to the specified length, discarding data from the end. -Throws if the new length is greater than the current length. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `length` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | - -#### Returns - -`void` - -*** - - - -### unwrap() - -```ts -unwrap: () => Uint8Array; -``` - -Defined in: [packages/common/src/Buffer.ts:117](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Buffer.ts#L117) - -Returns a view of the buffer’s current data. Do not modify this array, as -it directly alters the buffer’s internal state, potentially breaking -subsequent operations. - -#### Returns - -`Uint8Array` diff --git a/.generated/evolu-docs/api-reference/common/Buffer/page.mdx b/.generated/evolu-docs/api-reference/common/Buffer/page.mdx deleted file mode 100644 index bba90df8b..000000000 --- a/.generated/evolu-docs/api-reference/common/Buffer/page.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Buffer - -Binary data handling and byte array utilities. - -## Classes - -| Class | Description | -| ------ | ------ | -| [BufferError](/docs/api-reference/common/Buffer/classes/BufferError.mdx) | Custom error for [Buffer](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx)-related failures like premature end of data. Provides better stack traces for debugging binary protocol issues. | - -## Functions - -| Function | Description | -| ------ | ------ | -| [bytesToHex](/docs/api-reference/common/Buffer/functions/bytesToHex.mdx) | Convert byte array to hex string. Uses built-in function, when available. | -| [bytesToUtf8](/docs/api-reference/common/Buffer/functions/bytesToUtf8.mdx) | Converts bytes to string using UTF8 encoding. | -| [concatBytes](/docs/api-reference/common/Buffer/functions/concatBytes.mdx) | Copies several Uint8Arrays into one. | -| [createBuffer](/docs/api-reference/common/Buffer/functions/createBuffer.mdx) | Creates a [Buffer](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) for efficient byte operations. | -| [hexToBytes](/docs/api-reference/common/Buffer/functions/hexToBytes.mdx) | Convert hex string to byte array. Uses built-in function, when available. | -| [utf8ToBytes](/docs/api-reference/common/Buffer/functions/utf8ToBytes.mdx) | Converts string to bytes using UTF8 encoding. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Buffer](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | A Buffer is a dynamic, resizable container for binary data, optimized for scenarios where the final size is unknown. It grows exponentially (doubling its capacity) to minimize memory reallocations and uses `subarray` for efficient, copy-free data access in methods like `unwrap` and `shift`. | diff --git a/.generated/evolu-docs/api-reference/common/Cache/functions/createLruCache.mdx b/.generated/evolu-docs/api-reference/common/Cache/functions/createLruCache.mdx deleted file mode 100644 index 34f35f9b7..000000000 --- a/.generated/evolu-docs/api-reference/common/Cache/functions/createLruCache.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Cache](/docs/api-reference/common/Cache/page.mdx) / createLruCache - -```ts -function createLruCache(capacity: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">): Cache; -``` - -Defined in: [packages/common/src/Cache.ts:53](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Cache.ts#L53) - -Creates an LRU (least recently used) cache with a maximum capacity. - -When the cache reaches capacity, the least recently used entry is evicted. -Both `get` and `set` operations update the access order. - -### Example - -```ts -const cache = createLruCache(2); -cache.set("a", 1); -cache.set("b", 2); -cache.set("c", 3); // Evicts "a" -cache.has("a"); // false -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `K` | -| `V` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `capacity` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> | - -## Returns - -[`Cache`](/docs/api-reference/common/Cache/interfaces/Cache.mdx)\<`K`, `V`\> diff --git a/.generated/evolu-docs/api-reference/common/Cache/interfaces/Cache.mdx b/.generated/evolu-docs/api-reference/common/Cache/interfaces/Cache.mdx deleted file mode 100644 index 8df8d3534..000000000 --- a/.generated/evolu-docs/api-reference/common/Cache/interfaces/Cache.mdx +++ /dev/null @@ -1,131 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Cache](/docs/api-reference/common/Cache/page.mdx) / Cache - -Defined in: [packages/common/src/Cache.ts:20](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Cache.ts#L20) - -Generic cache interface providing basic key-value storage operations. - -Keys are compared by reference (standard Map semantics). - -Note: Cache has a Map-like API but does not extend Map because it behaves -differently. Eviction policies (like LRU) can remove entries implicitly, and -code that accepts a Map can assume values remain until deleted explicitly. An -evicting cache is not a safe substitute for Map (Liskov Substitution -Principle). - -## Type Parameters - -| Type Parameter | -| ------ | -| `K` | -| `V` | - -## Properties - - - -### delete() - -```ts -delete: (key: K) => void; -``` - -Defined in: [packages/common/src/Cache.ts:31](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Cache.ts#L31) - -Removes a key from the cache. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `K` | - -#### Returns - -`void` - -*** - - - -### get() - -```ts -get: (key: K) => V | undefined; -``` - -Defined in: [packages/common/src/Cache.ts:25](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Cache.ts#L25) - -Retrieves the value for a key, or undefined if not present. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `K` | - -#### Returns - -`V` \| `undefined` - -*** - - - -### has() - -```ts -has: (key: K) => boolean; -``` - -Defined in: [packages/common/src/Cache.ts:22](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Cache.ts#L22) - -Checks if a key exists in the cache. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `K` | - -#### Returns - -`boolean` - -*** - - - -### map - -```ts -readonly map: ReadonlyMap; -``` - -Defined in: [packages/common/src/Cache.ts:34](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Cache.ts#L34) - -Returns a readonly view of the internal Map. - -*** - - - -### set() - -```ts -set: (key: K, val: V) => void; -``` - -Defined in: [packages/common/src/Cache.ts:28](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Cache.ts#L28) - -Stores a key-value pair in the cache. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `K` | -| `val` | `V` | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Cache/page.mdx b/.generated/evolu-docs/api-reference/common/Cache/page.mdx deleted file mode 100644 index 0b502faf7..000000000 --- a/.generated/evolu-docs/api-reference/common/Cache/page.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Cache - -Cache implementations including LRU eviction. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createLruCache](/docs/api-reference/common/Cache/functions/createLruCache.mdx) | Creates an LRU (least recently used) cache with a maximum capacity. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Cache](/docs/api-reference/common/Cache/interfaces/Cache.mdx) | Generic cache interface providing basic key-value storage operations. | diff --git a/.generated/evolu-docs/api-reference/common/Callbacks/functions/createCallbacks.mdx b/.generated/evolu-docs/api-reference/common/Callbacks/functions/createCallbacks.mdx deleted file mode 100644 index 42bac0890..000000000 --- a/.generated/evolu-docs/api-reference/common/Callbacks/functions/createCallbacks.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Callbacks](/docs/api-reference/common/Callbacks/page.mdx) / createCallbacks - -```ts -function createCallbacks(deps: RandomBytesDep): Callbacks; -``` - -Defined in: [packages/common/src/Callbacks.ts:66](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Callbacks.ts#L66) - -Creates a [Callbacks](/docs/api-reference/common/Callbacks/interfaces/Callbacks.mdx) registry for managing callbacks. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | `undefined` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) | - -## Returns - -[`Callbacks`](/docs/api-reference/common/Callbacks/interfaces/Callbacks.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Callbacks/interfaces/Callbacks.mdx b/.generated/evolu-docs/api-reference/common/Callbacks/interfaces/Callbacks.mdx deleted file mode 100644 index 96229554c..000000000 --- a/.generated/evolu-docs/api-reference/common/Callbacks/interfaces/Callbacks.mdx +++ /dev/null @@ -1,82 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Callbacks](/docs/api-reference/common/Callbacks/page.mdx) / Callbacks - -Defined in: [packages/common/src/Callbacks.ts:52](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Callbacks.ts#L52) - -Request-response correlation for callbacks across boundaries. - -Stores callbacks with unique IDs and executes them once with an optional -argument. Executed callbacks are automatically removed. - -This is useful for correlating asynchronous request-response operations -across boundaries where callback functions cannot be passed directly (e.g., -web workers, message queues). - -The `execute` method intentionally does not use try-catch or [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) -because it's the callback's responsibility to handle its own errors. - -### Example - -```ts -// No-argument callbacks -const callbacks = createCallbacks(deps); -const id = callbacks.register(() => console.log("called")); -callbacks.execute(id); - -// With argument callbacks -const stringCallbacks = createCallbacks(deps); -const id = stringCallbacks.register((value) => { - console.log(value); -}); -stringCallbacks.execute(id, "hello"); - -// Promise.withResolvers pattern -const promiseCallbacks = createCallbacks(deps); -const { promise, resolve } = Promise.withResolvers(); -const id = promiseCallbacks.register(resolve); -promiseCallbacks.execute(id, "resolved value"); -await promise; // "resolved value" -``` - -## Type Parameters - -| Type Parameter | Default type | Description | -| ------ | ------ | ------ | -| `T` | `undefined` | The type of argument passed to callbacks (defaults to undefined for no-argument callbacks) | - -## Properties - - - -### execute - -```ts -readonly execute: T extends undefined ? (id: CallbackId) => undefined : (id: CallbackId, arg: T) => undefined; -``` - -Defined in: [packages/common/src/Callbacks.ts:57](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Callbacks.ts#L57) - -Executes and removes a callback associated with the given ID. - -*** - - - -### register() - -```ts -readonly register: (callback: Callback) => CallbackId; -``` - -Defined in: [packages/common/src/Callbacks.ts:54](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Callbacks.ts#L54) - -Registers a callback function and returns a unique ID. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `callback` | [`Callback`](/docs/api-reference/common/Types/type-aliases/Callback.mdx)\<`T`\> | - -#### Returns - -[`CallbackId`](/docs/api-reference/common/Callbacks/type-aliases/CallbackId.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Callbacks/page.mdx b/.generated/evolu-docs/api-reference/common/Callbacks/page.mdx deleted file mode 100644 index 9a1f10636..000000000 --- a/.generated/evolu-docs/api-reference/common/Callbacks/page.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Callbacks - -Request-response correlation for callbacks across boundaries. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createCallbacks](/docs/api-reference/common/Callbacks/functions/createCallbacks.mdx) | Creates a [Callbacks](/docs/api-reference/common/Callbacks/interfaces/Callbacks.mdx) registry for managing callbacks. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Callbacks](/docs/api-reference/common/Callbacks/interfaces/Callbacks.mdx) | Request-response correlation for callbacks across boundaries. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [CallbackId](/docs/api-reference/common/Callbacks/type-aliases/CallbackId.mdx) | Unique identifier for a callback in [Callbacks](/docs/api-reference/common/Callbacks/interfaces/Callbacks.mdx). | diff --git a/.generated/evolu-docs/api-reference/common/Callbacks/type-aliases/CallbackId.mdx b/.generated/evolu-docs/api-reference/common/Callbacks/type-aliases/CallbackId.mdx deleted file mode 100644 index 4fd1170fb..000000000 --- a/.generated/evolu-docs/api-reference/common/Callbacks/type-aliases/CallbackId.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Callbacks](/docs/api-reference/common/Callbacks/page.mdx) / CallbackId - -```ts -type CallbackId = Id & Brand<"Callback">; -``` - -Defined in: [packages/common/src/Callbacks.ts:63](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Callbacks.ts#L63) - -Unique identifier for a callback in [Callbacks](/docs/api-reference/common/Callbacks/interfaces/Callbacks.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Console/functions/createConsole.mdx b/.generated/evolu-docs/api-reference/common/Console/functions/createConsole.mdx deleted file mode 100644 index 9fd2550c5..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/functions/createConsole.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / createConsole - -```ts -function createConsole(__namedParameters?: ConsoleConfig): Console; -``` - -Defined in: [packages/common/src/Console.ts:209](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L209) - -Creates a [Console](/docs/api-reference/common/Console/interfaces/Console.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `__namedParameters` | [`ConsoleConfig`](/docs/api-reference/common/Console/interfaces/ConsoleConfig.mdx) | - -## Returns - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleArrayOutput.mdx b/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleArrayOutput.mdx deleted file mode 100644 index f16c2df4e..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleArrayOutput.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / createConsoleArrayOutput - -```ts -function createConsoleArrayOutput(entries: ConsoleEntry[]): ConsoleOutput; -``` - -Defined in: [packages/common/src/Console.ts:620](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L620) - -Creates a [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that captures entries to an array. - -Useful for testing. Pass your own array to inspect captured entries. - -### Example - -```ts -const entries: Array = []; -const output = createConsoleArrayOutput(entries); - -// After logging... -expect(entries).toMatchInlineSnapshot(); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `entries` | [`ConsoleEntry`](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx)[] | - -## Returns - -[`ConsoleOutput`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleAsyncOutput.mdx b/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleAsyncOutput.mdx deleted file mode 100644 index f7a550765..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleAsyncOutput.mdx +++ /dev/null @@ -1,47 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / createConsoleAsyncOutput - -```ts -function createConsoleAsyncOutput(config: { - flush?: () => void | Promise; - write: (entry: ConsoleEntry) => void | Promise; -}): ConsoleOutput; -``` - -Defined in: [packages/common/src/Console.ts:693](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L693) - -Creates a [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that buffers entries for async writing. - -Useful for high-throughput scenarios where synchronous logging would be a -bottleneck. Call `flush()` to ensure all buffered entries are written. - -### Example - -```ts -const entries: Array = []; -const output = createConsoleAsyncOutput({ - write: async (entry) => { - entries.push(entry); - }, -}); - -// Usage with Bun file writer: -// const writer = Bun.file("app.log").writer(); -// const output = createConsoleAsyncOutput({ -// write: async (entry) => { -// writer.write(JSON.stringify(entry) + "\\n"); -// }, -// flush: () => writer.flush(), -// }); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | \{ `flush?`: () => `void` \| `Promise`\<`void`\>; `write`: (`entry`: [`ConsoleEntry`](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx)) => `void` \| `Promise`\<`void`\>; \} | -| `config.flush?` | () => `void` \| `Promise`\<`void`\> | -| `config.write` | (`entry`: [`ConsoleEntry`](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx)) => `void` \| `Promise`\<`void`\> | - -## Returns - -[`ConsoleOutput`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleEntryFormatter.mdx b/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleEntryFormatter.mdx deleted file mode 100644 index 1475ed7d5..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleEntryFormatter.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / createConsoleEntryFormatter - -```ts -function createConsoleEntryFormatter(deps?: TimeDep): (config?: ConsoleFormatterConfig) => ConsoleFormatter; -``` - -Defined in: [packages/common/src/Console.ts:445](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L445) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`TimeDep`](/docs/api-reference/common/Time/interfaces/TimeDep.mdx) | - -## Returns - -```ts -(config?: ConsoleFormatterConfig): ConsoleFormatter; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `config?` | [`ConsoleFormatterConfig`](/docs/api-reference/common/Console/interfaces/ConsoleFormatterConfig.mdx) | - -### Returns - -[`ConsoleFormatter`](/docs/api-reference/common/Console/type-aliases/ConsoleFormatter.mdx) - -## Deprecated - -Use [createConsoleFormatter](/docs/api-reference/common/Console/functions/createConsoleFormatter.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleFormatter.mdx b/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleFormatter.mdx deleted file mode 100644 index 840aa73a0..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleFormatter.mdx +++ /dev/null @@ -1,44 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / createConsoleFormatter - -```ts -function createConsoleFormatter(__namedParameters?: Partial): (config: ConsoleFormatterConfig) => ConsoleFormatter; -``` - -Defined in: [packages/common/src/Console.ts:408](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L408) - -Creates a formatter for [ConsoleConfig.formatter](/docs/api-reference/common/Console/interfaces/ConsoleConfig.mdx#formatter). - -Prepends timestamps and path prefixes to entry args. - -### Example - -```ts -const console = createConsole({ - level: "info", - formatter: createConsoleFormatter()({ - timestampFormat: "relative", - }), -}); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `__namedParameters` | `Partial`\<[`TimeDep`](/docs/api-reference/common/Time/interfaces/TimeDep.mdx)\> | - -## Returns - -```ts -(config?: ConsoleFormatterConfig): ConsoleFormatter; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | [`ConsoleFormatterConfig`](/docs/api-reference/common/Console/interfaces/ConsoleFormatterConfig.mdx) | - -### Returns - -[`ConsoleFormatter`](/docs/api-reference/common/Console/type-aliases/ConsoleFormatter.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleStoreOutput.mdx b/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleStoreOutput.mdx deleted file mode 100644 index 6d6bcc695..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/functions/createConsoleStoreOutput.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / createConsoleStoreOutput - -```ts -function createConsoleStoreOutput(): ConsoleStoreOutput; -``` - -Defined in: [packages/common/src/Console.ts:629](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L629) - -Creates a [ConsoleStoreOutput](/docs/api-reference/common/Console/interfaces/ConsoleStoreOutput.mdx). - -## Returns - -[`ConsoleStoreOutput`](/docs/api-reference/common/Console/interfaces/ConsoleStoreOutput.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Console/functions/createMultiOutput.mdx b/.generated/evolu-docs/api-reference/common/Console/functions/createMultiOutput.mdx deleted file mode 100644 index 10db3b01d..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/functions/createMultiOutput.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / createMultiOutput - -```ts -function createMultiOutput(outputs: readonly ConsoleOutput[]): ConsoleOutput; -``` - -Defined in: [packages/common/src/Console.ts:651](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L651) - -Creates a [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that routes entries to multiple outputs. - -Useful for logging to both console and file simultaneously. - -### Example - -```ts -const output = createConsoleMultiOutput([ - createNativeConsoleOutput(), - createConsoleArrayOutput(entries), -]); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `outputs` | readonly [`ConsoleOutput`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx)[] | - -## Returns - -[`ConsoleOutput`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Console/functions/createNativeConsoleOutput.mdx b/.generated/evolu-docs/api-reference/common/Console/functions/createNativeConsoleOutput.mdx deleted file mode 100644 index 5c737c180..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/functions/createNativeConsoleOutput.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / createNativeConsoleOutput - -```ts -function createNativeConsoleOutput(): ConsoleOutput; -``` - -Defined in: [packages/common/src/Console.ts:348](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L348) - -Creates a [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that writes to `globalThis.console`. - -Pure transport - just calls the native console method with the entry args. -Use [createConsoleEntryFormatter](/docs/api-reference/common/Console/functions/createConsoleEntryFormatter.mdx) with [ConsoleConfig.formatEntry](/docs/api-reference/common/Console/interfaces/ConsoleConfig.mdx#formatentry) -for timestamps and path prefixes. - -### Example - -```ts -const output = createNativeConsoleOutput(); -``` - -## Returns - -[`ConsoleOutput`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Console/functions/testCreateConsole.mdx b/.generated/evolu-docs/api-reference/common/Console/functions/testCreateConsole.mdx deleted file mode 100644 index 8144f9e04..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/functions/testCreateConsole.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / testCreateConsole - -```ts -function testCreateConsole(config?: { - level?: ConsoleLevel; -}): TestConsole; -``` - -Defined in: [packages/common/src/Console.ts:518](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L518) - -Creates a [TestConsole](/docs/api-reference/common/Console/interfaces/TestConsole.mdx) that captures all output for testing. - -Unlike [createConsole](/docs/api-reference/common/Console/functions/createConsole.mdx), this doesn't require dependencies and uses a -simple incrementing counter for timestamps (starting at 0). - -### Example - -```ts -test("logging", () => { - const console = testCreateConsole(); - console.info("Hello"); - - expect(console.getEntriesSnapshot()).toMatchInlineSnapshot(` - [ - { - "method": "info", - "path": [], - "args": ["Hello"] - } - ] - `); -}); - -test("level filtering", () => { - const console = testCreateConsole({ level: "warn" }); - console.debug("ignored"); - console.warn("logged"); - expect(console.getEntriesSnapshot()).toHaveLength(1); -}); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `config?` | \{ `level?`: [`ConsoleLevel`](/docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx); \} | -| `config.level?` | [`ConsoleLevel`](/docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx) | - -## Returns - -[`TestConsole`](/docs/api-reference/common/Console/interfaces/TestConsole.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/Console.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/Console.mdx deleted file mode 100644 index 88a54cca2..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/Console.mdx +++ /dev/null @@ -1,492 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / Console - -Defined in: [packages/common/src/Console.ts:67](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L67) - -Platform-agnostic console with structured logging. - -Captures structured log entries and routes them to configurable outputs. -Provides methods guaranteed to be available across browsers, Node.js, and -React Native. - -Key features: - -- Structured entries — logs are captured as [ConsoleEntry](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx) objects with - method, path, and args -- Pluggable outputs — route logs to console, files, arrays, or custom - destinations via [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) -- Child consoles — use [Console.child](/docs/api-reference/common/Console/interfaces/Console.mdx#child) to create derived consoles -- Async support — buffer logs for high-throughput scenarios - -See [ConsoleLevel](/docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx) for available log levels and severity ordering. - -### Example - -```ts -// Basic usage - defaults to "log" -const console = createConsole(); - -// With formatting (timestamps and path prefixes) -const console = createConsole({ - level: "info", - formatEntry: createConsoleEntryFormatter()({ - timestampFormat: "relative", - }), -}); - -// Children inherit level at creation, then are independent -const console = run.deps.console.child("relay"); -console.setLevel("silent"); - -// Batch update via children -const setLevelRecursive = (c: Console, level: ConsoleLevel): void => { - c.setLevel(level); - for (const child of c.children) setLevelRecursive(child, level); -}; -``` - -Console intentionally does not use [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx). Logging must be as fast as -possible and always work, even during error handling or shutdown. - -## See - -[createConsole](/docs/api-reference/common/Console/functions/createConsole.mdx) - -## Extended by - -- [`TestConsole`](/docs/api-reference/common/Console/interfaces/TestConsole.mdx) - -## Properties - - - -### child() - -```ts -readonly child: (name: string) => Console; -``` - -Defined in: [packages/common/src/Console.ts:99](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L99) - -Creates a child console with the given name added to the path. - -Child inherits the parent's configured level (not any runtime override). -Use [Console.children](/docs/api-reference/common/Console/interfaces/Console.mdx#children) to access all children for batch operations. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | `string` | - -#### Returns - -`Console` - -*** - - - -### children - -```ts -readonly children: ReadonlySet; -``` - -Defined in: [packages/common/src/Console.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L72) - -Child consoles created via [Console.child](/docs/api-reference/common/Console/interfaces/Console.mdx#child). - -*** - - - -### count() - -```ts -readonly count: (label?: string) => void; -``` - -Defined in: [packages/common/src/Console.ts:123](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L123) - -Increments and logs a counter. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `label?` | `string` | - -#### Returns - -`void` - -*** - - - -### countReset() - -```ts -readonly countReset: (label?: string) => void; -``` - -Defined in: [packages/common/src/Console.ts:126](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L126) - -Resets a counter. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `label?` | `string` | - -#### Returns - -`void` - -*** - - - -### debug() - -```ts -readonly debug: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:105](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L105) - -Development diagnostics. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -*** - - - -### dir() - -```ts -readonly dir: (item: unknown) => void; -``` - -Defined in: [packages/common/src/Console.ts:117](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L117) - -Displays an object with expandable properties. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `item` | `unknown` | - -#### Returns - -`void` - -*** - - - -### error() - -```ts -readonly error: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:138](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L138) - -Failures requiring immediate attention. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -*** - - - -### getLevel() - -```ts -readonly getLevel: () => ConsoleLevel; -``` - -Defined in: [packages/common/src/Console.ts:80](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L80) - -Returns the effective log level. - -If this console has its own level set via [Console.setLevel](/docs/api-reference/common/Console/interfaces/Console.mdx#setlevel), returns -that. Otherwise returns the inherited level from creation time. - -#### Returns - -[`ConsoleLevel`](/docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx) - -*** - - - -### hasOwnLevel() - -```ts -readonly hasOwnLevel: () => boolean; -``` - -Defined in: [packages/common/src/Console.ts:91](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L91) - -Returns true if this console has its own level set (not inherited). - -#### Returns - -`boolean` - -*** - - - -### info() - -```ts -readonly info: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:132](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L132) - -Operational milestones (startup, shutdown). - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -*** - - - -### log() - -```ts -readonly log: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:129](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L129) - -General-purpose messages. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -*** - - - -### name - -```ts -readonly name: string; -``` - -Defined in: [packages/common/src/Console.ts:69](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L69) - -Name of this console. Empty for root. - -*** - - - -### setLevel() - -```ts -readonly setLevel: (level: - | ConsoleLevel - | null) => void; -``` - -Defined in: [packages/common/src/Console.ts:88](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L88) - -Sets the log level for this console. - -Pass a level to override the inherited level, or `null` to revert to the -inherited level. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `level` | \| [`ConsoleLevel`](/docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx) \| `null` | - -#### Returns - -`void` - -*** - - - -### table() - -```ts -readonly table: (data: unknown) => void; -``` - -Defined in: [packages/common/src/Console.ts:120](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L120) - -Displays tabular data. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `data` | `unknown` | - -#### Returns - -`void` - -*** - - - -### time() - -```ts -readonly time: (label: string) => void; -``` - -Defined in: [packages/common/src/Console.ts:108](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L108) - -Starts a timer with the given label. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `label` | `string` | - -#### Returns - -`void` - -*** - - - -### timeEnd() - -```ts -readonly timeEnd: (label: string) => void; -``` - -Defined in: [packages/common/src/Console.ts:114](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L114) - -Ends a timer and logs elapsed time. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `label` | `string` | - -#### Returns - -`void` - -*** - - - -### timeLog() - -```ts -readonly timeLog: (label: string, ...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:111](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L111) - -Logs elapsed time for a timer. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `label` | `string` | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -*** - - - -### trace() - -```ts -readonly trace: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:102](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L102) - -Outputs a stack trace. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -*** - - - -### warn() - -```ts -readonly warn: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:135](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L135) - -Recoverable issues that may need attention. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleConfig.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleConfig.mdx deleted file mode 100644 index 4f4318a17..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleConfig.mdx +++ /dev/null @@ -1,96 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleConfig - -Defined in: [packages/common/src/Console.ts:177](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L177) - -Configuration for [createConsole](/docs/api-reference/common/Console/functions/createConsole.mdx). - -## Properties - - - -### ~~formatEntry?~~ - -```ts -readonly optional formatEntry: ConsoleFormatter; -``` - -Defined in: [packages/common/src/Console.ts:205](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L205) - -#### Deprecated - -Use [ConsoleConfig.formatter](/docs/api-reference/common/Console/interfaces/ConsoleConfig.mdx#formatter). - -*** - - - -### formatter? - -```ts -readonly optional formatter: ConsoleFormatter; -``` - -Defined in: [packages/common/src/Console.ts:200](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L200) - -Transforms entry args before writing (e.g., adds timestamps, path -prefixes). - -Receives the entry and returns modified args. Use -[createConsoleFormatter](/docs/api-reference/common/Console/functions/createConsoleFormatter.mdx) for common formatting options. - -*** - - - -### level? - -```ts -readonly optional level: ConsoleLevel; -``` - -Defined in: [packages/common/src/Console.ts:182](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L182) - -Initial log level. Defaults to `"log"`. - -*** - - - -### name? - -```ts -readonly optional name: string; -``` - -Defined in: [packages/common/src/Console.ts:179](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L179) - -Name of this console. Defaults to empty string. - -*** - - - -### output? - -```ts -readonly optional output: ConsoleOutput; -``` - -Defined in: [packages/common/src/Console.ts:188](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L188) - -Output destination for log entries. Defaults to -[createNativeConsoleOutput](/docs/api-reference/common/Console/functions/createNativeConsoleOutput.mdx). - -*** - - - -### path? - -```ts -readonly optional path: readonly string[]; -``` - -Defined in: [packages/common/src/Console.ts:191](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L191) - -Path prefix for this console. Defaults to `[]`. diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleDep.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleDep.mdx deleted file mode 100644 index 187343d52..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleDep - -Defined in: [packages/common/src/Console.ts:141](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L141) - -## Properties - - - -### console - -```ts -readonly console: Console; -``` - -Defined in: [packages/common/src/Console.ts:142](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L142) diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx deleted file mode 100644 index e4b784cce..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx +++ /dev/null @@ -1,50 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleEntry - -Defined in: [packages/common/src/Console.ts:303](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L303) - -Structured log entry captured by [Console](/docs/api-reference/common/Console/interfaces/Console.mdx). - -Contains all information needed for outputs to route the log: method for -routing, path for context, and the original arguments. - -## Properties - - - -### args - -```ts -readonly args: readonly unknown[]; -``` - -Defined in: [packages/common/src/Console.ts:311](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L311) - -Original arguments passed to the console method. - -*** - - - -### method - -```ts -readonly method: ConsoleMethod; -``` - -Defined in: [packages/common/src/Console.ts:305](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L305) - -The console method that was called. - -*** - - - -### path - -```ts -readonly path: readonly string[]; -``` - -Defined in: [packages/common/src/Console.ts:308](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L308) - -Hierarchical path from [Console.child](/docs/api-reference/common/Console/interfaces/Console.mdx#child) calls (e.g., ["relay", "db"]). diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleEntryDep.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleEntryDep.mdx deleted file mode 100644 index 5fd275a7c..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleEntryDep.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleEntryDep - -Defined in: [packages/common/src/Console.ts:465](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L465) - -## Deprecated - -Use [ConsoleStoreOutputEntryDep](/docs/api-reference/common/Console/interfaces/ConsoleStoreOutputEntryDep.mdx). - -## Properties - - - -### ~~consoleEntry~~ - -```ts -readonly consoleEntry: ReadonlyStore< - | ConsoleEntry -| null>; -``` - -Defined in: [packages/common/src/Console.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L466) diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleFormatterConfig.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleFormatterConfig.mdx deleted file mode 100644 index cc6b85867..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleFormatterConfig.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleFormatterConfig - -Defined in: [packages/common/src/Console.ts:359](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L359) - -Configuration for [createConsoleFormatter](/docs/api-reference/common/Console/functions/createConsoleFormatter.mdx). - -## Properties - - - -### startTime? - -```ts -readonly optional startTime: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Console.ts:376](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L376) - -Start time for relative timestamps. Defaults to first entry timestamp. - -Pass a [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) value to use a custom start time, useful when multiple -consoles should share the same relative timeline. - -*** - - - -### timestampFormat? - -```ts -readonly optional timestampFormat: ConsoleEntryTimestampFormat; -``` - -Defined in: [packages/common/src/Console.ts:368](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L368) - -Timestamp format to prepend to log messages. - -- `"relative"`: Time since first entry (e.g., `+1.234s`) -- `"absolute"`: Clock time (e.g., `[14:32:15.234]`) -- `"iso"`: ISO 8601 format (e.g., `[2026-01-28T14:32:15.234Z]`) -- `"none"`: No timestamp (default) diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx deleted file mode 100644 index e29fb1a33..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx +++ /dev/null @@ -1,57 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleOutput - -Defined in: [packages/common/src/Console.ts:289](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L289) - -Output destination for [Console](/docs/api-reference/common/Console/interfaces/Console.mdx). - -Implement this interface to create custom log destinations (file, network, -array for testing, etc.). - -Use [createNativeConsoleOutput](/docs/api-reference/common/Console/functions/createNativeConsoleOutput.mdx) for native console output. - -## Extended by - -- [`ConsoleStoreOutput`](/docs/api-reference/common/Console/interfaces/ConsoleStoreOutput.mdx) - -## Properties - - - -### flush()? - -```ts -readonly optional flush: () => Promise; -``` - -Defined in: [packages/common/src/Console.ts:294](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L294) - -Flush buffered entries. For async outputs that buffer for performance. - -#### Returns - -`Promise`\<`void`\> - -*** - - - -### write() - -```ts -readonly write: (entry: ConsoleEntry, formatter?: ConsoleFormatter) => void; -``` - -Defined in: [packages/common/src/Console.ts:291](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L291) - -Write a log entry to this output. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `entry` | [`ConsoleEntry`](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx) | -| `formatter?` | [`ConsoleFormatter`](/docs/api-reference/common/Console/type-aliases/ConsoleFormatter.mdx) | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleStoreOutput.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleStoreOutput.mdx deleted file mode 100644 index 75053d491..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleStoreOutput.mdx +++ /dev/null @@ -1,75 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleStoreOutput - -Defined in: [packages/common/src/Console.ts:454](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L454) - -A [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that stores the latest entry in a -[ReadonlyStore](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx). - -## Extends - -- [`ConsoleOutput`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) - -## Properties - - - -### entry - -```ts -readonly entry: ReadonlyStore< - | ConsoleEntry -| null>; -``` - -Defined in: [packages/common/src/Console.ts:455](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L455) - -*** - - - -### flush()? - -```ts -readonly optional flush: () => Promise; -``` - -Defined in: [packages/common/src/Console.ts:294](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L294) - -Flush buffered entries. For async outputs that buffer for performance. - -#### Returns - -`Promise`\<`void`\> - -#### Inherited from - -[`ConsoleOutput`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx).[`flush`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx#flush) - -*** - - - -### write() - -```ts -readonly write: (entry: ConsoleEntry, formatter?: ConsoleFormatter) => void; -``` - -Defined in: [packages/common/src/Console.ts:291](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L291) - -Write a log entry to this output. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `entry` | [`ConsoleEntry`](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx) | -| `formatter?` | [`ConsoleFormatter`](/docs/api-reference/common/Console/type-aliases/ConsoleFormatter.mdx) | - -#### Returns - -`void` - -#### Inherited from - -[`ConsoleOutput`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx).[`write`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx#write) diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleStoreOutputEntryDep.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleStoreOutputEntryDep.mdx deleted file mode 100644 index 17539bfba..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/ConsoleStoreOutputEntryDep.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleStoreOutputEntryDep - -Defined in: [packages/common/src/Console.ts:458](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L458) - -## Properties - - - -### consoleStoreOutputEntry - -```ts -readonly consoleStoreOutputEntry: ReadonlyStore< - | ConsoleEntry -| null>; -``` - -Defined in: [packages/common/src/Console.ts:459](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L459) diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/TestConsole.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/TestConsole.mdx deleted file mode 100644 index fe46d2e06..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/TestConsole.mdx +++ /dev/null @@ -1,559 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / TestConsole - -Defined in: [packages/common/src/Console.ts:474](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L474) - -A test console that captures all output for assertions. - -Use as a drop-in replacement for [Console](/docs/api-reference/common/Console/interfaces/Console.mdx) in tests. - -## Extends - -- [`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx) - -## Properties - - - -### child() - -```ts -readonly child: (name: string) => Console; -``` - -Defined in: [packages/common/src/Console.ts:99](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L99) - -Creates a child console with the given name added to the path. - -Child inherits the parent's configured level (not any runtime override). -Use [Console.children](/docs/api-reference/common/Console/interfaces/Console.mdx#children) to access all children for batch operations. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | `string` | - -#### Returns - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx) - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`child`](/docs/api-reference/common/Console/interfaces/Console.mdx#child) - -*** - - - -### children - -```ts -readonly children: ReadonlySet; -``` - -Defined in: [packages/common/src/Console.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L72) - -Child consoles created via [Console.child](/docs/api-reference/common/Console/interfaces/Console.mdx#child). - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`children`](/docs/api-reference/common/Console/interfaces/Console.mdx#children) - -*** - - - -### clearEntries() - -```ts -readonly clearEntries: () => void; -``` - -Defined in: [packages/common/src/Console.ts:479](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L479) - -Clears all captured entries. - -#### Returns - -`void` - -*** - - - -### count() - -```ts -readonly count: (label?: string) => void; -``` - -Defined in: [packages/common/src/Console.ts:123](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L123) - -Increments and logs a counter. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `label?` | `string` | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`count`](/docs/api-reference/common/Console/interfaces/Console.mdx#count) - -*** - - - -### countReset() - -```ts -readonly countReset: (label?: string) => void; -``` - -Defined in: [packages/common/src/Console.ts:126](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L126) - -Resets a counter. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `label?` | `string` | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`countReset`](/docs/api-reference/common/Console/interfaces/Console.mdx#countreset) - -*** - - - -### debug() - -```ts -readonly debug: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:105](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L105) - -Development diagnostics. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`debug`](/docs/api-reference/common/Console/interfaces/Console.mdx#debug) - -*** - - - -### dir() - -```ts -readonly dir: (item: unknown) => void; -``` - -Defined in: [packages/common/src/Console.ts:117](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L117) - -Displays an object with expandable properties. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `item` | `unknown` | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`dir`](/docs/api-reference/common/Console/interfaces/Console.mdx#dir) - -*** - - - -### error() - -```ts -readonly error: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:138](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L138) - -Failures requiring immediate attention. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`error`](/docs/api-reference/common/Console/interfaces/Console.mdx#error) - -*** - - - -### getEntriesSnapshot() - -```ts -readonly getEntriesSnapshot: () => readonly ConsoleEntry[]; -``` - -Defined in: [packages/common/src/Console.ts:476](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L476) - -Gets all captured entries and clears the internal buffer. - -#### Returns - -readonly [`ConsoleEntry`](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx)[] - -*** - - - -### getLevel() - -```ts -readonly getLevel: () => ConsoleLevel; -``` - -Defined in: [packages/common/src/Console.ts:80](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L80) - -Returns the effective log level. - -If this console has its own level set via [Console.setLevel](/docs/api-reference/common/Console/interfaces/Console.mdx#setlevel), returns -that. Otherwise returns the inherited level from creation time. - -#### Returns - -[`ConsoleLevel`](/docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx) - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`getLevel`](/docs/api-reference/common/Console/interfaces/Console.mdx#getlevel) - -*** - - - -### hasOwnLevel() - -```ts -readonly hasOwnLevel: () => boolean; -``` - -Defined in: [packages/common/src/Console.ts:91](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L91) - -Returns true if this console has its own level set (not inherited). - -#### Returns - -`boolean` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`hasOwnLevel`](/docs/api-reference/common/Console/interfaces/Console.mdx#hasownlevel) - -*** - - - -### info() - -```ts -readonly info: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:132](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L132) - -Operational milestones (startup, shutdown). - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`info`](/docs/api-reference/common/Console/interfaces/Console.mdx#info) - -*** - - - -### log() - -```ts -readonly log: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:129](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L129) - -General-purpose messages. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`log`](/docs/api-reference/common/Console/interfaces/Console.mdx#log) - -*** - - - -### name - -```ts -readonly name: string; -``` - -Defined in: [packages/common/src/Console.ts:69](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L69) - -Name of this console. Empty for root. - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`name`](/docs/api-reference/common/Console/interfaces/Console.mdx#name) - -*** - - - -### setLevel() - -```ts -readonly setLevel: (level: - | ConsoleLevel - | null) => void; -``` - -Defined in: [packages/common/src/Console.ts:88](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L88) - -Sets the log level for this console. - -Pass a level to override the inherited level, or `null` to revert to the -inherited level. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `level` | \| [`ConsoleLevel`](/docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx) \| `null` | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`setLevel`](/docs/api-reference/common/Console/interfaces/Console.mdx#setlevel) - -*** - - - -### table() - -```ts -readonly table: (data: unknown) => void; -``` - -Defined in: [packages/common/src/Console.ts:120](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L120) - -Displays tabular data. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `data` | `unknown` | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`table`](/docs/api-reference/common/Console/interfaces/Console.mdx#table) - -*** - - - -### time() - -```ts -readonly time: (label: string) => void; -``` - -Defined in: [packages/common/src/Console.ts:108](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L108) - -Starts a timer with the given label. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `label` | `string` | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`time`](/docs/api-reference/common/Console/interfaces/Console.mdx#time) - -*** - - - -### timeEnd() - -```ts -readonly timeEnd: (label: string) => void; -``` - -Defined in: [packages/common/src/Console.ts:114](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L114) - -Ends a timer and logs elapsed time. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `label` | `string` | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`timeEnd`](/docs/api-reference/common/Console/interfaces/Console.mdx#timeend) - -*** - - - -### timeLog() - -```ts -readonly timeLog: (label: string, ...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:111](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L111) - -Logs elapsed time for a timer. Level: debug. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `label` | `string` | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`timeLog`](/docs/api-reference/common/Console/interfaces/Console.mdx#timelog) - -*** - - - -### trace() - -```ts -readonly trace: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:102](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L102) - -Outputs a stack trace. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`trace`](/docs/api-reference/common/Console/interfaces/Console.mdx#trace) - -*** - - - -### warn() - -```ts -readonly warn: (...args: readonly unknown[]) => void; -``` - -Defined in: [packages/common/src/Console.ts:135](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L135) - -Recoverable issues that may need attention. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`args` | readonly `unknown`[] | - -#### Returns - -`void` - -#### Inherited from - -[`Console`](/docs/api-reference/common/Console/interfaces/Console.mdx).[`warn`](/docs/api-reference/common/Console/interfaces/Console.mdx#warn) diff --git a/.generated/evolu-docs/api-reference/common/Console/interfaces/TestConsoleDep.mdx b/.generated/evolu-docs/api-reference/common/Console/interfaces/TestConsoleDep.mdx deleted file mode 100644 index a5f7a3258..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/interfaces/TestConsoleDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / TestConsoleDep - -Defined in: [packages/common/src/Console.ts:482](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L482) - -## Properties - - - -### console - -```ts -readonly console: TestConsole; -``` - -Defined in: [packages/common/src/Console.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L483) diff --git a/.generated/evolu-docs/api-reference/common/Console/page.mdx b/.generated/evolu-docs/api-reference/common/Console/page.mdx deleted file mode 100644 index a7ae4012e..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/page.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Console - -Platform-agnostic console with structured logging. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createConsole](/docs/api-reference/common/Console/functions/createConsole.mdx) | Creates a [Console](/docs/api-reference/common/Console/interfaces/Console.mdx). | -| [createConsoleArrayOutput](/docs/api-reference/common/Console/functions/createConsoleArrayOutput.mdx) | Creates a [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that captures entries to an array. | -| [createConsoleAsyncOutput](/docs/api-reference/common/Console/functions/createConsoleAsyncOutput.mdx) | Creates a [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that buffers entries for async writing. | -| [~~createConsoleEntryFormatter~~](/docs/api-reference/common/Console/functions/createConsoleEntryFormatter.mdx) | - | -| [createConsoleFormatter](/docs/api-reference/common/Console/functions/createConsoleFormatter.mdx) | Creates a formatter for [ConsoleConfig.formatter](/docs/api-reference/common/Console/interfaces/ConsoleConfig.mdx#formatter). | -| [createConsoleStoreOutput](/docs/api-reference/common/Console/functions/createConsoleStoreOutput.mdx) | Creates a [ConsoleStoreOutput](/docs/api-reference/common/Console/interfaces/ConsoleStoreOutput.mdx). | -| [createMultiOutput](/docs/api-reference/common/Console/functions/createMultiOutput.mdx) | Creates a [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that routes entries to multiple outputs. | -| [createNativeConsoleOutput](/docs/api-reference/common/Console/functions/createNativeConsoleOutput.mdx) | Creates a [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that writes to `globalThis.console`. | -| [testCreateConsole](/docs/api-reference/common/Console/functions/testCreateConsole.mdx) | Creates a [TestConsole](/docs/api-reference/common/Console/interfaces/TestConsole.mdx) that captures all output for testing. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Console](/docs/api-reference/common/Console/interfaces/Console.mdx) | Platform-agnostic console with structured logging. | -| [ConsoleConfig](/docs/api-reference/common/Console/interfaces/ConsoleConfig.mdx) | Configuration for [createConsole](/docs/api-reference/common/Console/functions/createConsole.mdx). | -| [ConsoleDep](/docs/api-reference/common/Console/interfaces/ConsoleDep.mdx) | - | -| [ConsoleEntry](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx) | Structured log entry captured by [Console](/docs/api-reference/common/Console/interfaces/Console.mdx). | -| [~~ConsoleEntryDep~~](/docs/api-reference/common/Console/interfaces/ConsoleEntryDep.mdx) | - | -| [ConsoleFormatterConfig](/docs/api-reference/common/Console/interfaces/ConsoleFormatterConfig.mdx) | Configuration for [createConsoleFormatter](/docs/api-reference/common/Console/functions/createConsoleFormatter.mdx). | -| [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) | Output destination for [Console](/docs/api-reference/common/Console/interfaces/Console.mdx). | -| [ConsoleStoreOutput](/docs/api-reference/common/Console/interfaces/ConsoleStoreOutput.mdx) | A [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that stores the latest entry in a [ReadonlyStore](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx). | -| [ConsoleStoreOutputEntryDep](/docs/api-reference/common/Console/interfaces/ConsoleStoreOutputEntryDep.mdx) | - | -| [TestConsole](/docs/api-reference/common/Console/interfaces/TestConsole.mdx) | A test console that captures all output for assertions. | -| [TestConsoleDep](/docs/api-reference/common/Console/interfaces/TestConsoleDep.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [~~ConsoleEntryFormatterConfig~~](/docs/api-reference/common/Console/type-aliases/ConsoleEntryFormatterConfig.mdx) | - | -| [ConsoleEntryTimestampFormat](/docs/api-reference/common/Console/type-aliases/ConsoleEntryTimestampFormat.mdx) | Timestamp format for [ConsoleFormatterConfig](/docs/api-reference/common/Console/interfaces/ConsoleFormatterConfig.mdx). | -| [ConsoleFormatter](/docs/api-reference/common/Console/type-aliases/ConsoleFormatter.mdx) | Transforms a [ConsoleEntry](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx) before output. | -| [ConsoleLevel](/docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx) | Log level controlling which messages are output. | -| [ConsoleMethod](/docs/api-reference/common/Console/type-aliases/ConsoleMethod.mdx) | Console method being called. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [~~createConsoleMultiOutput~~](/docs/api-reference/common/Console/variables/createConsoleMultiOutput.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleEntryFormatterConfig.mdx b/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleEntryFormatterConfig.mdx deleted file mode 100644 index 096e9468d..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleEntryFormatterConfig.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleEntryFormatterConfig - -```ts -type ConsoleEntryFormatterConfig = ConsoleFormatterConfig; -``` - -Defined in: [packages/common/src/Console.ts:389](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L389) - -## Deprecated - -Use [ConsoleFormatterConfig](/docs/api-reference/common/Console/interfaces/ConsoleFormatterConfig.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleEntryTimestampFormat.mdx b/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleEntryTimestampFormat.mdx deleted file mode 100644 index 89a0d1e7e..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleEntryTimestampFormat.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleEntryTimestampFormat - -```ts -type ConsoleEntryTimestampFormat = "relative" | "absolute" | "iso" | "none"; -``` - -Defined in: [packages/common/src/Console.ts:380](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L380) - -Timestamp format for [ConsoleFormatterConfig](/docs/api-reference/common/Console/interfaces/ConsoleFormatterConfig.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleFormatter.mdx b/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleFormatter.mdx deleted file mode 100644 index 5b219e107..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleFormatter.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleFormatter - -```ts -type ConsoleFormatter = (entry: ConsoleEntry) => ReadonlyArray; -``` - -Defined in: [packages/common/src/Console.ts:174](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L174) - -Transforms a [ConsoleEntry](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx) before output. - -Used by [ConsoleConfig.formatter](/docs/api-reference/common/Console/interfaces/ConsoleConfig.mdx#formatter) and [ConsoleOutput.write](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx#write). Create -one with [createConsoleFormatter](/docs/api-reference/common/Console/functions/createConsoleFormatter.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `entry` | [`ConsoleEntry`](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx) | - -## Returns - -`ReadonlyArray`\<`unknown`\> diff --git a/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx b/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx deleted file mode 100644 index 3971ba7aa..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleLevel.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleLevel - -```ts -type ConsoleLevel = "trace" | "debug" | "log" | "info" | "warn" | "error" | "silent"; -``` - -Defined in: [packages/common/src/Console.ts:159](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L159) - -Log level controlling which messages are output. - -Setting a level enables all logs at that level and above (ordered by -severity): - -- `"trace"` — Stack traces and detailed execution flow -- `"debug"` — Development diagnostics, timers, counters -- `"log"` — General-purpose messages -- `"info"` — Operational milestones (startup, shutdown) -- `"warn"` — Recoverable issues that may need attention -- `"error"` — Failures requiring immediate attention -- `"silent"` — Disables all logging diff --git a/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleMethod.mdx b/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleMethod.mdx deleted file mode 100644 index 441a56b23..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/type-aliases/ConsoleMethod.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / ConsoleMethod - -```ts -type ConsoleMethod = - | "log" - | "info" - | "warn" - | "error" - | "debug" - | "trace" - | "time" - | "timeLog" - | "timeEnd" - | "dir" - | "table" - | "count" - | "countReset"; -``` - -Defined in: [packages/common/src/Console.ts:320](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L320) - -Console method being called. - -Used in [ConsoleEntry](/docs/api-reference/common/Console/interfaces/ConsoleEntry.mdx) to identify which console method was invoked. -Outputs can route or format differently based on the method. diff --git a/.generated/evolu-docs/api-reference/common/Console/variables/createConsoleMultiOutput.mdx b/.generated/evolu-docs/api-reference/common/Console/variables/createConsoleMultiOutput.mdx deleted file mode 100644 index 34564c020..000000000 --- a/.generated/evolu-docs/api-reference/common/Console/variables/createConsoleMultiOutput.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Console](/docs/api-reference/common/Console/page.mdx) / createConsoleMultiOutput - -```ts -const createConsoleMultiOutput: (outputs: readonly ConsoleOutput[]) => ConsoleOutput = createMultiOutput; -``` - -Defined in: [packages/common/src/Console.ts:665](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Console.ts#L665) - -Creates a [ConsoleOutput](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) that routes entries to multiple outputs. - -Useful for logging to both console and file simultaneously. - -### Example - -```ts -const output = createConsoleMultiOutput([ - createNativeConsoleOutput(), - createConsoleArrayOutput(entries), -]); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `outputs` | readonly [`ConsoleOutput`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx)[] | - -## Returns - -[`ConsoleOutput`](/docs/api-reference/common/Console/interfaces/ConsoleOutput.mdx) - -## Deprecated - -Use [createMultiOutput](/docs/api-reference/common/Console/functions/createMultiOutput.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Crypto/functions/createPadmePaddedLength.mdx b/.generated/evolu-docs/api-reference/common/Crypto/functions/createPadmePaddedLength.mdx deleted file mode 100644 index f80fd4cbd..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/functions/createPadmePaddedLength.mdx +++ /dev/null @@ -1,24 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / createPadmePaddedLength - -```ts -function createPadmePaddedLength(length: number & Brand<"Int"> & Brand<"NonNegative">): number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/Crypto.ts:232](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L232) - -Returns the PADMÉ padded length for a given input length. - -PADMÉ limits information leakage about the length of the plain-text for a -wide range of encrypted data sizes. - -See the PURBs paper for details: https://bford.info/pub/sec/purb.pdf - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `length` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | - -## Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> diff --git a/.generated/evolu-docs/api-reference/common/Crypto/functions/createPadmePadding.mdx b/.generated/evolu-docs/api-reference/common/Crypto/functions/createPadmePadding.mdx deleted file mode 100644 index efc7e1dec..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/functions/createPadmePadding.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / createPadmePadding - -```ts -function createPadmePadding(length: number & Brand<"Int"> & Brand<"NonNegative">): Uint8Array; -``` - -Defined in: [packages/common/src/Crypto.ts:244](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L244) - -Creates a PADMÉ padding array of zeros for the given input length. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `length` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | - -## Returns - -`Uint8Array` diff --git a/.generated/evolu-docs/api-reference/common/Crypto/functions/createRandomBytes.mdx b/.generated/evolu-docs/api-reference/common/Crypto/functions/createRandomBytes.mdx deleted file mode 100644 index 580b919a6..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/functions/createRandomBytes.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / createRandomBytes - -```ts -function createRandomBytes(): RandomBytes; -``` - -Defined in: [packages/common/src/Crypto.ts:82](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L82) - -## Returns - -[`RandomBytes`](/docs/api-reference/common/Crypto/interfaces/RandomBytes.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/functions/createSlip21.mdx b/.generated/evolu-docs/api-reference/common/Crypto/functions/createSlip21.mdx deleted file mode 100644 index 991b64310..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/functions/createSlip21.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / createSlip21 - -```ts -function createSlip21(seed: - | Uint8Array & Brand<"Entropy"> & Brand<"Length16"> - | Uint8Array & Brand<"Entropy"> & Brand<"Length32"> -| Uint8Array & Brand<"Entropy"> & Brand<"Length64">, path: readonly (string | number)[]): Uint8Array & Brand<"Entropy"> & Brand<"Length32">; -``` - -Defined in: [packages/common/src/Crypto.ts:100](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L100) - -SLIP21. - -https://github.com/satoshilabs/slips/blob/master/slip-0021.md - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `seed` | \| `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> \| `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> \| `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length64"`\> | -| `path` | readonly (`string` \| `number`)[] | - -## Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> diff --git a/.generated/evolu-docs/api-reference/common/Crypto/functions/decryptWithXChaCha20Poly1305.mdx b/.generated/evolu-docs/api-reference/common/Crypto/functions/decryptWithXChaCha20Poly1305.mdx deleted file mode 100644 index 5f7503270..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/functions/decryptWithXChaCha20Poly1305.mdx +++ /dev/null @@ -1,43 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / decryptWithXChaCha20Poly1305 - -```ts -function decryptWithXChaCha20Poly1305( - ciphertext: Uint8Array & Brand<"XChaCha20Poly1305Ciphertext">, - nonce: Uint8Array & Brand<"Entropy"> & Brand<"Length24">, -encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey">): Result, DecryptWithXChaCha20Poly1305Error>; -``` - -Defined in: [packages/common/src/Crypto.ts:211](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L211) - -Decrypts ciphertext with XChaCha20-Poly1305. - -Requires the same nonce that was used during encryption. Returns a -[Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) that may contain a decryption error if the ciphertext was -tampered with or the wrong key/nonce was used. - -### Example - -```ts -const result = decryptWithXChaCha20Poly1305( - ciphertext, - nonce, - encryptionKey, -); -if (!result.ok) { - // Handle decryption error - return result; -} -const plaintext = result.value; -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `ciphertext` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"XChaCha20Poly1305Ciphertext"`\> | -| `nonce` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length24"`\> | -| `encryptionKey` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"EncryptionKey"`\> | - -## Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Uint8Array`\<`ArrayBufferLike`\>, [`DecryptWithXChaCha20Poly1305Error`](/docs/api-reference/common/Crypto/interfaces/DecryptWithXChaCha20Poly1305Error.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/Crypto/functions/deriveSlip21Node.mdx b/.generated/evolu-docs/api-reference/common/Crypto/functions/deriveSlip21Node.mdx deleted file mode 100644 index e86857651..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/functions/deriveSlip21Node.mdx +++ /dev/null @@ -1,24 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / deriveSlip21Node - -```ts -function deriveSlip21Node(label: string, parentNode: Uint8Array & Brand<"Entropy"> & Brand<"Length64">): Uint8Array & Brand<"Entropy"> & Brand<"Length64">; -``` - -Defined in: [packages/common/src/Crypto.ts:123](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L123) - -Derives a single node in the SLIP-21 hierarchical key derivation. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `label` | `string` | -| `parentNode` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length64"`\> | - -## Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length64"`\> - -## See - -[createSlip21](/docs/api-reference/common/Crypto/functions/createSlip21.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/functions/encryptWithXChaCha20Poly1305.mdx b/.generated/evolu-docs/api-reference/common/Crypto/functions/encryptWithXChaCha20Poly1305.mdx deleted file mode 100644 index 5f3ba14ce..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/functions/encryptWithXChaCha20Poly1305.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / encryptWithXChaCha20Poly1305 - -```ts -function encryptWithXChaCha20Poly1305(deps: RandomBytesDep): (plaintext: Uint8Array, encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey">) => [Uint8Array & Brand<"XChaCha20Poly1305Ciphertext">, Uint8Array & Brand<"Entropy"> & Brand<"Length24">]; -``` - -Defined in: [packages/common/src/Crypto.ts:172](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L172) - -Encrypts plaintext with XChaCha20-Poly1305. - -Generates a random nonce internally and returns both the ciphertext and -nonce. The nonce must be stored alongside the ciphertext for decryption. - -### Example - -```ts -const deps = { randomBytes: createRandomBytes() }; -const [ciphertext, nonce] = encryptWithXChaCha20Poly1305(deps)( - utf8ToBytes("secret message"), - encryptionKey, -); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) | - -## Returns - -```ts -(plaintext: Uint8Array, encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey">): [Uint8Array & Brand<"XChaCha20Poly1305Ciphertext">, Uint8Array & Brand<"Entropy"> & Brand<"Length24">]; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `plaintext` | `Uint8Array` | -| `encryptionKey` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"EncryptionKey"`\> | - -### Returns - -\[`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"XChaCha20Poly1305Ciphertext"`\>, `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length24"`\>\] - -## See - -https://github.com/paulmillr/noble-ciphers diff --git a/.generated/evolu-docs/api-reference/common/Crypto/functions/testCreateRandomBytes.mdx b/.generated/evolu-docs/api-reference/common/Crypto/functions/testCreateRandomBytes.mdx deleted file mode 100644 index 2d7937787..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/functions/testCreateRandomBytes.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / testCreateRandomBytes - -```ts -function testCreateRandomBytes(deps: RandomLibDep): RandomBytes; -``` - -Defined in: [packages/common/src/Crypto.ts:87](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L87) - -Creates seeded random bytes for deterministic tests. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomLibDep`](/docs/api-reference/common/Random/interfaces/RandomLibDep.mdx) | - -## Returns - -[`RandomBytes`](/docs/api-reference/common/Crypto/interfaces/RandomBytes.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/interfaces/DecryptWithXChaCha20Poly1305Error.mdx b/.generated/evolu-docs/api-reference/common/Crypto/interfaces/DecryptWithXChaCha20Poly1305Error.mdx deleted file mode 100644 index aa3063564..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/interfaces/DecryptWithXChaCha20Poly1305Error.mdx +++ /dev/null @@ -1,157 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / DecryptWithXChaCha20Poly1305Error - -Defined in: [packages/common/src/Crypto.ts:184](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L184) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DecryptWithXChaCha20Poly1305Error"`\> - -## Properties - - - -### error - -```ts -readonly error: unknown; -``` - -Defined in: [packages/common/src/Crypto.ts:186](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L186) - -*** - - - -### type - -```ts -readonly type: "DecryptWithXChaCha20Poly1305Error"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/interfaces/RandomBytes.mdx b/.generated/evolu-docs/api-reference/common/Crypto/interfaces/RandomBytes.mdx deleted file mode 100644 index e3d9b360c..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/interfaces/RandomBytes.mdx +++ /dev/null @@ -1,126 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / RandomBytes - -Defined in: [packages/common/src/Crypto.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L27) - -## Methods - - - -### create() - -#### Call Signature - -```ts -create(bytesLength: 16): Uint8Array & Brand<"Entropy"> & Brand<"Length16">; -``` - -Defined in: [packages/common/src/Crypto.ts:56](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L56) - -Creates cryptographically secure random bytes with type-safe length -branding. - -Uses the operating system's cryptographically secure random number -generator (crypto.getRandomValues) to generate high-quality entropy -suitable for cryptographic operations. - -## Type Safety - -Returns specific branded types for common sizes: - -- `Random16` for 16-byte values (128 bits) -- `Random24` for 24-byte values (192 bits) -- `Random32` for 32-byte values (256 bits) -- `Random64` for 64-byte values (512 bits) -- `Random` for any other size - -### Example - -```ts -const nonce = randomBytes.create(16); // Type: Random16 -const nonce24 = randomBytes.create(24); // Type: Random24 -const key = randomBytes.create(32); // Type: Random32 -const seed = randomBytes.create(64); // Type: Random64 -const custom = randomBytes.create(48); // Type: Random -``` - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `bytesLength` | `16` | - -##### Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> - -#### Call Signature - -```ts -create(bytesLength: 24): Uint8Array & Brand<"Entropy"> & Brand<"Length24">; -``` - -Defined in: [packages/common/src/Crypto.ts:57](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L57) - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `bytesLength` | `24` | - -##### Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length24"`\> - -#### Call Signature - -```ts -create(bytesLength: 32): Uint8Array & Brand<"Entropy"> & Brand<"Length32">; -``` - -Defined in: [packages/common/src/Crypto.ts:58](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L58) - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `bytesLength` | `32` | - -##### Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> - -#### Call Signature - -```ts -create(bytesLength: 64): Uint8Array & Brand<"Entropy"> & Brand<"Length64">; -``` - -Defined in: [packages/common/src/Crypto.ts:59](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L59) - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `bytesLength` | `64` | - -##### Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length64"`\> - -#### Call Signature - -```ts -create(bytesLength: number): Uint8Array & Brand<"Entropy">; -``` - -Defined in: [packages/common/src/Crypto.ts:60](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L60) - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `bytesLength` | `number` | - -##### Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> diff --git a/.generated/evolu-docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx b/.generated/evolu-docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx deleted file mode 100644 index ecbeddc32..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / RandomBytesDep - -Defined in: [packages/common/src/Crypto.ts:63](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L63) - -## Properties - - - -### randomBytes - -```ts -readonly randomBytes: RandomBytes; -``` - -Defined in: [packages/common/src/Crypto.ts:64](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L64) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/interfaces/TimingSafeEqualDep.mdx b/.generated/evolu-docs/api-reference/common/Crypto/interfaces/TimingSafeEqualDep.mdx deleted file mode 100644 index e04ec1859..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/interfaces/TimingSafeEqualDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / TimingSafeEqualDep - -Defined in: [packages/common/src/Crypto.ts:259](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L259) - -## Properties - - - -### timingSafeEqual - -```ts -readonly timingSafeEqual: TimingSafeEqual; -``` - -Defined in: [packages/common/src/Crypto.ts:260](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L260) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/page.mdx b/.generated/evolu-docs/api-reference/common/Crypto/page.mdx deleted file mode 100644 index 58a4aeb7c..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/page.mdx +++ /dev/null @@ -1,53 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Crypto - -Cryptographic utilities. - -Type-safe cryptographic operations including random bytes generation, SLIP21 -key derivation, XChaCha20-Poly1305 symmetric encryption, PADMÉ padding, and -timing-safe comparisons. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createPadmePaddedLength](/docs/api-reference/common/Crypto/functions/createPadmePaddedLength.mdx) | Returns the PADMÉ padded length for a given input length. | -| [createPadmePadding](/docs/api-reference/common/Crypto/functions/createPadmePadding.mdx) | Creates a PADMÉ padding array of zeros for the given input length. | -| [createRandomBytes](/docs/api-reference/common/Crypto/functions/createRandomBytes.mdx) | - | -| [createSlip21](/docs/api-reference/common/Crypto/functions/createSlip21.mdx) | SLIP21. | -| [decryptWithXChaCha20Poly1305](/docs/api-reference/common/Crypto/functions/decryptWithXChaCha20Poly1305.mdx) | Decrypts ciphertext with XChaCha20-Poly1305. | -| [deriveSlip21Node](/docs/api-reference/common/Crypto/functions/deriveSlip21Node.mdx) | Derives a single node in the SLIP-21 hierarchical key derivation. | -| [encryptWithXChaCha20Poly1305](/docs/api-reference/common/Crypto/functions/encryptWithXChaCha20Poly1305.mdx) | Encrypts plaintext with XChaCha20-Poly1305. | -| [testCreateRandomBytes](/docs/api-reference/common/Crypto/functions/testCreateRandomBytes.mdx) | Creates seeded random bytes for deterministic tests. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [DecryptWithXChaCha20Poly1305Error](/docs/api-reference/common/Crypto/interfaces/DecryptWithXChaCha20Poly1305Error.mdx) | Base interface for objects with a discriminant `type` property. | -| [RandomBytes](/docs/api-reference/common/Crypto/interfaces/RandomBytes.mdx) | - | -| [RandomBytesDep](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) | - | -| [TimingSafeEqualDep](/docs/api-reference/common/Crypto/interfaces/TimingSafeEqualDep.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [EncryptionKey](/docs/api-reference/common/Crypto/type-aliases/EncryptionKey.mdx) | The encryption key for symmetric encryption. | -| [Entropy16](/docs/api-reference/common/Crypto/type-aliases/Entropy16.mdx) | - | -| [Entropy24](/docs/api-reference/common/Crypto/type-aliases/Entropy24.mdx) | - | -| [Entropy32](/docs/api-reference/common/Crypto/type-aliases/Entropy32.mdx) | - | -| [Entropy64](/docs/api-reference/common/Crypto/type-aliases/Entropy64.mdx) | - | -| [TimingSafeEqual](/docs/api-reference/common/Crypto/type-aliases/TimingSafeEqual.mdx) | Performs a timing-safe comparison of two Uint8Arrays. Returns true if they are equal, false otherwise. Takes constant time regardless of where the arrays differ. | -| [XChaCha20Poly1305Ciphertext](/docs/api-reference/common/Crypto/type-aliases/XChaCha20Poly1305Ciphertext.mdx) | Branded Uint8Array for XChaCha20-Poly1305 encryption. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [EncryptionKey](/docs/api-reference/common/Crypto/variables/EncryptionKey.mdx) | The encryption key for symmetric encryption. | -| [Entropy16](/docs/api-reference/common/Crypto/variables/Entropy16.mdx) | - | -| [Entropy24](/docs/api-reference/common/Crypto/variables/Entropy24.mdx) | - | -| [Entropy32](/docs/api-reference/common/Crypto/variables/Entropy32.mdx) | - | -| [Entropy64](/docs/api-reference/common/Crypto/variables/Entropy64.mdx) | - | -| [XChaCha20Poly1305Ciphertext](/docs/api-reference/common/Crypto/variables/XChaCha20Poly1305Ciphertext.mdx) | Branded Uint8Array for XChaCha20-Poly1305 encryption. | -| [xChaCha20Poly1305NonceLength](/docs/api-reference/common/Crypto/variables/xChaCha20Poly1305NonceLength.mdx) | The nonce length for XChaCha20-Poly1305 encryption. | diff --git a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/EncryptionKey.mdx b/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/EncryptionKey.mdx deleted file mode 100644 index e33f0422b..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/EncryptionKey.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / EncryptionKey - -```ts -type EncryptionKey = Uint8Array & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Entropy"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Length32"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"EncryptionKey">; -``` - -Defined in: [packages/common/src/Crypto.ts:135](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L135) - -The encryption key for symmetric encryption. diff --git a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy16.mdx b/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy16.mdx deleted file mode 100644 index ca62d7ca4..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy16.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / Entropy16 - -```ts -type Entropy16 = Uint8Array & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Entropy"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Length16">; -``` - -Defined in: [packages/common/src/Crypto.ts:70](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L70) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy24.mdx b/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy24.mdx deleted file mode 100644 index 492466190..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy24.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / Entropy24 - -```ts -type Entropy24 = Uint8Array & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Entropy"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Length24">; -``` - -Defined in: [packages/common/src/Crypto.ts:73](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L73) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy32.mdx b/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy32.mdx deleted file mode 100644 index 6f572999e..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy32.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / Entropy32 - -```ts -type Entropy32 = Uint8Array & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Entropy"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Length32">; -``` - -Defined in: [packages/common/src/Crypto.ts:76](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L76) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy64.mdx b/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy64.mdx deleted file mode 100644 index 3e9382d80..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/Entropy64.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / Entropy64 - -```ts -type Entropy64 = Uint8Array & import("@evolu/common/src/Brand").Brand<"Entropy"> & import("@evolu/common/src/Brand").Brand<"Length64">; -``` - -Defined in: [packages/common/src/Crypto.ts:79](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L79) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/TimingSafeEqual.mdx b/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/TimingSafeEqual.mdx deleted file mode 100644 index 28453d86c..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/TimingSafeEqual.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / TimingSafeEqual - -```ts -type TimingSafeEqual = (a: Uint8Array, b: Uint8Array) => boolean; -``` - -Defined in: [packages/common/src/Crypto.ts:257](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L257) - -Performs a timing-safe comparison of two Uint8Arrays. Returns true if they -are equal, false otherwise. Takes constant time regardless of where the -arrays differ. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | `Uint8Array` | -| `b` | `Uint8Array` | - -## Returns - -`boolean` - -## See - -https://nodejs.org/api/crypto.html#cryptotimingsafeequala-b diff --git a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/XChaCha20Poly1305Ciphertext.mdx b/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/XChaCha20Poly1305Ciphertext.mdx deleted file mode 100644 index 96272f3b9..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/type-aliases/XChaCha20Poly1305Ciphertext.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / XChaCha20Poly1305Ciphertext - -```ts -type XChaCha20Poly1305Ciphertext = Uint8Array & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"XChaCha20Poly1305Ciphertext">; -``` - -Defined in: [packages/common/src/Crypto.ts:146](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L146) - -Branded Uint8Array for XChaCha20-Poly1305 encryption. - -## See - -[encryptWithXChaCha20Poly1305](/docs/api-reference/common/Crypto/functions/encryptWithXChaCha20Poly1305.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/variables/EncryptionKey.mdx b/.generated/evolu-docs/api-reference/common/Crypto/variables/EncryptionKey.mdx deleted file mode 100644 index d9386dcff..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/variables/EncryptionKey.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / EncryptionKey - -```ts -const EncryptionKey: brand("EncryptionKey", Entropy32); -``` - -Defined in: [packages/common/src/Crypto.ts:135](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L135) - -The encryption key for symmetric encryption. diff --git a/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy16.mdx b/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy16.mdx deleted file mode 100644 index cc42ba4da..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy16.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / Entropy16 - -```ts -const Entropy16: length(16)(Entropy); -``` - -Defined in: [packages/common/src/Crypto.ts:70](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L70) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy24.mdx b/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy24.mdx deleted file mode 100644 index e615b544b..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy24.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / Entropy24 - -```ts -const Entropy24: length(24)(Entropy); -``` - -Defined in: [packages/common/src/Crypto.ts:73](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L73) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy32.mdx b/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy32.mdx deleted file mode 100644 index fb33afb04..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy32.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / Entropy32 - -```ts -const Entropy32: length(32)(Entropy); -``` - -Defined in: [packages/common/src/Crypto.ts:76](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L76) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy64.mdx b/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy64.mdx deleted file mode 100644 index 734c07f3f..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/variables/Entropy64.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / Entropy64 - -```ts -const Entropy64: length(64)(Entropy); -``` - -Defined in: [packages/common/src/Crypto.ts:79](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L79) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/variables/XChaCha20Poly1305Ciphertext.mdx b/.generated/evolu-docs/api-reference/common/Crypto/variables/XChaCha20Poly1305Ciphertext.mdx deleted file mode 100644 index 40cca2af5..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/variables/XChaCha20Poly1305Ciphertext.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / XChaCha20Poly1305Ciphertext - -```ts -const XChaCha20Poly1305Ciphertext: brand( - "XChaCha20Poly1305Ciphertext", - Uint8Array, -); -``` - -Defined in: [packages/common/src/Crypto.ts:146](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L146) - -Branded Uint8Array for XChaCha20-Poly1305 encryption. - -## See - -[encryptWithXChaCha20Poly1305](/docs/api-reference/common/Crypto/functions/encryptWithXChaCha20Poly1305.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Crypto/variables/xChaCha20Poly1305NonceLength.mdx b/.generated/evolu-docs/api-reference/common/Crypto/variables/xChaCha20Poly1305NonceLength.mdx deleted file mode 100644 index 9eb99e67b..000000000 --- a/.generated/evolu-docs/api-reference/common/Crypto/variables/xChaCha20Poly1305NonceLength.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Crypto](/docs/api-reference/common/Crypto/page.mdx) / xChaCha20Poly1305NonceLength - -```ts -const xChaCha20Poly1305NonceLength: 24 = 24; -``` - -Defined in: [packages/common/src/Crypto.ts:139](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Crypto.ts#L139) - -The nonce length for XChaCha20-Poly1305 encryption. diff --git a/.generated/evolu-docs/api-reference/common/Eq/functions/createEqArrayLike.mdx b/.generated/evolu-docs/api-reference/common/Eq/functions/createEqArrayLike.mdx deleted file mode 100644 index 68f09916d..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/functions/createEqArrayLike.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / createEqArrayLike - -```ts -function createEqArrayLike(item: Eq): Eq>; -``` - -Defined in: [packages/common/src/Eq.ts:53](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L53) - -Creates an equivalence function for array-like structures based on an -equivalence for their elements. - -### Example - -```ts -const eqArrayNumber = createEqArrayLike(eqNumber); -eqArrayNumber([1, 2, 3], [1, 2, 3]); // true (works with regular arrays) -eqArrayNumber(new Uint8Array([1, 2, 3]), new Uint8Array([1, 2, 3])); // true (works with Uint8Array) -eqArrayNumber([1, 2, 3], [1, 2, 4]); // false -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `item` | [`Eq`](/docs/api-reference/common/Eq/type-aliases/Eq.mdx)\<`A`\> | - -## Returns - -[`Eq`](/docs/api-reference/common/Eq/type-aliases/Eq.mdx)\<`ArrayLike`\<`A`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Eq/functions/createEqObject.mdx b/.generated/evolu-docs/api-reference/common/Eq/functions/createEqObject.mdx deleted file mode 100644 index 7dc0ed34b..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/functions/createEqObject.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / createEqObject - -```ts -function createEqObject(eqs: { [K in string | number | symbol]: Eq }): Eq<{ readonly [K in string | number | symbol]: A[K] }>; -``` - -Defined in: [packages/common/src/Eq.ts:107](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L107) - -Creates an equivalence function for objects based on an equivalence for their -fields. - -### Example - -```ts -const eqObjectNumber = createEqObject({ a: eqNumber }); -eqObjectNumber({ a: 1 }, { a: 1 }); // true -eqObjectNumber({ a: 1 }, { a: 2 }); // false -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `eqs` | \{ \[K in string \| number \| symbol\]: Eq\ \} | - -## Returns - -[`Eq`](/docs/api-reference/common/Eq/type-aliases/Eq.mdx)\<\{ readonly \[K in string \| number \| symbol\]: A\[K\] \}\> diff --git a/.generated/evolu-docs/api-reference/common/Eq/functions/eqFromOrder.mdx b/.generated/evolu-docs/api-reference/common/Eq/functions/eqFromOrder.mdx deleted file mode 100644 index b3c39e680..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/functions/eqFromOrder.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqFromOrder - -```ts -function eqFromOrder(order: Order): Eq; -``` - -Defined in: [packages/common/src/Eq.ts:35](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L35) - -Derives an [Eq](/docs/api-reference/common/Eq/type-aliases/Eq.mdx) from an [Order](/docs/api-reference/common/Order/type-aliases/Order.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `order` | [`Order`](/docs/api-reference/common/Order/type-aliases/Order.mdx)\<`A`\> | - -## Returns - -[`Eq`](/docs/api-reference/common/Eq/type-aliases/Eq.mdx)\<`A`\> diff --git a/.generated/evolu-docs/api-reference/common/Eq/functions/eqJsonValue.mdx b/.generated/evolu-docs/api-reference/common/Eq/functions/eqJsonValue.mdx deleted file mode 100644 index da0048112..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/functions/eqJsonValue.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqJsonValue - -```ts -function eqJsonValue(a: JsonValue, b: JsonValue): boolean; -``` - -Defined in: [packages/common/src/Eq.ts:140](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L140) - -Deeply compares two [JsonValue](/docs/api-reference/common/Type/variables/JsonValue.mdx) values for equality. - -- Uses an iterative approach with a stack to handle large or deeply nested - objects without risking stack overflow. -- Handles circular references with a WeakMap to prevent infinite loops. -- Unlike JSON.stringify, this function directly compares values, avoiding - serialization overhead and leveraging short-circuit evaluation for faster - failure on mismatched structures. - -### Example - -```ts -const obj1: Json = { name: "Alice", hobbies: ["reading", "hiking"] }; -const obj2: Json = { name: "Alice", hobbies: ["reading", "hiking"] }; -console.log(eqJson(obj1, obj2)); // true -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | [`JsonValue`](/docs/api-reference/common/Type/type-aliases/JsonValue.mdx) | -| `b` | [`JsonValue`](/docs/api-reference/common/Type/type-aliases/JsonValue.mdx) | - -## Returns - -`boolean` diff --git a/.generated/evolu-docs/api-reference/common/Eq/functions/eqJsonValueInput.mdx b/.generated/evolu-docs/api-reference/common/Eq/functions/eqJsonValueInput.mdx deleted file mode 100644 index b61ab686e..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/functions/eqJsonValueInput.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqJsonValueInput - -```ts -function eqJsonValueInput(a: JsonValueInput, b: JsonValueInput): boolean; -``` - -Defined in: [packages/common/src/Eq.ts:236](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L236) - -Deeply compares two [JsonValueInput](/docs/api-reference/common/Type/type-aliases/JsonValueInput.mdx) values for equality. - -- Uses an iterative approach with a stack to handle large or deeply nested - objects without risking stack overflow. -- Handles circular references with a WeakMap to prevent infinite loops. -- Unlike JSON.stringify, this function directly compares values, avoiding - serialization overhead and leveraging short-circuit evaluation for faster - failure on mismatched structures. - -### Example - -```ts -const obj1: Json = { name: "Alice", hobbies: ["reading", "hiking"] }; -const obj2: Json = { name: "Alice", hobbies: ["reading", "hiking"] }; -console.log(eqJson(obj1, obj2)); // true -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | [`JsonValueInput`](/docs/api-reference/common/Type/type-aliases/JsonValueInput.mdx) | -| `b` | [`JsonValueInput`](/docs/api-reference/common/Type/type-aliases/JsonValueInput.mdx) | - -## Returns - -`boolean` diff --git a/.generated/evolu-docs/api-reference/common/Eq/functions/eqStrict.mdx b/.generated/evolu-docs/api-reference/common/Eq/functions/eqStrict.mdx deleted file mode 100644 index 866e197c6..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/functions/eqStrict.mdx +++ /dev/null @@ -1,24 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqStrict - -```ts -function eqStrict(x: A, y: A): boolean; -``` - -Defined in: [packages/common/src/Eq.ts:24](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L24) - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `x` | `A` | -| `y` | `A` | - -## Returns - -`boolean` diff --git a/.generated/evolu-docs/api-reference/common/Eq/page.mdx b/.generated/evolu-docs/api-reference/common/Eq/page.mdx deleted file mode 100644 index 150bb64d8..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/page.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Eq - -Equality comparison functions and utilities. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createEqArrayLike](/docs/api-reference/common/Eq/functions/createEqArrayLike.mdx) | Creates an equivalence function for array-like structures based on an equivalence for their elements. | -| [createEqObject](/docs/api-reference/common/Eq/functions/createEqObject.mdx) | Creates an equivalence function for objects based on an equivalence for their fields. | -| [eqFromOrder](/docs/api-reference/common/Eq/functions/eqFromOrder.mdx) | Derives an [Eq](/docs/api-reference/common/Eq/type-aliases/Eq.mdx) from an [Order](/docs/api-reference/common/Order/type-aliases/Order.mdx). | -| [eqJsonValue](/docs/api-reference/common/Eq/functions/eqJsonValue.mdx) | Deeply compares two [JsonValue](/docs/api-reference/common/Type/variables/JsonValue.mdx) values for equality. | -| [eqJsonValueInput](/docs/api-reference/common/Eq/functions/eqJsonValueInput.mdx) | Deeply compares two [JsonValueInput](/docs/api-reference/common/Type/type-aliases/JsonValueInput.mdx) values for equality. | -| [eqStrict](/docs/api-reference/common/Eq/functions/eqStrict.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [Eq](/docs/api-reference/common/Eq/type-aliases/Eq.mdx) | Compares two values of the same type `A` for equality. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [eqArrayNumber](/docs/api-reference/common/Eq/variables/eqArrayNumber.mdx) | Compares two array-like structures of numbers for equality. | -| [eqArrayStrict](/docs/api-reference/common/Eq/variables/eqArrayStrict.mdx) | Compares two array-like structures by strict reference equality (`===`). | -| [eqBigInt](/docs/api-reference/common/Eq/variables/eqBigInt.mdx) | - | -| [eqBoolean](/docs/api-reference/common/Eq/variables/eqBoolean.mdx) | - | -| [eqNull](/docs/api-reference/common/Eq/variables/eqNull.mdx) | - | -| [eqNumber](/docs/api-reference/common/Eq/variables/eqNumber.mdx) | - | -| [eqString](/docs/api-reference/common/Eq/variables/eqString.mdx) | - | -| [eqUndefined](/docs/api-reference/common/Eq/variables/eqUndefined.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/Eq/type-aliases/Eq.mdx b/.generated/evolu-docs/api-reference/common/Eq/type-aliases/Eq.mdx deleted file mode 100644 index 7d49c14f2..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/type-aliases/Eq.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / Eq - -```ts -type Eq = (x: A, y: A) => boolean; -``` - -Defined in: [packages/common/src/Eq.ts:22](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L22) - -Compares two values of the same type `A` for equality. - -Equality functions start with an 'eq' prefix, e.g., `eqString`. - -TODO: Explain, examples (composition etc.) - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `x` | `A` | -| `y` | `A` | - -## Returns - -`boolean` diff --git a/.generated/evolu-docs/api-reference/common/Eq/variables/eqArrayNumber.mdx b/.generated/evolu-docs/api-reference/common/Eq/variables/eqArrayNumber.mdx deleted file mode 100644 index 44a973589..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/variables/eqArrayNumber.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqArrayNumber - -```ts -const eqArrayNumber: Eq>; -``` - -Defined in: [packages/common/src/Eq.ts:92](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L92) - -Compares two array-like structures of numbers for equality. - -### Example - -```ts -eqArrayNumber([1, 2, 3], [1, 2, 3]); // true (works with regular arrays) -eqArrayNumber(new Uint8Array([1, 2, 3]), new Uint8Array([1, 2, 3])); // true (works with Uint8Array) -eqArrayNumber([1, 2, 3], [1, 2, 4]); // false -``` diff --git a/.generated/evolu-docs/api-reference/common/Eq/variables/eqArrayStrict.mdx b/.generated/evolu-docs/api-reference/common/Eq/variables/eqArrayStrict.mdx deleted file mode 100644 index cbb4c63d2..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/variables/eqArrayStrict.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqArrayStrict - -```ts -const eqArrayStrict: (x: ArrayLike, y: ArrayLike) => boolean; -``` - -Defined in: [packages/common/src/Eq.ts:79](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L79) - -Compares two array-like structures by strict reference equality (`===`). - -Useful for structural sharing checks where elements are compared by identity. - -### Example - -```ts -const a = { x: 1 }; -const b = { x: 1 }; -eqArrayStrict([a, a], [a, a]); // true (same references) -eqArrayStrict([a], [b]); // false (different references, even if equal values) -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `x` | `ArrayLike` | -| `y` | `ArrayLike` | - -## Returns - -`boolean` diff --git a/.generated/evolu-docs/api-reference/common/Eq/variables/eqBigInt.mdx b/.generated/evolu-docs/api-reference/common/Eq/variables/eqBigInt.mdx deleted file mode 100644 index 3f3a775c3..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/variables/eqBigInt.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqBigInt - -```ts -const eqBigInt: Eq = eqStrict; -``` - -Defined in: [packages/common/src/Eq.ts:28](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L28) diff --git a/.generated/evolu-docs/api-reference/common/Eq/variables/eqBoolean.mdx b/.generated/evolu-docs/api-reference/common/Eq/variables/eqBoolean.mdx deleted file mode 100644 index 0181f5510..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/variables/eqBoolean.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqBoolean - -```ts -const eqBoolean: Eq = eqStrict; -``` - -Defined in: [packages/common/src/Eq.ts:29](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L29) diff --git a/.generated/evolu-docs/api-reference/common/Eq/variables/eqNull.mdx b/.generated/evolu-docs/api-reference/common/Eq/variables/eqNull.mdx deleted file mode 100644 index 7dfa66653..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/variables/eqNull.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqNull - -```ts -const eqNull: Eq = eqStrict; -``` - -Defined in: [packages/common/src/Eq.ts:31](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L31) diff --git a/.generated/evolu-docs/api-reference/common/Eq/variables/eqNumber.mdx b/.generated/evolu-docs/api-reference/common/Eq/variables/eqNumber.mdx deleted file mode 100644 index 62c782f41..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/variables/eqNumber.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqNumber - -```ts -const eqNumber: Eq = eqStrict; -``` - -Defined in: [packages/common/src/Eq.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L27) diff --git a/.generated/evolu-docs/api-reference/common/Eq/variables/eqString.mdx b/.generated/evolu-docs/api-reference/common/Eq/variables/eqString.mdx deleted file mode 100644 index 6f1684cdc..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/variables/eqString.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqString - -```ts -const eqString: Eq = eqStrict; -``` - -Defined in: [packages/common/src/Eq.ts:26](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L26) diff --git a/.generated/evolu-docs/api-reference/common/Eq/variables/eqUndefined.mdx b/.generated/evolu-docs/api-reference/common/Eq/variables/eqUndefined.mdx deleted file mode 100644 index c40515f25..000000000 --- a/.generated/evolu-docs/api-reference/common/Eq/variables/eqUndefined.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Eq](/docs/api-reference/common/Eq/page.mdx) / eqUndefined - -```ts -const eqUndefined: Eq = eqStrict; -``` - -Defined in: [packages/common/src/Eq.ts:30](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Eq.ts#L30) diff --git a/.generated/evolu-docs/api-reference/common/Error/functions/createUnknownError.mdx b/.generated/evolu-docs/api-reference/common/Error/functions/createUnknownError.mdx deleted file mode 100644 index 934048fbe..000000000 --- a/.generated/evolu-docs/api-reference/common/Error/functions/createUnknownError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Error](/docs/api-reference/common/Error/page.mdx) / createUnknownError - -```ts -function createUnknownError(error: unknown): UnknownError; -``` - -Defined in: [packages/common/src/Error.ts:34](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Error.ts#L34) - -Creates an [UnknownError](/docs/api-reference/common/Error/interfaces/UnknownError.mdx) from an unknown error. - -Error objects cannot be directly structured-cloned (for worker messaging) or -JSON-serialized because their properties (`message`, `stack`, `cause`) are -non-enumerable. This function extracts those properties into a plain object. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `error` | `unknown` | - -## Returns - -[`UnknownError`](/docs/api-reference/common/Error/interfaces/UnknownError.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Error/functions/handleGlobalError.mdx b/.generated/evolu-docs/api-reference/common/Error/functions/handleGlobalError.mdx deleted file mode 100644 index 757acbb80..000000000 --- a/.generated/evolu-docs/api-reference/common/Error/functions/handleGlobalError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Error](/docs/api-reference/common/Error/page.mdx) / handleGlobalError - -```ts -function handleGlobalError(scope: GlobalErrorScope, error: unknown): void; -``` - -Defined in: [packages/common/src/Error.ts:116](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Error.ts#L116) - -Forwards an error to a [GlobalErrorScope](/docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx)'s `onError` callback. - -Asserts that `onError` is set, then normalizes the error with -[createUnknownError](/docs/api-reference/common/Error/functions/createUnknownError.mdx) and calls the callback. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `scope` | [`GlobalErrorScope`](/docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx) | -| `error` | `unknown` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx b/.generated/evolu-docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx deleted file mode 100644 index 20cbac88a..000000000 --- a/.generated/evolu-docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx +++ /dev/null @@ -1,86 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Error](/docs/api-reference/common/Error/page.mdx) / GlobalErrorScope - -Defined in: [packages/common/src/Error.ts:101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Error.ts#L101) - -Platform-agnostic scope for capturing global errors. - -Represents any execution context that can capture uncaught errors and -unhandled promise rejections — browser windows, Node.js processes, workers, -etc. - -Implementations hook into platform-specific global error handlers (`onerror`, -`onunhandledrejection`, `uncaughtException`, etc.). Any error reaching these -handlers is a programming error — all unsafe code should be wrapped with -[trySync](/docs/api-reference/common/Result/functions/trySync.mdx) or [tryAsync](/docs/api-reference/common/Result/functions/tryAsync.mdx). The `onError` callback exists for -observability, not error recovery. - -Implementations use [handleGlobalError](/docs/api-reference/common/Error/functions/handleGlobalError.mdx) to forward errors. - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Extended by - -- [`WorkerScope`](/docs/api-reference/common/Worker/interfaces/WorkerScope.mdx) -- [`SharedWorkerScope`](/docs/api-reference/common/Worker/interfaces/SharedWorkerScope.mdx) - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### onError - -```ts -onError: - | (error: UnknownError) => void - | null; -``` - -Defined in: [packages/common/src/Error.ts:107](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Error.ts#L107) - -Callback for uncaught errors and unhandled promise rejections. - -Set this to receive notifications when global errors occur in this scope. diff --git a/.generated/evolu-docs/api-reference/common/Error/interfaces/UnknownError.mdx b/.generated/evolu-docs/api-reference/common/Error/interfaces/UnknownError.mdx deleted file mode 100644 index 7ab72e506..000000000 --- a/.generated/evolu-docs/api-reference/common/Error/interfaces/UnknownError.mdx +++ /dev/null @@ -1,46 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Error](/docs/api-reference/common/Error/page.mdx) / UnknownError - -Defined in: [packages/common/src/Error.ts:23](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Error.ts#L23) - -A wrapper for unknown errors caught at runtime. - -When catching errors from unsafe code (third-party libraries, worker -boundaries, etc.), we wrap them in `UnknownError` so they can be used in -union types and distinguished from other error types. - -The `error` property contains error details (including `message`, `stack`, -and `cause` if available), a string, or a fallback value. - -Use [createUnknownError](/docs/api-reference/common/Error/functions/createUnknownError.mdx) to create instances. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"UnknownError"`\> - -## Properties - - - -### error - -```ts -readonly error: unknown; -``` - -Defined in: [packages/common/src/Error.ts:24](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Error.ts#L24) - -*** - - - -### type - -```ts -readonly type: "UnknownError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Error/page.mdx b/.generated/evolu-docs/api-reference/common/Error/page.mdx deleted file mode 100644 index 0b49f8a47..000000000 --- a/.generated/evolu-docs/api-reference/common/Error/page.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Error - -Error types and utilities for safe error handling. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createUnknownError](/docs/api-reference/common/Error/functions/createUnknownError.mdx) | Creates an [UnknownError](/docs/api-reference/common/Error/interfaces/UnknownError.mdx) from an unknown error. | -| [handleGlobalError](/docs/api-reference/common/Error/functions/handleGlobalError.mdx) | Forwards an error to a [GlobalErrorScope](/docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx)'s `onError` callback. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [GlobalErrorScope](/docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx) | Platform-agnostic scope for capturing global errors. | -| [UnknownError](/docs/api-reference/common/Error/interfaces/UnknownError.mdx) | A wrapper for unknown errors caught at runtime. | diff --git a/.generated/evolu-docs/api-reference/common/Function/functions/exhaustiveCheck.mdx b/.generated/evolu-docs/api-reference/common/Function/functions/exhaustiveCheck.mdx deleted file mode 100644 index 7c48ec11e..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/functions/exhaustiveCheck.mdx +++ /dev/null @@ -1,64 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / exhaustiveCheck - -```ts -function exhaustiveCheck(value: never): never; -``` - -Defined in: [packages/common/src/Function.ts:58](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L58) - -Helper function to ensure exhaustive matching in a switch statement. Throws -an error if an unhandled case is encountered. - -### Example - -```ts -type Color = "red" | "green" | "blue"; - -const handleColor = (color: Color): void => { - switch (color) { - case "red": - console.log("Handling red"); - break; - case "green": - console.log("Handling green"); - break; - case "blue": - console.log("Handling blue"); - break; - default: - exhaustiveCheck(color); // Ensures all cases are handled - } -}; -``` - -Useful only when the switch returns `void`; if it returns a value, the -function return type enforces exhaustiveness. - -### Example - -Use a return type when the switch returns a value. - -```ts -type Color = "red" | "green" | "blue"; - -const colorToHex = (color: Color): string => { - switch (color) { - case "red": - return "#ff0000"; - case "green": - return "#00ff00"; - case "blue": - return "#0000ff"; - } -}; -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `never` | - -## Returns - -`never` diff --git a/.generated/evolu-docs/api-reference/common/Function/functions/identity.mdx b/.generated/evolu-docs/api-reference/common/Function/functions/identity.mdx deleted file mode 100644 index d1fe76cb1..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/functions/identity.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / identity - -```ts -function identity(a: A): A; -``` - -Defined in: [packages/common/src/Function.ts:78](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L78) - -Returns the value unchanged. - -Useful as a default transformation, placeholder callback, or when a function -is required but no transformation is needed. - -### Example - -```ts -const values = [1, 2, 3]; -const same = values.map(identity); // [1, 2, 3] - -const getTransform = (shouldDouble: boolean) => - shouldDouble ? (x: number) => x * 2 : identity; -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | `A` | - -## Returns - -`A` diff --git a/.generated/evolu-docs/api-reference/common/Function/functions/lazy.mdx b/.generated/evolu-docs/api-reference/common/Function/functions/lazy.mdx deleted file mode 100644 index 68d968fbf..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/functions/lazy.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / lazy - -```ts -function lazy(value: T): Lazy; -``` - -Defined in: [packages/common/src/Function.ts:189](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L189) - -Creates a [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) from a precomputed value. - -Use when the value is expensive to compute and want to compute it once at -definition time rather than on every call. - -### Example - -```ts -// Computed once at definition, returned on every call -const getConfig = lazy(parseConfig(rawConfig)); - -// vs. computed on every call -const getConfig = () => parseConfig(rawConfig); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | - -## Returns - -[`Lazy`](/docs/api-reference/common/Function/type-aliases/Lazy.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Function/functions/readonly.mdx b/.generated/evolu-docs/api-reference/common/Function/functions/readonly.mdx deleted file mode 100644 index 7cfd0597d..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/functions/readonly.mdx +++ /dev/null @@ -1,170 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / readonly - -## Call Signature - -```ts -function readonly(array: [T, ...T[]]): readonly [T, T]; -``` - -Defined in: [packages/common/src/Function.ts:120](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L120) - -Casts an array, set, record, or map to its readonly counterpart. - -Zero runtime cost — returns the same value with a readonly type. Use this to -enforce immutability at the type level. Preserves [NonEmptyArray](/docs/api-reference/common/Array/type-aliases/NonEmptyArray.mdx) as -[NonEmptyReadonlyArray](/docs/api-reference/common/Array/type-aliases/NonEmptyReadonlyArray.mdx). - -### Example - -```ts -// Array literals become NonEmptyReadonlyArray -const items = readonly([1, 2, 3]); -// Type: NonEmptyReadonlyArray - -// NonEmptyArray is preserved as NonEmptyReadonlyArray -const nonEmpty: NonEmptyArray = [1, 2, 3]; -const readonlyNonEmpty = readonly(nonEmpty); -// Type: NonEmptyReadonlyArray - -// Regular arrays become ReadonlyArray -const arr: Array = getNumbers(); -const readonlyArr = readonly(arr); -// Type: ReadonlyArray - -// Sets, Records, and Maps -const ids = readonly(new Set(["a", "b"])); -// Type: ReadonlySet - -const users: Record = { ... }; -const readonlyUsers = readonly(users); -// Type: ReadonlyRecord - -const lookup = readonly(new Map([["key", "value"]])); -// Type: ReadonlyMap - -// ES2025 iterator chains: use .toArray() then readonly -const doubled = readonly([1, 2, 3].values().map((x) => x * 2).toArray()); -// Type: ReadonlyArray -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | \[`T`, `...T[]`\] | - -### Returns - -readonly \[`T`, `T`\] - -## Call Signature - -```ts -function readonly(array: T[]): readonly T[]; -``` - -Defined in: [packages/common/src/Function.ts:122](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L122) - -Array overload. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `array` | `T`[] | - -### Returns - -readonly `T`[] - -## Call Signature - -```ts -function readonly(set: Set): ReadonlySet; -``` - -Defined in: [packages/common/src/Function.ts:124](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L124) - -Set overload. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `set` | `Set`\<`T`\> | - -### Returns - -`ReadonlySet`\<`T`\> - -## Call Signature - -```ts -function readonly(map: Map): ReadonlyMap; -``` - -Defined in: [packages/common/src/Function.ts:126](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L126) - -Map overload. - -### Type Parameters - -| Type Parameter | -| ------ | -| `K` | -| `V` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `map` | `Map`\<`K`, `V`\> | - -### Returns - -`ReadonlyMap`\<`K`, `V`\> - -## Call Signature - -```ts -function readonly(record: Record): ReadonlyRecord; -``` - -Defined in: [packages/common/src/Function.ts:128](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L128) - -Record overload. - -### Type Parameters - -| Type Parameter | -| ------ | -| `K` *extends* `string` \| `number` \| `symbol` | -| `V` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `record` | `Record`\<`K`, `V`\> | - -### Returns - -[`ReadonlyRecord`](/docs/api-reference/common/Object/type-aliases/ReadonlyRecord.mdx)\<`K`, `V`\> diff --git a/.generated/evolu-docs/api-reference/common/Function/functions/todo.mdx b/.generated/evolu-docs/api-reference/common/Function/functions/todo.mdx deleted file mode 100644 index aff746707..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/functions/todo.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / todo - -```ts -function todo(): T; -``` - -Defined in: [packages/common/src/Function.ts:231](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L231) - -Development placeholder that always throws. - -Use to sketch function bodies before implementing them. TypeScript infers the -return type from context, so surrounding code still type-checks. Use an -explicit generic when there is no return type annotation. - -### Example - -```ts -// Type inferred from return type annotation -const fetchUser = (id: UserId): Result => todo(); - -expectTypeOf(fetchUser).returns.toEqualTypeOf< - Result ->(); - -// Explicit generic when no return type -const getConfig = () => todo(); - -expectTypeOf(getConfig).returns.toEqualTypeOf(); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Returns - -`T` diff --git a/.generated/evolu-docs/api-reference/common/Function/page.mdx b/.generated/evolu-docs/api-reference/common/Function/page.mdx deleted file mode 100644 index e6d65e0ee..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/page.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Function - -Function utilities including exhaustive checks and composition. - -## Functions - -| Function | Description | -| ------ | ------ | -| [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) | Helper function to ensure exhaustive matching in a switch statement. Throws an error if an unhandled case is encountered. | -| [identity](/docs/api-reference/common/Function/functions/identity.mdx) | Returns the value unchanged. | -| [lazy](/docs/api-reference/common/Function/functions/lazy.mdx) | Creates a [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) from a precomputed value. | -| [readonly](/docs/api-reference/common/Function/functions/readonly.mdx) | Casts an array, set, record, or map to its readonly counterpart. | -| [todo](/docs/api-reference/common/Function/functions/todo.mdx) | Development placeholder that always throws. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) | A function that takes no arguments and returns a value of type T. Also known as a thunk. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [lazyFalse](/docs/api-reference/common/Function/variables/lazyFalse.mdx) | A [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) that returns `false`. | -| [lazyNull](/docs/api-reference/common/Function/variables/lazyNull.mdx) | A [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) that returns `null`. | -| [lazyTrue](/docs/api-reference/common/Function/variables/lazyTrue.mdx) | A [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) that returns `true`. | -| [lazyUndefined](/docs/api-reference/common/Function/variables/lazyUndefined.mdx) | A [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) that returns `undefined`. | -| [lazyVoid](/docs/api-reference/common/Function/variables/lazyVoid.mdx) | A [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) that returns `undefined` for void callbacks. | diff --git a/.generated/evolu-docs/api-reference/common/Function/type-aliases/Lazy.mdx b/.generated/evolu-docs/api-reference/common/Function/type-aliases/Lazy.mdx deleted file mode 100644 index bf707a004..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/type-aliases/Lazy.mdx +++ /dev/null @@ -1,45 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / Lazy - -```ts -type Lazy = () => T; -``` - -Defined in: [packages/common/src/Function.ts:170](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L170) - -A function that takes no arguments and returns a value of type T. Also known -as a thunk. - -Useful for: - -- Providing default callbacks (see [lazyVoid](/docs/api-reference/common/Function/variables/lazyVoid.mdx), [lazyTrue](/docs/api-reference/common/Function/variables/lazyTrue.mdx), etc.) -- Delaying expensive operations until actually needed -- Deferring side effects so the callee controls when they run - -### Example - -```ts -// Default callback -const notify = (onDone: Lazy = lazyVoid) => { - onDone(); -}; - -// Delay computation -const getData: Lazy = () => compute(); -const data = getData(); - -// Defer side effects -const schedule = (job: Lazy) => { - queueMicrotask(job); -}; -schedule(() => logMetric("loaded")); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Returns - -`T` diff --git a/.generated/evolu-docs/api-reference/common/Function/variables/lazyFalse.mdx b/.generated/evolu-docs/api-reference/common/Function/variables/lazyFalse.mdx deleted file mode 100644 index 06612608a..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/variables/lazyFalse.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / lazyFalse - -```ts -const lazyFalse: Lazy; -``` - -Defined in: [packages/common/src/Function.ts:197](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L197) - -A [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) that returns `false`. diff --git a/.generated/evolu-docs/api-reference/common/Function/variables/lazyNull.mdx b/.generated/evolu-docs/api-reference/common/Function/variables/lazyNull.mdx deleted file mode 100644 index eae24109d..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/variables/lazyNull.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / lazyNull - -```ts -const lazyNull: Lazy; -``` - -Defined in: [packages/common/src/Function.ts:200](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L200) - -A [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) that returns `null`. diff --git a/.generated/evolu-docs/api-reference/common/Function/variables/lazyTrue.mdx b/.generated/evolu-docs/api-reference/common/Function/variables/lazyTrue.mdx deleted file mode 100644 index be3a0055e..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/variables/lazyTrue.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / lazyTrue - -```ts -const lazyTrue: Lazy; -``` - -Defined in: [packages/common/src/Function.ts:194](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L194) - -A [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) that returns `true`. diff --git a/.generated/evolu-docs/api-reference/common/Function/variables/lazyUndefined.mdx b/.generated/evolu-docs/api-reference/common/Function/variables/lazyUndefined.mdx deleted file mode 100644 index ff7b32a7d..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/variables/lazyUndefined.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / lazyUndefined - -```ts -const lazyUndefined: Lazy; -``` - -Defined in: [packages/common/src/Function.ts:203](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L203) - -A [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) that returns `undefined`. diff --git a/.generated/evolu-docs/api-reference/common/Function/variables/lazyVoid.mdx b/.generated/evolu-docs/api-reference/common/Function/variables/lazyVoid.mdx deleted file mode 100644 index 78fef1018..000000000 --- a/.generated/evolu-docs/api-reference/common/Function/variables/lazyVoid.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Function](/docs/api-reference/common/Function/page.mdx) / lazyVoid - -```ts -const lazyVoid: Lazy = lazyUndefined; -``` - -Defined in: [packages/common/src/Function.ts:206](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Function.ts#L206) - -A [Lazy](/docs/api-reference/common/Function/type-aliases/Lazy.mdx) that returns `undefined` for void callbacks. diff --git a/.generated/evolu-docs/api-reference/common/Identicon/functions/createIdenticon.mdx b/.generated/evolu-docs/api-reference/common/Identicon/functions/createIdenticon.mdx deleted file mode 100644 index e894cec82..000000000 --- a/.generated/evolu-docs/api-reference/common/Identicon/functions/createIdenticon.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Identicon](/docs/api-reference/common/Identicon/page.mdx) / createIdenticon - -```ts -function createIdenticon(id: string & Brand<"Id">, style?: IdenticonStyle): Identicon; -``` - -Defined in: [packages/common/src/Identicon.ts:44](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Identicon.ts#L44) - -Creates a deterministic identicon SVG from an [Id](/docs/api-reference/common/Type/variables/Id.mdx). - -Works with any [Id](/docs/api-reference/common/Type/variables/Id.mdx) including branded IDs like `OwnerId`, etc. - -Available styles: - -- `"github"` (default): 5x5 grid with horizontal mirroring (GitHub-style) -- `"quadrant"`: 2x2 grid with direct RGB color mapping from bytes -- `"gradient"`: Diagonal stripes with smooth color gradients -- `"sutnar"`: Three compositional variants with adaptive colors - -### Example - -```ts -const svg = createIdenticon(id); -const quadrantStyle = createIdenticon(id, "quadrant"); -const gradientStyle = createIdenticon(id, "gradient"); -const sutnarStyle = createIdenticon(id, "sutnar"); - -// Works with branded IDs -const ownerSvg = createIdenticon(ownerId); -``` - -## Parameters - -| Parameter | Type | Default value | -| ------ | ------ | ------ | -| `id` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> | `undefined` | -| `style` | [`IdenticonStyle`](/docs/api-reference/common/Identicon/type-aliases/IdenticonStyle.mdx) | `"github"` | - -## Returns - -[`Identicon`](/docs/api-reference/common/Identicon/type-aliases/Identicon.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Identicon/page.mdx b/.generated/evolu-docs/api-reference/common/Identicon/page.mdx deleted file mode 100644 index 11554aa00..000000000 --- a/.generated/evolu-docs/api-reference/common/Identicon/page.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Identicon - -Visual identicon generation from IDs. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createIdenticon](/docs/api-reference/common/Identicon/functions/createIdenticon.mdx) | Creates a deterministic identicon SVG from an [Id](/docs/api-reference/common/Type/variables/Id.mdx). | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [Identicon](/docs/api-reference/common/Identicon/type-aliases/Identicon.mdx) | SVG string representing a visual identicon for an [Id](/docs/api-reference/common/Type/variables/Id.mdx), created with [createIdenticon](/docs/api-reference/common/Identicon/functions/createIdenticon.mdx). | -| [IdenticonStyle](/docs/api-reference/common/Identicon/type-aliases/IdenticonStyle.mdx) | [Identicon](/docs/api-reference/common/Identicon/type-aliases/Identicon.mdx) style. | diff --git a/.generated/evolu-docs/api-reference/common/Identicon/type-aliases/Identicon.mdx b/.generated/evolu-docs/api-reference/common/Identicon/type-aliases/Identicon.mdx deleted file mode 100644 index de4d52a0b..000000000 --- a/.generated/evolu-docs/api-reference/common/Identicon/type-aliases/Identicon.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Identicon](/docs/api-reference/common/Identicon/page.mdx) / Identicon - -```ts -type Identicon = string & Brand<"Identicon">; -``` - -Defined in: [packages/common/src/Identicon.ts:15](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Identicon.ts#L15) - -SVG string representing a visual identicon for an [Id](/docs/api-reference/common/Type/variables/Id.mdx), created with -[createIdenticon](/docs/api-reference/common/Identicon/functions/createIdenticon.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Identicon/type-aliases/IdenticonStyle.mdx b/.generated/evolu-docs/api-reference/common/Identicon/type-aliases/IdenticonStyle.mdx deleted file mode 100644 index d8a96632c..000000000 --- a/.generated/evolu-docs/api-reference/common/Identicon/type-aliases/IdenticonStyle.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Identicon](/docs/api-reference/common/Identicon/page.mdx) / IdenticonStyle - -```ts -type IdenticonStyle = "github" | "quadrant" | "gradient" | "sutnar"; -``` - -Defined in: [packages/common/src/Identicon.ts:18](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Identicon.ts#L18) - -[Identicon](/docs/api-reference/common/Identicon/type-aliases/Identicon.mdx) style. diff --git a/.generated/evolu-docs/api-reference/common/Instances/functions/createInstances.mdx b/.generated/evolu-docs/api-reference/common/Instances/functions/createInstances.mdx deleted file mode 100644 index 97b62192d..000000000 --- a/.generated/evolu-docs/api-reference/common/Instances/functions/createInstances.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Instances](/docs/api-reference/common/Instances/page.mdx) / createInstances - -```ts -function createInstances(): Instances; -``` - -Defined in: [packages/common/src/Instances.ts:51](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Instances.ts#L51) - -Creates an [Instances](/docs/api-reference/common/Instances/interfaces/Instances.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `K` *extends* `string` | -| `T` *extends* [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) | - -## Returns - -[`Instances`](/docs/api-reference/common/Instances/interfaces/Instances.mdx)\<`K`, `T`\> diff --git a/.generated/evolu-docs/api-reference/common/Instances/interfaces/Instances.mdx b/.generated/evolu-docs/api-reference/common/Instances/interfaces/Instances.mdx deleted file mode 100644 index 8c9791f5e..000000000 --- a/.generated/evolu-docs/api-reference/common/Instances/interfaces/Instances.mdx +++ /dev/null @@ -1,173 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Instances](/docs/api-reference/common/Instances/page.mdx) / Instances - -Defined in: [packages/common/src/Instances.ts:24](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Instances.ts#L24) - -A multiton for disposable instances. - -A multiton guarantees exactly one instance per key. - -Use cases: - -- One Mutex per key to prevent concurrent writes -- Preserving state during hot module reloading - -Note: Do not use this as global shared state. Use it locally or pass it as a -dependency instead. The only exception is hot reloading, where Evolu uses -this to keep a single instance across module reloads. Bundler hot-reload APIs -are not consistent across environments, so this is a portable fallback. -Having two Evolu instances with the same name would mean two SQLite -connections to the same file, which could corrupt data. - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | -| ------ | -| `K` *extends* `string` | -| `T` *extends* [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### delete() - -```ts -readonly delete: (key: K) => boolean; -``` - -Defined in: [packages/common/src/Instances.ts:47](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Instances.ts#L47) - -Deletes and disposes an instance by key. Returns `true` if the instance -existed and was deleted, `false` otherwise. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `K` | - -#### Returns - -`boolean` - -*** - - - -### ensure() - -```ts -readonly ensure: (key: K, create: () => T, onCacheHit?: (instance: T) => void) => T; -``` - -Defined in: [packages/common/src/Instances.ts:31](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Instances.ts#L31) - -Ensures an instance exists for the given key, creating it if necessary. If -the instance already exists, the optional `onCacheHit` callback is invoked -to update the existing instance. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `K` | -| `create` | () => `T` | -| `onCacheHit?` | (`instance`: `T`) => `void` | - -#### Returns - -`T` - -*** - - - -### get() - -```ts -readonly get: (key: K) => T | null; -``` - -Defined in: [packages/common/src/Instances.ts:38](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Instances.ts#L38) - -Gets an instance by key, or returns `null` if it doesn't exist. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `K` | - -#### Returns - -`T` \| `null` - -*** - - - -### has() - -```ts -readonly has: (key: K) => boolean; -``` - -Defined in: [packages/common/src/Instances.ts:41](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Instances.ts#L41) - -Checks if an instance exists for the given key. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `K` | - -#### Returns - -`boolean` diff --git a/.generated/evolu-docs/api-reference/common/Instances/page.mdx b/.generated/evolu-docs/api-reference/common/Instances/page.mdx deleted file mode 100644 index 323d7838c..000000000 --- a/.generated/evolu-docs/api-reference/common/Instances/page.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Instances - -A multiton for disposable instances. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createInstances](/docs/api-reference/common/Instances/functions/createInstances.mdx) | Creates an [Instances](/docs/api-reference/common/Instances/interfaces/Instances.mdx). | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Instances](/docs/api-reference/common/Instances/interfaces/Instances.mdx) | A multiton for disposable instances. | diff --git a/.generated/evolu-docs/api-reference/common/Listeners/functions/createListeners.mdx b/.generated/evolu-docs/api-reference/common/Listeners/functions/createListeners.mdx deleted file mode 100644 index 7b502ad7b..000000000 --- a/.generated/evolu-docs/api-reference/common/Listeners/functions/createListeners.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Listeners](/docs/api-reference/common/Listeners/page.mdx) / createListeners - -```ts -function createListeners(): Listeners; -``` - -Defined in: [packages/common/src/Listeners.ts:42](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Listeners.ts#L42) - -Creates a [Listeners](/docs/api-reference/common/Listeners/interfaces/Listeners.mdx) instance for managing subscriptions. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | `void` | - -## Returns - -[`Listeners`](/docs/api-reference/common/Listeners/interfaces/Listeners.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Listeners/interfaces/Listeners.mdx b/.generated/evolu-docs/api-reference/common/Listeners/interfaces/Listeners.mdx deleted file mode 100644 index 03f52339a..000000000 --- a/.generated/evolu-docs/api-reference/common/Listeners/interfaces/Listeners.mdx +++ /dev/null @@ -1,122 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Listeners](/docs/api-reference/common/Listeners/page.mdx) / Listeners - -Defined in: [packages/common/src/Listeners.ts:33](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Listeners.ts#L33) - -A simple publish-subscribe mechanism for broadcasting notifications. - -Use Listeners when you need to notify multiple listeners about events. The -generic parameter allows typed payloads. - -### Example - -```ts -// Without payload (default) -const listeners = createListeners(); -listeners.subscribe(() => console.log("notified")); -listeners.notify(); - -// With typed payload -const listeners = createListeners<{ id: string }>(); -listeners.subscribe((event) => console.log(event.id)); -listeners.notify({ id: "123" }); -``` - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | `void` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### notify() - -```ts -readonly notify: (value: T) => void; -``` - -Defined in: [packages/common/src/Listeners.ts:38](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Listeners.ts#L38) - -Notifies all registered listeners. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | - -#### Returns - -`void` - -*** - - - -### subscribe() - -```ts -readonly subscribe: (listener: Listener) => Unsubscribe; -``` - -Defined in: [packages/common/src/Listeners.ts:35](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Listeners.ts#L35) - -Registers a listener and returns an unsubscribe function. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `listener` | [`Listener`](/docs/api-reference/common/Listeners/type-aliases/Listener.mdx)\<`T`\> | - -#### Returns - -[`Unsubscribe`](/docs/api-reference/common/Listeners/type-aliases/Unsubscribe.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Listeners/page.mdx b/.generated/evolu-docs/api-reference/common/Listeners/page.mdx deleted file mode 100644 index a38f1d0ef..000000000 --- a/.generated/evolu-docs/api-reference/common/Listeners/page.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Listeners - -Simple publish-subscribe mechanism for event broadcasting. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createListeners](/docs/api-reference/common/Listeners/functions/createListeners.mdx) | Creates a [Listeners](/docs/api-reference/common/Listeners/interfaces/Listeners.mdx) instance for managing subscriptions. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Listeners](/docs/api-reference/common/Listeners/interfaces/Listeners.mdx) | A simple publish-subscribe mechanism for broadcasting notifications. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [Listener](/docs/api-reference/common/Listeners/type-aliases/Listener.mdx) | A callback invoked on notification. | -| [Unsubscribe](/docs/api-reference/common/Listeners/type-aliases/Unsubscribe.mdx) | Unsubscribe function to remove a listener. | diff --git a/.generated/evolu-docs/api-reference/common/Listeners/type-aliases/Listener.mdx b/.generated/evolu-docs/api-reference/common/Listeners/type-aliases/Listener.mdx deleted file mode 100644 index 9f2606911..000000000 --- a/.generated/evolu-docs/api-reference/common/Listeners/type-aliases/Listener.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Listeners](/docs/api-reference/common/Listeners/page.mdx) / Listener - -```ts -type Listener = (value: T) => void; -``` - -Defined in: [packages/common/src/Listeners.ts:8](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Listeners.ts#L8) - -A callback invoked on notification. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | `void` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Listeners/type-aliases/Unsubscribe.mdx b/.generated/evolu-docs/api-reference/common/Listeners/type-aliases/Unsubscribe.mdx deleted file mode 100644 index 27a918628..000000000 --- a/.generated/evolu-docs/api-reference/common/Listeners/type-aliases/Unsubscribe.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Listeners](/docs/api-reference/common/Listeners/page.mdx) / Unsubscribe - -```ts -type Unsubscribe = () => void; -``` - -Defined in: [packages/common/src/Listeners.ts:11](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Listeners.ts#L11) - -Unsubscribe function to remove a listener. - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Microtask/functions/createMicrotaskBatch.mdx b/.generated/evolu-docs/api-reference/common/Microtask/functions/createMicrotaskBatch.mdx deleted file mode 100644 index 8a113d548..000000000 --- a/.generated/evolu-docs/api-reference/common/Microtask/functions/createMicrotaskBatch.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Microtask](/docs/api-reference/common/Microtask/page.mdx) / createMicrotaskBatch - -```ts -function createMicrotaskBatch(onFlush: (items: readonly [T, T]) => void): MicrotaskBatch; -``` - -Defined in: [packages/common/src/Microtask.ts:24](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Microtask.ts#L24) - -Creates [MicrotaskBatch](/docs/api-reference/common/Microtask/interfaces/MicrotaskBatch.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `onFlush` | (`items`: readonly \[`T`, `T`\]) => `void` | - -## Returns - -[`MicrotaskBatch`](/docs/api-reference/common/Microtask/interfaces/MicrotaskBatch.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Microtask/interfaces/MicrotaskBatch.mdx b/.generated/evolu-docs/api-reference/common/Microtask/interfaces/MicrotaskBatch.mdx deleted file mode 100644 index bdd81fdfd..000000000 --- a/.generated/evolu-docs/api-reference/common/Microtask/interfaces/MicrotaskBatch.mdx +++ /dev/null @@ -1,56 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Microtask](/docs/api-reference/common/Microtask/page.mdx) / MicrotaskBatch - -Defined in: [packages/common/src/Microtask.ts:15](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Microtask.ts#L15) - -Batches values and flushes them in a single microtask. - -Calls to [MicrotaskBatch.push](/docs/api-reference/common/Microtask/interfaces/MicrotaskBatch.mdx#push) within the same tick are coalesced into -one flush. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Properties - - - -### flushNow() - -```ts -readonly flushNow: () => void; -``` - -Defined in: [packages/common/src/Microtask.ts:20](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Microtask.ts#L20) - -Flushes queued items immediately. - -#### Returns - -`void` - -*** - - - -### push() - -```ts -readonly push: (item: T) => void; -``` - -Defined in: [packages/common/src/Microtask.ts:17](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Microtask.ts#L17) - -Enqueues one item and schedules a microtask flush if needed. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `item` | `T` | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Microtask/page.mdx b/.generated/evolu-docs/api-reference/common/Microtask/page.mdx deleted file mode 100644 index 97fb2d227..000000000 --- a/.generated/evolu-docs/api-reference/common/Microtask/page.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Microtask - -Microtask queue utilities. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createMicrotaskBatch](/docs/api-reference/common/Microtask/functions/createMicrotaskBatch.mdx) | Creates [MicrotaskBatch](/docs/api-reference/common/Microtask/interfaces/MicrotaskBatch.mdx). | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [MicrotaskBatch](/docs/api-reference/common/Microtask/interfaces/MicrotaskBatch.mdx) | Batches values and flushes them in a single microtask. | diff --git a/.generated/evolu-docs/api-reference/common/Number/functions/clamp.mdx b/.generated/evolu-docs/api-reference/common/Number/functions/clamp.mdx deleted file mode 100644 index 31e1d7374..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/functions/clamp.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Number](/docs/api-reference/common/Number/page.mdx) / clamp - -```ts -function clamp(min: number, max: number): (n: number) => number; -``` - -Defined in: [packages/common/src/Number.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Number.ts#L27) - -Clamps a number within a given range. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `min` | `number` | -| `max` | `number` | - -## Returns - -```ts -(n: number): number; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `n` | `number` | - -### Returns - -`number` diff --git a/.generated/evolu-docs/api-reference/common/Number/functions/computeBalancedBuckets.mdx b/.generated/evolu-docs/api-reference/common/Number/functions/computeBalancedBuckets.mdx deleted file mode 100644 index c0c0e5102..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/functions/computeBalancedBuckets.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Number](/docs/api-reference/common/Number/page.mdx) / computeBalancedBuckets - -```ts -function computeBalancedBuckets( - numberOfItems: number & Brand<"Int"> & Brand<"NonNegative">, - numberOfBuckets?: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">, -minNumberOfItemsPerBucket?: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">): Result & Brand<"NonNegative"> & Brand<"Positive">, number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">], number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">>; -``` - -Defined in: [packages/common/src/Number.ts:71](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Number.ts#L71) - -Divides items into buckets as evenly as possible, ensuring each bucket has at -least the minimum number of items. Returns a success result if the minimum is -met, or an error result with the required number of items if not. - -### Example - -```ts -computeBalancedBuckets(10, 3, 2); // Returns ok([4, 7, 10]) -computeBalancedBuckets(5, 3, 2); // Returns err(6) -``` - -## Parameters - -| Parameter | Type | Description | -| ------ | ------ | ------ | -| `numberOfItems` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | - | -| `numberOfBuckets` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> | Default: 16 | -| `minNumberOfItemsPerBucket` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> | Default: 2 | - -## Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\ & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\>, `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\>\], `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Number/functions/decrement.mdx b/.generated/evolu-docs/api-reference/common/Number/functions/decrement.mdx deleted file mode 100644 index 1ef2ff3fc..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/functions/decrement.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Number](/docs/api-reference/common/Number/page.mdx) / decrement - -```ts -function decrement(n: number): number; -``` - -Defined in: [packages/common/src/Number.ts:23](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Number.ts#L23) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `n` | `number` | - -## Returns - -`number` diff --git a/.generated/evolu-docs/api-reference/common/Number/functions/fibonacciAt.mdx b/.generated/evolu-docs/api-reference/common/Number/functions/fibonacciAt.mdx deleted file mode 100644 index 8cbcdcf31..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/functions/fibonacciAt.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Number](/docs/api-reference/common/Number/page.mdx) / fibonacciAt - -```ts -function fibonacciAt(index: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive"> & Brand<"LessThanOrEqualTo78"> & Brand<"FibonacciIndex">): number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/Number.ts:113](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Number.ts#L113) - -Returns the Fibonacci number at the given index (1-indexed: 1,1,2,3,5,8,...). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `index` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThanOrEqualTo78"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"FibonacciIndex"`\> | - -## Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> diff --git a/.generated/evolu-docs/api-reference/common/Number/functions/increment.mdx b/.generated/evolu-docs/api-reference/common/Number/functions/increment.mdx deleted file mode 100644 index f74a4e897..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/functions/increment.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Number](/docs/api-reference/common/Number/page.mdx) / increment - -```ts -function increment(n: number): number; -``` - -Defined in: [packages/common/src/Number.ts:21](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Number.ts#L21) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `n` | `number` | - -## Returns - -`number` diff --git a/.generated/evolu-docs/api-reference/common/Number/functions/isBetween.mdx b/.generated/evolu-docs/api-reference/common/Number/functions/isBetween.mdx deleted file mode 100644 index 6edff1795..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/functions/isBetween.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Number](/docs/api-reference/common/Number/page.mdx) / isBetween - -```ts -function isBetween(min: number, max: number): Predicate; -``` - -Defined in: [packages/common/src/Number.ts:43](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Number.ts#L43) - -Creates a predicate that checks if a number is within a range, inclusive. - -### Example - -```ts -const isBetween10And20 = isBetween(10, 20); -console.log(isBetween10And20(15)); // true -console.log(isBetween10And20(25)); // false -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `min` | `number` | -| `max` | `number` | - -## Returns - -[`Predicate`](/docs/api-reference/common/Types/type-aliases/Predicate.mdx)\<`number`\> diff --git a/.generated/evolu-docs/api-reference/common/Number/functions/max.mdx b/.generated/evolu-docs/api-reference/common/Number/functions/max.mdx deleted file mode 100644 index 2b9fc60f9..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/functions/max.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Number](/docs/api-reference/common/Number/page.mdx) / max - -```ts -function max(...values: [T, ...T[]]): IsBranded extends true ? T : WidenLiteral; -``` - -Defined in: [packages/common/src/Number.ts:54](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Number.ts#L54) - -Returns the maximum value, preserving branded type if applicable. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`values` | \[`T`, `...T[]`\] | - -## Returns - -[`IsBranded`](/docs/api-reference/common/Brand/type-aliases/IsBranded.mdx)\<`T`\> *extends* `true` ? `T` : [`WidenLiteral`](/docs/api-reference/common/Types/type-aliases/WidenLiteral.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Number/functions/min.mdx b/.generated/evolu-docs/api-reference/common/Number/functions/min.mdx deleted file mode 100644 index 764251f1a..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/functions/min.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Number](/docs/api-reference/common/Number/page.mdx) / min - -```ts -function min(...values: [T, ...T[]]): IsBranded extends true ? T : WidenLiteral; -``` - -Defined in: [packages/common/src/Number.ts:48](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Number.ts#L48) - -Returns the minimum value, preserving branded type if applicable. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`values` | \[`T`, `...T[]`\] | - -## Returns - -[`IsBranded`](/docs/api-reference/common/Brand/type-aliases/IsBranded.mdx)\<`T`\> *extends* `true` ? `T` : [`WidenLiteral`](/docs/api-reference/common/Types/type-aliases/WidenLiteral.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Number/page.mdx b/.generated/evolu-docs/api-reference/common/Number/page.mdx deleted file mode 100644 index 03417c976..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/page.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Number - -Number arithmetic, comparison, and branded numeric types. - -## Functions - -| Function | Description | -| ------ | ------ | -| [clamp](/docs/api-reference/common/Number/functions/clamp.mdx) | Clamps a number within a given range. | -| [computeBalancedBuckets](/docs/api-reference/common/Number/functions/computeBalancedBuckets.mdx) | Divides items into buckets as evenly as possible, ensuring each bucket has at least the minimum number of items. Returns a success result if the minimum is met, or an error result with the required number of items if not. | -| [decrement](/docs/api-reference/common/Number/functions/decrement.mdx) | - | -| [fibonacciAt](/docs/api-reference/common/Number/functions/fibonacciAt.mdx) | Returns the Fibonacci number at the given index (1-indexed: 1,1,2,3,5,8,...). | -| [increment](/docs/api-reference/common/Number/functions/increment.mdx) | - | -| [isBetween](/docs/api-reference/common/Number/functions/isBetween.mdx) | Creates a predicate that checks if a number is within a range, inclusive. | -| [max](/docs/api-reference/common/Number/functions/max.mdx) | Returns the maximum value, preserving branded type if applicable. | -| [min](/docs/api-reference/common/Number/functions/min.mdx) | Returns the minimum value, preserving branded type if applicable. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [FibonacciIndex](/docs/api-reference/common/Number/type-aliases/FibonacciIndex.mdx) | Valid index for [fibonacciAt](/docs/api-reference/common/Number/functions/fibonacciAt.mdx), constrained to 1-78. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [FibonacciIndex](/docs/api-reference/common/Number/variables/FibonacciIndex.mdx) | Valid index for [fibonacciAt](/docs/api-reference/common/Number/functions/fibonacciAt.mdx), constrained to 1-78. | diff --git a/.generated/evolu-docs/api-reference/common/Number/type-aliases/FibonacciIndex.mdx b/.generated/evolu-docs/api-reference/common/Number/type-aliases/FibonacciIndex.mdx deleted file mode 100644 index 27fbc722f..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/type-aliases/FibonacciIndex.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Number](/docs/api-reference/common/Number/page.mdx) / FibonacciIndex - -```ts -type FibonacciIndex = number & import("@evolu/common/src/Brand").Brand<"Int"> & import("@evolu/common/src/Brand").Brand<"NonNegative"> & import("@evolu/common/src/Brand").Brand<"Positive"> & import("@evolu/common/src/Brand").Brand<"LessThanOrEqualTo78"> & import("@evolu/common/src/Brand").Brand<"FibonacciIndex">; -``` - -Defined in: [packages/common/src/Number.ts:106](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Number.ts#L106) - -Valid index for [fibonacciAt](/docs/api-reference/common/Number/functions/fibonacciAt.mdx), constrained to 1-78. - -Limited to 78 because F(79) exceeds JavaScript's `MAX_SAFE_INTEGER`. diff --git a/.generated/evolu-docs/api-reference/common/Number/variables/FibonacciIndex.mdx b/.generated/evolu-docs/api-reference/common/Number/variables/FibonacciIndex.mdx deleted file mode 100644 index 27f2d91c7..000000000 --- a/.generated/evolu-docs/api-reference/common/Number/variables/FibonacciIndex.mdx +++ /dev/null @@ -1,14 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Number](/docs/api-reference/common/Number/page.mdx) / FibonacciIndex - -```ts -const FibonacciIndex: brand( - "FibonacciIndex", - lessThanOrEqualTo(78)(PositiveInt), -); -``` - -Defined in: [packages/common/src/Number.ts:106](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Number.ts#L106) - -Valid index for [fibonacciAt](/docs/api-reference/common/Number/functions/fibonacciAt.mdx), constrained to 1-78. - -Limited to 78 because F(79) exceeds JavaScript's `MAX_SAFE_INTEGER`. diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/createObjectURL.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/createObjectURL.mdx deleted file mode 100644 index 828b2933f..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/createObjectURL.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / createObjectURL - -```ts -function createObjectURL(blob: Blob): ObjectURL; -``` - -Defined in: [packages/common/src/Object.ts:225](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L225) - -Creates a disposable [ObjectURL](/docs/api-reference/common/Object/interfaces/ObjectURL.mdx) for the given blob. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `blob` | `Blob` | - -## Returns - -[`ObjectURL`](/docs/api-reference/common/Object/interfaces/ObjectURL.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/createRecord.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/createRecord.mdx deleted file mode 100644 index 0fc3dcad4..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/createRecord.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / createRecord - -```ts -function createRecord(): Record; -``` - -Defined in: [packages/common/src/Object.ts:167](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L167) - -Creates a prototype-less object typed as `Record`. - -Use this function when you need a plain record without a prototype chain -(e.g. when keys are controlled by external sources) to avoid prototype -pollution and accidental collisions with properties like `__proto__`. - -Example: - -```ts -const values = createRecord(); -values["__proto__"] = someValue; // safe, no prototype pollution -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `K` *extends* `string` | `string` | -| `V` | `unknown` | - -## Returns - -`Record`\<`K`, `V`\> diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/excludeProp.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/excludeProp.mdx deleted file mode 100644 index 427b6d7c1..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/excludeProp.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / excludeProp - -```ts -function excludeProp( - obj: T, - prop: K, -condition?: boolean): Omit; -``` - -Defined in: [packages/common/src/Object.ts:141](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L141) - -Conditionally excludes a property from an object. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* `object` | -| `K` *extends* `string` \| `number` \| `symbol` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `obj` | `T` | -| `prop` | `K` | -| `condition?` | `boolean` | - -## Returns - -[`Omit`](https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys)\<`T`, `K`\> diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/getProperty.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/getProperty.mdx deleted file mode 100644 index f99f3836b..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/getProperty.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / getProperty - -```ts -function getProperty(record: ReadonlyRecord, key: K): V | undefined; -``` - -Defined in: [packages/common/src/Object.ts:197](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L197) - -Safely gets a property from a record, returning `undefined` if the key -doesn't exist. - -TypeScript's `Record` type assumes all keys exist, but at runtime -accessing a non-existent key returns `undefined`. This helper provides proper -typing for that case without needing a type assertion. - -### Example - -```ts -const users: Record = { alice: { name: "Alice" } }; -const user = getProperty(users, "bob"); // User | undefined -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `K` *extends* `string` | -| `V` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `record` | [`ReadonlyRecord`](/docs/api-reference/common/Object/type-aliases/ReadonlyRecord.mdx)\<`K`, `V`\> | -| `key` | `K` | - -## Returns - -`V` \| `undefined` diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/isFunction.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/isFunction.mdx deleted file mode 100644 index 35858c55d..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/isFunction.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / isFunction - -```ts -function isFunction(value: unknown): value is Function; -``` - -Defined in: [packages/common/src/Object.ts:41](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L41) - -Checks if a value is a function. - -### Example - -```ts -isFunction(() => {}); // true -isFunction(function () {}); // true -isFunction({}); // false -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -## Returns - -`value is Function` diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/isIterable.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/isIterable.mdx deleted file mode 100644 index 172b63a31..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/isIterable.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / isIterable - -```ts -function isIterable(value: unknown): value is Iterable; -``` - -Defined in: [packages/common/src/Object.ts:55](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L55) - -Checks if a value is [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol). - -### Example - -```ts -isIterable([1, 2, 3]); // true -isIterable("abc"); // true -isIterable({}); // false -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -## Returns - -`value is Iterable` diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/isPlainObject.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/isPlainObject.mdx deleted file mode 100644 index 0fe463a03..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/isPlainObject.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / isPlainObject - -```ts -function isPlainObject(value: unknown): value is Record; -``` - -Defined in: [packages/common/src/Object.ts:25](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L25) - -Checks if a value is a plain object (e.g., created with `{}` or `Object`). - -### Example - -```ts -isPlainObject({}); // true -isPlainObject(new Date()); // false -isPlainObject([]); // false -isPlainObject(null); // false -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -## Returns - -`value is Record` diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/mapObject.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/mapObject.mdx deleted file mode 100644 index 4c243fec3..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/mapObject.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / mapObject - -```ts -function mapObject(record: ReadonlyRecord, fn: (value: V, key: K) => U): ReadonlyRecord; -``` - -Defined in: [packages/common/src/Object.ts:127](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L127) - -Maps a `ReadonlyRecord` to a new `ReadonlyRecord`, preserving -branded key types (e.g., `type Id = 'id' & string`) lost by `Object.entries`. -Uses `K extends string` for precision. - -## Type Parameters - -| Type Parameter | -| ------ | -| `K` *extends* `string` | -| `V` | -| `U` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `record` | [`ReadonlyRecord`](/docs/api-reference/common/Object/type-aliases/ReadonlyRecord.mdx)\<`K`, `V`\> | -| `fn` | (`value`: `V`, `key`: `K`) => `U` | - -## Returns - -[`ReadonlyRecord`](/docs/api-reference/common/Object/type-aliases/ReadonlyRecord.mdx)\<`K`, `U`\> diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/objectFrom.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/objectFrom.mdx deleted file mode 100644 index 02afeb750..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/objectFrom.mdx +++ /dev/null @@ -1,40 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / objectFrom - -```ts -function objectFrom(keys: readonly K[], getValue: (key: K) => V): ReadonlyRecord; -``` - -Defined in: [packages/common/src/Object.ts:116](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L116) - -Creates an object by mapping keys to values. - -The inverse of `Object.keys` — instead of extracting keys from an object, -builds an object from keys with a mapper function. - -### Example - -```ts -objectFrom(["en", "fr", "de"], loadTranslations); -// { en: Translations, fr: Translations, de: Translations } - -objectFrom(["trace", "debug", "log"], (level) => createHandler(level)); -// { trace: Handler, debug: Handler, log: Handler } -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `K` *extends* `string` | -| `V` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `keys` | readonly `K`[] | -| `getValue` | (`key`: `K`) => `V` | - -## Returns - -[`ReadonlyRecord`](/docs/api-reference/common/Object/type-aliases/ReadonlyRecord.mdx)\<`K`, `V`\> diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/objectFromEntries.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/objectFromEntries.mdx deleted file mode 100644 index 1a6ef4be1..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/objectFromEntries.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / objectFromEntries - -```ts -function objectFromEntries(entries: Iterable): ReadonlyRecord; -``` - -Defined in: [packages/common/src/Object.ts:96](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L96) - -Creates an object from key-value pairs, preserving branded key types. - -The inverse of [objectToEntries](/docs/api-reference/common/Object/functions/objectToEntries.mdx). Use when you need type-safe -reconstruction of objects with branded keys. - -### Example - -```ts -type UserId = string & { readonly __brand: "UserId" }; -const entries: ReadonlyArray<[UserId, string]> = [ - ["u1" as UserId, "Alice"], -]; -const users = objectFromEntries(entries); // ReadonlyRecord -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `K` *extends* `string` | -| `V` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `entries` | [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\ | - -## Returns - -[`ReadonlyRecord`](/docs/api-reference/common/Object/type-aliases/ReadonlyRecord.mdx)\<`K`, `V`\> diff --git a/.generated/evolu-docs/api-reference/common/Object/functions/objectToEntries.mdx b/.generated/evolu-docs/api-reference/common/Object/functions/objectToEntries.mdx deleted file mode 100644 index 2105354b7..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/functions/objectToEntries.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / objectToEntries - -```ts -function objectToEntries(record: T): readonly [Extract, T[Extract]][]; -``` - -Defined in: [packages/common/src/Object.ts:70](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L70) - -Like `Object.entries` but preserves branded keys. - -### Example - -```ts -type UserId = string & { readonly __brand: "UserId" }; -const users = createRecord(); -const entries = objectToEntries(users); // [UserId, string][] -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* `Record`\<`string`, `any`\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `record` | `T` | - -## Returns - -readonly \[`Extract`\, `T`\[`Extract`\\]\][] diff --git a/.generated/evolu-docs/api-reference/common/Object/interfaces/ObjectURL.mdx b/.generated/evolu-docs/api-reference/common/Object/interfaces/ObjectURL.mdx deleted file mode 100644 index 21ceca542..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/interfaces/ObjectURL.mdx +++ /dev/null @@ -1,79 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / ObjectURL - -Defined in: [packages/common/src/Object.ts:219](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L219) - -A disposable wrapper around `URL.createObjectURL` that automatically revokes -the URL when disposed. Use with the `using` declaration for automatic -cleanup. - -### Example - -```ts -const blob = new Blob(["hello"], { type: "text/plain" }); -using objectUrl = createObjectURL(blob); -console.log(objectUrl.url); // blob:... -// URL.revokeObjectURL is automatically called when the scope ends -``` - -This ensures the URL is always revoked when the scope ends, even if an error -occurs, preventing memory leaks from unreleased blob URLs. - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### url - -```ts -readonly url: string; -``` - -Defined in: [packages/common/src/Object.ts:221](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L221) - -The object URL string created by `URL.createObjectURL`. diff --git a/.generated/evolu-docs/api-reference/common/Object/page.mdx b/.generated/evolu-docs/api-reference/common/Object/page.mdx deleted file mode 100644 index 2113fbe65..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/page.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Object - -Object utilities. - -## Constants - -| Variable | Description | -| ------ | ------ | -| [emptyRecord](/docs/api-reference/common/Object/variables/emptyRecord.mdx) | An empty readonly record. | - -## Functions - -| Function | Description | -| ------ | ------ | -| [createObjectURL](/docs/api-reference/common/Object/functions/createObjectURL.mdx) | Creates a disposable [ObjectURL](/docs/api-reference/common/Object/interfaces/ObjectURL.mdx) for the given blob. | -| [createRecord](/docs/api-reference/common/Object/functions/createRecord.mdx) | Creates a prototype-less object typed as `Record`. | -| [excludeProp](/docs/api-reference/common/Object/functions/excludeProp.mdx) | Conditionally excludes a property from an object. | -| [getProperty](/docs/api-reference/common/Object/functions/getProperty.mdx) | Safely gets a property from a record, returning `undefined` if the key doesn't exist. | -| [isFunction](/docs/api-reference/common/Object/functions/isFunction.mdx) | Checks if a value is a function. | -| [isIterable](/docs/api-reference/common/Object/functions/isIterable.mdx) | Checks if a value is [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol). | -| [isPlainObject](/docs/api-reference/common/Object/functions/isPlainObject.mdx) | Checks if a value is a plain object (e.g., created with `{}` or `Object`). | -| [mapObject](/docs/api-reference/common/Object/functions/mapObject.mdx) | Maps a `ReadonlyRecord` to a new `ReadonlyRecord`, preserving branded key types (e.g., `type Id = 'id' & string`) lost by `Object.entries`. Uses `K extends string` for precision. | -| [objectFrom](/docs/api-reference/common/Object/functions/objectFrom.mdx) | Creates an object by mapping keys to values. | -| [objectFromEntries](/docs/api-reference/common/Object/functions/objectFromEntries.mdx) | Creates an object from key-value pairs, preserving branded key types. | -| [objectToEntries](/docs/api-reference/common/Object/functions/objectToEntries.mdx) | Like `Object.entries` but preserves branded keys. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [ObjectURL](/docs/api-reference/common/Object/interfaces/ObjectURL.mdx) | A disposable wrapper around `URL.createObjectURL` that automatically revokes the URL when disposed. Use with the `using` declaration for automatic cleanup. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [ReadonlyRecord](/docs/api-reference/common/Object/type-aliases/ReadonlyRecord.mdx) | A read-only `Record` with `K extends keyof any` to preserve branded key types (e.g., in [mapObject](/docs/api-reference/common/Object/functions/mapObject.mdx)). | diff --git a/.generated/evolu-docs/api-reference/common/Object/type-aliases/ReadonlyRecord.mdx b/.generated/evolu-docs/api-reference/common/Object/type-aliases/ReadonlyRecord.mdx deleted file mode 100644 index 11d230a77..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/type-aliases/ReadonlyRecord.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / ReadonlyRecord - -```ts -type ReadonlyRecord = Readonly>; -``` - -Defined in: [packages/common/src/Object.ts:11](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L11) - -A read-only `Record` with `K extends keyof any` to preserve branded key -types (e.g., in [mapObject](/docs/api-reference/common/Object/functions/mapObject.mdx)). - -## Type Parameters - -| Type Parameter | -| ------ | -| `K` *extends* keyof `any` | -| `V` | diff --git a/.generated/evolu-docs/api-reference/common/Object/variables/emptyRecord.mdx b/.generated/evolu-docs/api-reference/common/Object/variables/emptyRecord.mdx deleted file mode 100644 index 301b7d1a5..000000000 --- a/.generated/evolu-docs/api-reference/common/Object/variables/emptyRecord.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Object](/docs/api-reference/common/Object/page.mdx) / emptyRecord - -```ts -const emptyRecord: Readonly>; -``` - -Defined in: [packages/common/src/Object.ts:179](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Object.ts#L179) - -An empty readonly record. - -Use as a default or initial value to avoid allocating new empty records. diff --git a/.generated/evolu-docs/api-reference/common/Option/functions/fromNullable.mdx b/.generated/evolu-docs/api-reference/common/Option/functions/fromNullable.mdx deleted file mode 100644 index 4424f335e..000000000 --- a/.generated/evolu-docs/api-reference/common/Option/functions/fromNullable.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Option](/docs/api-reference/common/Option/page.mdx) / fromNullable - -```ts -function fromNullable(value: T | null | undefined): Option>; -``` - -Defined in: [packages/common/src/Option.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Option.ts#L72) - -Converts a nullable value to an [Option](/docs/api-reference/common/Option/type-aliases/Option.mdx). - -`null` and `undefined` become [none](/docs/api-reference/common/Option/variables/none.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` \| `null` \| `undefined` | - -## Returns - -[`Option`](/docs/api-reference/common/Option/type-aliases/Option.mdx)\<`NonNullable`\<`T`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Option/functions/isNone.mdx b/.generated/evolu-docs/api-reference/common/Option/functions/isNone.mdx deleted file mode 100644 index 83899d961..000000000 --- a/.generated/evolu-docs/api-reference/common/Option/functions/isNone.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Option](/docs/api-reference/common/Option/page.mdx) / isNone - -```ts -function isNone(option: Option): option is None; -``` - -Defined in: [packages/common/src/Option.ts:64](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Option.ts#L64) - -Type guard for [None](/docs/api-reference/common/Option/interfaces/None.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `option` | [`Option`](/docs/api-reference/common/Option/type-aliases/Option.mdx)\<`T`\> | - -## Returns - -`option is None` diff --git a/.generated/evolu-docs/api-reference/common/Option/functions/isSome.mdx b/.generated/evolu-docs/api-reference/common/Option/functions/isSome.mdx deleted file mode 100644 index 5f538eeaa..000000000 --- a/.generated/evolu-docs/api-reference/common/Option/functions/isSome.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Option](/docs/api-reference/common/Option/page.mdx) / isSome - -```ts -function isSome(option: Option): option is Some; -``` - -Defined in: [packages/common/src/Option.ts:60](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Option.ts#L60) - -Type guard for [Some](/docs/api-reference/common/Option/interfaces/Some.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `option` | [`Option`](/docs/api-reference/common/Option/type-aliases/Option.mdx)\<`T`\> | - -## Returns - -`option is Some` diff --git a/.generated/evolu-docs/api-reference/common/Option/functions/some.mdx b/.generated/evolu-docs/api-reference/common/Option/functions/some.mdx deleted file mode 100644 index 1033d01e9..000000000 --- a/.generated/evolu-docs/api-reference/common/Option/functions/some.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Option](/docs/api-reference/common/Option/page.mdx) / some - -```ts -function some(value: T): Option; -``` - -Defined in: [packages/common/src/Option.ts:51](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Option.ts#L51) - -Creates a [Some](/docs/api-reference/common/Option/interfaces/Some.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | - -## Returns - -[`Option`](/docs/api-reference/common/Option/type-aliases/Option.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Option/interfaces/None.mdx b/.generated/evolu-docs/api-reference/common/Option/interfaces/None.mdx deleted file mode 100644 index ab7f8b040..000000000 --- a/.generated/evolu-docs/api-reference/common/Option/interfaces/None.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Option](/docs/api-reference/common/Option/page.mdx) / None - -Defined in: [packages/common/src/Option.ts:40](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Option.ts#L40) - -Absent value in an [Option](/docs/api-reference/common/Option/type-aliases/Option.mdx). - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"None"`\> - -## Properties - - - -### type - -```ts -readonly type: "None"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Option/interfaces/Some.mdx b/.generated/evolu-docs/api-reference/common/Option/interfaces/Some.mdx deleted file mode 100644 index 0ebbb47e4..000000000 --- a/.generated/evolu-docs/api-reference/common/Option/interfaces/Some.mdx +++ /dev/null @@ -1,43 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Option](/docs/api-reference/common/Option/page.mdx) / Some - -Defined in: [packages/common/src/Option.ts:35](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Option.ts#L35) - -Present value in an [Option](/docs/api-reference/common/Option/type-aliases/Option.mdx). - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"Some"`\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Properties - - - -### type - -```ts -readonly type: "Some"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) - -*** - - - -### value - -```ts -readonly value: T; -``` - -Defined in: [packages/common/src/Option.ts:36](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Option.ts#L36) diff --git a/.generated/evolu-docs/api-reference/common/Option/page.mdx b/.generated/evolu-docs/api-reference/common/Option/page.mdx deleted file mode 100644 index 037f02923..000000000 --- a/.generated/evolu-docs/api-reference/common/Option/page.mdx +++ /dev/null @@ -1,58 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Option - -Optional value container. - -Distinguishes absence from values like `null` or `undefined`. - -Use Option when the value itself can be `null` or `undefined`. For APIs where -`null` means "not found", just use `T | null` directly. - -### Example - -```ts -// A cache that can store any value, including null and undefined -const cache = new Map>(); - -const get = (key: string): Option => cache.get(key) ?? none; - -cache.set("a", some(null)); // Stored null -cache.set("b", some(undefined)); // Stored undefined - -isSome(get("a")); // true — value is null -isSome(get("b")); // true — value is undefined -isNone(get("c")); // true — key doesn't exist -``` - -## Utilities - -| Type Alias | Description | -| ------ | ------ | -| [InferOption](/docs/api-reference/common/Option/type-aliases/InferOption.mdx) | Extracts the value type from an [Option](/docs/api-reference/common/Option/type-aliases/Option.mdx) or [Some](/docs/api-reference/common/Option/interfaces/Some.mdx). | - -## Functions - -| Function | Description | -| ------ | ------ | -| [fromNullable](/docs/api-reference/common/Option/functions/fromNullable.mdx) | Converts a nullable value to an [Option](/docs/api-reference/common/Option/type-aliases/Option.mdx). | -| [isNone](/docs/api-reference/common/Option/functions/isNone.mdx) | Type guard for [None](/docs/api-reference/common/Option/interfaces/None.mdx). | -| [isSome](/docs/api-reference/common/Option/functions/isSome.mdx) | Type guard for [Some](/docs/api-reference/common/Option/interfaces/Some.mdx). | -| [some](/docs/api-reference/common/Option/functions/some.mdx) | Creates a [Some](/docs/api-reference/common/Option/interfaces/Some.mdx). | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [None](/docs/api-reference/common/Option/interfaces/None.mdx) | Absent value in an [Option](/docs/api-reference/common/Option/type-aliases/Option.mdx). | -| [Some](/docs/api-reference/common/Option/interfaces/Some.mdx) | Present value in an [Option](/docs/api-reference/common/Option/type-aliases/Option.mdx). | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [Option](/docs/api-reference/common/Option/type-aliases/Option.mdx) | Optional value. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [none](/docs/api-reference/common/Option/variables/none.mdx) | Shared [None](/docs/api-reference/common/Option/interfaces/None.mdx) instance. | diff --git a/.generated/evolu-docs/api-reference/common/Option/type-aliases/InferOption.mdx b/.generated/evolu-docs/api-reference/common/Option/type-aliases/InferOption.mdx deleted file mode 100644 index 551bc9910..000000000 --- a/.generated/evolu-docs/api-reference/common/Option/type-aliases/InferOption.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Option](/docs/api-reference/common/Option/page.mdx) / InferOption - -```ts -type InferOption = O extends Some ? T : never; -``` - -Defined in: [packages/common/src/Option.ts:47](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Option.ts#L47) - -Extracts the value type from an [Option](/docs/api-reference/common/Option/type-aliases/Option.mdx) or [Some](/docs/api-reference/common/Option/interfaces/Some.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `O` *extends* [`Option`](/docs/api-reference/common/Option/type-aliases/Option.mdx)\<`any`\> | diff --git a/.generated/evolu-docs/api-reference/common/Option/type-aliases/Option.mdx b/.generated/evolu-docs/api-reference/common/Option/type-aliases/Option.mdx deleted file mode 100644 index 28f442647..000000000 --- a/.generated/evolu-docs/api-reference/common/Option/type-aliases/Option.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Option](/docs/api-reference/common/Option/page.mdx) / Option - -```ts -type Option = - | Some - | None; -``` - -Defined in: [packages/common/src/Option.ts:32](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Option.ts#L32) - -Optional value. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | diff --git a/.generated/evolu-docs/api-reference/common/Option/variables/none.mdx b/.generated/evolu-docs/api-reference/common/Option/variables/none.mdx deleted file mode 100644 index 8edfdaa07..000000000 --- a/.generated/evolu-docs/api-reference/common/Option/variables/none.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Option](/docs/api-reference/common/Option/page.mdx) / none - -```ts -const none: None; -``` - -Defined in: [packages/common/src/Option.ts:57](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Option.ts#L57) - -Shared [None](/docs/api-reference/common/Option/interfaces/None.mdx) instance. diff --git a/.generated/evolu-docs/api-reference/common/Order/functions/createOrder.mdx b/.generated/evolu-docs/api-reference/common/Order/functions/createOrder.mdx deleted file mode 100644 index 92a003541..000000000 --- a/.generated/evolu-docs/api-reference/common/Order/functions/createOrder.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Order](/docs/api-reference/common/Order/page.mdx) / createOrder - -```ts -function createOrder(isLessThan: (x: A, y: A) => boolean): Order; -``` - -Defined in: [packages/common/src/Order.ts:38](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Order.ts#L38) - -Creates an ordering function from a "less than" comparator. - -### Example - -```ts -const orderNumber = createOrder((x, y) => x < y); -expect(orderNumber(1, 2)).toEqual(-1); -expect(orderNumber(2, 1)).toEqual(1); -expect(orderNumber(1, 1)).toEqual(0); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `isLessThan` | (`x`: `A`, `y`: `A`) => `boolean` | - -## Returns - -[`Order`](/docs/api-reference/common/Order/type-aliases/Order.mdx)\<`A`\> diff --git a/.generated/evolu-docs/api-reference/common/Order/functions/reverseOrder.mdx b/.generated/evolu-docs/api-reference/common/Order/functions/reverseOrder.mdx deleted file mode 100644 index ad0362676..000000000 --- a/.generated/evolu-docs/api-reference/common/Order/functions/reverseOrder.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Order](/docs/api-reference/common/Order/page.mdx) / reverseOrder - -```ts -function reverseOrder(order: Order): Order; -``` - -Defined in: [packages/common/src/Order.ts:54](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Order.ts#L54) - -Returns an order that reverses the order of the given order. - -### Example - -```ts -reverseOrder(orderNumber)(1, 2); // 1 -reverseOrder(orderNumber)(2, 1); // -1 -reverseOrder(orderNumber)(1, 1); // 0 -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `order` | [`Order`](/docs/api-reference/common/Order/type-aliases/Order.mdx)\<`A`\> | - -## Returns - -[`Order`](/docs/api-reference/common/Order/type-aliases/Order.mdx)\<`A`\> diff --git a/.generated/evolu-docs/api-reference/common/Order/page.mdx b/.generated/evolu-docs/api-reference/common/Order/page.mdx deleted file mode 100644 index bd3376635..000000000 --- a/.generated/evolu-docs/api-reference/common/Order/page.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Order - -Ordering and comparison utilities. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createOrder](/docs/api-reference/common/Order/functions/createOrder.mdx) | Creates an ordering function from a "less than" comparator. | -| [reverseOrder](/docs/api-reference/common/Order/functions/reverseOrder.mdx) | Returns an order that reverses the order of the given order. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [Order](/docs/api-reference/common/Order/type-aliases/Order.mdx) | Compares two values of type `A` and returns their ordering. | -| [Ordering](/docs/api-reference/common/Order/type-aliases/Ordering.mdx) | A type representing the result of an ordering operation. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [orderBigInt](/docs/api-reference/common/Order/variables/orderBigInt.mdx) | An order for bigints in ascending order. | -| [orderNumber](/docs/api-reference/common/Order/variables/orderNumber.mdx) | An order for numbers in ascending order. | -| [orderString](/docs/api-reference/common/Order/variables/orderString.mdx) | An order for `string` values in ascending order. | -| [orderUint8Array](/docs/api-reference/common/Order/variables/orderUint8Array.mdx) | An [Order](/docs/api-reference/common/Order/type-aliases/Order.mdx) for Uint8Array. | diff --git a/.generated/evolu-docs/api-reference/common/Order/type-aliases/Order.mdx b/.generated/evolu-docs/api-reference/common/Order/type-aliases/Order.mdx deleted file mode 100644 index d89577dbc..000000000 --- a/.generated/evolu-docs/api-reference/common/Order/type-aliases/Order.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Order](/docs/api-reference/common/Order/page.mdx) / Order - -```ts -type Order = (x: A, y: A) => Ordering; -``` - -Defined in: [packages/common/src/Order.ts:16](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Order.ts#L16) - -Compares two values of type `A` and returns their ordering. - -Ordering functions start with an 'order' prefix, e.g., `orderNumber`. - -- Returns `-1` if `x` is less than `y`. -- Returns `0` if `x` is equal to `y`. -- Returns `1` if `x` is greater than `y`. - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `x` | `A` | -| `y` | `A` | - -## Returns - -[`Ordering`](/docs/api-reference/common/Order/type-aliases/Ordering.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Order/type-aliases/Ordering.mdx b/.generated/evolu-docs/api-reference/common/Order/type-aliases/Ordering.mdx deleted file mode 100644 index 93432c308..000000000 --- a/.generated/evolu-docs/api-reference/common/Order/type-aliases/Ordering.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Order](/docs/api-reference/common/Order/page.mdx) / Ordering - -```ts -type Ordering = -1 | 0 | 1; -``` - -Defined in: [packages/common/src/Order.ts:23](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Order.ts#L23) - -A type representing the result of an ordering operation. - -Compatible with the return values expected by `Array.prototype.sort`. diff --git a/.generated/evolu-docs/api-reference/common/Order/variables/orderBigInt.mdx b/.generated/evolu-docs/api-reference/common/Order/variables/orderBigInt.mdx deleted file mode 100644 index 3d41f3237..000000000 --- a/.generated/evolu-docs/api-reference/common/Order/variables/orderBigInt.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Order](/docs/api-reference/common/Order/page.mdx) / orderBigInt - -```ts -const orderBigInt: Order; -``` - -Defined in: [packages/common/src/Order.ts:103](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Order.ts#L103) - -An order for bigints in ascending order. - -### Example - -```ts -orderBigInt(1n, 2n); // -1 -orderBigInt(2n, 1n); // 1 -orderBigInt(1n, 1n); // 0 -[2n, 1n, 3n].toSorted(orderBigInt); // [1n, 2n, 3n] -``` diff --git a/.generated/evolu-docs/api-reference/common/Order/variables/orderNumber.mdx b/.generated/evolu-docs/api-reference/common/Order/variables/orderNumber.mdx deleted file mode 100644 index fa89fa3c5..000000000 --- a/.generated/evolu-docs/api-reference/common/Order/variables/orderNumber.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Order](/docs/api-reference/common/Order/page.mdx) / orderNumber - -```ts -const orderNumber: Order; -``` - -Defined in: [packages/common/src/Order.ts:89](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Order.ts#L89) - -An order for numbers in ascending order. - -### Example - -```ts -orderNumber(1, 2); // -1 -orderNumber(2, 1); // 1 -orderNumber(1, 1); // 0 -[2, 1, 3].toSorted(orderNumber); // [1, 2, 3] -reverseOrder(orderNumber)(1, 2); // 1 -reverseOrder(orderNumber)(2, 1); // -1 -reverseOrder(orderNumber)(1, 1); // 0 -``` diff --git a/.generated/evolu-docs/api-reference/common/Order/variables/orderString.mdx b/.generated/evolu-docs/api-reference/common/Order/variables/orderString.mdx deleted file mode 100644 index 3e2ef8733..000000000 --- a/.generated/evolu-docs/api-reference/common/Order/variables/orderString.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Order](/docs/api-reference/common/Order/page.mdx) / orderString - -```ts -const orderString: Order; -``` - -Defined in: [packages/common/src/Order.ts:70](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Order.ts#L70) - -An order for `string` values in ascending order. - -### Example - -```ts -orderString("a", "b"); // -1 -orderString("b", "a"); // 1 -orderString("a", "a"); // 0 -["c", "b", "a"].toSorted(orderString); // ["a", "b", "c"] -``` diff --git a/.generated/evolu-docs/api-reference/common/Order/variables/orderUint8Array.mdx b/.generated/evolu-docs/api-reference/common/Order/variables/orderUint8Array.mdx deleted file mode 100644 index 7001e5452..000000000 --- a/.generated/evolu-docs/api-reference/common/Order/variables/orderUint8Array.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Order](/docs/api-reference/common/Order/page.mdx) / orderUint8Array - -```ts -const orderUint8Array: Order; -``` - -Defined in: [packages/common/src/Order.ts:106](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Order.ts#L106) - -An [Order](/docs/api-reference/common/Order/type-aliases/Order.mdx) for Uint8Array. diff --git a/.generated/evolu-docs/api-reference/common/Platform/interfaces/FlushSyncDep.mdx b/.generated/evolu-docs/api-reference/common/Platform/interfaces/FlushSyncDep.mdx deleted file mode 100644 index af01d8549..000000000 --- a/.generated/evolu-docs/api-reference/common/Platform/interfaces/FlushSyncDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Platform](/docs/api-reference/common/Platform/page.mdx) / FlushSyncDep - -Defined in: [packages/common/src/Platform.ts:42](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L42) - -## Properties - - - -### flushSync - -```ts -readonly flushSync: FlushSync; -``` - -Defined in: [packages/common/src/Platform.ts:43](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L43) diff --git a/.generated/evolu-docs/api-reference/common/Platform/interfaces/LeaderLock.mdx b/.generated/evolu-docs/api-reference/common/Platform/interfaces/LeaderLock.mdx deleted file mode 100644 index 29ce42acd..000000000 --- a/.generated/evolu-docs/api-reference/common/Platform/interfaces/LeaderLock.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Platform](/docs/api-reference/common/Platform/page.mdx) / LeaderLock - -Defined in: [packages/common/src/Platform.ts:68](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L68) - -Cross-platform leader lock abstraction. - -`acquire` waits until leadership is acquired. - -Returns a [Disposable](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) lease. Dispose it to release leadership. - -## Properties - - - -### acquire() - -```ts -readonly acquire: (name: string & Brand<"UrlSafeString"> & Brand<"SimpleName">) => Task; -``` - -Defined in: [packages/common/src/Platform.ts:69](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L69) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"UrlSafeString"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"SimpleName"`\> | - -#### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<[`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management)\> diff --git a/.generated/evolu-docs/api-reference/common/Platform/interfaces/LeaderLockDep.mdx b/.generated/evolu-docs/api-reference/common/Platform/interfaces/LeaderLockDep.mdx deleted file mode 100644 index d397d9430..000000000 --- a/.generated/evolu-docs/api-reference/common/Platform/interfaces/LeaderLockDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Platform](/docs/api-reference/common/Platform/page.mdx) / LeaderLockDep - -Defined in: [packages/common/src/Platform.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L72) - -## Properties - - - -### leaderLock - -```ts -readonly leaderLock: LeaderLock; -``` - -Defined in: [packages/common/src/Platform.ts:73](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L73) diff --git a/.generated/evolu-docs/api-reference/common/Platform/interfaces/ReloadAppDep.mdx b/.generated/evolu-docs/api-reference/common/Platform/interfaces/ReloadAppDep.mdx deleted file mode 100644 index a69d8dd9f..000000000 --- a/.generated/evolu-docs/api-reference/common/Platform/interfaces/ReloadAppDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Platform](/docs/api-reference/common/Platform/page.mdx) / ReloadAppDep - -Defined in: [packages/common/src/Platform.ts:57](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L57) - -## Properties - - - -### reloadApp - -```ts -readonly reloadApp: ReloadApp; -``` - -Defined in: [packages/common/src/Platform.ts:58](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L58) diff --git a/.generated/evolu-docs/api-reference/common/Platform/page.mdx b/.generated/evolu-docs/api-reference/common/Platform/page.mdx deleted file mode 100644 index 9731a9ff5..000000000 --- a/.generated/evolu-docs/api-reference/common/Platform/page.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Platform - -Runtime platform detection utilities. - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [FlushSyncDep](/docs/api-reference/common/Platform/interfaces/FlushSyncDep.mdx) | - | -| [LeaderLock](/docs/api-reference/common/Platform/interfaces/LeaderLock.mdx) | Cross-platform leader lock abstraction. | -| [LeaderLockDep](/docs/api-reference/common/Platform/interfaces/LeaderLockDep.mdx) | - | -| [ReloadAppDep](/docs/api-reference/common/Platform/interfaces/ReloadAppDep.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [FlushSync](/docs/api-reference/common/Platform/type-aliases/FlushSync.mdx) | FlushSync is for libraries like React to flush updates synchronously inside the provided callback to ensure the DOM is updated immediately. | -| [ReloadApp](/docs/api-reference/common/Platform/type-aliases/ReloadApp.mdx) | Reload the app in a platform-specific way. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [hasNodeBuffer](/docs/api-reference/common/Platform/variables/hasNodeBuffer.mdx) | Detects if Node.js Buffer is available and should be used. | -| [isHermes](/docs/api-reference/common/Platform/variables/isHermes.mdx) | Returns true if running in React Native with Hermes engine. | -| [isServer](/docs/api-reference/common/Platform/variables/isServer.mdx) | Returns true if running in a server environment (no DOM). | diff --git a/.generated/evolu-docs/api-reference/common/Platform/type-aliases/FlushSync.mdx b/.generated/evolu-docs/api-reference/common/Platform/type-aliases/FlushSync.mdx deleted file mode 100644 index c2839666b..000000000 --- a/.generated/evolu-docs/api-reference/common/Platform/type-aliases/FlushSync.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Platform](/docs/api-reference/common/Platform/page.mdx) / FlushSync - -```ts -type FlushSync = (callback: () => void) => void; -``` - -Defined in: [packages/common/src/Platform.ts:40](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L40) - -FlushSync is for libraries like React to flush updates synchronously inside -the provided callback to ensure the DOM is updated immediately. - -For example, with React, when we want to focus on an element rendered as a -result of a mutation, Evolu ensures all DOM changes are flushed synchronously -if an onComplete callback is used. - -https://react.dev/reference/react-dom/flushSync - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `callback` | () => `void` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Platform/type-aliases/ReloadApp.mdx b/.generated/evolu-docs/api-reference/common/Platform/type-aliases/ReloadApp.mdx deleted file mode 100644 index 8002e755e..000000000 --- a/.generated/evolu-docs/api-reference/common/Platform/type-aliases/ReloadApp.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Platform](/docs/api-reference/common/Platform/page.mdx) / ReloadApp - -```ts -type ReloadApp = (url?: string) => void; -``` - -Defined in: [packages/common/src/Platform.ts:55](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L55) - -Reload the app in a platform-specific way. - -Use this after purging persistent storage to clear in-memory state and ensure -the app starts fresh. It does not purge storage itself. - -- **Web**: Redirects to the specified URL (defaults to `/`) -- **React Native**: Restarts the app (URL ignored) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `url?` | `string` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Platform/variables/hasNodeBuffer.mdx b/.generated/evolu-docs/api-reference/common/Platform/variables/hasNodeBuffer.mdx deleted file mode 100644 index 5fcef49f0..000000000 --- a/.generated/evolu-docs/api-reference/common/Platform/variables/hasNodeBuffer.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Platform](/docs/api-reference/common/Platform/page.mdx) / hasNodeBuffer - -```ts -const hasNodeBuffer: boolean; -``` - -Defined in: [packages/common/src/Platform.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L27) - -Detects if Node.js Buffer is available and should be used. - -React Native apps often polyfill Node.js APIs like Buffer, but we want to use -native methods when available for better performance. - -Returns false in React Native even if Buffer is polyfilled, as we prefer -native methods in that environment. - -## See - -https://github.com/craftzdog/react-native-quick-base64#installation diff --git a/.generated/evolu-docs/api-reference/common/Platform/variables/isHermes.mdx b/.generated/evolu-docs/api-reference/common/Platform/variables/isHermes.mdx deleted file mode 100644 index 315ba0821..000000000 --- a/.generated/evolu-docs/api-reference/common/Platform/variables/isHermes.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Platform](/docs/api-reference/common/Platform/page.mdx) / isHermes - -```ts -const isHermes: boolean; -``` - -Defined in: [packages/common/src/Platform.ts:11](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L11) - -Returns true if running in React Native with Hermes engine. diff --git a/.generated/evolu-docs/api-reference/common/Platform/variables/isServer.mdx b/.generated/evolu-docs/api-reference/common/Platform/variables/isServer.mdx deleted file mode 100644 index 063abda01..000000000 --- a/.generated/evolu-docs/api-reference/common/Platform/variables/isServer.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Platform](/docs/api-reference/common/Platform/page.mdx) / isServer - -```ts -const isServer: boolean; -``` - -Defined in: [packages/common/src/Platform.ts:14](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Platform.ts#L14) - -Returns true if running in a server environment (no DOM). diff --git a/.generated/evolu-docs/api-reference/common/Polyfills/page.mdx b/.generated/evolu-docs/api-reference/common/Polyfills/page.mdx deleted file mode 100644 index cb80a95d8..000000000 --- a/.generated/evolu-docs/api-reference/common/Polyfills/page.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Polyfills - -Polyfills. - -## Variables - -| Variable | Description | -| ------ | ------ | -| [installPolyfills](/docs/api-reference/common/Polyfills/variables/installPolyfills.mdx) | Installs polyfills for resource management. | diff --git a/.generated/evolu-docs/api-reference/common/Polyfills/variables/installPolyfills.mdx b/.generated/evolu-docs/api-reference/common/Polyfills/variables/installPolyfills.mdx deleted file mode 100644 index 8e5b23f7b..000000000 --- a/.generated/evolu-docs/api-reference/common/Polyfills/variables/installPolyfills.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Polyfills](/docs/api-reference/common/Polyfills/page.mdx) / installPolyfills - -```ts -const installPolyfills: Lazy = lazyVoid; -``` - -Defined in: [packages/common/src/Polyfills.ts:19](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Polyfills.ts#L19) - -Installs polyfills for resource management. - -Polyfills `Symbol.dispose`, `Symbol.asyncDispose`, `DisposableStack`, -`AsyncDisposableStack`, and `SuppressedError`. - -## See - - - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Resource_management - - https://github.com/es-shims/DisposableStack diff --git a/.generated/evolu-docs/api-reference/common/Random/functions/createRandom.mdx b/.generated/evolu-docs/api-reference/common/Random/functions/createRandom.mdx deleted file mode 100644 index 5d1a85ef3..000000000 --- a/.generated/evolu-docs/api-reference/common/Random/functions/createRandom.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Random](/docs/api-reference/common/Random/page.mdx) / createRandom - -```ts -function createRandom(): Random; -``` - -Defined in: [packages/common/src/Random.ts:44](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L44) - -Creates a [Random](/docs/api-reference/common/Random/interfaces/Random.mdx) using Math.random(). - -## Returns - -[`Random`](/docs/api-reference/common/Random/interfaces/Random.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Random/functions/createRandomLib.mdx b/.generated/evolu-docs/api-reference/common/Random/functions/createRandomLib.mdx deleted file mode 100644 index 0d625ce2d..000000000 --- a/.generated/evolu-docs/api-reference/common/Random/functions/createRandomLib.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Random](/docs/api-reference/common/Random/page.mdx) / createRandomLib - -```ts -function createRandomLib(): Random; -``` - -Defined in: [packages/common/src/Random.ts:73](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L73) - -Creates a `RandomLib` using the NPM `random` package. - -## Returns - -`Random` diff --git a/.generated/evolu-docs/api-reference/common/Random/functions/createRandomWithSeed.mdx b/.generated/evolu-docs/api-reference/common/Random/functions/createRandomWithSeed.mdx deleted file mode 100644 index dc484cbaf..000000000 --- a/.generated/evolu-docs/api-reference/common/Random/functions/createRandomWithSeed.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Random](/docs/api-reference/common/Random/page.mdx) / createRandomWithSeed - -```ts -function createRandomWithSeed(seed: string): Random; -``` - -Defined in: [packages/common/src/Random.ts:56](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L56) - -Creates [Random](/docs/api-reference/common/Random/interfaces/Random.mdx) using [RandomLibDep](/docs/api-reference/common/Random/interfaces/RandomLibDep.mdx) with a seed which is useful -for tests. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `seed` | `string` | - -## Returns - -[`Random`](/docs/api-reference/common/Random/interfaces/Random.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Random/functions/testCreateRandom.mdx b/.generated/evolu-docs/api-reference/common/Random/functions/testCreateRandom.mdx deleted file mode 100644 index 679069376..000000000 --- a/.generated/evolu-docs/api-reference/common/Random/functions/testCreateRandom.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Random](/docs/api-reference/common/Random/page.mdx) / testCreateRandom - -```ts -function testCreateRandom(seed?: string): Random; -``` - -Defined in: [packages/common/src/Random.ts:49](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L49) - -Creates a seeded [Random](/docs/api-reference/common/Random/interfaces/Random.mdx) for deterministic tests. Default seed "evolu". - -## Parameters - -| Parameter | Type | Default value | -| ------ | ------ | ------ | -| `seed` | `string` | `"evolu"` | - -## Returns - -[`Random`](/docs/api-reference/common/Random/interfaces/Random.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Random/functions/testCreateRandomLib.mdx b/.generated/evolu-docs/api-reference/common/Random/functions/testCreateRandomLib.mdx deleted file mode 100644 index efd69b143..000000000 --- a/.generated/evolu-docs/api-reference/common/Random/functions/testCreateRandomLib.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Random](/docs/api-reference/common/Random/page.mdx) / testCreateRandomLib - -```ts -function testCreateRandomLib(seed?: string): Random; -``` - -Defined in: [packages/common/src/Random.ts:76](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L76) - -Creates a seeded `RandomLib` for deterministic tests. Default seed "evolu". - -## Parameters - -| Parameter | Type | Default value | -| ------ | ------ | ------ | -| `seed` | `string` | `"evolu"` | - -## Returns - -`Random` diff --git a/.generated/evolu-docs/api-reference/common/Random/interfaces/Random.mdx b/.generated/evolu-docs/api-reference/common/Random/interfaces/Random.mdx deleted file mode 100644 index 9fb0225b4..000000000 --- a/.generated/evolu-docs/api-reference/common/Random/interfaces/Random.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Random](/docs/api-reference/common/Random/page.mdx) / Random - -Defined in: [packages/common/src/Random.ts:34](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L34) - -A simple wrapper around Math.random(). - -For more complex needs check [RandomLibDep](/docs/api-reference/common/Random/interfaces/RandomLibDep.mdx). - -### Example - -```ts -// For apps -const random = createRandom(); -random.next(); - -// For tests -const random = createRandomWithSeed("test"); -random.next(); -``` - -## Properties - - - -### next() - -```ts -next: () => RandomNumber; -``` - -Defined in: [packages/common/src/Random.ts:36](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L36) - -Returns a floating point number in [0, 1). Just like Math.random(). - -#### Returns - -[`RandomNumber`](/docs/api-reference/common/Random/type-aliases/RandomNumber.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Random/interfaces/RandomDep.mdx b/.generated/evolu-docs/api-reference/common/Random/interfaces/RandomDep.mdx deleted file mode 100644 index c21d10cb8..000000000 --- a/.generated/evolu-docs/api-reference/common/Random/interfaces/RandomDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Random](/docs/api-reference/common/Random/page.mdx) / RandomDep - -Defined in: [packages/common/src/Random.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L39) - -## Properties - - - -### random - -```ts -random: Random; -``` - -Defined in: [packages/common/src/Random.ts:40](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L40) diff --git a/.generated/evolu-docs/api-reference/common/Random/interfaces/RandomLibDep.mdx b/.generated/evolu-docs/api-reference/common/Random/interfaces/RandomLibDep.mdx deleted file mode 100644 index 536917fc0..000000000 --- a/.generated/evolu-docs/api-reference/common/Random/interfaces/RandomLibDep.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Random](/docs/api-reference/common/Random/page.mdx) / RandomLibDep - -Defined in: [packages/common/src/Random.ts:68](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L68) - -A random number generator using the NPM `random` package dependency. - -https://github.com/transitive-bullshit/random - -## Properties - - - -### randomLib - -```ts -randomLib: Random; -``` - -Defined in: [packages/common/src/Random.ts:69](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L69) diff --git a/.generated/evolu-docs/api-reference/common/Random/page.mdx b/.generated/evolu-docs/api-reference/common/Random/page.mdx deleted file mode 100644 index f382bdb83..000000000 --- a/.generated/evolu-docs/api-reference/common/Random/page.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Random - -Seeded random number generation. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createRandom](/docs/api-reference/common/Random/functions/createRandom.mdx) | Creates a [Random](/docs/api-reference/common/Random/interfaces/Random.mdx) using Math.random(). | -| [createRandomLib](/docs/api-reference/common/Random/functions/createRandomLib.mdx) | Creates a `RandomLib` using the NPM `random` package. | -| [createRandomWithSeed](/docs/api-reference/common/Random/functions/createRandomWithSeed.mdx) | Creates [Random](/docs/api-reference/common/Random/interfaces/Random.mdx) using [RandomLibDep](/docs/api-reference/common/Random/interfaces/RandomLibDep.mdx) with a seed which is useful for tests. | -| [testCreateRandom](/docs/api-reference/common/Random/functions/testCreateRandom.mdx) | Creates a seeded [Random](/docs/api-reference/common/Random/interfaces/Random.mdx) for deterministic tests. Default seed "evolu". | -| [testCreateRandomLib](/docs/api-reference/common/Random/functions/testCreateRandomLib.mdx) | Creates a seeded `RandomLib` for deterministic tests. Default seed "evolu". | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Random](/docs/api-reference/common/Random/interfaces/Random.mdx) | A simple wrapper around Math.random(). | -| [RandomDep](/docs/api-reference/common/Random/interfaces/RandomDep.mdx) | - | -| [RandomLibDep](/docs/api-reference/common/Random/interfaces/RandomLibDep.mdx) | A random number generator using the NPM `random` package dependency. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [RandomNumber](/docs/api-reference/common/Random/type-aliases/RandomNumber.mdx) | A random floating point number in [0, 1). | diff --git a/.generated/evolu-docs/api-reference/common/Random/type-aliases/RandomNumber.mdx b/.generated/evolu-docs/api-reference/common/Random/type-aliases/RandomNumber.mdx deleted file mode 100644 index fbcb3a66b..000000000 --- a/.generated/evolu-docs/api-reference/common/Random/type-aliases/RandomNumber.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Random](/docs/api-reference/common/Random/page.mdx) / RandomNumber - -```ts -type RandomNumber = number & Brand<"RandomNumber">; -``` - -Defined in: [packages/common/src/Random.ts:15](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Random.ts#L15) - -A random floating point number in [0, 1). - -Branded to distinguish random values from arbitrary numbers. diff --git a/.generated/evolu-docs/api-reference/common/Redacted/functions/createEqRedacted.mdx b/.generated/evolu-docs/api-reference/common/Redacted/functions/createEqRedacted.mdx deleted file mode 100644 index 5e471fd05..000000000 --- a/.generated/evolu-docs/api-reference/common/Redacted/functions/createEqRedacted.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Redacted](/docs/api-reference/common/Redacted/page.mdx) / createEqRedacted - -```ts -function createEqRedacted(eq: Eq): Eq>; -``` - -Defined in: [packages/common/src/Redacted.ts:120](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Redacted.ts#L120) - -Creates an [Eq](/docs/api-reference/common/Eq/type-aliases/Eq.mdx) for [Redacted](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) values based on an equality function -for the underlying type. - -### Example - -```ts -type ApiKey = string & Brand<"ApiKey">; -const eqRedactedApiKey = createEqRedacted(eqString); - -const a = createRedacted("x" as ApiKey); -const b = createRedacted("x" as ApiKey); -eqRedactedApiKey(a, b); // true -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `eq` | [`Eq`](/docs/api-reference/common/Eq/type-aliases/Eq.mdx)\<`A`\> | - -## Returns - -[`Eq`](/docs/api-reference/common/Eq/type-aliases/Eq.mdx)\<[`Redacted`](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx)\<`A`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Redacted/functions/createRedacted.mdx b/.generated/evolu-docs/api-reference/common/Redacted/functions/createRedacted.mdx deleted file mode 100644 index f007ca480..000000000 --- a/.generated/evolu-docs/api-reference/common/Redacted/functions/createRedacted.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Redacted](/docs/api-reference/common/Redacted/page.mdx) / createRedacted - -```ts -function createRedacted(value: A): Redacted; -``` - -Defined in: [packages/common/src/Redacted.ts:69](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Redacted.ts#L69) - -Creates a [Redacted](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) wrapper for a sensitive value. - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `A` | - -## Returns - -[`Redacted`](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx)\<`A`\> diff --git a/.generated/evolu-docs/api-reference/common/Redacted/functions/isRedacted.mdx b/.generated/evolu-docs/api-reference/common/Redacted/functions/isRedacted.mdx deleted file mode 100644 index d0d156c01..000000000 --- a/.generated/evolu-docs/api-reference/common/Redacted/functions/isRedacted.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Redacted](/docs/api-reference/common/Redacted/page.mdx) / isRedacted - -```ts -function isRedacted(value: unknown): value is Redacted; -``` - -Defined in: [packages/common/src/Redacted.ts:99](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Redacted.ts#L99) - -Checks if a value is a [Redacted](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) wrapper. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -## Returns - -`value is Redacted` diff --git a/.generated/evolu-docs/api-reference/common/Redacted/functions/revealRedacted.mdx b/.generated/evolu-docs/api-reference/common/Redacted/functions/revealRedacted.mdx deleted file mode 100644 index 02ed1d5ea..000000000 --- a/.generated/evolu-docs/api-reference/common/Redacted/functions/revealRedacted.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Redacted](/docs/api-reference/common/Redacted/page.mdx) / revealRedacted - -```ts -function revealRedacted(redacted: Redacted): A; -``` - -Defined in: [packages/common/src/Redacted.ts:93](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Redacted.ts#L93) - -Reveals the original value from a [Redacted](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) wrapper. - -This is a separate function rather than a method on [Redacted](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) to make -access visually explicit and easy to grep in code reviews. Accessing -sensitive values should feel intentional, not convenient. - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `redacted` | [`Redacted`](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx)\<`A`\> | - -## Returns - -`A` diff --git a/.generated/evolu-docs/api-reference/common/Redacted/interfaces/Redacted.mdx b/.generated/evolu-docs/api-reference/common/Redacted/interfaces/Redacted.mdx deleted file mode 100644 index b59a5bf3c..000000000 --- a/.generated/evolu-docs/api-reference/common/Redacted/interfaces/Redacted.mdx +++ /dev/null @@ -1,136 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Redacted](/docs/api-reference/common/Redacted/page.mdx) / Redacted - -Defined in: [packages/common/src/Redacted.ts:63](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Redacted.ts#L63) - -A wrapper type that prevents sensitive values from being accidentally exposed -through logging, serialization, or inspection. - -The wrapped value is hidden and can only be accessed explicitly via -[revealRedacted](/docs/api-reference/common/Redacted/functions/revealRedacted.mdx). All standard methods (`toString`, `toJSON`, and -Node.js inspect) return ``. - -For type-level distinction between different secrets, use branded types. - -The actual value lives in a `WeakMap`, so it never appears as a property and -is automatically garbage collected when the wrapper is dropped. This is -better than a class with a private field because private fields are still -visible in devtools. Symbols can't be used because they don't support custom -`toString`. - -Implements `Disposable` for automatic cleanup via the `using` syntax. - -### Example - -```ts -// Define branded types for your secrets -type ApiKey = string & Brand<"ApiKey">; -type DbPassword = string & Brand<"DbPassword">; - -// Wrap them with Redacted for safe passing -type RedactedApiKey = Redacted; -type RedactedDbPassword = Redacted; - -// Create a redacted secret -const apiKey: ApiKey = "secret-123" as ApiKey; -const redactedKey: RedactedApiKey = createRedacted(apiKey); - -console.log(redactedKey); // -console.log(revealRedacted(redactedKey)); // secret-123 - -// Type safety: RedactedApiKey ≠ RedactedDbPassword -const fetchUser = (key: RedactedApiKey) => { - const value: ApiKey = revealRedacted(key); - // use value... -}; - -fetchUser(redactedKey); // ok -// fetchUser(createRedacted("x" as DbPassword)); // type error - -// Automatic cleanup with `using` -{ - using secret = createRedacted("sensitive" as ApiKey); - // ... use secret ... -} // automatically wiped from memory -``` - -## Extends - -- [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Redacted"`\>.[`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### \[\_\_\_brand\] - -```ts -readonly [___brand]: Readonly>; -``` - -Defined in: [packages/common/src/Brand.ts:89](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Brand.ts#L89) - -#### Inherited from - -[`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx).[`[___brand]`](/docs/api-reference/common/Brand/interfaces/Brand.mdx#___brand) - -*** - - - -### Type - -```ts -readonly Type: A; -``` - -Defined in: [packages/common/src/Redacted.ts:65](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Redacted.ts#L65) - -The inner type. Useful for inference via `typeof redacted.Type`. diff --git a/.generated/evolu-docs/api-reference/common/Redacted/page.mdx b/.generated/evolu-docs/api-reference/common/Redacted/page.mdx deleted file mode 100644 index e1074a6c1..000000000 --- a/.generated/evolu-docs/api-reference/common/Redacted/page.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Redacted - -Sensitive value protection against accidental exposure. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createEqRedacted](/docs/api-reference/common/Redacted/functions/createEqRedacted.mdx) | Creates an [Eq](/docs/api-reference/common/Eq/type-aliases/Eq.mdx) for [Redacted](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) values based on an equality function for the underlying type. | -| [createRedacted](/docs/api-reference/common/Redacted/functions/createRedacted.mdx) | Creates a [Redacted](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) wrapper for a sensitive value. | -| [isRedacted](/docs/api-reference/common/Redacted/functions/isRedacted.mdx) | Checks if a value is a [Redacted](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) wrapper. | -| [revealRedacted](/docs/api-reference/common/Redacted/functions/revealRedacted.mdx) | Reveals the original value from a [Redacted](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) wrapper. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Redacted](/docs/api-reference/common/Redacted/interfaces/Redacted.mdx) | A wrapper type that prevents sensitive values from being accidentally exposed through logging, serialization, or inspection. | diff --git a/.generated/evolu-docs/api-reference/common/Ref/functions/createRef.mdx b/.generated/evolu-docs/api-reference/common/Ref/functions/createRef.mdx deleted file mode 100644 index 071294baf..000000000 --- a/.generated/evolu-docs/api-reference/common/Ref/functions/createRef.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Ref](/docs/api-reference/common/Ref/page.mdx) / createRef - -```ts -function createRef(initialState: T, eq?: Eq): Ref; -``` - -Defined in: [packages/common/src/Ref.ts:60](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Ref.ts#L60) - -Creates a [Ref](/docs/api-reference/common/Ref/interfaces/Ref.mdx) with the given initial state. - -By default, state is always updated. We can provide an optional [Eq](/docs/api-reference/common/Eq/type-aliases/Eq.mdx) -function as the second argument to skip updates when the new state equals the -current state. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `initialState` | `T` | -| `eq?` | [`Eq`](/docs/api-reference/common/Eq/type-aliases/Eq.mdx)\<`T`\> | - -## Returns - -[`Ref`](/docs/api-reference/common/Ref/interfaces/Ref.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Ref/interfaces/Ref.mdx b/.generated/evolu-docs/api-reference/common/Ref/interfaces/Ref.mdx deleted file mode 100644 index 78d8ddbb7..000000000 --- a/.generated/evolu-docs/api-reference/common/Ref/interfaces/Ref.mdx +++ /dev/null @@ -1,108 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Ref](/docs/api-reference/common/Ref/page.mdx) / Ref - -Defined in: [packages/common/src/Ref.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Ref.ts#L39) - -`Ref` provides a simple API to hold and update a value, similar to a "ref" in -functional programming or React. It exposes methods to get, set, and modify -the current state. - -Use a Ref instead of a variable when you want to pass state around as an -object. If you need subscriptions, see [Store](/docs/api-reference/common/Store/interfaces/Store.mdx). - -Ref is a valid dependency in Evolu's [Dependency -Injection](https://evolu.dev/docs/dependency-injection) pattern—use it when -functions need shared mutable state. - -### Example - -```ts -const count = createRef(0); -count.set(1); -count.modify((n) => n + 1); -console.log(count.get()); // 2 -``` - -### Example of using Ref as a dependency - -```ts -interface CounterRefDep { - readonly counterRef: Ref; -} -``` - -## Extended by - -- [`Store`](/docs/api-reference/common/Store/interfaces/Store.mdx) - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Properties - - - -### get() - -```ts -readonly get: () => T; -``` - -Defined in: [packages/common/src/Ref.ts:41](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Ref.ts#L41) - -Returns the current state. - -#### Returns - -`T` - -*** - - - -### modify() - -```ts -readonly modify: (updater: (current: T) => T) => boolean; -``` - -Defined in: [packages/common/src/Ref.ts:50](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Ref.ts#L50) - -Modifies the state using an updater function. Returns `true` if the state -was updated. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `updater` | (`current`: `T`) => `T` | - -#### Returns - -`boolean` - -*** - - - -### set() - -```ts -readonly set: (state: T) => boolean; -``` - -Defined in: [packages/common/src/Ref.ts:44](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Ref.ts#L44) - -Sets the state. Returns `true` if the state was updated. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `state` | `T` | - -#### Returns - -`boolean` diff --git a/.generated/evolu-docs/api-reference/common/Ref/page.mdx b/.generated/evolu-docs/api-reference/common/Ref/page.mdx deleted file mode 100644 index 62f812d9a..000000000 --- a/.generated/evolu-docs/api-reference/common/Ref/page.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Ref - -Mutable reference container for state management. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createRef](/docs/api-reference/common/Ref/functions/createRef.mdx) | Creates a [Ref](/docs/api-reference/common/Ref/interfaces/Ref.mdx) with the given initial state. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Ref](/docs/api-reference/common/Ref/interfaces/Ref.mdx) | `Ref` provides a simple API to hold and update a value, similar to a "ref" in functional programming or React. It exposes methods to get, set, and modify the current state. | diff --git a/.generated/evolu-docs/api-reference/common/RefCount/functions/createRefCount.mdx b/.generated/evolu-docs/api-reference/common/RefCount/functions/createRefCount.mdx deleted file mode 100644 index 2bd23560e..000000000 --- a/.generated/evolu-docs/api-reference/common/RefCount/functions/createRefCount.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [RefCount](/docs/api-reference/common/RefCount/page.mdx) / createRefCount - -```ts -function createRefCount(): RefCount; -``` - -Defined in: [packages/common/src/RefCount.ts:44](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/RefCount.ts#L44) - -Creates [RefCount](/docs/api-reference/common/RefCount/interfaces/RefCount.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `TKey` | - -## Returns - -[`RefCount`](/docs/api-reference/common/RefCount/interfaces/RefCount.mdx)\<`TKey`\> diff --git a/.generated/evolu-docs/api-reference/common/RefCount/interfaces/RefCount.mdx b/.generated/evolu-docs/api-reference/common/RefCount/interfaces/RefCount.mdx deleted file mode 100644 index 15fb10a1e..000000000 --- a/.generated/evolu-docs/api-reference/common/RefCount/interfaces/RefCount.mdx +++ /dev/null @@ -1,150 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [RefCount](/docs/api-reference/common/RefCount/page.mdx) / RefCount - -Defined in: [packages/common/src/RefCount.ts:19](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/RefCount.ts#L19) - -Tracks usage counts for keys. - -Counts are always positive for tracked keys. A key is removed when its count -reaches zero. - -Keys use reference identity, the same as `Map` keys. - -## Type Parameters - -| Type Parameter | -| ------ | -| `TKey` | - -## Properties - - - -### clear() - -```ts -readonly clear: () => void; -``` - -Defined in: [packages/common/src/RefCount.ts:40](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/RefCount.ts#L40) - -Clears all tracked keys and counts. - -#### Returns - -`void` - -*** - - - -### decrement() - -```ts -readonly decrement: (key: TKey) => Option & Brand<"NonNegative">>; -``` - -Defined in: [packages/common/src/RefCount.ts:28](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/RefCount.ts#L28) - -Decrements key count and returns the new count. - -Returns [none](/docs/api-reference/common/Option/variables/none.mdx) when the key is not tracked. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `TKey` | - -#### Returns - -[`Option`](/docs/api-reference/common/Option/type-aliases/Option.mdx)\<`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\>\> - -*** - - - -### getCount() - -```ts -readonly getCount: (key: TKey) => number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/RefCount.ts:31](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/RefCount.ts#L31) - -Gets current count for key. Returns `0` when the key is not tracked. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `TKey` | - -#### Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - -*** - - - -### has() - -```ts -readonly has: (key: TKey) => boolean; -``` - -Defined in: [packages/common/src/RefCount.ts:34](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/RefCount.ts#L34) - -Returns `true` when the key is tracked with count greater than zero. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `TKey` | - -#### Returns - -`boolean` - -*** - - - -### increment() - -```ts -readonly increment: (key: TKey) => number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/RefCount.ts:21](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/RefCount.ts#L21) - -Increments key count and returns the new count. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `TKey` | - -#### Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> - -*** - - - -### keys() - -```ts -readonly keys: () => ReadonlySet; -``` - -Defined in: [packages/common/src/RefCount.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/RefCount.ts#L37) - -Returns all currently tracked keys. - -#### Returns - -`ReadonlySet`\<`TKey`\> diff --git a/.generated/evolu-docs/api-reference/common/RefCount/page.mdx b/.generated/evolu-docs/api-reference/common/RefCount/page.mdx deleted file mode 100644 index 929f026b5..000000000 --- a/.generated/evolu-docs/api-reference/common/RefCount/page.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / RefCount - -Reference counting for arbitrary keys. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createRefCount](/docs/api-reference/common/RefCount/functions/createRefCount.mdx) | Creates [RefCount](/docs/api-reference/common/RefCount/interfaces/RefCount.mdx). | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [RefCount](/docs/api-reference/common/RefCount/interfaces/RefCount.mdx) | Tracks usage counts for keys. | diff --git a/.generated/evolu-docs/api-reference/common/Relation/functions/createRelation.mdx b/.generated/evolu-docs/api-reference/common/Relation/functions/createRelation.mdx deleted file mode 100644 index e0decb02f..000000000 --- a/.generated/evolu-docs/api-reference/common/Relation/functions/createRelation.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Relation](/docs/api-reference/common/Relation/page.mdx) / createRelation - -```ts -function createRelation(): Relation; -``` - -Defined in: [packages/common/src/Relation.ts:101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L101) - -Creates a [Relation](/docs/api-reference/common/Relation/interfaces/Relation.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `B` | - -## Returns - -[`Relation`](/docs/api-reference/common/Relation/interfaces/Relation.mdx)\<`A`, `B`\> diff --git a/.generated/evolu-docs/api-reference/common/Relation/interfaces/Relation.mdx b/.generated/evolu-docs/api-reference/common/Relation/interfaces/Relation.mdx deleted file mode 100644 index 941bef585..000000000 --- a/.generated/evolu-docs/api-reference/common/Relation/interfaces/Relation.mdx +++ /dev/null @@ -1,378 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Relation](/docs/api-reference/common/Relation/page.mdx) / Relation - -Defined in: [packages/common/src/Relation.ts:41](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L41) - -Bidirectional relation between two types. - -Why useful: - -- Provides O(1) (amortized) lookup in both directions (A → B and B → A) without - maintaining two maps manually and risking them diverging. -- Natural fit for symmetric associations such as ownerId ↔ WebSocket, tag ↔ - item, user ↔ role, entity ↔ subscription where both directions are - frequently queried. -- Supports fast membership tests via `has`, `hasA`, and `hasB`. -- Iteration helpers (`forEach`, iterator) allow treating the structure as a set - of pairs when needed. - -Complexity: - -- `add` / `remove` / `has*` / `get*` each perform a constant number of Map/Set - operations (O(1) expected). -- `deleteA` and `deleteB` are O(d) where d is the number of associated elements - (the degree). This is optimal because every associated pair must be touched - once. - -Object identity: - -- Elements are compared by reference (standard Map / Set semantics). Structural - hashing of objects in JavaScript is non-trivial, can be expensive, and - collision-prone if done naively. Prefer using stable primitive identifiers - (ids, strings) instead of attempting to hash full object structures. -- If structural equivalence is truly required, wrap objects in an adapter that - supplies a canonical hash/id and stores/retrieves the original objects - separately. This is a rare need; avoid unless you have clear requirements. - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `B` | - -## Properties - - - -### \[iterator\]() - -```ts -readonly [iterator]: () => IterableIterator; -``` - -Defined in: [packages/common/src/Relation.ts:70](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L70) - -Iterator over all pairs enabling for..of and spread. Yields readonly [a, b] -tuples. - -#### Returns - -`IterableIterator`\ - -*** - - - -### aCount() - -```ts -readonly aCount: () => number; -``` - -Defined in: [packages/common/src/Relation.ts:91](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L91) - -Number of distinct A elements currently present. - -#### Returns - -`number` - -*** - - - -### add() - -```ts -readonly add: (a: A, b: B) => boolean; -``` - -Defined in: [packages/common/src/Relation.ts:46](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L46) - -Adds a pair to the relation. Returns true if the pair was newly added, -false if it already existed. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | `A` | -| `b` | `B` | - -#### Returns - -`boolean` - -*** - - - -### bCount() - -```ts -readonly bCount: () => number; -``` - -Defined in: [packages/common/src/Relation.ts:94](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L94) - -Number of distinct B elements currently present. - -#### Returns - -`number` - -*** - - - -### clear() - -```ts -readonly clear: () => void; -``` - -Defined in: [packages/common/src/Relation.ts:88](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L88) - -Clears all pairs from the relation. - -#### Returns - -`void` - -*** - - - -### deleteA() - -```ts -readonly deleteA: (a: A) => boolean; -``` - -Defined in: [packages/common/src/Relation.ts:82](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L82) - -Deletes all pairs containing the given A element. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | `A` | - -#### Returns - -`boolean` - -*** - - - -### deleteB() - -```ts -readonly deleteB: (b: B) => boolean; -``` - -Defined in: [packages/common/src/Relation.ts:85](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L85) - -Deletes all pairs containing the given B element. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `b` | `B` | - -#### Returns - -`boolean` - -*** - - - -### forEach() - -```ts -readonly forEach: (callback: (a: A, b: B) => void) => void; -``` - -Defined in: [packages/common/src/Relation.ts:64](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L64) - -Iterates over each pair in the relation (in insertion order of A elements, -then B elements per A). - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `callback` | (`a`: `A`, `b`: `B`) => `void` | - -#### Returns - -`void` - -*** - - - -### getA() - -```ts -readonly getA: (b: B) => ReadonlySet | undefined; -``` - -Defined in: [packages/common/src/Relation.ts:58](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L58) - -Gets all A elements related to a B element. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `b` | `B` | - -#### Returns - -`ReadonlySet`\<`A`\> \| `undefined` - -*** - - - -### getB() - -```ts -readonly getB: (a: A) => ReadonlySet | undefined; -``` - -Defined in: [packages/common/src/Relation.ts:55](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L55) - -Gets all B elements related to an A element. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | `A` | - -#### Returns - -`ReadonlySet`\<`B`\> \| `undefined` - -*** - - - -### has() - -```ts -readonly has: (a: A, b: B) => boolean; -``` - -Defined in: [packages/common/src/Relation.ts:73](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L73) - -Checks if a specific pair exists in the relation. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | `A` | -| `b` | `B` | - -#### Returns - -`boolean` - -*** - - - -### hasA() - -```ts -readonly hasA: (a: A) => boolean; -``` - -Defined in: [packages/common/src/Relation.ts:76](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L76) - -Checks if an A element exists in the relation. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | `A` | - -#### Returns - -`boolean` - -*** - - - -### hasB() - -```ts -readonly hasB: (b: B) => boolean; -``` - -Defined in: [packages/common/src/Relation.ts:79](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L79) - -Checks if a B element exists in the relation. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `b` | `B` | - -#### Returns - -`boolean` - -*** - - - -### remove() - -```ts -readonly remove: (a: A, b: B) => boolean; -``` - -Defined in: [packages/common/src/Relation.ts:52](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L52) - -Removes a specific pair from the relation. Returns true if the pair existed -and was removed, false if it was not present. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | `A` | -| `b` | `B` | - -#### Returns - -`boolean` - -*** - - - -### size() - -```ts -readonly size: () => number; -``` - -Defined in: [packages/common/src/Relation.ts:97](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Relation.ts#L97) - -Number of pairs currently stored in the relation. - -#### Returns - -`number` diff --git a/.generated/evolu-docs/api-reference/common/Relation/page.mdx b/.generated/evolu-docs/api-reference/common/Relation/page.mdx deleted file mode 100644 index 6359f1f69..000000000 --- a/.generated/evolu-docs/api-reference/common/Relation/page.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Relation - -Bidirectional relations with O(1) lookup in both directions. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createRelation](/docs/api-reference/common/Relation/functions/createRelation.mdx) | Creates a [Relation](/docs/api-reference/common/Relation/interfaces/Relation.mdx). | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Relation](/docs/api-reference/common/Relation/interfaces/Relation.mdx) | Bidirectional relation between two types. | diff --git a/.generated/evolu-docs/api-reference/common/Resources/functions/createDisposableDep.mdx b/.generated/evolu-docs/api-reference/common/Resources/functions/createDisposableDep.mdx deleted file mode 100644 index d54aebdab..000000000 --- a/.generated/evolu-docs/api-reference/common/Resources/functions/createDisposableDep.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Resources](/docs/api-reference/common/Resources/page.mdx) / createDisposableDep - -```ts -function createDisposableDep(disposable: Disposable): DisposableDep; -``` - -Defined in: [packages/common/src/Resources.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L379) - -Creates a [DisposableDep](/docs/api-reference/common/Resources/interfaces/DisposableDep.mdx) from `Disposable`. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `disposable` | [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) | - -## Returns - -[`DisposableDep`](/docs/api-reference/common/Resources/interfaces/DisposableDep.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Resources/functions/createResources.mdx b/.generated/evolu-docs/api-reference/common/Resources/functions/createResources.mdx deleted file mode 100644 index a98b35c99..000000000 --- a/.generated/evolu-docs/api-reference/common/Resources/functions/createResources.mdx +++ /dev/null @@ -1,75 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Resources](/docs/api-reference/common/Resources/page.mdx) / createResources - -```ts -function createResources(config: ResourcesConfig): Resources; -``` - -Defined in: [packages/common/src/Resources.ts:174](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L174) - -Creates [Resources](/docs/api-reference/common/Resources/interfaces/Resources.mdx). - -This tracks which consumers are using which resources and maintains reference -counts to know when it's safe to dispose resources. Resources are created -on-demand and disposed with a configurable delay to avoid churn. - -### Example Usage - -```ts -// WebSocket connections -interface WebSocketConfig { - readonly url: WebSocketUrl; -} - -type WebSocketUrl = string & Brand<"WebSocketUrl">; -type UserId = string & Brand<"UserId">; - -const webSockets = createResources< - WebSocket, - WebSocketUrl, - WebSocketConfig, - User, - UserId ->({ - createResource: (config) => new WebSocket(config.url), - getResourceKey: (config) => config.url, - getConsumerId: (user) => user.id, - disposalDelay: 1000, -}); - -// Add users to WebSocket connections -webSockets.addConsumer(user1, [ - { url: "ws://server1.com" as WebSocketUrl }, - { url: "ws://server2.com" as WebSocketUrl }, -]); -webSockets.addConsumer(user2, [ - { url: "ws://server1.com" as WebSocketUrl }, -]); - -// Remove users - server1 stays alive (user2 still using it) -webSockets.removeConsumer(user1, [ - { url: "ws://server1.com" as WebSocketUrl }, - { url: "ws://server2.com" as WebSocketUrl }, -]); - -// server2 gets disposed after delay, server1 stays alive -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `TResource` *extends* [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) | -| `TResourceKey` *extends* `string` | -| `TResourceConfig` | -| `TConsumer` | -| `TConsumerId` *extends* `string` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | [`ResourcesConfig`](/docs/api-reference/common/Resources/interfaces/ResourcesConfig.mdx)\<`TResource`, `TResourceKey`, `TResourceConfig`, `TConsumer`, `TConsumerId`\> | - -## Returns - -[`Resources`](/docs/api-reference/common/Resources/interfaces/Resources.mdx)\<`TResource`, `TResourceKey`, `TResourceConfig`, `TConsumer`, `TConsumerId`\> diff --git a/.generated/evolu-docs/api-reference/common/Resources/interfaces/AsyncDisposableStackDep.mdx b/.generated/evolu-docs/api-reference/common/Resources/interfaces/AsyncDisposableStackDep.mdx deleted file mode 100644 index 4388512e0..000000000 --- a/.generated/evolu-docs/api-reference/common/Resources/interfaces/AsyncDisposableStackDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Resources](/docs/api-reference/common/Resources/page.mdx) / AsyncDisposableStackDep - -Defined in: [packages/common/src/Resources.ts:389](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L389) - -## Properties - - - -### asyncDisposableStack - -```ts -readonly asyncDisposableStack: AsyncDisposableStack; -``` - -Defined in: [packages/common/src/Resources.ts:390](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L390) diff --git a/.generated/evolu-docs/api-reference/common/Resources/interfaces/ConsumerNotFoundError.mdx b/.generated/evolu-docs/api-reference/common/Resources/interfaces/ConsumerNotFoundError.mdx deleted file mode 100644 index c6afc12fe..000000000 --- a/.generated/evolu-docs/api-reference/common/Resources/interfaces/ConsumerNotFoundError.mdx +++ /dev/null @@ -1,56 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Resources](/docs/api-reference/common/Resources/page.mdx) / ConsumerNotFoundError - -Defined in: [packages/common/src/Resources.ts:73](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L73) - -Error when trying to remove a consumer that wasn't added to a resource. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ConsumerNotFoundError"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `TConsumerId` *extends* `string` | `string` | -| `TResourceKey` *extends* `string` | `string` | - -## Properties - - - -### consumerId - -```ts -readonly consumerId: TConsumerId; -``` - -Defined in: [packages/common/src/Resources.ts:77](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L77) - -*** - - - -### resourceKey - -```ts -readonly resourceKey: TResourceKey; -``` - -Defined in: [packages/common/src/Resources.ts:78](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L78) - -*** - - - -### type - -```ts -readonly type: "ConsumerNotFoundError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Resources/interfaces/DisposableDep.mdx b/.generated/evolu-docs/api-reference/common/Resources/interfaces/DisposableDep.mdx deleted file mode 100644 index bb2cdbad2..000000000 --- a/.generated/evolu-docs/api-reference/common/Resources/interfaces/DisposableDep.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Resources](/docs/api-reference/common/Resources/page.mdx) / DisposableDep - -Defined in: [packages/common/src/Resources.ts:376](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L376) - -See [createDisposableDep](/docs/api-reference/common/Resources/functions/createDisposableDep.mdx). - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` diff --git a/.generated/evolu-docs/api-reference/common/Resources/interfaces/DisposableStackDep.mdx b/.generated/evolu-docs/api-reference/common/Resources/interfaces/DisposableStackDep.mdx deleted file mode 100644 index a28510a6e..000000000 --- a/.generated/evolu-docs/api-reference/common/Resources/interfaces/DisposableStackDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Resources](/docs/api-reference/common/Resources/page.mdx) / DisposableStackDep - -Defined in: [packages/common/src/Resources.ts:385](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L385) - -## Properties - - - -### disposableStack - -```ts -readonly disposableStack: DisposableStack; -``` - -Defined in: [packages/common/src/Resources.ts:386](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L386) diff --git a/.generated/evolu-docs/api-reference/common/Resources/interfaces/ResourceNotFoundError.mdx b/.generated/evolu-docs/api-reference/common/Resources/interfaces/ResourceNotFoundError.mdx deleted file mode 100644 index 39b7ee2f8..000000000 --- a/.generated/evolu-docs/api-reference/common/Resources/interfaces/ResourceNotFoundError.mdx +++ /dev/null @@ -1,43 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Resources](/docs/api-reference/common/Resources/page.mdx) / ResourceNotFoundError - -Defined in: [packages/common/src/Resources.ts:67](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L67) - -Error when trying to remove a consumer from a resource that doesn't exist. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ResourceNotFoundError"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `TResourceKey` *extends* `string` | `string` | - -## Properties - - - -### resourceKey - -```ts -readonly resourceKey: TResourceKey; -``` - -Defined in: [packages/common/src/Resources.ts:69](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L69) - -*** - - - -### type - -```ts -readonly type: "ResourceNotFoundError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Resources/interfaces/Resources.mdx b/.generated/evolu-docs/api-reference/common/Resources/interfaces/Resources.mdx deleted file mode 100644 index 11e6cc51c..000000000 --- a/.generated/evolu-docs/api-reference/common/Resources/interfaces/Resources.mdx +++ /dev/null @@ -1,219 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Resources](/docs/api-reference/common/Resources/page.mdx) / Resources - -Defined in: [packages/common/src/Resources.ts:16](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L16) - -A generic resource manager that handles reference counting and delayed -disposal of shared resources. Useful for managing expensive resources like -WebSocket connections that need to be shared among multiple consumers. - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | -| ------ | -| `TResource` *extends* [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) | -| `TResourceKey` *extends* `string` | -| `TResourceConfig` | -| `TConsumer` | -| `TConsumerId` *extends* `string` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### addConsumer() - -```ts -readonly addConsumer: (consumer: TConsumer, resourceConfigs: readonly TResourceConfig[]) => void; -``` - -Defined in: [packages/common/src/Resources.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L27) - -Adds a consumer to resources, creating them if necessary. Increments -reference counts for existing consumer-resource pairs. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `consumer` | `TConsumer` | -| `resourceConfigs` | readonly `TResourceConfig`[] | - -#### Returns - -`void` - -*** - - - -### getConsumer() - -```ts -readonly getConsumer: (consumerId: TConsumerId) => TConsumer | null; -``` - -Defined in: [packages/common/src/Resources.ts:63](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L63) - -Gets the consumer for the specified consumer ID, or null if not found or -not using any resources. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `consumerId` | `TConsumerId` | - -#### Returns - -`TConsumer` \| `null` - -*** - - - -### getConsumersForResource() - -```ts -readonly getConsumersForResource: (key: TResourceKey) => readonly TConsumerId[]; -``` - -Defined in: [packages/common/src/Resources.ts:52](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L52) - -Gets all consumer IDs currently using the specified resource key. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `TResourceKey` | - -#### Returns - -readonly `TConsumerId`[] - -*** - - - -### getResource() - -```ts -readonly getResource: (key: TResourceKey) => TResource | null; -``` - -Defined in: [packages/common/src/Resources.ts:49](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L49) - -Gets the resource for the specified key, or null if it doesn't exist. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `TResourceKey` | - -#### Returns - -`TResource` \| `null` - -*** - - - -### hasConsumerAnyResource() - -```ts -readonly hasConsumerAnyResource: (consumer: TConsumer) => boolean; -``` - -Defined in: [packages/common/src/Resources.ts:57](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L57) - -Checks if a consumer is currently using any resources. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `consumer` | `TConsumer` | - -#### Returns - -`boolean` - -*** - - - -### removeConsumer() - -```ts -readonly removeConsumer: (consumer: TConsumer, resourceConfigs: readonly TResourceConfig[]) => Result -| ConsumerNotFoundError>; -``` - -Defined in: [packages/common/src/Resources.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L39) - -Removes a consumer from resources. Decrements reference counts and -schedules disposal when no consumers remain. - -Returns an error if the resource doesn't exist or if the consumer wasn't -added to the resource. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `consumer` | `TConsumer` | -| `resourceConfigs` | readonly `TResourceConfig`[] | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, - \| [`ResourceNotFoundError`](/docs/api-reference/common/Resources/interfaces/ResourceNotFoundError.mdx)\<`TResourceKey`\> - \| [`ConsumerNotFoundError`](/docs/api-reference/common/Resources/interfaces/ConsumerNotFoundError.mdx)\<`TConsumerId`, `TResourceKey`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Resources/interfaces/ResourcesConfig.mdx b/.generated/evolu-docs/api-reference/common/Resources/interfaces/ResourcesConfig.mdx deleted file mode 100644 index 3f051b5fd..000000000 --- a/.generated/evolu-docs/api-reference/common/Resources/interfaces/ResourcesConfig.mdx +++ /dev/null @@ -1,155 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Resources](/docs/api-reference/common/Resources/page.mdx) / ResourcesConfig - -Defined in: [packages/common/src/Resources.ts:81](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L81) - -## Type Parameters - -| Type Parameter | -| ------ | -| `TResource` *extends* [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) | -| `TResourceKey` *extends* `string` | -| `TResourceConfig` | -| `TConsumer` | -| `TConsumerId` *extends* `string` | - -## Properties - - - -### createResource() - -```ts -readonly createResource: (config: TResourceConfig) => TResource; -``` - -Defined in: [packages/common/src/Resources.ts:89](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L89) - -Creates a new resource for the given config. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | `TResourceConfig` | - -#### Returns - -`TResource` - -*** - - - -### disposalDelay? - -```ts -readonly optional disposalDelay: number; -``` - -Defined in: [packages/common/src/Resources.ts:101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L101) - -Delay in milliseconds before disposing unused resources. Helps avoid -resource churn during rapid add/remove cycles. Defaults to 100ms. - -*** - - - -### getConsumerId() - -```ts -readonly getConsumerId: (consumer: TConsumer) => TConsumerId; -``` - -Defined in: [packages/common/src/Resources.ts:95](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L95) - -Extracts a unique identifier from a consumer for reference counting. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `consumer` | `TConsumer` | - -#### Returns - -`TConsumerId` - -*** - - - -### getResourceKey() - -```ts -readonly getResourceKey: (config: TResourceConfig) => TResourceKey; -``` - -Defined in: [packages/common/src/Resources.ts:92](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L92) - -Extracts a unique key from a resource config for deduplication. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | `TResourceConfig` | - -#### Returns - -`TResourceKey` - -*** - - - -### onConsumerAdded()? - -```ts -readonly optional onConsumerAdded: (consumer: TConsumer, resource: TResource, resourceKey: TResourceKey) => void; -``` - -Defined in: [packages/common/src/Resources.ts:108](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L108) - -Called when a consumer is added to a resource for the first time. This -happens when the consumer's reference count goes from 0 to 1 for this -resource. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `consumer` | `TConsumer` | -| `resource` | `TResource` | -| `resourceKey` | `TResourceKey` | - -#### Returns - -`void` - -*** - - - -### onConsumerRemoved()? - -```ts -readonly optional onConsumerRemoved: (consumer: TConsumer, resource: TResource, resourceKey: TResourceKey) => void; -``` - -Defined in: [packages/common/src/Resources.ts:118](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Resources.ts#L118) - -Called when a consumer is completely removed from a resource. This happens -when the consumer's reference count goes from 1 to 0 for this resource. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `consumer` | `TConsumer` | -| `resource` | `TResource` | -| `resourceKey` | `TResourceKey` | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Resources/page.mdx b/.generated/evolu-docs/api-reference/common/Resources/page.mdx deleted file mode 100644 index 9f797cdb0..000000000 --- a/.generated/evolu-docs/api-reference/common/Resources/page.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Resources - -Reference-counted resource management with delayed disposal. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createDisposableDep](/docs/api-reference/common/Resources/functions/createDisposableDep.mdx) | Creates a [DisposableDep](/docs/api-reference/common/Resources/interfaces/DisposableDep.mdx) from `Disposable`. | -| [createResources](/docs/api-reference/common/Resources/functions/createResources.mdx) | Creates [Resources](/docs/api-reference/common/Resources/interfaces/Resources.mdx). | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [AsyncDisposableStackDep](/docs/api-reference/common/Resources/interfaces/AsyncDisposableStackDep.mdx) | - | -| [ConsumerNotFoundError](/docs/api-reference/common/Resources/interfaces/ConsumerNotFoundError.mdx) | Error when trying to remove a consumer that wasn't added to a resource. | -| [DisposableDep](/docs/api-reference/common/Resources/interfaces/DisposableDep.mdx) | See [createDisposableDep](/docs/api-reference/common/Resources/functions/createDisposableDep.mdx). | -| [DisposableStackDep](/docs/api-reference/common/Resources/interfaces/DisposableStackDep.mdx) | - | -| [ResourceNotFoundError](/docs/api-reference/common/Resources/interfaces/ResourceNotFoundError.mdx) | Error when trying to remove a consumer from a resource that doesn't exist. | -| [Resources](/docs/api-reference/common/Resources/interfaces/Resources.mdx) | A generic resource manager that handles reference counting and delayed disposal of shared resources. Useful for managing expensive resources like WebSocket connections that need to be shared among multiple consumers. | -| [ResourcesConfig](/docs/api-reference/common/Resources/interfaces/ResourcesConfig.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/allResult.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/allResult.mdx deleted file mode 100644 index 6188a2b80..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/allResult.mdx +++ /dev/null @@ -1,141 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / allResult - -## Call Signature - -```ts -function allResult(results: T): Result<{ [K in string | number | symbol]: InferOk }, InferErr>; -``` - -Defined in: [packages/common/src/Result.ts:526](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L526) - -Extracts all values from an array of [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)s. - -Returns the first error if any result fails. - -### Example - -```ts -const results = [ok(1), ok(2), ok(3)]; -const all = allResult(results); -// ok([1, 2, 3]) - -const withError = [ok(1), err("fail"), ok(3)]; -const failed = allResult(withError); -// err("fail") -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* readonly \[[`AnyResult`](/docs/api-reference/common/Result/type-aliases/AnyResult.mdx), [`AnyResult`](/docs/api-reference/common/Result/type-aliases/AnyResult.mdx)\] | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `results` | `T` | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<\{ \[K in string \| number \| symbol\]: InferOk\ \}, [`InferErr`](/docs/api-reference/common/Result/type-aliases/InferErr.mdx)\<`T`\[`number`\]\>\> - -## Call Signature - -```ts -function allResult(results: T): Result<{ [P in string | number | symbol]: InferOk }, [keyof T] extends [never] ? never : InferErr>; -``` - -Defined in: [packages/common/src/Result.ts:538](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L538) - -Returns object with same keys. - -```ts -const result = allResult({ a: ok(1), b: ok(2) }); -// ok({ a: 1, b: 2 }) -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* `Readonly`\<`Record`\<`string`, [`AnyResult`](/docs/api-reference/common/Result/type-aliases/AnyResult.mdx)\>\> | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `results` | `T` | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<\{ \[P in string \| number \| symbol\]: InferOk\ \}, \[keyof `T`\] *extends* \[`never`\] ? `never` : [`InferErr`](/docs/api-reference/common/Result/type-aliases/InferErr.mdx)\<`T`\[keyof `T`\]\>\> - -## Call Signature - -```ts -function allResult(results: Iterable>): Result; -``` - -Defined in: [packages/common/src/Result.ts:554](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L554) - -For dynamic or generated result lists. - -```ts -const results: ReadonlyArray> = getResults(); -const all = allResult(results); -// Result, Error> -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `results` | [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\>\> | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\ - -## Call Signature - -```ts -function allResult(results: readonly [Result, Result]): Result; -``` - -Defined in: [packages/common/src/Result.ts:570](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L570) - -Guarantees non-empty result. - -```ts -const results: NonEmptyReadonlyArray> = [ - ok(1), - ok(2), -]; -const all = allResult(results); -// Result, Error> -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `results` | readonly \[[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\>, [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\>\] | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\ diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/anyResult.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/anyResult.mdx deleted file mode 100644 index 7e676a104..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/anyResult.mdx +++ /dev/null @@ -1,52 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / anyResult - -```ts -function anyResult(results: T): Result, InferErr>; -``` - -Defined in: [packages/common/src/Result.ts:734](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L734) - -Returns the first successful [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). - -If all results fail, returns the last error. - -Requires a non-empty array — there's no "first success" with zero -participants. Use [isNonEmptyArray](/docs/api-reference/common/Array/functions/isNonEmptyArray.mdx) to guard: - -```ts -if (isNonEmptyArray(results)) { - const result = anyResult(results); -} -``` - -### Example - -```ts -const results = [err("fail1"), ok(42), err("fail2")]; -if (isNonEmptyArray(results)) { - const result = anyResult(results); - // ok(42) -} - -const allFailed = [err("a"), err("b"), err("c")]; -if (isNonEmptyArray(allFailed)) { - const result = anyResult(allFailed); - // err("c") — last error -} -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* readonly \[[`AnyResult`](/docs/api-reference/common/Result/type-aliases/AnyResult.mdx), [`AnyResult`](/docs/api-reference/common/Result/type-aliases/AnyResult.mdx)\] | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `results` | `T` | - -## Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferOk`](/docs/api-reference/common/Result/type-aliases/InferOk.mdx)\<`T`\[`number`\]\>, [`InferErr`](/docs/api-reference/common/Result/type-aliases/InferErr.mdx)\<`T`\[`number`\]\>\> diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/done.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/done.mdx deleted file mode 100644 index 001075ee1..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/done.mdx +++ /dev/null @@ -1,44 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / done - -## Call Signature - -```ts -function done(): Done; -``` - -Defined in: [packages/common/src/Result.ts:465](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L465) - -Constructs a [Done](/docs/api-reference/common/Result/interfaces/Done.mdx) value. - -- `done()` creates a `Done` for protocols that don't need a done value. -- `done(value)` creates a `Done` containing the specified value. - -### Returns - -[`Done`](/docs/api-reference/common/Result/interfaces/Done.mdx)\<`void`\> - -## Call Signature - -```ts -function done(value: D): Done; -``` - -Defined in: [packages/common/src/Result.ts:467](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L467) - -With a done value. - -### Type Parameters - -| Type Parameter | -| ------ | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `D` | - -### Returns - -[`Done`](/docs/api-reference/common/Result/interfaces/Done.mdx)\<`D`\> diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/err.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/err.mdx deleted file mode 100644 index 908eb8fff..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/err.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / err - -```ts -function err(error: E): Result; -``` - -Defined in: [packages/common/src/Result.ts:324](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L324) - -Creates an [Err](/docs/api-reference/common/Result/interfaces/Err.mdx) result. - -## Type Parameters - -| Type Parameter | -| ------ | -| `E` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `error` | `E` | - -## Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`never`, `E`\> diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/getOrNull.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/getOrNull.mdx deleted file mode 100644 index 830d1dd4a..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/getOrNull.mdx +++ /dev/null @@ -1,40 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / getOrNull - -```ts -function getOrNull(result: Result): T | null; -``` - -Defined in: [packages/common/src/Result.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L379) - -Extracts the value from a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) if it is an `Ok`, or returns `null` -if it is an `Err`. - -**Intended usage:** - -- When you need to convert a `Result` to a nullable value for APIs that expect - `T | null`. -- When the error is not important and you just want the value or nothing. - -### Example - -```ts -// For APIs that expect T | null -const user = getOrNull(findUser(id)); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `result` | [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\> | - -## Returns - -`T` \| `null` diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/getOrThrow.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/getOrThrow.mdx deleted file mode 100644 index 6e12eeeab..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/getOrThrow.mdx +++ /dev/null @@ -1,44 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / getOrThrow - -```ts -function getOrThrow(result: Result): T; -``` - -Defined in: [packages/common/src/Result.ts:354](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L354) - -Extracts the value from a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) if it is an `Ok`, or throws an error -if it is an `Err`. - -**Intended usage:** - -- For critical code paths (e.g., app startup, config values) where failure - should crash the app. -- Not recommended for general error handling in application logic—prefer - explicit checks. - -### Example - -```ts -// At app startup, crash if config is invalid: -const config = getOrThrow(loadConfig()); -// Safe to use config here -``` - -Throws: `Error` with the original error attached as `cause`. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `result` | [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\> | - -## Returns - -`T` diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/isErr.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/isErr.mdx deleted file mode 100644 index 86f4f2950..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/isErr.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / isErr - -```ts -function isErr(result: Result): result is Err; -``` - -Defined in: [packages/common/src/Result.ts:330](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L330) - -Type guard for [Err](/docs/api-reference/common/Result/interfaces/Err.mdx) results. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `result` | [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\> | - -## Returns - -`result is Err` diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/isOk.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/isOk.mdx deleted file mode 100644 index 85b611f68..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/isOk.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / isOk - -```ts -function isOk(result: Result): result is Ok; -``` - -Defined in: [packages/common/src/Result.ts:327](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L327) - -Type guard for [Ok](/docs/api-reference/common/Result/interfaces/Ok.mdx) results. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `result` | [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\> | - -## Returns - -`result is Ok` diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/mapResult.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/mapResult.mdx deleted file mode 100644 index 648ff06bc..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/mapResult.mdx +++ /dev/null @@ -1,110 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / mapResult - -## Call Signature - -```ts -function mapResult(items: A, fn: (a: A[number]) => Result): Result<{ [K in string | number | symbol]: T }, E>; -``` - -Defined in: [packages/common/src/Result.ts:627](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L627) - -Maps items to [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)s and extracts all values. - -Returns the first error if any result fails. - -### Example - -```ts -const users = [{ id: 1 }, { id: 2 }]; -const result = mapResult(users, validateUser); -// Result, ValidateUserError> -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` *extends* readonly \[`unknown`, `unknown`\] | -| `T` | -| `E` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | `A` | -| `fn` | (`a`: `A`\[`number`\]) => [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\> | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<\{ \[K in string \| number \| symbol\]: T \}, `E`\> - -## Call Signature - -```ts -function mapResult(items: Iterable, fn: (a: A) => Result): Result; -``` - -Defined in: [packages/common/src/Result.ts:645](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L645) - -For dynamic or generated item lists. - -```ts -const users = [{ id: 1 }, { id: 2 }]; -const result = mapResult(users, validateUser); -// Result, ValidateUserError> -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `T` | -| `E` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<`A`\> | -| `fn` | (`a`: `A`) => [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\> | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\ - -## Call Signature - -```ts -function mapResult(items: Readonly>, fn: (a: A) => Result): Result>, E>; -``` - -Defined in: [packages/common/src/Result.ts:658](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L658) - -Returns object with same keys. - -```ts -const result = mapResult({ a: 1, b: 2 }, double); -// Result<{ a: number, b: number }, DoubleError> -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `T` | -| `E` | -| `K` *extends* `string` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | `Readonly`\<`Record`\<`K`, `A`\>\> | -| `fn` | (`a`: `A`) => [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\> | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Readonly`\<`Record`\<`K`, `T`\>\>, `E`\> diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/ok.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/ok.mdx deleted file mode 100644 index b8d85540d..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/ok.mdx +++ /dev/null @@ -1,55 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / ok - -## Call Signature - -```ts -function ok(): Result; -``` - -Defined in: [packages/common/src/Result.ts:312](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L312) - -Creates an [Ok](/docs/api-reference/common/Result/interfaces/Ok.mdx) result. - -- `ok()` creates a `Result` for operations that succeed without - producing a value. -- `ok(value)` creates a `Result` containing the specified value. - -### Example - -```ts -const noValue = ok(); -console.log(noValue); // { ok: true, value: undefined } - -const success = ok(42); -console.log(success); // { ok: true, value: 42 } -``` - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`\> - -## Call Signature - -```ts -function ok(value: T): Result; -``` - -Defined in: [packages/common/src/Result.ts:314](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L314) - -Creates an [Ok](/docs/api-reference/common/Result/interfaces/Ok.mdx) result with a specified value. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/tryAsync.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/tryAsync.mdx deleted file mode 100644 index 087f99732..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/tryAsync.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / tryAsync - -```ts -function tryAsync(lazyPromise: Lazy>, mapError: (error: unknown) => E): Promise>; -``` - -Defined in: [packages/common/src/Result.ts:423](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L423) - -Wraps an async function that may throw, returning a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). - -### Example - -```ts -const fetchJson = (url: string): Promise> => - tryAsync( - async () => { - const response = await fetch(url); - if (!response.ok) throw new Error(`Status ${response.status}`); - return response.json(); - }, - (error) => ({ type: "FetchError", message: String(error) }), - ); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `lazyPromise` | [`Lazy`](/docs/api-reference/common/Function/type-aliases/Lazy.mdx)\<`Promise`\<`T`\>\> | -| `mapError` | (`error`: `unknown`) => `E` | - -## Returns - -`Promise`\<[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Result/functions/trySync.mdx b/.generated/evolu-docs/api-reference/common/Result/functions/trySync.mdx deleted file mode 100644 index 0fb668b3f..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/functions/trySync.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / trySync - -```ts -function trySync(fn: () => T, mapError: (error: unknown) => E): Result; -``` - -Defined in: [packages/common/src/Result.ts:395](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L395) - -Wraps a synchronous function that may throw, returning a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). - -### Example - -```ts -const parseJson = (value: string): Result => - trySync( - () => JSON.parse(value) as unknown, - (error) => ({ type: "ParseJsonError", message: String(error) }), - ); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `fn` | () => `T` | -| `mapError` | (`error`: `unknown`) => `E` | - -## Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\> diff --git a/.generated/evolu-docs/api-reference/common/Result/interfaces/Done.mdx b/.generated/evolu-docs/api-reference/common/Result/interfaces/Done.mdx deleted file mode 100644 index a528e9276..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/interfaces/Done.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / Done - -Defined in: [packages/common/src/Result.ts:455](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L455) - -A signal indicating normal completion of a pull-based protocol. - -This is not a failure — it is a control signal that carries an optional -"done" value (often `void`, but can be a final summary or leftover). - -Inspired by JavaScript's `IteratorResult` where `{ done: true }` signals -completion. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"Done"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `D` | `unknown` | - -## Properties - - - -### done - -```ts -readonly done: D; -``` - -Defined in: [packages/common/src/Result.ts:456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L456) - -*** - - - -### type - -```ts -readonly type: "Done"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Result/interfaces/Err.mdx b/.generated/evolu-docs/api-reference/common/Result/interfaces/Err.mdx deleted file mode 100644 index ceeecf4b9..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/interfaces/Err.mdx +++ /dev/null @@ -1,52 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / Err - -Defined in: [packages/common/src/Result.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L274) - -An error [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). - -The `error` property can be any type that describes the error. For domain -errors, use a plain object with a `type` field for discrimination. - -### Example - -```ts -interface NotFoundError extends Typed<"NotFoundError"> { - readonly id: string; -} - -const findUser = (id: string): Result => { - const user = users.get(id); - if (user == null) return err({ type: "NotFoundError", id }); - return ok(user); -}; -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `E` | - -## Properties - - - -### error - -```ts -readonly error: E; -``` - -Defined in: [packages/common/src/Result.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L276) - -*** - - - -### ok - -```ts -readonly ok: false; -``` - -Defined in: [packages/common/src/Result.ts:275](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L275) diff --git a/.generated/evolu-docs/api-reference/common/Result/interfaces/Ok.mdx b/.generated/evolu-docs/api-reference/common/Result/interfaces/Ok.mdx deleted file mode 100644 index f67a9212e..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/interfaces/Ok.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / Ok - -Defined in: [packages/common/src/Result.ts:249](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L249) - -A successful [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Properties - - - -### ok - -```ts -readonly ok: true; -``` - -Defined in: [packages/common/src/Result.ts:250](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L250) - -*** - - - -### value - -```ts -readonly value: T; -``` - -Defined in: [packages/common/src/Result.ts:251](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L251) diff --git a/.generated/evolu-docs/api-reference/common/Result/page.mdx b/.generated/evolu-docs/api-reference/common/Result/page.mdx deleted file mode 100644 index d117fbc12..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/page.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Result - -Type-safe error handling with Result types. - -## Composition - -| Function | Description | -| ------ | ------ | -| [allResult](/docs/api-reference/common/Result/functions/allResult.mdx) | Extracts all values from an array of [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)s. | -| [anyResult](/docs/api-reference/common/Result/functions/anyResult.mdx) | Returns the first successful [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). | -| [mapResult](/docs/api-reference/common/Result/functions/mapResult.mdx) | Maps items to [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)s and extracts all values. | - -## Utilities - -| Type Alias | Description | -| ------ | ------ | -| [AnyResult](/docs/api-reference/common/Result/type-aliases/AnyResult.mdx) | Shorthand for a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) with `any` type parameters. | -| [ExcludeDone](/docs/api-reference/common/Result/type-aliases/ExcludeDone.mdx) | Removes [Done](/docs/api-reference/common/Result/interfaces/Done.mdx) from an error union. | -| [InferDone](/docs/api-reference/common/Result/type-aliases/InferDone.mdx) | Extracts the done value type from a [NextResult](/docs/api-reference/common/Result/type-aliases/NextResult.mdx). | -| [InferErr](/docs/api-reference/common/Result/type-aliases/InferErr.mdx) | Extracts the error type from a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). | -| [InferOk](/docs/api-reference/common/Result/type-aliases/InferOk.mdx) | Extracts the value type from a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). | -| [OnlyDone](/docs/api-reference/common/Result/type-aliases/OnlyDone.mdx) | Extracts only [Done](/docs/api-reference/common/Result/interfaces/Done.mdx) from an error union. | - -## Functions - -| Function | Description | -| ------ | ------ | -| [done](/docs/api-reference/common/Result/functions/done.mdx) | Constructs a [Done](/docs/api-reference/common/Result/interfaces/Done.mdx) value. | -| [err](/docs/api-reference/common/Result/functions/err.mdx) | Creates an [Err](/docs/api-reference/common/Result/interfaces/Err.mdx) result. | -| [getOrNull](/docs/api-reference/common/Result/functions/getOrNull.mdx) | Extracts the value from a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) if it is an `Ok`, or returns `null` if it is an `Err`. | -| [getOrThrow](/docs/api-reference/common/Result/functions/getOrThrow.mdx) | Extracts the value from a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) if it is an `Ok`, or throws an error if it is an `Err`. | -| [isErr](/docs/api-reference/common/Result/functions/isErr.mdx) | Type guard for [Err](/docs/api-reference/common/Result/interfaces/Err.mdx) results. | -| [isOk](/docs/api-reference/common/Result/functions/isOk.mdx) | Type guard for [Ok](/docs/api-reference/common/Result/interfaces/Ok.mdx) results. | -| [ok](/docs/api-reference/common/Result/functions/ok.mdx) | Creates an [Ok](/docs/api-reference/common/Result/interfaces/Ok.mdx) result. | -| [tryAsync](/docs/api-reference/common/Result/functions/tryAsync.mdx) | Wraps an async function that may throw, returning a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). | -| [trySync](/docs/api-reference/common/Result/functions/trySync.mdx) | Wraps a synchronous function that may throw, returning a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Done](/docs/api-reference/common/Result/interfaces/Done.mdx) | A signal indicating normal completion of a pull-based protocol. | -| [Err](/docs/api-reference/common/Result/interfaces/Err.mdx) | An error [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). | -| [Ok](/docs/api-reference/common/Result/interfaces/Ok.mdx) | A successful [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [NextResult](/docs/api-reference/common/Result/type-aliases/NextResult.mdx) | A result for a pull-based protocol with three outcomes. | -| [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) | The problem with `throw` in JavaScript is that the caught value is always of unknown type. We can't be sure all errors have been handled because the TypeScript compiler can't tell us what was thrown — we can't use [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx). | diff --git a/.generated/evolu-docs/api-reference/common/Result/type-aliases/AnyResult.mdx b/.generated/evolu-docs/api-reference/common/Result/type-aliases/AnyResult.mdx deleted file mode 100644 index 8714005a7..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/type-aliases/AnyResult.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / AnyResult - -```ts -type AnyResult = Result; -``` - -Defined in: [packages/common/src/Result.ts:246](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L246) - -Shorthand for a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) with `any` type parameters. diff --git a/.generated/evolu-docs/api-reference/common/Result/type-aliases/ExcludeDone.mdx b/.generated/evolu-docs/api-reference/common/Result/type-aliases/ExcludeDone.mdx deleted file mode 100644 index fd1d6f389..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/type-aliases/ExcludeDone.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / ExcludeDone - -```ts -type ExcludeDone = Exclude>; -``` - -Defined in: [packages/common/src/Result.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L483) - -Removes [Done](/docs/api-reference/common/Result/interfaces/Done.mdx) from an error union. - -Useful for pull-based protocols where completion is encoded in the error -channel (for example [NextResult](/docs/api-reference/common/Result/type-aliases/NextResult.mdx)). - -## Type Parameters - -| Type Parameter | -| ------ | -| `E` | diff --git a/.generated/evolu-docs/api-reference/common/Result/type-aliases/InferDone.mdx b/.generated/evolu-docs/api-reference/common/Result/type-aliases/InferDone.mdx deleted file mode 100644 index 72bb535bc..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/type-aliases/InferDone.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / InferDone - -```ts -type InferDone = InferErr extends infer Errors ? Errors extends Done ? D : never : never; -``` - -Defined in: [packages/common/src/Result.ts:500](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L500) - -Extracts the done value type from a [NextResult](/docs/api-reference/common/Result/type-aliases/NextResult.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`any`, `any`\> | diff --git a/.generated/evolu-docs/api-reference/common/Result/type-aliases/InferErr.mdx b/.generated/evolu-docs/api-reference/common/Result/type-aliases/InferErr.mdx deleted file mode 100644 index 951c99ce6..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/type-aliases/InferErr.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / InferErr - -```ts -type InferErr = R extends Err ? E : never; -``` - -Defined in: [packages/common/src/Result.ts:292](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L292) - -Extracts the error type from a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`any`, `any`\> | diff --git a/.generated/evolu-docs/api-reference/common/Result/type-aliases/InferOk.mdx b/.generated/evolu-docs/api-reference/common/Result/type-aliases/InferOk.mdx deleted file mode 100644 index 57a655ffd..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/type-aliases/InferOk.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / InferOk - -```ts -type InferOk = R extends Ok ? T : never; -``` - -Defined in: [packages/common/src/Result.ts:284](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L284) - -Extracts the value type from a [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`any`, `any`\> | diff --git a/.generated/evolu-docs/api-reference/common/Result/type-aliases/NextResult.mdx b/.generated/evolu-docs/api-reference/common/Result/type-aliases/NextResult.mdx deleted file mode 100644 index 2c34bb663..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/type-aliases/NextResult.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / NextResult - -```ts -type NextResult = Result>; -``` - -Defined in: [packages/common/src/Result.ts:444](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L444) - -A result for a pull-based protocol with three outcomes. - -The consumer requests the next value (e.g. via `next()`), and the producer -responds with one of: - -- `Ok` — produced a value -- `Err>` — completed normally with a done value -- `Err` — failed with an error - -Inspired by JavaScript's `Iterator.next()`, which returns `{ value, done }`. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `A` | - | -| `E` | `never` | -| `D` | `void` | diff --git a/.generated/evolu-docs/api-reference/common/Result/type-aliases/OnlyDone.mdx b/.generated/evolu-docs/api-reference/common/Result/type-aliases/OnlyDone.mdx deleted file mode 100644 index d04e9e707..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/type-aliases/OnlyDone.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / OnlyDone - -```ts -type OnlyDone = Extract>; -``` - -Defined in: [packages/common/src/Result.ts:493](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L493) - -Extracts only [Done](/docs/api-reference/common/Result/interfaces/Done.mdx) from an error union. - -Useful for pull-based protocols where completion is encoded in the error -channel (for example [NextResult](/docs/api-reference/common/Result/type-aliases/NextResult.mdx)). - -## Type Parameters - -| Type Parameter | -| ------ | -| `E` | diff --git a/.generated/evolu-docs/api-reference/common/Result/type-aliases/Result.mdx b/.generated/evolu-docs/api-reference/common/Result/type-aliases/Result.mdx deleted file mode 100644 index f158135df..000000000 --- a/.generated/evolu-docs/api-reference/common/Result/type-aliases/Result.mdx +++ /dev/null @@ -1,235 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Result](/docs/api-reference/common/Result/page.mdx) / Result - -```ts -type Result = - | Ok -| Err; -``` - -Defined in: [packages/common/src/Result.ts:239](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Result.ts#L239) - -The problem with `throw` in JavaScript is that the caught value is always of -unknown type. We can't be sure all errors have been handled because the -TypeScript compiler can't tell us what was thrown — we can't use -[exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx). - -Languages like Rust and Haskell solve this with types like `Result` or -`Either` where errors are part of the return type. TypeScript can do the -same. - -```ts -// With throw - caught value is unknown, can't use exhaustiveCheck -try { - doSomething(); -} catch (error) { - // error is unknown - TypeScript can't help us here -} - -// With Result - error type is known, exhaustiveCheck works -const result = doSomething(); -if (!result.ok) { - switch (result.error.type) { - case "NotFound": - // handle not found - break; - case "InvalidInput": - // handle invalid input - break; - default: - exhaustiveCheck(result.error); // TypeScript ensures all cases handled - } -} -``` - -A `Result` is either [Ok](/docs/api-reference/common/Result/interfaces/Ok.mdx) (success with a value) or [Err](/docs/api-reference/common/Result/interfaces/Err.mdx) (failure -with an error). Create them with [ok](/docs/api-reference/common/Result/functions/ok.mdx) and [err](/docs/api-reference/common/Result/functions/err.mdx). - -```ts -type Result = Ok | Err; - -interface Ok { - readonly ok: true; - readonly value: T; -} - -interface Err { - readonly ok: false; - readonly error: E; -} -``` - -## Example - -```ts -// Typed adds { type: T } for discriminated unions -interface ParseJsonError extends Typed<"ParseJsonError"> { - readonly message: string; -} - -const parseJson = (value: string): Result => { - try { - return ok(JSON.parse(value)); - } catch (error) { - return err({ type: "ParseJsonError", message: String(error) }); - } -}; - -const json = parseJson('{"name": "Alice"}'); -if (!json.ok) return json; // short-circuit on error - -// Now we have access to json.value (type: unknown) -console.log(json.value); -``` - -The caller doesn't need `try/catch`, just `if (!json.ok)`, and the error is -`ParseJsonError`, not `unknown`. - -To avoid `try/catch` inside `parseJson` too, use [trySync](/docs/api-reference/common/Result/functions/trySync.mdx): - -```ts -const parseJson = (value: string): Result => - trySync( - () => JSON.parse(value) as unknown, - (error) => ({ type: "ParseJsonError", message: String(error) }), - ); -``` - -`trySync` makes synchronous code that can throw safe. For asynchronous code, -use [tryAsync](/docs/api-reference/common/Result/functions/tryAsync.mdx). - -Since `Result` is a plain object, imperative code works naturally: - -### Stop on error, map on success - -```ts -const users = getActiveUsers(); -if (!users.ok) return users; -const usernames = mapArray(users.value, (u) => u.username); -``` - -### Iterate array, stop on first error - -```ts -for (const user of users) { - const result = validateUser(user); // Result - if (!result.ok) return result; -} -``` - -## Composition - -Some patterns are common enough that deserve helpers. The previous example -can be written with [mapResult](/docs/api-reference/common/Result/functions/mapResult.mdx): - -```ts -const result = mapResult(users, validateUser); -// Result -``` - -For an array of results, [allResult](/docs/api-reference/common/Result/functions/allResult.mdx) extracts all values or returns the -first error: - -```ts -const result = allResult(validationResults); -``` - -For the first success, [anyResult](/docs/api-reference/common/Result/functions/anyResult.mdx) returns the first Ok or the last -error if all fail: - -```ts -const result = anyResult(parserResults); -``` - -## Naming convention - -- Result with a value: name it after the value (`user`, `config`) -- Result without a value: name it `result` - -```ts -const processUser = (): Result< - void, - GetUserError | SaveToDatabaseError | SendWelcomeEmailError -> => { - const user = getUser(); - if (!user.ok) return user; - - const result = saveToDatabase(user.value); - if (!result.ok) return result; - - // To avoid a clash with the previous `result`, use a block scope. - { - const result = sendWelcomeEmail(user.value); - if (!result.ok) return result; - } - - return ok(); -}; -``` - -## Unrecoverable errors - -Some errors can't be handled locally — they must propagate to the top level. -These are unrecoverable errors: expected (you know they can happen) but only -handleable at the app level. Group them in a union type like `AppError`: - -```ts -type AppError = SqliteError | SyncError | UnknownError; - -interface SqliteError extends Typed<"SqliteError"> { - readonly error: UnknownError; -} -``` - -[UnknownError](/docs/api-reference/common/Error/interfaces/UnknownError.mdx) wraps `unknown` so it can be part of a union (`unknown` -absorbs all other types). - -Handle unrecoverable errors at the top level: - -```ts -const handleAppError = (error: AppError): void => { - switch (error.type) { - case "SqliteError": - console.error(error.error.stack); // Log preserved stack trace - showToast("Database error. Please restart the app."); - break; - case "SyncError": - showToast("Sync failed. Retrying..."); - break; - case "UnknownError": - console.error(error.stack); - showToast("An unexpected error occurred."); - break; - default: - exhaustiveCheck(error); - } -}; -``` - -## Unexpected errors - -Wrapping all unsafe code with [trySync](/docs/api-reference/common/Result/functions/trySync.mdx) or [tryAsync](/docs/api-reference/common/Result/functions/tryAsync.mdx) doesn't -prevent all errors — bugs can still throw. Catch them with global handlers: - -```ts -// Worker -scope.onError = (error) => { - errorPort.postMessage(error); -}; -``` - -TODO: Window and Node.js - -## FAQ - -### What if a function doesn't return a value on success? - -Use `Result` and return `ok()` (no argument). Don't return -`ok(true)`, `ok("success")`, or `ok("done")` — `ok()` already signals -success; redundant values add noise. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | `never` | diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/addDelay.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/addDelay.mdx deleted file mode 100644 index 564609590..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/addDelay.mdx +++ /dev/null @@ -1,46 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / addDelay - -```ts -function addDelay(extra: Duration): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:723](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L723) - -Adds a fixed delay to the schedule's existing delay. - -### Example - -```ts -// Add 500ms to each delay -const slower = addDelay("500ms")(exponential("100ms")); -// Delays: 600ms, 700ms, 900ms, 1300ms, ... -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `extra` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/always.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/always.mdx deleted file mode 100644 index 459ab1d54..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/always.mdx +++ /dev/null @@ -1,40 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / always - -```ts -function always(value: A): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:503](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L503) - -A schedule that always outputs a constant value. - -Never stops — combine with [take](/docs/api-reference/common/Schedule/functions/take.mdx) or [maxElapsed](/docs/api-reference/common/Schedule/functions/maxElapsed.mdx) to limit. - -### Example - -```ts -// Always output "retry" -const labeled = always("retry"); - -// Combine with timing -const withLabel = intersectSchedules( - exponential("100ms"), - always("backoff"), -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `A` | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`A`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/collectAllScheduleOutputs.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/collectAllScheduleOutputs.mdx deleted file mode 100644 index 259e11abb..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/collectAllScheduleOutputs.mdx +++ /dev/null @@ -1,36 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / collectAllScheduleOutputs - -```ts -function collectAllScheduleOutputs(schedule: Schedule): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1147](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1147) - -Collects all outputs into an array. - -Each step outputs an array containing all outputs so far. - -### Example - -```ts -// Collect all delays -const collected = collectAllScheduleOutputs(take(3)(spaced("100ms"))); -// Outputs: [100], [100, 100], [100, 100, 100] -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\ diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/collectScheduleInputs.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/collectScheduleInputs.mdx deleted file mode 100644 index 22f8be643..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/collectScheduleInputs.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / collectScheduleInputs - -```ts -function collectScheduleInputs(schedule: Schedule): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1172](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1172) - -Collects all inputs into an array. - -Each step outputs an array containing all inputs received so far. Mirror of -[collectAllScheduleOutputs](/docs/api-reference/common/Schedule/functions/collectAllScheduleOutputs.mdx) but for inputs. - -### Example - -```ts -// Collect all errors during retry -const errorHistory = collectScheduleInputs( - take(3)(exponential("100ms")), -); -// After 3 retries, outputs array of all error inputs -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\ diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/collectUntilScheduleOutput.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/collectUntilScheduleOutput.mdx deleted file mode 100644 index 871c9eee8..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/collectUntilScheduleOutput.mdx +++ /dev/null @@ -1,56 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / collectUntilScheduleOutput - -```ts -function collectUntilScheduleOutput(predicate: Predicate): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1221](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1221) - -Collects outputs until a predicate becomes true. - -Mirror of [collectWhileScheduleOutput](/docs/api-reference/common/Schedule/functions/collectWhileScheduleOutput.mdx) — stops collecting when the -predicate returns true (inclusive of the matching output). - -### Example - -```ts -// Collect delays until reaching 1 second -const untilLarge = collectUntilScheduleOutput( - (delay: Millis) => delay >= 1000, -)(exponential("100ms")); -// Outputs: [100], [100, 200], [100, 200, 400], [100, 200, 400, 800], stops -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `predicate` | [`Predicate`](/docs/api-reference/common/Types/type-aliases/Predicate.mdx)\<`Output`\> | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\ diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/collectWhileScheduleOutput.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/collectWhileScheduleOutput.mdx deleted file mode 100644 index 86e1c33c8..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/collectWhileScheduleOutput.mdx +++ /dev/null @@ -1,56 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / collectWhileScheduleOutput - -```ts -function collectWhileScheduleOutput(predicate: Predicate): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1196](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1196) - -Collects outputs while a predicate is true. - -More flexible than [collectAllScheduleOutputs](/docs/api-reference/common/Schedule/functions/collectAllScheduleOutputs.mdx) — stops collecting when -the predicate returns false. - -### Example - -```ts -// Collect delays while under 1 second -const smallDelays = collectWhileScheduleOutput( - (delay: Millis) => delay < 1000, -)(exponential("100ms")); -// Outputs: [100], [100, 200], [100, 200, 400], [100, 200, 400, 800], stops -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `predicate` | [`Predicate`](/docs/api-reference/common/Types/type-aliases/Predicate.mdx)\<`Output`\> | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\ diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/compensate.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/compensate.mdx deleted file mode 100644 index 7ff41cc43..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/compensate.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / compensate - -```ts -function compensate(schedule: Schedule): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:781](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L781) - -Adjusts delay by subtracting execution time. - -A simple combinator that subtracts the previous execution time from the -schedule's delay. If execution took longer than the delay, returns 0. - -For window-aligned scheduling, use [fixed](/docs/api-reference/common/Schedule/functions/fixed.mdx) instead. - -### Example - -```ts -// Poll every 5s, accounting for execution time -const polling = compensate(spaced("5s")); -// If poll takes 1s → wait 4s. If poll takes 6s → wait 0s. -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/delayed.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/delayed.mdx deleted file mode 100644 index 73c60dc81..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/delayed.mdx +++ /dev/null @@ -1,47 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / delayed - -```ts -function delayed(initialDelay: Duration): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:690](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L690) - -Adds an initial delay before the first attempt. - -Subsequent attempts use the schedule's normal delays. - -### Example - -```ts -// Wait 1s before first attempt, then exponential backoff -const withWarmup = delayed("1s")(exponential("100ms")); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `initialDelay` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/delays.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/delays.mdx deleted file mode 100644 index 11c5e54bf..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/delays.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / delays - -```ts -function delays(schedule: Schedule): Schedule & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">, Input>; -``` - -Defined in: [packages/common/src/Schedule.ts:1121](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1121) - -Outputs the delay between recurrences. - -Wraps a schedule to output its delay (in milliseconds) instead of the -original output. Useful for monitoring or logging delay patterns. - -### Example - -```ts -// Monitor exponential delays -const monitorDelays = delays(exponential("100ms")); -// Outputs: 100, 200, 400, 800, ... (the delays themselves) - -// Log delays for debugging -const logged = tapScheduleOutput(console.log)( - delays(exponential("100ms")), -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\>, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/during.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/during.mdx deleted file mode 100644 index de5324ba1..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/during.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / during - -```ts -function during(duration: Duration): Schedule & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">>; -``` - -Defined in: [packages/common/src/Schedule.ts:478](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L478) - -A schedule that runs for a specified duration then stops. - -Outputs the elapsed time. Useful for time-boxed operations or combining with -other schedules to create time-limited variants. - -### Example - -```ts -// Run for at most 30 seconds -const timeLimited = during("30s"); - -// Combine with exponential for time-boxed retry -const timedRetry = intersectSchedules( - exponential("100ms"), - during("10s"), -); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `duration` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/exponential.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/exponential.mdx deleted file mode 100644 index a3d666a3f..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/exponential.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / exponential - -```ts -function exponential(base: Duration, factor?: number): Schedule & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">>; -``` - -Defined in: [packages/common/src/Schedule.ts:239](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L239) - -Exponential backoff schedule. - -Computes delay as `base * factor^(attempt - 1)`: - -- Attempt 1: `base` -- Attempt 2: `base * factor` -- Attempt 3: `base * factor²` -- ... - -Never stops — combine with [take](/docs/api-reference/common/Schedule/functions/take.mdx) or [maxElapsed](/docs/api-reference/common/Schedule/functions/maxElapsed.mdx) to limit. - -### Example - -```ts -// 100ms, 200ms, 400ms, 800ms, ... -const exp = exponential("100ms"); - -// 100ms, 150ms, 225ms, 338ms, ... (gentler growth) -const gentle = exponential("100ms", 1.5); -``` - -## Parameters - -| Parameter | Type | Default value | -| ------ | ------ | ------ | -| `base` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | `undefined` | -| `factor` | `number` | `2` | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/fibonacci.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/fibonacci.mdx deleted file mode 100644 index 141142861..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/fibonacci.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / fibonacci - -```ts -function fibonacci(initial: Duration): Schedule & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">>; -``` - -Defined in: [packages/common/src/Schedule.ts:308](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L308) - -Fibonacci backoff schedule. - -Delays follow the Fibonacci sequence, growing more slowly than exponential: - -- Attempt 1: `initial` -- Attempt 2: `initial` -- Attempt 3: `initial * 2` -- Attempt 4: `initial * 3` -- Attempt 5: `initial * 5` -- ... - -Never stops — combine with [take](/docs/api-reference/common/Schedule/functions/take.mdx) or [maxElapsed](/docs/api-reference/common/Schedule/functions/maxElapsed.mdx) to limit. - -### Example - -```ts -// 100ms, 100ms, 200ms, 300ms, 500ms, 800ms, ... -const fib = fibonacci("100ms"); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `initial` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/fixed.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/fixed.mdx deleted file mode 100644 index 37c0e0268..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/fixed.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / fixed - -```ts -function fixed(interval: Duration): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:345](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L345) - -Fixed interval schedule aligned to time windows. - -Recurs on a fixed interval, outputting the repetition count (0, 1, 2, ...). -Unlike [spaced](/docs/api-reference/common/Schedule/functions/spaced.mdx), which waits a duration _after_ each execution, `fixed` -maintains a consistent cadence from when the schedule started. - -If execution takes longer than the interval, the next execution happens -immediately but subsequent runs still align to the original window -boundaries. This prevents "pile-up" while maintaining predictable timing. - -### Example - -```ts -// Health check every 5 seconds, aligned to windows -const healthCheck = take(10)(fixed("5s")); - -// Cron-like behavior: run at consistent intervals -const cronLike = fixed("1m"); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `interval` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/foldSchedule.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/foldSchedule.mdx deleted file mode 100644 index 3da1894c8..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/foldSchedule.mdx +++ /dev/null @@ -1,75 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / foldSchedule - -```ts -function foldSchedule(initial: Z, f: (acc: Z, output: Output) => Z): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1064](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1064) - -Folds over the outputs of a schedule, accumulating state. - -Each step outputs the accumulated value. Useful for tracking totals, -collecting outputs, or building up metadata across attempts. - -### Example - -```ts -// Track total delay spent -const withTotal = foldSchedule( - 0, - (total: number, delay: Millis) => total + delay, -)(exponential("100ms")); -// Outputs: 100, 300, 700, 1500, ... (cumulative) - -// Collect all outputs -const collected = foldSchedule([] as Millis[], (acc, delay: Millis) => [ - ...acc, - delay, -])(take(3)(spaced("1s"))); -// Outputs: [1000], [1000, 1000], [1000, 1000, 1000] - -// Count attempts with custom output -const counted = foldSchedule( - { attempts: 0, lastDelay: 0 as Millis }, - (acc, delay: Millis) => ({ - attempts: acc.attempts + 1, - lastDelay: delay, - }), -)(exponential("100ms")); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Z` | -| `Output` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `initial` | `Z` | -| `f` | (`acc`: `Z`, `output`: `Output`) => `Z` | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Z`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/fromDelay.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/fromDelay.mdx deleted file mode 100644 index 9dabb45d4..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/fromDelay.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / fromDelay - -```ts -function fromDelay(delay: Duration): Schedule & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">>; -``` - -Defined in: [packages/common/src/Schedule.ts:409](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L409) - -A schedule that runs once with a single delay. - -Convenience for `take(1)(spaced(delay))`. Useful for simple one-shot delays. - -### Example - -```ts -// Wait 1 second then stop -const oneShot = fromDelay("1s"); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `delay` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/fromDelays.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/fromDelays.mdx deleted file mode 100644 index f57426cd3..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/fromDelays.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / fromDelays - -```ts -function fromDelays(...delays: readonly Duration[]): Schedule & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">>; -``` - -Defined in: [packages/common/src/Schedule.ts:427](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L427) - -A schedule that runs through a sequence of delays. - -Convenience for sequencing single-delay schedules. Useful for predefined -retry patterns. - -### Example - -```ts -// Custom retry sequence: 100ms, 500ms, 2s -const custom = fromDelays("100ms", "500ms", "2s"); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`delays` | readonly [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx)[] | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/intersectSchedules.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/intersectSchedules.mdx deleted file mode 100644 index 7659de31c..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/intersectSchedules.mdx +++ /dev/null @@ -1,40 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / intersectSchedules - -```ts -function intersectSchedules(a: Schedule, b: Schedule): Schedule<[OutputA, OutputB], Input>; -``` - -Defined in: [packages/common/src/Schedule.ts:1288](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1288) - -Combines two schedules with AND semantics. - -Continues only while both schedules want to continue. Uses the maximum delay. - -### Example - -```ts -// Retry up to 5 times AND within 30 seconds (both conditions must be met) -const both = intersectSchedules( - take(5)(exponential("1s")), - maxElapsed("30s")(forever), -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `OutputA` | -| `OutputB` | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`OutputA`, `Input`\> | -| `b` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`OutputB`, `Input`\> | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<\[`OutputA`, `OutputB`\], `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/jitter.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/jitter.mdx deleted file mode 100644 index 97567ed7d..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/jitter.mdx +++ /dev/null @@ -1,55 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / jitter - -```ts -function jitter(factor?: number): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:663](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L663) - -Adds randomized jitter to delays. - -Jitter helps prevent "thundering herd" when many clients retry simultaneously -after a service recovers. The delay is randomized within a range: - -- `factor = 0` — no jitter (original delay) -- `factor = 0.5` — delay varies ±50% (e.g., 1s becomes 500ms-1500ms) -- `factor = 1` — full jitter, delay varies 0-200% (e.g., 1s becomes 0-2s) - -### Example - -```ts -// AWS-style full jitter -const awsStyle = jitter(1)(exponential("1s")); - -// Conservative jitter (±25%) -const conservative = jitter(0.25)(exponential("1s")); -``` - -## Parameters - -| Parameter | Type | Default value | -| ------ | ------ | ------ | -| `factor` | `number` | `0.5` | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/linear.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/linear.mdx deleted file mode 100644 index d0f21d7a6..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/linear.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / linear - -```ts -function linear(base: Duration): Schedule & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">>; -``` - -Defined in: [packages/common/src/Schedule.ts:273](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L273) - -Linear backoff schedule. - -Delay increases linearly: `base * attempt`: - -- Attempt 1: `base` -- Attempt 2: `base * 2` -- Attempt 3: `base * 3` -- ... - -Never stops — combine with [take](/docs/api-reference/common/Schedule/functions/take.mdx) or [maxElapsed](/docs/api-reference/common/Schedule/functions/maxElapsed.mdx) to limit. - -### Example - -```ts -// 100ms, 200ms, 300ms, 400ms, ... -const lin = linear("100ms"); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `base` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/mapSchedule.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/mapSchedule.mdx deleted file mode 100644 index 2d777b4a5..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/mapSchedule.mdx +++ /dev/null @@ -1,57 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / mapSchedule - -```ts -function mapSchedule(f: (a: A) => B): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:969](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L969) - -Transforms the output of a schedule. - -The delay (second tuple element) remains unchanged. - -### Example - -```ts -import { exponential, mapSchedule } from "@evolu/common"; - -const schedule = mapSchedule((delay) => ({ - delay, - doubled: delay * 2, -}))(exponential("100ms")); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `B` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `f` | (`a`: `A`) => `B` | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`A`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`B`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/maxDelay.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/maxDelay.mdx deleted file mode 100644 index b0c33950e..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/maxDelay.mdx +++ /dev/null @@ -1,48 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / maxDelay - -```ts -function maxDelay(max: Duration): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:624](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L624) - -Caps the delay to a maximum value. - -If the schedule returns a delay greater than `max`, returns `max` instead. - -### Example - -```ts -// Exponential capped at 10 seconds -const capped = maxDelay("10s")(exponential("1s")); -// 1s, 2s, 4s, 8s, 10s, 10s, 10s, ... -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `max` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/maxElapsed.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/maxElapsed.mdx deleted file mode 100644 index 1b82b9bc4..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/maxElapsed.mdx +++ /dev/null @@ -1,48 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / maxElapsed - -```ts -function maxElapsed(duration: Duration): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:594](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L594) - -Limits schedule execution to a maximum elapsed time. - -After `duration` has elapsed since the schedule started, returns -`Err(Done)`. - -### Example - -```ts -// Retry for at most 30 seconds -const timeLimited = maxElapsed("30s")(exponential("1s")); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `duration` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/modifyDelay.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/modifyDelay.mdx deleted file mode 100644 index 4477e1116..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/modifyDelay.mdx +++ /dev/null @@ -1,50 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / modifyDelay - -```ts -function modifyDelay(f: (delay: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">) => number): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:750](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L750) - -Transforms the delay of a schedule. - -More flexible than [maxDelay](/docs/api-reference/common/Schedule/functions/maxDelay.mdx) — can implement any delay transformation. - -### Example - -```ts -// Double all delays -const slower = modifyDelay((d) => d * 2)(exponential("100ms")); - -// Cap at 10s (equivalent to maxDelay) -const capped = modifyDelay((d) => Math.min(d, 10000))(exponential("1s")); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `f` | (`delay`: `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\>) => `number` | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/passthrough.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/passthrough.mdx deleted file mode 100644 index 34a87427b..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/passthrough.mdx +++ /dev/null @@ -1,67 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / passthrough - -## Call Signature - -```ts -function passthrough(): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1007](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1007) - -Creates a schedule that outputs its input, or wraps an existing schedule to -output input instead of the original output. - -When called with no arguments, creates a schedule that outputs its input -directly (the "identity" schedule). When called with a schedule, wraps it to -preserve timing behavior but replace output with input. - -### Example - -```ts -import { exponential, passthrough } from "@evolu/common"; - -interface MyError { - readonly message: string; -} - -// Constructor: output equals input -const identity = passthrough(); - -// Combinator: preserve timing, replace output -const withInput = passthrough(exponential("100ms")); -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`A`, `A`\> - -## Call Signature - -```ts -function passthrough(schedule: Schedule): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1009](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1009) - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Input`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/recurs.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/recurs.mdx deleted file mode 100644 index 2b3f7484a..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/recurs.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / recurs - -```ts -function recurs(n: number): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:184](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L184) - -A schedule that recurs a fixed number of times. - -Convenience for `take(n)(forever)`. Outputs the current repetition count (0, -1, 2, ..., n-1). - -### Example - -```ts -// Retry up to 3 times (4 total attempts including initial) -const retry = recurs(3); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `n` | `number` | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/repetitions.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/repetitions.mdx deleted file mode 100644 index b2b43c72a..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/repetitions.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / repetitions - -```ts -function repetitions(schedule: Schedule): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1095](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1095) - -Wraps a schedule to output the number of repetitions instead of original -output. - -Outputs 0, 1, 2, ... while preserving the underlying schedule's timing and -termination behavior. - -### Example - -```ts -// Track how many retries occurred -const counted = repetitions(exponential("100ms")); -// Outputs: 0, 1, 2, ... with exponential delays -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/resetScheduleAfter.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/resetScheduleAfter.mdx deleted file mode 100644 index 8d8fc0bce..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/resetScheduleAfter.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / resetScheduleAfter - -```ts -function resetScheduleAfter(duration: Duration): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:932](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L932) - -Resets the schedule after a period of inactivity. - -If `elapsedSincePrevious` is greater than or equal to `duration`, creates a -fresh state. Useful for circuit breakers that should "forget" failures after -idle time. - -### Example - -```ts -// Reset retry count after 1 minute of success -const circuitBreaker = resetScheduleAfter("1m")( - take(5)(exponential("1s")), -); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `duration` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/sequenceSchedules.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/sequenceSchedules.mdx deleted file mode 100644 index e6f2f0552..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/sequenceSchedules.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / sequenceSchedules - -```ts -function sequenceSchedules(...schedules: readonly Schedule[]): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1248](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1248) - -Sequences schedules: runs each until it stops, then continues with the next. - -Useful for adaptive strategies that start aggressive and become more -conservative over time. - -### Example - -```ts -// Fast retries first, then slower, then final fallback -const adaptive = sequenceSchedules( - take(3)(exponential("100ms")), - take(5)(fixed("500ms")), - fixed("1s"), -); -// Runs: 100ms, 200ms, 400ms, then 500ms×5, then 1s forever -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`schedules` | readonly [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\>[] | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/spaced.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/spaced.mdx deleted file mode 100644 index db83cba56..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/spaced.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / spaced - -```ts -function spaced(duration: Duration): Schedule & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">>; -``` - -Defined in: [packages/common/src/Schedule.ts:208](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L208) - -Constant delay schedule. - -Always waits the same duration after each execution completes. Never stops — -combine with [take](/docs/api-reference/common/Schedule/functions/take.mdx) or [maxElapsed](/docs/api-reference/common/Schedule/functions/maxElapsed.mdx) to limit. - -### Example - -```ts -// 1s, 1s, 1s, ... (polling) -const poll = spaced("1s"); - -// Retry 3 times with 500ms between each -const retry = take(3)(spaced("500ms")); - -// Heartbeat schedule -const heartbeat = spaced("30s"); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `duration` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/take.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/take.mdx deleted file mode 100644 index bf5143635..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/take.mdx +++ /dev/null @@ -1,48 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / take - -```ts -function take(n: number): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:567](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L567) - -Limits a schedule to a maximum number of attempts. - -After `n` attempts, returns `Err(Done)` (stop). - -### Example - -```ts -// Exponential backoff, max 3 retries -const limited = take(3)(exponential("100ms")); -// Attempt 1: 100ms, Attempt 2: 200ms, Attempt 3: 400ms, Attempt 4: Err(Done) -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `n` | `number` | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/tapScheduleInput.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/tapScheduleInput.mdx deleted file mode 100644 index b6acd38ef..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/tapScheduleInput.mdx +++ /dev/null @@ -1,65 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / tapScheduleInput - -```ts -function tapScheduleInput(f: (input: Input) => void): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1447](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1447) - -Executes a side effect for every input without altering the schedule. - -Useful for logging errors during retry or monitoring what values are being -processed. - -### Example - -```ts -interface MyError extends Typed {} - -const retrySchedule: Schedule = exponential("100ms"); - -// Log each error during retry -const logged = tapScheduleInput((error: MyError) => { - console.log(`Retrying after error: ${error.type}`); -})(retrySchedule); - -// Track retry reasons -const reasons: Array = []; -const tracked = tapScheduleInput((error: MyError) => { - reasons.push(error.type); -})(retrySchedule); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `f` | (`input`: `Input`) => `void` | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/tapScheduleOutput.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/tapScheduleOutput.mdx deleted file mode 100644 index 22e0d0eb7..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/tapScheduleOutput.mdx +++ /dev/null @@ -1,61 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / tapScheduleOutput - -```ts -function tapScheduleOutput(f: (output: Output) => void): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1407](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1407) - -Executes a side effect for every output without altering the schedule. - -Useful for logging, monitoring, or debugging without changing schedule -behavior. - -### Example - -```ts -// Log each delay for debugging -const logged = tapScheduleOutput((delay: Millis) => { - console.log(`Next delay: ${delay}ms`); -})(exponential("100ms")); - -// Track metrics -const recorded: Array = []; -const tracked = tapScheduleOutput((delay: Millis) => { - recorded.push(delay); -})(retryStrategyAws); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `f` | (`output`: `Output`) => `void` | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/unfoldSchedule.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/unfoldSchedule.mdx deleted file mode 100644 index a88d28077..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/unfoldSchedule.mdx +++ /dev/null @@ -1,55 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / unfoldSchedule - -```ts -function unfoldSchedule(initial: State, next: (state: State) => State): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:541](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L541) - -Creates a schedule by unfolding a state. - -Each step outputs the current state and computes the next state using the -provided function. Never stops — combine with [take](/docs/api-reference/common/Schedule/functions/take.mdx) or -[maxElapsed](/docs/api-reference/common/Schedule/functions/maxElapsed.mdx) to limit. - -### Example - -```ts -// Counter: 0, 1, 2, 3, ... -const counter = unfoldSchedule(0, (n) => n + 1); - -// Custom backoff: 100, 150, 225, 338, ... (×1.5 each time) -const customBackoff = unfoldSchedule(100, (delay) => - Math.round(delay * 1.5), -); - -// State machine -type Phase = "init" | "warmup" | "active"; -const phases = unfoldSchedule("init", (phase) => { - switch (phase) { - case "init": - return "warmup"; - case "warmup": - return "active"; - case "active": - return "active"; - } -}); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `State` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `initial` | `State` | -| `next` | (`state`: `State`) => `State` | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`State`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/unionSchedules.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/unionSchedules.mdx deleted file mode 100644 index 446f708aa..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/unionSchedules.mdx +++ /dev/null @@ -1,40 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / unionSchedules - -```ts -function unionSchedules(a: Schedule, b: Schedule): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1323](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1323) - -Combines two schedules with OR semantics. - -Continues while either schedule wants to continue. Uses the minimum delay. - -### Example - -```ts -// Retry up to 5 times OR up to 30 seconds, whichever is longer -const either = unionSchedules( - take(5)(exponential("1s")), - maxElapsed("30s")(forever), -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `OutputA` | -| `OutputB` | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`OutputA`, `Input`\> | -| `b` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`OutputB`, `Input`\> | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`OutputA` \| `OutputB`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/untilScheduleInput.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/untilScheduleInput.mdx deleted file mode 100644 index fd6676012..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/untilScheduleInput.mdx +++ /dev/null @@ -1,57 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / untilScheduleInput - -```ts -function untilScheduleInput(predicate: Predicate): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:846](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L846) - -Continues until the input satisfies a predicate. - -Stops (returns `Err(Done)`) when [Predicate](/docs/api-reference/common/Types/type-aliases/Predicate.mdx) returns `true`. -Useful for stopping retry on specific error conditions. - -### Example - -```ts -interface MyError extends Typed<"Transient" | "Fatal"> {} - -// Stop retrying on fatal errors -const stopOnFatal = untilScheduleInput( - (error: MyError) => error.type === "Fatal", -)(exponential("100ms")); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `predicate` | [`Predicate`](/docs/api-reference/common/Types/type-aliases/Predicate.mdx)\<`Input`\> | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/untilScheduleOutput.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/untilScheduleOutput.mdx deleted file mode 100644 index e39bb89bd..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/untilScheduleOutput.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / untilScheduleOutput - -```ts -function untilScheduleOutput(predicate: Predicate): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:902](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L902) - -Continues until the output satisfies a predicate. - -Stops (returns `Err(Done)`) when [Predicate](/docs/api-reference/common/Types/type-aliases/Predicate.mdx) returns `true`. - -### Example - -```ts -// Stop when delay reaches 1 second -const limited = untilScheduleOutput((delay: Millis) => delay >= 1000)( - exponential("100ms"), -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `predicate` | [`Predicate`](/docs/api-reference/common/Types/type-aliases/Predicate.mdx)\<`Output`\> | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/whenInput.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/whenInput.mdx deleted file mode 100644 index 7151012e9..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/whenInput.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / whenInput - -```ts -function whenInput(predicate: Predicate, altSchedule: Schedule): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1369](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1369) - -Selects between two schedules based on input. - -If [Predicate](/docs/api-reference/common/Types/type-aliases/Predicate.mdx) returns `true`, uses `altSchedule`; otherwise uses the -base schedule. Useful for implementing error-aware backoff where certain -errors (e.g., throttling) use different delays. - -### Example - -```ts -interface MyError extends Typed<"Throttled" | "NetworkError"> {} - -const awsWithThrottling = whenInput( - (error) => error.type === "Throttled", - exponential("1s"), // throttled: 1s base -)(exponential("100ms")); // normal: 100ms base -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Input` | -| `Output` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `predicate` | [`Predicate`](/docs/api-reference/common/Types/type-aliases/Predicate.mdx)\<`Input`\> | -| `altSchedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/whileScheduleInput.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/whileScheduleInput.mdx deleted file mode 100644 index 5d8efc641..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/whileScheduleInput.mdx +++ /dev/null @@ -1,58 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / whileScheduleInput - -```ts -function whileScheduleInput(predicate: Predicate): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:816](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L816) - -Continues while the input satisfies a predicate. - -Stops (returns `Err(Done)`) when [Predicate](/docs/api-reference/common/Types/type-aliases/Predicate.mdx) returns `false`. -Useful for input-aware retry strategies, e.g., only retry certain error -types. - -### Example - -```ts -interface MyError extends Typed<"Transient" | "Fatal"> {} - -// Only retry transient errors -const retryTransient = whileScheduleInput( - (error: MyError) => error.type === "Transient", -)(exponential("100ms")); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Input` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `predicate` | [`Predicate`](/docs/api-reference/common/Types/type-aliases/Predicate.mdx)\<`Input`\> | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Output` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/whileScheduleOutput.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/whileScheduleOutput.mdx deleted file mode 100644 index a3e374916..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/whileScheduleOutput.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / whileScheduleOutput - -```ts -function whileScheduleOutput(predicate: Predicate): (schedule: Schedule) => Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:873](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L873) - -Continues while the output satisfies a predicate. - -Stops (returns `Err(Done)`) when [Predicate](/docs/api-reference/common/Types/type-aliases/Predicate.mdx) returns `false`. - -### Example - -```ts -// Continue while delay is under 5 seconds -const capped = whileScheduleOutput((delay: Millis) => delay < 5000)( - exponential("1s"), -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `predicate` | [`Predicate`](/docs/api-reference/common/Types/type-aliases/Predicate.mdx)\<`Output`\> | - -## Returns - -```ts -(schedule: Schedule): Schedule; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Input` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> | - -### Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `Input`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/functions/windowed.mdx b/.generated/evolu-docs/api-reference/common/Schedule/functions/windowed.mdx deleted file mode 100644 index 6bd077c02..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/functions/windowed.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / windowed - -```ts -function windowed(interval: Duration): Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:382](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L382) - -Divides the timeline into fixed windows and sleeps until the next boundary. - -Similar to [fixed](/docs/api-reference/common/Schedule/functions/fixed.mdx), but always sleeps until the next window boundary -regardless of when the last execution started. Outputs the repetition count. - -Useful for aligning executions to regular intervals from the start time. - -### Example - -```ts -// Execute at regular 5-second boundaries from start -const aligned = windowed("5s"); -// If elapsed is 3s, waits 2s. If elapsed is 7s, waits 3s. -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `interval` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -[`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`number`\> diff --git a/.generated/evolu-docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx b/.generated/evolu-docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx deleted file mode 100644 index b4c27b925..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx +++ /dev/null @@ -1,61 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / ScheduleStep - -Defined in: [packages/common/src/Schedule.ts:76](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L76) - -Base interface for schedule-based task helpers. - -Used by [RetryAttempt](/docs/api-reference/common/Task/interfaces/RetryAttempt.mdx), [RepeatAttempt](/docs/api-reference/common/Task/interfaces/RepeatAttempt.mdx), and future schedule-driven -helpers. - -## Extended by - -- [`RetryAttempt`](/docs/api-reference/common/Task/interfaces/RetryAttempt.mdx) -- [`RepeatAttempt`](/docs/api-reference/common/Task/interfaces/RepeatAttempt.mdx) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | - -## Properties - - - -### attempt - -```ts -readonly attempt: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/Schedule.ts:78](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L78) - -The current attempt. - -*** - - - -### delay - -```ts -readonly delay: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Schedule.ts:84](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L84) - -Delay before this step executes. - -*** - - - -### output - -```ts -readonly output: Output; -``` - -Defined in: [packages/common/src/Schedule.ts:81](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L81) - -Output from the [Schedule](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx) step. diff --git a/.generated/evolu-docs/api-reference/common/Schedule/page.mdx b/.generated/evolu-docs/api-reference/common/Schedule/page.mdx deleted file mode 100644 index cccf8e0e7..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/page.mdx +++ /dev/null @@ -1,106 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Schedule - -Composable scheduling strategies. - -## Composition - -| Name | Description | -| ------ | ------ | -| [ScheduleStep](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx) | Base interface for schedule-based task helpers. | -| [intersectSchedules](/docs/api-reference/common/Schedule/functions/intersectSchedules.mdx) | Combines two schedules with AND semantics. | -| [sequenceSchedules](/docs/api-reference/common/Schedule/functions/sequenceSchedules.mdx) | Sequences schedules: runs each until it stops, then continues with the next. | -| [unionSchedules](/docs/api-reference/common/Schedule/functions/unionSchedules.mdx) | Combines two schedules with OR semantics. | -| [whenInput](/docs/api-reference/common/Schedule/functions/whenInput.mdx) | Selects between two schedules based on input. | - -## Constructors - -| Name | Description | -| ------ | ------ | -| [elapsed](/docs/api-reference/common/Schedule/variables/elapsed.mdx) | A schedule that outputs the total elapsed time since the schedule started. | -| [forever](/docs/api-reference/common/Schedule/variables/forever.mdx) | A schedule that never stops and has no delay. | -| [once](/docs/api-reference/common/Schedule/variables/once.mdx) | A schedule that runs exactly once with no delay. | -| [always](/docs/api-reference/common/Schedule/functions/always.mdx) | A schedule that always outputs a constant value. | -| [during](/docs/api-reference/common/Schedule/functions/during.mdx) | A schedule that runs for a specified duration then stops. | -| [exponential](/docs/api-reference/common/Schedule/functions/exponential.mdx) | Exponential backoff schedule. | -| [fibonacci](/docs/api-reference/common/Schedule/functions/fibonacci.mdx) | Fibonacci backoff schedule. | -| [fixed](/docs/api-reference/common/Schedule/functions/fixed.mdx) | Fixed interval schedule aligned to time windows. | -| [fromDelay](/docs/api-reference/common/Schedule/functions/fromDelay.mdx) | A schedule that runs once with a single delay. | -| [fromDelays](/docs/api-reference/common/Schedule/functions/fromDelays.mdx) | A schedule that runs through a sequence of delays. | -| [linear](/docs/api-reference/common/Schedule/functions/linear.mdx) | Linear backoff schedule. | -| [passthrough](/docs/api-reference/common/Schedule/functions/passthrough.mdx) | Creates a schedule that outputs its input, or wraps an existing schedule to output input instead of the original output. | -| [recurs](/docs/api-reference/common/Schedule/functions/recurs.mdx) | A schedule that recurs a fixed number of times. | -| [spaced](/docs/api-reference/common/Schedule/functions/spaced.mdx) | Constant delay schedule. | -| [unfoldSchedule](/docs/api-reference/common/Schedule/functions/unfoldSchedule.mdx) | Creates a schedule by unfolding a state. | -| [windowed](/docs/api-reference/common/Schedule/functions/windowed.mdx) | Divides the timeline into fixed windows and sleeps until the next boundary. | - -## Limiting - -| Function | Description | -| ------ | ------ | -| [maxDelay](/docs/api-reference/common/Schedule/functions/maxDelay.mdx) | Caps the delay to a maximum value. | -| [maxElapsed](/docs/api-reference/common/Schedule/functions/maxElapsed.mdx) | Limits schedule execution to a maximum elapsed time. | -| [take](/docs/api-reference/common/Schedule/functions/take.mdx) | Limits a schedule to a maximum number of attempts. | - -## Delay - -| Function | Description | -| ------ | ------ | -| [addDelay](/docs/api-reference/common/Schedule/functions/addDelay.mdx) | Adds a fixed delay to the schedule's existing delay. | -| [compensate](/docs/api-reference/common/Schedule/functions/compensate.mdx) | Adjusts delay by subtracting execution time. | -| [delayed](/docs/api-reference/common/Schedule/functions/delayed.mdx) | Adds an initial delay before the first attempt. | -| [jitter](/docs/api-reference/common/Schedule/functions/jitter.mdx) | Adds randomized jitter to delays. | -| [modifyDelay](/docs/api-reference/common/Schedule/functions/modifyDelay.mdx) | Transforms the delay of a schedule. | - -## Filtering - -| Function | Description | -| ------ | ------ | -| [untilScheduleInput](/docs/api-reference/common/Schedule/functions/untilScheduleInput.mdx) | Continues until the input satisfies a predicate. | -| [untilScheduleOutput](/docs/api-reference/common/Schedule/functions/untilScheduleOutput.mdx) | Continues until the output satisfies a predicate. | -| [whileScheduleInput](/docs/api-reference/common/Schedule/functions/whileScheduleInput.mdx) | Continues while the input satisfies a predicate. | -| [whileScheduleOutput](/docs/api-reference/common/Schedule/functions/whileScheduleOutput.mdx) | Continues while the output satisfies a predicate. | - -## State - -| Function | Description | -| ------ | ------ | -| [resetScheduleAfter](/docs/api-reference/common/Schedule/functions/resetScheduleAfter.mdx) | Resets the schedule after a period of inactivity. | - -## Transform - -| Function | Description | -| ------ | ------ | -| [delays](/docs/api-reference/common/Schedule/functions/delays.mdx) | Outputs the delay between recurrences. | -| [foldSchedule](/docs/api-reference/common/Schedule/functions/foldSchedule.mdx) | Folds over the outputs of a schedule, accumulating state. | -| [mapSchedule](/docs/api-reference/common/Schedule/functions/mapSchedule.mdx) | Transforms the output of a schedule. | -| [passthrough](/docs/api-reference/common/Schedule/functions/passthrough.mdx) | Creates a schedule that outputs its input, or wraps an existing schedule to output input instead of the original output. | -| [repetitions](/docs/api-reference/common/Schedule/functions/repetitions.mdx) | Wraps a schedule to output the number of repetitions instead of original output. | - -## Collection - -| Function | Description | -| ------ | ------ | -| [collectAllScheduleOutputs](/docs/api-reference/common/Schedule/functions/collectAllScheduleOutputs.mdx) | Collects all outputs into an array. | -| [collectScheduleInputs](/docs/api-reference/common/Schedule/functions/collectScheduleInputs.mdx) | Collects all inputs into an array. | -| [collectUntilScheduleOutput](/docs/api-reference/common/Schedule/functions/collectUntilScheduleOutput.mdx) | Collects outputs until a predicate becomes true. | -| [collectWhileScheduleOutput](/docs/api-reference/common/Schedule/functions/collectWhileScheduleOutput.mdx) | Collects outputs while a predicate is true. | - -## Side Effects - -| Function | Description | -| ------ | ------ | -| [tapScheduleInput](/docs/api-reference/common/Schedule/functions/tapScheduleInput.mdx) | Executes a side effect for every input without altering the schedule. | -| [tapScheduleOutput](/docs/api-reference/common/Schedule/functions/tapScheduleOutput.mdx) | Executes a side effect for every output without altering the schedule. | - -## Retry Strategies - -| Variable | Description | -| ------ | ------ | -| [retryStrategyAws](/docs/api-reference/common/Schedule/variables/retryStrategyAws.mdx) | AWS standard retry strategy. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [Schedule](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx) | Composable scheduling strategies for [retry](/docs/api-reference/common/Task/functions/retry.mdx), [repeat](/docs/api-reference/common/Task/functions/repeat.mdx), rate limiting, and more. | -| [ScheduleDeps](/docs/api-reference/common/Schedule/type-aliases/ScheduleDeps.mdx) | Dependencies provided to a [Schedule](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx). | diff --git a/.generated/evolu-docs/api-reference/common/Schedule/type-aliases/Schedule.mdx b/.generated/evolu-docs/api-reference/common/Schedule/type-aliases/Schedule.mdx deleted file mode 100644 index a889c67bd..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/type-aliases/Schedule.mdx +++ /dev/null @@ -1,71 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / Schedule - -```ts -type Schedule = (deps: ScheduleDeps) => (input: Input) => NextResult; -``` - -Defined in: [packages/common/src/Schedule.ts:57](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L57) - -Composable scheduling strategies for [retry](/docs/api-reference/common/Task/functions/retry.mdx), [repeat](/docs/api-reference/common/Task/functions/repeat.mdx), rate -limiting, and more. - -A Schedule uses the State pattern: calling `schedule(deps)` creates a step -function with internal state captured in closures. Each call to `step(input)` -advances that state and returns `Ok([Output, Millis])` or `Err(Done)` -to stop. Multiple calls to `schedule(deps)` create independent state -instances. - -### Example - -```ts -import { - exponential, - jitter, - maxDelay, - retry, - take, -} from "@evolu/common"; - -const fetchWithRetry = retry( - fetchData, - // A jittered, capped, limited exponential backoff. - jitter(1)(maxDelay("20s")(take(2)(exponential("100ms")))), -); -``` - -Or use a preset: - -```ts -import { retryStrategyAws, retry } from "@evolu/common"; - -const fetchWithRetry = retry(fetchData, retryStrategyAws); -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Output` | - | -| `Input` | `unknown` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`ScheduleDeps`](/docs/api-reference/common/Schedule/type-aliases/ScheduleDeps.mdx) | - -## Returns - -```ts -(input: Input): NextResult; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `input` | `Input` | - -### Returns - -[`NextResult`](/docs/api-reference/common/Result/type-aliases/NextResult.mdx)\ diff --git a/.generated/evolu-docs/api-reference/common/Schedule/type-aliases/ScheduleDeps.mdx b/.generated/evolu-docs/api-reference/common/Schedule/type-aliases/ScheduleDeps.mdx deleted file mode 100644 index 1fc152873..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/type-aliases/ScheduleDeps.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / ScheduleDeps - -```ts -type ScheduleDeps = TimeDep & RandomDep; -``` - -Defined in: [packages/common/src/Schedule.ts:66](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L66) - -Dependencies provided to a [Schedule](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx). - -The executor provides these once, and the schedule uses what it needs. diff --git a/.generated/evolu-docs/api-reference/common/Schedule/variables/elapsed.mdx b/.generated/evolu-docs/api-reference/common/Schedule/variables/elapsed.mdx deleted file mode 100644 index 6a00bbfac..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/variables/elapsed.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / elapsed - -```ts -const elapsed: Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:452](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L452) - -A schedule that outputs the total elapsed time since the schedule started. - -Never stops — combine with [take](/docs/api-reference/common/Schedule/functions/take.mdx) or [maxElapsed](/docs/api-reference/common/Schedule/functions/maxElapsed.mdx) to limit. Useful -for tracking how long a retry sequence has been running. - -### Example - -```ts -// Track elapsed time alongside retries -const withTiming = intersectSchedules(exponential("100ms"), elapsed); -// Outputs: [[100, 0], [200, ~100], [400, ~300], ...] - -// Stop after 30 seconds of elapsed time -const timeLimited = whileScheduleOutput((ms: Millis) => ms < 30000)( - elapsed, -); -``` diff --git a/.generated/evolu-docs/api-reference/common/Schedule/variables/forever.mdx b/.generated/evolu-docs/api-reference/common/Schedule/variables/forever.mdx deleted file mode 100644 index 17457a5e3..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/variables/forever.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / forever - -```ts -const forever: Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:141](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L141) - -A schedule that never stops and has no delay. - -Outputs the attempt count (0, 1, 2, ...). Useful as a base for composition or -for immediate retry without backoff. - -### Example - -```ts -// Retry immediately, up to 5 times -const immediate = take(5)(forever); -``` diff --git a/.generated/evolu-docs/api-reference/common/Schedule/variables/once.mdx b/.generated/evolu-docs/api-reference/common/Schedule/variables/once.mdx deleted file mode 100644 index 575349de9..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/variables/once.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / once - -```ts -const once: Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:160](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L160) - -A schedule that runs exactly once with no delay. - -Convenience for `take(1)(forever)`. Useful for one-shot operations. - -### Example - -```ts -// Execute once, no retry -const oneShot = once; -``` diff --git a/.generated/evolu-docs/api-reference/common/Schedule/variables/retryStrategyAws.mdx b/.generated/evolu-docs/api-reference/common/Schedule/variables/retryStrategyAws.mdx deleted file mode 100644 index 4cccd0e59..000000000 --- a/.generated/evolu-docs/api-reference/common/Schedule/variables/retryStrategyAws.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Schedule](/docs/api-reference/common/Schedule/page.mdx) / retryStrategyAws - -```ts -const retryStrategyAws: Schedule; -``` - -Defined in: [packages/common/src/Schedule.ts:1467](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L1467) - -AWS standard retry strategy. - -Exponential backoff (100ms base), max 2 retries (3 total attempts), 20s cap, -full jitter. - -## See - - - https://github.com/aws/aws-sdk-java-v2/blob/master/core/retries/src/main/java/software/amazon/awssdk/retries/StandardRetryStrategy.java - - https://github.com/aws/aws-sdk-java-v2/blob/master/core/retries/src/main/java/software/amazon/awssdk/retries/DefaultRetryStrategy.java diff --git a/.generated/evolu-docs/api-reference/common/Set/functions/addToSet.mdx b/.generated/evolu-docs/api-reference/common/Set/functions/addToSet.mdx deleted file mode 100644 index ccc10a4a3..000000000 --- a/.generated/evolu-docs/api-reference/common/Set/functions/addToSet.mdx +++ /dev/null @@ -1,36 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Set](/docs/api-reference/common/Set/page.mdx) / addToSet - -```ts -function addToSet(set: ReadonlySet, item: T): NonEmptyReadonlySet; -``` - -Defined in: [packages/common/src/Set.ts:103](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Set.ts#L103) - -Returns a new readonly set with an item added. - -If the item already exists, returns a new set with the same elements (still a -new reference for change detection). - -### Example - -```ts -addToSet(new Set([1, 2]), 3); // Set {1, 2, 3} -addToSet(new Set([1, 2]), 2); // Set {1, 2} (new reference) -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `set` | `ReadonlySet`\<`T`\> | -| `item` | `T` | - -## Returns - -[`NonEmptyReadonlySet`](/docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Set/functions/deleteFromSet.mdx b/.generated/evolu-docs/api-reference/common/Set/functions/deleteFromSet.mdx deleted file mode 100644 index 3de11cf3a..000000000 --- a/.generated/evolu-docs/api-reference/common/Set/functions/deleteFromSet.mdx +++ /dev/null @@ -1,36 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Set](/docs/api-reference/common/Set/page.mdx) / deleteFromSet - -```ts -function deleteFromSet(set: ReadonlySet, item: T): ReadonlySet; -``` - -Defined in: [packages/common/src/Set.ts:127](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Set.ts#L127) - -Returns a new readonly set with an item removed. - -If the item doesn't exist, returns a new set with the same elements (still a -new reference for change detection). - -### Example - -```ts -deleteFromSet(new Set([1, 2, 3]), 2); // Set {1, 3} -deleteFromSet(new Set([1, 2]), 5); // Set {1, 2} (new reference) -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `set` | `ReadonlySet`\<`T`\> | -| `item` | `T` | - -## Returns - -`ReadonlySet`\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Set/functions/filterSet.mdx b/.generated/evolu-docs/api-reference/common/Set/functions/filterSet.mdx deleted file mode 100644 index c00d2903f..000000000 --- a/.generated/evolu-docs/api-reference/common/Set/functions/filterSet.mdx +++ /dev/null @@ -1,66 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Set](/docs/api-reference/common/Set/page.mdx) / filterSet - -## Call Signature - -```ts -function filterSet(set: ReadonlySet, refinement: RefinementWithIndex): ReadonlySet; -``` - -Defined in: [packages/common/src/Set.ts:188](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Set.ts#L188) - -Filters a set using a predicate or refinement function, returning a new -readonly set. - -When used with a refinement function (with `value is Type` syntax), -TypeScript will narrow the result type. - -### Example - -```ts -filterSet(new Set([1, 2, 3, 4, 5]), (x) => x % 2 === 0); // Set {2, 4} -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `S` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `set` | `ReadonlySet`\<`T`\> | -| `refinement` | [`RefinementWithIndex`](/docs/api-reference/common/Types/type-aliases/RefinementWithIndex.mdx)\<`T`, `S`\> | - -### Returns - -`ReadonlySet`\<`S`\> - -## Call Signature - -```ts -function filterSet(set: ReadonlySet, predicate: PredicateWithIndex): ReadonlySet; -``` - -Defined in: [packages/common/src/Set.ts:193](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Set.ts#L193) - -With predicate. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `set` | `ReadonlySet`\<`T`\> | -| `predicate` | [`PredicateWithIndex`](/docs/api-reference/common/Types/type-aliases/PredicateWithIndex.mdx)\<`T`\> | - -### Returns - -`ReadonlySet`\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Set/functions/firstInSet.mdx b/.generated/evolu-docs/api-reference/common/Set/functions/firstInSet.mdx deleted file mode 100644 index e84108189..000000000 --- a/.generated/evolu-docs/api-reference/common/Set/functions/firstInSet.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Set](/docs/api-reference/common/Set/page.mdx) / firstInSet - -```ts -function firstInSet(set: NonEmptyReadonlySet): T; -``` - -Defined in: [packages/common/src/Set.ts:222](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Set.ts#L222) - -Returns the first element of a non-empty set (by insertion order). - -### Example - -```ts -firstInSet(new Set(["a", "b", "c"])); // "a" -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `set` | [`NonEmptyReadonlySet`](/docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx)\<`T`\> | - -## Returns - -`T` diff --git a/.generated/evolu-docs/api-reference/common/Set/functions/isNonEmptySet.mdx b/.generated/evolu-docs/api-reference/common/Set/functions/isNonEmptySet.mdx deleted file mode 100644 index 1f26ff0d5..000000000 --- a/.generated/evolu-docs/api-reference/common/Set/functions/isNonEmptySet.mdx +++ /dev/null @@ -1,43 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Set](/docs/api-reference/common/Set/page.mdx) / isNonEmptySet - -```ts -function isNonEmptySet(set: ReadonlySet): set is NonEmptyReadonlySet; -``` - -Defined in: [packages/common/src/Set.ts:84](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Set.ts#L84) - -Checks if a set is non-empty and narrows its type to -[NonEmptyReadonlySet](/docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx). - -Both mutable and readonly sets narrow to the branded -[NonEmptyReadonlySet](/docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx) type, which can be used with functions like -[firstInSet](/docs/api-reference/common/Set/functions/firstInSet.mdx). - -To check if a set is empty, use `if (!isNonEmptySet(set))` — using the -negated guard is better than `.size === 0` for early returns because -TypeScript narrows the type after the check. - -### Example - -```ts -const set: ReadonlySet = new Set([1, 2, 3]); -if (isNonEmptySet(set)) { - firstInSet(set); // set is NonEmptyReadonlySet -} -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `set` | `ReadonlySet`\<`T`\> | - -## Returns - -`set is NonEmptyReadonlySet` diff --git a/.generated/evolu-docs/api-reference/common/Set/functions/mapSet.mdx b/.generated/evolu-docs/api-reference/common/Set/functions/mapSet.mdx deleted file mode 100644 index 65389f0b8..000000000 --- a/.generated/evolu-docs/api-reference/common/Set/functions/mapSet.mdx +++ /dev/null @@ -1,69 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Set](/docs/api-reference/common/Set/page.mdx) / mapSet - -## Call Signature - -```ts -function mapSet(set: NonEmptyReadonlySet, mapper: (item: T) => U): NonEmptyReadonlySet; -``` - -Defined in: [packages/common/src/Set.ts:153](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Set.ts#L153) - -Maps a set using a mapper function, returning a new readonly set. - -Preserves non-empty type. - -Note: If the mapper produces duplicate values, the resulting set will have -fewer elements. - -### Example - -```ts -mapSet(new Set([1, 2, 3]), (x) => x * 2); // Set {2, 4, 6} -mapSet(new Set([1, 2, 3]), (x) => x % 2); // Set {1, 0} (duplicates merged) -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `U` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `set` | [`NonEmptyReadonlySet`](/docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx)\<`T`\> | -| `mapper` | (`item`: `T`) => `U` | - -### Returns - -[`NonEmptyReadonlySet`](/docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx)\<`U`\> - -## Call Signature - -```ts -function mapSet(set: ReadonlySet, mapper: (item: T) => U): ReadonlySet; -``` - -Defined in: [packages/common/src/Set.ts:158](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Set.ts#L158) - -Possibly empty set. - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `U` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `set` | `ReadonlySet`\<`T`\> | -| `mapper` | (`item`: `T`) => `U` | - -### Returns - -`ReadonlySet`\<`U`\> diff --git a/.generated/evolu-docs/api-reference/common/Set/page.mdx b/.generated/evolu-docs/api-reference/common/Set/page.mdx deleted file mode 100644 index 73797d2f2..000000000 --- a/.generated/evolu-docs/api-reference/common/Set/page.mdx +++ /dev/null @@ -1,64 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Set - -Set helpers. - -All helpers return readonly sets for safety. Native Set methods like `add()` -and `delete()` mutate the original — use [addToSet](/docs/api-reference/common/Set/functions/addToSet.mdx) and -[deleteFromSet](/docs/api-reference/common/Set/functions/deleteFromSet.mdx) instead for immutable operations that return new sets. - -Use [isNonEmptySet](/docs/api-reference/common/Set/functions/isNonEmptySet.mdx) to narrow to [NonEmptyReadonlySet](/docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx) before -calling functions like [firstInSet](/docs/api-reference/common/Set/functions/firstInSet.mdx) that require a non-empty set. - -### Example - -```ts -// Type guards -const set: ReadonlySet = new Set([1, 2, 3]); -if (isNonEmptySet(set)) { - firstInSet(set); -} - -// Immutable transformations -const added = addToSet(new Set([1, 2]), 3); // Set {1, 2, 3} -const removed = deleteFromSet(new Set([1, 2, 3]), 2); // Set {1, 3} -const mapped = mapSet(new Set([1, 2, 3]), (x) => x * 2); // Set {2, 4, 6} -const filtered = filterSet(new Set([1, 2, 3, 4]), (x) => x % 2 === 0); // Set {2, 4} - -// Set operations -const union = unionSets(new Set([1, 2]), new Set([2, 3])); // Set {1, 2, 3} -const intersection = intersectSets(new Set([1, 2]), new Set([2, 3])); // Set {2} -const difference = differenceSets(new Set([1, 2, 3]), new Set([2])); // Set {1, 3} -``` - -## Types - -| Type Alias | Description | -| ------ | ------ | -| [NonEmptyReadonlySet](/docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx) | A readonly set with at least one element (branded for type safety). | - -## Constants - -| Variable | Description | -| ------ | ------ | -| [emptySet](/docs/api-reference/common/Set/variables/emptySet.mdx) | An empty readonly set. | - -## Type Guards - -| Function | Description | -| ------ | ------ | -| [isNonEmptySet](/docs/api-reference/common/Set/functions/isNonEmptySet.mdx) | Checks if a set is non-empty and narrows its type to [NonEmptyReadonlySet](/docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx). | - -## Transformations - -| Function | Description | -| ------ | ------ | -| [addToSet](/docs/api-reference/common/Set/functions/addToSet.mdx) | Returns a new readonly set with an item added. | -| [deleteFromSet](/docs/api-reference/common/Set/functions/deleteFromSet.mdx) | Returns a new readonly set with an item removed. | -| [filterSet](/docs/api-reference/common/Set/functions/filterSet.mdx) | Filters a set using a predicate or refinement function, returning a new readonly set. | -| [mapSet](/docs/api-reference/common/Set/functions/mapSet.mdx) | Maps a set using a mapper function, returning a new readonly set. | - -## Accessors - -| Function | Description | -| ------ | ------ | -| [firstInSet](/docs/api-reference/common/Set/functions/firstInSet.mdx) | Returns the first element of a non-empty set (by insertion order). | diff --git a/.generated/evolu-docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx b/.generated/evolu-docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx deleted file mode 100644 index c7af8a08e..000000000 --- a/.generated/evolu-docs/api-reference/common/Set/type-aliases/NonEmptyReadonlySet.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Set](/docs/api-reference/common/Set/page.mdx) / NonEmptyReadonlySet - -```ts -type NonEmptyReadonlySet = ReadonlySet & Brand<"NonEmpty">; -``` - -Defined in: [packages/common/src/Set.ts:59](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Set.ts#L59) - -A readonly set with at least one element (branded for type safety). - -Use [isNonEmptySet](/docs/api-reference/common/Set/functions/isNonEmptySet.mdx) to narrow from `ReadonlySet`, or use functions like -[addToSet](/docs/api-reference/common/Set/functions/addToSet.mdx) that return branded non-empty sets. - -There is no mutable `NonEmptySet` type because mutable sets can be emptied -after narrowing (via `clear()` or `delete()`), making compile-time guarantees -impossible. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | diff --git a/.generated/evolu-docs/api-reference/common/Set/variables/emptySet.mdx b/.generated/evolu-docs/api-reference/common/Set/variables/emptySet.mdx deleted file mode 100644 index f9da3aadb..000000000 --- a/.generated/evolu-docs/api-reference/common/Set/variables/emptySet.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Set](/docs/api-reference/common/Set/page.mdx) / emptySet - -```ts -const emptySet: ReadonlySet; -``` - -Defined in: [packages/common/src/Set.ts:45](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Set.ts#L45) - -An empty readonly set. - -Use as a default or initial value to avoid allocating new empty sets. diff --git a/.generated/evolu-docs/api-reference/common/Skiplist/functions/createSkiplist.mdx b/.generated/evolu-docs/api-reference/common/Skiplist/functions/createSkiplist.mdx deleted file mode 100644 index 8e395c9a8..000000000 --- a/.generated/evolu-docs/api-reference/common/Skiplist/functions/createSkiplist.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Skiplist](/docs/api-reference/common/Skiplist/page.mdx) / createSkiplist - -```ts -function createSkiplist(deps: SkiplistLevelDep): Skiplist; -``` - -Defined in: [packages/common/src/Skiplist.ts:49](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L49) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SkiplistLevelDep`](/docs/api-reference/common/Skiplist/interfaces/SkiplistLevelDep.mdx) | - -## Returns - -[`Skiplist`](/docs/api-reference/common/Skiplist/interfaces/Skiplist.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Skiplist/functions/createSkiplistLevel.mdx b/.generated/evolu-docs/api-reference/common/Skiplist/functions/createSkiplistLevel.mdx deleted file mode 100644 index b59103e5f..000000000 --- a/.generated/evolu-docs/api-reference/common/Skiplist/functions/createSkiplistLevel.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Skiplist](/docs/api-reference/common/Skiplist/page.mdx) / createSkiplistLevel - -```ts -function createSkiplistLevel(deps: RandomDep): (config: SkiplistLevelConfig) => SkiplistLevel; -``` - -Defined in: [packages/common/src/Skiplist.ts:25](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L25) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomDep`](/docs/api-reference/common/Random/interfaces/RandomDep.mdx) | - -## Returns - -```ts -(config?: SkiplistLevelConfig): SkiplistLevel; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | [`SkiplistLevelConfig`](/docs/api-reference/common/Skiplist/interfaces/SkiplistLevelConfig.mdx) | - -### Returns - -[`SkiplistLevel`](/docs/api-reference/common/Skiplist/interfaces/SkiplistLevel.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/Skiplist.mdx b/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/Skiplist.mdx deleted file mode 100644 index d5fe51837..000000000 --- a/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/Skiplist.mdx +++ /dev/null @@ -1,50 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Skiplist](/docs/api-reference/common/Skiplist/page.mdx) / Skiplist - -Defined in: [packages/common/src/Skiplist.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L39) - -## Properties - - - -### find() - -```ts -readonly find: (key: number) => - | SkiplistNode - | null; -``` - -Defined in: [packages/common/src/Skiplist.ts:41](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L41) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `number` | - -#### Returns - - \| [`SkiplistNode`](/docs/api-reference/common/Skiplist/interfaces/SkiplistNode.mdx) - \| `null` - -*** - - - -### insert() - -```ts -readonly insert: (key: number) => void; -``` - -Defined in: [packages/common/src/Skiplist.ts:40](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L40) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `number` | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistLevel.mdx b/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistLevel.mdx deleted file mode 100644 index 39e529296..000000000 --- a/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistLevel.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Skiplist](/docs/api-reference/common/Skiplist/page.mdx) / SkiplistLevel - -Defined in: [packages/common/src/Skiplist.ts:10](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L10) - -## Properties - - - -### create() - -```ts -readonly create: () => number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/Skiplist.ts:11](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L11) - -#### Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> diff --git a/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistLevelConfig.mdx b/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistLevelConfig.mdx deleted file mode 100644 index e5da1dc46..000000000 --- a/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistLevelConfig.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Skiplist](/docs/api-reference/common/Skiplist/page.mdx) / SkiplistLevelConfig - -Defined in: [packages/common/src/Skiplist.ts:18](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L18) - -## Properties - - - -### maxLevel? - -```ts -readonly optional maxLevel: number; -``` - -Defined in: [packages/common/src/Skiplist.ts:20](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L20) - -*** - - - -### probability? - -```ts -readonly optional probability: number; -``` - -Defined in: [packages/common/src/Skiplist.ts:19](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L19) diff --git a/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistLevelDep.mdx b/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistLevelDep.mdx deleted file mode 100644 index fce86b1ec..000000000 --- a/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistLevelDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Skiplist](/docs/api-reference/common/Skiplist/page.mdx) / SkiplistLevelDep - -Defined in: [packages/common/src/Skiplist.ts:14](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L14) - -## Properties - - - -### skiplistLevel - -```ts -readonly skiplistLevel: SkiplistLevel; -``` - -Defined in: [packages/common/src/Skiplist.ts:15](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L15) diff --git a/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistNode.mdx b/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistNode.mdx deleted file mode 100644 index a24274594..000000000 --- a/.generated/evolu-docs/api-reference/common/Skiplist/interfaces/SkiplistNode.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Skiplist](/docs/api-reference/common/Skiplist/page.mdx) / SkiplistNode - -Defined in: [packages/common/src/Skiplist.ts:44](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L44) - -## Properties - - - -### key - -```ts -readonly key: number; -``` - -Defined in: [packages/common/src/Skiplist.ts:45](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L45) - -*** - - - -### pointers - -```ts -readonly pointers: SkiplistNode[]; -``` - -Defined in: [packages/common/src/Skiplist.ts:46](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Skiplist.ts#L46) diff --git a/.generated/evolu-docs/api-reference/common/Skiplist/page.mdx b/.generated/evolu-docs/api-reference/common/Skiplist/page.mdx deleted file mode 100644 index f9ac125c0..000000000 --- a/.generated/evolu-docs/api-reference/common/Skiplist/page.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Skiplist - -Skiplist data structure with probabilistic level generation. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createSkiplist](/docs/api-reference/common/Skiplist/functions/createSkiplist.mdx) | - | -| [createSkiplistLevel](/docs/api-reference/common/Skiplist/functions/createSkiplistLevel.mdx) | - | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Skiplist](/docs/api-reference/common/Skiplist/interfaces/Skiplist.mdx) | - | -| [SkiplistLevel](/docs/api-reference/common/Skiplist/interfaces/SkiplistLevel.mdx) | - | -| [SkiplistLevelConfig](/docs/api-reference/common/Skiplist/interfaces/SkiplistLevelConfig.mdx) | - | -| [SkiplistLevelDep](/docs/api-reference/common/Skiplist/interfaces/SkiplistLevelDep.mdx) | - | -| [SkiplistNode](/docs/api-reference/common/Skiplist/interfaces/SkiplistNode.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/functions/booleanToSqliteBoolean.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/functions/booleanToSqliteBoolean.mdx deleted file mode 100644 index 5d57c60a0..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/functions/booleanToSqliteBoolean.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / booleanToSqliteBoolean - -```ts -function booleanToSqliteBoolean(value: boolean): 0 | 1; -``` - -Defined in: [packages/common/src/Sqlite.ts:489](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L489) - -Converts a JavaScript boolean to a [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx). - -### Example - -```ts -const isActive = true; -const sqlValue = booleanToSqliteBoolean(isActive); // Returns 1 -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `boolean` | - -## Returns - -`0` \| `1` diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/functions/createPreparedStatementsCache.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/functions/createPreparedStatementsCache.mdx deleted file mode 100644 index 014821f76..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/functions/createPreparedStatementsCache.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / createPreparedStatementsCache - -```ts -function createPreparedStatementsCache

(factory: (sql: SafeSql) => P, disposeFn: (statement: P) => void): PreparedStatements

; -``` - -Defined in: [packages/common/src/Sqlite.ts:321](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L321) - -Creates a [PreparedStatements](/docs/api-reference/common/Sqlite/interfaces/PreparedStatements.mdx) cache backed by the given factory and -dispose function. - -## Type Parameters - -| Type Parameter | -| ------ | -| `P` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `factory` | (`sql`: [`SafeSql`](/docs/api-reference/common/Sqlite/type-aliases/SafeSql.mdx)) => `P` | -| `disposeFn` | (`statement`: `P`) => `void` | - -## Returns - -[`PreparedStatements`](/docs/api-reference/common/Sqlite/interfaces/PreparedStatements.mdx)\<`P`\> diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/functions/createSqlite.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/functions/createSqlite.mdx deleted file mode 100644 index 6d0c241d6..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/functions/createSqlite.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / createSqlite - -```ts -function createSqlite(name: string & Brand<"UrlSafeString"> & Brand<"SimpleName">, options?: SqliteDriverOptions): Task; -``` - -Defined in: [packages/common/src/Sqlite.ts:158](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L158) - -Creates a [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx) instance backed by a platform-specific driver. - -The driver is created via [CreateSqliteDriver](/docs/api-reference/common/Sqlite/type-aliases/CreateSqliteDriver.mdx) and wrapped with logging, -error handling, and transaction helpers. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"UrlSafeString"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"SimpleName"`\> | -| `options?` | [`SqliteDriverOptions`](/docs/api-reference/common/Sqlite/type-aliases/SqliteDriverOptions.mdx) | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<[`Sqlite`](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx), [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx), [`CreateSqliteDriverDep`](/docs/api-reference/common/Sqlite/interfaces/CreateSqliteDriverDep.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/functions/sql.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/functions/sql.mdx deleted file mode 100644 index f1956c431..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/functions/sql.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / sql - -```ts -function sql(strings: TemplateStringsArray, ...parameters: SqlTemplateParam[]): SqliteQuery; -``` - -Defined in: [packages/common/src/Sqlite.ts:403](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L403) - -Creates a safe SQL query using a tagged template literal. - -Parameters are automatically escaped and bound as SQLite values. Use -`sql.identifier` for column/table names and `sql.raw` for unescaped SQL. - -### Example - -```ts -const id = 42; -const name = "Alice"; - -const result = sqlite.exec(sql` - select * - from users - where id = ${id} and name = ${name}; -`); - -// For identifiers -const tableName = "users"; -sqlite.exec(sql` - create table ${sql.identifier(tableName)} ( - "id" text primary key, - "name" text not null - ); -`); - -// For raw SQL (use with caution) -const orderBy = "created_at desc"; -sqlite.exec(sql`select * from users order by ${sql.raw(orderBy)};`); -``` - -## TIP - -Use a dedicated SQL formatter for long queries to keep statements readable -and consistent. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `strings` | `TemplateStringsArray` | -| ...`parameters` | [`SqlTemplateParam`](/docs/api-reference/common/Sqlite/type-aliases/SqlTemplateParam.mdx)[] | - -## Returns - -[`SqliteQuery`](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/functions/sqliteBooleanToBoolean.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/functions/sqliteBooleanToBoolean.mdx deleted file mode 100644 index 630772302..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/functions/sqliteBooleanToBoolean.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / sqliteBooleanToBoolean - -```ts -function sqliteBooleanToBoolean(value: 0 | 1): boolean; -``` - -Defined in: [packages/common/src/Sqlite.ts:502](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L502) - -Converts a [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx) to a JavaScript boolean. - -### Example - -```ts -const sqlValue: SqliteBoolean = 1; -const bool = sqliteBooleanToBoolean(sqlValue); // Returns true -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `0` \| `1` | - -## Returns - -`boolean` diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/CreateSqliteDriverDep.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/CreateSqliteDriverDep.mdx deleted file mode 100644 index 2b76ef55d..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/CreateSqliteDriverDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / CreateSqliteDriverDep - -Defined in: [packages/common/src/Sqlite.ts:137](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L137) - -## Properties - - - -### createSqliteDriver - -```ts -createSqliteDriver: CreateSqliteDriver; -``` - -Defined in: [packages/common/src/Sqlite.ts:138](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L138) diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/PreparedStatements.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/PreparedStatements.mdx deleted file mode 100644 index d8c19c9de..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/PreparedStatements.mdx +++ /dev/null @@ -1,89 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / PreparedStatements - -Defined in: [packages/common/src/Sqlite.ts:310](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L310) - -Cache for compiled prepared statements. - -Statements are created on first access and reused for subsequent calls with -the same SQL. Disposing the cache finalizes all cached statements. - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | -| ------ | -| `P` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### get() - -```ts -readonly get: (query: SqliteQuery, alwaysPrepare?: T) => T extends true ? P : P | null; -``` - -Defined in: [packages/common/src/Sqlite.ts:311](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L311) - -#### Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* `boolean` | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`SqliteQuery`](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) | -| `alwaysPrepare?` | `T` | - -#### Returns - -`T` *extends* `true` ? `P` : `P` \| `null` diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/RawSql.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/RawSql.mdx deleted file mode 100644 index 0def7a697..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/RawSql.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / RawSql - -Defined in: [packages/common/src/Sqlite.ts:359](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L359) - -An unescaped SQL fragment inserted verbatim into a query. - -**Warning**: Use only with trusted, constant strings to avoid SQL injection. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"RawSql"`\> - -## Properties - - - -### sql - -```ts -readonly sql: string; -``` - -Defined in: [packages/common/src/Sqlite.ts:360](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L360) - -*** - - - -### type - -```ts -readonly type: "RawSql"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqlIdentifier.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqlIdentifier.mdx deleted file mode 100644 index be5bab978..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqlIdentifier.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqlIdentifier - -Defined in: [packages/common/src/Sqlite.ts:350](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L350) - -A double-quoted SQL identifier for safe column or table name interpolation. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"SqlIdentifier"`\> - -## Properties - - - -### sql - -```ts -readonly sql: SafeSql; -``` - -Defined in: [packages/common/src/Sqlite.ts:351](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L351) - -*** - - - -### type - -```ts -readonly type: "SqlIdentifier"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx deleted file mode 100644 index 1eb701b01..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx +++ /dev/null @@ -1,139 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / Sqlite - -Defined in: [packages/common/src/Sqlite.ts:26](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L26) - -Platform-agnostic SQLite wrapping a [SqliteDriver](/docs/api-reference/common/Sqlite/interfaces/SqliteDriver.mdx). - -API is synchronous because it provides -[better concurrency](https://github.com/WiseLibs/better-sqlite3/issues/262) -for SQLite. - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### exec() - -```ts -readonly exec: (query: SqliteQuery) => Result, SqliteError>; -``` - -Defined in: [packages/common/src/Sqlite.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L27) - -#### Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `R` *extends* [`SqliteRow`](/docs/api-reference/common/Sqlite/type-aliases/SqliteRow.mdx) | [`SqliteRow`](/docs/api-reference/common/Sqlite/type-aliases/SqliteRow.mdx) | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`SqliteQuery`](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`SqliteExecResult`](/docs/api-reference/common/Sqlite/interfaces/SqliteExecResult.mdx)\<`R`\>, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> - -*** - - - -### export() - -```ts -readonly export: () => Result, SqliteError>; -``` - -Defined in: [packages/common/src/Sqlite.ts:41](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L41) - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Uint8Array`\<`ArrayBufferLike`\>, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> - -*** - - - -### transaction() - -```ts -readonly transaction: (callback: () => Result) => Result; -``` - -Defined in: [packages/common/src/Sqlite.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L37) - -Executes a transaction, running the provided callback within a begin/commit -block. If the callback returns an error, the transaction is rolled back. If -the rollback fails, a [SqliteError](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx) is returned with both the original -error and rollbackError. - -#### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `callback` | () => [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, \| [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx) \| `E`\> | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, - \| [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx) - \| `E`\> diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx deleted file mode 100644 index 4f3050a85..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteDep - -Defined in: [packages/common/src/Sqlite.ts:44](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L44) - -## Properties - - - -### sqlite - -```ts -readonly sqlite: Sqlite; -``` - -Defined in: [packages/common/src/Sqlite.ts:45](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L45) diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteDriver.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteDriver.mdx deleted file mode 100644 index a2b4e4c14..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteDriver.mdx +++ /dev/null @@ -1,91 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteDriver - -Defined in: [packages/common/src/Sqlite.ts:126](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L126) - -SQLite driver interface. - -Platform-specific drivers must implement this interface. - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### exec() - -```ts -readonly exec: (query: SqliteQuery) => SqliteExecResult; -``` - -Defined in: [packages/common/src/Sqlite.ts:127](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L127) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`SqliteQuery`](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) | - -#### Returns - -[`SqliteExecResult`](/docs/api-reference/common/Sqlite/interfaces/SqliteExecResult.mdx) - -*** - - - -### export() - -```ts -readonly export: () => Uint8Array; -``` - -Defined in: [packages/common/src/Sqlite.ts:128](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L128) - -#### Returns - -`Uint8Array` diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx deleted file mode 100644 index 34e52909f..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteError - -Defined in: [packages/common/src/Sqlite.ts:110](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L110) - -Represents an error that occurred during a SQLite operation. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"SqliteError"`\> - -## Properties - - - -### error - -```ts -readonly error: UnknownError; -``` - -Defined in: [packages/common/src/Sqlite.ts:111](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L111) - -*** - - - -### rollbackError? - -```ts -readonly optional rollbackError: UnknownError; -``` - -Defined in: [packages/common/src/Sqlite.ts:112](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L112) - -*** - - - -### type - -```ts -readonly type: "SqliteError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteExecResult.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteExecResult.mdx deleted file mode 100644 index e067c49ab..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteExecResult.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteExecResult - -Defined in: [packages/common/src/Sqlite.ts:104](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L104) - -Result of executing a SQLite query. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `R` *extends* [`SqliteRow`](/docs/api-reference/common/Sqlite/type-aliases/SqliteRow.mdx) | [`SqliteRow`](/docs/api-reference/common/Sqlite/type-aliases/SqliteRow.mdx) | - -## Properties - - - -### changes - -```ts -readonly changes: number; -``` - -Defined in: [packages/common/src/Sqlite.ts:106](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L106) - -*** - - - -### rows - -```ts -readonly rows: readonly R[]; -``` - -Defined in: [packages/common/src/Sqlite.ts:105](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L105) diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx deleted file mode 100644 index 11f22a3b8..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteQuery - -Defined in: [packages/common/src/Sqlite.ts:49](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L49) - -Represents a SQL query to be executed on a [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx) database. - -## Properties - - - -### options? - -```ts -readonly optional options: SqliteQueryOptions; -``` - -Defined in: [packages/common/src/Sqlite.ts:52](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L52) - -*** - - - -### parameters - -```ts -readonly parameters: (string | number | Uint8Array | null)[]; -``` - -Defined in: [packages/common/src/Sqlite.ts:51](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L51) - -*** - - - -### sql - -```ts -readonly sql: SafeSql; -``` - -Defined in: [packages/common/src/Sqlite.ts:50](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L50) diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteQueryOptions.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteQueryOptions.mdx deleted file mode 100644 index a1b7a7e50..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/interfaces/SqliteQueryOptions.mdx +++ /dev/null @@ -1,56 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteQueryOptions - -Defined in: [packages/common/src/Sqlite.ts:77](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L77) - -Options for configuring [SqliteQuery](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) execution behavior. - -## Properties - - - -### logExplainQueryPlan? - -```ts -readonly optional logExplainQueryPlan: boolean; -``` - -Defined in: [packages/common/src/Sqlite.ts:91](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L91) - -If set to `true`, logs the SQLite Explain Query Plan (EQP) for the query. -This can help analyze how SQLite plans to execute the query and identify -potential optimizations. - -See: [https://www.sqlite.org/eqp.html](https://www.sqlite.org/eqp.html). - -*** - - - -### logQueryExecutionTime? - -```ts -readonly optional logQueryExecutionTime: boolean; -``` - -Defined in: [packages/common/src/Sqlite.ts:82](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L82) - -If set to `true`, logs the time taken to execute the SQL query. Useful for -performance monitoring and identifying slow queries. - -*** - - - -### prepare? - -```ts -readonly optional prepare: boolean; -``` - -Defined in: [packages/common/src/Sqlite.ts:100](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L100) - -If set to `true`, explicitly prepares the query before execution. Prepared -statements can improve performance for repeated queries by reusing the -compiled query. - -See: [https://sqlite.org/wasm/doc/trunk/api-oo1.md#db-prepare](https://sqlite.org/wasm/doc/trunk/api-oo1.md#db-prepare). diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/page.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/page.mdx deleted file mode 100644 index c6384d987..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/page.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Sqlite - -SQLite database abstraction and query execution. - -## Functions - -| Function | Description | -| ------ | ------ | -| [booleanToSqliteBoolean](/docs/api-reference/common/Sqlite/functions/booleanToSqliteBoolean.mdx) | Converts a JavaScript boolean to a [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx). | -| [createPreparedStatementsCache](/docs/api-reference/common/Sqlite/functions/createPreparedStatementsCache.mdx) | Creates a [PreparedStatements](/docs/api-reference/common/Sqlite/interfaces/PreparedStatements.mdx) cache backed by the given factory and dispose function. | -| [createSqlite](/docs/api-reference/common/Sqlite/functions/createSqlite.mdx) | Creates a [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx) instance backed by a platform-specific driver. | -| [sql](/docs/api-reference/common/Sqlite/functions/sql.mdx) | Creates a safe SQL query using a tagged template literal. | -| [sqliteBooleanToBoolean](/docs/api-reference/common/Sqlite/functions/sqliteBooleanToBoolean.mdx) | Converts a [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx) to a JavaScript boolean. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [CreateSqliteDriverDep](/docs/api-reference/common/Sqlite/interfaces/CreateSqliteDriverDep.mdx) | - | -| [PreparedStatements](/docs/api-reference/common/Sqlite/interfaces/PreparedStatements.mdx) | Cache for compiled prepared statements. | -| [RawSql](/docs/api-reference/common/Sqlite/interfaces/RawSql.mdx) | An unescaped SQL fragment inserted verbatim into a query. | -| [SqlIdentifier](/docs/api-reference/common/Sqlite/interfaces/SqlIdentifier.mdx) | A double-quoted SQL identifier for safe column or table name interpolation. | -| [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx) | Platform-agnostic SQLite wrapping a [SqliteDriver](/docs/api-reference/common/Sqlite/interfaces/SqliteDriver.mdx). | -| [SqliteDep](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - | -| [SqliteDriver](/docs/api-reference/common/Sqlite/interfaces/SqliteDriver.mdx) | SQLite driver interface. | -| [SqliteError](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx) | Represents an error that occurred during a SQLite operation. | -| [SqliteExecResult](/docs/api-reference/common/Sqlite/interfaces/SqliteExecResult.mdx) | Result of executing a SQLite query. | -| [SqliteQuery](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) | Represents a SQL query to be executed on a [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx) database. | -| [SqliteQueryOptions](/docs/api-reference/common/Sqlite/interfaces/SqliteQueryOptions.mdx) | Options for configuring [SqliteQuery](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) execution behavior. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [CreateSqliteDriver](/docs/api-reference/common/Sqlite/type-aliases/CreateSqliteDriver.mdx) | Creates a [SqliteDriver](/docs/api-reference/common/Sqlite/interfaces/SqliteDriver.mdx). | -| [SafeSql](/docs/api-reference/common/Sqlite/type-aliases/SafeSql.mdx) | A sanitized SQL string for [SqliteQuery](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx). | -| [SqliteBoolean](/docs/api-reference/common/Sqlite/type-aliases/SqliteBoolean.mdx) | SQLite represents boolean values using `0` (false) and `1` (true) instead of a dedicated boolean type. | -| [SqliteDriverOptions](/docs/api-reference/common/Sqlite/type-aliases/SqliteDriverOptions.mdx) | Options for creating a [CreateSqliteDriver](/docs/api-reference/common/Sqlite/type-aliases/CreateSqliteDriver.mdx). | -| [SqliteRow](/docs/api-reference/common/Sqlite/type-aliases/SqliteRow.mdx) | A row returned from a [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx) query, mapping column names to [SqliteValue](/docs/api-reference/common/Sqlite/variables/SqliteValue.mdx). | -| [SqliteValue](/docs/api-reference/common/Sqlite/type-aliases/SqliteValue.mdx) | A value that can be stored in [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx). | -| [SqlTemplateParam](/docs/api-reference/common/Sqlite/type-aliases/SqlTemplateParam.mdx) | A parameter accepted by the [sql](/docs/api-reference/common/Sqlite/functions/sql.mdx) tagged template. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [eqSqliteValue](/docs/api-reference/common/Sqlite/variables/eqSqliteValue.mdx) | Equality comparison for [SqliteValue](/docs/api-reference/common/Sqlite/variables/SqliteValue.mdx). | -| [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx) | SQLite represents boolean values using `0` (false) and `1` (true) instead of a dedicated boolean type. | -| [sqliteFalse](/docs/api-reference/common/Sqlite/variables/sqliteFalse.mdx) | Represents the [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx) value for `false`. | -| [sqliteTrue](/docs/api-reference/common/Sqlite/variables/sqliteTrue.mdx) | Represents the [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx) value for `true`. | -| [SqliteValue](/docs/api-reference/common/Sqlite/variables/SqliteValue.mdx) | A value that can be stored in [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx). | diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/CreateSqliteDriver.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/CreateSqliteDriver.mdx deleted file mode 100644 index 031da4615..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/CreateSqliteDriver.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / CreateSqliteDriver - -```ts -type CreateSqliteDriver = (name: SimpleName, options?: SqliteDriverOptions) => Task; -``` - -Defined in: [packages/common/src/Sqlite.ts:132](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L132) - -Creates a [SqliteDriver](/docs/api-reference/common/Sqlite/interfaces/SqliteDriver.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | [`SimpleName`](/docs/api-reference/common/Type/type-aliases/SimpleName.mdx) | -| `options?` | [`SqliteDriverOptions`](/docs/api-reference/common/Sqlite/type-aliases/SqliteDriverOptions.mdx) | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<[`SqliteDriver`](/docs/api-reference/common/Sqlite/interfaces/SqliteDriver.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SafeSql.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SafeSql.mdx deleted file mode 100644 index 47d708c01..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SafeSql.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SafeSql - -```ts -type SafeSql = string & Brand<"SafeSql">; -``` - -Defined in: [packages/common/src/Sqlite.ts:56](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L56) - -A sanitized SQL string for [SqliteQuery](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqlTemplateParam.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqlTemplateParam.mdx deleted file mode 100644 index df10b400e..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqlTemplateParam.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqlTemplateParam - -```ts -type SqlTemplateParam = - | SqliteValue - | SqlIdentifier - | RawSql; -``` - -Defined in: [packages/common/src/Sqlite.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L364) - -A parameter accepted by the [sql](/docs/api-reference/common/Sqlite/functions/sql.mdx) tagged template. diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteBoolean.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteBoolean.mdx deleted file mode 100644 index 63c09b9db..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteBoolean.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteBoolean - -```ts -type SqliteBoolean = 0 | 1; -``` - -Defined in: [packages/common/src/Sqlite.ts:462](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L462) - -SQLite represents boolean values using `0` (false) and `1` (true) instead of -a dedicated boolean type. - -See: https://www.sqlite.org/quirks.html#no_separate_boolean_datatype - -## Tips - -- Use [sqliteTrue](/docs/api-reference/common/Sqlite/variables/sqliteTrue.mdx) and [sqliteFalse](/docs/api-reference/common/Sqlite/variables/sqliteFalse.mdx) constants for better - readability. -- Use [booleanToSqliteBoolean](/docs/api-reference/common/Sqlite/functions/booleanToSqliteBoolean.mdx) and [sqliteBooleanToBoolean](/docs/api-reference/common/Sqlite/functions/sqliteBooleanToBoolean.mdx) for - converting between JavaScript booleans and SQLite boolean values. diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteDriverOptions.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteDriverOptions.mdx deleted file mode 100644 index 040e15acd..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteDriverOptions.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteDriverOptions - -```ts -type SqliteDriverOptions = - | { - mode: "memory"; -} - | { - encryptionKey: EncryptionKey; - mode: "encrypted"; -}; -``` - -Defined in: [packages/common/src/Sqlite.ts:147](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L147) - -Options for creating a [CreateSqliteDriver](/docs/api-reference/common/Sqlite/type-aliases/CreateSqliteDriver.mdx). - -Three mutually exclusive modes: in-memory (for testing), encrypted persistent -(OPFS/file with encryption key), or persistent (default when omitted). diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteRow.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteRow.mdx deleted file mode 100644 index 3a0b71556..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteRow.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteRow - -```ts -type SqliteRow = Record; -``` - -Defined in: [packages/common/src/Sqlite.ts:119](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L119) - -A row returned from a [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx) query, mapping column names to -[SqliteValue](/docs/api-reference/common/Sqlite/variables/SqliteValue.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteValue.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteValue.mdx deleted file mode 100644 index 6aef9157a..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/type-aliases/SqliteValue.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteValue - -```ts -type SqliteValue = string | number | Uint8Array | null; -``` - -Defined in: [packages/common/src/Sqlite.ts:64](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L64) - -A value that can be stored in [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx). - -Note that Evolu can't support Int64 because expo-sqlite (and some others) do -not support it. diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx deleted file mode 100644 index 90cf81196..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteBoolean - -```ts -const SqliteBoolean: union(0, 1); -``` - -Defined in: [packages/common/src/Sqlite.ts:462](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L462) - -SQLite represents boolean values using `0` (false) and `1` (true) instead of -a dedicated boolean type. - -See: https://www.sqlite.org/quirks.html#no_separate_boolean_datatype - -## Tips - -- Use [sqliteTrue](/docs/api-reference/common/Sqlite/variables/sqliteTrue.mdx) and [sqliteFalse](/docs/api-reference/common/Sqlite/variables/sqliteFalse.mdx) constants for better - readability. -- Use [booleanToSqliteBoolean](/docs/api-reference/common/Sqlite/functions/booleanToSqliteBoolean.mdx) and [sqliteBooleanToBoolean](/docs/api-reference/common/Sqlite/functions/sqliteBooleanToBoolean.mdx) for - converting between JavaScript booleans and SQLite boolean values. diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/variables/SqliteValue.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/variables/SqliteValue.mdx deleted file mode 100644 index df231b959..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/variables/SqliteValue.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / SqliteValue - -```ts -const SqliteValue: union( - Null, - String, - Number, - Uint8Array, -); -``` - -Defined in: [packages/common/src/Sqlite.ts:64](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L64) - -A value that can be stored in [Sqlite](/docs/api-reference/common/Sqlite/interfaces/Sqlite.mdx). - -Note that Evolu can't support Int64 because expo-sqlite (and some others) do -not support it. diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/variables/eqSqliteValue.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/variables/eqSqliteValue.mdx deleted file mode 100644 index d17f70515..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/variables/eqSqliteValue.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / eqSqliteValue - -```ts -const eqSqliteValue: Eq; -``` - -Defined in: [packages/common/src/Sqlite.ts:73](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L73) - -Equality comparison for [SqliteValue](/docs/api-reference/common/Sqlite/variables/SqliteValue.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/variables/sqliteFalse.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/variables/sqliteFalse.mdx deleted file mode 100644 index c52529520..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/variables/sqliteFalse.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / sqliteFalse - -```ts -const sqliteFalse: 0 = 0; -``` - -Defined in: [packages/common/src/Sqlite.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L477) - -Represents the [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx) value for `false`. - -See [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Sqlite/variables/sqliteTrue.mdx b/.generated/evolu-docs/api-reference/common/Sqlite/variables/sqliteTrue.mdx deleted file mode 100644 index ffca77a58..000000000 --- a/.generated/evolu-docs/api-reference/common/Sqlite/variables/sqliteTrue.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) / sqliteTrue - -```ts -const sqliteTrue: 1 = 1; -``` - -Defined in: [packages/common/src/Sqlite.ts:470](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Sqlite.ts#L470) - -Represents the [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx) value for `true`. - -See [SqliteBoolean](/docs/api-reference/common/Sqlite/variables/SqliteBoolean.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Store/functions/createStore.mdx b/.generated/evolu-docs/api-reference/common/Store/functions/createStore.mdx deleted file mode 100644 index a7ce53fae..000000000 --- a/.generated/evolu-docs/api-reference/common/Store/functions/createStore.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Store](/docs/api-reference/common/Store/page.mdx) / createStore - -```ts -function createStore(initialState: T, eq?: Eq): Store; -``` - -Defined in: [packages/common/src/Store.ts:50](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Store.ts#L50) - -Creates a store with the given initial state. The store encapsulates its -state, which can be read with `get` and updated with `set` or `modify`. All -changes are broadcast to subscribers. - -By default, state changes are detected using `===` (shallow equality). You -can provide a custom equality function as the second argument. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | Default value | -| ------ | ------ | ------ | -| `initialState` | `T` | `undefined` | -| `eq` | [`Eq`](/docs/api-reference/common/Eq/type-aliases/Eq.mdx)\<`T`\> | `eqStrict` | - -## Returns - -[`Store`](/docs/api-reference/common/Store/interfaces/Store.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx b/.generated/evolu-docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx deleted file mode 100644 index 8ace3c8c2..000000000 --- a/.generated/evolu-docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx +++ /dev/null @@ -1,108 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Store](/docs/api-reference/common/Store/page.mdx) / ReadonlyStore - -Defined in: [packages/common/src/Store.ts:21](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Store.ts#L21) - -A read-only view of a [Store](/docs/api-reference/common/Store/interfaces/Store.mdx) that provides state access and change -notifications without allowing modifications. - -Use [ReadonlyStore](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx) in public APIs where consumers should observe state -but not modify it directly. - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Extended by - -- [`Store`](/docs/api-reference/common/Store/interfaces/Store.mdx) - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### get() - -```ts -readonly get: () => T; -``` - -Defined in: [packages/common/src/Store.ts:29](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Store.ts#L29) - -Returns the current state of the store. - -#### Returns - -`T` - -*** - - - -### subscribe() - -```ts -readonly subscribe: (listener: Listener) => Unsubscribe; -``` - -Defined in: [packages/common/src/Store.ts:26](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Store.ts#L26) - -Registers a listener to be called on state changes and returns a function -to unsubscribe. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `listener` | [`Listener`](/docs/api-reference/common/Listeners/type-aliases/Listener.mdx) | - -#### Returns - -[`Unsubscribe`](/docs/api-reference/common/Listeners/type-aliases/Unsubscribe.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Store/interfaces/Store.mdx b/.generated/evolu-docs/api-reference/common/Store/interfaces/Store.mdx deleted file mode 100644 index ed6125f28..000000000 --- a/.generated/evolu-docs/api-reference/common/Store/interfaces/Store.mdx +++ /dev/null @@ -1,166 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Store](/docs/api-reference/common/Store/page.mdx) / Store - -Defined in: [packages/common/src/Store.ts:40](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Store.ts#L40) - -A store for managing state with change notifications. Like a [Ref](/docs/api-reference/common/Ref/interfaces/Ref.mdx) with -subscriptions. - -Store is a valid dependency in Evolu's [Dependency -Injection](https://evolu.dev/docs/dependency-injection) pattern—use it when -functions need shared mutable state with subscriptions. - -## Extends - -- [`ReadonlyStore`](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx)\<`T`\>.[`Ref`](/docs/api-reference/common/Ref/interfaces/Ref.mdx)\<`T`\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -[`ReadonlyStore`](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx).[`[dispose]`](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx#dispose) - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -[`ReadonlyStore`](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx).[`[dispose]`](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx#dispose) - -## Properties - - - -### get() - -```ts -readonly get: () => T; -``` - -Defined in: [packages/common/src/Store.ts:29](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Store.ts#L29) - -Returns the current state of the store. - -#### Returns - -`T` - -#### Inherited from - -[`ReadonlyStore`](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx).[`get`](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx#get) - -*** - - - -### modify() - -```ts -readonly modify: (updater: (current: T) => T) => boolean; -``` - -Defined in: [packages/common/src/Ref.ts:50](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Ref.ts#L50) - -Modifies the state using an updater function. Returns `true` if the state -was updated. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `updater` | (`current`: `T`) => `T` | - -#### Returns - -`boolean` - -#### Inherited from - -[`Ref`](/docs/api-reference/common/Ref/interfaces/Ref.mdx).[`modify`](/docs/api-reference/common/Ref/interfaces/Ref.mdx#modify) - -*** - - - -### set() - -```ts -readonly set: (state: T) => boolean; -``` - -Defined in: [packages/common/src/Ref.ts:44](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Ref.ts#L44) - -Sets the state. Returns `true` if the state was updated. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `state` | `T` | - -#### Returns - -`boolean` - -#### Inherited from - -[`Ref`](/docs/api-reference/common/Ref/interfaces/Ref.mdx).[`set`](/docs/api-reference/common/Ref/interfaces/Ref.mdx#set) - -*** - - - -### subscribe() - -```ts -readonly subscribe: (listener: Listener) => Unsubscribe; -``` - -Defined in: [packages/common/src/Store.ts:26](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Store.ts#L26) - -Registers a listener to be called on state changes and returns a function -to unsubscribe. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `listener` | [`Listener`](/docs/api-reference/common/Listeners/type-aliases/Listener.mdx) | - -#### Returns - -[`Unsubscribe`](/docs/api-reference/common/Listeners/type-aliases/Unsubscribe.mdx) - -#### Inherited from - -[`ReadonlyStore`](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx).[`subscribe`](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx#subscribe) diff --git a/.generated/evolu-docs/api-reference/common/Store/page.mdx b/.generated/evolu-docs/api-reference/common/Store/page.mdx deleted file mode 100644 index ac1bcdeb5..000000000 --- a/.generated/evolu-docs/api-reference/common/Store/page.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Store - -Observable state container with change notifications. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createStore](/docs/api-reference/common/Store/functions/createStore.mdx) | Creates a store with the given initial state. The store encapsulates its state, which can be read with `get` and updated with `set` or `modify`. All changes are broadcast to subscribers. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [ReadonlyStore](/docs/api-reference/common/Store/interfaces/ReadonlyStore.mdx) | A read-only view of a [Store](/docs/api-reference/common/Store/interfaces/Store.mdx) that provides state access and change notifications without allowing modifications. | -| [Store](/docs/api-reference/common/Store/interfaces/Store.mdx) | A store for managing state with change notifications. Like a [Ref](/docs/api-reference/common/Ref/interfaces/Ref.mdx) with subscriptions. | diff --git a/.generated/evolu-docs/api-reference/common/String/functions/safelyStringifyUnknownValue.mdx b/.generated/evolu-docs/api-reference/common/String/functions/safelyStringifyUnknownValue.mdx deleted file mode 100644 index a5b35472a..000000000 --- a/.generated/evolu-docs/api-reference/common/String/functions/safelyStringifyUnknownValue.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [String](/docs/api-reference/common/String/page.mdx) / safelyStringifyUnknownValue - -```ts -function safelyStringifyUnknownValue(value: unknown): string; -``` - -Defined in: [packages/common/src/String.ts:7](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/String.ts#L7) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -## Returns - -`string` diff --git a/.generated/evolu-docs/api-reference/common/String/page.mdx b/.generated/evolu-docs/api-reference/common/String/page.mdx deleted file mode 100644 index ada6878ab..000000000 --- a/.generated/evolu-docs/api-reference/common/String/page.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / String - -String utilities for safe value conversion. - -## Functions - -| Function | Description | -| ------ | ------ | -| [safelyStringifyUnknownValue](/docs/api-reference/common/String/functions/safelyStringifyUnknownValue.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/Task/classes/AsyncDisposableStack.mdx b/.generated/evolu-docs/api-reference/common/Task/classes/AsyncDisposableStack.mdx deleted file mode 100644 index 0d3ac23ed..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/classes/AsyncDisposableStack.mdx +++ /dev/null @@ -1,381 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AsyncDisposableStack - -Defined in: [packages/common/src/Task.ts:986](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L986) - -Task-aware wrapper around native -[AsyncDisposableStack](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncDisposableStack). - -All tasks run via this stack are [unabortable](/docs/api-reference/common/Task/variables/unabortable.mdx) and run with -[Runner.daemon](/docs/api-reference/common/Task/interfaces/Runner.mdx#daemon), ensuring acquisition and cleanup complete even if abort -is requested. - -### Example - -```ts -const task: Task = async (run) => { - await using stack = run.stack(); - - const a = await stack.use(acquireA); - if (!a.ok) return a; - - const b = await stack.use(acquireB); - if (!b.ok) return b; // a released - - stack.defer(sendAnalytics); - - // work with a.value, b.value... - return ok(); -}; // b released, then a released, then analytics sent -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `D` | `unknown` | - -## Implements - -- [`AsyncDisposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Accessors - - - -### disposed - -#### Get Signature - -```ts -get disposed(): boolean; -``` - -Defined in: [packages/common/src/Task.ts:1146](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1146) - -Whether this stack has been disposed. - -##### Returns - -`boolean` - -## Constructors - - - -### Constructor - -```ts -new AsyncDisposableStack(run: Runner): AsyncDisposableStack; -``` - -Defined in: [packages/common/src/Task.ts:990](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L990) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `run` | [`Runner`](/docs/api-reference/common/Task/interfaces/Runner.mdx)\<`D`\> | - -#### Returns - -`AsyncDisposableStack`\<`D`\> - -## Methods - - - -### \[asyncDispose\]() - -```ts -asyncDispose: Promise; -``` - -Defined in: [packages/common/src/Task.ts:1154](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1154) - -#### Returns - -`Promise`\<`void`\> - -#### Implementation of - -```ts -AsyncDisposable.[asyncDispose] -``` - -*** - - - -### adopt() - -```ts -adopt(acquire: Task, release: (resource: T) => Task): Promise>; -``` - -Defined in: [packages/common/src/Task.ts:1100](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1100) - -Acquires a resource and registers a custom release [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx). - -Runs `acquire` to get a resource and registers `release` to run when the -stack is disposed. Use for resources that need cleanup but don't implement -[Disposable](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) or [AsyncDisposable](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management). If the resource is disposable, -use [use](/docs/api-reference/common/Task/classes/AsyncDisposableStack.mdx#use) instead. - -### Example - -```ts -await using stack = run.stack(); - -const session = await stack.adopt(login(credentials), (session) => - logout(session), -); -if (!session.ok) return session; - -// Use session.value... -// logout(session.value) runs automatically when stack is disposed -``` - -#### Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | `never` | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `acquire` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `release` | (`resource`: `T`) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`, `never`, `D`\> | - -#### Returns - -`Promise`\<[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, - \| [`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx) - \| `E`\>\> - -#### See - -https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncDisposableStack/adopt - -*** - - - -### defer() - -```ts -defer(onDisposeAsync: Task): void; -``` - -Defined in: [packages/common/src/Task.ts:1026](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1026) - -Registers a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) to run when the stack is disposed. - -Deferred tasks run in LIFO order and are unabortable. - -### Example - -```ts -const task: Task = async (run) => { - await using stack = run.stack(); - - stack.defer(() => { - console.log("cleanup"); - return ok(); - }); - - // ... do work - return ok(); -}; -// "cleanup" logs when stack is disposed -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `onDisposeAsync` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`, `never`, `D`\> | - -#### Returns - -`void` - -#### See - -https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncDisposableStack/defer - -*** - - - -### disposeAsync() - -```ts -disposeAsync(): Promise; -``` - -Defined in: [packages/common/src/Task.ts:1150](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1150) - -#### Returns - -`Promise`\<`void`\> - -*** - - - -### move() - -```ts -move(): AsyncDisposableStack; -``` - -Defined in: [packages/common/src/Task.ts:1141](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1141) - -Transfers disposal responsibility to a new stack, marking this one -disposed. - -Enables transferring ownership out of the current scope — if an error -occurs, resources are disposed; if successful, the caller takes ownership. - -### Example - -```ts -const createBundle: Task = async (run) => { - await using stack = run.stack(); - - const a = await stack.use(createResource("a")); - if (!a.ok) return a; - - const b = await stack.use(createResource("b")); - if (!b.ok) return b; - - const moved = stack.move(); - return ok({ - a: a.value, - b: b.value, - [Symbol.asyncDispose]: () => moved.disposeAsync(), - }); -}; -``` - -#### Returns - -[`AsyncDisposableStack`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncDisposableStack) - -#### See - -https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DisposableStack/move - -*** - - - -### use() - -#### Call Signature - -```ts -use(value: T): T; -``` - -Defined in: [packages/common/src/Task.ts:1056](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1056) - -Registers a disposable resource and returns it. - -Accepts either a direct value (sync) or a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) (async acquisition). -Resources are disposed in LIFO order. Acquisition is unabortable. - -### Example - -```ts -const task: Task = async (run) => { - await using stack = run.stack(); - - const db = await stack.use(createDatabase()); - if (!db.ok) return db; - - const conn = await stack.use(createConnection(db.value)); - if (!conn.ok) return conn; - - // Use conn.value... - return ok(); -}; -// conn and db disposed automatically in LIFO order -``` - -##### Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* \| [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) \| [`AsyncDisposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) \| `null` \| `undefined` | - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | - -##### Returns - -`T` - -##### See - -https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncDisposableStack/use - -#### Call Signature - -```ts -use(acquire: Task): PromiseLike>; -``` - -Defined in: [packages/common/src/Task.ts:1057](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1057) - -Registers a disposable resource and returns it. - -Accepts either a direct value (sync) or a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) (async acquisition). -Resources are disposed in LIFO order. Acquisition is unabortable. - -### Example - -```ts -const task: Task = async (run) => { - await using stack = run.stack(); - - const db = await stack.use(createDatabase()); - if (!db.ok) return db; - - const conn = await stack.use(createConnection(db.value)); - if (!conn.ok) return conn; - - // Use conn.value... - return ok(); -}; -// conn and db disposed automatically in LIFO order -``` - -##### Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* \| [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) \| [`AsyncDisposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) \| `null` \| `undefined` | -| `E` | - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `acquire` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | - -##### Returns - -[`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\>\> - -##### See - -https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncDisposableStack/use diff --git a/.generated/evolu-docs/api-reference/common/Task/classes/Fiber.mdx b/.generated/evolu-docs/api-reference/common/Task/classes/Fiber.mdx deleted file mode 100644 index c5d63327b..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/classes/Fiber.mdx +++ /dev/null @@ -1,242 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / Fiber - -Defined in: [packages/common/src/Task.ts:761](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L761) - -`Fiber` is a handle to a running [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that can be awaited, aborted, or -disposed. - -### Example - -```ts -await using run = createRunner(); - -// Await to get Result -const result = await run(fetchData); - -// Abort manually -const fiber = run(longRunningTask); -fiber.abort(); -const aborted = await fiber; // Result contains AbortError (unless unabortable) - -// Auto-abort with `using` -{ - using background = run(backgroundSync); - await someOtherWork(); -} // background.abort() called automatically here - -// Run child tasks in fiber's scope -fiber.run(childTask); - -// Monitor via the Runner -fiber.run.onEvent = (event) => { - // handle event -}; -``` - -Because `Fiber` is a [PromiseLike](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables) object, fibers can be composed with -`Promise.all`, `Promise.race`, etc. - -Microtask timing: Runner wraps the task's promise with `.then` and -`.finally`, which adds microtasks between task completion and fiber -settlement. Do not write code that relies on a specific number of microtask -yields between tasks. Use explicit synchronization primitives instead. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | `unknown` | -| `E` | `unknown` | -| `D` | `unknown` | - -## Implements - -- [`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, - \| `E` - \| [`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx)\>\> -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Constructors - - - -### Constructor - -```ts -new Fiber(run: Runner, promise: Promise>): Fiber; -``` - -Defined in: [packages/common/src/Task.ts:787](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L787) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `run` | [`Runner`](/docs/api-reference/common/Task/interfaces/Runner.mdx)\<`D`\> | -| `promise` | `Promise`\<[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `E`\>\> | - -#### Returns - -`Fiber`\<`T`, `E`, `D`\> - -## Methods - - - -### \[dispose\]() - -```ts -dispose: void; -``` - -Defined in: [packages/common/src/Task.ts:826](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L826) - -#### Returns - -`void` - -#### Implementation of - -```ts -Disposable.[dispose] -``` - -*** - - - -### abort() - -```ts -abort(reason?: unknown): void; -``` - -Defined in: [packages/common/src/Task.ts:815](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L815) - -Requests abort for this fiber (and any child it started). - -### Example - -```ts -const fiber = run(fetchData); -fiber.abort(); -const result = await fiber; // err(AbortError) -``` - -When abort is requested, the fiber's result becomes [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) even -if the task completed successfully. This keeps behavior predictable — -calling `abort()` always yields `AbortError`. - -The optional reason is stored in `AbortError.reason`. Since any value can -be passed, abort reasons are `unknown` — use typed errors for business -logic. To inspect the reason, use type guards like -`RaceLostError.is(reason)`. - -Abort is idempotent — calling multiple times has no additional effect -beyond the first call. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `reason?` | `unknown` | - -#### Returns - -`void` - -*** - - - -### getState() - -```ts -getState(): FiberState; -``` - -Defined in: [packages/common/src/Task.ts:822](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L822) - -Returns the current [FiberState](/docs/api-reference/common/Task/type-aliases/FiberState.mdx). - -#### Returns - -[`FiberState`](/docs/api-reference/common/Task/type-aliases/FiberState.mdx)\<`T`, `E`\> - -## Properties - - - -### run - -```ts -readonly run: Runner; -``` - -Defined in: [packages/common/src/Task.ts:785](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L785) - -A [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) whose lifetime is tied to this fiber. - -Tasks run via this runner are aborted when the fiber ends. - -### Example - -```ts -const fiber = run(longRunningTask); - -// helperTask is aborted when longRunningTask ends -fiber.run(helperTask); - -// Monitor this fiber's runner -fiber.run.onEvent = (event) => { - console.log(event); -}; -``` - -*** - - - -### then() - -```ts -readonly then: (onfulfilled?: - | (value: Result) => - | TResult1 - | PromiseLike - | null, onrejected?: - | (reason: any) => - | TResult2 - | PromiseLike -| null) => PromiseLike; -``` - -Defined in: [packages/common/src/Task.ts:764](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L764) - -Attaches callbacks for the resolution and/or rejection of the Promise. - -#### Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `TResult1` | [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, \| [`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx) \| `E`\> | -| `TResult2` | `never` | - -#### Parameters - -| Parameter | Type | Description | -| ------ | ------ | ------ | -| `onfulfilled?` | \| (`value`: [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)) => \| `TResult1` \| [`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<`TResult1`\> \| `null` | The callback to execute when the Promise is resolved. | -| `onrejected?` | \| (`reason`: `any`) => \| `TResult2` \| [`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<`TResult2`\> \| `null` | The callback to execute when the Promise is rejected. | - -#### Returns - -[`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<`TResult1` \| `TResult2`\> - -A Promise for the completion of which ever callback is executed. - -#### Implementation of - -```ts -PromiseLike.then -``` diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/all.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/all.mdx deleted file mode 100644 index e3214f332..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/all.mdx +++ /dev/null @@ -1,186 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / all - -## Call Signature - -```ts -function all(tasks: T, options?: CollectOptions): Task<{ [K in string | number | symbol]: InferTaskOk }, InferTaskErr, InferTaskDeps>; -``` - -Defined in: [packages/common/src/Task.ts:2667](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2667) - -Fails fast on first error across multiple [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s. - -Sequential by default — use [parallel](/docs/api-reference/common/Task/functions/parallel.mdx) to run concurrently. - -### Example - -```ts -const result = await run(all([fetchUser, fetchPosts, fetchComments])); -if (!result.ok) return result; -const [user, posts, comments] = result.value; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* readonly \[[`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx), [`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx)\] | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tasks` | `T` | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<\{ \[K in string \| number \| symbol\]: InferTaskOk\ \}, [`InferTaskErr`](/docs/api-reference/common/Task/type-aliases/InferTaskErr.mdx)\<`T`\[`number`\]\>, [`InferTaskDeps`](/docs/api-reference/common/Task/type-aliases/InferTaskDeps.mdx)\<`T`\[`number`\]\>\> - -### See - -[CollectOptions](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx) - -## Call Signature - -```ts -function all(tasks: T, options?: CollectOptions): Task<{ [P in string | number | symbol]: InferTaskOk }, [keyof T] extends [never] ? never : InferTaskErr, [keyof T] extends [never] ? unknown : InferTaskDeps>; -``` - -Defined in: [packages/common/src/Task.ts:2687](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2687) - -Returns object with same keys. - -```ts -const result = await run(all({ user: fetchUser, posts: fetchPosts })); -if (!result.ok) return result; -const { user, posts } = result.value; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* `Readonly`\<`Record`\<`string`, [`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx)\>\> | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tasks` | `T` | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<\{ \[P in string \| number \| symbol\]: InferTaskOk\ \}, \[keyof `T`\] *extends* \[`never`\] ? `never` : [`InferTaskErr`](/docs/api-reference/common/Task/type-aliases/InferTaskErr.mdx)\<`T`\[keyof `T`\]\>, \[keyof `T`\] *extends* \[`never`\] ? `unknown` : [`InferTaskDeps`](/docs/api-reference/common/Task/type-aliases/InferTaskDeps.mdx)\<`T`\[keyof `T`\]\>\> - -## Call Signature - -```ts -function all(tasks: Iterable>, options?: CollectOptions): Task; -``` - -Defined in: [packages/common/src/Task.ts:2706](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2706) - -For dynamic or generated task lists. - -```ts -const urls: ReadonlyArray = getUrls(); -const result = await run(map(urls, fetchUrl)); -if (!result.ok) return result; -// result.value: ReadonlyArray -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tasks` | [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>\> | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\ - -## Call Signature - -```ts -function all(tasks: readonly [Task, Task], options?: CollectOptions): Task; -``` - -Defined in: [packages/common/src/Task.ts:2724](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2724) - -Guarantees non-empty result. - -```ts -const tasks: NonEmptyReadonlyArray> = [ - fetchUrl("/a"), - fetchUrl("/b"), -]; -const result = await run(all(tasks)); -if (!result.ok) return result; -// result.value: NonEmptyReadonlyArray -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tasks` | readonly \[[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>, [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>\] | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\ - -## Call Signature - -```ts -function all(tasks: - | Iterable, any, any> -| Readonly>>, options: CollectOptions): Task; -``` - -Defined in: [packages/common/src/Task.ts:2737](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2737) - -Run for side effects only. - -```ts -const result = await run(all(tasks, { collect: false })); -// result.value: void -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tasks` | \| [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>, `any`, `any`\> \| `Readonly`\<`Record`\<`string`, [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>\>\> | -| `options` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`false`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`, `E`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/allSettled.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/allSettled.mdx deleted file mode 100644 index 45b7205a5..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/allSettled.mdx +++ /dev/null @@ -1,214 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / allSettled - -## Call Signature - -```ts -function allSettled(tasks: T, options?: CollectOptions): Task<{ [K in string | number | symbol]: Result, AbortError | InferTaskErr> }, never, InferTaskDeps>; -``` - -Defined in: [packages/common/src/Task.ts:2796](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2796) - -Completes all [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s regardless of individual failures. - -Like -[Promise.allSettled](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled), -all tasks run to completion regardless of individual failures. Returns an -array of [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)s preserving the original order. - -Sequential by default. Use [parallel](/docs/api-reference/common/Task/functions/parallel.mdx) for parallel execution. - -### Example - -```ts -const results = await run( - allSettled([fetchUser, fetchPosts, fetchComments]), -); -if (!results.ok) return results; // Only AbortError - -for (const result of results.value) { - if (result.ok) { - console.log("Success:", result.value); - } else { - console.log("Failed:", result.error); - } -} -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* readonly \[[`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx), [`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx)\] | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tasks` | `T` | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<\{ \[K in string \| number \| symbol\]: Result\, AbortError \| InferTaskErr\\> \}, `never`, [`InferTaskDeps`](/docs/api-reference/common/Task/type-aliases/InferTaskDeps.mdx)\<`T`\[`number`\]\>\> - -### See - -[CollectOptions](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx) - -## Call Signature - -```ts -function allSettled(tasks: T, options?: CollectOptions): Task<{ [P in string | number | symbol]: Result, AbortError | InferTaskErr> }, never, [keyof T] extends [never] ? unknown : InferTaskDeps>; -``` - -Defined in: [packages/common/src/Task.ts:2820](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2820) - -Returns object with same keys. - -```ts -const results = await run( - allSettled({ user: fetchUser, posts: fetchPosts }), -); -if (!results.ok) return results; -const { user, posts } = results.value; // Each is Result -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* `Readonly`\<`Record`\<`string`, [`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx)\>\> | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tasks` | `T` | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<\{ \[P in string \| number \| symbol\]: Result\, AbortError \| InferTaskErr\\> \}, `never`, \[keyof `T`\] *extends* \[`never`\] ? `unknown` : [`InferTaskDeps`](/docs/api-reference/common/Task/type-aliases/InferTaskDeps.mdx)\<`T`\[keyof `T`\]\>\> - -## Call Signature - -```ts -function allSettled(tasks: Iterable>, options?: CollectOptions): Task[], never, D>; -``` - -Defined in: [packages/common/src/Task.ts:2841](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2841) - -For dynamic or generated task lists. - -```ts -const urls: ReadonlyArray = getUrls(); -const results = await run(allSettled(tasks)); -if (!results.ok) return results; -// results.value: ReadonlyArray> -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tasks` | [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>\> | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\[], `never`, `D`\> - -## Call Signature - -```ts -function allSettled(tasks: readonly [Task, Task], options?: CollectOptions): Task, Result], never, D>; -``` - -Defined in: [packages/common/src/Task.ts:2859](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2859) - -Guarantees non-empty result. - -```ts -const tasks: NonEmptyReadonlyArray> = [ - fetchUrl("/a"), - fetchUrl("/b"), -]; -const results = await run(allSettled(tasks)); -if (!results.ok) return results; -// results.value: NonEmptyReadonlyArray> -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tasks` | readonly \[[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>, [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>\] | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\, [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, - \| [`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx) - \| `E`\>\], `never`, `D`\> - -## Call Signature - -```ts -function allSettled(tasks: - | Iterable, any, any> -| Readonly>>, options: CollectOptions): Task; -``` - -Defined in: [packages/common/src/Task.ts:2872](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2872) - -Run for side effects only. - -```ts -const result = await run(allSettled(tasks, { collect: false })); -// result.value: void -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tasks` | \| [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>, `any`, `any`\> \| `Readonly`\<`Record`\<`string`, [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>\>\> | -| `options` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`false`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`, `never`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/any.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/any.mdx deleted file mode 100644 index aa2aacb6d..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/any.mdx +++ /dev/null @@ -1,53 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / any - -```ts -function any(tasks: readonly [Task, Task], options?: { - allFailed?: AnyAllFailed; -}): Task; -``` - -Defined in: [packages/common/src/Task.ts:3117](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3117) - -Returns the first [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that succeeds. - -Like -[Promise.any](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/any), -the first task to succeed wins. All other tasks are aborted. If all tasks -fail, returns the last error (by input order). - -Sequential by default. Use [parallel](/docs/api-reference/common/Task/functions/parallel.mdx) for parallel execution. - -Think of it like `Array.prototype.some()` — it stops on the first success. -This is in contrast to [race](/docs/api-reference/common/Task/functions/race.mdx), which returns the first task to complete -(whether success or failure). - -### Example - -```ts -// Try multiple endpoints concurrently, first success wins -const result = await run( - parallel( - any([fetchFromPrimary, fetchFromSecondary, fetchFromTertiary]), - ), -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | -| `D` | - -## Parameters - -| Parameter | Type | Description | -| ------ | ------ | ------ | -| `tasks` | readonly \[[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>, [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\>\] | - | -| `options?` | \{ `allFailed?`: [`AnyAllFailed`](/docs/api-reference/common/Task/type-aliases/AnyAllFailed.mdx); \} | - | -| `options.allFailed?` | [`AnyAllFailed`](/docs/api-reference/common/Task/type-aliases/AnyAllFailed.mdx) | How to choose an error if all tasks fail. | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/callback.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/callback.mdx deleted file mode 100644 index d82cee748..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/callback.mdx +++ /dev/null @@ -1,62 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / callback - -```ts -function callback(callback: CallbackWithCleanup<{ - deps: RunnerDeps; - err: Callback; - ok: Callback; - signal: AbortSignal; -}>): Task; -``` - -Defined in: [packages/common/src/Task.ts:1798](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1798) - -Creates a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) from a callback-based API. - -Use this to wrap callback-style APIs (event listeners, Node.js callbacks, -etc.) into Tasks with proper abort handling. - -Optionally return a cleanup function that runs on abort. - -### Example - -```ts -// The sleep helper is implemented using callback: -const sleep = (duration: Duration): Task => - callback(({ ok, deps: { time } }) => { - const id = time.setTimeout(ok, durationToMillis(duration)); - return () => time.clearTimeout(id); - }); - -// Wrap an event listener — use signal directly -const waitForClick = (element: HTMLElement): Task => - callback(({ ok, signal }) => { - element.addEventListener("click", ok, { once: true, signal }); - }); - -// Wrap Node.js callback API -const readFile = (path: string): Task => - callback(({ ok, err }) => { - fs.readFile(path, "utf8", (error, data) => { - if (error) err(error); - else ok(data); - }); - }); -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `callback` | [`CallbackWithCleanup`](/docs/api-reference/common/Types/type-aliases/CallbackWithCleanup.mdx)\<\{ `deps`: [`RunnerDeps`](/docs/api-reference/common/Task/type-aliases/RunnerDeps.mdx); `err`: [`Callback`](/docs/api-reference/common/Types/type-aliases/Callback.mdx)\<`E`\>; `ok`: [`Callback`](/docs/api-reference/common/Types/type-aliases/Callback.mdx)\<`T`\>; `signal`: `AbortSignal`; \}\> | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/createDeferred.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/createDeferred.mdx deleted file mode 100644 index 97c0243d2..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/createDeferred.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / createDeferred - -```ts -function createDeferred(): Deferred; -``` - -Defined in: [packages/common/src/Task.ts:2272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2272) - -Creates a [Deferred](/docs/api-reference/common/Task/interfaces/Deferred.mdx). - -### Example - -```ts -const deferred = createDeferred(); - -// Start waiting for the value -const fiber = run(deferred.task); - -// Resolve from elsewhere (callback, another task, etc.) -deferred.resolve(ok("value")); - -const result = await fiber; // ok("value") -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | `never` | - -## Returns - -[`Deferred`](/docs/api-reference/common/Task/interfaces/Deferred.mdx)\<`T`, `E`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/createGate.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/createGate.mdx deleted file mode 100644 index 3991fdbee..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/createGate.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / createGate - -```ts -function createGate(): Gate; -``` - -Defined in: [packages/common/src/Task.ts:2383](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2383) - -Creates a [Gate](/docs/api-reference/common/Task/interfaces/Gate.mdx) that starts closed. - -Useful for "stop/go" logic where multiple tasks need to wait for a state -change. - -### Example - -```ts -const networkGate = createGate(); - -// Pause processing when offline -const onOffline = () => networkGate.close(); - -// Resume processing when online -const onOnline = () => networkGate.open(); - -const syncLoop = async (run) => { - while (true) { - // Blocks here whenever the gate is closed - await run(networkGate.wait); - await run(uploadNextItem); - } -}; -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `D` | `unknown` | - -## Returns - -[`Gate`](/docs/api-reference/common/Task/interfaces/Gate.mdx)\<`D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/createMutex.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/createMutex.mdx deleted file mode 100644 index f8f932957..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/createMutex.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / createMutex - -```ts -function createMutex(): Mutex; -``` - -Defined in: [packages/common/src/Task.ts:2621](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2621) - -Creates a [Mutex](/docs/api-reference/common/Task/interfaces/Mutex.mdx). - -## Returns - -[`Mutex`](/docs/api-reference/common/Task/interfaces/Mutex.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/createSemaphore.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/createSemaphore.mdx deleted file mode 100644 index d05ab6660..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/createSemaphore.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / createSemaphore - -```ts -function createSemaphore(permits: Concurrency): Semaphore; -``` - -Defined in: [packages/common/src/Task.ts:2476](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2476) - -Creates a [Semaphore](/docs/api-reference/common/Task/interfaces/Semaphore.mdx) that limits concurrent [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s. - -### Example - -```ts -await using run = createRunner(); - -const semaphore = createSemaphore(PositiveInt.orThrow(2)); - -const fetchUser = - (id: string): Task => - async (run) => { - const { console } = run.deps; - console.log("[demo]", "start", id); - const slept = await run(sleep("10ms")); - if (!slept.ok) return slept; - console.log("[demo]", "end", id); - return ok(`user:${id}`); - }; - -const fetchWithPermit = (id: string) => - semaphore.withPermit(fetchUser(id)); - -await Promise.all([ - run(fetchWithPermit("1")), - run(fetchWithPermit("2")), - run(fetchWithPermit("3")), -]); - -// [demo] start 1 -// [demo] start 2 -// [demo] end 1 -// [demo] start 3 -// [demo] end 2 -// [demo] end 3 -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `permits` | [`Concurrency`](/docs/api-reference/common/Task/type-aliases/Concurrency.mdx) | - -## Returns - -[`Semaphore`](/docs/api-reference/common/Task/interfaces/Semaphore.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/fetch.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/fetch.mdx deleted file mode 100644 index a5a35ded8..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/fetch.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / fetch - -```ts -function fetch(input: RequestInfo | URL, init?: RequestInit): Task; -``` - -Defined in: [packages/common/src/Task.ts:3444](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3444) - -Creates a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that wraps the native -[Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). - -Handles cross-browser abort behavior — WebKit throws a `DOMException` with -message "Fetch is aborted" instead of propagating `signal.reason`. This -helper normalizes the behavior to always return [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx). - -### Example - -```ts -await using run = createRunner(); - -const result = await run(fetch("https://api.example.com/users")); - -if (!result.ok) { - // Handle FetchError or AbortError -} - -// Compose with timeout and retry -const fetchWithRetry = (url: string) => - retry(timeout(fetch(url), "10s"), retryStrategyAws); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `input` | `RequestInfo` \| `URL` | -| `init?` | `RequestInit` | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`Response`, [`FetchError`](/docs/api-reference/common/Task/interfaces/FetchError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/map.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/map.mdx deleted file mode 100644 index 9bb37fac5..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/map.mdx +++ /dev/null @@ -1,172 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / map - -## Call Signature - -```ts -function map( - items: Iterable, - task: (a: A) => Task, -options?: CollectOptions): Task; -``` - -Defined in: [packages/common/src/Task.ts:2918](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2918) - -Maps values to [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s, failing fast on first error. - -Sequential by default — use [parallel](/docs/api-reference/common/Task/functions/parallel.mdx) for parallel execution. - -### Example - -```ts -const result = await run(map(userIds, fetchUser)); -if (!result.ok) return result; -// result.value: ReadonlyArray -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<`A`\> | -| `task` | (`a`: `A`) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\ - -### See - -[CollectOptions](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx) - -## Call Signature - -```ts -function map( - items: Readonly>, - task: (a: A) => Task, -options?: CollectOptions): Task>, E, D>; -``` - -Defined in: [packages/common/src/Task.ts:2933](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2933) - -Returns object with same keys. - -```ts -const result = await run(map({ a: 1, b: 2 }, (n) => double(n))); -if (!result.ok) return result; -// result.value: { a: number, b: number } -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `T` | -| `E` | -| `D` | -| `K` *extends* `string` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | `Readonly`\<`Record`\<`K`, `A`\>\> | -| `task` | (`a`: `A`) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`Readonly`\<`Record`\<`K`, `T`\>\>, `E`, `D`\> - -## Call Signature - -```ts -function map( - items: readonly [A, A], - task: (a: A) => Task, -options?: CollectOptions): Task; -``` - -Defined in: [packages/common/src/Task.ts:2949](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2949) - -Guarantees non-empty result. - -```ts -const ids: NonEmptyReadonlyArray = [id1, id2]; -const result = await run(map(ids, fetchUser)); -if (!result.ok) return result; -// result.value: NonEmptyReadonlyArray -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | readonly \[`A`, `A`\] | -| `task` | (`a`: `A`) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\ - -## Call Signature - -```ts -function map( - items: - | Iterable - | Readonly>, - task: (a: A) => Task, -options: CollectOptions): Task; -``` - -Defined in: [packages/common/src/Task.ts:2963](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2963) - -Run for side effects only. - -```ts -const result = await run(map(userIds, sendEmail, { collect: false })); -// result.value: void -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | \| [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<`A`, `any`, `any`\> \| `Readonly`\<`Record`\<`string`, `A`\>\> | -| `task` | (`a`: `A`) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `options` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`false`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`, `E`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/mapSettled.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/mapSettled.mdx deleted file mode 100644 index 13724caa4..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/mapSettled.mdx +++ /dev/null @@ -1,198 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / mapSettled - -## Call Signature - -```ts -function mapSettled( - items: Iterable, - task: (a: A) => Task, - options?: CollectOptions): Task[], never, D>; -``` - -Defined in: [packages/common/src/Task.ts:3025](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3025) - -Maps values to [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s, completing all regardless of failures. - -Returns an array of [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)s preserving the original order. Sequential -by default — use [parallel](/docs/api-reference/common/Task/functions/parallel.mdx) for parallel execution. - -### Example - -```ts -const results = await run(mapSettled(userIds, fetchUser)); -if (!results.ok) return results; // Only AbortError - -for (const result of results.value) { - if (result.ok) { - console.log("Success:", result.value); - } else { - console.log("Failed:", result.error); - } -} -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<`A`\> | -| `task` | (`a`: `A`) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\[], `never`, `D`\> - -### See - -[CollectOptions](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx) - -## Call Signature - -```ts -function mapSettled( - items: Readonly>, - task: (a: A) => Task, - options?: CollectOptions): Task>>, never, D>; -``` - -Defined in: [packages/common/src/Task.ts:3040](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3040) - -Returns object with same keys. - -```ts -const results = await run(mapSettled({ a: 1, b: 2 }, (n) => double(n))); -if (!results.ok) return results; -// results.value: { a: Result, b: Result } -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `T` | -| `E` | -| `D` | -| `K` *extends* `string` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | `Readonly`\<`Record`\<`K`, `A`\>\> | -| `task` | (`a`: `A`) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`Readonly`\<`Record`\<`K`, [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, - \| [`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx) - \| `E`\>\>\>, `never`, `D`\> - -## Call Signature - -```ts -function mapSettled( - items: readonly [A, A], - task: (a: A) => Task, - options?: CollectOptions): Task, Result], never, D>; -``` - -Defined in: [packages/common/src/Task.ts:3056](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3056) - -Guarantees non-empty result. - -```ts -const ids: NonEmptyReadonlyArray = [id1, id2]; -const results = await run(mapSettled(ids, fetchUser)); -if (!results.ok) return results; -// results.value: NonEmptyReadonlyArray> -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | readonly \[`A`, `A`\] | -| `task` | (`a`: `A`) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `options?` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`true`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\, [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, - \| [`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx) - \| `E`\>\], `never`, `D`\> - -## Call Signature - -```ts -function mapSettled( - items: - | Iterable - | Readonly>, - task: (a: A) => Task, -options: CollectOptions): Task; -``` - -Defined in: [packages/common/src/Task.ts:3072](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3072) - -Run for side effects only. - -```ts -const result = await run( - mapSettled(userIds, sendEmail, { collect: false }), -); -// result.value: void -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `T` | -| `E` | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `items` | \| [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<`A`, `any`, `any`\> \| `Readonly`\<`Record`\<`string`, `A`\>\> | -| `task` | (`a`: `A`) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `options` | [`CollectOptions`](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx)\<`false`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`, `never`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/parallel.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/parallel.mdx deleted file mode 100644 index 543269e90..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/parallel.mdx +++ /dev/null @@ -1,93 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / parallel - -## Call Signature - -```ts -function parallel(concurrency: Concurrency, task: Task): Task; -``` - -Defined in: [packages/common/src/Task.ts:1663](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1663) - -Runs tasks in parallel instead of sequentially. - -Sets the [Concurrency](/docs/api-reference/common/Task/type-aliases/Concurrency.mdx) level for a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx), which helpers like -[all](/docs/api-reference/common/Task/functions/all.mdx), [map](/docs/api-reference/common/Task/functions/map.mdx), etc. use to control how many tasks run at once. - -By default, tasks run sequentially (one at a time) to encourage thinking -about concurrency explicitly — unlike `Promise.all` which runs everything in -parallel. - -For tuple-based calls like `all([taskA, taskB, taskC])` with a known small -number of tasks, omit the limit (runs unlimited). For arrays of unknown -length, always specify a limit. - -Concurrency is inherited by child tasks and can be overridden at any level. -Composition helpers should respect inherited concurrency — they should not -override it with a fixed number unless semantically required (like -[race](/docs/api-reference/common/Task/functions/race.mdx)). Helpers with a recommended concurrency should export it for use -with `parallel`. - -### Example - -```ts -// Unlimited (omit the limit) -run(parallel(all([fetchA, fetchB, fetchC]))); - -// Limited — at most 5 tasks run at a time -run(parallel(5, all(tasks))); -run(parallel(5, map(userIds, fetchUser))); - -// Inherited — inner all() uses parent's limit -const pipeline = parallel(5, async (run) => { - const users = await run(map(userIds, fetchUser)); // uses 5 - if (!users.ok) return users; - return run(map(users.value, enrichUser)); // also uses 5 -}); -``` - -### Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | - | -| `D` | `unknown` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `concurrency` | [`Concurrency`](/docs/api-reference/common/Task/type-aliases/Concurrency.mdx) | -| `task` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> - -## Call Signature - -```ts -function parallel(task: Task): Task; -``` - -Defined in: [packages/common/src/Task.ts:1668](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1668) - -Unlimited. - -### Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | - | -| `D` | `unknown` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `task` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | - -### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/race.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/race.mdx deleted file mode 100644 index 9b1e408f9..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/race.mdx +++ /dev/null @@ -1,61 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / race - -```ts -function race(tasks: T, __namedParameters?: { - abortReason?: unknown; -}): Task, InferTaskErr, InferTaskDeps>; -``` - -Defined in: [packages/common/src/Task.ts:1880](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1880) - -Returns a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that completes first. - -Like -[Promise.race](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/race), -the first task to complete (whether success or failure) wins. All other tasks -are aborted. Use [any](/docs/api-reference/common/Task/functions/any.mdx) if you need the first task to succeed instead. - -Requires a non-empty array — racing zero tasks has no meaningful result -(there's no "first to complete" without participants). This is enforced at -compile time for non-empty tuple types. For other arrays, guard with -[isNonEmptyArray](/docs/api-reference/common/Array/functions/isNonEmptyArray.mdx): - -```ts -if (isNonEmptyArray(tasks)) { - await run(race(tasks)); -} -``` - -### Example - -```ts -const fast: Task = () => ok("fast"); -const slow: Task = async (run) => { - await run(sleep("10ms")); - return ok("slow"); -}; - -// First wins, others are aborted. -const result = await run(race([fast, slow])); // ok("fast") -``` - -Always runs with unlimited concurrency — a sequential race makes no sense -since the first task would always "win". - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* readonly \[[`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx), [`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx)\] | - -## Parameters - -| Parameter | Type | Description | -| ------ | ------ | ------ | -| `tasks` | `T` | - | -| `__namedParameters` | \{ `abortReason?`: `unknown`; \} | - | -| `__namedParameters.abortReason?` | `unknown` | Abort reason for losing tasks. Defaults to [raceLostError](/docs/api-reference/common/Task/variables/raceLostError.mdx). | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<[`InferTaskOk`](/docs/api-reference/common/Task/type-aliases/InferTaskOk.mdx)\<`T`\[`number`\]\>, [`InferTaskErr`](/docs/api-reference/common/Task/type-aliases/InferTaskErr.mdx)\<`T`\[`number`\]\>, [`InferTaskDeps`](/docs/api-reference/common/Task/type-aliases/InferTaskDeps.mdx)\<`T`\[`number`\]\>\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/repeat.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/repeat.mdx deleted file mode 100644 index 57acc47fb..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/repeat.mdx +++ /dev/null @@ -1,68 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / repeat - -```ts -function repeat( - task: Task, - schedule: Schedule, -__namedParameters?: RepeatOptions): Task; -``` - -Defined in: [packages/common/src/Task.ts:2190](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2190) - -Repeats a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) according to a [Schedule](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx). - -Runs the task, then checks the schedule to determine if it should repeat. The -schedule controls how many repetitions occur and the delay between them. -Continues until the schedule returns `Err(Done)` or the task fails. - -With `take(n)`, the task runs n+1 times (initial run plus n repetitions). - -Also works with [NextTask](/docs/api-reference/common/Task/type-aliases/NextTask.mdx) — when the task returns `Err(Done)`, -repeat stops and propagates the done signal. - -### Example - -```ts -import { fixed, take } from "@evolu/common/schedule"; -import { repeat } from "@evolu/common"; - -// Heartbeat every 30 seconds (runs forever until aborted) -const heartbeat = repeat(sendHeartbeat, fixed("30s")); - -// Poll 4 times total (initial + 3 repetitions), 1 second apart -const poll = repeat(checkStatus, take(3)(fixed("1s"))); - -// Process queue items until empty (NextTask pattern) -const processQueue: NextTask = async (run) => { - const item = queue.dequeue(); - if (!item) return err(done()); // Queue empty, stop - await process(item); - return ok(item); -}; - -const result = await run(repeat(processQueue, fixed("100ms"))); -if (!result.ok && result.error.type === "Done") { - console.log("Queue exhausted"); -} -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | - | -| `D` | `unknown` | -| `Output` | `unknown` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `task` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `T`\> | -| `__namedParameters` | [`RepeatOptions`](/docs/api-reference/common/Task/interfaces/RepeatOptions.mdx)\<`T`, `Output`\> | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/retry.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/retry.mdx deleted file mode 100644 index a47e8a22b..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/retry.mdx +++ /dev/null @@ -1,96 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / retry - -```ts -function retry( - task: Task, - schedule: Schedule, -__namedParameters?: RetryOptions): Task, D>; -``` - -Defined in: [packages/common/src/Task.ts:2070](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2070) - -Wraps a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) with retry logic. - -Retries the task according to the [Schedule](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)'s timing and termination -rules. Use [RetryOptions.retryable](/docs/api-reference/common/Task/interfaces/RetryOptions.mdx#retryable) to filter which errors should -trigger retries. - -All non-abort errors are wrapped in [RetryError](/docs/api-reference/common/Task/interfaces/RetryError.mdx): - -- Task succeeds → `ok(value)` -- Task returns [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) → `err(AbortError)` — passed through, no - retry, no wrapping -- Task returns any other error → retry until schedule exhausted or `retryable` - returns false → `err(RetryError)` with `cause` = the last error - -The `RetryError` is informative: "I tried N times, here's why I finally gave -up" — and `cause` contains the actual underlying error. - -### Example - -```ts -import { - exponential, - jitter, - maxDelay, - retry, - take, -} from "@evolu/common"; - -const fetchWithRetry = retry( - fetchData, - // A jittered, capped, limited exponential backoff. - jitter(1)(maxDelay("20s")(take(2)(exponential("100ms")))), -); - -const result = await run(fetchWithRetry); -if (!result.ok) { - if (AbortError.is(result.error)) { - // Was aborted externally - } else { - // RetryError — failed after retrying - console.log(`Failed after ${result.error.attempts} attempts`); - console.log(`Last error:`, result.error.cause); - } -} -``` - -The schedule receives the error as input, enabling error-aware strategies -like stopping on fatal errors: - -```ts -import { whileScheduleInput } from "@evolu/common"; - -// Don't retry fatal errors -const smartRetry = retry( - fetchData, - whileScheduleInput((e: FetchError) => e.type !== "FatalError")( - take(5)(spaced("1s")), - ), -); -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | - | -| `D` | `unknown` | -| `Output` | `unknown` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `task` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | -| `schedule` | [`Schedule`](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx)\<`Output`, `E`\> | -| `__namedParameters` | [`RetryOptions`](/docs/api-reference/common/Task/interfaces/RetryOptions.mdx)\<`E`, `Output`\> | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, [`RetryError`](/docs/api-reference/common/Task/interfaces/RetryError.mdx)\<`E`\>, `D`\> - -## See - -[RetryOptions](/docs/api-reference/common/Task/interfaces/RetryOptions.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/sleep.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/sleep.mdx deleted file mode 100644 index 4e0fb8584..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/sleep.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / sleep - -```ts -function sleep(duration: Duration): Task; -``` - -Defined in: [packages/common/src/Task.ts:1837](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1837) - -Pauses execution for a specified duration. - -### Example - -```ts -const task: Task = async (run) => { - console.log("Starting..."); - await run(sleep("1s")); - console.log("Done after 1 second"); - return ok(); -}; -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `duration` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/timeout.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/timeout.mdx deleted file mode 100644 index 51ec8f07e..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/timeout.mdx +++ /dev/null @@ -1,53 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / timeout - -```ts -function timeout( - task: Task, - duration: Duration, - __namedParameters?: { - abortReason?: unknown; -}): Task; -``` - -Defined in: [packages/common/src/Task.ts:1927](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1927) - -Wraps a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) with a time limit. - -Returns [TimeoutError](/docs/api-reference/common/Task/variables/TimeoutError-1.mdx) if the task doesn't complete within the specified -duration. The original task is aborted when the timeout fires. - -### Example - -```ts -const fetchWithTimeout = timeout(fetchData, "5s"); - -const result = await run(fetchWithTimeout); -if (!result.ok && result.error.type === "TimeoutError") { - console.log("Request timed out"); -} -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | - | -| `D` | `unknown` | - -## Parameters - -| Parameter | Type | Description | -| ------ | ------ | ------ | -| `task` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | - | -| `duration` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - | -| `__namedParameters` | \{ `abortReason?`: `unknown`; \} | - | -| `__namedParameters.abortReason?` | `unknown` | Abort reason for the task when timeout fires. Defaults to [timeoutError](/docs/api-reference/common/Task/variables/timeoutError.mdx). | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, - \| `E` - \| [`TimeoutError`](/docs/api-reference/common/Task/interfaces/TimeoutError.mdx), `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/functions/unabortableMask.mdx b/.generated/evolu-docs/api-reference/common/Task/functions/unabortableMask.mdx deleted file mode 100644 index 9cd17480f..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/functions/unabortableMask.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / unabortableMask - -```ts -function unabortableMask(fn: (restore: (task: Task) => Task) => Task): Task; -``` - -Defined in: [packages/common/src/Task.ts:1607](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1607) - -Like [unabortable](/docs/api-reference/common/Task/variables/unabortable.mdx), but provides `restore` to restore abortability for -specific tasks. - -Tasks inherit abort masking from their parent. This means: - -- Tasks run inside `unabortableMask` are unabortable by default -- Tasks wrapped with `restore()` restore the previous abortability - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | - | -| `D` | `unknown` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `fn` | (`restore`: \<`T2`, `E2`\>(`task`: [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T2`, `E2`, `D`\>) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T2`, `E2`, `D`\>) => [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/AbortError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/AbortError.mdx deleted file mode 100644 index fcdaa2496..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/AbortError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AbortError - -Defined in: [packages/common/src/Task.ts:447](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L447) - -Error returned when a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) is aborted via -[AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal). - -The `reason` field is `unknown` by design — use typed errors for business -logic. If you need to inspect the reason, use type guards like -`RaceLostError.is(reason)`. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`AbortError`](/docs/api-reference/common/Task/variables/AbortError.mdx)\> - -## Properties - - - -### reason - -```ts -reason: unknown; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`reason`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#reason) - -*** - - - -### type - -```ts -type: "AbortError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/AllAbortError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/AllAbortError.mdx deleted file mode 100644 index 6f87d6165..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/AllAbortError.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AllAbortError - -Defined in: [packages/common/src/Task.ts:2756](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2756) - -Abort reason used by [all](/docs/api-reference/common/Task/functions/all.mdx) when aborting remaining tasks. - -Used when a task fails and other tasks need to be aborted. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`AllAbortError`](/docs/api-reference/common/Task/variables/AllAbortError-1.mdx)\> - -## Properties - - - -### type - -```ts -type: "AllAbortError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/AllSettledAbortError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/AllSettledAbortError.mdx deleted file mode 100644 index 70fbb98a1..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/AllSettledAbortError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AllSettledAbortError - -Defined in: [packages/common/src/Task.ts:2889](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2889) - -Abort reason used by [allSettled](/docs/api-reference/common/Task/functions/allSettled.mdx) when aborted externally. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`AllSettledAbortError`](/docs/api-reference/common/Task/variables/AllSettledAbortError-1.mdx)\> - -## Properties - - - -### type - -```ts -type: "AllSettledAbortError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/AnyAbortError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/AnyAbortError.mdx deleted file mode 100644 index fcd23224b..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/AnyAbortError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AnyAbortError - -Defined in: [packages/common/src/Task.ts:3166](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3166) - -Abort reason used by [any](/docs/api-reference/common/Task/functions/any.mdx) when aborting remaining tasks. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`AnyAbortError`](/docs/api-reference/common/Task/variables/AnyAbortError-1.mdx)\> - -## Properties - - - -### type - -```ts -type: "AnyAbortError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/CollectOptions.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/CollectOptions.mdx deleted file mode 100644 index 913307fa6..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/CollectOptions.mdx +++ /dev/null @@ -1,47 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / CollectOptions - -Defined in: [packages/common/src/Task.ts:2635](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2635) - -Options for [all](/docs/api-reference/common/Task/functions/all.mdx), [allSettled](/docs/api-reference/common/Task/functions/allSettled.mdx), [map](/docs/api-reference/common/Task/functions/map.mdx), and [mapSettled](/docs/api-reference/common/Task/functions/mapSettled.mdx). - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Collect` *extends* `boolean` | `true` | - -## Properties - - - -### abortReason? - -```ts -readonly optional abortReason: unknown; -``` - -Defined in: [packages/common/src/Task.ts:2648](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2648) - -Custom reason for aborting remaining tasks on failure. - -By default, uses the helper's default abort error. - -*** - - - -### collect? - -```ts -readonly optional collect: Collect; -``` - -Defined in: [packages/common/src/Task.ts:2641](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2641) - -Whether to collect results. When `false`, returns `Task`. - -#### Default - -```ts -true -``` diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/CreateRunner.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/CreateRunner.mdx deleted file mode 100644 index 9c7a2990a..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/CreateRunner.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / CreateRunner - -Defined in: [packages/common/src/Task.ts:1207](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1207) - -Factory type for creating root [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) instances. - -## Type Parameters - -| Type Parameter | -| ------ | -| `BaseDeps` | - -## Call Signature - -```ts -CreateRunner(): Runner; -``` - -Defined in: [packages/common/src/Task.ts:1208](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1208) - -Factory type for creating root [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) instances. - -### Returns - -[`Runner`](/docs/api-reference/common/Task/interfaces/Runner.mdx)\<`BaseDeps`\> - -## Call Signature - -```ts -CreateRunner(deps: D): Runner; -``` - -Defined in: [packages/common/src/Task.ts:1209](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1209) - -Factory type for creating root [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) instances. - -### Type Parameters - -| Type Parameter | -| ------ | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | `D` | - -### Returns - -[`Runner`](/docs/api-reference/common/Task/interfaces/Runner.mdx)\<`BaseDeps` & `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/Deferred.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/Deferred.mdx deleted file mode 100644 index bb9d5c17c..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/Deferred.mdx +++ /dev/null @@ -1,113 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / Deferred - -Defined in: [packages/common/src/Task.ts:2245](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2245) - -A value that can be resolved later. - -Similar to -[Promise.withResolvers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers), -but integrated with [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) and [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) for cancellation support. - -Use for bridging callback-based APIs or coordinating between tasks. - -Disposing aborts all waiting tasks with an [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) with -[deferredDisposedError](/docs/api-reference/common/Task/variables/deferredDisposedError.mdx) reason. - -## See - -[createDeferred](/docs/api-reference/common/Task/functions/createDeferred.mdx) - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | `never` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### resolve() - -```ts -readonly resolve: (result: Result) => boolean; -``` - -Defined in: [packages/common/src/Task.ts:2250](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2250) - -Resolves the value. Returns `true` once, then `false`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `result` | [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, \| `E` \| [`DeferredDisposedError`](/docs/api-reference/common/Task/interfaces/DeferredDisposedError.mdx)\> | - -#### Returns - -`boolean` - -*** - - - -### task - -```ts -readonly task: Task; -``` - -Defined in: [packages/common/src/Task.ts:2247](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2247) - -A [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that waits until [Deferred.resolve](/docs/api-reference/common/Task/interfaces/Deferred.mdx#resolve) is called. diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/DeferredDisposedError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/DeferredDisposedError.mdx deleted file mode 100644 index aa79c9d7d..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/DeferredDisposedError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / DeferredDisposedError - -Defined in: [packages/common/src/Task.ts:2319](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2319) - -Abort reason used when a [Deferred](/docs/api-reference/common/Task/interfaces/Deferred.mdx) is disposed. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`DeferredDisposedError`](/docs/api-reference/common/Task/variables/DeferredDisposedError-1.mdx)\> - -## Properties - - - -### type - -```ts -type: "DeferredDisposedError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/FetchError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/FetchError.mdx deleted file mode 100644 index 403eab6ca..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/FetchError.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / FetchError - -Defined in: [packages/common/src/Task.ts:3414](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3414) - -Error returned when a [fetch](/docs/api-reference/common/Task/functions/fetch.mdx) [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) fails. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`FetchError`](/docs/api-reference/common/Task/variables/FetchError.mdx)\> - -## Properties - - - -### error - -```ts -error: unknown; -``` - -#### Inherited from - -```ts -InferType.error -``` - -*** - - - -### type - -```ts -type: "FetchError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberSnapshot.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberSnapshot.mdx deleted file mode 100644 index 9ef74cc7a..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberSnapshot.mdx +++ /dev/null @@ -1,96 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / FiberSnapshot - -Defined in: [packages/common/src/Task.ts:916](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L916) - -A recursive snapshot of a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) tree. - -Snapshots use structural sharing — unchanged subtrees return the same object -reference. This is useful for UI libraries like React that leverage -referential transparency to skip re-rendering unchanged parts. Snapshots are -computed on demand rather than pushed on every change. Push would require -O(depth) new snapshot objects per mutation. - -## See - -[Runner.snapshot](/docs/api-reference/common/Task/interfaces/Runner.mdx#snapshot) - -## Properties - - - -### abortMask - -```ts -readonly abortMask: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"AbortMask">; -``` - -Defined in: [packages/common/src/Task.ts:927](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L927) - -The abort mask depth. `0` means abortable, `>= 1` means unabortable. - -*** - - - -### children - -```ts -readonly children: readonly FiberSnapshot[]; -``` - -Defined in: [packages/common/src/Task.ts:924](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L924) - -Child snapshots in run order. - -*** - - - -### id - -```ts -readonly id: string & Brand<"Id">; -``` - -Defined in: [packages/common/src/Task.ts:918](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L918) - -The [Runner.id](/docs/api-reference/common/Task/interfaces/Runner.mdx#id) of the [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx) this snapshot represents. - -*** - - - -### state - -```ts -readonly state: - | Readonly<{ - type: "Running"; -}> - | Readonly<{ - type: "Completing"; -}> - | Readonly<{ - outcome: | Readonly<{ - ok: true; - value: unknown; - }> - | Readonly<{ - error: unknown; - ok: false; - }>; - result: | Readonly<{ - ok: true; - value: unknown; - }> - | Readonly<{ - error: unknown; - ok: false; - }>; - type: "Completed"; -}>; -``` - -Defined in: [packages/common/src/Task.ts:921](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L921) - -The current lifecycle state. diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberStateCompleted.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberStateCompleted.mdx deleted file mode 100644 index 4c2381bff..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberStateCompleted.mdx +++ /dev/null @@ -1,186 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / FiberStateCompleted - -Defined in: [packages/common/src/Task.ts:868](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L868) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"Completed"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | `unknown` | -| `E` | `unknown` | - -## Properties - - - -### outcome - -```ts -readonly outcome: Result; -``` - -Defined in: [packages/common/src/Task.ts:884](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L884) - -What the task actually returned. - -Unlike `result`, not overridden by abort. - -*** - - - -### result - -```ts -readonly result: Result; -``` - -Defined in: [packages/common/src/Task.ts:877](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L877) - -The fiber's completion value. - -If abort was requested, this is [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) even if the task -completed successfully — see `outcome` for what the task actually -returned. - -*** - - - -### type - -```ts -readonly type: "Completed"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberStateCompleting.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberStateCompleting.mdx deleted file mode 100644 index 26c33cb78..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberStateCompleting.mdx +++ /dev/null @@ -1,145 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / FiberStateCompleting - -Defined in: [packages/common/src/Task.ts:866](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L866) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"Completing"`\> - -## Properties - - - -### type - -```ts -readonly type: "Completing"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberStateRunning.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberStateRunning.mdx deleted file mode 100644 index 9b713a2d6..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/FiberStateRunning.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / FiberStateRunning - -Defined in: [packages/common/src/Task.ts:864](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L864) - -The lifecycle state of a [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). - -- `running` — task running, no result yet -- `completing` — waiting for children to complete -- `completed` — completed with result and outcome - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"Running"`\> - -## Properties - - - -### type - -```ts -readonly type: "Running"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/Gate.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/Gate.mdx deleted file mode 100644 index 81e0f422a..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/Gate.mdx +++ /dev/null @@ -1,129 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / Gate - -Defined in: [packages/common/src/Task.ts:2348](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2348) - -A blocking [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) — like a gate. - -- **Closed**: Tasks wait. -- **Open**: Tasks proceed. - -Use it to pause execution based on a condition. Unlike a [Deferred](/docs/api-reference/common/Task/interfaces/Deferred.mdx) -(which triggers once), a [Gate](/docs/api-reference/common/Task/interfaces/Gate.mdx) can be opened and closed repeatedly. - -Disposing aborts all waiting tasks with [deferredDisposedError](/docs/api-reference/common/Task/variables/deferredDisposedError.mdx). - -## See - -[createGate](/docs/api-reference/common/Task/functions/createGate.mdx) - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `D` | `unknown` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### close() - -```ts -readonly close: () => void; -``` - -Defined in: [packages/common/src/Task.ts:2351](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2351) - -#### Returns - -`void` - -*** - - - -### isOpen() - -```ts -readonly isOpen: () => boolean; -``` - -Defined in: [packages/common/src/Task.ts:2352](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2352) - -#### Returns - -`boolean` - -*** - - - -### open() - -```ts -readonly open: () => void; -``` - -Defined in: [packages/common/src/Task.ts:2350](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2350) - -#### Returns - -`void` - -*** - - - -### wait - -```ts -readonly wait: Task; -``` - -Defined in: [packages/common/src/Task.ts:2349](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2349) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/MapAbortError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/MapAbortError.mdx deleted file mode 100644 index 0af6a5bc7..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/MapAbortError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / MapAbortError - -Defined in: [packages/common/src/Task.ts:2989](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2989) - -Abort reason used by [map](/docs/api-reference/common/Task/functions/map.mdx) when aborting remaining tasks. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`MapAbortError`](/docs/api-reference/common/Task/variables/MapAbortError-1.mdx)\> - -## Properties - - - -### type - -```ts -type: "MapAbortError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/Mutex.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/Mutex.mdx deleted file mode 100644 index f515a4ac0..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/Mutex.mdx +++ /dev/null @@ -1,116 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / Mutex - -Defined in: [packages/common/src/Task.ts:2606](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2606) - -A mutex (mutual exclusion) that ensures only one [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) runs at a time. - -This is a specialized version of a [Semaphore](/docs/api-reference/common/Task/interfaces/Semaphore.mdx) with a permit count of 1. - -### Example - -```ts -await using run = createRunner(); - -const mutex = createMutex(); - -const task = - (id: string): Task => - async (run) => { - const { console } = run.deps; - console.log("start", id); - await run(sleep("10ms")); - console.log("end", id); - return ok(); - }; - -await Promise.all([ - run(mutex.withLock(task("1"))), - run(mutex.withLock(task("2"))), -]); - -// start 1 -// end 1 -// start 2 -// end 2 -``` - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### withLock() - -```ts -readonly withLock: (task: Task) => Task; -``` - -Defined in: [packages/common/src/Task.ts:2613](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2613) - -Executes a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) while holding the mutex lock. - -Only one task can hold the lock at a time. Other tasks wait until the lock -is released. - -#### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | -| `D` | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `task` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | - -#### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/RaceLostError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/RaceLostError.mdx deleted file mode 100644 index 4049877bc..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/RaceLostError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RaceLostError - -Defined in: [packages/common/src/Task.ts:1898](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1898) - -Abort reason for tasks that lose a [race](/docs/api-reference/common/Task/functions/race.mdx). - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`RaceLostError`](/docs/api-reference/common/Task/variables/RaceLostError-1.mdx)\> - -## Properties - - - -### type - -```ts -type: "RaceLostError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/RepeatAttempt.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/RepeatAttempt.mdx deleted file mode 100644 index 9ebd53f57..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/RepeatAttempt.mdx +++ /dev/null @@ -1,82 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RepeatAttempt - -Defined in: [packages/common/src/Task.ts:2145](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2145) - -Info passed to [repeat](/docs/api-reference/common/Task/functions/repeat.mdx) [RepeatOptions.onRepeat](/docs/api-reference/common/Task/interfaces/RepeatOptions.mdx#onrepeat) callback. - -## Extends - -- [`ScheduleStep`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx)\<`Output`\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `Output` | - -## Properties - - - -### attempt - -```ts -readonly attempt: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/Schedule.ts:78](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L78) - -The current attempt. - -#### Inherited from - -[`ScheduleStep`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx).[`attempt`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx#attempt) - -*** - - - -### delay - -```ts -readonly delay: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Schedule.ts:84](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L84) - -Delay before this step executes. - -#### Inherited from - -[`ScheduleStep`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx).[`delay`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx#delay) - -*** - - - -### output - -```ts -readonly output: Output; -``` - -Defined in: [packages/common/src/Schedule.ts:81](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L81) - -Output from the [Schedule](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx) step. - -#### Inherited from - -[`ScheduleStep`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx).[`output`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx#output-1) - -*** - - - -### value - -```ts -readonly value: T; -``` - -Defined in: [packages/common/src/Task.ts:2146](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2146) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/RepeatOptions.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/RepeatOptions.mdx deleted file mode 100644 index 35037b312..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/RepeatOptions.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RepeatOptions - -Defined in: [packages/common/src/Task.ts:2130](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2130) - -Options for [repeat](/docs/api-reference/common/Task/functions/repeat.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `Output` | - -## Properties - - - -### onRepeat()? - -```ts -readonly optional onRepeat: (attempt: RepeatAttempt) => void; -``` - -Defined in: [packages/common/src/Task.ts:2137](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2137) - -Callback invoked before each repeat with value, repeat attempt number, -schedule output, and delay. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `attempt` | [`RepeatAttempt`](/docs/api-reference/common/Task/interfaces/RepeatAttempt.mdx)\<`T`, `Output`\> | - -#### Returns - -`void` - -*** - - - -### repeatable? - -```ts -readonly optional repeatable: Predicate; -``` - -Defined in: [packages/common/src/Task.ts:2132](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2132) - -Predicate to determine if value is repeatable. Defaults to all values. diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/RetryAttempt.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/RetryAttempt.mdx deleted file mode 100644 index c8251f034..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/RetryAttempt.mdx +++ /dev/null @@ -1,82 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RetryAttempt - -Defined in: [packages/common/src/Task.ts:1987](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1987) - -Info passed to [retry](/docs/api-reference/common/Task/functions/retry.mdx) [RetryOptions.onRetry](/docs/api-reference/common/Task/interfaces/RetryOptions.mdx#onretry) callback. - -## Extends - -- [`ScheduleStep`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx)\<`Output`\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `E` | -| `Output` | - -## Properties - - - -### attempt - -```ts -readonly attempt: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/Schedule.ts:78](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L78) - -The current attempt. - -#### Inherited from - -[`ScheduleStep`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx).[`attempt`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx#attempt) - -*** - - - -### delay - -```ts -readonly delay: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Schedule.ts:84](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L84) - -Delay before this step executes. - -#### Inherited from - -[`ScheduleStep`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx).[`delay`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx#delay) - -*** - - - -### error - -```ts -readonly error: E; -``` - -Defined in: [packages/common/src/Task.ts:1988](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1988) - -*** - - - -### output - -```ts -readonly output: Output; -``` - -Defined in: [packages/common/src/Schedule.ts:81](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Schedule.ts#L81) - -Output from the [Schedule](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx) step. - -#### Inherited from - -[`ScheduleStep`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx).[`output`](/docs/api-reference/common/Schedule/interfaces/ScheduleStep.mdx#output-1) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/RetryError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/RetryError.mdx deleted file mode 100644 index e6381303e..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/RetryError.mdx +++ /dev/null @@ -1,59 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RetryError - -Defined in: [packages/common/src/Task.ts:1996](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1996) - -Error returned when all retry attempts are exhausted. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"RetryError"`\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `E` | - -## Properties - - - -### attempts - -```ts -readonly attempts: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/Task.ts:2001](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2001) - -Total attempts made (initial + retries). - -*** - - - -### cause - -```ts -readonly cause: E; -``` - -Defined in: [packages/common/src/Task.ts:1998](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1998) - -The error from the final attempt. - -*** - - - -### type - -```ts -readonly type: "RetryError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/RetryOptions.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/RetryOptions.mdx deleted file mode 100644 index 26f8f656e..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/RetryOptions.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RetryOptions - -Defined in: [packages/common/src/Task.ts:1971](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1971) - -Options for [retry](/docs/api-reference/common/Task/functions/retry.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `E` | -| `Output` | - -## Properties - - - -### onRetry()? - -```ts -readonly optional onRetry: (attempt: RetryAttempt) => void; -``` - -Defined in: [packages/common/src/Task.ts:1979](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1979) - -Callback invoked before each retry attempt with error, retry attempt -number, schedule output, and delay. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `attempt` | [`RetryAttempt`](/docs/api-reference/common/Task/interfaces/RetryAttempt.mdx)\<`E`, `Output`\> | - -#### Returns - -`void` - -*** - - - -### retryable? - -```ts -readonly optional retryable: Predicate; -``` - -Defined in: [packages/common/src/Task.ts:1973](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1973) - -Predicate to determine if error is retryable. Defaults to all errors. diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/Runner.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/Runner.mdx deleted file mode 100644 index 6590ce81c..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/Runner.mdx +++ /dev/null @@ -1,510 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / Runner - -Defined in: [packages/common/src/Task.ts:478](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L478) - -Runs a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) with -[structured concurrency](https://en.wikipedia.org/wiki/Structured_concurrency) -guarantees. - -- **Lifetime** — child tasks are bound to parent scope -- **Cancellation** — abort propagates to all descendants -- **Observable state** — inspect running tasks via snapshots and events - -`Runner` is a callable object — callable because it's convenient to run tasks -as `run(task)`, and an object because it holds state for abortability and -monitoring. - -Evolu's structured concurrency leverages native JavaScript APIs: - -- `PromiseLike` as the async primitive -- `AbortSignal` for cancellation -- `await using` for resource management - -This makes Runner idiomatic to JavaScript, tiny with minimal overhead, and -easy to debug (native stack traces). - -## See - - - [createRunner](/docs/api-reference/common/Task/variables/createRunner.mdx) - - [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) - -## Extends - -- [`AsyncDisposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `D` | `unknown` | - -```ts -Runner(task: Task): Fiber; -``` - -Defined in: [packages/common/src/Task.ts:480](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L480) - -Runs a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) and returns a [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx) handle. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `task` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | - -## Returns - -[`Fiber`](/docs/api-reference/common/Task/classes/Fiber.mdx)\<`T`, `E`, `D`\> - -## Methods - - - -### \[asyncDispose\]() - -#### Call Signature - -```ts -asyncDispose: PromiseLike; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:40 - -##### Returns - -[`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<`void`\> - -##### Inherited from - -```ts -AsyncDisposable.[asyncDispose] -``` - -#### Call Signature - -```ts -asyncDispose: PromiseLike; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:13 - -##### Returns - -[`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<`void`\> - -##### Inherited from - -```ts -AsyncDisposable.[asyncDispose] -``` - -## Properties - - - -### abortMask - -```ts -readonly abortMask: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"AbortMask">; -``` - -Defined in: [packages/common/src/Task.ts:492](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L492) - -The abort mask depth. `0` means abortable, `>= 1` means unabortable. - -*** - - - -### addDeps() - -```ts -readonly addDeps: (extraDeps: E) => Runner; -``` - -Defined in: [packages/common/src/Task.ts:677](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L677) - -Adds additional dependencies to this runner and returns it. - -Use for runtime-created dependencies — dependencies that cannot be created -in the composition root (e.g., app start). - -### Example - -```ts -// One-shot -await run.addDeps({ db })(getUser(123)); - -// Multiple deps at once -await run.addDeps({ db, cache })(task); - -// Reusable — config comes from outside (message, file, etc.) -type DbWorkerDeps = DbDep; // or DbDep & CacheDep & ... - -const init = - (config: Config): Task => - async (_run) => { - const { createDb } = _run.deps; - await using stack = _run.stack(); - - const db = await stack.use(createDb(config.connectionString)); - if (!db.ok) return db; - - const run = _run.addDeps({ db: db.value }); - - await run(getUser(123)); - await run(insertUser(user)); - return ok(); - }; -``` - -The `_run` naming convention reserves `run` for the extended runner. - -## FAQ - -### How does it work? - -This is the whole implementation: - -```ts -run.addDeps = >(newDeps: E): Runner => { - depsRef.modify((currentDeps) => { - const duplicate = Object.keys(newDeps).find( - (k) => k in currentDeps, - ); - assert(!duplicate, `Dependency '${duplicate}' already added.`); - return { ...currentDeps, ...newDeps }; - }); - return self as unknown as Runner; -}; -``` - -Dependencies are stored in a shared [Ref](/docs/api-reference/common/Ref/interfaces/Ref.mdx), so `addDeps` propagates to -all runners. The runtime assertion ensures dependencies are created once — -automatic deduplication would mask poor design (dependencies should have a -single, clear point of creation). - -#### Type Parameters - -| Type Parameter | -| ------ | -| `E` *extends* [`NewKeys`](/docs/api-reference/common/Types/type-aliases/NewKeys.mdx)\<`E`, `D`\> | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `extraDeps` | `E` | - -#### Returns - -`Runner`\<`D` & `E`\> - -*** - - - -### concurrency - -```ts -readonly concurrency: Concurrency; -``` - -Defined in: [packages/common/src/Task.ts:614](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L614) - -#### See - - - [Concurrency](/docs/api-reference/common/Task/type-aliases/Concurrency.mdx) - - [parallel](/docs/api-reference/common/Task/functions/parallel.mdx) - -*** - - - -### daemon - -```ts -readonly daemon: Run; -``` - -Defined in: [packages/common/src/Task.ts:561](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L561) - -Runs a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) on the root runner instead of the current runner. - -### Example - -```ts -const myTask: Task = async (run) => { - // Aborted when myTask ends - run(helperTask); - - // Outlives myTask, aborted when the root runner is disposed - run.daemon(backgroundSync); - - return ok(); -}; -``` - -*** - - - -### defer() - -```ts -readonly defer: (onDisposeAsync: Task) => AsyncDisposable; -``` - -Defined in: [packages/common/src/Task.ts:592](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L592) - -Creates an [AsyncDisposable](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) that runs the task when disposed. - -Use for one-off task; for multiple, use [Runner.stack](/docs/api-reference/common/Task/interfaces/Runner.mdx#stack) instead. - -### Example - -```ts -// One-off task with defer -await using _ = run.defer(task); - -// For more tasks, a stack is more practical -await using stack = run.stack(); -stack.defer(taskA); -stack.defer(taskB); - -// Spread to make any object disposable with Task -const connection = { - send: (data: Data) => { - // - }, - ...run.defer(async (run) => { - await run(notifyPeers); - return ok(); - }), -}; -// connection[Symbol.asyncDispose] is now defined -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `onDisposeAsync` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`, `never`, `D`\> | - -#### Returns - -[`AsyncDisposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -*** - - - -### deps - -```ts -readonly deps: ConsoleDep & RandomBytesDep & RandomDep & TimeDep & Partial & Partial & Partial & D; -``` - -Defined in: [packages/common/src/Task.ts:608](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L608) - -Returns the dependencies passed to [createRunner](/docs/api-reference/common/Task/variables/createRunner.mdx). - -*** - - - -### getChildren() - -```ts -readonly getChildren: () => ReadonlySet>; -``` - -Defined in: [packages/common/src/Task.ts:510](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L510) - -Returns the current child [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx)s. - -#### Returns - -`ReadonlySet`\<[`Fiber`](/docs/api-reference/common/Task/classes/Fiber.mdx)\<`any`, `any`, `D`\>\> - -*** - - - -### getState() - -```ts -readonly getState: () => FiberState; -``` - -Defined in: [packages/common/src/Task.ts:507](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L507) - -Returns the current [FiberState](/docs/api-reference/common/Task/type-aliases/FiberState.mdx). - -#### Returns - -[`FiberState`](/docs/api-reference/common/Task/type-aliases/FiberState.mdx) - -*** - - - -### id - -```ts -readonly id: string & Brand<"Id">; -``` - -Defined in: [packages/common/src/Task.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L483) - -Unique [Id](/docs/api-reference/common/Type/variables/Id.mdx) for this runner. - -*** - - - -### onAbort() - -```ts -readonly onAbort: (callback: Callback) => void; -``` - -Defined in: [packages/common/src/Task.ts:504](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L504) - -Registers a callback to run when abort is requested. - -The callback receives the abort reason (extracted from [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx)). -If already aborted, the callback is invoked immediately. For -[unabortable](/docs/api-reference/common/Task/variables/unabortable.mdx) tasks, the callback is never invoked. - -Intentionally synchronous — abort is signal propagation, not cleanup. Use -[Runner.defer](/docs/api-reference/common/Task/interfaces/Runner.mdx#defer) for async cleanup that must run regardless of abort. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `callback` | [`Callback`](/docs/api-reference/common/Types/type-aliases/Callback.mdx)\<`unknown`\> | - -#### Returns - -`void` - -*** - - - -### onEvent - -```ts -onEvent: - | (event: RunnerEvent) => void - | undefined; -``` - -Defined in: [packages/common/src/Task.ts:542](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L542) - -Callback for monitoring runner events. - -Called when this runner or any descendant emits a [RunnerEvent](/docs/api-reference/common/Task/variables/RunnerEvent.mdx). -Events bubble up through parent runners, enabling centralized monitoring. -Only emitted when [RunnerConfig.eventsEnabled](/docs/api-reference/common/Task/interfaces/RunnerConfig.mdx#eventsenabled) is `true`. - -*** - - - -### parent - -```ts -readonly parent: Runner | null; -``` - -Defined in: [packages/common/src/Task.ts:486](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L486) - -The parent [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx), if this runner was created as a child. - -*** - - - -### signal - -```ts -readonly signal: AbortSignal; -``` - -Defined in: [packages/common/src/Task.ts:489](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L489) - -#### See - -https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal - -*** - - - -### snapshot() - -```ts -readonly snapshot: () => FiberSnapshot; -``` - -Defined in: [packages/common/src/Task.ts:533](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L533) - -Creates a memoized [FiberSnapshot](/docs/api-reference/common/Task/interfaces/FiberSnapshot.mdx) of this runner. - -Use for monitoring, debugging, or building UI that visualizes task trees. - -### Example - -```ts -// React integration with useSyncExternalStore -const useFiberSnapshot = (runner: Runner) => - useSyncExternalStore( - (callback) => { - runner.onEvent = callback; - return () => { - runner.onEvent = undefined; - }; - }, - () => runner.snapshot(), - ); -``` - -#### Returns - -[`FiberSnapshot`](/docs/api-reference/common/Task/interfaces/FiberSnapshot.mdx) - -*** - - - -### stack() - -```ts -readonly stack: () => AsyncDisposableStack; -``` - -Defined in: [packages/common/src/Task.ts:605](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L605) - -Creates an [AsyncDisposableStack](/docs/api-reference/common/Task/classes/AsyncDisposableStack.mdx) bound to the root runner. - -### Example - -```ts -await using stack = run.stack(); -stack.defer(task); -const conn = await stack.use(openConnection); -``` - -#### Returns - -[`AsyncDisposableStack`](/docs/api-reference/common/Task/classes/AsyncDisposableStack.mdx)\<`D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerClosingError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerClosingError.mdx deleted file mode 100644 index c1e877534..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerClosingError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunnerClosingError - -Defined in: [packages/common/src/Task.ts:1501](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1501) - -Error used as [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) reason when a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) is disposed. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`RunnerClosingError`](/docs/api-reference/common/Task/variables/RunnerClosingError-1.mdx)\> - -## Properties - - - -### type - -```ts -type: "RunnerClosingError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerConfig.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerConfig.mdx deleted file mode 100644 index dbd347563..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerConfig.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunnerConfig - -Defined in: [packages/common/src/Task.ts:1164](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1164) - -Configuration for [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) behavior. - -## Properties - - - -### eventsEnabled - -```ts -readonly eventsEnabled: Ref; -``` - -Defined in: [packages/common/src/Task.ts:1171](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1171) - -Whether to emit [RunnerEvent](/docs/api-reference/common/Task/variables/RunnerEvent.mdx)s. - -Use a [Ref](/docs/api-reference/common/Ref/interfaces/Ref.mdx) to enable/disable at runtime without recreating the -runner. Disabled by default for zero overhead in production. diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerConfigDep.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerConfigDep.mdx deleted file mode 100644 index 9bcd53449..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerConfigDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunnerConfigDep - -Defined in: [packages/common/src/Task.ts:1174](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1174) - -## Properties - - - -### runnerConfig - -```ts -readonly runnerConfig: RunnerConfig; -``` - -Defined in: [packages/common/src/Task.ts:1175](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1175) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerEvent.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerEvent.mdx deleted file mode 100644 index f7d207c17..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/RunnerEvent.mdx +++ /dev/null @@ -1,90 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunnerEvent - -Defined in: [packages/common/src/Task.ts:950](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L950) - -Events emitted by a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) for monitoring and debugging. - -Events bubble up through parent runners, enabling centralized monitoring at -the root. Use with [Runner.onEvent](/docs/api-reference/common/Task/interfaces/Runner.mdx#onevent) to track task lifecycle. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`RunnerEvent`](/docs/api-reference/common/Task/variables/RunnerEvent.mdx)\> - -## Properties - - - -### data - -```ts -data: - | Readonly<{ - childId: string & Brand<"Id">; - type: "ChildAdded"; -}> - | Readonly<{ - childId: string & Brand<"Id">; - type: "ChildRemoved"; -}> - | Readonly<{ - state: | Readonly<{ - type: "Running"; - }> - | Readonly<{ - type: "Completing"; - }> - | Readonly<{ - outcome: | Readonly<{ - ok: true; - value: unknown; - }> - | Readonly<{ - error: unknown; - ok: false; - }>; - result: | Readonly<{ - ok: true; - value: unknown; - }> - | Readonly<{ - error: unknown; - ok: false; - }>; - type: "Completed"; - }>; - type: "StateChanged"; -}>; -``` - -#### Inherited from - -[`RunnerEvent`](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx).[`data`](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx#data) - -*** - - - -### id - -```ts -id: string & Brand<"Id">; -``` - -#### Inherited from - -[`RunnerEvent`](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx).[`id`](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx#id) - -*** - - - -### timestamp - -```ts -timestamp: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -#### Inherited from - -[`RunnerEvent`](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx).[`timestamp`](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx#timestamp) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/Semaphore.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/Semaphore.mdx deleted file mode 100644 index 250aad685..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/Semaphore.mdx +++ /dev/null @@ -1,90 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / Semaphore - -Defined in: [packages/common/src/Task.ts:2425](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2425) - -A semaphore that limits the number of concurrent [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s. - -For mutual exclusion (limiting to exactly one [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)), use [Mutex](/docs/api-reference/common/Task/interfaces/Mutex.mdx) -instead. - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### withPermit() - -```ts -readonly withPermit: (task: Task) => Task; -``` - -Defined in: [packages/common/src/Task.ts:2433](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2433) - -Executes a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) while holding a semaphore permit. - -The task waits until a permit is available. If the semaphore is disposed -while waiting or running, the task is aborted with an [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) -whose reason is [semaphoreDisposedError](/docs/api-reference/common/Task/variables/semaphoreDisposedError.mdx). - -#### Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | -| `D` | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `task` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | - -#### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/SemaphoreDisposedError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/SemaphoreDisposedError.mdx deleted file mode 100644 index d20689a04..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/SemaphoreDisposedError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / SemaphoreDisposedError - -Defined in: [packages/common/src/Task.ts:2552](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2552) - -Abort reason used when a [Semaphore](/docs/api-reference/common/Task/interfaces/Semaphore.mdx) is disposed. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`SemaphoreDisposedError`](/docs/api-reference/common/Task/variables/SemaphoreDisposedError-1.mdx)\> - -## Properties - - - -### type - -```ts -type: "SemaphoreDisposedError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/interfaces/TimeoutError.mdx b/.generated/evolu-docs/api-reference/common/Task/interfaces/TimeoutError.mdx deleted file mode 100644 index a883ac40e..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/interfaces/TimeoutError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / TimeoutError - -Defined in: [packages/common/src/Task.ts:1956](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1956) - -Typed error returned by [timeout](/docs/api-reference/common/Task/functions/timeout.mdx) when a task exceeds its time limit. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`TimeoutError`](/docs/api-reference/common/Task/variables/TimeoutError-1.mdx)\> - -## Properties - - - -### type - -```ts -type: "TimeoutError"; -``` - -#### Inherited from - -[`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx).[`type`](/docs/api-reference/common/Task/interfaces/AbortError.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Task/page.mdx b/.generated/evolu-docs/api-reference/common/Task/page.mdx deleted file mode 100644 index 3d2037685..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/page.mdx +++ /dev/null @@ -1,157 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Task - -JavaScript-native structured concurrency. - -## Core Types - -| Name | Description | -| ------ | ------ | -| [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx) | `Fiber` is a handle to a running [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that can be awaited, aborted, or disposed. | -| [AbortError](/docs/api-reference/common/Task/interfaces/AbortError.mdx) | Error returned when a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) is aborted via [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal). | -| [FiberSnapshot](/docs/api-reference/common/Task/interfaces/FiberSnapshot.mdx) | A recursive snapshot of a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) tree. | -| [FiberStateRunning](/docs/api-reference/common/Task/interfaces/FiberStateRunning.mdx) | The lifecycle state of a [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). | -| [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) | Runs a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) with [structured concurrency](https://en.wikipedia.org/wiki/Structured_concurrency) guarantees. | -| [NextTask](/docs/api-reference/common/Task/type-aliases/NextTask.mdx) | A [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that can complete with a value, signal done, or fail. | -| [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) | JavaScript-native structured concurrency. | -| [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) | Error returned when a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) is aborted via [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal). | - -## Creating Runners - -| Name | Description | -| ------ | ------ | -| [CreateRunner](/docs/api-reference/common/Task/interfaces/CreateRunner.mdx) | Factory type for creating root [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) instances. | -| [RunnerClosingError](/docs/api-reference/common/Task/interfaces/RunnerClosingError.mdx) | Error used as [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) reason when a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) is disposed. | -| [createRunner](/docs/api-reference/common/Task/variables/createRunner.mdx) | Creates root [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx). | -| [runnerClosingError](/docs/api-reference/common/Task/variables/runnerClosingError.mdx) | The [RunnerClosingError](/docs/api-reference/common/Task/variables/RunnerClosingError-1.mdx) used when a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) is disposed. | -| [RunnerClosingError](/docs/api-reference/common/Task/variables/RunnerClosingError-1.mdx) | Error used as [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) reason when a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) is disposed. | - -## Abort Masking - -| Name | Description | -| ------ | ------ | -| [AbortMask](/docs/api-reference/common/Task/type-aliases/AbortMask.mdx) | Abort mask depth for a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) or [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). | -| [AbortMask](/docs/api-reference/common/Task/variables/AbortMask.mdx) | Abort mask depth for a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) or [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). | -| [unabortable](/docs/api-reference/common/Task/variables/unabortable.mdx) | Makes a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) unabortable. | -| [unabortableMask](/docs/api-reference/common/Task/functions/unabortableMask.mdx) | Like [unabortable](/docs/api-reference/common/Task/variables/unabortable.mdx), but provides `restore` to restore abortability for specific tasks. | - -## Resource Management - -| Class | Description | -| ------ | ------ | -| [AsyncDisposableStack](/docs/api-reference/common/Task/classes/AsyncDisposableStack.mdx) | Task-aware wrapper around native [AsyncDisposableStack](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncDisposableStack). | - -## Composition - -| Name | Description | -| ------ | ------ | -| [AllAbortError](/docs/api-reference/common/Task/interfaces/AllAbortError.mdx) | Abort reason used by [all](/docs/api-reference/common/Task/functions/all.mdx) when aborting remaining tasks. | -| [AllSettledAbortError](/docs/api-reference/common/Task/interfaces/AllSettledAbortError.mdx) | Abort reason used by [allSettled](/docs/api-reference/common/Task/functions/allSettled.mdx) when aborted externally. | -| [AnyAbortError](/docs/api-reference/common/Task/interfaces/AnyAbortError.mdx) | Abort reason used by [any](/docs/api-reference/common/Task/functions/any.mdx) when aborting remaining tasks. | -| [CollectOptions](/docs/api-reference/common/Task/interfaces/CollectOptions.mdx) | Options for [all](/docs/api-reference/common/Task/functions/all.mdx), [allSettled](/docs/api-reference/common/Task/functions/allSettled.mdx), [map](/docs/api-reference/common/Task/functions/map.mdx), and [mapSettled](/docs/api-reference/common/Task/functions/mapSettled.mdx). | -| [FetchError](/docs/api-reference/common/Task/interfaces/FetchError.mdx) | Error returned when a [fetch](/docs/api-reference/common/Task/functions/fetch.mdx) [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) fails. | -| [MapAbortError](/docs/api-reference/common/Task/interfaces/MapAbortError.mdx) | Abort reason used by [map](/docs/api-reference/common/Task/functions/map.mdx) when aborting remaining tasks. | -| [RaceLostError](/docs/api-reference/common/Task/interfaces/RaceLostError.mdx) | Abort reason for tasks that lose a [race](/docs/api-reference/common/Task/functions/race.mdx). | -| [RepeatAttempt](/docs/api-reference/common/Task/interfaces/RepeatAttempt.mdx) | Info passed to [repeat](/docs/api-reference/common/Task/functions/repeat.mdx) [RepeatOptions.onRepeat](/docs/api-reference/common/Task/interfaces/RepeatOptions.mdx#onrepeat) callback. | -| [RepeatOptions](/docs/api-reference/common/Task/interfaces/RepeatOptions.mdx) | Options for [repeat](/docs/api-reference/common/Task/functions/repeat.mdx). | -| [RetryAttempt](/docs/api-reference/common/Task/interfaces/RetryAttempt.mdx) | Info passed to [retry](/docs/api-reference/common/Task/functions/retry.mdx) [RetryOptions.onRetry](/docs/api-reference/common/Task/interfaces/RetryOptions.mdx#onretry) callback. | -| [RetryError](/docs/api-reference/common/Task/interfaces/RetryError.mdx) | Error returned when all retry attempts are exhausted. | -| [RetryOptions](/docs/api-reference/common/Task/interfaces/RetryOptions.mdx) | Options for [retry](/docs/api-reference/common/Task/functions/retry.mdx). | -| [TimeoutError](/docs/api-reference/common/Task/interfaces/TimeoutError.mdx) | Typed error returned by [timeout](/docs/api-reference/common/Task/functions/timeout.mdx) when a task exceeds its time limit. | -| [allAbortError](/docs/api-reference/common/Task/variables/allAbortError.mdx) | [AllAbortError](/docs/api-reference/common/Task/variables/AllAbortError-1.mdx) used as abort reason in [all](/docs/api-reference/common/Task/functions/all.mdx). | -| [AllAbortError](/docs/api-reference/common/Task/variables/AllAbortError-1.mdx) | Abort reason used by [all](/docs/api-reference/common/Task/functions/all.mdx) when aborting remaining tasks. | -| [allSettledAbortError](/docs/api-reference/common/Task/variables/allSettledAbortError.mdx) | [AllSettledAbortError](/docs/api-reference/common/Task/variables/AllSettledAbortError-1.mdx) used as abort reason in [allSettled](/docs/api-reference/common/Task/functions/allSettled.mdx). | -| [AllSettledAbortError](/docs/api-reference/common/Task/variables/AllSettledAbortError-1.mdx) | Abort reason used by [allSettled](/docs/api-reference/common/Task/functions/allSettled.mdx) when aborted externally. | -| [anyAbortError](/docs/api-reference/common/Task/variables/anyAbortError.mdx) | [AnyAbortError](/docs/api-reference/common/Task/variables/AnyAbortError-1.mdx) used as abort reason in [any](/docs/api-reference/common/Task/functions/any.mdx). | -| [AnyAbortError](/docs/api-reference/common/Task/variables/AnyAbortError-1.mdx) | Abort reason used by [any](/docs/api-reference/common/Task/functions/any.mdx) when aborting remaining tasks. | -| [FetchError](/docs/api-reference/common/Task/variables/FetchError.mdx) | Error returned when a [fetch](/docs/api-reference/common/Task/functions/fetch.mdx) [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) fails. | -| [mapAbortError](/docs/api-reference/common/Task/variables/mapAbortError.mdx) | [MapAbortError](/docs/api-reference/common/Task/variables/MapAbortError-1.mdx) used as abort reason in [map](/docs/api-reference/common/Task/functions/map.mdx). | -| [MapAbortError](/docs/api-reference/common/Task/variables/MapAbortError-1.mdx) | Abort reason used by [map](/docs/api-reference/common/Task/functions/map.mdx) when aborting remaining tasks. | -| [raceLostError](/docs/api-reference/common/Task/variables/raceLostError.mdx) | [RaceLostError](/docs/api-reference/common/Task/variables/RaceLostError-1.mdx) used as abort reason in [race](/docs/api-reference/common/Task/functions/race.mdx). | -| [RaceLostError](/docs/api-reference/common/Task/variables/RaceLostError-1.mdx) | Abort reason for tasks that lose a [race](/docs/api-reference/common/Task/functions/race.mdx). | -| [timeoutError](/docs/api-reference/common/Task/variables/timeoutError.mdx) | [TimeoutError](/docs/api-reference/common/Task/variables/TimeoutError-1.mdx) used as abort reason in [timeout](/docs/api-reference/common/Task/functions/timeout.mdx). | -| [TimeoutError](/docs/api-reference/common/Task/variables/TimeoutError-1.mdx) | Typed error returned by [timeout](/docs/api-reference/common/Task/functions/timeout.mdx) when a task exceeds its time limit. | -| [yieldNow](/docs/api-reference/common/Task/variables/yieldNow.mdx) | Yields execution to allow other work to proceed. | -| [all](/docs/api-reference/common/Task/functions/all.mdx) | Fails fast on first error across multiple [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s. | -| [allSettled](/docs/api-reference/common/Task/functions/allSettled.mdx) | Completes all [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s regardless of individual failures. | -| [any](/docs/api-reference/common/Task/functions/any.mdx) | Returns the first [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that succeeds. | -| [callback](/docs/api-reference/common/Task/functions/callback.mdx) | Creates a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) from a callback-based API. | -| [fetch](/docs/api-reference/common/Task/functions/fetch.mdx) | Creates a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that wraps the native [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). | -| [map](/docs/api-reference/common/Task/functions/map.mdx) | Maps values to [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s, failing fast on first error. | -| [mapSettled](/docs/api-reference/common/Task/functions/mapSettled.mdx) | Maps values to [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s, completing all regardless of failures. | -| [parallel](/docs/api-reference/common/Task/functions/parallel.mdx) | Runs tasks in parallel instead of sequentially. | -| [race](/docs/api-reference/common/Task/functions/race.mdx) | Returns a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that completes first. | -| [repeat](/docs/api-reference/common/Task/functions/repeat.mdx) | Repeats a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) according to a [Schedule](/docs/api-reference/common/Schedule/type-aliases/Schedule.mdx). | -| [retry](/docs/api-reference/common/Task/functions/retry.mdx) | Wraps a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) with retry logic. | -| [sleep](/docs/api-reference/common/Task/functions/sleep.mdx) | Pauses execution for a specified duration. | -| [timeout](/docs/api-reference/common/Task/functions/timeout.mdx) | Wraps a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) with a time limit. | - -## Concurrency Primitives - -| Name | Description | -| ------ | ------ | -| [Deferred](/docs/api-reference/common/Task/interfaces/Deferred.mdx) | A value that can be resolved later. | -| [DeferredDisposedError](/docs/api-reference/common/Task/interfaces/DeferredDisposedError.mdx) | Abort reason used when a [Deferred](/docs/api-reference/common/Task/interfaces/Deferred.mdx) is disposed. | -| [Gate](/docs/api-reference/common/Task/interfaces/Gate.mdx) | A blocking [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) — like a gate. | -| [Mutex](/docs/api-reference/common/Task/interfaces/Mutex.mdx) | A mutex (mutual exclusion) that ensures only one [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) runs at a time. | -| [Semaphore](/docs/api-reference/common/Task/interfaces/Semaphore.mdx) | A semaphore that limits the number of concurrent [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s. | -| [SemaphoreDisposedError](/docs/api-reference/common/Task/interfaces/SemaphoreDisposedError.mdx) | Abort reason used when a [Semaphore](/docs/api-reference/common/Task/interfaces/Semaphore.mdx) is disposed. | -| [Concurrency](/docs/api-reference/common/Task/type-aliases/Concurrency.mdx) | Maximum number of concurrent tasks. | -| [deferredDisposedError](/docs/api-reference/common/Task/variables/deferredDisposedError.mdx) | [DeferredDisposedError](/docs/api-reference/common/Task/variables/DeferredDisposedError-1.mdx) used as abort reason in [createDeferred](/docs/api-reference/common/Task/functions/createDeferred.mdx). | -| [DeferredDisposedError](/docs/api-reference/common/Task/variables/DeferredDisposedError-1.mdx) | Abort reason used when a [Deferred](/docs/api-reference/common/Task/interfaces/Deferred.mdx) is disposed. | -| [semaphoreDisposedError](/docs/api-reference/common/Task/variables/semaphoreDisposedError.mdx) | [SemaphoreDisposedError](/docs/api-reference/common/Task/variables/SemaphoreDisposedError-1.mdx) used as abort reason in [createSemaphore](/docs/api-reference/common/Task/functions/createSemaphore.mdx). | -| [SemaphoreDisposedError](/docs/api-reference/common/Task/variables/SemaphoreDisposedError-1.mdx) | Abort reason used when a [Semaphore](/docs/api-reference/common/Task/interfaces/Semaphore.mdx) is disposed. | -| [createDeferred](/docs/api-reference/common/Task/functions/createDeferred.mdx) | Creates a [Deferred](/docs/api-reference/common/Task/interfaces/Deferred.mdx). | -| [createGate](/docs/api-reference/common/Task/functions/createGate.mdx) | Creates a [Gate](/docs/api-reference/common/Task/interfaces/Gate.mdx) that starts closed. | -| [createMutex](/docs/api-reference/common/Task/functions/createMutex.mdx) | Creates a [Mutex](/docs/api-reference/common/Task/interfaces/Mutex.mdx). | -| [createSemaphore](/docs/api-reference/common/Task/functions/createSemaphore.mdx) | Creates a [Semaphore](/docs/api-reference/common/Task/interfaces/Semaphore.mdx) that limits concurrent [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)s. | - -## Monitoring - -| Name | Description | -| ------ | ------ | -| [RunnerConfig](/docs/api-reference/common/Task/interfaces/RunnerConfig.mdx) | Configuration for [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) behavior. | -| [RunnerEvent](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx) | Events emitted by a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) for monitoring and debugging. | -| [FiberSnapshotState](/docs/api-reference/common/Task/type-aliases/FiberSnapshotState.mdx) | [FiberState](/docs/api-reference/common/Task/type-aliases/FiberState.mdx) Type. | -| [RunnerEventData](/docs/api-reference/common/Task/type-aliases/RunnerEventData.mdx) | The event-specific payload of a [RunnerEvent](/docs/api-reference/common/Task/variables/RunnerEvent.mdx). | -| [FiberSnapshotState](/docs/api-reference/common/Task/variables/FiberSnapshotState.mdx) | [FiberState](/docs/api-reference/common/Task/type-aliases/FiberState.mdx) Type. | -| [RunnerEvent](/docs/api-reference/common/Task/variables/RunnerEvent.mdx) | Events emitted by a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) for monitoring and debugging. | -| [RunnerEventData](/docs/api-reference/common/Task/variables/RunnerEventData.mdx) | The event-specific payload of a [RunnerEvent](/docs/api-reference/common/Task/variables/RunnerEvent.mdx). | - -## Type Utilities - -| Type Alias | Description | -| ------ | ------ | -| [AnyTask](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx) | Shorthand for a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) with `any` type parameters. | -| [InferFiberDeps](/docs/api-reference/common/Task/type-aliases/InferFiberDeps.mdx) | Extracts the deps type from a [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). | -| [InferFiberErr](/docs/api-reference/common/Task/type-aliases/InferFiberErr.mdx) | Extracts the error type from a [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). | -| [InferFiberOk](/docs/api-reference/common/Task/type-aliases/InferFiberOk.mdx) | Extracts the value type from a [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). | -| [InferTaskDeps](/docs/api-reference/common/Task/type-aliases/InferTaskDeps.mdx) | Extracts the deps type from a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx). | -| [InferTaskDone](/docs/api-reference/common/Task/type-aliases/InferTaskDone.mdx) | Extracts the done value type from a [NextTask](/docs/api-reference/common/Task/type-aliases/NextTask.mdx). | -| [InferTaskErr](/docs/api-reference/common/Task/type-aliases/InferTaskErr.mdx) | Extracts the error type from a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx). | -| [InferTaskOk](/docs/api-reference/common/Task/type-aliases/InferTaskOk.mdx) | Extracts the value type from a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx). | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [FiberStateCompleted](/docs/api-reference/common/Task/interfaces/FiberStateCompleted.mdx) | Base interface for objects with a discriminant `type` property. | -| [FiberStateCompleting](/docs/api-reference/common/Task/interfaces/FiberStateCompleting.mdx) | Base interface for objects with a discriminant `type` property. | -| [RunnerConfigDep](/docs/api-reference/common/Task/interfaces/RunnerConfigDep.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [AnyAllFailed](/docs/api-reference/common/Task/type-aliases/AnyAllFailed.mdx) | Tie-breaker for [any](/docs/api-reference/common/Task/functions/any.mdx) when all tasks fail. | -| [FiberState](/docs/api-reference/common/Task/type-aliases/FiberState.mdx) | - | -| [Run](/docs/api-reference/common/Task/type-aliases/Run.mdx) | Backward-compatible alias for upstream naming. | -| [RunConfig](/docs/api-reference/common/Task/type-aliases/RunConfig.mdx) | Backward-compatible alias. | -| [RunConfigDep](/docs/api-reference/common/Task/type-aliases/RunConfigDep.mdx) | Backward-compatible alias. | -| [RunDeps](/docs/api-reference/common/Task/type-aliases/RunDeps.mdx) | Backward-compatible alias. | -| [RunnerDeps](/docs/api-reference/common/Task/type-aliases/RunnerDeps.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [createRun](/docs/api-reference/common/Task/variables/createRun.mdx) | Backward-compatible alias. | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/AbortMask.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/AbortMask.mdx deleted file mode 100644 index acda2b51a..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/AbortMask.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AbortMask - -```ts -type AbortMask = number & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Int"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"NonNegative"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"AbortMask">; -``` - -Defined in: [packages/common/src/Task.ts:704](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L704) - -Abort mask depth for a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) or [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). - -- `0` — abortable (default) -- `>= 1` — inside [unabortable](/docs/api-reference/common/Task/variables/unabortable.mdx), abort requests are ignored - -The mask tracks nested unabortable regions. When abort is requested, the -signal only propagates if `mask === 0`. - -- [unabortable](/docs/api-reference/common/Task/variables/unabortable.mdx) increments the mask — task becomes protected -- [unabortableMask](/docs/api-reference/common/Task/functions/unabortableMask.mdx) provides `restore` to restore the previous mask -- Tasks inherit their parent's mask by default - -This enables nested acquire/use/release patterns where each level can have -its own abortable section while outer acquisitions remain protected. - -UI/debugging tools can use this to visually distinguish protected tasks -(e.g., different icon or color) and explain why abort requests are ignored. diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/AnyAllFailed.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/AnyAllFailed.mdx deleted file mode 100644 index 26741264e..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/AnyAllFailed.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AnyAllFailed - -```ts -type AnyAllFailed = "input" | "completion"; -``` - -Defined in: [packages/common/src/Task.ts:3159](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3159) - -Tie-breaker for [any](/docs/api-reference/common/Task/functions/any.mdx) when all tasks fail. - -Used only when no task succeeds. - -- `"input"` returns the error from the last task in the input array. This is - stable under concurrency and generally produces deterministic tests. -- `"completion"` returns the error from the task that finished last. This - reflects timing but can vary across runs when task timing varies. - -### Example - -```ts -await using run = createRunner(); -const result = await run( - parallel(any([a, b, c], { allFailed: "completion" })), -); -``` diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/AnyTask.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/AnyTask.mdx deleted file mode 100644 index b0aec87b4..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/AnyTask.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AnyTask - -```ts -type AnyTask = Task; -``` - -Defined in: [packages/common/src/Task.ts:383](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L383) - -Shorthand for a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) with `any` type parameters. diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/Concurrency.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/Concurrency.mdx deleted file mode 100644 index 517752e16..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/Concurrency.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / Concurrency - -```ts -type Concurrency = - | Int1To100 - | PositiveInt; -``` - -Defined in: [packages/common/src/Task.ts:717](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L717) - -Maximum number of concurrent tasks. - -Default is 1 (sequential). Use 1-100 as a literal or [PositiveInt](/docs/api-reference/common/Type/variables/PositiveInt.mdx) for -larger values. - -## See - - - [parallel](/docs/api-reference/common/Task/functions/parallel.mdx) - - [createSemaphore](/docs/api-reference/common/Task/functions/createSemaphore.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/FiberSnapshotState.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/FiberSnapshotState.mdx deleted file mode 100644 index edbe116a7..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/FiberSnapshotState.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / FiberSnapshotState - -```ts -type FiberSnapshotState = Readonly<{ type: "Running"; }> | Readonly<{ type: "Completing"; }> | Readonly<{ type: "Completed"; result: Readonly<{ value: unknown; ok: true; }> | Readonly<{ error: unknown; ok: false; }>; outcome: Readonly<{ value: unknown; ok: true; }> | Readonly<{ error: unknown; ok: false; }>; }>; -``` - -Defined in: [packages/common/src/Task.ts:897](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L897) - -[FiberState](/docs/api-reference/common/Task/type-aliases/FiberState.mdx) Type. diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/FiberState.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/FiberState.mdx deleted file mode 100644 index 015e83376..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/FiberState.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / FiberState - -```ts -type FiberState = - | FiberStateRunning - | FiberStateCompleting -| FiberStateCompleted; -``` - -Defined in: [packages/common/src/Task.ts:887](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L887) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | `unknown` | -| `E` | `unknown` | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferFiberDeps.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferFiberDeps.mdx deleted file mode 100644 index 0a7246a5d..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferFiberDeps.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / InferFiberDeps - -```ts -type InferFiberDeps = F extends Fiber ? D : never; -``` - -Defined in: [packages/common/src/Task.ts:852](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L852) - -Extracts the deps type from a [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `F` *extends* [`Fiber`](/docs/api-reference/common/Task/classes/Fiber.mdx)\<`any`, `any`, `any`\> | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferFiberErr.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferFiberErr.mdx deleted file mode 100644 index 0651277a8..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferFiberErr.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / InferFiberErr - -```ts -type InferFiberErr = F extends Fiber ? E : never; -``` - -Defined in: [packages/common/src/Task.ts:844](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L844) - -Extracts the error type from a [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `F` *extends* [`Fiber`](/docs/api-reference/common/Task/classes/Fiber.mdx)\<`any`, `any`, `any`\> | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferFiberOk.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferFiberOk.mdx deleted file mode 100644 index ac59e6be3..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferFiberOk.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / InferFiberOk - -```ts -type InferFiberOk = F extends Fiber ? T : never; -``` - -Defined in: [packages/common/src/Task.ts:836](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L836) - -Extracts the value type from a [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `F` *extends* [`Fiber`](/docs/api-reference/common/Task/classes/Fiber.mdx)\<`any`, `any`, `any`\> | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskDeps.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskDeps.mdx deleted file mode 100644 index bc4942d12..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskDeps.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / InferTaskDeps - -```ts -type InferTaskDeps = R extends Task ? D : never; -``` - -Defined in: [packages/common/src/Task.ts:406](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L406) - -Extracts the deps type from a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskDone.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskDone.mdx deleted file mode 100644 index 123407a06..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskDone.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / InferTaskDone - -```ts -type InferTaskDone = InferTaskErr extends infer Errors ? Errors extends Done ? D : never : never; -``` - -Defined in: [packages/common/src/Task.ts:429](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L429) - -Extracts the done value type from a [NextTask](/docs/api-reference/common/Task/type-aliases/NextTask.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskErr.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskErr.mdx deleted file mode 100644 index 73ffbf852..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskErr.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / InferTaskErr - -```ts -type InferTaskErr = R extends Task ? E : never; -``` - -Defined in: [packages/common/src/Task.ts:398](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L398) - -Extracts the error type from a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskOk.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskOk.mdx deleted file mode 100644 index bd9973606..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/InferTaskOk.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / InferTaskOk - -```ts -type InferTaskOk = R extends Task ? T : never; -``` - -Defined in: [packages/common/src/Task.ts:390](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L390) - -Extracts the value type from a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`AnyTask`](/docs/api-reference/common/Task/type-aliases/AnyTask.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/NextTask.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/NextTask.mdx deleted file mode 100644 index 9371589fd..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/NextTask.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / NextTask - -```ts -type NextTask = Task>; -``` - -Defined in: [packages/common/src/Task.ts:422](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L422) - -A [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that can complete with a value, signal done, or fail. - -Forms a parallel with [NextResult](/docs/api-reference/common/Result/type-aliases/NextResult.mdx): - -- `Result` → `NextResult` -- `Task` → `NextTask` - -Use for pull-based protocols like iterators where `Done` signals normal -completion rather than an error. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | `never` | -| `D` | `void` | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/Run.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/Run.mdx deleted file mode 100644 index a792b9331..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/Run.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / Run - -```ts -type Run = Runner; -``` - -Defined in: [packages/common/src/Task.ts:681](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L681) - -Backward-compatible alias for upstream naming. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `D` | `unknown` | diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunConfig.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunConfig.mdx deleted file mode 100644 index 05e3b7ef5..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunConfig.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunConfig - -```ts -type RunConfig = RunnerConfig; -``` - -Defined in: [packages/common/src/Task.ts:1179](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1179) - -Backward-compatible alias. diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunConfigDep.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunConfigDep.mdx deleted file mode 100644 index 50c669282..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunConfigDep.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunConfigDep - -```ts -type RunConfigDep = RunnerConfigDep; -``` - -Defined in: [packages/common/src/Task.ts:1182](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1182) - -Backward-compatible alias. diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunDeps.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunDeps.mdx deleted file mode 100644 index c1e21463f..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunDeps.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunDeps - -```ts -type RunDeps = RunnerDeps; -``` - -Defined in: [packages/common/src/Task.ts:1193](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1193) - -Backward-compatible alias. diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunnerDeps.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunnerDeps.mdx deleted file mode 100644 index bb1902768..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunnerDeps.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunnerDeps - -```ts -type RunnerDeps = ConsoleDep & RandomBytesDep & RandomDep & TimeDep & Partial & Partial & Partial; -``` - -Defined in: [packages/common/src/Task.ts:1184](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1184) diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunnerEventData.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunnerEventData.mdx deleted file mode 100644 index 9e60ea812..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/RunnerEventData.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunnerEventData - -```ts -type RunnerEventData = Readonly<{ type: "ChildAdded"; childId: string & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Id">; }> | Readonly<{ type: "ChildRemoved"; childId: string & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Id">; }> | Readonly<{ type: "StateChanged"; state: Readonly<{ type: "Running"; }> | Readonly<{ type: "Completing"; }> | Readonly<{ type: "Completed"; result: Readonly<{ value: unknown; ok: true; }> | Readonly<{ error: unknown; ok: false; }>; outcome: Readonly<{ value: unknown; ok: true; }> | Readonly<{ error: unknown; ok: false; }>; }>; }>; -``` - -Defined in: [packages/common/src/Task.ts:935](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L935) - -The event-specific payload of a [RunnerEvent](/docs/api-reference/common/Task/variables/RunnerEvent.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/type-aliases/Task.mdx b/.generated/evolu-docs/api-reference/common/Task/type-aliases/Task.mdx deleted file mode 100644 index f85d47f1d..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/type-aliases/Task.mdx +++ /dev/null @@ -1,320 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / Task - -```ts -type Task = (run: Runner) => Awaitable>; -``` - -Defined in: [packages/common/src/Task.ts:374](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L374) - -JavaScript-native structured concurrency. - -Structured concurrency is a simple idea: async operations form a tree where -no child can outlive its parent — ending a parent aborts its children and -waits for them to complete. This eliminates resource leaking and "fire and -forget" bugs. - -- **Automatic cancellation** — abort propagates to all descendants -- **Guaranteed cleanup** — resources always released -- **Observable state** — inspect what’s running and why - -Evolu implements structured concurrency with these types: - -- **[Task](/docs/api-reference/common/Task/type-aliases/Task.mdx)** — a function that takes [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) and returns - [Awaitable](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx) (sync or async) [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) -- **[Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx)** — runs tasks, creates [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx)s, monitors and aborts - them -- **[Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx)** — awaitable, abortable/disposable handle to a running task -- **[AsyncDisposableStack](/docs/api-reference/common/Task/classes/AsyncDisposableStack.mdx)** — task-aware resource management that - completes even when aborted - -Evolu's structured concurrency core is minimal — one function with a few -flags and helper methods using native APIs. - -### Example - -```ts -// A dependency — wraps native fetch for testability. -interface NativeFetchDep { - readonly fetch: typeof globalThis.fetch; -} - -interface FetchError extends Typed<"FetchError"> { - readonly error: unknown; -} - -// A Task wrapping native fetch — adds abortability. -const fetch = - (url: string): Task => - ({ deps, signal }) => - tryAsync( - () => deps.fetch(url, { signal }), - (error): FetchError | AbortError => { - if (AbortError.is(error)) return error; - return { type: "FetchError", error }; - }, - ); - -// In a composition root… -const deps: NativeFetchDep = { - fetch: globalThis.fetch.bind(globalThis), -}; - -// Create runner with dependencies. -await using run = createRunner(deps); - -// Running a task returns a fiber that can be awaited. -const result = await run(fetch("/users/123")); -expectTypeOf(result).toEqualTypeOf< - Result ->(); - -// A fiber can also be aborted (or disposed with `using`). -const fiber = run(fetch("/users/456")); -fiber.abort(); - -// When this block ends, `await using` disposes run — aborting all fibers. -``` - -## Composition - -| Category | Helper | Description | -| ---------- | ------------------ | ----------------------------------- | -| Collection | [all](/docs/api-reference/common/Task/functions/all.mdx) | fail-fast on first error | -| | [allSettled](/docs/api-reference/common/Task/functions/allSettled.mdx) | complete all regardless of failures | -| | [map](/docs/api-reference/common/Task/functions/map.mdx) | values to tasks, fail-fast | -| | [mapSettled](/docs/api-reference/common/Task/functions/mapSettled.mdx) | values to tasks, complete all | -| Timing | [sleep](/docs/api-reference/common/Task/functions/sleep.mdx) | pause execution | -| | [timeout](/docs/api-reference/common/Task/functions/timeout.mdx) | time-bounded execution | -| | [repeat](/docs/api-reference/common/Task/functions/repeat.mdx) | repeat with schedule | -| | [yieldNow](/docs/api-reference/common/Task/variables/yieldNow.mdx) | yield to event loop | -| Racing | [race](/docs/api-reference/common/Task/functions/race.mdx) | first to complete wins | -| | [any](/docs/api-reference/common/Task/functions/any.mdx) | first success wins | -| Resilience | [retry](/docs/api-reference/common/Task/functions/retry.mdx) | retry with backoff | -| Interop | [callback](/docs/api-reference/common/Task/functions/callback.mdx) | wrap callback APIs | -| | [fetch](/docs/api-reference/common/Task/functions/fetch.mdx) | HTTP requests with abort handling | - -Collection helpers run sequentially by default. Use [parallel](/docs/api-reference/common/Task/functions/parallel.mdx) to run -tasks in parallel. Note helpers like [race](/docs/api-reference/common/Task/functions/race.mdx) always run in parallel; -sequential execution wouldn't make sense for their semantics. - -### Building a better fetch - -Use [timeout](/docs/api-reference/common/Task/functions/timeout.mdx) to prevent hanging: - -```ts -const fetchWithTimeout = (url: string) => timeout(fetch(url), "30s"); - -expectTypeOf(fetchWithTimeout).toEqualTypeOf< - ( - url: string, - ) => Task ->(); -``` - -Add [retry](/docs/api-reference/common/Task/functions/retry.mdx) for resilience: - -```ts -const fetchWithRetry = (url: string) => - retry( - fetchWithTimeout(url), - // A jittered, capped, limited exponential backoff. - jitter(1)(maxDelay("20s")(take(2)(exponential("100ms")))), - ); - -expectTypeOf(fetchWithRetry).toEqualTypeOf< - ( - url: string, - ) => Task< - Response, - RetryError, - NativeFetchDep - > ->(); -``` - -Run composed tasks with [parallel](/docs/api-reference/common/Task/functions/parallel.mdx) and [map](/docs/api-reference/common/Task/functions/map.mdx): - -```ts -await using run = createRunner(); - -const urls = [ - "https://api.example.com/users", - "https://api.example.com/posts", - "https://api.example.com/comments", -]; - -// At most 2 concurrent requests -const result = await run(parallel(2, map(urls, fetchWithRetry))); - -expectTypeOf(result).toEqualTypeOf< - Result< - readonly Response[], - AbortError | RetryError - > ->(); -``` - -## Dependency Injection - -Assumes familiarity with -[Evolu Pure DI](https://www.evolu.dev/docs/dependency-injection). Task -DI is the same but without manually passing deps. - -Tasks declare dependencies via the `D` type parameter and access them via -`run.deps`: - -```ts -const fetchUser = - (id: UserId): Task => - async (run) => { - const { fetch } = run.deps; - // ... - }; -``` - -Provide dependencies when creating a runner: - -```ts -const deps: FetchDep = { - fetch: globalThis.fetch.bind(globalThis), -}; - -await using run = createRunner(deps); -await run(fetchUser(123)); -``` - -For runtime-created dependencies, use [Runner.addDeps](/docs/api-reference/common/Task/interfaces/Runner.mdx#adddeps). - -### Built-in dependencies - -[createRunner](/docs/api-reference/common/Task/variables/createRunner.mdx) provides default [RunnerDeps](/docs/api-reference/common/Task/type-aliases/RunnerDeps.mdx) available to all tasks -without declaring `D`: - -- [Console](/docs/api-reference/common/Console/interfaces/Console.mdx) — logging with hierarchical context via `child()` -- [Time](/docs/api-reference/common/Time/interfaces/Time.mdx) — current time -- [Random](/docs/api-reference/common/Random/interfaces/Random.mdx) — random number generation -- [RandomBytes](/docs/api-reference/common/Crypto/interfaces/RandomBytes.mdx) — cryptographic random bytes - -For example, using `Console`: - -```ts -const myTask: Task = async (run) => { - const { console } = run.deps; - console.log("started"); - // ... -}; -``` - -Custom Console with formatted output: - -```ts -const deps = { - console: createConsole({ - formatter: createConsoleFormatter()({ - timestampFormat: "absolute", - }), - }), -}; - -await using run = createRunner(deps); - -const console = run.deps.console.child("main"); - -console.log("started"); -// 21:20:25.588 [main] started -``` - -For testing, use [testCreateRunner](/docs/api-reference/common/Test/functions/testCreateRunner.mdx) to get deterministic, controllable -implementations of all RunnerDeps. - -## Resource management - -Evolu uses standard JavaScript -[resource management](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Resource_management). - -For task-based disposal, Evolu provides [AsyncDisposableStack](/docs/api-reference/common/Task/classes/AsyncDisposableStack.mdx) — a -wrapper around the native -[AsyncDisposableStack](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncDisposableStack) -where methods accept [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) for acquisition. All operations run -[unabortable](/docs/api-reference/common/Task/variables/unabortable.mdx), ensuring resources are acquired and released even when -abort is requested. - -### Example - -```ts -await using stack = run.stack(); -stack.defer(task); -const conn = await stack.use(openConnection); -const session = await stack.adopt(login, logout); -``` - -## Awaitable - -```ts -type Awaitable = T | PromiseLike; -``` - -Even though [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) returns [Awaitable](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx) (allowing sync or async -results), the [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) itself is always async. This is a deliberate -design choice: - -- **Sync** → [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx), native `using` / `DisposableStack` -- **Async** → [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx), [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx), [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx), `await using` / - `AsyncDisposableStack` - -Benefits: - -- **No API ambiguity** — Task means async, Result means sync -- **Zero overhead** — sync code stays with zero overhead - -While a unified sync/async API is technically possible — with -[isPromiseLike](/docs/api-reference/common/Types/functions/isPromiseLike.mdx) detection and two-phase disposal (sync first, async if -needed, and a flag for callers) — Evolu prefers plain functions for sync code -because most operations involve I/O, which is inherently async, and when we -need sync, it's for simplicity (no dependencies) and performance (zero -abstraction). - -Sync functions should be fast, so there's no need to monitor them. They -should take values, not dependencies — following the -[impure/pure/impure sandwich](https://blog.ploeh.dk/2017/02/02/dependency-rejection/) -pattern where impure code gathers data, pure functions process it, and impure -code performs effects with the result. Sync functions taking deps often -indicate a design that could be improved — for example, a function taking -[Random](/docs/api-reference/common/Random/interfaces/Random.mdx) could instead accept [RandomNumber](/docs/api-reference/common/Random/type-aliases/RandomNumber.mdx) as a value. - -Slow sync operations (parsing large JSON, sorting millions of items, complex -cryptography) belong in workers. The async boundary to the worker is a -[Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) with full monitoring — timeout, cancellation, tracing. The sync -code inside the worker needs no monitoring; the async call to the worker -provides it. - -## FAQ - -### Where is fork and join? - -For those familiar with other structured concurrency implementations: - -- **Fork** — `run(task)` creates a [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx) -- **Join** — `await fiber` waits for completion - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `E` | `never` | -| `D` | `unknown` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `run` | [`Runner`](/docs/api-reference/common/Task/interfaces/Runner.mdx)\<`D`\> | - -## Returns - -[`Awaitable`](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx)\<[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, - \| `E` - \| [`AbortError`](/docs/api-reference/common/Task/interfaces/AbortError.mdx)\>\> diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/AbortError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/AbortError.mdx deleted file mode 100644 index 666551bf6..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/AbortError.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AbortError - -```ts -const AbortError: typed("AbortError", { - reason: Unknown, -}); -``` - -Defined in: [packages/common/src/Task.ts:447](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L447) - -Error returned when a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) is aborted via -[AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal). - -The `reason` field is `unknown` by design — use typed errors for business -logic. If you need to inspect the reason, use type guards like -`RaceLostError.is(reason)`. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/AbortMask.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/AbortMask.mdx deleted file mode 100644 index 51d798d57..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/AbortMask.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AbortMask - -```ts -const AbortMask: brand("AbortMask", NonNegativeInt); -``` - -Defined in: [packages/common/src/Task.ts:704](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L704) - -Abort mask depth for a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) or [Fiber](/docs/api-reference/common/Task/classes/Fiber.mdx). - -- `0` — abortable (default) -- `>= 1` — inside [unabortable](/docs/api-reference/common/Task/variables/unabortable.mdx), abort requests are ignored - -The mask tracks nested unabortable regions. When abort is requested, the -signal only propagates if `mask === 0`. - -- [unabortable](/docs/api-reference/common/Task/variables/unabortable.mdx) increments the mask — task becomes protected -- [unabortableMask](/docs/api-reference/common/Task/functions/unabortableMask.mdx) provides `restore` to restore the previous mask -- Tasks inherit their parent's mask by default - -This enables nested acquire/use/release patterns where each level can have -its own abortable section while outer acquisitions remain protected. - -UI/debugging tools can use this to visually distinguish protected tasks -(e.g., different icon or color) and explain why abort requests are ignored. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/AllAbortError-1.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/AllAbortError-1.mdx deleted file mode 100644 index 61ab1ff9d..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/AllAbortError-1.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AllAbortError - -```ts -const AllAbortError: typed("AllAbortError"); -``` - -Defined in: [packages/common/src/Task.ts:2756](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2756) - -Abort reason used by [all](/docs/api-reference/common/Task/functions/all.mdx) when aborting remaining tasks. - -Used when a task fails and other tasks need to be aborted. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/AllSettledAbortError-1.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/AllSettledAbortError-1.mdx deleted file mode 100644 index f4827da1b..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/AllSettledAbortError-1.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AllSettledAbortError - -```ts -const AllSettledAbortError: typed("AllSettledAbortError"); -``` - -Defined in: [packages/common/src/Task.ts:2889](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2889) - -Abort reason used by [allSettled](/docs/api-reference/common/Task/functions/allSettled.mdx) when aborted externally. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/AnyAbortError-1.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/AnyAbortError-1.mdx deleted file mode 100644 index 5358374d2..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/AnyAbortError-1.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / AnyAbortError - -```ts -const AnyAbortError: typed("AnyAbortError"); -``` - -Defined in: [packages/common/src/Task.ts:3166](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3166) - -Abort reason used by [any](/docs/api-reference/common/Task/functions/any.mdx) when aborting remaining tasks. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/DeferredDisposedError-1.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/DeferredDisposedError-1.mdx deleted file mode 100644 index d88637ed9..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/DeferredDisposedError-1.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / DeferredDisposedError - -```ts -const DeferredDisposedError: typed( - "DeferredDisposedError", -); -``` - -Defined in: [packages/common/src/Task.ts:2319](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2319) - -Abort reason used when a [Deferred](/docs/api-reference/common/Task/interfaces/Deferred.mdx) is disposed. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/FetchError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/FetchError.mdx deleted file mode 100644 index 0ad34bf9b..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/FetchError.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / FetchError - -```ts -const FetchError: typed("FetchError", { error: Unknown }); -``` - -Defined in: [packages/common/src/Task.ts:3414](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3414) - -Error returned when a [fetch](/docs/api-reference/common/Task/functions/fetch.mdx) [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) fails. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/FiberSnapshotState.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/FiberSnapshotState.mdx deleted file mode 100644 index de806ae44..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/FiberSnapshotState.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / FiberSnapshotState - -```ts -const FiberSnapshotState: union( - typed("Running"), - typed("Completing"), - typed("Completed", { result: UnknownResult, outcome: UnknownResult }), -); -``` - -Defined in: [packages/common/src/Task.ts:897](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L897) - -[FiberState](/docs/api-reference/common/Task/type-aliases/FiberState.mdx) Type. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/MapAbortError-1.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/MapAbortError-1.mdx deleted file mode 100644 index 8f8e446df..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/MapAbortError-1.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / MapAbortError - -```ts -const MapAbortError: typed("MapAbortError"); -``` - -Defined in: [packages/common/src/Task.ts:2989](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2989) - -Abort reason used by [map](/docs/api-reference/common/Task/functions/map.mdx) when aborting remaining tasks. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/RaceLostError-1.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/RaceLostError-1.mdx deleted file mode 100644 index 16c31468a..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/RaceLostError-1.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RaceLostError - -```ts -const RaceLostError: typed("RaceLostError"); -``` - -Defined in: [packages/common/src/Task.ts:1898](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1898) - -Abort reason for tasks that lose a [race](/docs/api-reference/common/Task/functions/race.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/RunnerClosingError-1.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/RunnerClosingError-1.mdx deleted file mode 100644 index 3648c1dc1..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/RunnerClosingError-1.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunnerClosingError - -```ts -const RunnerClosingError: typed("RunnerClosingError"); -``` - -Defined in: [packages/common/src/Task.ts:1501](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1501) - -Error used as [AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) reason when a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) is disposed. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/RunnerEvent.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/RunnerEvent.mdx deleted file mode 100644 index cb367d207..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/RunnerEvent.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunnerEvent - -```ts -const RunnerEvent: object({ - id: Id, - timestamp: Millis, - data: RunnerEventData, -}); -``` - -Defined in: [packages/common/src/Task.ts:950](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L950) - -Events emitted by a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) for monitoring and debugging. - -Events bubble up through parent runners, enabling centralized monitoring at -the root. Use with [Runner.onEvent](/docs/api-reference/common/Task/interfaces/Runner.mdx#onevent) to track task lifecycle. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/RunnerEventData.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/RunnerEventData.mdx deleted file mode 100644 index 7adb8a7f0..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/RunnerEventData.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / RunnerEventData - -```ts -const RunnerEventData: union( - typed("ChildAdded", { childId: Id }), - typed("ChildRemoved", { childId: Id }), - typed("StateChanged", { state: FiberSnapshotState }), -); -``` - -Defined in: [packages/common/src/Task.ts:935](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L935) - -The event-specific payload of a [RunnerEvent](/docs/api-reference/common/Task/variables/RunnerEvent.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/SemaphoreDisposedError-1.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/SemaphoreDisposedError-1.mdx deleted file mode 100644 index 81ece6fbb..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/SemaphoreDisposedError-1.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / SemaphoreDisposedError - -```ts -const SemaphoreDisposedError: typed( - "SemaphoreDisposedError", -); -``` - -Defined in: [packages/common/src/Task.ts:2552](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2552) - -Abort reason used when a [Semaphore](/docs/api-reference/common/Task/interfaces/Semaphore.mdx) is disposed. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/TimeoutError-1.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/TimeoutError-1.mdx deleted file mode 100644 index a8ec55802..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/TimeoutError-1.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / TimeoutError - -```ts -const TimeoutError: typed("TimeoutError"); -``` - -Defined in: [packages/common/src/Task.ts:1956](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1956) - -Typed error returned by [timeout](/docs/api-reference/common/Task/functions/timeout.mdx) when a task exceeds its time limit. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/allAbortError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/allAbortError.mdx deleted file mode 100644 index 001024774..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/allAbortError.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / allAbortError - -```ts -const allAbortError: AllAbortError; -``` - -Defined in: [packages/common/src/Task.ts:2764](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2764) - -[AllAbortError](/docs/api-reference/common/Task/variables/AllAbortError-1.mdx) used as abort reason in [all](/docs/api-reference/common/Task/functions/all.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/allSettledAbortError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/allSettledAbortError.mdx deleted file mode 100644 index b934abec5..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/allSettledAbortError.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / allSettledAbortError - -```ts -const allSettledAbortError: AllSettledAbortError; -``` - -Defined in: [packages/common/src/Task.ts:2898](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2898) - -[AllSettledAbortError](/docs/api-reference/common/Task/variables/AllSettledAbortError-1.mdx) used as abort reason in [allSettled](/docs/api-reference/common/Task/functions/allSettled.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/anyAbortError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/anyAbortError.mdx deleted file mode 100644 index 05d824056..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/anyAbortError.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / anyAbortError - -```ts -const anyAbortError: AnyAbortError; -``` - -Defined in: [packages/common/src/Task.ts:3174](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L3174) - -[AnyAbortError](/docs/api-reference/common/Task/variables/AnyAbortError-1.mdx) used as abort reason in [any](/docs/api-reference/common/Task/functions/any.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/createRun.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/createRun.mdx deleted file mode 100644 index 6d00bf20f..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/createRun.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / createRun - -```ts -const createRun: typeof createRunner = createRunner; -``` - -Defined in: [packages/common/src/Task.ts:1283](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1283) - -Backward-compatible alias. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/createRunner.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/createRunner.mdx deleted file mode 100644 index ac48c2c13..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/createRunner.mdx +++ /dev/null @@ -1,67 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / createRunner - -```ts -const createRunner: CreateRunner; -``` - -Defined in: [packages/common/src/Task.ts:1275](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1275) - -Creates root [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx). - -Call once per entry point (main thread, worker, etc.) and dispose on -shutdown. All tasks run as descendants of this root runner. - -[RunnerDeps](/docs/api-reference/common/Task/type-aliases/RunnerDeps.mdx) provides default dependencies: - -- [Time](/docs/api-reference/common/Time/interfaces/Time.mdx) -- [Console](/docs/api-reference/common/Console/interfaces/Console.mdx) -- [Random](/docs/api-reference/common/Random/interfaces/Random.mdx) -- [RandomBytes](/docs/api-reference/common/Crypto/interfaces/RandomBytes.mdx) - -### Example - -```ts -// App entry point -await using run = createRunner(); - -const result = await run(fetchData); -``` - -### Example with custom dependencies - -```ts -// Define dependency interfaces -interface Config { - readonly apiUrl: string; -} - -interface ConfigDep { - readonly config: Config; -} - -// Task declares its dependencies via the D type parameter -const fetchUser = - (id: string): Task => - async (run) => { - const { config } = run.deps; - const response = await fetch(`${config.apiUrl}/users/${id}`); - // ... - }; - -// Composition root: create runner with custom deps -type AppDeps = RunnerDeps & ConfigDep; - -const appDeps: AppDeps = { - ...testCreateDeps(), // or spread individual deps - config: { apiUrl: "https://api.example.com" }, -}; - -await using run = createRunner(appDeps); - -// Runner type is inferred from deps argument -const result = await run(fetchUser("123")); - -// TypeScript catches missing deps at compile time: -// await using run2 = createRunner(); // Runner -// run2(fetchUser("123")); // Error: Property 'config' is missing -``` diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/deferredDisposedError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/deferredDisposedError.mdx deleted file mode 100644 index 45111560f..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/deferredDisposedError.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / deferredDisposedError - -```ts -const deferredDisposedError: DeferredDisposedError; -``` - -Defined in: [packages/common/src/Task.ts:2330](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2330) - -[DeferredDisposedError](/docs/api-reference/common/Task/variables/DeferredDisposedError-1.mdx) used as abort reason in [createDeferred](/docs/api-reference/common/Task/functions/createDeferred.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/mapAbortError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/mapAbortError.mdx deleted file mode 100644 index 459152a38..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/mapAbortError.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / mapAbortError - -```ts -const mapAbortError: MapAbortError; -``` - -Defined in: [packages/common/src/Task.ts:2997](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2997) - -[MapAbortError](/docs/api-reference/common/Task/variables/MapAbortError-1.mdx) used as abort reason in [map](/docs/api-reference/common/Task/functions/map.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/raceLostError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/raceLostError.mdx deleted file mode 100644 index 25fda54b8..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/raceLostError.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / raceLostError - -```ts -const raceLostError: RaceLostError; -``` - -Defined in: [packages/common/src/Task.ts:1906](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1906) - -[RaceLostError](/docs/api-reference/common/Task/variables/RaceLostError-1.mdx) used as abort reason in [race](/docs/api-reference/common/Task/functions/race.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/runnerClosingError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/runnerClosingError.mdx deleted file mode 100644 index 8cddb0621..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/runnerClosingError.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / runnerClosingError - -```ts -const runnerClosingError: RunnerClosingError; -``` - -Defined in: [packages/common/src/Task.ts:1513](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1513) - -The [RunnerClosingError](/docs/api-reference/common/Task/variables/RunnerClosingError-1.mdx) used when a [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) is disposed. - -Tasks run on a disposing or disposed runner receive this error as -[AbortError](/docs/api-reference/common/Task/variables/AbortError.mdx) reason. diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/semaphoreDisposedError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/semaphoreDisposedError.mdx deleted file mode 100644 index 1b4c7434e..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/semaphoreDisposedError.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / semaphoreDisposedError - -```ts -const semaphoreDisposedError: SemaphoreDisposedError; -``` - -Defined in: [packages/common/src/Task.ts:2563](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L2563) - -[SemaphoreDisposedError](/docs/api-reference/common/Task/variables/SemaphoreDisposedError-1.mdx) used as abort reason in [createSemaphore](/docs/api-reference/common/Task/functions/createSemaphore.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/timeoutError.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/timeoutError.mdx deleted file mode 100644 index c052080ac..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/timeoutError.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / timeoutError - -```ts -const timeoutError: TimeoutError; -``` - -Defined in: [packages/common/src/Task.ts:1964](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1964) - -[TimeoutError](/docs/api-reference/common/Task/variables/TimeoutError-1.mdx) used as abort reason in [timeout](/docs/api-reference/common/Task/functions/timeout.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/unabortable.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/unabortable.mdx deleted file mode 100644 index f46bb7976..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/unabortable.mdx +++ /dev/null @@ -1,68 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / unabortable - -```ts -const unabortable: (task: Task) => Task; -``` - -Defined in: [packages/common/src/Task.ts:1594](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1594) - -Makes a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) unabortable. - -Once started, an unabortable task always completes — abort requests are -ignored and `signal.aborted` remains `false`. - -### Example - -```ts -await using run = createRunner(); - -const events: Array = []; -const canComplete = Promise.withResolvers(); -let signalAbortedInAnalytics = true; - -// Simulate async analytics API (abortable by default) -const sendToAnalytics = - (event: number): Task => - async ({ signal }) => { - await canComplete.promise; - signalAbortedInAnalytics = signal.aborted; - events.push(`sent ${event}`); - return ok(); - }; - -// Important events must be sent even if the user navigates away -const trackImportantEvent = (event: number) => - unabortable(sendToAnalytics(event)); - -// User clicks, we start tracking (task runs until first await) -const fiber = run(trackImportantEvent(123)); - -// User navigates away (abort requested while task is running) -fiber.abort(); -canComplete.resolve(); - -const result = await fiber; - -expect(signalAbortedInAnalytics).toBe(false); -// Analytics was sent despite abort -expect(events).toEqual(["sent 123"]); -expect(result).toEqual(ok()); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `E` | -| `D` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `task` | [`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`T`, `E`, `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Task/variables/yieldNow.mdx b/.generated/evolu-docs/api-reference/common/Task/variables/yieldNow.mdx deleted file mode 100644 index b0615062e..000000000 --- a/.generated/evolu-docs/api-reference/common/Task/variables/yieldNow.mdx +++ /dev/null @@ -1,64 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Task](/docs/api-reference/common/Task/page.mdx) / yieldNow - -```ts -const yieldNow: Task; -``` - -Defined in: [packages/common/src/Task.ts:1738](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Task.ts#L1738) - -Yields execution to allow other work to proceed. - -Long-running JavaScript blocks the main thread. In browsers, this makes the -UI unresponsive (user interactions, animations). In Node.js, it prevents I/O -callbacks, timers, and other requests from being handled. Inserting yield -points lets the runtime process high-priority work between chunks of code. - -Uses `scheduler.yield()` in browsers for optimal main thread scheduling, -falls back to `setImmediate` in Node.js, or `setTimeout` elsewhere. - -### Example - -```ts -const processLargeArray: Task = async (run) => { - const { time } = run.deps; - let lastYield = time.now(); - - for (const item of largeArray) { - processItem(item); - - // Yield periodically to keep UI responsive - if (time.now() - lastYield > msLongTask) { - const r = await run(yieldNow); - if (!r.ok) return r; - lastYield = time.now(); - } - } - - return ok(); -}; -``` - -Recursive tasks also benefit from periodic yields — without them, deep -recursion overflows the call stack: - -```ts -const processRecursive = - (count: number, index: number, sum: number): Task => - async (run) => { - if (index >= count) return ok(sum); - - // Yield periodically to break synchronous call chains. - if (index > 0 && index % 1000 === 0) { - const y = await run(yieldNow); - if (!y.ok) return y; - } - - // Direct tail-call: no fiber overhead, stack-safe thanks to yieldNow. - return await processRecursive(count, index + 1, sum + index)(run); - }; -``` - -## See - - - https://developer.mozilla.org/en-US/docs/Web/API/Scheduler/yield - - https://web.dev/articles/optimize-long-tasks diff --git a/.generated/evolu-docs/api-reference/common/Test/functions/testCreateDeps.mdx b/.generated/evolu-docs/api-reference/common/Test/functions/testCreateDeps.mdx deleted file mode 100644 index b642ce576..000000000 --- a/.generated/evolu-docs/api-reference/common/Test/functions/testCreateDeps.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Test](/docs/api-reference/common/Test/page.mdx) / testCreateDeps - -```ts -function testCreateDeps(options?: { - seed?: string; -}): TestDeps; -``` - -Defined in: [packages/common/src/Test.ts:48](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Test.ts#L48) - -Creates test dependencies for proper isolation. - -Each call creates fresh instances, so tests don't share state. - -### Example - -```ts -test("my test", async () => { - const deps = testCreateDeps(); - await using run = testCreateRunner(deps); - - const fiber = run(sleep("1s")); - deps.time.advance("1s"); - await fiber; -}); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `options?` | \{ `seed?`: `string`; \} | -| `options.seed?` | `string` | - -## Returns - -[`TestDeps`](/docs/api-reference/common/Test/type-aliases/TestDeps.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Test/functions/testCreateRunner.mdx b/.generated/evolu-docs/api-reference/common/Test/functions/testCreateRunner.mdx deleted file mode 100644 index 8c89af9e9..000000000 --- a/.generated/evolu-docs/api-reference/common/Test/functions/testCreateRunner.mdx +++ /dev/null @@ -1,65 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Test](/docs/api-reference/common/Test/page.mdx) / testCreateRunner - -## Call Signature - -```ts -function testCreateRunner(): Runner; -``` - -Defined in: [packages/common/src/Test.ts:87](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Test.ts#L87) - -Creates a test [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) with deterministic deps. - -Uses [TestDeps](/docs/api-reference/common/Test/type-aliases/TestDeps.mdx) which provides seeded random values, ensuring -deterministic fiber IDs, timestamps, and other generated values. This makes -tests reproducible and snapshot-friendly. - -Accepts partial deps - any missing deps are created with defaults. Also -accepts [RunnerConfigDep](/docs/api-reference/common/Task/interfaces/RunnerConfigDep.mdx) for enabling events and custom deps. - -### Example - -```ts -// Basic usage with TestDeps -await using run = testCreateRunner(); - -// Override specific deps -await using run = testCreateRunner({ time: customTime }); - -// Add custom deps -interface HttpDep { - readonly http: Http; -} -await using run = testCreateRunner({ http }); -// run is Runner -``` - -### Returns - -[`Runner`](/docs/api-reference/common/Task/interfaces/Runner.mdx)\<[`TestDeps`](/docs/api-reference/common/Test/type-aliases/TestDeps.mdx)\> - -## Call Signature - -```ts -function testCreateRunner(deps: D): Runner; -``` - -Defined in: [packages/common/src/Test.ts:90](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Test.ts#L90) - -With custom dependencies merged into [TestDeps](/docs/api-reference/common/Test/type-aliases/TestDeps.mdx). - -### Type Parameters - -| Type Parameter | -| ------ | -| `D` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | `D` | - -### Returns - -[`Runner`](/docs/api-reference/common/Task/interfaces/Runner.mdx)\<[`TestConsoleDep`](/docs/api-reference/common/Console/interfaces/TestConsoleDep.mdx) & [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) & [`RandomDep`](/docs/api-reference/common/Random/interfaces/RandomDep.mdx) & [`RandomLibDep`](/docs/api-reference/common/Random/interfaces/RandomLibDep.mdx) & [`TimeDep`](/docs/api-reference/common/Time/interfaces/TimeDep.mdx) & `D`\> diff --git a/.generated/evolu-docs/api-reference/common/Test/page.mdx b/.generated/evolu-docs/api-reference/common/Test/page.mdx deleted file mode 100644 index 1f6e4a3dd..000000000 --- a/.generated/evolu-docs/api-reference/common/Test/page.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Test - -Test utilities for deterministic testing. - -## Functions - -| Function | Description | -| ------ | ------ | -| [testCreateDeps](/docs/api-reference/common/Test/functions/testCreateDeps.mdx) | Creates test dependencies for proper isolation. | -| [testCreateRunner](/docs/api-reference/common/Test/functions/testCreateRunner.mdx) | Creates a test [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) with deterministic deps. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [TestDeps](/docs/api-reference/common/Test/type-aliases/TestDeps.mdx) | Test deps created by [testCreateDeps](/docs/api-reference/common/Test/functions/testCreateDeps.mdx). | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [testAppOwner](/docs/api-reference/common/Test/variables/testAppOwner.mdx) | - | -| [testCreateRun](/docs/api-reference/common/Test/variables/testCreateRun.mdx) | Backward-compatible alias for upstream naming. | -| [testEntropy32](/docs/api-reference/common/Test/variables/testEntropy32.mdx) | - | -| [testOwnerSecret](/docs/api-reference/common/Test/variables/testOwnerSecret.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/Test/type-aliases/TestDeps.mdx b/.generated/evolu-docs/api-reference/common/Test/type-aliases/TestDeps.mdx deleted file mode 100644 index e5f39ec34..000000000 --- a/.generated/evolu-docs/api-reference/common/Test/type-aliases/TestDeps.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Test](/docs/api-reference/common/Test/page.mdx) / TestDeps - -```ts -type TestDeps = TestConsoleDep & RandomBytesDep & RandomDep & RandomLibDep & TimeDep; -``` - -Defined in: [packages/common/src/Test.ts:24](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Test.ts#L24) - -Test deps created by [testCreateDeps](/docs/api-reference/common/Test/functions/testCreateDeps.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Test/variables/testAppOwner.mdx b/.generated/evolu-docs/api-reference/common/Test/variables/testAppOwner.mdx deleted file mode 100644 index 5d513ca8e..000000000 --- a/.generated/evolu-docs/api-reference/common/Test/variables/testAppOwner.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Test](/docs/api-reference/common/Test/page.mdx) / testAppOwner - -```ts -const testAppOwner: AppOwner; -``` - -Defined in: [packages/common/src/Test.ts:117](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Test.ts#L117) diff --git a/.generated/evolu-docs/api-reference/common/Test/variables/testCreateRun.mdx b/.generated/evolu-docs/api-reference/common/Test/variables/testCreateRun.mdx deleted file mode 100644 index 240b8b81f..000000000 --- a/.generated/evolu-docs/api-reference/common/Test/variables/testCreateRun.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Test](/docs/api-reference/common/Test/page.mdx) / testCreateRun - -```ts -const testCreateRun: typeof testCreateRunner = testCreateRunner; -``` - -Defined in: [packages/common/src/Test.ts:102](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Test.ts#L102) - -Backward-compatible alias for upstream naming. - -Prefer [testCreateRunner](/docs/api-reference/common/Test/functions/testCreateRunner.mdx) in SQLoot code. diff --git a/.generated/evolu-docs/api-reference/common/Test/variables/testEntropy32.mdx b/.generated/evolu-docs/api-reference/common/Test/variables/testEntropy32.mdx deleted file mode 100644 index 8c960eedc..000000000 --- a/.generated/evolu-docs/api-reference/common/Test/variables/testEntropy32.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Test](/docs/api-reference/common/Test/page.mdx) / testEntropy32 - -```ts -const testEntropy32: Uint8Array & Brand<"Entropy"> & Brand<"Length32">; -``` - -Defined in: [packages/common/src/Test.ts:108](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Test.ts#L108) diff --git a/.generated/evolu-docs/api-reference/common/Test/variables/testOwnerSecret.mdx b/.generated/evolu-docs/api-reference/common/Test/variables/testOwnerSecret.mdx deleted file mode 100644 index 95fadeb3e..000000000 --- a/.generated/evolu-docs/api-reference/common/Test/variables/testOwnerSecret.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Test](/docs/api-reference/common/Test/page.mdx) / testOwnerSecret - -```ts -const testOwnerSecret: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"OwnerSecret">; -``` - -Defined in: [packages/common/src/Test.ts:115](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Test.ts#L115) diff --git a/.generated/evolu-docs/api-reference/common/Time/functions/createTime.mdx b/.generated/evolu-docs/api-reference/common/Time/functions/createTime.mdx deleted file mode 100644 index 2fa62ffd5..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/functions/createTime.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / createTime - -```ts -function createTime(): Time; -``` - -Defined in: [packages/common/src/Time.ts:50](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L50) - -Creates a [Time](/docs/api-reference/common/Time/interfaces/Time.mdx) using `Date.now()` and `globalThis.setTimeout`. - -Throws if the system clock returns an out-of-range value. This is intentional -— there's no reasonable fallback for a misconfigured clock. - -## Returns - -[`Time`](/docs/api-reference/common/Time/interfaces/Time.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Time/functions/durationToMillis.mdx b/.generated/evolu-docs/api-reference/common/Time/functions/durationToMillis.mdx deleted file mode 100644 index b66e2f2db..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/functions/durationToMillis.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / durationToMillis - -```ts -function durationToMillis(duration: Duration): number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Time.ts:281](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L281) - -Converts a duration to milliseconds. - -Accepts either a [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx) (e.g., "5m", "1.5s") or -[Millis](/docs/api-reference/common/Time/variables/Millis.mdx). - -### Example - -```ts -durationToMillis("1ms"); // 1 -durationToMillis("500ms"); // 500 -durationToMillis("1.5s"); // 1500 -durationToMillis("30s"); // 30000 -durationToMillis("5m"); // 300000 -durationToMillis("12h"); // 43200000 -durationToMillis("7d"); // 604800000 -durationToMillis(Millis.orThrow(5000)); // 5000 (already Millis) -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `duration` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\> diff --git a/.generated/evolu-docs/api-reference/common/Time/functions/formatMillisAsClockTime.mdx b/.generated/evolu-docs/api-reference/common/Time/functions/formatMillisAsClockTime.mdx deleted file mode 100644 index 6e2989bfe..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/functions/formatMillisAsClockTime.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / formatMillisAsClockTime - -```ts -function formatMillisAsClockTime(millis: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">): string; -``` - -Defined in: [packages/common/src/Time.ts:385](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L385) - -Formats [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) as `HH:MM:SS.mmm`. - -### Example - -```ts -formatMillisAsClockTime(Millis.orThrow(Date.now())); // "14:32:15.234" -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `millis` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\> | - -## Returns - -`string` diff --git a/.generated/evolu-docs/api-reference/common/Time/functions/formatMillisAsDuration.mdx b/.generated/evolu-docs/api-reference/common/Time/functions/formatMillisAsDuration.mdx deleted file mode 100644 index dc0f29995..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/functions/formatMillisAsDuration.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / formatMillisAsDuration - -```ts -function formatMillisAsDuration(millis: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">): string; -``` - -Defined in: [packages/common/src/Time.ts:360](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L360) - -Formats [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) as a human-readable duration string. - -- Under 1 minute: `1.234s` -- Under 1 hour: `1m30.000s` -- 1 hour or more: `1h30m45.000s` - -### Example - -```ts -formatMillisAsDuration(1234 as Millis); // "1.234s" -formatMillisAsDuration(90000 as Millis); // "1m30.000s" -formatMillisAsDuration(3661000 as Millis); // "1h1m1.000s" -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `millis` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\> | - -## Returns - -`string` diff --git a/.generated/evolu-docs/api-reference/common/Time/functions/millisToDateIso.mdx b/.generated/evolu-docs/api-reference/common/Time/functions/millisToDateIso.mdx deleted file mode 100644 index f6e8e56d8..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/functions/millisToDateIso.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / millisToDateIso - -```ts -function millisToDateIso(value: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">): string & Brand<"DateIso">; -``` - -Defined in: [packages/common/src/Time.ts:162](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L162) - -Converts [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) to [DateIso](/docs/api-reference/common/Type/variables/DateIso.mdx). - -This is a safe cast because [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) guarantees a valid timestamp range -that always produces a valid ISO string. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\> | - -## Returns - -`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"DateIso"`\> diff --git a/.generated/evolu-docs/api-reference/common/Time/functions/setTimeout.mdx b/.generated/evolu-docs/api-reference/common/Time/functions/setTimeout.mdx deleted file mode 100644 index 7df587d85..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/functions/setTimeout.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / setTimeout - -```ts -function setTimeout(duration: Duration): Promise; -``` - -Defined in: [packages/common/src/Time.ts:306](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L306) - -Returns a Promise that resolves after the specified duration. - -Uses [Duration](/docs/api-reference/common/Time/type-aliases/Duration.mdx) parsing and `globalThis.setTimeout`. - -### Example - -```ts -await setTimeout("1ms"); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `duration` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -## Returns - -`Promise`\<`void`\> diff --git a/.generated/evolu-docs/api-reference/common/Time/functions/testCreateTime.mdx b/.generated/evolu-docs/api-reference/common/Time/functions/testCreateTime.mdx deleted file mode 100644 index cb9a46681..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/functions/testCreateTime.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / testCreateTime - -```ts -function testCreateTime(options?: { - autoIncrement?: boolean; - startAt?: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -}): TestTime; -``` - -Defined in: [packages/common/src/Time.ts:85](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L85) - -Creates a [TestTime](/docs/api-reference/common/Time/interfaces/TestTime.mdx) with controllable timers for testing. - -Time starts at `startAt` (default 0) and only advances when `advance()` is -called. Timeouts scheduled via `setTimeout` fire when time is advanced past -their deadline. - -Set `autoIncrement` to automatically increment time by 1ms after each `now()` -call via microtask (useful for tests that need monotonically increasing -values without explicit `advance()` calls). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `options?` | \{ `autoIncrement?`: `boolean`; `startAt?`: `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\>; \} | -| `options.autoIncrement?` | `boolean` | -| `options.startAt?` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\> | - -## Returns - -[`TestTime`](/docs/api-reference/common/Time/interfaces/TestTime.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Time/interfaces/TestTime.mdx b/.generated/evolu-docs/api-reference/common/Time/interfaces/TestTime.mdx deleted file mode 100644 index a6c9f0c1e..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/interfaces/TestTime.mdx +++ /dev/null @@ -1,114 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / TestTime - -Defined in: [packages/common/src/Time.ts:69](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L69) - -Test [Time](/docs/api-reference/common/Time/interfaces/Time.mdx) with controllable timers. - -Call `advance(ms)` to move time forward and trigger any pending timeouts. - -## Extends - -- [`Time`](/docs/api-reference/common/Time/interfaces/Time.mdx) - -## Properties - - - -### advance() - -```ts -readonly advance: (duration: Duration) => void; -``` - -Defined in: [packages/common/src/Time.ts:71](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L71) - -Advances time by the specified duration, triggering pending timeouts. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `duration` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -#### Returns - -`void` - -*** - - - -### clearTimeout() - -```ts -readonly clearTimeout: (id: TimeoutId) => void; -``` - -Defined in: [packages/common/src/Time.ts:30](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L30) - -Cancels a timeout scheduled with [Time.setTimeout](/docs/api-reference/common/Time/interfaces/Time.mdx#settimeout). - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `id` | [`TimeoutId`](/docs/api-reference/common/Time/type-aliases/TimeoutId.mdx) | - -#### Returns - -`void` - -#### Inherited from - -[`Time`](/docs/api-reference/common/Time/interfaces/Time.mdx).[`clearTimeout`](/docs/api-reference/common/Time/interfaces/Time.mdx#cleartimeout) - -*** - - - -### now() - -```ts -readonly now: () => number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Time.ts:24](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L24) - -Returns current time in milliseconds. - -#### Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\> - -#### Inherited from - -[`Time`](/docs/api-reference/common/Time/interfaces/Time.mdx).[`now`](/docs/api-reference/common/Time/interfaces/Time.mdx#now) - -*** - - - -### setTimeout() - -```ts -readonly setTimeout: (fn: () => void, delay: Duration) => TimeoutId; -``` - -Defined in: [packages/common/src/Time.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L27) - -Schedules a callback after the specified delay. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `fn` | () => `void` | -| `delay` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -#### Returns - -[`TimeoutId`](/docs/api-reference/common/Time/type-aliases/TimeoutId.mdx) - -#### Inherited from - -[`Time`](/docs/api-reference/common/Time/interfaces/Time.mdx).[`setTimeout`](/docs/api-reference/common/Time/interfaces/Time.mdx#settimeout) diff --git a/.generated/evolu-docs/api-reference/common/Time/interfaces/Time.mdx b/.generated/evolu-docs/api-reference/common/Time/interfaces/Time.mdx deleted file mode 100644 index 773b6e63f..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/interfaces/Time.mdx +++ /dev/null @@ -1,76 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / Time - -Defined in: [packages/common/src/Time.ts:22](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L22) - -Time and timer operations. - -## Extended by - -- [`TestTime`](/docs/api-reference/common/Time/interfaces/TestTime.mdx) - -## Properties - - - -### clearTimeout() - -```ts -readonly clearTimeout: (id: TimeoutId) => void; -``` - -Defined in: [packages/common/src/Time.ts:30](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L30) - -Cancels a timeout scheduled with [Time.setTimeout](/docs/api-reference/common/Time/interfaces/Time.mdx#settimeout). - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `id` | [`TimeoutId`](/docs/api-reference/common/Time/type-aliases/TimeoutId.mdx) | - -#### Returns - -`void` - -*** - - - -### now() - -```ts -readonly now: () => number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Time.ts:24](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L24) - -Returns current time in milliseconds. - -#### Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"LessThan281474976710655"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Millis"`\> - -*** - - - -### setTimeout() - -```ts -readonly setTimeout: (fn: () => void, delay: Duration) => TimeoutId; -``` - -Defined in: [packages/common/src/Time.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L27) - -Schedules a callback after the specified delay. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `fn` | () => `void` | -| `delay` | [`Duration`](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | - -#### Returns - -[`TimeoutId`](/docs/api-reference/common/Time/type-aliases/TimeoutId.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Time/interfaces/TimeDep.mdx b/.generated/evolu-docs/api-reference/common/Time/interfaces/TimeDep.mdx deleted file mode 100644 index 3373d3841..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/interfaces/TimeDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / TimeDep - -Defined in: [packages/common/src/Time.ts:33](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L33) - -## Properties - - - -### time - -```ts -readonly time: Time; -``` - -Defined in: [packages/common/src/Time.ts:34](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L34) diff --git a/.generated/evolu-docs/api-reference/common/Time/page.mdx b/.generated/evolu-docs/api-reference/common/Time/page.mdx deleted file mode 100644 index 38f32843b..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/page.mdx +++ /dev/null @@ -1,50 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Time - -Time representations, durations, and scheduling utilities. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createTime](/docs/api-reference/common/Time/functions/createTime.mdx) | Creates a [Time](/docs/api-reference/common/Time/interfaces/Time.mdx) using `Date.now()` and `globalThis.setTimeout`. | -| [durationToMillis](/docs/api-reference/common/Time/functions/durationToMillis.mdx) | Converts a duration to milliseconds. | -| [formatMillisAsClockTime](/docs/api-reference/common/Time/functions/formatMillisAsClockTime.mdx) | Formats [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) as `HH:MM:SS.mmm`. | -| [formatMillisAsDuration](/docs/api-reference/common/Time/functions/formatMillisAsDuration.mdx) | Formats [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) as a human-readable duration string. | -| [millisToDateIso](/docs/api-reference/common/Time/functions/millisToDateIso.mdx) | Converts [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) to [DateIso](/docs/api-reference/common/Type/variables/DateIso.mdx). | -| [setTimeout](/docs/api-reference/common/Time/functions/setTimeout.mdx) | Returns a Promise that resolves after the specified duration. | -| [testCreateTime](/docs/api-reference/common/Time/functions/testCreateTime.mdx) | Creates a [TestTime](/docs/api-reference/common/Time/interfaces/TestTime.mdx) with controllable timers for testing. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [TestTime](/docs/api-reference/common/Time/interfaces/TestTime.mdx) | Test [Time](/docs/api-reference/common/Time/interfaces/Time.mdx) with controllable timers. | -| [Time](/docs/api-reference/common/Time/interfaces/Time.mdx) | Time and timer operations. | -| [TimeDep](/docs/api-reference/common/Time/interfaces/TimeDep.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [Duration](/docs/api-reference/common/Time/type-aliases/Duration.mdx) | Duration can be either a [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx) or milliseconds as [Millis](/docs/api-reference/common/Time/variables/Millis.mdx). | -| [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx) | Duration literal with compile-time validation. | -| [DurationLiteralDays](/docs/api-reference/common/Time/type-aliases/DurationLiteralDays.mdx) | Days duration: `"1d"` to `"6d"` or `"1.1d"` to `"6.9d"`. See [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). | -| [DurationLiteralHours](/docs/api-reference/common/Time/type-aliases/DurationLiteralHours.mdx) | Hours duration: `"1h"` to `"23h"` or `"1.1h"` to `"23.9h"`. See [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). | -| [DurationLiteralMilliseconds](/docs/api-reference/common/Time/type-aliases/DurationLiteralMilliseconds.mdx) | Milliseconds duration: `"1ms"` to `"999ms"`. See [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). | -| [DurationLiteralMinutes](/docs/api-reference/common/Time/type-aliases/DurationLiteralMinutes.mdx) | Minutes duration: `"1m"` to `"59m"` or `"1.1m"` to `"59.9m"`. See [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). | -| [DurationLiteralSeconds](/docs/api-reference/common/Time/type-aliases/DurationLiteralSeconds.mdx) | Seconds duration: `"1s"` to `"59s"` or `"1.1s"` to `"59.9s"`. See [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). | -| [DurationLiteralWeeks](/docs/api-reference/common/Time/type-aliases/DurationLiteralWeeks.mdx) | Weeks duration: `"1w"` to `"51w"` or `"1.1w"` to `"51.9w"`. See [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). | -| [DurationLiteralYears](/docs/api-reference/common/Time/type-aliases/DurationLiteralYears.mdx) | Years duration: `"1y"` to `"99y"` or `"1.1y"` to `"99.9y"`. See [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). | -| [Millis](/docs/api-reference/common/Time/type-aliases/Millis.mdx) | Milliseconds timestamp, like `Date.now()`. | -| [TimeoutId](/docs/api-reference/common/Time/type-aliases/TimeoutId.mdx) | Opaque type for timeout handles. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [maxMillis](/docs/api-reference/common/Time/variables/maxMillis.mdx) | Maximum [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) value. | -| [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) | Milliseconds timestamp, like `Date.now()`. | -| [minMillis](/docs/api-reference/common/Time/variables/minMillis.mdx) | Minimum [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) value. | -| [ms120fps](/docs/api-reference/common/Time/variables/ms120fps.mdx) | Frame budget at 120fps (8ms). | -| [ms60fps](/docs/api-reference/common/Time/variables/ms60fps.mdx) | Frame budget at 60fps (16ms). | -| [msLongTask](/docs/api-reference/common/Time/variables/msLongTask.mdx) | Long task threshold (50ms). | diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/Duration.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/Duration.mdx deleted file mode 100644 index 259a5ca55..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/Duration.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / Duration - -```ts -type Duration = - | DurationLiteral - | Millis; -``` - -Defined in: [packages/common/src/Time.ts:169](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L169) - -Duration can be either a [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx) or milliseconds as -[Millis](/docs/api-reference/common/Time/variables/Millis.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx deleted file mode 100644 index 542d36e4f..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / DurationLiteral - -```ts -type DurationLiteral = - | DurationLiteralMilliseconds - | DurationLiteralSeconds - | DurationLiteralMinutes - | DurationLiteralHours - | DurationLiteralDays - | DurationLiteralWeeks - | DurationLiteralYears; -``` - -Defined in: [packages/common/src/Time.ts:199](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L199) - -Duration literal with compile-time validation. - -Supported formats: - -- Milliseconds: `1ms`, `500ms`, `999ms` (1-999) -- Seconds: `1s`, `59s`, `12.5s` (1-59, 1.1-59.9) -- Minutes: `1m`, `59m`, `12.5m` (1-59, 1.1-59.9) -- Hours: `1h`, `23h`, `12.5h` (1-23, 1.1-23.9) -- Days: `1d`, `6d`, `1.5d` (1-6, 1.1-6.9) -- Weeks: `1w`, `51w`, `1.5w` (1-51, 1.1-51.9) -- Months: not supported (variable length) -- Years: `1y`, `99y`, `1.5y` (1-99, 1.1-99.9) - -Each unit is limited to values that can't be expressed in the next larger -unit, ensuring every duration has exactly one canonical representation (e.g., -1000ms must be written as `"1s"`, not `"1000ms"`). - -Decimal values cover cases like 1.5s (1500ms) or 1.5h (90 minutes) without -allowing redundant forms. For precise values that don't fit (e.g., 1050ms), -use [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) directly. - -Zero duration (0ms) is not supported. For yielding without delay, use `await -Promise.resolve()` for microtasks or the [yieldNow](/docs/api-reference/common/Task/variables/yieldNow.mdx) for macrotasks. - -See [Duration](/docs/api-reference/common/Time/type-aliases/Duration.mdx) for a type that also accepts [Millis](/docs/api-reference/common/Time/variables/Millis.mdx). Use -[durationToMillis](/docs/api-reference/common/Time/functions/durationToMillis.mdx) to convert to milliseconds. diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralDays.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralDays.mdx deleted file mode 100644 index 60368ca56..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralDays.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / DurationLiteralDays - -```ts -type DurationLiteralDays = `${Digit1To6}d` | `${Digit1To6}.${Digit1To9}d`; -``` - -Defined in: [packages/common/src/Time.ts:242](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L242) - -Days duration: `"1d"` to `"6d"` or `"1.1d"` to `"6.9d"`. See -[DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralHours.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralHours.mdx deleted file mode 100644 index a826ecd10..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralHours.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / DurationLiteralHours - -```ts -type DurationLiteralHours = `${Digit1To23}h` | `${Digit1To23}.${Digit1To9}h`; -``` - -Defined in: [packages/common/src/Time.ts:234](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L234) - -Hours duration: `"1h"` to `"23h"` or `"1.1h"` to `"23.9h"`. See -[DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralMilliseconds.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralMilliseconds.mdx deleted file mode 100644 index 59dac75fe..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralMilliseconds.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / DurationLiteralMilliseconds - -```ts -type DurationLiteralMilliseconds = - | `${Digit1To9}ms` - | `${Digit1To9}${Digit}ms` - | `${Digit1To9}${Digit}${Digit}ms`; -``` - -Defined in: [packages/common/src/Time.ts:209](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L209) - -Milliseconds duration: `"1ms"` to `"999ms"`. See [DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralMinutes.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralMinutes.mdx deleted file mode 100644 index d86e19185..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralMinutes.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / DurationLiteralMinutes - -```ts -type DurationLiteralMinutes = `${Digit1To59}m` | `${Digit1To59}.${Digit1To9}m`; -``` - -Defined in: [packages/common/src/Time.ts:226](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L226) - -Minutes duration: `"1m"` to `"59m"` or `"1.1m"` to `"59.9m"`. See -[DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralSeconds.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralSeconds.mdx deleted file mode 100644 index 958e10b81..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralSeconds.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / DurationLiteralSeconds - -```ts -type DurationLiteralSeconds = `${Digit1To59}s` | `${Digit1To59}.${Digit1To9}s`; -``` - -Defined in: [packages/common/src/Time.ts:218](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L218) - -Seconds duration: `"1s"` to `"59s"` or `"1.1s"` to `"59.9s"`. See -[DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralWeeks.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralWeeks.mdx deleted file mode 100644 index f77e9b667..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralWeeks.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / DurationLiteralWeeks - -```ts -type DurationLiteralWeeks = `${Digit1To51}w` | `${Digit1To51}.${Digit1To9}w`; -``` - -Defined in: [packages/common/src/Time.ts:250](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L250) - -Weeks duration: `"1w"` to `"51w"` or `"1.1w"` to `"51.9w"`. See -[DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralYears.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralYears.mdx deleted file mode 100644 index d638868c0..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/DurationLiteralYears.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / DurationLiteralYears - -```ts -type DurationLiteralYears = `${Digit1To99}y` | `${Digit1To99}.${Digit1To9}y`; -``` - -Defined in: [packages/common/src/Time.ts:258](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L258) - -Years duration: `"1y"` to `"99y"` or `"1.1y"` to `"99.9y"`. See -[DurationLiteral](/docs/api-reference/common/Time/type-aliases/DurationLiteral.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/Millis.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/Millis.mdx deleted file mode 100644 index 7ca31deb4..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/Millis.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / Millis - -```ts -type Millis = number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Time.ts:144](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L144) - -Milliseconds timestamp, like `Date.now()`. - -The maximum value is 281474976710654 (281474976710655 - 1, reserved for -infinity). This enables efficient binary serialization, saving 2 bytes -compared to typical 8-byte (64-bit) timestamps. - -`new Date(281474976710654).toString()` = Tue Aug 02 10889 07:31:49 - -If a system clock exceeds this range, operations will throw. This is -intentional — there's no reasonable fallback for a misconfigured clock. diff --git a/.generated/evolu-docs/api-reference/common/Time/type-aliases/TimeoutId.mdx b/.generated/evolu-docs/api-reference/common/Time/type-aliases/TimeoutId.mdx deleted file mode 100644 index f231b307f..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/type-aliases/TimeoutId.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / TimeoutId - -```ts -type TimeoutId = Brand<"TimeoutId">; -``` - -Defined in: [packages/common/src/Time.ts:42](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L42) - -Opaque type for timeout handles. - -Use with [Time.clearTimeout](/docs/api-reference/common/Time/interfaces/Time.mdx#cleartimeout) to cancel a pending timeout. diff --git a/.generated/evolu-docs/api-reference/common/Time/variables/Millis.mdx b/.generated/evolu-docs/api-reference/common/Time/variables/Millis.mdx deleted file mode 100644 index 19004f89d..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/variables/Millis.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / Millis - -```ts -const Millis: brand( - "Millis", - lessThan(maxMillisWithInfinity)(NonNegativeInt), -); -``` - -Defined in: [packages/common/src/Time.ts:144](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L144) - -Milliseconds timestamp, like `Date.now()`. - -The maximum value is 281474976710654 (281474976710655 - 1, reserved for -infinity). This enables efficient binary serialization, saving 2 bytes -compared to typical 8-byte (64-bit) timestamps. - -`new Date(281474976710654).toString()` = Tue Aug 02 10889 07:31:49 - -If a system clock exceeds this range, operations will throw. This is -intentional — there's no reasonable fallback for a misconfigured clock. diff --git a/.generated/evolu-docs/api-reference/common/Time/variables/maxMillis.mdx b/.generated/evolu-docs/api-reference/common/Time/variables/maxMillis.mdx deleted file mode 100644 index e0c3a8a26..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/variables/maxMillis.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / maxMillis - -```ts -const maxMillis: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Time.ts:154](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L154) - -Maximum [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) value. diff --git a/.generated/evolu-docs/api-reference/common/Time/variables/minMillis.mdx b/.generated/evolu-docs/api-reference/common/Time/variables/minMillis.mdx deleted file mode 100644 index 3f6c50b17..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/variables/minMillis.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / minMillis - -```ts -const minMillis: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Time.ts:151](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L151) - -Minimum [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) value. diff --git a/.generated/evolu-docs/api-reference/common/Time/variables/ms120fps.mdx b/.generated/evolu-docs/api-reference/common/Time/variables/ms120fps.mdx deleted file mode 100644 index 5a94afd52..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/variables/ms120fps.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / ms120fps - -```ts -const ms120fps: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Time.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L333) - -Frame budget at 120fps (8ms). - -For high refresh rate displays. Work exceeding this blocks a frame. diff --git a/.generated/evolu-docs/api-reference/common/Time/variables/ms60fps.mdx b/.generated/evolu-docs/api-reference/common/Time/variables/ms60fps.mdx deleted file mode 100644 index 23b7aac24..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/variables/ms60fps.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / ms60fps - -```ts -const ms60fps: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Time.ts:326](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L326) - -Frame budget at 60fps (16ms). - -Work exceeding this blocks a frame, causing visible jank in animations. diff --git a/.generated/evolu-docs/api-reference/common/Time/variables/msLongTask.mdx b/.generated/evolu-docs/api-reference/common/Time/variables/msLongTask.mdx deleted file mode 100644 index 19e4717c4..000000000 --- a/.generated/evolu-docs/api-reference/common/Time/variables/msLongTask.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Time](/docs/api-reference/common/Time/page.mdx) / msLongTask - -```ts -const msLongTask: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/Time.ts:343](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Time.ts#L343) - -Long task threshold (50ms). - -Tasks exceeding this are "long tasks" per web standards. Use with -[yieldNow](/docs/api-reference/common/Task/variables/yieldNow.mdx) to yield periodically and keep UI responsive. - -## See - -https://web.dev/articles/optimize-long-tasks diff --git a/.generated/evolu-docs/api-reference/common/Tracer/interfaces/Tracer.mdx b/.generated/evolu-docs/api-reference/common/Tracer/interfaces/Tracer.mdx deleted file mode 100644 index d430bbe63..000000000 --- a/.generated/evolu-docs/api-reference/common/Tracer/interfaces/Tracer.mdx +++ /dev/null @@ -1,80 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Tracer](/docs/api-reference/common/Tracer/page.mdx) / Tracer - -Defined in: [packages/common/src/Tracer.ts:30](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Tracer.ts#L30) - -Minimal tracer interface for observability. - -Tracer provides unified observability for both sync and async code. Use it -directly for sync operations, or let [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) use it automatically for -async tasks. - -### Example - -```ts -// Sync code — use tracer directly -const result = deps.tracer?.span("parseData", () => parseData(input)); - -// Async code — Runner traces automatically -await using run = createRunner(deps); -const result = await run(fetchUser(id)); // Traced if tracer provided -``` - -TODO: Complete implementation with OpenTelemetry adapter. - -## Properties - - - -### event() - -```ts -readonly event: (name: string, data?: unknown) => void; -``` - -Defined in: [packages/common/src/Tracer.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Tracer.ts#L39) - -Records an event/fact (e.g., "user.purchased", "sync.completed"). - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | `string` | -| `data?` | `unknown` | - -#### Returns - -`void` - -*** - - - -### span() - -```ts -readonly span: (name: string, fn: () => T) => T; -``` - -Defined in: [packages/common/src/Tracer.ts:36](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Tracer.ts#L36) - -Wraps a sync function in a traced span. - -Records start time, end time, and success/failure status. - -#### Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | `string` | -| `fn` | () => `T` | - -#### Returns - -`T` diff --git a/.generated/evolu-docs/api-reference/common/Tracer/interfaces/TracerConfig.mdx b/.generated/evolu-docs/api-reference/common/Tracer/interfaces/TracerConfig.mdx deleted file mode 100644 index 5de46f43f..000000000 --- a/.generated/evolu-docs/api-reference/common/Tracer/interfaces/TracerConfig.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Tracer](/docs/api-reference/common/Tracer/page.mdx) / TracerConfig - -Defined in: [packages/common/src/Tracer.ts:47](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Tracer.ts#L47) - -Configuration for tracing. - -## Properties - - - -### tracing? - -```ts -readonly optional tracing: Ref; -``` - -Defined in: [packages/common/src/Tracer.ts:49](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Tracer.ts#L49) - -When `true`, enables trace data collection. Can be toggled at runtime. diff --git a/.generated/evolu-docs/api-reference/common/Tracer/interfaces/TracerConfigDep.mdx b/.generated/evolu-docs/api-reference/common/Tracer/interfaces/TracerConfigDep.mdx deleted file mode 100644 index 861b41f58..000000000 --- a/.generated/evolu-docs/api-reference/common/Tracer/interfaces/TracerConfigDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Tracer](/docs/api-reference/common/Tracer/page.mdx) / TracerConfigDep - -Defined in: [packages/common/src/Tracer.ts:52](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Tracer.ts#L52) - -## Properties - - - -### tracerConfig - -```ts -readonly tracerConfig: TracerConfig; -``` - -Defined in: [packages/common/src/Tracer.ts:53](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Tracer.ts#L53) diff --git a/.generated/evolu-docs/api-reference/common/Tracer/interfaces/TracerDep.mdx b/.generated/evolu-docs/api-reference/common/Tracer/interfaces/TracerDep.mdx deleted file mode 100644 index b6cc32ef7..000000000 --- a/.generated/evolu-docs/api-reference/common/Tracer/interfaces/TracerDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Tracer](/docs/api-reference/common/Tracer/page.mdx) / TracerDep - -Defined in: [packages/common/src/Tracer.ts:42](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Tracer.ts#L42) - -## Properties - - - -### tracer - -```ts -readonly tracer: Tracer; -``` - -Defined in: [packages/common/src/Tracer.ts:43](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Tracer.ts#L43) diff --git a/.generated/evolu-docs/api-reference/common/Tracer/page.mdx b/.generated/evolu-docs/api-reference/common/Tracer/page.mdx deleted file mode 100644 index d08c17de0..000000000 --- a/.generated/evolu-docs/api-reference/common/Tracer/page.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Tracer - -Minimal tracer interface for observability. - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Tracer](/docs/api-reference/common/Tracer/interfaces/Tracer.mdx) | Minimal tracer interface for observability. | -| [TracerConfig](/docs/api-reference/common/Tracer/interfaces/TracerConfig.mdx) | Configuration for tracing. | -| [TracerConfigDep](/docs/api-reference/common/Tracer/interfaces/TracerConfigDep.mdx) | - | -| [TracerDep](/docs/api-reference/common/Tracer/interfaces/TracerDep.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/array.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/array.mdx deleted file mode 100644 index 649a88916..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/array.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / array - -```ts -function array(element: ElementType): ArrayType; -``` - -Defined in: [packages/common/src/Type.ts:2427](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2427) - -Array of a specific [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const NumberArray = array(Number); - -const result1 = NumberArray.from([1, 2, 3]); // ok([1, 2, 3]) -const result2 = NumberArray.from(["a", "b"]); // err(...) -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `ElementType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `element` | `ElementType` | - -## Returns - -[`ArrayType`](/docs/api-reference/common/Type/interfaces/ArrayType.mdx)\<`ElementType`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/base.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/base.mdx deleted file mode 100644 index 78ec4c9ec..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/base.mdx +++ /dev/null @@ -1,46 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / base - -```ts -function base(name: Name, fromUnknown: (value: unknown) => Result): Type; -``` - -Defined in: [packages/common/src/Type.ts:698](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L698) - -Base [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -A Base Type validates that a value conforms to a specific TypeScript type. - -### Example - -```ts -const String = base("String", (value) => - typeof value === "string" - ? ok(value) - : err({ type: "String", value }), -); - -interface StringError extends TypeError<"String"> {} - -const formatStringError = createTypeErrorFormatter( - (error) => `A value ${error.value} is not a string`, -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Name` *extends* `string` | -| `T` | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | `Name` | -| `fromUnknown` | (`value`: `unknown`) => [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `Error`\> | - -## Returns - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`Name`, `T`, `T`, `Error`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/brand.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/brand.mdx deleted file mode 100644 index 93df90891..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/brand.mdx +++ /dev/null @@ -1,191 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / brand - -## Call Signature - -```ts -function brand( - name: Name, - parent: ParentType, -refine: (value: Parent) => Result): BrandType>; -``` - -Defined in: [packages/common/src/Type.ts:1050](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1050) - -Branded [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -Branding is the recommended way to define types in Evolu. Instead of using -primitive types like `string` or `number` directly, wrap them with `brand` to -create semantically meaningful types. See [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx) for why this matters. - -The `brand` Type Factory takes the name of a new [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx), a parent Type -to be branded, and the optional `refine` function for additional constraint. - -The `refine` function can be omitted if we only want to add a brand. - -### Example - -A simple `CurrencyCode` Type: - -```ts -const CurrencyCode = brand("CurrencyCode", String, (value) => - /^[A-Z]{3}$/.test(value) - ? ok(value) - : err({ type: "CurrencyCode", value }), -); - -// string & Brand<"CurrencyCode"> -type CurrencyCode = typeof CurrencyCode.Type; - -interface CurrencyCodeError extends TypeError<"CurrencyCode"> {} - -const formatCurrencyCodeError = - createTypeErrorFormatter( - (error) => `Invalid currency code: ${error.value}`, - ); - -// Usage -const result = CurrencyCode.from("USD"); -if (result.ok) { - console.log("Valid currency code:", result.value); -} else { - console.error(formatCurrencyCodeError(result.error)); -} -``` - -Often, we want to make a branded Type reusable. For example, instead of -`TrimmedString`, we want the `trimmed` Type Factory: - -```ts -const trimmed: BrandFactory<"Trimmed", string, TrimmedError> = ( - parent, -) => - brand("Trimmed", parent, (value) => - value.trim().length === value.length - ? ok(value) - : err({ type: "Trimmed", value }), - ); - -interface TrimmedError extends TypeError<"Trimmed"> {} - -const formatTrimmedError = createTypeErrorFormatter( - (error) => `A value ${error.value} is not trimmed`, -); - -const TrimmedString = trimmed(String); - -// string & Brand<"Trimmed"> -type TrimmedString = typeof TrimmedString.Type; - -const TrimmedNote = trimmed(Note); -``` - -As noted earlier, the `refine` function is optional. That's useful to add -semantic meaning to the existing Type without altering its functionality: - -```ts -const SimplePassword = brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -// string & Brand<"Trimmed"> & Brand<"MinLength8"> & Brand<"MaxLength64"> & Brand<"SimplePassword"> -type SimplePassword = typeof SimplePassword.Type; -``` - -We can use `brand` to enforce valid object as well: - -```ts -const Form = object({ - password: SimplePassword, - confirmPassword: SimplePassword, -}); - -const ValidForm = brand("ValidForm", Form, (value) => { - if (value.password !== value.confirmPassword) - return err({ - type: "ValidForm", - value, - reason: { kind: "PasswordMismatch" }, - }); - return ok(value); -}); -type ValidForm = typeof ValidForm.Type; - -interface ValidFormError extends TypeError<"ValidForm"> { - readonly reason: { kind: "PasswordMismatch" }; -} - -const result = ValidForm.from({ - password: "abcde123", - confirmPassword: "bbcde123", -}); - -const safeForm = (_form: ValidForm) => { - // -}; - -if (result.ok) { - safeForm(result.value); -} - -expect(result).toEqual( - err({ - type: "ValidForm", - value: { - confirmPassword: "bbcde123", - password: "abcde123", - }, - reason: { - kind: "PasswordMismatch", - }, - }), -); -``` - -### Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Name` *extends* `string` | - | -| `ParentType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - | -| `Parent` | [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\> | -| `RefineError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | `never` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | `Name` | -| `parent` | `ParentType` | -| `refine` | (`value`: `Parent`) => [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Parent`, `RefineError`\> | - -### Returns - -[`BrandType`](/docs/api-reference/common/Type/interfaces/BrandType.mdx)\<`ParentType`, `Name`, `RefineError`, [`InferErrors`](/docs/api-reference/common/Type/type-aliases/InferErrors.mdx)\<`ParentType`\>\> - -## Call Signature - -```ts -function brand(name: Name, parent: ParentType): BrandType>>; -``` - -Defined in: [packages/common/src/Type.ts:1062](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1062) - -Without refine function. - -### Type Parameters - -| Type Parameter | -| ------ | -| `Name` *extends* `string` | -| `ParentType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | `Name` | -| `parent` | `ParentType` | - -### Returns - -[`BrandType`](/docs/api-reference/common/Type/interfaces/BrandType.mdx)\<`ParentType`, `Name`, [`BrandWithoutRefineError`](/docs/api-reference/common/Type/interfaces/BrandWithoutRefineError.mdx)\<`Name`, [`InferErrors`](/docs/api-reference/common/Type/type-aliases/InferErrors.mdx)\<`ParentType`\>\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/createBaseTypeErrorFormatter.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/createBaseTypeErrorFormatter.mdx deleted file mode 100644 index 9eab3a625..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/createBaseTypeErrorFormatter.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / createBaseTypeErrorFormatter - -```ts -function createBaseTypeErrorFormatter(): TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:722](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L722) - -Creates a formatter function for a base [TypeError](/docs/api-reference/common/Type/interfaces/TypeError.mdx). - -This formatter is specifically for Base Types that only need a simple error -message indicating that the value is not of the expected type. - -### Example - -```ts -export const formatStringError = - createBaseTypeErrorFormatter(); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<`Error`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/createFormatTypeError.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/createFormatTypeError.mdx deleted file mode 100644 index fa0ac4993..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/createFormatTypeError.mdx +++ /dev/null @@ -1,100 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / createFormatTypeError - -```ts -function createFormatTypeError(extraFormatter?: TypeErrorFormatter): TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:4572](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4572) - -Formats Evolu Type errors into user-friendly messages. - -Evolu Type typed errors ensure every error type must have a formatter. -TypeScript enforces this at compile-time, preventing unhandled validation -errors from reaching users. - -The `createFormatTypeError` function handles both built-in [TypeErrors](/docs/api-reference/common/Type/type-aliases/TypeErrors.mdx) -and custom errors, and lets us override default formatting for specific -errors. - -### Example - -```ts -const formatTypeError = createFormatTypeError< - MinLengthError | MaxLengthError ->((error): string => { - switch (error.type) { - case "MinLength": - return `Text must be at least ${error.min} character${error.min === 1 ? "" : "s"} long`; - case "MaxLength": - return `Text is too long (maximum ${error.max} characters)`; - } -}); -``` - -Alternatively, write a custom formatter from scratch without using -`createFormatTypeError`. This gives us full control over error formatting: - -```ts -const Person = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Define only the errors actually used by Person Type -type PersonErrors = - | StringError - | MaxLengthError - | MinLengthError - | TrimmedError - | PositiveError - | NonNegativeError - | IntError - | NumberError - | ObjectError>; - -const formatTypeError: TypeErrorFormatter = (error) => { - switch (error.type) { - case "String": - return formatStringError(error); - case "Number": - return "Must be a number"; - case "MinLength": - return `Must be at least ${error.min} characters`; - case "MaxLength": - return `Cannot exceed ${error.max} characters`; - case "Trimmed": - return "Cannot have leading or trailing spaces"; - case "Positive": - return "Must be a positive number"; - case "NonNegative": - return "Must be zero or positive"; - case "Int": - return "Must be an integer"; - case "Object": { - if (error.reason.kind === "NotObject") return "Must be an object"; - if (error.reason.kind === "ExtraKeys") - return "Contains unexpected fields"; - const firstError = Object.values(error.reason.errors).find( - (e) => e !== undefined, - )!; - return formatTypeError(firstError); - } - } -}; -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `ExtraErrors` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `extraFormatter?` | [`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<`ExtraErrors`\> | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<[`TypeErrors`](/docs/api-reference/common/Type/type-aliases/TypeErrors.mdx)\<`ExtraErrors`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/createId.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/createId.mdx deleted file mode 100644 index 3e91808d3..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/createId.mdx +++ /dev/null @@ -1,36 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / createId - -```ts -function createId(deps: RandomBytesDep): [B] extends [never] ? string & Brand<"Id"> : string & Brand<"Id"> & Brand; -``` - -Defined in: [packages/common/src/Type.ts:1756](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1756) - -Creates a random [Id](/docs/api-reference/common/Type/variables/Id.mdx). This is the recommended default. - -Use [createIdFromString](/docs/api-reference/common/Type/functions/createIdFromString.mdx) for deterministic mapping of external IDs or -[createIdAsUuidv7](/docs/api-reference/common/Type/functions/createIdAsUuidv7.mdx) when you accept timestamp leakage for index -locality. - -### Example - -```ts -const id = createId(deps); -const todoId = createId<"Todo">(deps); -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `B` *extends* `string` | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) | - -## Returns - -\[`B`\] *extends* \[`never`\] ? `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> : `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`B`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/createIdAsUuidv7.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/createIdAsUuidv7.mdx deleted file mode 100644 index 164b3f1c2..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/createIdAsUuidv7.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / createIdAsUuidv7 - -```ts -function createIdAsUuidv7(deps: RandomBytesDep & TimeDep): [B] extends [never] ? string & Brand<"Id"> : string & Brand<"Id"> & Brand; -``` - -Defined in: [packages/common/src/Type.ts:1821](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1821) - -Creates an [Id](/docs/api-reference/common/Type/variables/Id.mdx) embedding timestamp bits (UUID v7 layout) before -Base64Url encoding. - -Tradeoff: better insertion locality / index performance for huge datasets vs -leaking creation time everywhere the Id appears. Evolu uses [createId](/docs/api-reference/common/Type/functions/createId.mdx) -by default to avoid activity leakage; choose this only if you explicitly -accept timestamp exposure. - -### Example - -```ts -const id = createIdAsUuidv7({ randomBytes, time }); -const todoId = createIdAsUuidv7<"Todo">({ randomBytes, time }); -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `B` *extends* `string` | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) & [`TimeDep`](/docs/api-reference/common/Time/interfaces/TimeDep.mdx) | - -## Returns - -\[`B`\] *extends* \[`never`\] ? `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> : `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`B`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/createIdFromString.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/createIdFromString.mdx deleted file mode 100644 index 804658a6d..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/createIdFromString.mdx +++ /dev/null @@ -1,52 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / createIdFromString - -```ts -function createIdFromString(value: string): [B] extends [never] ? string & Brand<"Id"> : string & Brand<"Id"> & Brand; -``` - -Defined in: [packages/common/src/Type.ts:1795](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1795) - -Creates an [Id](/docs/api-reference/common/Type/variables/Id.mdx) from a string using SHA-256. - -When integrating with external systems that use different ID formats, use -this function to convert external IDs into valid Evolu IDs. - -In Evolu's CRDT, the ID serves as the unique identifier for conflict -resolution across distributed clients. When multiple clients create records -with the same external identifier, they must resolve to the same Evolu ID to -ensure data consistency. - -### Example - -```ts -// Both clients will generate the same ID -const id1 = createIdFromString("user-api-123"); -const id2 = createIdFromString("user-api-123"); -console.log(id1 === id2); // true - -upsert("todo", { - id: createIdFromString("external-todo-456"), - title: "Synced from external system", -}); -``` - -**Important**: This transformation uses the first 16 bytes of SHA-256 hash of -the string bytes, therefore it's not possible to recover the original -external string from the generated [Id](/docs/api-reference/common/Type/variables/Id.mdx). If you need to preserve the -original external ID, store it in a separate column. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `B` *extends* `string` | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `string` | - -## Returns - -\[`B`\] *extends* \[`never`\] ? `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> : `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`B`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/createTypeErrorFormatter.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/createTypeErrorFormatter.mdx deleted file mode 100644 index 098ea2fb7..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/createTypeErrorFormatter.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / createTypeErrorFormatter - -```ts -function createTypeErrorFormatter(format: (error: Simplify & { - value: string; -}>) => string): TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:663](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L663) - -Creates a formatter function for [TypeError](/docs/api-reference/common/Type/interfaces/TypeError.mdx). - -The formatter generates human-readable error messages using a custom -formatting function and a safely stringified error value. - -### Example - -```ts -const formatStringError = createTypeErrorFormatter( - (value) => `A value ${value} is not a string.`, -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `format` | (`error`: [`Simplify`](/docs/api-reference/common/Types/type-aliases/Simplify.mdx)\<[`Omit`](https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys)\<`Error`, `"value"`\> & \{ `value`: `string`; \}\>) => `string` | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<`Error`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/dateIsoToDate.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/dateIsoToDate.mdx deleted file mode 100644 index 47cad02a6..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/dateIsoToDate.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / dateIsoToDate - -```ts -function dateIsoToDate(value: string & Brand<"DateIso">): Date; -``` - -Defined in: [packages/common/src/Type.ts:1204](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1204) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"DateIso"`\> | - -## Returns - -`Date` diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/dateToDateIso.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/dateToDateIso.mdx deleted file mode 100644 index 8d379089b..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/dateToDateIso.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / dateToDateIso - -```ts -function dateToDateIso(value: Date): Result, DateIsoError>; -``` - -Defined in: [packages/common/src/Type.ts:1201](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1201) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Date` | - -## Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"DateIso"`\>, [`DateIsoError`](/docs/api-reference/common/Type/interfaces/DateIsoError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/formatArrayError.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/formatArrayError.mdx deleted file mode 100644 index 9ef53a55a..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/formatArrayError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatArrayError - -```ts -function formatArrayError(formatTypeError: TypeErrorFormatter): TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:2519](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2519) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `formatTypeError` | [`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<`Error`\> | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<[`ArrayError`](/docs/api-reference/common/Type/interfaces/ArrayError.mdx)\<`Error`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/formatObjectError.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/formatObjectError.mdx deleted file mode 100644 index 97cabacaa..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/formatObjectError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatObjectError - -```ts -function formatObjectError(formatTypeError: TypeErrorFormatter): TypeErrorFormatter>>; -``` - -Defined in: [packages/common/src/Type.ts:3229](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3229) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `formatTypeError` | [`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<`Error`\> | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<[`ObjectError`](/docs/api-reference/common/Type/interfaces/ObjectError.mdx)\<`Record`\<`string`, `Error`\>\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/formatObjectWithRecordError.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/formatObjectWithRecordError.mdx deleted file mode 100644 index d41d4d604..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/formatObjectWithRecordError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatObjectWithRecordError - -```ts -function formatObjectWithRecordError(formatTypeError: TypeErrorFormatter): TypeErrorFormatter, Error, Error>>; -``` - -Defined in: [packages/common/src/Type.ts:3312](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3312) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `formatTypeError` | [`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<`Error`\> | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<[`ObjectWithRecordError`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx)\<`Record`\<`string`, `Error`\>, `Error`, `Error`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/formatRecordError.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/formatRecordError.mdx deleted file mode 100644 index c1d4a4596..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/formatRecordError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatRecordError - -```ts -function formatRecordError(formatTypeError: TypeErrorFormatter): TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:2846](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2846) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `formatTypeError` | [`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<`Error`\> | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<[`RecordError`](/docs/api-reference/common/Type/interfaces/RecordError.mdx)\<`Error`, `Error`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/formatSetError.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/formatSetError.mdx deleted file mode 100644 index 6ab9ce9d4..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/formatSetError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatSetError - -```ts -function formatSetError(formatTypeError: TypeErrorFormatter): TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:2637](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2637) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `formatTypeError` | [`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<`Error`\> | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<[`SetError`](/docs/api-reference/common/Type/interfaces/SetError.mdx)\<`Error`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/formatSimplePasswordError.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/formatSimplePasswordError.mdx deleted file mode 100644 index 4dc33284d..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/formatSimplePasswordError.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatSimplePasswordError - -```ts -function formatSimplePasswordError(formatTypeError: TypeErrorFormatter< - | StringError - | TrimmedError - | MinLengthError<8> - | MaxLengthError<64>>): TypeErrorFormatter -| MaxLengthError<64>>>; -``` - -Defined in: [packages/common/src/Type.ts:1695](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1695) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `formatTypeError` | [`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\< \| [`StringError`](/docs/api-reference/common/Type/interfaces/StringError.mdx) \| [`TrimmedError`](/docs/api-reference/common/Type/interfaces/TrimmedError.mdx) \| [`MinLengthError`](/docs/api-reference/common/Type/interfaces/MinLengthError.mdx)\<`8`\> \| [`MaxLengthError`](/docs/api-reference/common/Type/interfaces/MaxLengthError.mdx)\<`64`\>\> | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<[`BrandWithoutRefineError`](/docs/api-reference/common/Type/interfaces/BrandWithoutRefineError.mdx)\<`"SimplePassword"`, - \| [`StringError`](/docs/api-reference/common/Type/interfaces/StringError.mdx) - \| [`TrimmedError`](/docs/api-reference/common/Type/interfaces/TrimmedError.mdx) - \| [`MinLengthError`](/docs/api-reference/common/Type/interfaces/MinLengthError.mdx)\<`8`\> - \| [`MaxLengthError`](/docs/api-reference/common/Type/interfaces/MaxLengthError.mdx)\<`64`\>\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/formatTupleError.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/formatTupleError.mdx deleted file mode 100644 index 4e6f94e75..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/formatTupleError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatTupleError - -```ts -function formatTupleError(formatTypeError: TypeErrorFormatter): TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:4000](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4000) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `formatTypeError` | [`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<`Error`\> | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<[`TupleError`](/docs/api-reference/common/Type/interfaces/TupleError.mdx)\<`Error`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/formatUnionError.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/formatUnionError.mdx deleted file mode 100644 index a40b23957..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/formatUnionError.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatUnionError - -```ts -function formatUnionError(formatTypeError: TypeErrorFormatter): TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:3615](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3615) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `formatTypeError` | [`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<`Error`\> | - -## Returns - -[`TypeErrorFormatter`](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)\<[`UnionError`](/docs/api-reference/common/Type/interfaces/UnionError.mdx)\<`Error`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/id.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/id.mdx deleted file mode 100644 index 61e087f47..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/id.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / id - -```ts -function id(table: Table): TableId
; -``` - -Defined in: [packages/common/src/Type.ts:1856](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1856) - -Creates a branded [Id](/docs/api-reference/common/Type/variables/Id.mdx) Type for a table's primary key. - -The table name becomes an additional brand for type safety. - -### Example - -```ts -const TodoId = id("Todo"); -// string & Brand<"Id"> & Brand<"Todo"> -type TodoId = typeof TodoId.Type; -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Table` *extends* `string` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `table` | `Table` | - -## Returns - -[`TableId`](/docs/api-reference/common/Type/interfaces/TableId.mdx)\<`Table`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/idBytesToId.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/idBytesToId.mdx deleted file mode 100644 index 6eaef2e50..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/idBytesToId.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / idBytesToId - -```ts -function idBytesToId(idBytes: Uint8Array & Brand<"Length16"> & Brand<"IdBytes">): string & Brand<"Id">; -``` - -Defined in: [packages/common/src/Type.ts:1909](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1909) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `idBytes` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> | - -## Returns - -`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/idToIdBytes.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/idToIdBytes.mdx deleted file mode 100644 index bb985edeb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/idToIdBytes.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / idToIdBytes - -```ts -function idToIdBytes(id: string & Brand<"Id">): Uint8Array & Brand<"Length16"> & Brand<"IdBytes">; -``` - -Defined in: [packages/common/src/Type.ts:1905](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1905) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `id` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> | - -## Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/instanceOf.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/instanceOf.mdx deleted file mode 100644 index 9969b7f24..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/instanceOf.mdx +++ /dev/null @@ -1,40 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / instanceOf - -```ts -function instanceOf(ctor: T): InstanceOfType; -``` - -Defined in: [packages/common/src/Type.ts:852](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L852) - -`instanceof` [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -Ensures that a value is an instance of the given class constructor. - -### Example - -```ts -class User { - constructor(public name: string) {} -} - -const UserInstance = instanceOf(User); - -const result = UserInstance.from(new User("Alice")); // ok -const error = UserInstance.from({}); // err -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* (...`args`: `any`) => `any` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `ctor` | `T` | - -## Returns - -[`InstanceOfType`](/docs/api-reference/common/Type/interfaces/InstanceOfType.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/isOptionalType.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/isOptionalType.mdx deleted file mode 100644 index c3296edc4..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/isOptionalType.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / isOptionalType - -```ts -function isOptionalType(x: unknown): x is OptionalType; -``` - -Defined in: [packages/common/src/Type.ts:4316](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4316) - -Determines if a given type is an [OptionalType](/docs/api-reference/common/Type/interfaces/OptionalType.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `x` | `unknown` | - -## Returns - -`x is OptionalType` diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/isType.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/isType.mdx deleted file mode 100644 index 49c0e7ec2..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/isType.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / isType - -```ts -function isType(value: unknown): value is AnyType; -``` - -Defined in: [packages/common/src/Type.ts:583](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L583) - -Checks if the given value is an [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -## Returns - -`value is AnyType` diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/isUnionType.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/isUnionType.mdx deleted file mode 100644 index 5b0bd5370..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/isUnionType.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / isUnionType - -```ts -function isUnionType(t: AnyType): t is UnionType<[AnyType, ...AnyType[]]>; -``` - -Defined in: [packages/common/src/Type.ts:3626](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3626) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `t` | [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Returns - -`t is UnionType<[AnyType, ...AnyType[]]>` diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/json.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/json.mdx deleted file mode 100644 index 9983a8be6..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/json.mdx +++ /dev/null @@ -1,63 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / json - -```ts -function json(type: T, name: Name): [BrandType, Name, - | JsonError - | InferErrors, StringError>, (value: InferType) => string & Brand, (value: string & Brand) => InferType]; -``` - -Defined in: [packages/common/src/Type.ts:4245](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4245) - -Creates a branded JSON string [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) and type-safe conversion functions -for a given Type. - -This factory creates: - -1. A branded string Type that validates JSON parsing and structural conformity -2. A serialization function (Type → branded JSON string) -3. A parsing function (branded JSON string → Type, skipping validation) - -Optimized for Evolu's SQLite workflow where we store typed JSON strings and -need type-safe conversions without double parsing. - -### Example - -```ts -const Person = object({ - name: NonEmptyString100, - age: FiniteNumber, -}); -interface Person extends InferType {} - -const [PersonJson, personToPersonJson, personJsonToPerson] = json( - Person, - "PersonJson", -); -// string & Brand<"PersonJson"> -type PersonJson = typeof PersonJson.Type; - -// Usage: -const person: Person = { name: "Alice", age: 30 }; -const jsonString = personToPersonJson(person); // PersonJson -const backToPerson = personJsonToPerson(jsonString); // Person -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | -| `Name` *extends* `string` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `type` | `T` | -| `name` | `Name` | - -## Returns - -\[[`BrandType`](/docs/api-reference/common/Type/interfaces/BrandType.mdx)\<[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"String"`, `string`, `string`, [`StringError`](/docs/api-reference/common/Type/interfaces/StringError.mdx), `string`, [`StringError`](/docs/api-reference/common/Type/interfaces/StringError.mdx)\>, `Name`, - \| [`JsonError`](/docs/api-reference/common/Type/interfaces/JsonError.mdx) - \| [`InferErrors`](/docs/api-reference/common/Type/type-aliases/InferErrors.mdx)\<`T`\>, [`StringError`](/docs/api-reference/common/Type/interfaces/StringError.mdx)\>, (`value`: [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`T`\>) => `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Name`\>, (`value`: `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Name`\>) => [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`T`\>\] diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/jsonToJsonValue.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/jsonToJsonValue.mdx deleted file mode 100644 index c926f76b4..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/jsonToJsonValue.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / jsonToJsonValue - -```ts -function jsonToJsonValue(value: string & Brand<"Json">): JsonValue; -``` - -Defined in: [packages/common/src/Type.ts:4207](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4207) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Json"`\> | - -## Returns - -[`JsonValue`](/docs/api-reference/common/Type/type-aliases/JsonValue.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/jsonValueToJson.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/jsonValueToJson.mdx deleted file mode 100644 index c193d8e50..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/jsonValueToJson.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / jsonValueToJson - -```ts -function jsonValueToJson(value: JsonValue): string & Brand<"Json">; -``` - -Defined in: [packages/common/src/Type.ts:4204](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4204) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`JsonValue`](/docs/api-reference/common/Type/type-aliases/JsonValue.mdx) | - -## Returns - -`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Json"`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/literal.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/literal.mdx deleted file mode 100644 index 4f5d91ed2..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/literal.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / literal - -```ts -function literal(expected: T): LiteralType; -``` - -Defined in: [packages/common/src/Type.ts:2379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2379) - -Literal [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types - -### Example - -```ts -const LiteralHello = literal("Hello"); -const result = LiteralHello.from("Hello"); // ok("Hello") -const errorResult = LiteralHello.from("World"); // err -``` - -TODO: Add JsonValue - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`Literal`](/docs/api-reference/common/Types/type-aliases/Literal.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `expected` | `T` | - -## Returns - -[`LiteralType`](/docs/api-reference/common/Type/interfaces/LiteralType.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/nextResult.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/nextResult.mdx deleted file mode 100644 index 27631d518..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/nextResult.mdx +++ /dev/null @@ -1,68 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / nextResult - -```ts -function nextResult( - valueType: ValueType, - errorType: ErrorType, - doneType: DoneType): UnionType<[ObjectType<{ - ok: LiteralType; - value: ValueType; -}>, ObjectType<{ - error: UnionType; - ok: LiteralType; -}>]>; -``` - -Defined in: [packages/common/src/Type.ts:3705](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3705) - -Creates a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) for [NextResult](/docs/api-reference/common/Result/type-aliases/NextResult.mdx) with three outcomes. - -Validates results where the producer responds with: - -- `Ok` — produced a value -- `Err>` — completed normally with a done value -- `Err` — failed with an error - -### Example - -```ts -const MyNextResult = nextResult(Item, MyError, Summary); - -const validated = MyNextResult.fromUnknown(data); -if (!validated.ok) return validated; - -const result = validated.value; -if (result.ok) { - console.log(result.value); -} else if (result.error.type === "Done") { - console.log("Done:", result.error.done); -} else { - console.error(result.error); -} -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `ValueType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | -| `ErrorType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | -| `DoneType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `valueType` | `ValueType` | -| `errorType` | `ErrorType` | -| `doneType` | `DoneType` | - -## Returns - -[`UnionType`](/docs/api-reference/common/Type/interfaces/UnionType.mdx)\<\[[`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx)\<\{ - `ok`: [`LiteralType`](/docs/api-reference/common/Type/interfaces/LiteralType.mdx)\<`true`\>; - `value`: `ValueType`; -\}\>, [`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx)\<\{ - `error`: [`UnionType`](/docs/api-reference/common/Type/interfaces/UnionType.mdx); - `ok`: [`LiteralType`](/docs/api-reference/common/Type/interfaces/LiteralType.mdx)\<`false`\>; -\}\>\]\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/nullOr.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/nullOr.mdx deleted file mode 100644 index 0d82ed235..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/nullOr.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / nullOr - -```ts -function nullOr(type: T): UnionType<[Type<"Null", null, null, NullError, null, NullError>, T]>; -``` - -Defined in: [packages/common/src/Type.ts:3831](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3831) - -`union(null, T)` [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const NullOrString = nullOr(String); -NullOrString.from("hello"); // ok("hello") -NullOrString.from(null); // ok(null) -NullOrString.from(42); // err(...) -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `type` | `T` | - -## Returns - -[`UnionType`](/docs/api-reference/common/Type/interfaces/UnionType.mdx)\<\[[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Null"`, `null`, `null`, [`NullError`](/docs/api-reference/common/Type/interfaces/NullError.mdx), `null`, [`NullError`](/docs/api-reference/common/Type/interfaces/NullError.mdx)\>, `T`\]\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/nullableToOptional.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/nullableToOptional.mdx deleted file mode 100644 index b54f93678..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/nullableToOptional.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / nullableToOptional - -```ts -function nullableToOptional(props: Props): ObjectType>; -``` - -Defined in: [packages/common/src/Type.ts:4366](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4366) - -Converts each “nullable” property (a union that includes [Null](/docs/api-reference/common/Type/variables/Null.mdx)) into an -[optional](/docs/api-reference/common/Type/functions/optional.mdx) property. This means consumers can omit the property -entirely, or set it to `null`, or set it to the non-null member of the -union. - -## Type Parameters - -| Type Parameter | -| ------ | -| `Props` *extends* `Record`\<`string`, [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx)\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `props` | `Props` | - -## Returns - -[`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx)\<[`NullableToOptionalProps`](/docs/api-reference/common/Type/type-aliases/NullableToOptionalProps.mdx)\<`Props`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/nullishOr.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/nullishOr.mdx deleted file mode 100644 index 94c89915c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/nullishOr.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / nullishOr - -```ts -function nullishOr(type: T): UnionType<[Type<"Undefined", undefined, undefined, UndefinedError, undefined, UndefinedError>, Type<"Null", null, null, NullError, null, NullError>, T]>; -``` - -Defined in: [packages/common/src/Type.ts:3871](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3871) - -`union(undefined, null, T)` [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -Learn more: -https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#nullish-coalescing - -### Example - -```ts -const NullishOrString = nullishOr(String); -NullishOrString.from("test"); // ok("test") -NullishOrString.from(null); // ok(null) -NullishOrString.from(undefined); // ok() -NullishOrString.from(42); // err(...) -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `type` | `T` | - -## Returns - -[`UnionType`](/docs/api-reference/common/Type/interfaces/UnionType.mdx)\<\[[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Undefined"`, `undefined`, `undefined`, [`UndefinedError`](/docs/api-reference/common/Type/interfaces/UndefinedError.mdx), `undefined`, [`UndefinedError`](/docs/api-reference/common/Type/interfaces/UndefinedError.mdx)\>, [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Null"`, `null`, `null`, [`NullError`](/docs/api-reference/common/Type/interfaces/NullError.mdx), `null`, [`NullError`](/docs/api-reference/common/Type/interfaces/NullError.mdx)\>, `T`\]\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/object.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/object.mdx deleted file mode 100644 index 510ac15fa..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/object.mdx +++ /dev/null @@ -1,160 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / object - -## Call Signature - -```ts -function object(props: Props): ObjectType; -``` - -Defined in: [packages/common/src/Type.ts:2965](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2965) - -Object [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -This validates that: - -- The value is a plain object (checked with [isPlainObject](/docs/api-reference/common/Object/functions/isPlainObject.mdx)). -- The object has no extra properties beyond the specified keys unless an index - signature is provided. -- Each property's value matches the specified Type. - -When an index signature is included, the object can have additional keys that -conform to the specified key and value Types. - -The resulting `ObjectType` includes `props` for reflection, which defines the -expected structure, and optionally an `record` for flexible key/value pairs. - -https://www.typescriptlang.org/docs/handbook/2/objects.html#index-signatures - -### Example - -## Basic Object Validation - -```ts -const User = object({ - name: NonEmptyTrimmedString, - age: PositiveNumber, -}); -interface User extends InferType {} - -const result = User.from({ name: "John", age: 30 }); // ok({ name: "John", age: 30 }) -const error = User.from({ name: "John", age: -5 }); // err -``` - -## Optional Properties - -In this example the `age` property is marked as optional using -[optional](/docs/api-reference/common/Type/functions/optional.mdx). - -```ts -const User = object({ - name: NonEmptyString, // Required - age: optional(PositiveNumber), // Optional -}); -interface User extends InferType {} -``` - -## Allowing Additional Properties - -```ts -const UserWithAnyExtraProperties = object( - { - name: NonEmptyString, - age: PositiveNumber, - }, - record(String, Unknown), -); - -expect( - UserWithAnyExtraProperties.from({ name: "a", age: 1, foo: 1 }), -).toEqual({ - ok: true, - value: { age: 1, foo: 1, name: "a" }, -}); -``` - -## Combining Fixed and Flexible Properties - -```ts -const NumberDictionary = object( - { length: Number }, - record(String, Number), -); - -const validInput = { - length: 5, - extraKey1: 10, - extraKey2: 15, -}; - -const fromResult = NumberDictionary.from(validInput); -expect(fromResult).toEqual(ok(validInput)); - -const invalidInput = { - length: 5, - extraKey1: "not a number", - extraKey2: 15, -}; - -const invalidFromResult = NumberDictionary.fromUnknown(invalidInput); -expect(invalidFromResult).toEqual( - err({ - type: "Object", - value: invalidInput, - reason: { - kind: "IndexValue", - key: "extraKey1", - error: { type: "Number", value: "not a number" }, - }, - }), -); -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Props` *extends* `Record`\<`string`, [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx)\> | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `props` | `Props` | - -### Returns - -[`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx)\<`Props`\> - -## Call Signature - -```ts -function object(props: Props, record: RecordType): ObjectWithRecordType; -``` - -Defined in: [packages/common/src/Type.ts:2970](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2970) - -With additional record properties. - -### Type Parameters - -| Type Parameter | -| ------ | -| `Props` *extends* `Record`\<`string`, [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx)\> | -| `KeyName` *extends* `string` | -| `KeyT` *extends* `string` | -| `KeyInput` *extends* `string` | -| `KeyError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | -| `KeyParent` *extends* `string` | -| `KeyParentError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | -| `Value` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `props` | `Props` | -| `record` | [`RecordType`](/docs/api-reference/common/Type/interfaces/RecordType.mdx)\<`KeyName`, `KeyT`, `KeyInput`, `KeyError`, `KeyParent`, `KeyParentError`, `Value`\> | - -### Returns - -[`ObjectWithRecordType`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordType.mdx)\<`Props`, `KeyName`, `KeyT`, `KeyInput`, `KeyError`, `KeyParent`, `KeyParentError`, `Value`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/omit.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/omit.mdx deleted file mode 100644 index a2703bf38..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/omit.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / omit - -```ts -function omit(objectType: T, ...keys: readonly Keys[]): ObjectType>; -``` - -Defined in: [packages/common/src/Type.ts:4412](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4412) - -Create a new `object` [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) by omitting some keys. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx)\<`any`\> | -| `Keys` *extends* `string` \| `number` \| `symbol` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `objectType` | `T` | -| ...`keys` | readonly `Keys`[] | - -## Returns - -[`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx)\<[`Omit`](https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys)\<`T`\[`"props"`\], `Keys`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/optional.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/optional.mdx deleted file mode 100644 index fb4bfa7b7..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/optional.mdx +++ /dev/null @@ -1,43 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / optional - -```ts -function optional(type: T): OptionalType; -``` - -Defined in: [packages/common/src/Type.ts:4295](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4295) - -Optional [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -Marks a `Type` as **optional**, meaning: - -- If the value is **present**, it must match the given `Type`. -- If the value is **absent**, it is **not included** in the final object. - -This is different from [undefinedOr](/docs/api-reference/common/Type/functions/undefinedOr.mdx), which allows explicit `undefined` -but **still requires the key to exist**. - -### Example: - -```ts -const Todo = object({ - id: TodoId, - title: NonEmptyString1000, - isCompleted: optional(SqliteBoolean), -}); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `type` | `T` | - -## Returns - -[`OptionalType`](/docs/api-reference/common/Type/interfaces/OptionalType.mdx)\<`T`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/parseJson.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/parseJson.mdx deleted file mode 100644 index 92caae584..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/parseJson.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / parseJson - -```ts -function parseJson(value: string): Result; -``` - -Defined in: [packages/common/src/Type.ts:4165](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4165) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `string` | - -## Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`JsonValue`](/docs/api-reference/common/Type/type-aliases/JsonValue.mdx), [`JsonError`](/docs/api-reference/common/Type/interfaces/JsonError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/partial.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/partial.mdx deleted file mode 100644 index b4bf3244c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/partial.mdx +++ /dev/null @@ -1,47 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / partial - -```ts -function partial(props: Props): ObjectType<{ [K in string | number | symbol]: OptionalType }>; -``` - -Defined in: [packages/common/src/Type.ts:4346](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4346) - -Creates a partial object type where all properties are optional. - -This is useful when we want to validate an object in which none of the keys -are required, but if they are present they must conform to their -corresponding Types. - -### Example - -```ts -const PartialUser = partial({ - name: NonEmptyString, - age: PositiveNumber, -}); - -// Valid: an empty object is accepted -PartialUser.from({}); - -// Valid: when provided, the properties must validate correctly -PartialUser.from({ name: "Alice" }); - -// Invalid: if a property is present but fails validation it returns an error -PartialUser.from({ age: -5 }); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Props` *extends* `Record`\<`string`, [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx)\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `props` | `Props` | - -## Returns - -[`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx)\<\{ \[K in string \| number \| symbol\]: OptionalType\ \}\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/record.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/record.mdx deleted file mode 100644 index c68fe2051..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/record.mdx +++ /dev/null @@ -1,53 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / record - -```ts -function record(keyType: Type, valueType: Value): RecordType; -``` - -Defined in: [packages/common/src/Type.ts:2676](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2676) - -Record of a key [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) and value [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -- The input must be a plain object (validated by [isPlainObject](/docs/api-reference/common/Object/functions/isPlainObject.mdx)). -- Each key is validated/transformed by the `key` Type. -- Each value is validated/transformed by the `value` Type. - -The resulting type is `Readonly>`. - -### Example - -```ts -const StringToNumberRecord = record(String, Number); - -// ok({ "a": 1, "b": 2 }) -StringToNumberRecord.from({ a: 1, b: 2 }); - -// err => "Key" because 42 is not a string key -StringToNumberRecord.from({ 42: 1, b: 2 }); - -// err => "Value" because "x" is not a number -StringToNumberRecord.from({ a: "x", b: 2 }); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `KeyName` *extends* `string` | -| `KeyT` *extends* `string` | -| `KeyInput` *extends* `string` | -| `KeyError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | -| `KeyParent` *extends* `string` | -| `KeyParentError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | -| `Value` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `keyType` | [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`KeyName`, `KeyT`, `KeyInput`, `KeyError`, `KeyParent`, `KeyParentError`\> | -| `valueType` | `Value` | - -## Returns - -[`RecordType`](/docs/api-reference/common/Type/interfaces/RecordType.mdx)\<`KeyName`, `KeyT`, `KeyInput`, `KeyError`, `KeyParent`, `KeyParentError`, `Value`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/recursive.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/recursive.mdx deleted file mode 100644 index cfc1749c9..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/recursive.mdx +++ /dev/null @@ -1,55 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / recursive - -```ts -function recursive(create: () => ParentType): RecursiveType; -``` - -Defined in: [packages/common/src/Type.ts:3770](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3770) - -Recursive [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -Recursive types can't be inferred, so we must define them using an interface -and `recursive` Type Factory that returns a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -interface Category { - readonly name: string; - readonly subcategories: ReadonlyArray; -} - -interface CategoryInput { - readonly name: string; - readonly subcategories: ReadonlyArray; -} - -type CategoryError = ObjectError<{ - readonly name: typeof String.Error; - readonly subcategories: ArrayError; -}>; - -const Category = recursive( - (): Type<"Object", Category, CategoryInput, CategoryError> => - object({ - name: String, - subcategories: array(Category), - }), -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `ParentType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `create` | () => `ParentType` | - -## Returns - -[`RecursiveType`](/docs/api-reference/common/Type/interfaces/RecursiveType.mdx)\<`ParentType`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/result.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/result.mdx deleted file mode 100644 index 06db26db4..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/result.mdx +++ /dev/null @@ -1,55 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / result - -```ts -function result(okType: OkType, errType: ErrType): UnionType<[ObjectType<{ - ok: LiteralType; - value: OkType; -}>, ObjectType<{ - error: ErrType; - ok: LiteralType; -}>]>; -``` - -Defined in: [packages/common/src/Type.ts:3652](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3652) - -Creates a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) for [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) values. - -Use for validating serialized Results from storage, APIs, or message passing. - -### Example - -```ts -const SyncResponse = result( - object({ timestamp: NonNegativeInt }), - typed("SyncError", { message: String }), -); - -// Validate response from worker or API -const validated = SyncResponse.from(JSON.parse(message)); -if (!validated.ok) return validated; // validation error -// validated.value is Result<{ timestamp }, SyncError> -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `OkType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | -| `ErrType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `okType` | `OkType` | -| `errType` | `ErrType` | - -## Returns - -[`UnionType`](/docs/api-reference/common/Type/interfaces/UnionType.mdx)\<\[[`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx)\<\{ - `ok`: [`LiteralType`](/docs/api-reference/common/Type/interfaces/LiteralType.mdx)\<`true`\>; - `value`: `OkType`; -\}\>, [`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx)\<\{ - `error`: `ErrType`; - `ok`: [`LiteralType`](/docs/api-reference/common/Type/interfaces/LiteralType.mdx)\<`false`\>; -\}\>\]\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/set.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/set.mdx deleted file mode 100644 index c72d007df..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/set.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / set - -```ts -function set(element: ElementType): SetType; -``` - -Defined in: [packages/common/src/Type.ts:2545](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2545) - -Set of a specific [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const NumberSet = set(Number); - -const result1 = NumberSet.from(new Set([1, 2, 3])); // ok(Set { 1, 2, 3 }) -const result2 = NumberSet.from(new Set(["a", "b"])); // err(...) -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `ElementType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `element` | `ElementType` | - -## Returns - -[`SetType`](/docs/api-reference/common/Type/interfaces/SetType.mdx)\<`ElementType`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/trim.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/trim.mdx deleted file mode 100644 index 41605ef20..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/trim.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / trim - -```ts -function trim(value: string): string & Brand<"Trimmed">; -``` - -Defined in: [packages/common/src/Type.ts:1299](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1299) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `string` | - -## Returns - -`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Trimmed"`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/tuple.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/tuple.mdx deleted file mode 100644 index 8ad6f226f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/tuple.mdx +++ /dev/null @@ -1,36 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / tuple - -```ts -function tuple(...elements: Elements): TupleType; -``` - -Defined in: [packages/common/src/Type.ts:3892](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3892) - -Tuple [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -Represents a tuple of specific Types. - -### Example - -```ts -const NameAndAge = tuple(NonEmptyTrimmedString, PositiveNumber); - -const result = NameAndAge.from(["Alice", 25]); // ok(["Alice", 25]) -const error = NameAndAge.from(["Alice", -10]); // err -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Elements` *extends* \[[`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx), `...AnyType[]`\] | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`elements` | `Elements` | - -## Returns - -[`TupleType`](/docs/api-reference/common/Type/interfaces/TupleType.mdx)\<`Elements`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/typeErrorToStandardSchemaIssues.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/typeErrorToStandardSchemaIssues.mdx deleted file mode 100644 index 31f19b389..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/typeErrorToStandardSchemaIssues.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / typeErrorToStandardSchemaIssues - -```ts -function typeErrorToStandardSchemaIssues(error: TypeErrors, path?: readonly PropertyKey[]): readonly Issue[]; -``` - -Defined in: [packages/common/src/Type.ts:4697](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4697) - -Converts an Evolu [TypeError](/docs/api-reference/common/Type/interfaces/TypeError.mdx) to Standard Schema V1 issues format. - -This function recursively converts Evolu's typed errors into the Standard -Schema issue format with proper path tracking for nested structures. The -`message` field contains the JSON-serialized typed error, which users can -deserialize and format using appropriate [TypeErrorFormatter](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx)s. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `ExtraErrors` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Capitalize`\<`string`\>\> | `never` | - -## Parameters - -| Parameter | Type | Default value | -| ------ | ------ | ------ | -| `error` | [`TypeErrors`](/docs/api-reference/common/Type/type-aliases/TypeErrors.mdx)\<`ExtraErrors`\> | `undefined` | -| `path` | readonly `PropertyKey`[] | `[]` | - -## Returns - -readonly [`Issue`](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Issue.mdx)[] diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/typed.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/typed.mdx deleted file mode 100644 index 6ef9a38b9..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/typed.mdx +++ /dev/null @@ -1,87 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / typed - -## Call Signature - -```ts -function typed(tag: Tag): TypedType; -``` - -Defined in: [packages/common/src/Type.ts:3492](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3492) - -Creates a runtime-validated typed object with a `type` discriminant. - -### Example - -```ts -const Card = typed("Card", { - cardNumber: CardNumber, - expiry: DateIso, -}); - -const Cash = typed("Cash", { - currency: NonEmptyTrimmedString, -}); - -const Payment = union(Card, Cash); -type Payment = typeof Payment.Type; - -const result = Payment.fromUnknown(data); -if (result.ok) { - switch (result.value.type) { - case "Card": - console.log(result.value.cardNumber); - break; - case "Cash": - console.log(result.value.currency); - break; - } -} -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Tag` *extends* `string` | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tag` | `Tag` | - -### Returns - -[`TypedType`](/docs/api-reference/common/Type/type-aliases/TypedType.mdx)\<`Tag`\> - -### See - -[Typed](/docs/api-reference/common/Type/interfaces/Typed.mdx) for type-only discrimination. - -## Call Signature - -```ts -function typed(tag: Tag, props: Props): TypedType; -``` - -Defined in: [packages/common/src/Type.ts:3494](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3494) - -With additional properties. - -### Type Parameters - -| Type Parameter | -| ------ | -| `Tag` *extends* `string` | -| `Props` *extends* `Record`\<`string`, [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx)\> | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tag` | `Tag` | -| `props` | `Props` | - -### Returns - -[`TypedType`](/docs/api-reference/common/Type/type-aliases/TypedType.mdx)\<`Tag`, `Props`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/undefinedOr.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/undefinedOr.mdx deleted file mode 100644 index 9dd8562c2..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/undefinedOr.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / undefinedOr - -```ts -function undefinedOr(type: T): UnionType<[Type<"Undefined", undefined, undefined, UndefinedError, undefined, UndefinedError>, T]>; -``` - -Defined in: [packages/common/src/Type.ts:3849](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3849) - -`union(undefined, T)` [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const UndefinedOrString = undefinedOr(String); -UndefinedOrString.from("world"); // ok("world") -UndefinedOrString.from(undefined); // ok() -UndefinedOrString.from(42); // err(...) -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `type` | `T` | - -## Returns - -[`UnionType`](/docs/api-reference/common/Type/interfaces/UnionType.mdx)\<\[[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Undefined"`, `undefined`, `undefined`, [`UndefinedError`](/docs/api-reference/common/Type/interfaces/UndefinedError.mdx), `undefined`, [`UndefinedError`](/docs/api-reference/common/Type/interfaces/UndefinedError.mdx)\>, `T`\]\> diff --git a/.generated/evolu-docs/api-reference/common/Type/functions/union.mdx b/.generated/evolu-docs/api-reference/common/Type/functions/union.mdx deleted file mode 100644 index 7be579441..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/functions/union.mdx +++ /dev/null @@ -1,72 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / union - -## Call Signature - -```ts -function union(...members: Members): UnionType; -``` - -Defined in: [packages/common/src/Type.ts:3539](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3539) - -Union [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -`UnionType` represents a union of multiple member Types. Accepts both -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx) and literal values as arguments. - -Note that the `union` Type Factory delegates `fromParent` to `fromUnknown`. -That's because the union members can have different `Parent` types, and at -runtime, it is impossible to determine which member should process a given -`Parent` value. - -### Example - -```ts -const AorB = union("a", "b"); -const result1 = AorB.from("a"); // ok("a") -const result2 = AorB.from("c"); // err - -const StringOrNumber = union(String, Number); -const result3 = StringOrNumber.from(42); // ok(42) -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `Members` *extends* \[[`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx), [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx), `...AnyType[]`\] | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`members` | `Members` | - -### Returns - -[`UnionType`](/docs/api-reference/common/Type/interfaces/UnionType.mdx)\<`Members`\> - -## Call Signature - -```ts -function union(...literals: Literals): UnionType<{ [K in string | number | symbol]: LiteralType }>; -``` - -Defined in: [packages/common/src/Type.ts:3544](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3544) - -With literal values. - -### Type Parameters - -| Type Parameter | -| ------ | -| `Literals` *extends* \[[`Literal`](/docs/api-reference/common/Types/type-aliases/Literal.mdx), [`Literal`](/docs/api-reference/common/Types/type-aliases/Literal.mdx), `...Literal[]`\] | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| ...`literals` | `Literals` | - -### Returns - -[`UnionType`](/docs/api-reference/common/Type/interfaces/UnionType.mdx)\<\{ \[K in string \| number \| symbol\]: LiteralType\ \}\> diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/ArrayError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/ArrayError.mdx deleted file mode 100644 index 0c9db576c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/ArrayError.mdx +++ /dev/null @@ -1,82 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / ArrayError - -Defined in: [packages/common/src/Type.ts:2508](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2508) - -## Extends - -- [`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx)\<`"Array"`, - \| \{ - `kind`: `"NotArray"`; -\} - \| \{ - `error`: `Error`; - `index`: `number`; - `kind`: `"Element"`; -\}\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - -## Properties - - - -### reason - -```ts -readonly reason: - | { - kind: "NotArray"; -} - | { - error: Error; - index: number; - kind: "Element"; -}; -``` - -Defined in: [packages/common/src/Type.ts:493](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L493) - -The detailed reason for the error, represented as a tagged union. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`reason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#reason-1) - -*** - - - -### type - -```ts -readonly type: "Array"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/ArrayType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/ArrayType.mdx deleted file mode 100644 index c5aad6bdb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/ArrayType.mdx +++ /dev/null @@ -1,484 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / ArrayType - -Defined in: [packages/common/src/Type.ts:2496](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2496) - -ArrayType extends Type with an additional `element` property for reflection. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Array"`, `ReadonlyArray`\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ElementType`\>\>, `ReadonlyArray`\<[`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`ElementType`\>\>, [`ArrayError`](/docs/api-reference/common/Type/interfaces/ArrayError.mdx)\<[`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ElementType`\>\>, `ReadonlyArray`\<[`InferParent`](/docs/api-reference/common/Type/type-aliases/InferParent.mdx)\<`ElementType`\>\>, [`ArrayError`](/docs/api-reference/common/Type/interfaces/ArrayError.mdx)\<[`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`ElementType`\>\>\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `ElementType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props[], readonly InferType[]>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### element - -```ts -readonly element: ElementType; -``` - -Defined in: [packages/common/src/Type.ts:2505](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2505) - -*** - - - -### Error - -```ts -Error: ArrayError>; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: - | ArrayError> -| ArrayError>; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: readonly InferInput[]) => Result[], - | ArrayError> -| ArrayError>>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | readonly [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`ElementType`\>[] | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\[], - \| [`ArrayError`](/docs/api-reference/common/Type/interfaces/ArrayError.mdx)\<[`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ElementType`\>\> - \| [`ArrayError`](/docs/api-reference/common/Type/interfaces/ArrayError.mdx)\<[`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`ElementType`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: readonly InferParent[]) => Result[], ArrayError>>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | readonly [`InferParent`](/docs/api-reference/common/Type/type-aliases/InferParent.mdx)\<`ElementType`\>[] | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\[], [`ArrayError`](/docs/api-reference/common/Type/interfaces/ArrayError.mdx)\<[`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ElementType`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result[], - | ArrayError> -| ArrayError>>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\[], - \| [`ArrayError`](/docs/api-reference/common/Type/interfaces/ArrayError.mdx)\<[`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ElementType`\>\> - \| [`ArrayError`](/docs/api-reference/common/Type/interfaces/ArrayError.mdx)\<[`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`ElementType`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: readonly InferInput[]; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement[]>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "Array"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: readonly InferInput[]) => - | readonly InferType[] - | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | readonly [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`ElementType`\>[] | - -#### Returns - - \| readonly [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ElementType`\>[] - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: readonly InferInput[]) => readonly InferType[]; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | readonly [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`ElementType`\>[] | - -#### Returns - -readonly [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ElementType`\>[] - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: readonly InferParent[]; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: ArrayError>; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### Type - -```ts -readonly Type: readonly InferType[]; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/Base64UrlError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/Base64UrlError.mdx deleted file mode 100644 index 4c1ca6a89..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/Base64UrlError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Base64UrlError - -Defined in: [packages/common/src/Type.ts:1577](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1577) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Base64Url"`\> - -## Properties - - - -### type - -```ts -readonly type: "Base64Url"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/BetweenError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/BetweenError.mdx deleted file mode 100644 index 70f624771..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/BetweenError.mdx +++ /dev/null @@ -1,73 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / BetweenError - -Defined in: [packages/common/src/Type.ts:2348](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2348) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Between"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Min` *extends* `number` | `number` | -| `Max` *extends* `number` | `number` | - -## Properties - - - -### max - -```ts -readonly max: Max; -``` - -Defined in: [packages/common/src/Type.ts:2353](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2353) - -*** - - - -### min - -```ts -readonly min: Min; -``` - -Defined in: [packages/common/src/Type.ts:2352](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2352) - -*** - - - -### type - -```ts -readonly type: "Between"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/BigIntError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/BigIntError.mdx deleted file mode 100644 index 4be00dfd3..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/BigIntError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / BigIntError - -Defined in: [packages/common/src/Type.ts:769](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L769) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"BigInt"`\> - -## Properties - - - -### type - -```ts -readonly type: "BigInt"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/BooleanError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/BooleanError.mdx deleted file mode 100644 index 93fec2698..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/BooleanError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / BooleanError - -Defined in: [packages/common/src/Type.ts:781](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L781) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Boolean"`\> - -## Properties - - - -### type - -```ts -readonly type: "Boolean"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/BrandType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/BrandType.mdx deleted file mode 100644 index 59f89c2e7..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/BrandType.mdx +++ /dev/null @@ -1,727 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / BrandType - -Defined in: [packages/common/src/Type.ts:1108](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1108) - -Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via -[Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or -a composable typed error that tells us exactly why the validation failed. - -The reason why Evolu Type exists is that no other TypeScript validation -library met Evolu's requirements. A distinctive feature of Evolu Type -compared to other validation libraries is that it returns typed errors rather -than string messages. This allows TypeScript to enforce that all validation -errors are handled via [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx), significantly improving the -developer experience. Those requirements are: - -- **Result-based error handling** – no exceptions for normal control flow. -- **Typed errors with decoupled formatters** – validation logic ≠ user - messages. -- **Consistent constraints via [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx)** – every constraint becomes part - of the type. -- **Skippable validation** – parent validations can be skipped when already - proved by types. -- **Simple, top-down implementation** – readable source code from top to - bottom. -- **No user-land chaining DSL** – prepared for TC39 Hack pipes. - -Evolu Type supports [Standard Schema](https://standardschema.dev/) for -interoperability with 40+ validation-compatible tools and frameworks. - -## Base types - -```ts -// Validate unknown values -const value: unknown = "hello"; -const stringResult = String.fromUnknown(value); -if (!stringResult.ok) { - // console.error(formatStringError(stringResult.error)); - return stringResult; -} -// Safe branch: value is now string -const upper = stringResult.value.toUpperCase(); - -// Type guard style -if (String.is(value)) { - // narrowed to string -} - -// Composing: arrays & objects -const Numbers = array(Number); // ReadonlyArray -const Point = object({ x: Number, y: Number }); - -Numbers.from([1, 2, 3]); // ok -Point.from({ x: 1, y: 2 }); // ok -Point.from({ x: 1, y: "2" }); // err -> nested Number error -``` - -## Branded types - -Branding is the recommended way to define types in Evolu. Instead of using -primitive types like `string` or `number` directly, wrap them with -[brand](/docs/api-reference/common/Type/functions/brand.mdx) to create semantically meaningful types. See [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx) for -why this matters. - -```ts -const CurrencyCode = brand("CurrencyCode", String, (value) => - /^[A-Z]{3}$/.test(value) - ? ok(value) - : err({ type: "CurrencyCode", value }), -); -type CurrencyCode = typeof CurrencyCode.Type; // string & Brand<"CurrencyCode"> - -interface CurrencyCodeError extends TypeError<"CurrencyCode"> {} - -const formatCurrencyCodeError = - createTypeErrorFormatter( - (error) => `Invalid currency code: ${error.value}`, - ); - -const r = CurrencyCode.from("USD"); // ok("USD") -const e = CurrencyCode.from("usd"); // err(...) -``` - -See also reusable brand factories like `minLength`, `maxLength`, `trimmed`, -`positive`, `between`, etc. - -## Object types - -```ts -const User = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Use interface for objects. TypeScript displays the interface name -// instead of expanding all properties. -interface User extends InferType {} - -User.from({ name: "Alice" }); // ok -User.from({ name: "Alice", age: -1 }); // err(PositiveInt) - -// TODO: Add `record` -``` - -## JSON type - -```ts -const Person = object({ - name: NonEmptyString50, - // Did you know that JSON.stringify converts NaN (a number) into null? - // To prevent this, use FiniteNumber. - age: FiniteNumber, -}); -interface Person extends InferType {} - -const [PersonJson, personToPersonJson, personJsonToPerson] = json( - Person, - "PersonJson", -); -// string & Brand<"PersonJson"> -type PersonJson = typeof PersonJson.Type; - -const person = Person.orThrow({ - name: "Alice", - age: 30, -}); - -const personJson = personToPersonJson(person); -expect(personJsonToPerson(personJson)).toEqual(person); -``` - -## Error Formatting - -Evolu separates validation logic from human-readable messages. There are two -layers: - -1. Per-type formatters (e.g. `formatStringError`) – simple, focused, already - used earlier in the quick start example. -2. A unified formatter via `createFormatTypeError` – composes all built-in and - custom errors (including nested composite types) and lets us override - selected messages. - -### 1. Per-Type formatter - -```ts -const r = String.fromUnknown(42); -if (!r.ok) console.error(formatStringError(r.error)); -``` - -### 2. Unified formatter with overrides - -```ts -// Override only what we care about; fall back to built-ins for the rest. -const formatTypeError = createFormatTypeError((error) => { - if (error.type === "MinLength") return `Min length is ${error.min}`; -}); - -const User = object({ name: NonEmptyTrimmedString100 }); -const resultUser = User.from({ name: "" }); -if (!resultUser.ok) console.error(formatTypeError(resultUser.error)); - -const badPoint = object({ x: Number, y: Number }).from({ - x: 1, - y: "foo", -}); -if (!badPoint.ok) console.error(formatTypeError(badPoint.error)); -``` - -The unified formatter walks nested structures (object / array / record / -tuple / union) and applies overrides only where specified, greatly reducing -boilerplate when formatting complex validation errors. - -## Naming - -Evolu Types intentionally use the same names as native JavaScript types -(String, Number, Boolean, etc.). When you need to distinguish between an -Evolu Type and the native type, use `globalThis` to reference the native one -(e.g., `globalThis.String`, `globalThis.Number`). - -## Design decision - -Evolu Type intentionally does not support bidirectional transformations. It -previously did, but supporting that while keeping typed error fidelity added -complexity that hurt readability & reliability. Most persistence pipelines -(e.g. SQLite) already require explicit mapping of query results, so implicit -reverse transforms would not buy much. We may revisit this if we can design a -minimal, 100% safe API that preserves simplicity. - -## Composition without pipe - -Take a look how `SimplePassword` is defined: - -```ts -const SimplePassword = brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -``` - -Shallow nesting often fits one line. If it doesn't, split into named parts: - -```ts -const Min8TrimmedString64 = minLength(8)(maxLength(64)(TrimmedString)); -const SimplePassword = brand("SimplePassword", Min8TrimmedString64); -``` - -## FAQ - -### How do I create a generic interface like `FooState`? - -TypeScript's [InferType](/docs/api-reference/common/Type/type-aliases/InferType.mdx) extracts a concrete type, not a generic one. We -cannot write `interface FooState extends InferType>` -because `InferType` needs a concrete Type instance. - -The recommended approach is to define the generic interface manually, then -create a Type factory that produces structurally compatible Types: - -```ts -// Define the generic interface manually -interface FooState { - readonly value: T; - readonly loading: boolean; -} - -// Create a Type factory that produces Types matching the interface -const fooState = (valueType: T) => - object({ - value: valueType, - loading: Boolean, - }); - -// Usage -const StringFooState = fooState(String); -type StringFooState = InferType; - -// The interface and inferred type are structurally compatible -const state: FooState = StringFooState.orThrow({ - value: "hi", - loading: false, -}); -``` - -This keeps the interface generic while having type-safe runtime validation -for each concrete use. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Brand"`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Name`\>, [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`ParentType`\>, `Error`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\>, `ParentError`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `ParentType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - | -| `Name` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | - | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | `never` | -| `ParentError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | `never` | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props, InferType & Brand>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### brand - -```ts -readonly brand: Name; -``` - -Defined in: [packages/common/src/Type.ts:1121](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1121) - -*** - - - -### Error - -```ts -Error: Error; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: Error | ParentError; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: InferInput) => Result & Brand, Error | ParentError>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Name`\>, `Error` \| `ParentError`\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: InferType) => Result & Brand, Error>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Name`\>, `Error`\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result & Brand, Error | ParentError>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Name`\>, `Error` \| `ParentError`\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: InferInput; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement & Brand>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "Brand"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: InferInput) => - | InferType & Brand - | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - - \| [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Name`\> - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: InferInput) => InferType & Brand; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - -[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Name`\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: InferType; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: ParentError; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### parentType - -```ts -readonly parentType: ParentType; -``` - -Defined in: [packages/common/src/Type.ts:1122](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1122) - -*** - - - -### Type - -```ts -readonly Type: InferType & Brand; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/BrandWithoutRefineError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/BrandWithoutRefineError.mdx deleted file mode 100644 index f49da25c6..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/BrandWithoutRefineError.mdx +++ /dev/null @@ -1,61 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / BrandWithoutRefineError - -Defined in: [packages/common/src/Type.ts:1125](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1125) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Name`\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `Name` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | -| `ParentError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - -## Properties - - - -### parentError - -```ts -readonly parentError: ParentError; -``` - -Defined in: [packages/common/src/Type.ts:1129](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1129) - -*** - - - -### type - -```ts -readonly type: Name; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/CurrencyCodeError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/CurrencyCodeError.mdx deleted file mode 100644 index 06f623bfb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/CurrencyCodeError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / CurrencyCodeError - -Defined in: [packages/common/src/Type.ts:1148](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1148) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"CurrencyCode"`\> - -## Properties - - - -### type - -```ts -readonly type: "CurrencyCode"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/DateIsoError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/DateIsoError.mdx deleted file mode 100644 index cbd4946ce..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/DateIsoError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / DateIsoError - -Defined in: [packages/common/src/Type.ts:1194](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1194) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"DateIso"`\> - -## Properties - - - -### type - -```ts -readonly type: "DateIso"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/EvoluTypeError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/EvoluTypeError.mdx deleted file mode 100644 index b88123c40..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/EvoluTypeError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / EvoluTypeError - -Defined in: [packages/common/src/Type.ts:910](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L910) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"EvoluType"`\> - -## Properties - - - -### type - -```ts -readonly type: "EvoluType"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/FiniteError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/FiniteError.mdx deleted file mode 100644 index db1d0fd8b..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/FiniteError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / FiniteError - -Defined in: [packages/common/src/Type.ts:2271](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2271) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Finite"`\> - -## Properties - - - -### type - -```ts -readonly type: "Finite"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/FunctionError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/FunctionError.mdx deleted file mode 100644 index 4e00a0b7a..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/FunctionError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / FunctionError - -Defined in: [packages/common/src/Type.ts:815](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L815) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Function"`\> - -## Properties - - - -### type - -```ts -readonly type: "Function"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/GreaterThanError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/GreaterThanError.mdx deleted file mode 100644 index 6dd64d5df..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/GreaterThanError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / GreaterThanError - -Defined in: [packages/common/src/Type.ts:2143](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2143) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"GreaterThan"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Min` *extends* `number` | `number` | - -## Properties - - - -### min - -```ts -readonly min: Min; -``` - -Defined in: [packages/common/src/Type.ts:2145](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2145) - -*** - - - -### type - -```ts -readonly type: "GreaterThan"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/GreaterThanOrEqualToError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/GreaterThanOrEqualToError.mdx deleted file mode 100644 index 0bcd530ff..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/GreaterThanOrEqualToError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / GreaterThanOrEqualToError - -Defined in: [packages/common/src/Type.ts:2198](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2198) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"GreaterThanOrEqualTo"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Min` *extends* `number` | `number` | - -## Properties - - - -### min - -```ts -readonly min: Min; -``` - -Defined in: [packages/common/src/Type.ts:2200](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2200) - -*** - - - -### type - -```ts -readonly type: "GreaterThanOrEqualTo"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/IdError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/IdError.mdx deleted file mode 100644 index 632a3010e..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/IdError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / IdError - -Defined in: [packages/common/src/Type.ts:1736](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1736) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Id"`\> - -## Properties - - - -### type - -```ts -readonly type: "Id"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/InstanceOfError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/InstanceOfError.mdx deleted file mode 100644 index a7b790efd..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/InstanceOfError.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / InstanceOfError - -Defined in: [packages/common/src/Type.ts:863](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L863) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"InstanceOf"`\> - -## Properties - - - -### ctor - -```ts -readonly ctor: string; -``` - -Defined in: [packages/common/src/Type.ts:864](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L864) - -*** - - - -### type - -```ts -readonly type: "InstanceOf"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/InstanceOfType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/InstanceOfType.mdx deleted file mode 100644 index 5fee21717..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/InstanceOfType.mdx +++ /dev/null @@ -1,709 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / InstanceOfType - -Defined in: [packages/common/src/Type.ts:867](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L867) - -Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via -[Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or -a composable typed error that tells us exactly why the validation failed. - -The reason why Evolu Type exists is that no other TypeScript validation -library met Evolu's requirements. A distinctive feature of Evolu Type -compared to other validation libraries is that it returns typed errors rather -than string messages. This allows TypeScript to enforce that all validation -errors are handled via [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx), significantly improving the -developer experience. Those requirements are: - -- **Result-based error handling** – no exceptions for normal control flow. -- **Typed errors with decoupled formatters** – validation logic ≠ user - messages. -- **Consistent constraints via [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx)** – every constraint becomes part - of the type. -- **Skippable validation** – parent validations can be skipped when already - proved by types. -- **Simple, top-down implementation** – readable source code from top to - bottom. -- **No user-land chaining DSL** – prepared for TC39 Hack pipes. - -Evolu Type supports [Standard Schema](https://standardschema.dev/) for -interoperability with 40+ validation-compatible tools and frameworks. - -## Base types - -```ts -// Validate unknown values -const value: unknown = "hello"; -const stringResult = String.fromUnknown(value); -if (!stringResult.ok) { - // console.error(formatStringError(stringResult.error)); - return stringResult; -} -// Safe branch: value is now string -const upper = stringResult.value.toUpperCase(); - -// Type guard style -if (String.is(value)) { - // narrowed to string -} - -// Composing: arrays & objects -const Numbers = array(Number); // ReadonlyArray -const Point = object({ x: Number, y: Number }); - -Numbers.from([1, 2, 3]); // ok -Point.from({ x: 1, y: 2 }); // ok -Point.from({ x: 1, y: "2" }); // err -> nested Number error -``` - -## Branded types - -Branding is the recommended way to define types in Evolu. Instead of using -primitive types like `string` or `number` directly, wrap them with -[brand](/docs/api-reference/common/Type/functions/brand.mdx) to create semantically meaningful types. See [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx) for -why this matters. - -```ts -const CurrencyCode = brand("CurrencyCode", String, (value) => - /^[A-Z]{3}$/.test(value) - ? ok(value) - : err({ type: "CurrencyCode", value }), -); -type CurrencyCode = typeof CurrencyCode.Type; // string & Brand<"CurrencyCode"> - -interface CurrencyCodeError extends TypeError<"CurrencyCode"> {} - -const formatCurrencyCodeError = - createTypeErrorFormatter( - (error) => `Invalid currency code: ${error.value}`, - ); - -const r = CurrencyCode.from("USD"); // ok("USD") -const e = CurrencyCode.from("usd"); // err(...) -``` - -See also reusable brand factories like `minLength`, `maxLength`, `trimmed`, -`positive`, `between`, etc. - -## Object types - -```ts -const User = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Use interface for objects. TypeScript displays the interface name -// instead of expanding all properties. -interface User extends InferType {} - -User.from({ name: "Alice" }); // ok -User.from({ name: "Alice", age: -1 }); // err(PositiveInt) - -// TODO: Add `record` -``` - -## JSON type - -```ts -const Person = object({ - name: NonEmptyString50, - // Did you know that JSON.stringify converts NaN (a number) into null? - // To prevent this, use FiniteNumber. - age: FiniteNumber, -}); -interface Person extends InferType {} - -const [PersonJson, personToPersonJson, personJsonToPerson] = json( - Person, - "PersonJson", -); -// string & Brand<"PersonJson"> -type PersonJson = typeof PersonJson.Type; - -const person = Person.orThrow({ - name: "Alice", - age: 30, -}); - -const personJson = personToPersonJson(person); -expect(personJsonToPerson(personJson)).toEqual(person); -``` - -## Error Formatting - -Evolu separates validation logic from human-readable messages. There are two -layers: - -1. Per-type formatters (e.g. `formatStringError`) – simple, focused, already - used earlier in the quick start example. -2. A unified formatter via `createFormatTypeError` – composes all built-in and - custom errors (including nested composite types) and lets us override - selected messages. - -### 1. Per-Type formatter - -```ts -const r = String.fromUnknown(42); -if (!r.ok) console.error(formatStringError(r.error)); -``` - -### 2. Unified formatter with overrides - -```ts -// Override only what we care about; fall back to built-ins for the rest. -const formatTypeError = createFormatTypeError((error) => { - if (error.type === "MinLength") return `Min length is ${error.min}`; -}); - -const User = object({ name: NonEmptyTrimmedString100 }); -const resultUser = User.from({ name: "" }); -if (!resultUser.ok) console.error(formatTypeError(resultUser.error)); - -const badPoint = object({ x: Number, y: Number }).from({ - x: 1, - y: "foo", -}); -if (!badPoint.ok) console.error(formatTypeError(badPoint.error)); -``` - -The unified formatter walks nested structures (object / array / record / -tuple / union) and applies overrides only where specified, greatly reducing -boilerplate when formatting complex validation errors. - -## Naming - -Evolu Types intentionally use the same names as native JavaScript types -(String, Number, Boolean, etc.). When you need to distinguish between an -Evolu Type and the native type, use `globalThis` to reference the native one -(e.g., `globalThis.String`, `globalThis.Number`). - -## Design decision - -Evolu Type intentionally does not support bidirectional transformations. It -previously did, but supporting that while keeping typed error fidelity added -complexity that hurt readability & reliability. Most persistence pipelines -(e.g. SQLite) already require explicit mapping of query results, so implicit -reverse transforms would not buy much. We may revisit this if we can design a -minimal, 100% safe API that preserves simplicity. - -## Composition without pipe - -Take a look how `SimplePassword` is defined: - -```ts -const SimplePassword = brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -``` - -Shallow nesting often fits one line. If it doesn't, split into named parts: - -```ts -const Min8TrimmedString64 = minLength(8)(maxLength(64)(TrimmedString)); -const SimplePassword = brand("SimplePassword", Min8TrimmedString64); -``` - -## FAQ - -### How do I create a generic interface like `FooState`? - -TypeScript's [InferType](/docs/api-reference/common/Type/type-aliases/InferType.mdx) extracts a concrete type, not a generic one. We -cannot write `interface FooState extends InferType>` -because `InferType` needs a concrete Type instance. - -The recommended approach is to define the generic interface manually, then -create a Type factory that produces structurally compatible Types: - -```ts -// Define the generic interface manually -interface FooState { - readonly value: T; - readonly loading: boolean; -} - -// Create a Type factory that produces Types matching the interface -const fooState = (valueType: T) => - object({ - value: valueType, - loading: Boolean, - }); - -// Usage -const StringFooState = fooState(String); -type StringFooState = InferType; - -// The interface and inferred type are structurally compatible -const state: FooState = StringFooState.orThrow({ - value: "hi", - loading: false, -}); -``` - -This keeps the interface generic while having type-safe runtime validation -for each concrete use. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"InstanceOf"`, `InstanceType`\<`T`\>, `InstanceType`\<`T`\>, [`InstanceOfError`](/docs/api-reference/common/Type/interfaces/InstanceOfError.mdx)\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* (...`args`: `any`) => `any` | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props, InstanceType>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### ctor - -```ts -ctor: T; -``` - -Defined in: [packages/common/src/Type.ts:874](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L874) - -*** - - - -### Error - -```ts -Error: InstanceOfError; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: InstanceOfError; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: InstanceType) => Result, InstanceOfError>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `InstanceType` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`InstanceType`\<`T`\>, [`InstanceOfError`](/docs/api-reference/common/Type/interfaces/InstanceOfError.mdx)\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: InstanceType) => Result, InstanceOfError>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `InstanceType` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`InstanceType`\<`T`\>, [`InstanceOfError`](/docs/api-reference/common/Type/interfaces/InstanceOfError.mdx)\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result, InstanceOfError>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`InstanceType`\<`T`\>, [`InstanceOfError`](/docs/api-reference/common/Type/interfaces/InstanceOfError.mdx)\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: InstanceType; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "InstanceOf"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: InstanceType) => InstanceType | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `InstanceType` | - -#### Returns - -`InstanceType`\<`T`\> \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: InstanceType) => InstanceType; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `InstanceType` | - -#### Returns - -`InstanceType` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: InstanceType; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: InstanceOfError; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### Type - -```ts -readonly Type: InstanceType; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/Int64Error.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/Int64Error.mdx deleted file mode 100644 index 577f2e5ad..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/Int64Error.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Int64Error - -Defined in: [packages/common/src/Type.ts:4035](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4035) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Int64"`\> - -## Properties - - - -### type - -```ts -readonly type: "Int64"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/Int64StringError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/Int64StringError.mdx deleted file mode 100644 index 768ffac48..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/Int64StringError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Int64StringError - -Defined in: [packages/common/src/Type.ts:4064](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4064) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Int64String"`\> - -## Properties - - - -### type - -```ts -readonly type: "Int64String"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/IntError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/IntError.mdx deleted file mode 100644 index ec2516ed1..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/IntError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / IntError - -Defined in: [packages/common/src/Type.ts:2074](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2074) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Int"`\> - -## Properties - - - -### type - -```ts -readonly type: "Int"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/JsonError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/JsonError.mdx deleted file mode 100644 index 6cbeb8e0e..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/JsonError.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonError - -Defined in: [packages/common/src/Type.ts:4195](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4195) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Json"`\> - -## Properties - - - -### message - -```ts -readonly message: string; -``` - -Defined in: [packages/common/src/Type.ts:4196](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4196) - -*** - - - -### type - -```ts -readonly type: "Json"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/JsonObject.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/JsonObject.mdx deleted file mode 100644 index f3628fcad..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/JsonObject.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonObject - -Defined in: [packages/common/src/Type.ts:4097](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4097) - -## Indexable - -```ts -[key: string]: JsonValue -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/JsonObjectInput.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/JsonObjectInput.mdx deleted file mode 100644 index 4e9aa5a7a..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/JsonObjectInput.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonObjectInput - -Defined in: [packages/common/src/Type.ts:4101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4101) - -## Indexable - -```ts -[key: string]: JsonValueInput -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/LengthError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/LengthError.mdx deleted file mode 100644 index acad8c693..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/LengthError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / LengthError - -Defined in: [packages/common/src/Type.ts:1395](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1395) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Length"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Exact` *extends* `number` | `number` | - -## Properties - - - -### exact - -```ts -readonly exact: Exact; -``` - -Defined in: [packages/common/src/Type.ts:1397](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1397) - -*** - - - -### type - -```ts -readonly type: "Length"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/LessThanError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/LessThanError.mdx deleted file mode 100644 index 741c46efb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/LessThanError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / LessThanError - -Defined in: [packages/common/src/Type.ts:2168](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2168) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"LessThan"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Max` *extends* `number` | `number` | - -## Properties - - - -### max - -```ts -readonly max: Max; -``` - -Defined in: [packages/common/src/Type.ts:2170](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2170) - -*** - - - -### type - -```ts -readonly type: "LessThan"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/LessThanOrEqualToError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/LessThanOrEqualToError.mdx deleted file mode 100644 index 3023e1460..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/LessThanOrEqualToError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / LessThanOrEqualToError - -Defined in: [packages/common/src/Type.ts:2226](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2226) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"LessThanOrEqualTo"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Max` *extends* `number` | `number` | - -## Properties - - - -### max - -```ts -readonly max: Max; -``` - -Defined in: [packages/common/src/Type.ts:2228](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2228) - -*** - - - -### type - -```ts -readonly type: "LessThanOrEqualTo"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/LiteralError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/LiteralError.mdx deleted file mode 100644 index 005f158ea..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/LiteralError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / LiteralError - -Defined in: [packages/common/src/Type.ts:2399](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2399) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Literal"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` *extends* [`Literal`](/docs/api-reference/common/Types/type-aliases/Literal.mdx) | [`Literal`](/docs/api-reference/common/Types/type-aliases/Literal.mdx) | - -## Properties - - - -### expected - -```ts -readonly expected: T; -``` - -Defined in: [packages/common/src/Type.ts:2401](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2401) - -*** - - - -### type - -```ts -readonly type: "Literal"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/LiteralType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/LiteralType.mdx deleted file mode 100644 index 32bbd5162..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/LiteralType.mdx +++ /dev/null @@ -1,709 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / LiteralType - -Defined in: [packages/common/src/Type.ts:2394](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2394) - -Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via -[Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or -a composable typed error that tells us exactly why the validation failed. - -The reason why Evolu Type exists is that no other TypeScript validation -library met Evolu's requirements. A distinctive feature of Evolu Type -compared to other validation libraries is that it returns typed errors rather -than string messages. This allows TypeScript to enforce that all validation -errors are handled via [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx), significantly improving the -developer experience. Those requirements are: - -- **Result-based error handling** – no exceptions for normal control flow. -- **Typed errors with decoupled formatters** – validation logic ≠ user - messages. -- **Consistent constraints via [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx)** – every constraint becomes part - of the type. -- **Skippable validation** – parent validations can be skipped when already - proved by types. -- **Simple, top-down implementation** – readable source code from top to - bottom. -- **No user-land chaining DSL** – prepared for TC39 Hack pipes. - -Evolu Type supports [Standard Schema](https://standardschema.dev/) for -interoperability with 40+ validation-compatible tools and frameworks. - -## Base types - -```ts -// Validate unknown values -const value: unknown = "hello"; -const stringResult = String.fromUnknown(value); -if (!stringResult.ok) { - // console.error(formatStringError(stringResult.error)); - return stringResult; -} -// Safe branch: value is now string -const upper = stringResult.value.toUpperCase(); - -// Type guard style -if (String.is(value)) { - // narrowed to string -} - -// Composing: arrays & objects -const Numbers = array(Number); // ReadonlyArray -const Point = object({ x: Number, y: Number }); - -Numbers.from([1, 2, 3]); // ok -Point.from({ x: 1, y: 2 }); // ok -Point.from({ x: 1, y: "2" }); // err -> nested Number error -``` - -## Branded types - -Branding is the recommended way to define types in Evolu. Instead of using -primitive types like `string` or `number` directly, wrap them with -[brand](/docs/api-reference/common/Type/functions/brand.mdx) to create semantically meaningful types. See [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx) for -why this matters. - -```ts -const CurrencyCode = brand("CurrencyCode", String, (value) => - /^[A-Z]{3}$/.test(value) - ? ok(value) - : err({ type: "CurrencyCode", value }), -); -type CurrencyCode = typeof CurrencyCode.Type; // string & Brand<"CurrencyCode"> - -interface CurrencyCodeError extends TypeError<"CurrencyCode"> {} - -const formatCurrencyCodeError = - createTypeErrorFormatter( - (error) => `Invalid currency code: ${error.value}`, - ); - -const r = CurrencyCode.from("USD"); // ok("USD") -const e = CurrencyCode.from("usd"); // err(...) -``` - -See also reusable brand factories like `minLength`, `maxLength`, `trimmed`, -`positive`, `between`, etc. - -## Object types - -```ts -const User = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Use interface for objects. TypeScript displays the interface name -// instead of expanding all properties. -interface User extends InferType {} - -User.from({ name: "Alice" }); // ok -User.from({ name: "Alice", age: -1 }); // err(PositiveInt) - -// TODO: Add `record` -``` - -## JSON type - -```ts -const Person = object({ - name: NonEmptyString50, - // Did you know that JSON.stringify converts NaN (a number) into null? - // To prevent this, use FiniteNumber. - age: FiniteNumber, -}); -interface Person extends InferType {} - -const [PersonJson, personToPersonJson, personJsonToPerson] = json( - Person, - "PersonJson", -); -// string & Brand<"PersonJson"> -type PersonJson = typeof PersonJson.Type; - -const person = Person.orThrow({ - name: "Alice", - age: 30, -}); - -const personJson = personToPersonJson(person); -expect(personJsonToPerson(personJson)).toEqual(person); -``` - -## Error Formatting - -Evolu separates validation logic from human-readable messages. There are two -layers: - -1. Per-type formatters (e.g. `formatStringError`) – simple, focused, already - used earlier in the quick start example. -2. A unified formatter via `createFormatTypeError` – composes all built-in and - custom errors (including nested composite types) and lets us override - selected messages. - -### 1. Per-Type formatter - -```ts -const r = String.fromUnknown(42); -if (!r.ok) console.error(formatStringError(r.error)); -``` - -### 2. Unified formatter with overrides - -```ts -// Override only what we care about; fall back to built-ins for the rest. -const formatTypeError = createFormatTypeError((error) => { - if (error.type === "MinLength") return `Min length is ${error.min}`; -}); - -const User = object({ name: NonEmptyTrimmedString100 }); -const resultUser = User.from({ name: "" }); -if (!resultUser.ok) console.error(formatTypeError(resultUser.error)); - -const badPoint = object({ x: Number, y: Number }).from({ - x: 1, - y: "foo", -}); -if (!badPoint.ok) console.error(formatTypeError(badPoint.error)); -``` - -The unified formatter walks nested structures (object / array / record / -tuple / union) and applies overrides only where specified, greatly reducing -boilerplate when formatting complex validation errors. - -## Naming - -Evolu Types intentionally use the same names as native JavaScript types -(String, Number, Boolean, etc.). When you need to distinguish between an -Evolu Type and the native type, use `globalThis` to reference the native one -(e.g., `globalThis.String`, `globalThis.Number`). - -## Design decision - -Evolu Type intentionally does not support bidirectional transformations. It -previously did, but supporting that while keeping typed error fidelity added -complexity that hurt readability & reliability. Most persistence pipelines -(e.g. SQLite) already require explicit mapping of query results, so implicit -reverse transforms would not buy much. We may revisit this if we can design a -minimal, 100% safe API that preserves simplicity. - -## Composition without pipe - -Take a look how `SimplePassword` is defined: - -```ts -const SimplePassword = brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -``` - -Shallow nesting often fits one line. If it doesn't, split into named parts: - -```ts -const Min8TrimmedString64 = minLength(8)(maxLength(64)(TrimmedString)); -const SimplePassword = brand("SimplePassword", Min8TrimmedString64); -``` - -## FAQ - -### How do I create a generic interface like `FooState`? - -TypeScript's [InferType](/docs/api-reference/common/Type/type-aliases/InferType.mdx) extracts a concrete type, not a generic one. We -cannot write `interface FooState extends InferType>` -because `InferType` needs a concrete Type instance. - -The recommended approach is to define the generic interface manually, then -create a Type factory that produces structurally compatible Types: - -```ts -// Define the generic interface manually -interface FooState { - readonly value: T; - readonly loading: boolean; -} - -// Create a Type factory that produces Types matching the interface -const fooState = (valueType: T) => - object({ - value: valueType, - loading: Boolean, - }); - -// Usage -const StringFooState = fooState(String); -type StringFooState = InferType; - -// The interface and inferred type are structurally compatible -const state: FooState = StringFooState.orThrow({ - value: "hi", - loading: false, -}); -``` - -This keeps the interface generic while having type-safe runtime validation -for each concrete use. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Literal"`, `T`, [`WidenLiteral`](/docs/api-reference/common/Types/type-aliases/WidenLiteral.mdx)\<`T`\>, [`LiteralError`](/docs/api-reference/common/Type/interfaces/LiteralError.mdx)\<`T`\>\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`Literal`](/docs/api-reference/common/Types/type-aliases/Literal.mdx) | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props, T>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### Error - -```ts -Error: LiteralError; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: LiteralError; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### expected - -```ts -expected: T; -``` - -Defined in: [packages/common/src/Type.ts:2396](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2396) - -*** - - - -### from() - -```ts -readonly from: (value: WidenLiteral) => Result>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`WidenLiteral`](/docs/api-reference/common/Types/type-aliases/WidenLiteral.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, [`LiteralError`](/docs/api-reference/common/Type/interfaces/LiteralError.mdx)\<`T`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: T) => Result>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, [`LiteralError`](/docs/api-reference/common/Type/interfaces/LiteralError.mdx)\<`T`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, [`LiteralError`](/docs/api-reference/common/Type/interfaces/LiteralError.mdx)\<`T`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: WidenLiteral; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "Literal"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: WidenLiteral) => T | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`WidenLiteral`](/docs/api-reference/common/Types/type-aliases/WidenLiteral.mdx) | - -#### Returns - -`T` \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: WidenLiteral) => T; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`WidenLiteral`](/docs/api-reference/common/Types/type-aliases/WidenLiteral.mdx) | - -#### Returns - -`T` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: T; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: LiteralError; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### Type - -```ts -readonly Type: T; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/MaxLengthError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/MaxLengthError.mdx deleted file mode 100644 index 4f6bd9ef6..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/MaxLengthError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / MaxLengthError - -Defined in: [packages/common/src/Type.ts:1359](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1359) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"MaxLength"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Max` *extends* `number` | `number` | - -## Properties - - - -### max - -```ts -readonly max: Max; -``` - -Defined in: [packages/common/src/Type.ts:1361](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1361) - -*** - - - -### type - -```ts -readonly type: "MaxLength"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/MinLengthError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/MinLengthError.mdx deleted file mode 100644 index 38245980b..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/MinLengthError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / MinLengthError - -Defined in: [packages/common/src/Type.ts:1325](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1325) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"MinLength"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Min` *extends* `number` | `number` | - -## Properties - - - -### min - -```ts -readonly min: Min; -``` - -Defined in: [packages/common/src/Type.ts:1327](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1327) - -*** - - - -### type - -```ts -readonly type: "MinLength"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/MnemonicError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/MnemonicError.mdx deleted file mode 100644 index 3281bb852..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/MnemonicError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / MnemonicError - -Defined in: [packages/common/src/Type.ts:1467](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1467) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Mnemonic"`\> - -## Properties - - - -### type - -```ts -readonly type: "Mnemonic"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/MultipleOfError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/MultipleOfError.mdx deleted file mode 100644 index 6d4c8f6f9..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/MultipleOfError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / MultipleOfError - -Defined in: [packages/common/src/Type.ts:2311](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2311) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"MultipleOf"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Divisor` *extends* `number` | `number` | - -## Properties - - - -### divisor - -```ts -readonly divisor: Divisor; -``` - -Defined in: [packages/common/src/Type.ts:2313](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2313) - -*** - - - -### type - -```ts -readonly type: "MultipleOf"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/NegativeError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/NegativeError.mdx deleted file mode 100644 index 7873dc05f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/NegativeError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NegativeError - -Defined in: [packages/common/src/Type.ts:1959](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1959) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Negative"`\> - -## Properties - - - -### type - -```ts -readonly type: "Negative"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/NonNaNError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/NonNaNError.mdx deleted file mode 100644 index 6b29b8813..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/NonNaNError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonNaNError - -Defined in: [packages/common/src/Type.ts:2248](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2248) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"NonNaN"`\> - -## Properties - - - -### type - -```ts -readonly type: "NonNaN"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/NonNegativeError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/NonNegativeError.mdx deleted file mode 100644 index 3460d3c94..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/NonNegativeError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonNegativeError - -Defined in: [packages/common/src/Type.ts:2017](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2017) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"NonNegative"`\> - -## Properties - - - -### type - -```ts -readonly type: "NonNegative"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/NonPositiveError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/NonPositiveError.mdx deleted file mode 100644 index 59c00be50..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/NonPositiveError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonPositiveError - -Defined in: [packages/common/src/Type.ts:1988](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1988) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"NonPositive"`\> - -## Properties - - - -### type - -```ts -readonly type: "NonPositive"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/NullError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/NullError.mdx deleted file mode 100644 index b841b7694..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/NullError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NullError - -Defined in: [packages/common/src/Type.ts:803](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L803) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Null"`\> - -## Properties - - - -### type - -```ts -readonly type: "Null"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/NumberError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/NumberError.mdx deleted file mode 100644 index a01023a36..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/NumberError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NumberError - -Defined in: [packages/common/src/Type.ts:757](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L757) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Number"`\> - -## Properties - - - -### type - -```ts -readonly type: "Number"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectError.mdx deleted file mode 100644 index 53ea1ac7c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectError.mdx +++ /dev/null @@ -1,88 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / ObjectError - -Defined in: [packages/common/src/Type.ts:3206](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3206) - -## Extends - -- [`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx)\<`"Object"`, - \| \{ - `kind`: `"NotObject"`; -\} - \| \{ - `errors`: `Partial`\<`PropsErrors`\>; - `kind`: `"Props"`; -\} - \| \{ - `extraKeys`: `ReadonlyArray`\<`string`\>; - `kind`: `"ExtraKeys"`; -\}\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `PropsErrors` *extends* `Record`\<`string`, [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\> | `Record`\<`string`, [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\> | - -## Properties - - - -### reason - -```ts -readonly reason: - | { - kind: "NotObject"; -} - | { - errors: Partial; - kind: "Props"; -} - | { - extraKeys: readonly string[]; - kind: "ExtraKeys"; -}; -``` - -Defined in: [packages/common/src/Type.ts:493](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L493) - -The detailed reason for the error, represented as a tagged union. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`reason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#reason-1) - -*** - - - -### type - -```ts -readonly type: "Object"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectType.mdx deleted file mode 100644 index efdfa092f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectType.mdx +++ /dev/null @@ -1,485 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / ObjectType - -Defined in: [packages/common/src/Type.ts:3155](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3155) - -ObjectType extends [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with an additional `props` property for -reflection. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Object"`, `Readonly`\<`ObjectT`\<`Props`\>\>, `Readonly`\<`ObjectInput`\<`Props`\>\>, [`ObjectError`](/docs/api-reference/common/Type/interfaces/ObjectError.mdx)\<`{ [K in keyof Props]: InferError }`\>, `Readonly`\<`ObjectParent`\<`Props`\>\>, [`ObjectError`](/docs/api-reference/common/Type/interfaces/ObjectError.mdx)\<`{ [K in keyof Props]: InferParentError }`\>\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `Props` *extends* `Record`\<`string`, [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx)\> | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props } & { [K in string | number | symbol]?: Props[K] extends OptionalType ? InferInput : never })[K] }>>, Readonly } & { [K in string | number | symbol]?: Props[K] extends OptionalType ? InferType : never })[K] }>>>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### Error - -```ts -Error: ObjectError<{ [K in string | number | symbol]: InferError }>; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: - | ObjectError<{ [K in string | number | symbol]: InferError }> -| ObjectError<{ [K in string | number | symbol]: InferParentError }>; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: Input) => Result } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferType<(...)> : never })[K] }>>, - | ObjectError<{ [K in string | number | symbol]: InferError }> -| ObjectError<{ [K in string | number | symbol]: InferParentError }>>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Input` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferType\ \} & \{ \[K in string \| number \| symbol\]?: (...)\[(...)\] extends OptionalType\<(...)\> ? InferType\<(...)\> : never \})\[K\] \}\>\>, - \| [`ObjectError`](/docs/api-reference/common/Type/interfaces/ObjectError.mdx)\<\{ \[K in string \| number \| symbol\]: InferError\ \}\> - \| [`ObjectError`](/docs/api-reference/common/Type/interfaces/ObjectError.mdx)\<\{ \[K in string \| number \| symbol\]: InferParentError\ \}\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: Parent) => Result } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferType<(...)> : never })[K] }>>, ObjectError<{ [K in string | number | symbol]: InferError }>>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Parent` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferType\ \} & \{ \[K in string \| number \| symbol\]?: (...)\[(...)\] extends OptionalType\<(...)\> ? InferType\<(...)\> : never \})\[K\] \}\>\>, [`ObjectError`](/docs/api-reference/common/Type/interfaces/ObjectError.mdx)\<\{ \[K in string \| number \| symbol\]: InferError\ \}\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferType<(...)> : never })[K] }>>, - | ObjectError<{ [K in string | number | symbol]: InferError }> -| ObjectError<{ [K in string | number | symbol]: InferParentError }>>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferType\ \} & \{ \[K in string \| number \| symbol\]?: (...)\[(...)\] extends OptionalType\<(...)\> ? InferType\<(...)\> : never \})\[K\] \}\>\>, - \| [`ObjectError`](/docs/api-reference/common/Type/interfaces/ObjectError.mdx)\<\{ \[K in string \| number \| symbol\]: InferError\ \}\> - \| [`ObjectError`](/docs/api-reference/common/Type/interfaces/ObjectError.mdx)\<\{ \[K in string \| number \| symbol\]: InferParentError\ \}\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: Readonly } & { [K in string | number | symbol]?: Props[K] extends OptionalType ? InferInput : never })[K] }>>; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement } & { [K in string | number | symbol]?: Props[K] extends OptionalType ? InferType : never })[K] }>>>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "Object"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: Input) => - | Readonly } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferType<(...)> : never })[K] }>> - | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Input` | - -#### Returns - - \| `Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferType\ \} & \{ \[K in string \| number \| symbol\]?: (...)\[(...)\] extends OptionalType\<(...)\> ? InferType\<(...)\> : never \})\[K\] \}\>\> - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: Input) => T; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Input` | - -#### Returns - -`T` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: Readonly } & { [K in string | number | symbol]?: Props[K] extends OptionalType ? InferParent : never })[K] }>>; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: ObjectError<{ [K in string | number | symbol]: InferParentError }>; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### props - -```ts -readonly props: Props; -``` - -Defined in: [packages/common/src/Type.ts:3164](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3164) - -*** - - - -### Type - -```ts -readonly Type: T; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx deleted file mode 100644 index c20d1e0ab..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx +++ /dev/null @@ -1,102 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / ObjectWithRecordError - -Defined in: [packages/common/src/Type.ts:3292](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3292) - -## Extends - -- [`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx)\<`"ObjectWithRecord"`, - \| \{ - `kind`: `"NotObject"`; -\} - \| \{ - `errors`: `Partial`\<`PropsErrors`\>; - `kind`: `"Props"`; -\} - \| \{ - `error`: `KeyError`; - `key`: `unknown`; - `kind`: `"IndexKey"`; -\} - \| \{ - `error`: `ValueError`; - `key`: `string`; - `kind`: `"IndexValue"`; -\}\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `PropsErrors` *extends* `Record`\<`string`, [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\> | `Record`\<`string`, [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\> | -| `KeyError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | -| `ValueError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - -## Properties - - - -### reason - -```ts -readonly reason: - | { - kind: "NotObject"; -} - | { - errors: Partial; - kind: "Props"; -} - | { - error: KeyError; - key: unknown; - kind: "IndexKey"; -} - | { - error: ValueError; - key: string; - kind: "IndexValue"; -}; -``` - -Defined in: [packages/common/src/Type.ts:493](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L493) - -The detailed reason for the error, represented as a tagged union. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`reason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#reason-1) - -*** - - - -### type - -```ts -readonly type: "ObjectWithRecord"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectWithRecordType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectWithRecordType.mdx deleted file mode 100644 index 2bf87e441..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/ObjectWithRecordType.mdx +++ /dev/null @@ -1,504 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / ObjectWithRecordType - -Defined in: [packages/common/src/Type.ts:3253](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3253) - -ObjectWithRecordType extends [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with additional `props` and `record` -properties for reflection. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"ObjectWithRecord"`, `Readonly`\<`ObjectT`\<`Props`\>\> & `Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\>, `Readonly`\<`ObjectInput`\<`Props`\>\> & `Readonly`\<`Record`\<`KeyInput`, [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`Value`\>\>\>, [`ObjectWithRecordError`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx)\<`{ [K in keyof Props]: InferError }`, `KeyError`, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`Value`\>\>, `Readonly`\<`ObjectParent`\<`Props`\>\> & `Readonly`\<`Record`\<`KeyParent`, [`InferParent`](/docs/api-reference/common/Type/type-aliases/InferParent.mdx)\<`Value`\>\>\>, [`ObjectWithRecordError`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx)\<`{ [K in keyof Props]: InferParentError }`, `KeyParentError`, [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`Value`\>\>\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `Props` *extends* `Record`\<`string`, [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx)\> | -| `KeyName` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | -| `KeyT` *extends* `string` | -| `KeyInput` *extends* `string` | -| `KeyError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | -| `KeyParent` *extends* `string` | -| `KeyParentError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | -| `Value` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferInput<(...)> : never })[K] }>> & Readonly>>, Readonly } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferType<(...)> : never })[K] }>> & Readonly>>>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### Error - -```ts -Error: ObjectWithRecordError<{ [K in string | number | symbol]: InferError }, KeyError, InferError>; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: - | ObjectWithRecordError<{ [K in string | number | symbol]: InferError }, KeyError, InferError> -| ObjectWithRecordError<{ [K in string | number | symbol]: InferParentError }, KeyParentError, InferParentError>; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: Readonly } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferInput<(...)> : never })[K] }>> & Readonly>>) => Result } & { [K in string | number | symbol]?: (...) extends (...) ? (...) : (...) })[K] }>> & Readonly>>, - | ObjectWithRecordError<{ [K in string | number | symbol]: InferError }, KeyError, InferError> -| ObjectWithRecordError<{ [K in string | number | symbol]: InferParentError }, KeyParentError, InferParentError>>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferInput\ \} & \{ \[K in string \| number \| symbol\]?: (...)\[(...)\] extends OptionalType\<(...)\> ? InferInput\<(...)\> : never \})\[K\] \}\>\> & `Readonly`\<`Record`\<`KeyInput`, [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`Value`\>\>\> | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferType\<(...)\[(...)\]\> \} & \{ \[K in string \| number \| symbol\]?: (...) extends (...) ? (...) : (...) \})\[K\] \}\>\> & `Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\>, - \| [`ObjectWithRecordError`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx)\<\{ \[K in string \| number \| symbol\]: InferError\ \}, `KeyError`, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`Value`\>\> - \| [`ObjectWithRecordError`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx)\<\{ \[K in string \| number \| symbol\]: InferParentError\ \}, `KeyParentError`, [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`Value`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: Readonly } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferParent<(...)> : never })[K] }>> & Readonly>>) => Result } & { [K in string | number | symbol]?: (...) extends (...) ? (...) : (...) })[K] }>> & Readonly>>, ObjectWithRecordError<{ [K in string | number | symbol]: InferError }, KeyError, InferError>>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferParent\ \} & \{ \[K in string \| number \| symbol\]?: (...)\[(...)\] extends OptionalType\<(...)\> ? InferParent\<(...)\> : never \})\[K\] \}\>\> & `Readonly`\<`Record`\<`KeyParent`, [`InferParent`](/docs/api-reference/common/Type/type-aliases/InferParent.mdx)\<`Value`\>\>\> | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferType\<(...)\[(...)\]\> \} & \{ \[K in string \| number \| symbol\]?: (...) extends (...) ? (...) : (...) \})\[K\] \}\>\> & `Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\>, [`ObjectWithRecordError`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx)\<\{ \[K in string \| number \| symbol\]: InferError\ \}, `KeyError`, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`Value`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result } & { [K in string | number | symbol]?: (...) extends (...) ? (...) : (...) })[K] }>> & Readonly>>, - | ObjectWithRecordError<{ [K in string | number | symbol]: InferError }, KeyError, InferError> -| ObjectWithRecordError<{ [K in string | number | symbol]: InferParentError }, KeyParentError, InferParentError>>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferType\<(...)\[(...)\]\> \} & \{ \[K in string \| number \| symbol\]?: (...) extends (...) ? (...) : (...) \})\[K\] \}\>\> & `Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\>, - \| [`ObjectWithRecordError`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx)\<\{ \[K in string \| number \| symbol\]: InferError\ \}, `KeyError`, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`Value`\>\> - \| [`ObjectWithRecordError`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx)\<\{ \[K in string \| number \| symbol\]: InferParentError\ \}, `KeyParentError`, [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`Value`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: Readonly } & { [K in string | number | symbol]?: Props[K] extends OptionalType ? InferInput : never })[K] }>> & Readonly>>; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferType<(...)> : never })[K] }>> & Readonly>>>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "ObjectWithRecord"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: Readonly } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferInput<(...)> : never })[K] }>> & Readonly>>) => - | Readonly } & { [K in string | number | symbol]?: (...) extends (...) ? (...) : (...) })[K] }>> & Readonly>> - | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferInput\ \} & \{ \[K in string \| number \| symbol\]?: (...)\[(...)\] extends OptionalType\<(...)\> ? InferInput\<(...)\> : never \})\[K\] \}\>\> & `Readonly`\<`Record`\<`KeyInput`, [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`Value`\>\>\> | - -#### Returns - - \| `Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferType\<(...)\[(...)\]\> \} & \{ \[K in string \| number \| symbol\]?: (...) extends (...) ? (...) : (...) \})\[K\] \}\>\> & `Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\> - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: Readonly } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferInput<(...)> : never })[K] }>> & Readonly>>) => Readonly } & { [K in string | number | symbol]?: (...)[(...)] extends OptionalType<(...)> ? InferType<(...)> : never })[K] }>> & Readonly>>; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferInput\ \} & \{ \[K in string \| number \| symbol\]?: (...)\[(...)\] extends OptionalType\<(...)\> ? InferInput\<(...)\> : never \})\[K\] \}\>\> & `Readonly`\<`Record`\<`KeyInput`, [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`Value`\>\>\> | - -#### Returns - -`Readonly`\<`DrainOuterGeneric`\<\{ \[K in string \| number \| symbol\]: (\{ \[K in string \| number \| symbol\]: InferType\ \} & \{ \[K in string \| number \| symbol\]?: (...)\[(...)\] extends OptionalType\<(...)\> ? InferType\<(...)\> : never \})\[K\] \}\>\> & `Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: Readonly } & { [K in string | number | symbol]?: Props[K] extends OptionalType ? InferParent : never })[K] }>> & Readonly>>; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: ObjectWithRecordError<{ [K in string | number | symbol]: InferParentError }, KeyParentError, InferParentError>; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### props - -```ts -readonly props: Props; -``` - -Defined in: [packages/common/src/Type.ts:3280](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3280) - -*** - - - -### record - -```ts -readonly record: RecordType; -``` - -Defined in: [packages/common/src/Type.ts:3281](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3281) - -*** - - - -### Type - -```ts -readonly Type: Readonly } & { [K in string | number | symbol]?: Props[K] extends OptionalType ? InferType : never })[K] }>> & Readonly>>; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/OptionalType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/OptionalType.mdx deleted file mode 100644 index 7ae19266d..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/OptionalType.mdx +++ /dev/null @@ -1,722 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / OptionalType - -Defined in: [packages/common/src/Type.ts:4303](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4303) - -Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via -[Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or -a composable typed error that tells us exactly why the validation failed. - -The reason why Evolu Type exists is that no other TypeScript validation -library met Evolu's requirements. A distinctive feature of Evolu Type -compared to other validation libraries is that it returns typed errors rather -than string messages. This allows TypeScript to enforce that all validation -errors are handled via [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx), significantly improving the -developer experience. Those requirements are: - -- **Result-based error handling** – no exceptions for normal control flow. -- **Typed errors with decoupled formatters** – validation logic ≠ user - messages. -- **Consistent constraints via [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx)** – every constraint becomes part - of the type. -- **Skippable validation** – parent validations can be skipped when already - proved by types. -- **Simple, top-down implementation** – readable source code from top to - bottom. -- **No user-land chaining DSL** – prepared for TC39 Hack pipes. - -Evolu Type supports [Standard Schema](https://standardschema.dev/) for -interoperability with 40+ validation-compatible tools and frameworks. - -## Base types - -```ts -// Validate unknown values -const value: unknown = "hello"; -const stringResult = String.fromUnknown(value); -if (!stringResult.ok) { - // console.error(formatStringError(stringResult.error)); - return stringResult; -} -// Safe branch: value is now string -const upper = stringResult.value.toUpperCase(); - -// Type guard style -if (String.is(value)) { - // narrowed to string -} - -// Composing: arrays & objects -const Numbers = array(Number); // ReadonlyArray -const Point = object({ x: Number, y: Number }); - -Numbers.from([1, 2, 3]); // ok -Point.from({ x: 1, y: 2 }); // ok -Point.from({ x: 1, y: "2" }); // err -> nested Number error -``` - -## Branded types - -Branding is the recommended way to define types in Evolu. Instead of using -primitive types like `string` or `number` directly, wrap them with -[brand](/docs/api-reference/common/Type/functions/brand.mdx) to create semantically meaningful types. See [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx) for -why this matters. - -```ts -const CurrencyCode = brand("CurrencyCode", String, (value) => - /^[A-Z]{3}$/.test(value) - ? ok(value) - : err({ type: "CurrencyCode", value }), -); -type CurrencyCode = typeof CurrencyCode.Type; // string & Brand<"CurrencyCode"> - -interface CurrencyCodeError extends TypeError<"CurrencyCode"> {} - -const formatCurrencyCodeError = - createTypeErrorFormatter( - (error) => `Invalid currency code: ${error.value}`, - ); - -const r = CurrencyCode.from("USD"); // ok("USD") -const e = CurrencyCode.from("usd"); // err(...) -``` - -See also reusable brand factories like `minLength`, `maxLength`, `trimmed`, -`positive`, `between`, etc. - -## Object types - -```ts -const User = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Use interface for objects. TypeScript displays the interface name -// instead of expanding all properties. -interface User extends InferType {} - -User.from({ name: "Alice" }); // ok -User.from({ name: "Alice", age: -1 }); // err(PositiveInt) - -// TODO: Add `record` -``` - -## JSON type - -```ts -const Person = object({ - name: NonEmptyString50, - // Did you know that JSON.stringify converts NaN (a number) into null? - // To prevent this, use FiniteNumber. - age: FiniteNumber, -}); -interface Person extends InferType {} - -const [PersonJson, personToPersonJson, personJsonToPerson] = json( - Person, - "PersonJson", -); -// string & Brand<"PersonJson"> -type PersonJson = typeof PersonJson.Type; - -const person = Person.orThrow({ - name: "Alice", - age: 30, -}); - -const personJson = personToPersonJson(person); -expect(personJsonToPerson(personJson)).toEqual(person); -``` - -## Error Formatting - -Evolu separates validation logic from human-readable messages. There are two -layers: - -1. Per-type formatters (e.g. `formatStringError`) – simple, focused, already - used earlier in the quick start example. -2. A unified formatter via `createFormatTypeError` – composes all built-in and - custom errors (including nested composite types) and lets us override - selected messages. - -### 1. Per-Type formatter - -```ts -const r = String.fromUnknown(42); -if (!r.ok) console.error(formatStringError(r.error)); -``` - -### 2. Unified formatter with overrides - -```ts -// Override only what we care about; fall back to built-ins for the rest. -const formatTypeError = createFormatTypeError((error) => { - if (error.type === "MinLength") return `Min length is ${error.min}`; -}); - -const User = object({ name: NonEmptyTrimmedString100 }); -const resultUser = User.from({ name: "" }); -if (!resultUser.ok) console.error(formatTypeError(resultUser.error)); - -const badPoint = object({ x: Number, y: Number }).from({ - x: 1, - y: "foo", -}); -if (!badPoint.ok) console.error(formatTypeError(badPoint.error)); -``` - -The unified formatter walks nested structures (object / array / record / -tuple / union) and applies overrides only where specified, greatly reducing -boilerplate when formatting complex validation errors. - -## Naming - -Evolu Types intentionally use the same names as native JavaScript types -(String, Number, Boolean, etc.). When you need to distinguish between an -Evolu Type and the native type, use `globalThis` to reference the native one -(e.g., `globalThis.String`, `globalThis.Number`). - -## Design decision - -Evolu Type intentionally does not support bidirectional transformations. It -previously did, but supporting that while keeping typed error fidelity added -complexity that hurt readability & reliability. Most persistence pipelines -(e.g. SQLite) already require explicit mapping of query results, so implicit -reverse transforms would not buy much. We may revisit this if we can design a -minimal, 100% safe API that preserves simplicity. - -## Composition without pipe - -Take a look how `SimplePassword` is defined: - -```ts -const SimplePassword = brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -``` - -Shallow nesting often fits one line. If it doesn't, split into named parts: - -```ts -const Min8TrimmedString64 = minLength(8)(maxLength(64)(TrimmedString)); -const SimplePassword = brand("SimplePassword", Min8TrimmedString64); -``` - -## FAQ - -### How do I create a generic interface like `FooState`? - -TypeScript's [InferType](/docs/api-reference/common/Type/type-aliases/InferType.mdx) extracts a concrete type, not a generic one. We -cannot write `interface FooState extends InferType>` -because `InferType` needs a concrete Type instance. - -The recommended approach is to define the generic interface manually, then -create a Type factory that produces structurally compatible Types: - -```ts -// Define the generic interface manually -interface FooState { - readonly value: T; - readonly loading: boolean; -} - -// Create a Type factory that produces Types matching the interface -const fooState = (valueType: T) => - object({ - value: valueType, - loading: Boolean, - }); - -// Usage -const StringFooState = fooState(String); -type StringFooState = InferType; - -// The interface and inferred type are structurally compatible -const state: FooState = StringFooState.orThrow({ - value: "hi", - loading: false, -}); -``` - -This keeps the interface generic while having type-safe runtime validation -for each concrete use. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Optional"`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`T`\>, [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`T`\>, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`T`\>, [`InferParent`](/docs/api-reference/common/Type/type-aliases/InferParent.mdx)\<`T`\>, [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`T`\>\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props, InferType>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### Error - -```ts -Error: InferError; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: - | InferError -| InferParentError; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: InferInput) => Result, - | InferError -| InferParentError>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`T`\>, - \| [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`T`\> - \| [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`T`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: InferParent) => Result, InferError>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferParent`](/docs/api-reference/common/Type/type-aliases/InferParent.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`T`\>, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`T`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result, - | InferError -| InferParentError>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`T`\>, - \| [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`T`\> - \| [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`T`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: InferInput; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "Optional"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: InferInput) => - | InferType - | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - - \| [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`T`\> - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: InferInput) => InferType; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - -[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### parent - -```ts -readonly parent: T; -``` - -Defined in: [packages/common/src/Type.ts:4312](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4312) - -*** - - - -### Parent - -```ts -Parent: InferParent; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: InferParentError; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### Type - -```ts -readonly Type: InferType; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/PositiveError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/PositiveError.mdx deleted file mode 100644 index cf7a74d95..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/PositiveError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / PositiveError - -Defined in: [packages/common/src/Type.ts:1934](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1934) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Positive"`\> - -## Properties - - - -### type - -```ts -readonly type: "Positive"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/RecordError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/RecordError.mdx deleted file mode 100644 index b2398dd6c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/RecordError.mdx +++ /dev/null @@ -1,93 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / RecordError - -Defined in: [packages/common/src/Type.ts:2828](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2828) - -## Extends - -- [`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx)\<`"Record"`, - \| \{ - `kind`: `"NotRecord"`; -\} - \| \{ - `error`: `KeyError`; - `key`: `unknown`; - `kind`: `"Key"`; -\} - \| \{ - `error`: `ValueError`; - `key`: `unknown`; - `kind`: `"Value"`; -\}\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `KeyError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | -| `ValueError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - -## Properties - - - -### reason - -```ts -readonly reason: - | { - kind: "NotRecord"; -} - | { - error: KeyError; - key: unknown; - kind: "Key"; -} - | { - error: ValueError; - key: unknown; - kind: "Value"; -}; -``` - -Defined in: [packages/common/src/Type.ts:493](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L493) - -The detailed reason for the error, represented as a tagged union. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`reason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#reason-1) - -*** - - - -### type - -```ts -readonly type: "Record"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/RecordType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/RecordType.mdx deleted file mode 100644 index b96e6d8b5..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/RecordType.mdx +++ /dev/null @@ -1,503 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / RecordType - -Defined in: [packages/common/src/Type.ts:2801](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2801) - -RecordType extends [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with additional `key` and `value` properties -for reflection. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Record"`, `Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\>, `Readonly`\<`Record`\<`KeyInput`, [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`Value`\>\>\>, [`RecordError`](/docs/api-reference/common/Type/interfaces/RecordError.mdx)\<`KeyError`, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`Value`\>\>, `Readonly`\<`Record`\<`KeyParent`, [`InferParent`](/docs/api-reference/common/Type/type-aliases/InferParent.mdx)\<`Value`\>\>\>, [`RecordError`](/docs/api-reference/common/Type/interfaces/RecordError.mdx)\<`KeyParentError`, [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`Value`\>\>\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `KeyName` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | - | -| `KeyT` *extends* `string` | - | -| `KeyInput` *extends* `string` | - | -| `KeyError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - | -| `KeyParent` *extends* `string` | - | -| `KeyParentError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - | -| `Value` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props>>, Readonly>>>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### Error - -```ts -Error: RecordError>; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: - | RecordError> -| RecordError>; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: Input) => Result>>, - | RecordError> -| RecordError>>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Input` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\>, - \| [`RecordError`](/docs/api-reference/common/Type/interfaces/RecordError.mdx)\<`KeyError`, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`Value`\>\> - \| [`RecordError`](/docs/api-reference/common/Type/interfaces/RecordError.mdx)\<`KeyParentError`, [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`Value`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: Parent) => Result>>, RecordError>>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Parent` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\>, [`RecordError`](/docs/api-reference/common/Type/interfaces/RecordError.mdx)\<`KeyError`, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`Value`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result>>, - | RecordError> -| RecordError>>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\>, - \| [`RecordError`](/docs/api-reference/common/Type/interfaces/RecordError.mdx)\<`KeyError`, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`Value`\>\> - \| [`RecordError`](/docs/api-reference/common/Type/interfaces/RecordError.mdx)\<`KeyParentError`, [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`Value`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: Readonly>>; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement>>>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### key - -```ts -readonly key: Type; -``` - -Defined in: [packages/common/src/Type.ts:2817](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2817) - -*** - - - -### name - -```ts -readonly name: "Record"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: Input) => - | Readonly>> - | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Input` | - -#### Returns - - \| `Readonly`\<`Record`\<`KeyT`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Value`\>\>\> - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: Input) => T; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Input` | - -#### Returns - -`T` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: Readonly>>; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: RecordError>; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### Type - -```ts -readonly Type: T; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) - -*** - - - -### value - -```ts -readonly value: Value; -``` - -Defined in: [packages/common/src/Type.ts:2825](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2825) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/RecursiveType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/RecursiveType.mdx deleted file mode 100644 index 3c0dacc09..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/RecursiveType.mdx +++ /dev/null @@ -1,726 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / RecursiveType - -Defined in: [packages/common/src/Type.ts:3805](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3805) - -Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via -[Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or -a composable typed error that tells us exactly why the validation failed. - -The reason why Evolu Type exists is that no other TypeScript validation -library met Evolu's requirements. A distinctive feature of Evolu Type -compared to other validation libraries is that it returns typed errors rather -than string messages. This allows TypeScript to enforce that all validation -errors are handled via [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx), significantly improving the -developer experience. Those requirements are: - -- **Result-based error handling** – no exceptions for normal control flow. -- **Typed errors with decoupled formatters** – validation logic ≠ user - messages. -- **Consistent constraints via [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx)** – every constraint becomes part - of the type. -- **Skippable validation** – parent validations can be skipped when already - proved by types. -- **Simple, top-down implementation** – readable source code from top to - bottom. -- **No user-land chaining DSL** – prepared for TC39 Hack pipes. - -Evolu Type supports [Standard Schema](https://standardschema.dev/) for -interoperability with 40+ validation-compatible tools and frameworks. - -## Base types - -```ts -// Validate unknown values -const value: unknown = "hello"; -const stringResult = String.fromUnknown(value); -if (!stringResult.ok) { - // console.error(formatStringError(stringResult.error)); - return stringResult; -} -// Safe branch: value is now string -const upper = stringResult.value.toUpperCase(); - -// Type guard style -if (String.is(value)) { - // narrowed to string -} - -// Composing: arrays & objects -const Numbers = array(Number); // ReadonlyArray -const Point = object({ x: Number, y: Number }); - -Numbers.from([1, 2, 3]); // ok -Point.from({ x: 1, y: 2 }); // ok -Point.from({ x: 1, y: "2" }); // err -> nested Number error -``` - -## Branded types - -Branding is the recommended way to define types in Evolu. Instead of using -primitive types like `string` or `number` directly, wrap them with -[brand](/docs/api-reference/common/Type/functions/brand.mdx) to create semantically meaningful types. See [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx) for -why this matters. - -```ts -const CurrencyCode = brand("CurrencyCode", String, (value) => - /^[A-Z]{3}$/.test(value) - ? ok(value) - : err({ type: "CurrencyCode", value }), -); -type CurrencyCode = typeof CurrencyCode.Type; // string & Brand<"CurrencyCode"> - -interface CurrencyCodeError extends TypeError<"CurrencyCode"> {} - -const formatCurrencyCodeError = - createTypeErrorFormatter( - (error) => `Invalid currency code: ${error.value}`, - ); - -const r = CurrencyCode.from("USD"); // ok("USD") -const e = CurrencyCode.from("usd"); // err(...) -``` - -See also reusable brand factories like `minLength`, `maxLength`, `trimmed`, -`positive`, `between`, etc. - -## Object types - -```ts -const User = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Use interface for objects. TypeScript displays the interface name -// instead of expanding all properties. -interface User extends InferType {} - -User.from({ name: "Alice" }); // ok -User.from({ name: "Alice", age: -1 }); // err(PositiveInt) - -// TODO: Add `record` -``` - -## JSON type - -```ts -const Person = object({ - name: NonEmptyString50, - // Did you know that JSON.stringify converts NaN (a number) into null? - // To prevent this, use FiniteNumber. - age: FiniteNumber, -}); -interface Person extends InferType {} - -const [PersonJson, personToPersonJson, personJsonToPerson] = json( - Person, - "PersonJson", -); -// string & Brand<"PersonJson"> -type PersonJson = typeof PersonJson.Type; - -const person = Person.orThrow({ - name: "Alice", - age: 30, -}); - -const personJson = personToPersonJson(person); -expect(personJsonToPerson(personJson)).toEqual(person); -``` - -## Error Formatting - -Evolu separates validation logic from human-readable messages. There are two -layers: - -1. Per-type formatters (e.g. `formatStringError`) – simple, focused, already - used earlier in the quick start example. -2. A unified formatter via `createFormatTypeError` – composes all built-in and - custom errors (including nested composite types) and lets us override - selected messages. - -### 1. Per-Type formatter - -```ts -const r = String.fromUnknown(42); -if (!r.ok) console.error(formatStringError(r.error)); -``` - -### 2. Unified formatter with overrides - -```ts -// Override only what we care about; fall back to built-ins for the rest. -const formatTypeError = createFormatTypeError((error) => { - if (error.type === "MinLength") return `Min length is ${error.min}`; -}); - -const User = object({ name: NonEmptyTrimmedString100 }); -const resultUser = User.from({ name: "" }); -if (!resultUser.ok) console.error(formatTypeError(resultUser.error)); - -const badPoint = object({ x: Number, y: Number }).from({ - x: 1, - y: "foo", -}); -if (!badPoint.ok) console.error(formatTypeError(badPoint.error)); -``` - -The unified formatter walks nested structures (object / array / record / -tuple / union) and applies overrides only where specified, greatly reducing -boilerplate when formatting complex validation errors. - -## Naming - -Evolu Types intentionally use the same names as native JavaScript types -(String, Number, Boolean, etc.). When you need to distinguish between an -Evolu Type and the native type, use `globalThis` to reference the native one -(e.g., `globalThis.String`, `globalThis.Number`). - -## Design decision - -Evolu Type intentionally does not support bidirectional transformations. It -previously did, but supporting that while keeping typed error fidelity added -complexity that hurt readability & reliability. Most persistence pipelines -(e.g. SQLite) already require explicit mapping of query results, so implicit -reverse transforms would not buy much. We may revisit this if we can design a -minimal, 100% safe API that preserves simplicity. - -## Composition without pipe - -Take a look how `SimplePassword` is defined: - -```ts -const SimplePassword = brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -``` - -Shallow nesting often fits one line. If it doesn't, split into named parts: - -```ts -const Min8TrimmedString64 = minLength(8)(maxLength(64)(TrimmedString)); -const SimplePassword = brand("SimplePassword", Min8TrimmedString64); -``` - -## FAQ - -### How do I create a generic interface like `FooState`? - -TypeScript's [InferType](/docs/api-reference/common/Type/type-aliases/InferType.mdx) extracts a concrete type, not a generic one. We -cannot write `interface FooState extends InferType>` -because `InferType` needs a concrete Type instance. - -The recommended approach is to define the generic interface manually, then -create a Type factory that produces structurally compatible Types: - -```ts -// Define the generic interface manually -interface FooState { - readonly value: T; - readonly loading: boolean; -} - -// Create a Type factory that produces Types matching the interface -const fooState = (valueType: T) => - object({ - value: valueType, - loading: Boolean, - }); - -// Usage -const StringFooState = fooState(String); -type StringFooState = InferType; - -// The interface and inferred type are structurally compatible -const state: FooState = StringFooState.orThrow({ - value: "hi", - loading: false, -}); -``` - -This keeps the interface generic while having type-safe runtime validation -for each concrete use. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Recursive"`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\>, [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`ParentType`\>, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ParentType`\>, [`InferParent`](/docs/api-reference/common/Type/type-aliases/InferParent.mdx)\<`ParentType`\>, [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`ParentType`\>\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `ParentType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Methods - - - -### getParentType() - -```ts -getParentType(): ParentType; -``` - -Defined in: [packages/common/src/Type.ts:3814](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3814) - -#### Returns - -`ParentType` - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props, InferType>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### Error - -```ts -Error: InferError; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: - | InferError -| InferParentError; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: InferInput) => Result, - | InferError -| InferParentError>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\>, - \| [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ParentType`\> - \| [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`ParentType`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: InferParent) => Result, InferError>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferParent`](/docs/api-reference/common/Type/type-aliases/InferParent.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\>, [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ParentType`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result, - | InferError -| InferParentError>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\>, - \| [`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ParentType`\> - \| [`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`ParentType`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: InferInput; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "Recursive"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: InferInput) => - | InferType - | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - - \| [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ParentType`\> - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: InferInput) => InferType; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - -[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: InferParent; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: InferParentError; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### Type - -```ts -readonly Type: InferType; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/RegexError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/RegexError.mdx deleted file mode 100644 index 7dbebab0c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/RegexError.mdx +++ /dev/null @@ -1,72 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / RegexError - -Defined in: [packages/common/src/Type.ts:1502](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1502) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Regex"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Name` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | - -## Properties - - - -### name - -```ts -readonly name: Name; -``` - -Defined in: [packages/common/src/Type.ts:1504](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1504) - -*** - - - -### pattern - -```ts -readonly pattern: RegExp; -``` - -Defined in: [packages/common/src/Type.ts:1505](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1505) - -*** - - - -### type - -```ts -readonly type: "Regex"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/SetError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/SetError.mdx deleted file mode 100644 index f8a8c1e39..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/SetError.mdx +++ /dev/null @@ -1,82 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / SetError - -Defined in: [packages/common/src/Type.ts:2626](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2626) - -## Extends - -- [`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx)\<`"Set"`, - \| \{ - `kind`: `"NotSet"`; -\} - \| \{ - `error`: `Error`; - `index`: `number`; - `kind`: `"Element"`; -\}\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - -## Properties - - - -### reason - -```ts -readonly reason: - | { - kind: "NotSet"; -} - | { - error: Error; - index: number; - kind: "Element"; -}; -``` - -Defined in: [packages/common/src/Type.ts:493](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L493) - -The detailed reason for the error, represented as a tagged union. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`reason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#reason-1) - -*** - - - -### type - -```ts -readonly type: "Set"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/SetType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/SetType.mdx deleted file mode 100644 index 85dcc87bb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/SetType.mdx +++ /dev/null @@ -1,484 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / SetType - -Defined in: [packages/common/src/Type.ts:2614](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2614) - -SetType extends Type with an additional `element` property for reflection. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Set"`, `ReadonlySet`\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ElementType`\>\>, `ReadonlySet`\<[`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`ElementType`\>\>, [`SetError`](/docs/api-reference/common/Type/interfaces/SetError.mdx)\<[`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ElementType`\>\>, `ReadonlySet`\<[`InferParent`](/docs/api-reference/common/Type/type-aliases/InferParent.mdx)\<`ElementType`\>\>, [`SetError`](/docs/api-reference/common/Type/interfaces/SetError.mdx)\<[`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`ElementType`\>\>\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `ElementType` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props>, ReadonlySet>>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### element - -```ts -readonly element: ElementType; -``` - -Defined in: [packages/common/src/Type.ts:2623](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2623) - -*** - - - -### Error - -```ts -Error: SetError>; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: - | SetError> -| SetError>; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: ReadonlySet) => Result>, - | SetError> -| SetError>>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `ReadonlySet` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`ReadonlySet`\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ElementType`\>\>, - \| [`SetError`](/docs/api-reference/common/Type/interfaces/SetError.mdx)\<[`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ElementType`\>\> - \| [`SetError`](/docs/api-reference/common/Type/interfaces/SetError.mdx)\<[`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`ElementType`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: ReadonlySet) => Result>, SetError>>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `ReadonlySet` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`ReadonlySet`\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ElementType`\>\>, [`SetError`](/docs/api-reference/common/Type/interfaces/SetError.mdx)\<[`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ElementType`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result>, - | SetError> -| SetError>>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`ReadonlySet`\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ElementType`\>\>, - \| [`SetError`](/docs/api-reference/common/Type/interfaces/SetError.mdx)\<[`InferError`](/docs/api-reference/common/Type/type-aliases/InferError.mdx)\<`ElementType`\>\> - \| [`SetError`](/docs/api-reference/common/Type/interfaces/SetError.mdx)\<[`InferParentError`](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx)\<`ElementType`\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: ReadonlySet>; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement>>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "Set"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: ReadonlySet) => - | ReadonlySet> - | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `ReadonlySet` | - -#### Returns - - \| `ReadonlySet`\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`ElementType`\>\> - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: ReadonlySet) => ReadonlySet; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `ReadonlySet` | - -#### Returns - -`ReadonlySet` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: ReadonlySet>; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: SetError>; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### Type - -```ts -readonly Type: ReadonlySet; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/SimpleNameError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/SimpleNameError.mdx deleted file mode 100644 index 5939cdb86..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/SimpleNameError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / SimpleNameError - -Defined in: [packages/common/src/Type.ts:1659](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1659) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"SimpleName"`\> - -## Properties - - - -### type - -```ts -readonly type: "SimpleName"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx deleted file mode 100644 index 34eaad722..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / StandardSchemaV1 - -Defined in: [packages/common/src/Type.ts:4817](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4817) - -The Standard Schema interface. - -## Extended by - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | `unknown` | -| `Output` | `Input` | - -## Properties - - - -### ~standard - -```ts -readonly ~standard: Props; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/StringError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/StringError.mdx deleted file mode 100644 index 5ef79c348..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/StringError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / StringError - -Defined in: [packages/common/src/Type.ts:745](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L745) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"String"`\> - -## Properties - - - -### type - -```ts -readonly type: "String"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/TableId.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/TableId.mdx deleted file mode 100644 index 5303fbcc5..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/TableId.mdx +++ /dev/null @@ -1,722 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TableId - -Defined in: [packages/common/src/Type.ts:1877](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1877) - -Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via -[Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or -a composable typed error that tells us exactly why the validation failed. - -The reason why Evolu Type exists is that no other TypeScript validation -library met Evolu's requirements. A distinctive feature of Evolu Type -compared to other validation libraries is that it returns typed errors rather -than string messages. This allows TypeScript to enforce that all validation -errors are handled via [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx), significantly improving the -developer experience. Those requirements are: - -- **Result-based error handling** – no exceptions for normal control flow. -- **Typed errors with decoupled formatters** – validation logic ≠ user - messages. -- **Consistent constraints via [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx)** – every constraint becomes part - of the type. -- **Skippable validation** – parent validations can be skipped when already - proved by types. -- **Simple, top-down implementation** – readable source code from top to - bottom. -- **No user-land chaining DSL** – prepared for TC39 Hack pipes. - -Evolu Type supports [Standard Schema](https://standardschema.dev/) for -interoperability with 40+ validation-compatible tools and frameworks. - -## Base types - -```ts -// Validate unknown values -const value: unknown = "hello"; -const stringResult = String.fromUnknown(value); -if (!stringResult.ok) { - // console.error(formatStringError(stringResult.error)); - return stringResult; -} -// Safe branch: value is now string -const upper = stringResult.value.toUpperCase(); - -// Type guard style -if (String.is(value)) { - // narrowed to string -} - -// Composing: arrays & objects -const Numbers = array(Number); // ReadonlyArray -const Point = object({ x: Number, y: Number }); - -Numbers.from([1, 2, 3]); // ok -Point.from({ x: 1, y: 2 }); // ok -Point.from({ x: 1, y: "2" }); // err -> nested Number error -``` - -## Branded types - -Branding is the recommended way to define types in Evolu. Instead of using -primitive types like `string` or `number` directly, wrap them with -[brand](/docs/api-reference/common/Type/functions/brand.mdx) to create semantically meaningful types. See [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx) for -why this matters. - -```ts -const CurrencyCode = brand("CurrencyCode", String, (value) => - /^[A-Z]{3}$/.test(value) - ? ok(value) - : err({ type: "CurrencyCode", value }), -); -type CurrencyCode = typeof CurrencyCode.Type; // string & Brand<"CurrencyCode"> - -interface CurrencyCodeError extends TypeError<"CurrencyCode"> {} - -const formatCurrencyCodeError = - createTypeErrorFormatter( - (error) => `Invalid currency code: ${error.value}`, - ); - -const r = CurrencyCode.from("USD"); // ok("USD") -const e = CurrencyCode.from("usd"); // err(...) -``` - -See also reusable brand factories like `minLength`, `maxLength`, `trimmed`, -`positive`, `between`, etc. - -## Object types - -```ts -const User = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Use interface for objects. TypeScript displays the interface name -// instead of expanding all properties. -interface User extends InferType {} - -User.from({ name: "Alice" }); // ok -User.from({ name: "Alice", age: -1 }); // err(PositiveInt) - -// TODO: Add `record` -``` - -## JSON type - -```ts -const Person = object({ - name: NonEmptyString50, - // Did you know that JSON.stringify converts NaN (a number) into null? - // To prevent this, use FiniteNumber. - age: FiniteNumber, -}); -interface Person extends InferType {} - -const [PersonJson, personToPersonJson, personJsonToPerson] = json( - Person, - "PersonJson", -); -// string & Brand<"PersonJson"> -type PersonJson = typeof PersonJson.Type; - -const person = Person.orThrow({ - name: "Alice", - age: 30, -}); - -const personJson = personToPersonJson(person); -expect(personJsonToPerson(personJson)).toEqual(person); -``` - -## Error Formatting - -Evolu separates validation logic from human-readable messages. There are two -layers: - -1. Per-type formatters (e.g. `formatStringError`) – simple, focused, already - used earlier in the quick start example. -2. A unified formatter via `createFormatTypeError` – composes all built-in and - custom errors (including nested composite types) and lets us override - selected messages. - -### 1. Per-Type formatter - -```ts -const r = String.fromUnknown(42); -if (!r.ok) console.error(formatStringError(r.error)); -``` - -### 2. Unified formatter with overrides - -```ts -// Override only what we care about; fall back to built-ins for the rest. -const formatTypeError = createFormatTypeError((error) => { - if (error.type === "MinLength") return `Min length is ${error.min}`; -}); - -const User = object({ name: NonEmptyTrimmedString100 }); -const resultUser = User.from({ name: "" }); -if (!resultUser.ok) console.error(formatTypeError(resultUser.error)); - -const badPoint = object({ x: Number, y: Number }).from({ - x: 1, - y: "foo", -}); -if (!badPoint.ok) console.error(formatTypeError(badPoint.error)); -``` - -The unified formatter walks nested structures (object / array / record / -tuple / union) and applies overrides only where specified, greatly reducing -boilerplate when formatting complex validation errors. - -## Naming - -Evolu Types intentionally use the same names as native JavaScript types -(String, Number, Boolean, etc.). When you need to distinguish between an -Evolu Type and the native type, use `globalThis` to reference the native one -(e.g., `globalThis.String`, `globalThis.Number`). - -## Design decision - -Evolu Type intentionally does not support bidirectional transformations. It -previously did, but supporting that while keeping typed error fidelity added -complexity that hurt readability & reliability. Most persistence pipelines -(e.g. SQLite) already require explicit mapping of query results, so implicit -reverse transforms would not buy much. We may revisit this if we can design a -minimal, 100% safe API that preserves simplicity. - -## Composition without pipe - -Take a look how `SimplePassword` is defined: - -```ts -const SimplePassword = brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -``` - -Shallow nesting often fits one line. If it doesn't, split into named parts: - -```ts -const Min8TrimmedString64 = minLength(8)(maxLength(64)(TrimmedString)); -const SimplePassword = brand("SimplePassword", Min8TrimmedString64); -``` - -## FAQ - -### How do I create a generic interface like `FooState`? - -TypeScript's [InferType](/docs/api-reference/common/Type/type-aliases/InferType.mdx) extracts a concrete type, not a generic one. We -cannot write `interface FooState extends InferType>` -because `InferType` needs a concrete Type instance. - -The recommended approach is to define the generic interface manually, then -create a Type factory that produces structurally compatible Types: - -```ts -// Define the generic interface manually -interface FooState { - readonly value: T; - readonly loading: boolean; -} - -// Create a Type factory that produces Types matching the interface -const fooState = (valueType: T) => - object({ - value: valueType, - loading: Boolean, - }); - -// Usage -const StringFooState = fooState(String); -type StringFooState = InferType; - -// The interface and inferred type are structurally compatible -const state: FooState = StringFooState.orThrow({ - value: "hi", - loading: false, -}); -``` - -This keeps the interface generic while having type-safe runtime validation -for each concrete use. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Id"`, `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Table`\>, `string`, [`TableIdError`](/docs/api-reference/common/Type/interfaces/TableIdError.mdx)\<`Table`\>, `string`, [`StringError`](/docs/api-reference/common/Type/interfaces/StringError.mdx)\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `Table` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props & Brand
>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### Error - -```ts -Error: TableIdError
; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: - | StringError -| TableIdError
; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: string) => Result & Brand
, - | StringError -| TableIdError
>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `string` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Table`\>, - \| [`StringError`](/docs/api-reference/common/Type/interfaces/StringError.mdx) - \| [`TableIdError`](/docs/api-reference/common/Type/interfaces/TableIdError.mdx)\<`Table`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: string) => Result & Brand
, TableIdError
>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `string` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Table`\>, [`TableIdError`](/docs/api-reference/common/Type/interfaces/TableIdError.mdx)\<`Table`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result & Brand
, - | StringError -| TableIdError
>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Table`\>, - \| [`StringError`](/docs/api-reference/common/Type/interfaces/StringError.mdx) - \| [`TableIdError`](/docs/api-reference/common/Type/interfaces/TableIdError.mdx)\<`Table`\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: string; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement & Brand
>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "Id"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: string) => - | string & Brand<"Id"> & Brand
- | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `string` | - -#### Returns - - \| `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Table`\> - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: string) => string & Brand<"Id"> & Brand
; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `string` | - -#### Returns - -`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`Table`\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: string; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: StringError; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### table - -```ts -table: Table; -``` - -Defined in: [packages/common/src/Type.ts:1886](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1886) - -*** - - - -### Type - -```ts -readonly Type: string & Brand<"Id"> & Brand
; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/TableIdError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/TableIdError.mdx deleted file mode 100644 index 4ce15066f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/TableIdError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TableIdError - -Defined in: [packages/common/src/Type.ts:1889](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1889) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"TableId"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Table` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | - -## Properties - - - -### table - -```ts -readonly table: Table; -``` - -Defined in: [packages/common/src/Type.ts:1891](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1891) - -*** - - - -### type - -```ts -readonly type: "TableId"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/TrimmedError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/TrimmedError.mdx deleted file mode 100644 index 7ed10ecf3..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/TrimmedError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TrimmedError - -Defined in: [packages/common/src/Type.ts:1281](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1281) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Trimmed"`\> - -## Properties - - - -### type - -```ts -readonly type: "Trimmed"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/TupleError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/TupleError.mdx deleted file mode 100644 index e1625e816..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/TupleError.mdx +++ /dev/null @@ -1,84 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TupleError - -Defined in: [packages/common/src/Type.ts:3989](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3989) - -## Extends - -- [`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx)\<`"Tuple"`, - \| \{ - `expected`: `number`; - `kind`: `"InvalidLength"`; -\} - \| \{ - `error`: `ElementError`; - `index`: `number`; - `kind`: `"Element"`; -\}\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `ElementError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - -## Properties - - - -### reason - -```ts -readonly reason: - | { - expected: number; - kind: "InvalidLength"; -} - | { - error: ElementError; - index: number; - kind: "Element"; -}; -``` - -Defined in: [packages/common/src/Type.ts:493](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L493) - -The detailed reason for the error, represented as a tagged union. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`reason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#reason-1) - -*** - - - -### type - -```ts -readonly type: "Tuple"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/TupleType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/TupleType.mdx deleted file mode 100644 index 30ee3f0bb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/TupleType.mdx +++ /dev/null @@ -1,485 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TupleType - -Defined in: [packages/common/src/Type.ts:3976](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3976) - -TupleType extends [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with an additional `elements` property for -reflection. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Tuple"`, readonly \[`...{ [K in keyof Elements]: InferType }`\], readonly \[`...{ [K in keyof Elements]: InferInput }`\], [`TupleError`](/docs/api-reference/common/Type/interfaces/TupleError.mdx)\<`{ [K in keyof Elements]: InferError }`\[`number`\]\>, readonly \[`...{ [K in keyof Elements]: InferParent }`\], [`TupleError`](/docs/api-reference/common/Type/interfaces/TupleError.mdx)\<`{ [K in keyof Elements]: InferParentError }`\[`number`\]\>\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `Elements` *extends* readonly \[[`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx), `...ReadonlyArray`\] | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props }], readonly [{ [K in string | number | symbol]: InferType }]>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### elements - -```ts -readonly elements: Elements; -``` - -Defined in: [packages/common/src/Type.ts:3986](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3986) - -*** - - - -### Error - -```ts -Error: TupleError<{ [K in string | number | symbol]: InferError }[number]>; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: - | TupleError<{ [K in string | number | symbol]: InferError }[number]> -| TupleError<{ [K in string | number | symbol]: InferParentError }[number]>; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: readonly [{ [K in string | number | symbol]: InferInput }]) => Result }], - | TupleError<{ [K in string | number | symbol]: InferError }[number]> -| TupleError<{ [K in string | number | symbol]: InferParentError }[number]>>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | readonly \[\{ \[K in string \| number \| symbol\]: InferInput\ \}\] | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\ \}\], - \| [`TupleError`](/docs/api-reference/common/Type/interfaces/TupleError.mdx)\<\{ \[K in string \| number \| symbol\]: InferError\ \}\[`number`\]\> - \| [`TupleError`](/docs/api-reference/common/Type/interfaces/TupleError.mdx)\<\{ \[K in string \| number \| symbol\]: InferParentError\ \}\[`number`\]\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: readonly [{ [K in string | number | symbol]: InferParent }]) => Result }], TupleError<{ [K in string | number | symbol]: InferError }[number]>>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | readonly \[\{ \[K in string \| number \| symbol\]: InferParent\ \}\] | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\ \}\], [`TupleError`](/docs/api-reference/common/Type/interfaces/TupleError.mdx)\<\{ \[K in string \| number \| symbol\]: InferError\ \}\[`number`\]\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result }], - | TupleError<{ [K in string | number | symbol]: InferError }[number]> -| TupleError<{ [K in string | number | symbol]: InferParentError }[number]>>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\ \}\], - \| [`TupleError`](/docs/api-reference/common/Type/interfaces/TupleError.mdx)\<\{ \[K in string \| number \| symbol\]: InferError\ \}\[`number`\]\> - \| [`TupleError`](/docs/api-reference/common/Type/interfaces/TupleError.mdx)\<\{ \[K in string \| number \| symbol\]: InferParentError\ \}\[`number`\]\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: readonly [{ [K in string | number | symbol]: InferInput }]; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement }]>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### name - -```ts -readonly name: "Tuple"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: readonly [{ [K in string | number | symbol]: InferInput }]) => - | readonly [{ [K in string | number | symbol]: InferType }] - | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | readonly \[\{ \[K in string \| number \| symbol\]: InferInput\ \}\] | - -#### Returns - - \| readonly \[\{ \[K in string \| number \| symbol\]: InferType\ \}\] - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: readonly [{ [K in string | number | symbol]: InferInput }]) => readonly [{ [K in string | number | symbol]: InferType }]; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | readonly \[\{ \[K in string \| number \| symbol\]: InferInput\ \}\] | - -#### Returns - -readonly \[\{ \[K in string \| number \| symbol\]: InferType\ \}\] - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: readonly [{ [K in string | number | symbol]: InferParent }]; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: TupleError<{ [K in string | number | symbol]: InferParentError }[number]>; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### Type - -```ts -readonly Type: readonly [{ [K in string | number | symbol]: InferType }]; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/Type.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/Type.mdx deleted file mode 100644 index b30e9737d..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/Type.mdx +++ /dev/null @@ -1,662 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Type - -Defined in: [packages/common/src/Type.ts:263](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L263) - -Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via -[Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or -a composable typed error that tells us exactly why the validation failed. - -The reason why Evolu Type exists is that no other TypeScript validation -library met Evolu's requirements. A distinctive feature of Evolu Type -compared to other validation libraries is that it returns typed errors rather -than string messages. This allows TypeScript to enforce that all validation -errors are handled via [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx), significantly improving the -developer experience. Those requirements are: - -- **Result-based error handling** – no exceptions for normal control flow. -- **Typed errors with decoupled formatters** – validation logic ≠ user - messages. -- **Consistent constraints via [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx)** – every constraint becomes part - of the type. -- **Skippable validation** – parent validations can be skipped when already - proved by types. -- **Simple, top-down implementation** – readable source code from top to - bottom. -- **No user-land chaining DSL** – prepared for TC39 Hack pipes. - -Evolu Type supports [Standard Schema](https://standardschema.dev/) for -interoperability with 40+ validation-compatible tools and frameworks. - -## Base types - -```ts -// Validate unknown values -const value: unknown = "hello"; -const stringResult = String.fromUnknown(value); -if (!stringResult.ok) { - // console.error(formatStringError(stringResult.error)); - return stringResult; -} -// Safe branch: value is now string -const upper = stringResult.value.toUpperCase(); - -// Type guard style -if (String.is(value)) { - // narrowed to string -} - -// Composing: arrays & objects -const Numbers = array(Number); // ReadonlyArray -const Point = object({ x: Number, y: Number }); - -Numbers.from([1, 2, 3]); // ok -Point.from({ x: 1, y: 2 }); // ok -Point.from({ x: 1, y: "2" }); // err -> nested Number error -``` - -## Branded types - -Branding is the recommended way to define types in Evolu. Instead of using -primitive types like `string` or `number` directly, wrap them with -[brand](/docs/api-reference/common/Type/functions/brand.mdx) to create semantically meaningful types. See [Brand](/docs/api-reference/common/Brand/interfaces/Brand.mdx) for -why this matters. - -```ts -const CurrencyCode = brand("CurrencyCode", String, (value) => - /^[A-Z]{3}$/.test(value) - ? ok(value) - : err({ type: "CurrencyCode", value }), -); -type CurrencyCode = typeof CurrencyCode.Type; // string & Brand<"CurrencyCode"> - -interface CurrencyCodeError extends TypeError<"CurrencyCode"> {} - -const formatCurrencyCodeError = - createTypeErrorFormatter( - (error) => `Invalid currency code: ${error.value}`, - ); - -const r = CurrencyCode.from("USD"); // ok("USD") -const e = CurrencyCode.from("usd"); // err(...) -``` - -See also reusable brand factories like `minLength`, `maxLength`, `trimmed`, -`positive`, `between`, etc. - -## Object types - -```ts -const User = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Use interface for objects. TypeScript displays the interface name -// instead of expanding all properties. -interface User extends InferType {} - -User.from({ name: "Alice" }); // ok -User.from({ name: "Alice", age: -1 }); // err(PositiveInt) - -// TODO: Add `record` -``` - -## JSON type - -```ts -const Person = object({ - name: NonEmptyString50, - // Did you know that JSON.stringify converts NaN (a number) into null? - // To prevent this, use FiniteNumber. - age: FiniteNumber, -}); -interface Person extends InferType {} - -const [PersonJson, personToPersonJson, personJsonToPerson] = json( - Person, - "PersonJson", -); -// string & Brand<"PersonJson"> -type PersonJson = typeof PersonJson.Type; - -const person = Person.orThrow({ - name: "Alice", - age: 30, -}); - -const personJson = personToPersonJson(person); -expect(personJsonToPerson(personJson)).toEqual(person); -``` - -## Error Formatting - -Evolu separates validation logic from human-readable messages. There are two -layers: - -1. Per-type formatters (e.g. `formatStringError`) – simple, focused, already - used earlier in the quick start example. -2. A unified formatter via `createFormatTypeError` – composes all built-in and - custom errors (including nested composite types) and lets us override - selected messages. - -### 1. Per-Type formatter - -```ts -const r = String.fromUnknown(42); -if (!r.ok) console.error(formatStringError(r.error)); -``` - -### 2. Unified formatter with overrides - -```ts -// Override only what we care about; fall back to built-ins for the rest. -const formatTypeError = createFormatTypeError((error) => { - if (error.type === "MinLength") return `Min length is ${error.min}`; -}); - -const User = object({ name: NonEmptyTrimmedString100 }); -const resultUser = User.from({ name: "" }); -if (!resultUser.ok) console.error(formatTypeError(resultUser.error)); - -const badPoint = object({ x: Number, y: Number }).from({ - x: 1, - y: "foo", -}); -if (!badPoint.ok) console.error(formatTypeError(badPoint.error)); -``` - -The unified formatter walks nested structures (object / array / record / -tuple / union) and applies overrides only where specified, greatly reducing -boilerplate when formatting complex validation errors. - -## Naming - -Evolu Types intentionally use the same names as native JavaScript types -(String, Number, Boolean, etc.). When you need to distinguish between an -Evolu Type and the native type, use `globalThis` to reference the native one -(e.g., `globalThis.String`, `globalThis.Number`). - -## Design decision - -Evolu Type intentionally does not support bidirectional transformations. It -previously did, but supporting that while keeping typed error fidelity added -complexity that hurt readability & reliability. Most persistence pipelines -(e.g. SQLite) already require explicit mapping of query results, so implicit -reverse transforms would not buy much. We may revisit this if we can design a -minimal, 100% safe API that preserves simplicity. - -## Composition without pipe - -Take a look how `SimplePassword` is defined: - -```ts -const SimplePassword = brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -``` - -Shallow nesting often fits one line. If it doesn't, split into named parts: - -```ts -const Min8TrimmedString64 = minLength(8)(maxLength(64)(TrimmedString)); -const SimplePassword = brand("SimplePassword", Min8TrimmedString64); -``` - -## FAQ - -### How do I create a generic interface like `FooState`? - -TypeScript's [InferType](/docs/api-reference/common/Type/type-aliases/InferType.mdx) extracts a concrete type, not a generic one. We -cannot write `interface FooState extends InferType>` -because `InferType` needs a concrete Type instance. - -The recommended approach is to define the generic interface manually, then -create a Type factory that produces structurally compatible Types: - -```ts -// Define the generic interface manually -interface FooState { - readonly value: T; - readonly loading: boolean; -} - -// Create a Type factory that produces Types matching the interface -const fooState = (valueType: T) => - object({ - value: valueType, - loading: Boolean, - }); - -// Usage -const StringFooState = fooState(String); -type StringFooState = InferType; - -// The interface and inferred type are structurally compatible -const state: FooState = StringFooState.orThrow({ - value: "hi", - loading: false, -}); -``` - -This keeps the interface generic while having type-safe runtime validation -for each concrete use. - -## Extends - -- [`StandardSchemaV1`](/docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx)\<`Input`, `T`\> - -## Extended by - -- [`InstanceOfType`](/docs/api-reference/common/Type/interfaces/InstanceOfType.mdx) -- [`BrandType`](/docs/api-reference/common/Type/interfaces/BrandType.mdx) -- [`TableId`](/docs/api-reference/common/Type/interfaces/TableId.mdx) -- [`LiteralType`](/docs/api-reference/common/Type/interfaces/LiteralType.mdx) -- [`ArrayType`](/docs/api-reference/common/Type/interfaces/ArrayType.mdx) -- [`SetType`](/docs/api-reference/common/Type/interfaces/SetType.mdx) -- [`RecordType`](/docs/api-reference/common/Type/interfaces/RecordType.mdx) -- [`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx) -- [`ObjectWithRecordType`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordType.mdx) -- [`UnionType`](/docs/api-reference/common/Type/interfaces/UnionType.mdx) -- [`RecursiveType`](/docs/api-reference/common/Type/interfaces/RecursiveType.mdx) -- [`TupleType`](/docs/api-reference/common/Type/interfaces/TupleType.mdx) -- [`OptionalType`](/docs/api-reference/common/Type/interfaces/OptionalType.mdx) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Name` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | - | -| `T` | - | -| `Input` | - | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | `never` | -| `Parent` | `T` | -| `ParentError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | `Error` | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`StandardSchemaV1`](/docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx#standard) - -*** - - - -### Error - -```ts -Error: Error; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -*** - - - -### Errors - -```ts -readonly Errors: Error | ParentError; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -*** - - - -### from() - -```ts -readonly from: (value: Input) => Result; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Input` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `Error` \| `ParentError`\> - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: Parent) => Result; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Parent` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `Error`\> - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`T`, `Error` \| `ParentError`\> - -*** - - - -### Input - -```ts -Input: Input; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -*** - - - -### is - -```ts -readonly is: Refinement; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -*** - - - -### name - -```ts -readonly name: Name; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: Input) => T | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Input` | - -#### Returns - -`T` \| `null` - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: Input) => T; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `Input` | - -#### Returns - -`T` - -*** - - - -### Parent - -```ts -Parent: Parent; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -*** - - - -### ParentError - -```ts -ParentError: ParentError; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -*** - - - -### Type - -```ts -readonly Type: T; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/TypeError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/TypeError.mdx deleted file mode 100644 index 01521df67..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/TypeError.mdx +++ /dev/null @@ -1,83 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TypeError - -Defined in: [packages/common/src/Type.ts:476](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L476) - -## Extended by - -- [`TypeErrorWithReason`](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx) -- [`StringError`](/docs/api-reference/common/Type/interfaces/StringError.mdx) -- [`NumberError`](/docs/api-reference/common/Type/interfaces/NumberError.mdx) -- [`BigIntError`](/docs/api-reference/common/Type/interfaces/BigIntError.mdx) -- [`BooleanError`](/docs/api-reference/common/Type/interfaces/BooleanError.mdx) -- [`UndefinedError`](/docs/api-reference/common/Type/interfaces/UndefinedError.mdx) -- [`NullError`](/docs/api-reference/common/Type/interfaces/NullError.mdx) -- [`FunctionError`](/docs/api-reference/common/Type/interfaces/FunctionError.mdx) -- [`Uint8ArrayError`](/docs/api-reference/common/Type/interfaces/Uint8ArrayError.mdx) -- [`InstanceOfError`](/docs/api-reference/common/Type/interfaces/InstanceOfError.mdx) -- [`EvoluTypeError`](/docs/api-reference/common/Type/interfaces/EvoluTypeError.mdx) -- [`BrandWithoutRefineError`](/docs/api-reference/common/Type/interfaces/BrandWithoutRefineError.mdx) -- [`CurrencyCodeError`](/docs/api-reference/common/Type/interfaces/CurrencyCodeError.mdx) -- [`DateIsoError`](/docs/api-reference/common/Type/interfaces/DateIsoError.mdx) -- [`TrimmedError`](/docs/api-reference/common/Type/interfaces/TrimmedError.mdx) -- [`MinLengthError`](/docs/api-reference/common/Type/interfaces/MinLengthError.mdx) -- [`MaxLengthError`](/docs/api-reference/common/Type/interfaces/MaxLengthError.mdx) -- [`LengthError`](/docs/api-reference/common/Type/interfaces/LengthError.mdx) -- [`MnemonicError`](/docs/api-reference/common/Type/interfaces/MnemonicError.mdx) -- [`RegexError`](/docs/api-reference/common/Type/interfaces/RegexError.mdx) -- [`Base64UrlError`](/docs/api-reference/common/Type/interfaces/Base64UrlError.mdx) -- [`SimpleNameError`](/docs/api-reference/common/Type/interfaces/SimpleNameError.mdx) -- [`IdError`](/docs/api-reference/common/Type/interfaces/IdError.mdx) -- [`TableIdError`](/docs/api-reference/common/Type/interfaces/TableIdError.mdx) -- [`PositiveError`](/docs/api-reference/common/Type/interfaces/PositiveError.mdx) -- [`NegativeError`](/docs/api-reference/common/Type/interfaces/NegativeError.mdx) -- [`NonPositiveError`](/docs/api-reference/common/Type/interfaces/NonPositiveError.mdx) -- [`NonNegativeError`](/docs/api-reference/common/Type/interfaces/NonNegativeError.mdx) -- [`IntError`](/docs/api-reference/common/Type/interfaces/IntError.mdx) -- [`GreaterThanError`](/docs/api-reference/common/Type/interfaces/GreaterThanError.mdx) -- [`LessThanError`](/docs/api-reference/common/Type/interfaces/LessThanError.mdx) -- [`GreaterThanOrEqualToError`](/docs/api-reference/common/Type/interfaces/GreaterThanOrEqualToError.mdx) -- [`LessThanOrEqualToError`](/docs/api-reference/common/Type/interfaces/LessThanOrEqualToError.mdx) -- [`NonNaNError`](/docs/api-reference/common/Type/interfaces/NonNaNError.mdx) -- [`FiniteError`](/docs/api-reference/common/Type/interfaces/FiniteError.mdx) -- [`MultipleOfError`](/docs/api-reference/common/Type/interfaces/MultipleOfError.mdx) -- [`BetweenError`](/docs/api-reference/common/Type/interfaces/BetweenError.mdx) -- [`LiteralError`](/docs/api-reference/common/Type/interfaces/LiteralError.mdx) -- [`UnionError`](/docs/api-reference/common/Type/interfaces/UnionError.mdx) -- [`Int64Error`](/docs/api-reference/common/Type/interfaces/Int64Error.mdx) -- [`Int64StringError`](/docs/api-reference/common/Type/interfaces/Int64StringError.mdx) -- [`JsonError`](/docs/api-reference/common/Type/interfaces/JsonError.mdx) -- [`AppNameError`](/docs/api-reference/common/local-first/Evolu/interfaces/AppNameError.mdx) -- [`ValidDbChangeValuesError`](/docs/api-reference/common/local-first/Storage/interfaces/ValidDbChangeValuesError.mdx) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Name` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | - -## Properties - - - -### type - -```ts -readonly type: Name; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx deleted file mode 100644 index 6d90e7583..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx +++ /dev/null @@ -1,72 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TypeErrorWithReason - -Defined in: [packages/common/src/Type.ts:486](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L486) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`Name`\> - -## Extended by - -- [`ArrayError`](/docs/api-reference/common/Type/interfaces/ArrayError.mdx) -- [`SetError`](/docs/api-reference/common/Type/interfaces/SetError.mdx) -- [`RecordError`](/docs/api-reference/common/Type/interfaces/RecordError.mdx) -- [`ObjectError`](/docs/api-reference/common/Type/interfaces/ObjectError.mdx) -- [`ObjectWithRecordError`](/docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx) -- [`TupleError`](/docs/api-reference/common/Type/interfaces/TupleError.mdx) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Name` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | -| `Reason` *extends* \{ `kind`: `Capitalize`\<`string`\>; \} | \{ `kind`: `Capitalize`\<`string`\>; \} | - -## Properties - - - -### reason - -```ts -readonly reason: Reason; -``` - -Defined in: [packages/common/src/Type.ts:493](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L493) - -The detailed reason for the error, represented as a tagged union. - -*** - - - -### type - -```ts -readonly type: Name; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/Typed.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/Typed.mdx deleted file mode 100644 index c0a761a92..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/Typed.mdx +++ /dev/null @@ -1,209 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Typed - -Defined in: [packages/common/src/Type.ts:3455](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3455) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extended by - -- [`DecryptWithXChaCha20Poly1305Error`](/docs/api-reference/common/Crypto/interfaces/DecryptWithXChaCha20Poly1305Error.mdx) -- [`UnknownError`](/docs/api-reference/common/Error/interfaces/UnknownError.mdx) -- [`Some`](/docs/api-reference/common/Option/interfaces/Some.mdx) -- [`None`](/docs/api-reference/common/Option/interfaces/None.mdx) -- [`ResourceNotFoundError`](/docs/api-reference/common/Resources/interfaces/ResourceNotFoundError.mdx) -- [`ConsumerNotFoundError`](/docs/api-reference/common/Resources/interfaces/ConsumerNotFoundError.mdx) -- [`Done`](/docs/api-reference/common/Result/interfaces/Done.mdx) -- [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx) -- [`SqlIdentifier`](/docs/api-reference/common/Sqlite/interfaces/SqlIdentifier.mdx) -- [`RawSql`](/docs/api-reference/common/Sqlite/interfaces/RawSql.mdx) -- [`FiberStateRunning`](/docs/api-reference/common/Task/interfaces/FiberStateRunning.mdx) -- [`FiberStateCompleting`](/docs/api-reference/common/Task/interfaces/FiberStateCompleting.mdx) -- [`FiberStateCompleted`](/docs/api-reference/common/Task/interfaces/FiberStateCompleted.mdx) -- [`RetryError`](/docs/api-reference/common/Task/interfaces/RetryError.mdx) -- [`WebSocketSendError`](/docs/api-reference/common/WebSocket/interfaces/WebSocketSendError.mdx) -- [`WebSocketConnectError`](/docs/api-reference/common/WebSocket/interfaces/WebSocketConnectError.mdx) -- [`WebSocketConnectionError`](/docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionError.mdx) -- [`WebSocketConnectionCloseError`](/docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionCloseError.mdx) -- [`DbWorkerInitMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerInitMessage.mdx) -- [`DbWorkerGetAppOwnerMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerGetAppOwnerMessage.mdx) -- [`DbWorkerQueryMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerQueryMessage.mdx) -- [`DbWorkerMutateMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerMutateMessage.mdx) -- [`DbWorkerExportMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerExportMessage.mdx) -- [`DbWorkerResetMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerResetMessage.mdx) -- [`DbWorkerCloseMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerCloseMessage.mdx) -- [`DbWorkerInitResponseMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerInitResponseMessage.mdx) -- [`DbWorkerAppOwnerMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerAppOwnerMessage.mdx) -- [`DbWorkerQueryResponseMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerQueryResponseMessage.mdx) -- [`DbWorkerMutateResponseMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerMutateResponseMessage.mdx) -- [`DbWorkerExportResponseMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerExportResponseMessage.mdx) -- [`DbWorkerResetResponseMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerResetResponseMessage.mdx) -- [`DbWorkerCloseResponseMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerCloseResponseMessage.mdx) -- [`DbWorkerErrorMessage`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerErrorMessage.mdx) -- [`DbWorkerLeaderOutput`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderOutput.mdx) -- [`DbWorkerLeaderInput`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderInput.mdx) -- [`AppOwner`](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) -- [`ShardOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) -- [`SharedOwner`](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) -- [`SharedReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx) -- [`OwnerWebSocketTransport`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport.mdx) -- [`ProtocolVersionError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolVersionError.mdx) -- [`ProtocolInvalidDataError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError.mdx) -- [`ProtocolWriteKeyError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteKeyError.mdx) -- [`ProtocolWriteError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteError.mdx) -- [`ProtocolQuotaError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolQuotaError.mdx) -- [`ProtocolSyncError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolSyncError.mdx) -- [`ProtocolTimestampMismatchError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolTimestampMismatchError.mdx) -- [`ApplyProtocolMessageAsClientResponse`](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientResponse.mdx) -- [`ApplyProtocolMessageAsClientNoResponse`](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientNoResponse.mdx) -- [`ApplyProtocolMessageAsClientBroadcast`](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientBroadcast.mdx) -- [`ApplyProtocolMessageAsRelayResult`](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayResult.mdx) -- [`StorageWriteError`](/docs/api-reference/common/local-first/Storage/interfaces/StorageWriteError.mdx) -- [`StorageQuotaError`](/docs/api-reference/common/local-first/Storage/interfaces/StorageQuotaError.mdx) -- [`SyncStateInitial`](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateInitial.mdx) -- [`SyncStateIsSyncing`](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSyncing.mdx) -- [`SyncStateIsSynced`](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSynced.mdx) -- [`SyncStateIsNotSynced`](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsNotSynced.mdx) -- [`NetworkError`](/docs/api-reference/common/local-first/Sync/interfaces/NetworkError.mdx) -- [`ServerError`](/docs/api-reference/common/local-first/Sync/interfaces/ServerError.mdx) -- [`PaymentRequiredError`](/docs/api-reference/common/local-first/Sync/interfaces/PaymentRequiredError.mdx) -- [`TimestampDriftError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampDriftError.mdx) -- [`TimestampCounterOverflowError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampCounterOverflowError.mdx) -- [`TimestampTimeOutOfRangeError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampTimeOutOfRangeError.mdx) - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* `Capitalize`\<`string`\> | - -## Properties - - - -### type - -```ts -readonly type: T; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/Uint8ArrayError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/Uint8ArrayError.mdx deleted file mode 100644 index 3114a900a..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/Uint8ArrayError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Uint8ArrayError - -Defined in: [packages/common/src/Type.ts:827](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L827) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Uint8Array"`\> - -## Properties - - - -### type - -```ts -readonly type: "Uint8Array"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/UndefinedError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/UndefinedError.mdx deleted file mode 100644 index 53bc191de..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/UndefinedError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / UndefinedError - -Defined in: [packages/common/src/Type.ts:793](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L793) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Undefined"`\> - -## Properties - - - -### type - -```ts -readonly type: "Undefined"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/UnionError.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/UnionError.mdx deleted file mode 100644 index 6db3db739..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/UnionError.mdx +++ /dev/null @@ -1,60 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / UnionError - -Defined in: [packages/common/src/Type.ts:3610](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3610) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"Union"`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `E` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - -## Properties - - - -### errors - -```ts -readonly errors: E[]; -``` - -Defined in: [packages/common/src/Type.ts:3612](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3612) - -*** - - - -### type - -```ts -readonly type: "Union"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/Type/interfaces/UnionType.mdx b/.generated/evolu-docs/api-reference/common/Type/interfaces/UnionType.mdx deleted file mode 100644 index fa399bc74..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/interfaces/UnionType.mdx +++ /dev/null @@ -1,475 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / UnionType - -Defined in: [packages/common/src/Type.ts:3598](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3598) - -UnionType extends [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with an additional `members` property for -reflection. - -## Extends - -- [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`"Union"`, [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Members`\[`number`\]\>, [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`Members`\[`number`\]\>, [`UnionError`](/docs/api-reference/common/Type/interfaces/UnionError.mdx)\<[`InferErrors`](/docs/api-reference/common/Type/type-aliases/InferErrors.mdx)\<`Members`\[`number`\]\>\>, [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx)\<`Members`\[`number`\]\>, `never`\> - -## Type Parameters - -| Type Parameter | -| ------ | -| `Members` *extends* \[[`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx), `...ReadonlyArray`\] | - -## Properties - - - -### \[EvoluTypeSymbol\] - -```ts -readonly [EvoluTypeSymbol]: true; -``` - -Defined in: [packages/common/src/Type.ts:402](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L402) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`[EvoluTypeSymbol]`](/docs/api-reference/common/Type/interfaces/Type.mdx#evolutypesymbol) - -*** - - - -### ~standard - -```ts -readonly ~standard: Props, InferType>; -``` - -Defined in: [packages/common/src/Type.ts:4819](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4819) - -The Standard Schema properties. - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`~standard`](/docs/api-reference/common/Type/interfaces/Type.mdx#standard) - -*** - - - -### Error - -```ts -Error: UnionError>; -``` - -Defined in: [packages/common/src/Type.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L270) - -The specific error introduced by this Type. - -### Example - -```ts -type StringError = typeof String.Error; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Error`](/docs/api-reference/common/Type/interfaces/Type.mdx#error) - -*** - - - -### Errors - -```ts -readonly Errors: UnionError>; -``` - -Defined in: [packages/common/src/Type.ts:466](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L466) - -### Example - -```ts -type StringParentErrors = typeof String.Errors; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Errors`](/docs/api-reference/common/Type/interfaces/Type.mdx#errors) - -*** - - - -### from() - -```ts -readonly from: (value: InferInput) => Result, UnionError>>; -``` - -Defined in: [packages/common/src/Type.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L285) - -Creates `T` from an `Input` value. - -This is useful when we have a typed value. - -`from` is a typed alias of `fromUnknown`. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Members`\[`number`\]\>, [`UnionError`](/docs/api-reference/common/Type/interfaces/UnionError.mdx)\<[`InferErrors`](/docs/api-reference/common/Type/type-aliases/InferErrors.mdx)\<`Members`\[`number`\]\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`from`](/docs/api-reference/common/Type/interfaces/Type.mdx#from) - -*** - - - -### fromParent() - -```ts -readonly fromParent: (value: InferInput) => Result, UnionError>>; -``` - -Defined in: [packages/common/src/Type.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L379) - -Creates `T` from `Parent` type. - -This function skips parent Types validations when we have already partially -validated value. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Members`\[`number`\]\>, [`UnionError`](/docs/api-reference/common/Type/interfaces/UnionError.mdx)\<[`InferErrors`](/docs/api-reference/common/Type/type-aliases/InferErrors.mdx)\<`Members`\[`number`\]\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromParent`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromparent) - -*** - - - -### fromUnknown() - -```ts -readonly fromUnknown: (value: unknown) => Result, UnionError>>; -``` - -Defined in: [packages/common/src/Type.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L371) - -Creates `T` from an unknown value. - -This is useful when a value is unknown. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Members`\[`number`\]\>, [`UnionError`](/docs/api-reference/common/Type/interfaces/UnionError.mdx)\<[`InferErrors`](/docs/api-reference/common/Type/type-aliases/InferErrors.mdx)\<`Members`\[`number`\]\>\>\> - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`fromUnknown`](/docs/api-reference/common/Type/interfaces/Type.mdx#fromunknown) - -*** - - - -### Input - -```ts -Input: InferInput; -``` - -Defined in: [packages/common/src/Type.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L268) - -The type expected by `from` and `fromUnknown`. - -### Example - -```ts -type StringInput = typeof String.Input; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Input`](/docs/api-reference/common/Type/interfaces/Type.mdx#input) - -*** - - - -### is - -```ts -readonly is: Refinement>; -``` - -Defined in: [packages/common/src/Type.ts:400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L400) - -A **type guard** that checks whether an unknown value satisfies the -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const value: unknown = "hello"; -if (String.is(value)) { - // TypeScript now knows `value` is a `string` here. - console.log("This is a valid string!"); -} - -const strings: unknown[] = [1, "hello", true, "world"]; -const filteredStrings = strings.filter(String.is); - -console.log(filteredStrings); // ["hello", "world"] -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`is`](/docs/api-reference/common/Type/interfaces/Type.mdx#is) - -*** - - - -### members - -```ts -readonly members: Members; -``` - -Defined in: [packages/common/src/Type.ts:3607](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3607) - -*** - - - -### name - -```ts -readonly name: "Union"; -``` - -Defined in: [packages/common/src/Type.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L276) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`name`](/docs/api-reference/common/Type/interfaces/Type.mdx#name-1) - -*** - - - -### orNull() - -```ts -readonly orNull: (value: InferInput) => - | InferType - | null; -``` - -Defined in: [packages/common/src/Type.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L364) - -Creates `T` from an `Input` value, returning `null` if validation fails. - -This is a convenience method that combines `from` with `getOrNull`. - -**When to use:** - -- When you need to convert a validation result to a nullable value -- When the error is not important and you just want the value or nothing - -### Example - -```ts -// Good: Optional user input -const age = PositiveInt.orNull(userInput); -if (age != null) { - console.log("Valid age:", age); -} - -// Good: Default fallback -const maxRetries = PositiveInt.orNull(config.retries) ?? 3; - -// Avoid: When you need to know why validation failed (use `from` instead) -const result = PositiveInt.from(userInput); -if (!result.ok) { - console.error(formatPositiveError(result.error)); -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - - \| [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<`Members`\[`number`\]\> - \| `null` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orNull`](/docs/api-reference/common/Type/interfaces/Type.mdx#ornull) - -*** - - - -### orThrow() - -```ts -readonly orThrow: (value: InferInput) => InferType; -``` - -Defined in: [packages/common/src/Type.ts:333](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L333) - -Creates `T` from an `Input` value, throwing an error if validation fails. - -Throws an Error with the Type validation error in its `cause` property, -making it debuggable while avoiding the need for custom error messages. - -This is a convenience method that combines `from` with `getOrThrow`. - -**When to use:** - -- Configuration values that are guaranteed to be valid (e.g., hardcoded - constants) -- Application startup where failure should crash the program -- As an alternative to assertions when the Type error in the thrown Error's - `cause` provides sufficient debugging information -- Test code with known valid inputs (when error message clarity is not - critical; for better test error messages, use Vitest `schemaMatching` + - `assert` with `.is()`) - -### Example - -```ts -// Good: Known valid constant -const maxRetries = PositiveInt.orThrow(3); - -// Good: App configuration that should crash on invalid values -const appName = SimpleName.orThrow("MyApp"); - -// Good: Instead of assert when Type error is clear enough -// Context makes it obvious: count increments from non-negative value -const currentCount = counts.get(id) ?? 0; -const newCount = PositiveInt.orThrow(currentCount + 1); - -// Good: Test setup with known valid values -const testUser = User.orThrow({ name: "Alice", age: 30 }); - -// Avoid: User input (use `from` instead) -const userAge = PositiveInt.orThrow(userInput); // Could crash! - -// Better: Handle user input gracefully -const ageResult = PositiveInt.from(userInput); -if (!ageResult.ok) { - // Handle validation error -} -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`InferInput`](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | - -#### Returns - -[`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx) - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`orThrow`](/docs/api-reference/common/Type/interfaces/Type.mdx#orthrow) - -*** - - - -### Parent - -```ts -Parent: InferInput; -``` - -Defined in: [packages/common/src/Type.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L272) - -The parent type. - -### Example - -```ts -type StringParent = typeof String.Parent; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Parent`](/docs/api-reference/common/Type/interfaces/Type.mdx#parent) - -*** - - - -### ParentError - -```ts -ParentError: never; -``` - -Defined in: [packages/common/src/Type.ts:274](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L274) - -The parent's error. - -### Example - -```ts -type StringParentError = typeof String.ParentError; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`ParentError`](/docs/api-reference/common/Type/interfaces/Type.mdx#parenterror) - -*** - - - -### Type - -```ts -readonly Type: InferType; -``` - -Defined in: [packages/common/src/Type.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L413) - -The type this Type resolves to. - -### Example - -```ts -type String = typeof String.Type; -``` - -#### Inherited from - -[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx).[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/FailureResult.mdx b/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/FailureResult.mdx deleted file mode 100644 index fe4ae74de..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/FailureResult.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / [StandardSchemaV1](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx) / FailureResult - -Defined in: [packages/common/src/Type.ts:4849](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4849) - -The result interface if validation fails. - -## Properties - - - -### issues - -```ts -readonly issues: readonly Issue[]; -``` - -Defined in: [packages/common/src/Type.ts:4851](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4851) - -The issues of failed validation. diff --git a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Issue.mdx b/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Issue.mdx deleted file mode 100644 index d188e14f5..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Issue.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / [StandardSchemaV1](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx) / Issue - -Defined in: [packages/common/src/Type.ts:4855](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4855) - -The issue interface of the failure output. - -## Properties - - - -### message - -```ts -readonly message: string; -``` - -Defined in: [packages/common/src/Type.ts:4857](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4857) - -The error message of the issue. - -*** - - - -### path? - -```ts -readonly optional path: readonly ( - | PropertyKey - | PathSegment)[]; -``` - -Defined in: [packages/common/src/Type.ts:4859](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4859) - -The path of the issue, if any. diff --git a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/PathSegment.mdx b/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/PathSegment.mdx deleted file mode 100644 index a67c044fe..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/PathSegment.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / [StandardSchemaV1](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx) / PathSegment - -Defined in: [packages/common/src/Type.ts:4863](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4863) - -The path segment interface of the issue. - -## Properties - - - -### key - -```ts -readonly key: PropertyKey; -``` - -Defined in: [packages/common/src/Type.ts:4865](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4865) - -The key representing a path segment. diff --git a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Props.mdx b/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Props.mdx deleted file mode 100644 index 5419eabea..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Props.mdx +++ /dev/null @@ -1,81 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / [StandardSchemaV1](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx) / Props - -Defined in: [packages/common/src/Type.ts:4824](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4824) - -The Standard Schema properties interface. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | `unknown` | -| `Output` | `Input` | - -## Properties - - - -### types? - -```ts -readonly optional types: Types; -``` - -Defined in: [packages/common/src/Type.ts:4834](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4834) - -Inferred types associated with the schema. - -*** - - - -### validate() - -```ts -readonly validate: (value: unknown) => - | Result -| Promise>; -``` - -Defined in: [packages/common/src/Type.ts:4830](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4830) - -Validates unknown input values. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -#### Returns - - \| [`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Output`\> - \| `Promise`\<[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Output`\>\> - -*** - - - -### vendor - -```ts -readonly vendor: string; -``` - -Defined in: [packages/common/src/Type.ts:4828](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4828) - -The vendor name of the schema library. - -*** - - - -### version - -```ts -readonly version: 1; -``` - -Defined in: [packages/common/src/Type.ts:4826](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4826) - -The version number of the standard. diff --git a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/SuccessResult.mdx b/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/SuccessResult.mdx deleted file mode 100644 index b07d77d1b..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/SuccessResult.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / [StandardSchemaV1](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx) / SuccessResult - -Defined in: [packages/common/src/Type.ts:4841](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4841) - -The result interface if validation succeeds. - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | - -## Properties - - - -### issues? - -```ts -readonly optional issues: undefined; -``` - -Defined in: [packages/common/src/Type.ts:4845](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4845) - -The non-existent issues. - -*** - - - -### value - -```ts -readonly value: Output; -``` - -Defined in: [packages/common/src/Type.ts:4843](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4843) - -The typed output value. diff --git a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Types.mdx b/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Types.mdx deleted file mode 100644 index 64ee3149d..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Types.mdx +++ /dev/null @@ -1,40 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / [StandardSchemaV1](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx) / Types - -Defined in: [packages/common/src/Type.ts:4869](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4869) - -The Standard Schema types interface. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | `unknown` | -| `Output` | `Input` | - -## Properties - - - -### input - -```ts -readonly input: Input; -``` - -Defined in: [packages/common/src/Type.ts:4871](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4871) - -The input type of the schema. - -*** - - - -### output - -```ts -readonly output: Output; -``` - -Defined in: [packages/common/src/Type.ts:4873](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4873) - -The output type of the schema. diff --git a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx b/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx deleted file mode 100644 index 4143b73e0..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / StandardSchemaV1 - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [FailureResult](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/FailureResult.mdx) | The result interface if validation fails. | -| [Issue](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Issue.mdx) | The issue interface of the failure output. | -| [PathSegment](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/PathSegment.mdx) | The path segment interface of the issue. | -| [Props](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Props.mdx) | The Standard Schema properties interface. | -| [SuccessResult](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/SuccessResult.mdx) | The result interface if validation succeeds. | -| [Types](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/interfaces/Types.mdx) | The Standard Schema types interface. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [InferInput](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/InferInput.mdx) | Infers the input type of a Standard Schema. | -| [InferOutput](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/InferOutput.mdx) | Infers the output type of a Standard Schema. | -| [Result](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/Result.mdx) | The result interface of the validate function. | diff --git a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/InferInput.mdx b/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/InferInput.mdx deleted file mode 100644 index eb27e7499..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/InferInput.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / [StandardSchemaV1](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx) / InferInput - -```ts -type InferInput = NonNullable["input"]; -``` - -Defined in: [packages/common/src/Type.ts:4877](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4877) - -Infers the input type of a Standard Schema. - -## Type Parameters - -| Type Parameter | -| ------ | -| `Schema` *extends* [`StandardSchemaV1`](/docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/InferOutput.mdx b/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/InferOutput.mdx deleted file mode 100644 index 9dd62fa1f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/InferOutput.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / [StandardSchemaV1](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx) / InferOutput - -```ts -type InferOutput = NonNullable["output"]; -``` - -Defined in: [packages/common/src/Type.ts:4882](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4882) - -Infers the output type of a Standard Schema. - -## Type Parameters - -| Type Parameter | -| ------ | -| `Schema` *extends* [`StandardSchemaV1`](/docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/Result.mdx b/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/Result.mdx deleted file mode 100644 index adb2555bb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/Result.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / [StandardSchemaV1](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx) / Result - -```ts -type Result = - | SuccessResult - | FailureResult; -``` - -Defined in: [packages/common/src/Type.ts:4838](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4838) - -The result interface of the validate function. - -## Type Parameters - -| Type Parameter | -| ------ | -| `Output` | diff --git a/.generated/evolu-docs/api-reference/common/Type/page.mdx b/.generated/evolu-docs/api-reference/common/Type/page.mdx deleted file mode 100644 index 468bab2ef..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/page.mdx +++ /dev/null @@ -1,365 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Type - -Runtime type validation, parsing, and branded types. - -## Base Types - -| Name | Description | -| ------ | ------ | -| [JsonValue](/docs/api-reference/common/Type/type-aliases/JsonValue.mdx) | JSON-compatible value: string, [FiniteNumber](/docs/api-reference/common/Type/variables/FiniteNumber.mdx), boolean, null, [JsonArray](/docs/api-reference/common/Type/variables/JsonArray.mdx), or [JsonObject](/docs/api-reference/common/Type/variables/JsonObject.mdx). | -| [BigInt](/docs/api-reference/common/Type/variables/BigInt.mdx) | - | -| [Boolean](/docs/api-reference/common/Type/variables/Boolean.mdx) | - | -| [Date](/docs/api-reference/common/Type/variables/Date.mdx) | JavaScript Date. | -| [Function](/docs/api-reference/common/Type/variables/Function.mdx) | - | -| [JsonValue](/docs/api-reference/common/Type/variables/JsonValue.mdx) | JSON-compatible value: string, [FiniteNumber](/docs/api-reference/common/Type/variables/FiniteNumber.mdx), boolean, null, [JsonArray](/docs/api-reference/common/Type/variables/JsonArray.mdx), or [JsonObject](/docs/api-reference/common/Type/variables/JsonObject.mdx). | -| [Null](/docs/api-reference/common/Type/variables/Null.mdx) | - | -| [Number](/docs/api-reference/common/Type/variables/Number.mdx) | - | -| [String](/docs/api-reference/common/Type/variables/String.mdx) | - | -| [Uint8Array](/docs/api-reference/common/Type/variables/Uint8Array.mdx) | - | -| [Undefined](/docs/api-reference/common/Type/variables/Undefined.mdx) | - | -| [Unknown](/docs/api-reference/common/Type/variables/Unknown.mdx) | - | - -## Base Factories - -| Function | Description | -| ------ | ------ | -| [array](/docs/api-reference/common/Type/functions/array.mdx) | Array of a specific [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [base](/docs/api-reference/common/Type/functions/base.mdx) | Base [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [brand](/docs/api-reference/common/Type/functions/brand.mdx) | Branded [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [instanceOf](/docs/api-reference/common/Type/functions/instanceOf.mdx) | `instanceof` [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [literal](/docs/api-reference/common/Type/functions/literal.mdx) | Literal [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [nullishOr](/docs/api-reference/common/Type/functions/nullishOr.mdx) | `union(undefined, null, T)` [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [nullOr](/docs/api-reference/common/Type/functions/nullOr.mdx) | `union(null, T)` [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [object](/docs/api-reference/common/Type/functions/object.mdx) | Object [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [record](/docs/api-reference/common/Type/functions/record.mdx) | Record of a key [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) and value [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [recursive](/docs/api-reference/common/Type/functions/recursive.mdx) | Recursive [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [set](/docs/api-reference/common/Type/functions/set.mdx) | Set of a specific [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [tuple](/docs/api-reference/common/Type/functions/tuple.mdx) | Tuple [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [undefinedOr](/docs/api-reference/common/Type/functions/undefinedOr.mdx) | `union(undefined, T)` [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [union](/docs/api-reference/common/Type/functions/union.mdx) | Union [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | - -## Composite Factories - -| Name | Description | -| ------ | ------ | -| [UnknownNextResult](/docs/api-reference/common/Type/type-aliases/UnknownNextResult.mdx) | A [nextResult](/docs/api-reference/common/Type/functions/nextResult.mdx) type for `NextResult`. | -| [UnknownResult](/docs/api-reference/common/Type/type-aliases/UnknownResult.mdx) | A [result](/docs/api-reference/common/Type/functions/result.mdx) type for `Result`. | -| [UnknownNextResult](/docs/api-reference/common/Type/variables/UnknownNextResult.mdx) | A [nextResult](/docs/api-reference/common/Type/functions/nextResult.mdx) type for `NextResult`. | -| [UnknownResult](/docs/api-reference/common/Type/variables/UnknownResult.mdx) | A [result](/docs/api-reference/common/Type/functions/result.mdx) type for `Result`. | -| [nextResult](/docs/api-reference/common/Type/functions/nextResult.mdx) | Creates a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) for [NextResult](/docs/api-reference/common/Result/type-aliases/NextResult.mdx) with three outcomes. | -| [result](/docs/api-reference/common/Type/functions/result.mdx) | Creates a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) for [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) values. | - -## String - -| Name | Description | -| ------ | ------ | -| [Base64Url](/docs/api-reference/common/Type/type-aliases/Base64Url.mdx) | Base64Url without padding. | -| [CurrencyCode](/docs/api-reference/common/Type/type-aliases/CurrencyCode.mdx) | A three-letter ISO 4217 currency code (e.g., USD, EUR). | -| [DateIso](/docs/api-reference/common/Type/type-aliases/DateIso.mdx) | ISO 8601 date-time string. | -| [Id](/docs/api-reference/common/Type/type-aliases/Id.mdx) | Evolu Id: 16 bytes encoded as a 22‑character Base64Url string. | -| [Int64String](/docs/api-reference/common/Type/type-aliases/Int64String.mdx) | Stringified [Int64](/docs/api-reference/common/Type/variables/Int64.mdx). | -| [Json](/docs/api-reference/common/Type/type-aliases/Json.mdx) | JSON-string [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [Mnemonic](/docs/api-reference/common/Type/type-aliases/Mnemonic.mdx) | The mnemonic, also known as a "seed phrase," is a set of 12 words in a specific order chosen from a predefined list (BIP39). It provides a human-readable way to store a private key securely. The mnemonic is generated safely on the user's device using cryptographically secure random number generation, ensuring it remains private and unique. | -| [NonEmptyString](/docs/api-reference/common/Type/type-aliases/NonEmptyString.mdx) | - | -| [NonEmptyString100](/docs/api-reference/common/Type/type-aliases/NonEmptyString100.mdx) | - | -| [NonEmptyString1000](/docs/api-reference/common/Type/type-aliases/NonEmptyString1000.mdx) | - | -| [NonEmptyTrimmedString](/docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString.mdx) | - | -| [NonEmptyTrimmedString100](/docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString100.mdx) | - | -| [NonEmptyTrimmedString1000](/docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString1000.mdx) | - | -| [SimpleName](/docs/api-reference/common/Type/type-aliases/SimpleName.mdx) | Simple alphanumeric string for naming in file systems, URLs, and identifiers. | -| [SimplePassword](/docs/api-reference/common/Type/type-aliases/SimplePassword.mdx) | Trimmed string between 8 and 64 characters, branded as `SimplePassword`. | -| [String100](/docs/api-reference/common/Type/type-aliases/String100.mdx) | - | -| [String1000](/docs/api-reference/common/Type/type-aliases/String1000.mdx) | - | -| [TrimmedString](/docs/api-reference/common/Type/type-aliases/TrimmedString.mdx) | Trimmed string | -| [TrimmedString100](/docs/api-reference/common/Type/type-aliases/TrimmedString100.mdx) | - | -| [TrimmedString1000](/docs/api-reference/common/Type/type-aliases/TrimmedString1000.mdx) | - | -| [UrlSafeString](/docs/api-reference/common/Type/type-aliases/UrlSafeString.mdx) | URL-safe string. | -| [Base64Url](/docs/api-reference/common/Type/variables/Base64Url.mdx) | Base64Url without padding. | -| [CurrencyCode](/docs/api-reference/common/Type/variables/CurrencyCode.mdx) | A three-letter ISO 4217 currency code (e.g., USD, EUR). | -| [DateIso](/docs/api-reference/common/Type/variables/DateIso.mdx) | ISO 8601 date-time string. | -| [Id](/docs/api-reference/common/Type/variables/Id.mdx) | Evolu Id: 16 bytes encoded as a 22‑character Base64Url string. | -| [Int64String](/docs/api-reference/common/Type/variables/Int64String.mdx) | Stringified [Int64](/docs/api-reference/common/Type/variables/Int64.mdx). | -| [Json](/docs/api-reference/common/Type/variables/Json.mdx) | JSON-string [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [length](/docs/api-reference/common/Type/variables/length.mdx) | Exact length. | -| [maxLength](/docs/api-reference/common/Type/variables/maxLength.mdx) | Maximum length. | -| [minLength](/docs/api-reference/common/Type/variables/minLength.mdx) | Minimum length. | -| [Mnemonic](/docs/api-reference/common/Type/variables/Mnemonic.mdx) | The mnemonic, also known as a "seed phrase," is a set of 12 words in a specific order chosen from a predefined list (BIP39). It provides a human-readable way to store a private key securely. The mnemonic is generated safely on the user's device using cryptographically secure random number generation, ensuring it remains private and unique. | -| [NonEmptyString](/docs/api-reference/common/Type/variables/NonEmptyString.mdx) | - | -| [NonEmptyString100](/docs/api-reference/common/Type/variables/NonEmptyString100.mdx) | - | -| [NonEmptyString1000](/docs/api-reference/common/Type/variables/NonEmptyString1000.mdx) | - | -| [NonEmptyTrimmedString](/docs/api-reference/common/Type/variables/NonEmptyTrimmedString.mdx) | - | -| [NonEmptyTrimmedString100](/docs/api-reference/common/Type/variables/NonEmptyTrimmedString100.mdx) | - | -| [NonEmptyTrimmedString1000](/docs/api-reference/common/Type/variables/NonEmptyTrimmedString1000.mdx) | - | -| [regex](/docs/api-reference/common/Type/variables/regex.mdx) | String matching a regular expression. | -| [SimpleName](/docs/api-reference/common/Type/variables/SimpleName.mdx) | Simple alphanumeric string for naming in file systems, URLs, and identifiers. | -| [SimplePassword](/docs/api-reference/common/Type/variables/SimplePassword.mdx) | Trimmed string between 8 and 64 characters, branded as `SimplePassword`. | -| [String](/docs/api-reference/common/Type/variables/String.mdx) | - | -| [String100](/docs/api-reference/common/Type/variables/String100.mdx) | - | -| [String1000](/docs/api-reference/common/Type/variables/String1000.mdx) | - | -| [trimmed](/docs/api-reference/common/Type/variables/trimmed.mdx) | Trimmed string. | -| [TrimmedString](/docs/api-reference/common/Type/variables/TrimmedString.mdx) | Trimmed string | -| [TrimmedString100](/docs/api-reference/common/Type/variables/TrimmedString100.mdx) | - | -| [TrimmedString1000](/docs/api-reference/common/Type/variables/TrimmedString1000.mdx) | - | -| [UrlSafeString](/docs/api-reference/common/Type/variables/UrlSafeString.mdx) | URL-safe string. | -| [createIdFromString](/docs/api-reference/common/Type/functions/createIdFromString.mdx) | Creates an [Id](/docs/api-reference/common/Type/variables/Id.mdx) from a string using SHA-256. | -| [id](/docs/api-reference/common/Type/functions/id.mdx) | Creates a branded [Id](/docs/api-reference/common/Type/variables/Id.mdx) Type for a table's primary key. | - -## Number - -| Name | Description | -| ------ | ------ | -| [FiniteNumber](/docs/api-reference/common/Type/type-aliases/FiniteNumber.mdx) | Finite number. | -| [Int](/docs/api-reference/common/Type/type-aliases/Int.mdx) | Integer within the safe range of JavaScript numbers. | -| [Int64](/docs/api-reference/common/Type/type-aliases/Int64.mdx) | 64-bit signed integer. | -| [NegativeInt](/docs/api-reference/common/Type/type-aliases/NegativeInt.mdx) | Negative integer (< 0). | -| [NegativeNumber](/docs/api-reference/common/Type/type-aliases/NegativeNumber.mdx) | Negative number (< 0). | -| [NonNaNNumber](/docs/api-reference/common/Type/type-aliases/NonNaNNumber.mdx) | - | -| [NonNegativeInt](/docs/api-reference/common/Type/type-aliases/NonNegativeInt.mdx) | Non-negative integer (≥ 0). | -| [NonNegativeNumber](/docs/api-reference/common/Type/type-aliases/NonNegativeNumber.mdx) | Non-negative number (≥ 0). | -| [NonPositiveInt](/docs/api-reference/common/Type/type-aliases/NonPositiveInt.mdx) | Non-positive integer (≤ 0). | -| [NonPositiveNumber](/docs/api-reference/common/Type/type-aliases/NonPositiveNumber.mdx) | Non-positive number (≤ 0). | -| [PositiveInt](/docs/api-reference/common/Type/type-aliases/PositiveInt.mdx) | Positive integer (> 0). | -| [PositiveNumber](/docs/api-reference/common/Type/type-aliases/PositiveNumber.mdx) | Positive number (> 0). | -| [between](/docs/api-reference/common/Type/variables/between.mdx) | Number within a range, inclusive. | -| [finite](/docs/api-reference/common/Type/variables/finite.mdx) | Finite number. | -| [FiniteNumber](/docs/api-reference/common/Type/variables/FiniteNumber.mdx) | Finite number. | -| [greaterThan](/docs/api-reference/common/Type/variables/greaterThan.mdx) | Number greater than a specified value. | -| [greaterThanOrEqualTo](/docs/api-reference/common/Type/variables/greaterThanOrEqualTo.mdx) | Number ≥ a specified value. | -| [int](/docs/api-reference/common/Type/variables/int.mdx) | Integer within the safe range of JavaScript numbers. | -| [Int](/docs/api-reference/common/Type/variables/Int-1.mdx) | Integer within the safe range of JavaScript numbers. | -| [Int64](/docs/api-reference/common/Type/variables/Int64.mdx) | 64-bit signed integer. | -| [lessThan](/docs/api-reference/common/Type/variables/lessThan.mdx) | Number less than a specified value. | -| [lessThanOrEqualTo](/docs/api-reference/common/Type/variables/lessThanOrEqualTo.mdx) | Number ≤ a specified value. | -| [multipleOf](/docs/api-reference/common/Type/variables/multipleOf.mdx) | Number that is a multiple of a divisor. | -| [negative](/docs/api-reference/common/Type/variables/negative.mdx) | Negative number (< 0). | -| [NegativeInt](/docs/api-reference/common/Type/variables/NegativeInt.mdx) | Negative integer (< 0). | -| [NegativeNumber](/docs/api-reference/common/Type/variables/NegativeNumber.mdx) | Negative number (< 0). | -| [nonNaN](/docs/api-reference/common/Type/variables/nonNaN.mdx) | Number that is not NaN. | -| [NonNaNNumber](/docs/api-reference/common/Type/variables/NonNaNNumber.mdx) | - | -| [nonNegative](/docs/api-reference/common/Type/variables/nonNegative.mdx) | Non-negative number (≥ 0). | -| [NonNegativeInt](/docs/api-reference/common/Type/variables/NonNegativeInt.mdx) | Non-negative integer (≥ 0). | -| [NonNegativeNumber](/docs/api-reference/common/Type/variables/NonNegativeNumber.mdx) | Non-negative number (≥ 0). | -| [nonPositive](/docs/api-reference/common/Type/variables/nonPositive.mdx) | Non-positive number (≤ 0). | -| [NonPositiveInt](/docs/api-reference/common/Type/variables/NonPositiveInt.mdx) | Non-positive integer (≤ 0). | -| [NonPositiveNumber](/docs/api-reference/common/Type/variables/NonPositiveNumber.mdx) | Non-positive number (≤ 0). | -| [positive](/docs/api-reference/common/Type/variables/positive.mdx) | Positive number (> 0). | -| [PositiveInt](/docs/api-reference/common/Type/variables/PositiveInt.mdx) | Positive integer (> 0). | -| [PositiveNumber](/docs/api-reference/common/Type/variables/PositiveNumber.mdx) | Positive number (> 0). | - -## Array - -| Name | Description | -| ------ | ------ | -| [JsonArray](/docs/api-reference/common/Type/type-aliases/JsonArray.mdx) | JSON-compatible array of [JsonValue](/docs/api-reference/common/Type/variables/JsonValue.mdx) elements. | -| [JsonArray](/docs/api-reference/common/Type/variables/JsonArray.mdx) | JSON-compatible array of [JsonValue](/docs/api-reference/common/Type/variables/JsonValue.mdx) elements. | -| [length](/docs/api-reference/common/Type/variables/length.mdx) | Exact length. | -| [maxLength](/docs/api-reference/common/Type/variables/maxLength.mdx) | Maximum length. | -| [minLength](/docs/api-reference/common/Type/variables/minLength.mdx) | Minimum length. | -| [array](/docs/api-reference/common/Type/functions/array.mdx) | Array of a specific [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | - -## Object - -| Name | Description | -| ------ | ------ | -| [JsonObject](/docs/api-reference/common/Type/variables/JsonObject.mdx) | JSON-compatible object with string keys and [JsonValue](/docs/api-reference/common/Type/variables/JsonValue.mdx) values. | -| [nullableToOptional](/docs/api-reference/common/Type/functions/nullableToOptional.mdx) | Converts each “nullable” property (a union that includes [Null](/docs/api-reference/common/Type/variables/Null.mdx)) into an [optional](/docs/api-reference/common/Type/functions/optional.mdx) property. This means consumers can omit the property entirely, or set it to `null`, or set it to the non-null member of the union. | -| [object](/docs/api-reference/common/Type/functions/object.mdx) | Object [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [omit](/docs/api-reference/common/Type/functions/omit.mdx) | Create a new `object` [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) by omitting some keys. | -| [partial](/docs/api-reference/common/Type/functions/partial.mdx) | Creates a partial object type where all properties are optional. | -| [record](/docs/api-reference/common/Type/functions/record.mdx) | Record of a key [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) and value [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | - -## Utilities - -| Name | Description | -| ------ | ------ | -| [AnyType](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | A [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with all type parameters set to `any`. | -| [BrandFactory](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx) | Helper type for Type Factory that creates a branded Type. | -| [InferError](/docs/api-reference/common/Type/type-aliases/InferError.mdx) | Extracts the specific error type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [InferErrors](/docs/api-reference/common/Type/type-aliases/InferErrors.mdx) | Extracts all error types from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [InferInput](/docs/api-reference/common/Type/type-aliases/InferInput.mdx) | Extracts the input type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [InferName](/docs/api-reference/common/Type/type-aliases/InferName.mdx) | Extracts the name from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [InferParent](/docs/api-reference/common/Type/type-aliases/InferParent.mdx) | Extracts the parent type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [InferParentError](/docs/api-reference/common/Type/type-aliases/InferParentError.mdx) | Extracts the parent error type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [InferType](/docs/api-reference/common/Type/type-aliases/InferType.mdx) | Extracts the type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [MergeObjectTypeErrors](/docs/api-reference/common/Type/type-aliases/MergeObjectTypeErrors.mdx) | Merge Error and ParentError into one ObjectError so tooltips and error messages are easier to read. | -| [TypeErrors](/docs/api-reference/common/Type/type-aliases/TypeErrors.mdx) | Union of all `TypeError`s defined in the `Type.ts` file, including base type errors (e.g., `StringError`, `NumberError`), composite type errors (`ArrayError`, `ObjectError`), and optionally, user-defined extra errors. | -| [TypeName](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | Unique identifier for a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [createBaseTypeErrorFormatter](/docs/api-reference/common/Type/functions/createBaseTypeErrorFormatter.mdx) | Creates a formatter function for a base [TypeError](/docs/api-reference/common/Type/interfaces/TypeError.mdx). | -| [createFormatTypeError](/docs/api-reference/common/Type/functions/createFormatTypeError.mdx) | Formats Evolu Type errors into user-friendly messages. | -| [createTypeErrorFormatter](/docs/api-reference/common/Type/functions/createTypeErrorFormatter.mdx) | Creates a formatter function for [TypeError](/docs/api-reference/common/Type/interfaces/TypeError.mdx). | -| [isType](/docs/api-reference/common/Type/functions/isType.mdx) | Checks if the given value is an [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [typeErrorToStandardSchemaIssues](/docs/api-reference/common/Type/functions/typeErrorToStandardSchemaIssues.mdx) | Converts an Evolu [TypeError](/docs/api-reference/common/Type/interfaces/TypeError.mdx) to Standard Schema V1 issues format. | - -## Functions - -| Function | Description | -| ------ | ------ | -| [createId](/docs/api-reference/common/Type/functions/createId.mdx) | Creates a random [Id](/docs/api-reference/common/Type/variables/Id.mdx). This is the recommended default. | -| [createIdAsUuidv7](/docs/api-reference/common/Type/functions/createIdAsUuidv7.mdx) | Creates an [Id](/docs/api-reference/common/Type/variables/Id.mdx) embedding timestamp bits (UUID v7 layout) before Base64Url encoding. | -| [dateIsoToDate](/docs/api-reference/common/Type/functions/dateIsoToDate.mdx) | - | -| [dateToDateIso](/docs/api-reference/common/Type/functions/dateToDateIso.mdx) | - | -| [formatArrayError](/docs/api-reference/common/Type/functions/formatArrayError.mdx) | - | -| [formatObjectError](/docs/api-reference/common/Type/functions/formatObjectError.mdx) | - | -| [formatObjectWithRecordError](/docs/api-reference/common/Type/functions/formatObjectWithRecordError.mdx) | - | -| [formatRecordError](/docs/api-reference/common/Type/functions/formatRecordError.mdx) | - | -| [formatSetError](/docs/api-reference/common/Type/functions/formatSetError.mdx) | - | -| [formatSimplePasswordError](/docs/api-reference/common/Type/functions/formatSimplePasswordError.mdx) | - | -| [formatTupleError](/docs/api-reference/common/Type/functions/formatTupleError.mdx) | - | -| [formatUnionError](/docs/api-reference/common/Type/functions/formatUnionError.mdx) | - | -| [idBytesToId](/docs/api-reference/common/Type/functions/idBytesToId.mdx) | - | -| [idToIdBytes](/docs/api-reference/common/Type/functions/idToIdBytes.mdx) | - | -| [isOptionalType](/docs/api-reference/common/Type/functions/isOptionalType.mdx) | Determines if a given type is an [OptionalType](/docs/api-reference/common/Type/interfaces/OptionalType.mdx). | -| [isUnionType](/docs/api-reference/common/Type/functions/isUnionType.mdx) | - | -| [json](/docs/api-reference/common/Type/functions/json.mdx) | Creates a branded JSON string [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) and type-safe conversion functions for a given Type. | -| [jsonToJsonValue](/docs/api-reference/common/Type/functions/jsonToJsonValue.mdx) | - | -| [jsonValueToJson](/docs/api-reference/common/Type/functions/jsonValueToJson.mdx) | - | -| [optional](/docs/api-reference/common/Type/functions/optional.mdx) | Optional [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [parseJson](/docs/api-reference/common/Type/functions/parseJson.mdx) | - | -| [trim](/docs/api-reference/common/Type/functions/trim.mdx) | - | -| [typed](/docs/api-reference/common/Type/functions/typed.mdx) | Creates a runtime-validated typed object with a `type` discriminant. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [ArrayError](/docs/api-reference/common/Type/interfaces/ArrayError.mdx) | - | -| [ArrayType](/docs/api-reference/common/Type/interfaces/ArrayType.mdx) | ArrayType extends Type with an additional `element` property for reflection. | -| [Base64UrlError](/docs/api-reference/common/Type/interfaces/Base64UrlError.mdx) | - | -| [BetweenError](/docs/api-reference/common/Type/interfaces/BetweenError.mdx) | - | -| [BigIntError](/docs/api-reference/common/Type/interfaces/BigIntError.mdx) | - | -| [BooleanError](/docs/api-reference/common/Type/interfaces/BooleanError.mdx) | - | -| [BrandType](/docs/api-reference/common/Type/interfaces/BrandType.mdx) | Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or a composable typed error that tells us exactly why the validation failed. | -| [BrandWithoutRefineError](/docs/api-reference/common/Type/interfaces/BrandWithoutRefineError.mdx) | - | -| [CurrencyCodeError](/docs/api-reference/common/Type/interfaces/CurrencyCodeError.mdx) | - | -| [DateIsoError](/docs/api-reference/common/Type/interfaces/DateIsoError.mdx) | - | -| [EvoluTypeError](/docs/api-reference/common/Type/interfaces/EvoluTypeError.mdx) | - | -| [FiniteError](/docs/api-reference/common/Type/interfaces/FiniteError.mdx) | - | -| [FunctionError](/docs/api-reference/common/Type/interfaces/FunctionError.mdx) | - | -| [GreaterThanError](/docs/api-reference/common/Type/interfaces/GreaterThanError.mdx) | - | -| [GreaterThanOrEqualToError](/docs/api-reference/common/Type/interfaces/GreaterThanOrEqualToError.mdx) | - | -| [IdError](/docs/api-reference/common/Type/interfaces/IdError.mdx) | - | -| [InstanceOfError](/docs/api-reference/common/Type/interfaces/InstanceOfError.mdx) | - | -| [InstanceOfType](/docs/api-reference/common/Type/interfaces/InstanceOfType.mdx) | Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or a composable typed error that tells us exactly why the validation failed. | -| [Int64Error](/docs/api-reference/common/Type/interfaces/Int64Error.mdx) | - | -| [Int64StringError](/docs/api-reference/common/Type/interfaces/Int64StringError.mdx) | - | -| [IntError](/docs/api-reference/common/Type/interfaces/IntError.mdx) | - | -| [JsonError](/docs/api-reference/common/Type/interfaces/JsonError.mdx) | - | -| [JsonObject](/docs/api-reference/common/Type/interfaces/JsonObject.mdx) | - | -| [JsonObjectInput](/docs/api-reference/common/Type/interfaces/JsonObjectInput.mdx) | - | -| [LengthError](/docs/api-reference/common/Type/interfaces/LengthError.mdx) | - | -| [LessThanError](/docs/api-reference/common/Type/interfaces/LessThanError.mdx) | - | -| [LessThanOrEqualToError](/docs/api-reference/common/Type/interfaces/LessThanOrEqualToError.mdx) | - | -| [LiteralError](/docs/api-reference/common/Type/interfaces/LiteralError.mdx) | - | -| [LiteralType](/docs/api-reference/common/Type/interfaces/LiteralType.mdx) | Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or a composable typed error that tells us exactly why the validation failed. | -| [MaxLengthError](/docs/api-reference/common/Type/interfaces/MaxLengthError.mdx) | - | -| [MinLengthError](/docs/api-reference/common/Type/interfaces/MinLengthError.mdx) | - | -| [MnemonicError](/docs/api-reference/common/Type/interfaces/MnemonicError.mdx) | - | -| [MultipleOfError](/docs/api-reference/common/Type/interfaces/MultipleOfError.mdx) | - | -| [NegativeError](/docs/api-reference/common/Type/interfaces/NegativeError.mdx) | - | -| [NonNaNError](/docs/api-reference/common/Type/interfaces/NonNaNError.mdx) | - | -| [NonNegativeError](/docs/api-reference/common/Type/interfaces/NonNegativeError.mdx) | - | -| [NonPositiveError](/docs/api-reference/common/Type/interfaces/NonPositiveError.mdx) | - | -| [NullError](/docs/api-reference/common/Type/interfaces/NullError.mdx) | - | -| [NumberError](/docs/api-reference/common/Type/interfaces/NumberError.mdx) | - | -| [ObjectError](/docs/api-reference/common/Type/interfaces/ObjectError.mdx) | - | -| [ObjectType](/docs/api-reference/common/Type/interfaces/ObjectType.mdx) | ObjectType extends [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with an additional `props` property for reflection. | -| [ObjectWithRecordError](/docs/api-reference/common/Type/interfaces/ObjectWithRecordError.mdx) | - | -| [ObjectWithRecordType](/docs/api-reference/common/Type/interfaces/ObjectWithRecordType.mdx) | ObjectWithRecordType extends [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with additional `props` and `record` properties for reflection. | -| [OptionalType](/docs/api-reference/common/Type/interfaces/OptionalType.mdx) | Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or a composable typed error that tells us exactly why the validation failed. | -| [PositiveError](/docs/api-reference/common/Type/interfaces/PositiveError.mdx) | - | -| [RecordError](/docs/api-reference/common/Type/interfaces/RecordError.mdx) | - | -| [RecordType](/docs/api-reference/common/Type/interfaces/RecordType.mdx) | RecordType extends [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with additional `key` and `value` properties for reflection. | -| [RecursiveType](/docs/api-reference/common/Type/interfaces/RecursiveType.mdx) | Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or a composable typed error that tells us exactly why the validation failed. | -| [RegexError](/docs/api-reference/common/Type/interfaces/RegexError.mdx) | - | -| [SetError](/docs/api-reference/common/Type/interfaces/SetError.mdx) | - | -| [SetType](/docs/api-reference/common/Type/interfaces/SetType.mdx) | SetType extends Type with an additional `element` property for reflection. | -| [SimpleNameError](/docs/api-reference/common/Type/interfaces/SimpleNameError.mdx) | - | -| [StandardSchemaV1](/docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx) | The Standard Schema interface. | -| [StringError](/docs/api-reference/common/Type/interfaces/StringError.mdx) | - | -| [TableId](/docs/api-reference/common/Type/interfaces/TableId.mdx) | Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or a composable typed error that tells us exactly why the validation failed. | -| [TableIdError](/docs/api-reference/common/Type/interfaces/TableIdError.mdx) | - | -| [TrimmedError](/docs/api-reference/common/Type/interfaces/TrimmedError.mdx) | - | -| [TupleError](/docs/api-reference/common/Type/interfaces/TupleError.mdx) | - | -| [TupleType](/docs/api-reference/common/Type/interfaces/TupleType.mdx) | TupleType extends [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with an additional `elements` property for reflection. | -| [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) | Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) is like a type guard that returns typed errors (via [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx)) instead of throwing. We either receive a safely typed value or a composable typed error that tells us exactly why the validation failed. | -| [Typed](/docs/api-reference/common/Type/interfaces/Typed.mdx) | Base interface for objects with a discriminant `type` property. | -| [TypeError](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - | -| [TypeErrorWithReason](/docs/api-reference/common/Type/interfaces/TypeErrorWithReason.mdx) | - | -| [Uint8ArrayError](/docs/api-reference/common/Type/interfaces/Uint8ArrayError.mdx) | - | -| [UndefinedError](/docs/api-reference/common/Type/interfaces/UndefinedError.mdx) | - | -| [UnionError](/docs/api-reference/common/Type/interfaces/UnionError.mdx) | - | -| [UnionType](/docs/api-reference/common/Type/interfaces/UnionType.mdx) | UnionType extends [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with an additional `members` property for reflection. | - -## Namespaces - -| Namespace | Description | -| ------ | ------ | -| [StandardSchemaV1](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/page.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [IdBytes](/docs/api-reference/common/Type/type-aliases/IdBytes.mdx) | Binary representation of an [Id](/docs/api-reference/common/Type/variables/Id.mdx). | -| [IsUnionWithNull](/docs/api-reference/common/Type/type-aliases/IsUnionWithNull.mdx) | - | -| [JsonArrayInput](/docs/api-reference/common/Type/type-aliases/JsonArrayInput.mdx) | - | -| [JsonValueError](/docs/api-reference/common/Type/type-aliases/JsonValueError.mdx) | - | -| [JsonValueInput](/docs/api-reference/common/Type/type-aliases/JsonValueInput.mdx) | - | -| [NullableToOptionalProps](/docs/api-reference/common/Type/type-aliases/NullableToOptionalProps.mdx) | - | -| [NullTypeInMembers](/docs/api-reference/common/Type/type-aliases/NullTypeInMembers.mdx) | - | -| [SimplePasswordError](/docs/api-reference/common/Type/type-aliases/SimplePasswordError.mdx) | - | -| [TransformNullable](/docs/api-reference/common/Type/type-aliases/TransformNullable.mdx) | - | -| [TypedType](/docs/api-reference/common/Type/type-aliases/TypedType.mdx) | Return type of [typed](/docs/api-reference/common/Type/functions/typed.mdx). | -| [TypeErrorFormatter](/docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx) | - | -| [UrlSafeStringError](/docs/api-reference/common/Type/type-aliases/UrlSafeStringError.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [base64UrlToUint8Array](/docs/api-reference/common/Type/variables/base64UrlToUint8Array.mdx) | Decodes a [Base64Url](/docs/api-reference/common/Type/variables/Base64Url.mdx) string to a Uint8Array. | -| [EvoluType](/docs/api-reference/common/Type/variables/EvoluType.mdx) | Validates that an unknown value is an Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) (i.e., satisfies `AnyType`). | -| [formatBase64UrlError](/docs/api-reference/common/Type/variables/formatBase64UrlError.mdx) | - | -| [formatBetweenError](/docs/api-reference/common/Type/variables/formatBetweenError.mdx) | - | -| [formatBigIntError](/docs/api-reference/common/Type/variables/formatBigIntError.mdx) | - | -| [formatBooleanError](/docs/api-reference/common/Type/variables/formatBooleanError.mdx) | - | -| [formatCurrencyCodeError](/docs/api-reference/common/Type/variables/formatCurrencyCodeError.mdx) | - | -| [formatDateIsoError](/docs/api-reference/common/Type/variables/formatDateIsoError.mdx) | - | -| [formatFiniteError](/docs/api-reference/common/Type/variables/formatFiniteError.mdx) | - | -| [formatFunctionError](/docs/api-reference/common/Type/variables/formatFunctionError.mdx) | - | -| [formatGreaterThanError](/docs/api-reference/common/Type/variables/formatGreaterThanError.mdx) | - | -| [formatGreaterThanOrEqualToError](/docs/api-reference/common/Type/variables/formatGreaterThanOrEqualToError.mdx) | - | -| [formatIdError](/docs/api-reference/common/Type/variables/formatIdError.mdx) | - | -| [formatInstanceOfError](/docs/api-reference/common/Type/variables/formatInstanceOfError.mdx) | - | -| [formatInt64Error](/docs/api-reference/common/Type/variables/formatInt64Error.mdx) | - | -| [formatInt64StringError](/docs/api-reference/common/Type/variables/formatInt64StringError.mdx) | - | -| [formatIntError](/docs/api-reference/common/Type/variables/formatIntError.mdx) | - | -| [formatIsTypeError](/docs/api-reference/common/Type/variables/formatIsTypeError.mdx) | - | -| [formatJsonError](/docs/api-reference/common/Type/variables/formatJsonError.mdx) | - | -| [formatLengthError](/docs/api-reference/common/Type/variables/formatLengthError.mdx) | - | -| [formatLessThanError](/docs/api-reference/common/Type/variables/formatLessThanError.mdx) | - | -| [formatLessThanOrEqualToError](/docs/api-reference/common/Type/variables/formatLessThanOrEqualToError.mdx) | - | -| [formatLiteralError](/docs/api-reference/common/Type/variables/formatLiteralError.mdx) | - | -| [formatMaxLengthError](/docs/api-reference/common/Type/variables/formatMaxLengthError.mdx) | - | -| [formatMinLengthError](/docs/api-reference/common/Type/variables/formatMinLengthError.mdx) | - | -| [formatMnemonicError](/docs/api-reference/common/Type/variables/formatMnemonicError.mdx) | - | -| [formatMultipleOfError](/docs/api-reference/common/Type/variables/formatMultipleOfError.mdx) | - | -| [formatNegativeError](/docs/api-reference/common/Type/variables/formatNegativeError.mdx) | - | -| [formatNonNaNError](/docs/api-reference/common/Type/variables/formatNonNaNError.mdx) | - | -| [formatNonNegativeError](/docs/api-reference/common/Type/variables/formatNonNegativeError.mdx) | - | -| [formatNonPositiveError](/docs/api-reference/common/Type/variables/formatNonPositiveError.mdx) | - | -| [formatNullError](/docs/api-reference/common/Type/variables/formatNullError.mdx) | - | -| [formatNumberError](/docs/api-reference/common/Type/variables/formatNumberError.mdx) | - | -| [formatPositiveError](/docs/api-reference/common/Type/variables/formatPositiveError.mdx) | - | -| [formatRegexError](/docs/api-reference/common/Type/variables/formatRegexError.mdx) | - | -| [formatStringError](/docs/api-reference/common/Type/variables/formatStringError.mdx) | - | -| [formatTableIdError](/docs/api-reference/common/Type/variables/formatTableIdError.mdx) | - | -| [formatTrimmedError](/docs/api-reference/common/Type/variables/formatTrimmedError.mdx) | - | -| [formatUint8ArrayError](/docs/api-reference/common/Type/variables/formatUint8ArrayError.mdx) | - | -| [formatUndefinedError](/docs/api-reference/common/Type/variables/formatUndefinedError.mdx) | - | -| [IdBytes](/docs/api-reference/common/Type/variables/IdBytes.mdx) | Binary representation of an [Id](/docs/api-reference/common/Type/variables/Id.mdx). | -| [idBytesTypeValueLength](/docs/api-reference/common/Type/variables/idBytesTypeValueLength.mdx) | - | -| [maxPositiveInt](/docs/api-reference/common/Type/variables/maxPositiveInt.mdx) | Maximum [PositiveInt](/docs/api-reference/common/Type/variables/PositiveInt.mdx) value (MAX_SAFE_INTEGER). | -| [minPositiveInt](/docs/api-reference/common/Type/variables/minPositiveInt.mdx) | Minimum [PositiveInt](/docs/api-reference/common/Type/variables/PositiveInt.mdx) value (1). | -| [testName](/docs/api-reference/common/Type/variables/testName.mdx) | - | -| [uint8ArrayToBase64Url](/docs/api-reference/common/Type/variables/uint8ArrayToBase64Url.mdx) | Encodes a Uint8Array to a [Base64Url](/docs/api-reference/common/Type/variables/Base64Url.mdx) string. | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/AnyType.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/AnyType.mdx deleted file mode 100644 index 1d245c8bc..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/AnyType.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / AnyType - -```ts -type AnyType = Type; -``` - -Defined in: [packages/common/src/Type.ts:501](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L501) - -A [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) with all type parameters set to `any`. diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Base64Url.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/Base64Url.mdx deleted file mode 100644 index 65febf8e1..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Base64Url.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Base64Url - -```ts -type Base64Url = string & Brand<"Base64Url">; -``` - -Defined in: [packages/common/src/Type.ts:1556](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1556) - -Base64Url without padding. - -Encode with [uint8ArrayToBase64Url](/docs/api-reference/common/Type/variables/uint8ArrayToBase64Url.mdx), decode with -[base64UrlToUint8Array](/docs/api-reference/common/Type/variables/base64UrlToUint8Array.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/BrandFactory.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/BrandFactory.mdx deleted file mode 100644 index ad45e7b94..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/BrandFactory.mdx +++ /dev/null @@ -1,62 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / BrandFactory - -```ts -type BrandFactory = (parent: Type) => BrandType, Name, RefineError, PError | PParentError>; -``` - -Defined in: [packages/common/src/Type.ts:1236](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1236) - -Helper type for Type Factory that creates a branded Type. - -### Example - -```ts -const trimmed: BrandFactory<"Trimmed", string, TrimmedError> = ( - parent, -) => - brand("Trimmed", parent, (value) => - value.trim().length === value.length - ? ok(value) - : err({ type: "Trimmed", value }), - ); -``` - -### Numeric literal inference - -When using factories with numeric parameters (like `lessThan`, `maxLength`, -`between`), use numeric literals instead of expressions. TypeScript widens -expressions to `number`, losing the literal type in the brand name: - -```ts -lessThan(100)(Number); // Brand<"LessThan100"> ✓ -lessThan(100 - 1)(Number); // Brand<"LessThan" + number> ✗ -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Name` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | -| `Input` | -| `RefineError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `PName` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | - | -| `P` *extends* `Input` | - | -| `PInput` | - | -| `PParent` | - | -| `PError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | `never` | -| `PParentError` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `parent` | [`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`PName`, `P`, `PInput`, `PError`, `PParent`, `PParentError`\> | - -## Returns - -[`BrandType`](/docs/api-reference/common/Type/interfaces/BrandType.mdx)\<[`Type`](/docs/api-reference/common/Type/interfaces/Type.mdx)\<`PName`, `P`, `PInput`, `PError`, `PParent`, `PParentError`\>, `Name`, `RefineError`, `PError` \| `PParentError`\> diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/CurrencyCode.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/CurrencyCode.mdx deleted file mode 100644 index a38a44740..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/CurrencyCode.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / CurrencyCode - -```ts -type CurrencyCode = string & Brand<"CurrencyCode">; -``` - -Defined in: [packages/common/src/Type.ts:1137](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1137) - -A three-letter ISO 4217 currency code (e.g., USD, EUR). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/DateIso.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/DateIso.mdx deleted file mode 100644 index d5d635dd1..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/DateIso.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / DateIso - -```ts -type DateIso = string & Brand<"DateIso">; -``` - -Defined in: [packages/common/src/Type.ts:1176](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1176) - -ISO 8601 date-time string. - -This [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) represents a date-time string that follows the ISO 8601 -format and is compatible with SQLite, which lacks a native date type and -relies on ISO 8601 strings for sorting. Enforcing a 24-character format -ensures correct lexicographic ordering. - -It must be a valid JavaScript Date string that can be parsed. - -Valid range: `"0000-01-01T00:00:00.000Z"` to `"9999-12-31T23:59:59.999Z"`. - -### Example - -```ts -const result = DateIso.from("2023-01-01T12:00:00.000Z"); // ok -const error = DateIso.from("10000-01-01T00:00:00.000Z"); // err -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/FiniteNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/FiniteNumber.mdx deleted file mode 100644 index c2ae20b51..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/FiniteNumber.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / FiniteNumber - -```ts -type FiniteNumber = number & Brand<"Finite">; -``` - -Defined in: [packages/common/src/Type.ts:2291](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2291) - -Finite number. - -This Type ensures that a number is finite. - -**Why is this important?** - -`JSON.stringify` serializes JavaScript numbers into `null` if they are not -finite (e.g., `Infinity`, `-Infinity`, or `NaN`). Using `FiniteNumber` helps -prevent these unexpected behaviors when working with JSON serialization. diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Id.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/Id.mdx deleted file mode 100644 index 21dcd3a76..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Id.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Id - -```ts -type Id = string & Brand<"Id">; -``` - -Defined in: [packages/common/src/Type.ts:1729](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1729) - -Evolu Id: 16 bytes encoded as a 22‑character Base64Url string. - -There are three ways to create an Evolu Id: - -- [createId](/docs/api-reference/common/Type/functions/createId.mdx) – default cryptographically secure random bytes - (privacy‑preserving) -- [createIdFromString](/docs/api-reference/common/Type/functions/createIdFromString.mdx) – deterministic: first 16 bytes of SHA‑256 of a - string -- [createIdAsUuidv7](/docs/api-reference/common/Type/functions/createIdAsUuidv7.mdx) – optional: embeds timestamp bits (UUID v7 layout) - -Privacy: the default random Id does not leak creation time and is safe to -share or log. The UUID v7 variant leaks creation time anywhere the Id is -copied (logs, URLs, exports); only use it when you explicitly want insertion -locality for very large write‑heavy tables and accept timestamp exposure. - -## Future - -A possible hybrid masked‑time approach (`timestamp ^ H(cluster_id, timestamp - -> > N)`) could provide locality without exposing raw creation time. See -> > https://brooker.co.za/blog/2025/10/22/uuidv7.html diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/IdBytes.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/IdBytes.mdx deleted file mode 100644 index 6bb16794c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/IdBytes.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / IdBytes - -```ts -type IdBytes = Uint8Array & Brand<"Length16"> & Brand<"IdBytes">; -``` - -Defined in: [packages/common/src/Type.ts:1900](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1900) - -Binary representation of an [Id](/docs/api-reference/common/Type/variables/Id.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferError.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferError.mdx deleted file mode 100644 index 89aadcb4c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferError.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / InferError - -```ts -type InferError = A extends Type ? Error : never; -``` - -Defined in: [packages/common/src/Type.ts:545](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L545) - -Extracts the specific error type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferErrors.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferErrors.mdx deleted file mode 100644 index f59ce66e8..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferErrors.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / InferErrors - -```ts -type InferErrors = T extends Type ? Error | ParentError : never; -``` - -Defined in: [packages/common/src/Type.ts:571](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L571) - -Extracts all error types from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferInput.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferInput.mdx deleted file mode 100644 index 85d36e266..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferInput.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / InferInput - -```ts -type InferInput = A extends Type ? Input : never; -``` - -Defined in: [packages/common/src/Type.ts:537](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L537) - -Extracts the input type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferName.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferName.mdx deleted file mode 100644 index cc136b7e7..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferName.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / InferName - -```ts -type InferName = A extends Type ? Name : never; -``` - -Defined in: [packages/common/src/Type.ts:508](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L508) - -Extracts the name from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferParent.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferParent.mdx deleted file mode 100644 index f114535c7..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferParent.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / InferParent - -```ts -type InferParent = A extends Type ? Parent : never; -``` - -Defined in: [packages/common/src/Type.ts:553](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L553) - -Extracts the parent type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferParentError.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferParentError.mdx deleted file mode 100644 index 2bebd0ead..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferParentError.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / InferParentError - -```ts -type InferParentError = A extends Type ? ParentError : never; -``` - -Defined in: [packages/common/src/Type.ts:561](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L561) - -Extracts the parent error type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferType.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferType.mdx deleted file mode 100644 index f7a2b83e4..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/InferType.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / InferType - -```ts -type InferType = A extends Type ? T : never; -``` - -Defined in: [packages/common/src/Type.ts:529](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L529) - -Extracts the type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const User = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Use interface for objects. TypeScript displays the interface name -// instead of expanding all properties. -interface User extends InferType {} -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Int.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/Int.mdx deleted file mode 100644 index 12c247129..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Int.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Int - -```ts -type Int = number & Brand<"Int">; -``` - -Defined in: [packages/common/src/Type.ts:2085](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2085) - -Integer within the safe range of JavaScript numbers. diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Int64.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/Int64.mdx deleted file mode 100644 index 2de324cb5..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Int64.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Int64 - -```ts -type Int64 = bigint & Brand<"Int64">; -``` - -Defined in: [packages/common/src/Type.ts:4029](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4029) - -64-bit signed integer. - -`Int64` represents a `BigInt` constrained to a 64-bit signed integer range, -which is useful for platforms that do not support the `bigint` type, such as -SQLite. - -Because SQLite lacks a dedicated `bigint` type, it may return `number` or -'Int64` depending on the stored value or even a wrong value if a platform -wrapper does not support it. A workaround for SQLite is to insert 'Int64` -serialized as a string (SQLite will convert it to int) and manually cast the -result to a string in SQL query and then to `Int64` in JS. - -https://www.sqlite.org/c3ref/int64.html diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Int64String.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/Int64String.mdx deleted file mode 100644 index 221f9122b..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Int64String.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Int64String - -```ts -type Int64String = string & Brand<"Trimmed"> & Brand<"MinLength1"> & Brand<"Int64">; -``` - -Defined in: [packages/common/src/Type.ts:4048](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4048) - -Stringified [Int64](/docs/api-reference/common/Type/variables/Int64.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/IsUnionWithNull.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/IsUnionWithNull.mdx deleted file mode 100644 index 4cab5a112..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/IsUnionWithNull.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / IsUnionWithNull - -```ts -type IsUnionWithNull = U extends UnionType ? Members extends [AnyType, ...AnyType[]] ? NullTypeInMembers : false : false; -``` - -Defined in: [packages/common/src/Type.ts:4391](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4391) - -## Type Parameters - -| Type Parameter | -| ------ | -| `U` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Json.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/Json.mdx deleted file mode 100644 index 6698ef639..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Json.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Json - -```ts -type Json = string & Brand<"Json">; -``` - -Defined in: [packages/common/src/Type.ts:4187](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4187) - -JSON-string [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const result = Json.from('{"key":"value"}'); // ok -const error = Json.from("invalid json"); // err -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonArray.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonArray.mdx deleted file mode 100644 index 46f5b5ebe..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonArray.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonArray - -```ts -type JsonArray = ReadonlyArray; -``` - -Defined in: [packages/common/src/Type.ts:4105](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4105) - -JSON-compatible array of [JsonValue](/docs/api-reference/common/Type/variables/JsonValue.mdx) elements. diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonArrayInput.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonArrayInput.mdx deleted file mode 100644 index 3885de407..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonArrayInput.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonArrayInput - -```ts -type JsonArrayInput = ReadonlyArray; -``` - -Defined in: [packages/common/src/Type.ts:4106](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4106) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonValue.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonValue.mdx deleted file mode 100644 index e3d1b47eb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonValue.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonValue - -```ts -type JsonValue = - | string - | FiniteNumber - | boolean - | null - | JsonArray - | JsonObject; -``` - -Defined in: [packages/common/src/Type.ts:4071](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4071) - -JSON-compatible value: string, [FiniteNumber](/docs/api-reference/common/Type/variables/FiniteNumber.mdx), boolean, null, -[JsonArray](/docs/api-reference/common/Type/variables/JsonArray.mdx), or [JsonObject](/docs/api-reference/common/Type/variables/JsonObject.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonValueError.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonValueError.mdx deleted file mode 100644 index 7db3be622..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonValueError.mdx +++ /dev/null @@ -1,14 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonValueError - -```ts -type JsonValueError = UnionError< - | StringError - | BooleanError - | NullError - | FiniteError - | NumberError - | ArrayError -| RecordError>; -``` - -Defined in: [packages/common/src/Type.ts:4087](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4087) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonValueInput.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonValueInput.mdx deleted file mode 100644 index 807dbbd9f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/JsonValueInput.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonValueInput - -```ts -type JsonValueInput = - | string - | number - | boolean - | null - | JsonArrayInput - | JsonObjectInput; -``` - -Defined in: [packages/common/src/Type.ts:4079](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4079) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/MergeObjectTypeErrors.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/MergeObjectTypeErrors.mdx deleted file mode 100644 index c7810b0af..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/MergeObjectTypeErrors.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / MergeObjectTypeErrors - -```ts -type MergeObjectTypeErrors = T extends ObjectType ? ObjectError<{ [K in keyof Props]: InferErrors }> : never; -``` - -Defined in: [packages/common/src/Type.ts:3224](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3224) - -Merge Error and ParentError into one ObjectError so tooltips and error -messages are easier to read. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`ObjectType`](/docs/api-reference/common/Type/interfaces/ObjectType.mdx)\<`any`\> | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Mnemonic.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/Mnemonic.mdx deleted file mode 100644 index 5f78756d6..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/Mnemonic.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Mnemonic - -```ts -type Mnemonic = string & Brand<"Trimmed"> & Brand<"MinLength1"> & Brand<"Mnemonic">; -``` - -Defined in: [packages/common/src/Type.ts:1457](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1457) - -The mnemonic, also known as a "seed phrase," is a set of 12 words in a -specific order chosen from a predefined list (BIP39). It provides a -human-readable way to store a private key securely. The mnemonic is generated -safely on the user's device using cryptographically secure random number -generation, ensuring it remains private and unique. diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NegativeInt.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NegativeInt.mdx deleted file mode 100644 index e7aa1a3c8..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NegativeInt.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NegativeInt - -```ts -type NegativeInt = number & Brand<"Int"> & Brand<"NonPositive"> & Brand<"Negative">; -``` - -Defined in: [packages/common/src/Type.ts:2125](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2125) - -Negative integer (< 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NegativeNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NegativeNumber.mdx deleted file mode 100644 index 1cc8d277b..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NegativeNumber.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NegativeNumber - -```ts -type NegativeNumber = number & Brand<"NonPositive"> & Brand<"Negative">; -``` - -Defined in: [packages/common/src/Type.ts:2053](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2053) - -Negative number (< 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyString.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyString.mdx deleted file mode 100644 index ebde7f511..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyString.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyString - -```ts -type NonEmptyString = string & Brand<"MinLength1">; -``` - -Defined in: [packages/common/src/Type.ts:1407](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1407) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyString100.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyString100.mdx deleted file mode 100644 index 8e45a899c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyString100.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyString100 - -```ts -type NonEmptyString100 = string & Brand<"MaxLength100"> & Brand<"MinLength1">; -``` - -Defined in: [packages/common/src/Type.ts:1419](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1419) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyString1000.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyString1000.mdx deleted file mode 100644 index a3a9a55ef..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyString1000.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyString1000 - -```ts -type NonEmptyString1000 = string & Brand<"MaxLength1000"> & Brand<"MinLength1">; -``` - -Defined in: [packages/common/src/Type.ts:1423](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1423) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString.mdx deleted file mode 100644 index 25cd9fd43..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyTrimmedString - -```ts -type NonEmptyTrimmedString = string & Brand<"Trimmed"> & Brand<"MinLength1">; -``` - -Defined in: [packages/common/src/Type.ts:1427](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1427) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString100.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString100.mdx deleted file mode 100644 index b0bc3ec49..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString100.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyTrimmedString100 - -```ts -type NonEmptyTrimmedString100 = string & Brand<"Trimmed"> & Brand<"MaxLength100"> & Brand<"MinLength1">; -``` - -Defined in: [packages/common/src/Type.ts:1439](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1439) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString1000.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString1000.mdx deleted file mode 100644 index c0e443f12..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonEmptyTrimmedString1000.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyTrimmedString1000 - -```ts -type NonEmptyTrimmedString1000 = string & Brand<"Trimmed"> & Brand<"MaxLength1000"> & Brand<"MinLength1">; -``` - -Defined in: [packages/common/src/Type.ts:1444](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1444) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonNaNNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonNaNNumber.mdx deleted file mode 100644 index 847b54338..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonNaNNumber.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonNaNNumber - -```ts -type NonNaNNumber = number & Brand<"NonNaN">; -``` - -Defined in: [packages/common/src/Type.ts:2256](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2256) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonNegativeInt.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonNegativeInt.mdx deleted file mode 100644 index 355f7fd6f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonNegativeInt.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonNegativeInt - -```ts -type NonNegativeInt = number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/Type.ts:2093](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2093) - -Non-negative integer (≥ 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonNegativeNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonNegativeNumber.mdx deleted file mode 100644 index 898729ceb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonNegativeNumber.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonNegativeNumber - -```ts -type NonNegativeNumber = number & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/Type.ts:2029](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2029) - -Non-negative number (≥ 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonPositiveInt.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonPositiveInt.mdx deleted file mode 100644 index 10e2c6e06..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonPositiveInt.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonPositiveInt - -```ts -type NonPositiveInt = number & Brand<"Int"> & Brand<"NonPositive">; -``` - -Defined in: [packages/common/src/Type.ts:2117](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2117) - -Non-positive integer (≤ 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonPositiveNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonPositiveNumber.mdx deleted file mode 100644 index d95403e37..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NonPositiveNumber.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonPositiveNumber - -```ts -type NonPositiveNumber = number & Brand<"NonPositive">; -``` - -Defined in: [packages/common/src/Type.ts:2045](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2045) - -Non-positive number (≤ 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NullTypeInMembers.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NullTypeInMembers.mdx deleted file mode 100644 index ba5bba21d..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NullTypeInMembers.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NullTypeInMembers - -```ts -type NullTypeInMembers = Members extends [infer Head, ...(infer Tail)] ? Head extends typeof Null ? true : Tail extends [AnyType, ...AnyType[]] ? NullTypeInMembers : false : false; -``` - -Defined in: [packages/common/src/Type.ts:4398](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4398) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Members` *extends* \[[`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx), `...AnyType[]`\] | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NullableToOptionalProps.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/NullableToOptionalProps.mdx deleted file mode 100644 index 55806f812..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/NullableToOptionalProps.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NullableToOptionalProps - -```ts -type NullableToOptionalProps = { [K in keyof Props]: TransformNullable }; -``` - -Defined in: [packages/common/src/Type.ts:4384](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4384) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Props` *extends* `Record`\<`string`, [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx)\> | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/PositiveInt.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/PositiveInt.mdx deleted file mode 100644 index 6d2083a10..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/PositiveInt.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / PositiveInt - -```ts -type PositiveInt = number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/Type.ts:2101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2101) - -Positive integer (> 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/PositiveNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/PositiveNumber.mdx deleted file mode 100644 index eb4cb4cbc..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/PositiveNumber.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / PositiveNumber - -```ts -type PositiveNumber = number & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/Type.ts:2037](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2037) - -Positive number (> 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/SimpleName.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/SimpleName.mdx deleted file mode 100644 index 085809fbf..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/SimpleName.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / SimpleName - -```ts -type SimpleName = string & Brand<"UrlSafeString"> & Brand<"SimpleName">; -``` - -Defined in: [packages/common/src/Type.ts:1650](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1650) - -Simple alphanumeric string for naming in file systems, URLs, and identifiers. - -Uses the same safe alphabet as [UrlSafeString](/docs/api-reference/common/Type/variables/UrlSafeString.mdx) (letters, digits, `-`, -`_`). See `UrlSafeString` for details. - -The string must be between 1 and 64 characters. - -### Example - -```ts -const result = SimpleName.from("data-report-123"); -if (result.ok) { - console.log("Valid SimpleName string:", result.value); -} else { - console.error("Invalid SimpleName string:", result.error); -} -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/SimplePassword.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/SimplePassword.mdx deleted file mode 100644 index 5d3a1a559..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/SimplePassword.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / SimplePassword - -```ts -type SimplePassword = string & Brand<"Trimmed"> & Brand<"MaxLength64"> & Brand<"MinLength8"> & Brand<"SimplePassword">; -``` - -Defined in: [packages/common/src/Type.ts:1687](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1687) - -Trimmed string between 8 and 64 characters, branded as `SimplePassword`. - -Take a look how `SimplePassword` is defined: - -```ts -export const SimplePassword = brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -``` - -Nested functions are often OK (if not, make a helper), but with TC39 Hack -pipes it would be clearer: - -```ts -// TrimmedString -// |> minLength(8)(%) -// |> maxLength(64)(%) -// |> brand("SimplePassword", %) -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/SimplePasswordError.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/SimplePasswordError.mdx deleted file mode 100644 index 67bd9b8bf..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/SimplePasswordError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / SimplePasswordError - -```ts -type SimplePasswordError = typeof SimplePassword.Error; -``` - -Defined in: [packages/common/src/Type.ts:1693](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1693) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/String100.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/String100.mdx deleted file mode 100644 index 2851d0bf9..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/String100.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / String100 - -```ts -type String100 = string & Brand<"MaxLength100">; -``` - -Defined in: [packages/common/src/Type.ts:1411](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1411) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/String1000.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/String1000.mdx deleted file mode 100644 index 1f22d9b83..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/String1000.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / String1000 - -```ts -type String1000 = string & Brand<"MaxLength1000">; -``` - -Defined in: [packages/common/src/Type.ts:1415](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1415) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TransformNullable.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/TransformNullable.mdx deleted file mode 100644 index 32f0024fd..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TransformNullable.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TransformNullable - -```ts -type TransformNullable

= IsUnionWithNull

extends true ? OptionalType

+
+ + +
+ +
+ setTitle(event.target.value)} + placeholder="Add a todo" + style={{ + flex: 1, + padding: 8, + borderRadius: 8, + border: "1px solid #bbb", + }} + /> + +
+ +
    + {todos.map((todo) => ( +
  • + toggleTodo(todo.id)} + /> + + {todo.title} + + +
  • + ))} +
+
+ ); +}; + +const StatusBadge: FC<{ label: string; value: string; color: string }> = ({ + label, + value, + color, +}) => ( + + {label}: {value} + +); + +const buttonPrimaryStyle = { + background: "#1565c0", + border: "none", + color: "#fff", + borderRadius: 8, + padding: "8px 12px", + cursor: "pointer", +} as const; + +const buttonDangerStyle = { + background: "#c62828", + border: "none", + color: "#fff", + borderRadius: 8, + padding: "6px 10px", + cursor: "pointer", +} as const; diff --git a/examples/astro/src/env.d.ts b/examples/astro/src/env.d.ts new file mode 100644 index 000000000..f964fe0cf --- /dev/null +++ b/examples/astro/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/astro/src/pages/index.astro b/examples/astro/src/pages/index.astro new file mode 100644 index 000000000..ea7215955 --- /dev/null +++ b/examples/astro/src/pages/index.astro @@ -0,0 +1,23 @@ +--- +import { TodoApp } from "../components/TodoApp.tsx"; +--- + + + + + + Evolu + Astro Integration Example + + +
+

+ Evolu + Astro (Client-Only Island) +

+

+ Local-first Todo with offline indicator and sync status rendered in a + React island. +

+ +
+ + diff --git a/examples/astro/tsconfig.json b/examples/astro/tsconfig.json new file mode 100644 index 000000000..801d1ab12 --- /dev/null +++ b/examples/astro/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "astro/tsconfigs/strict", + "compilerOptions": { + "baseUrl": "." + } +} diff --git a/examples/react-expo/app.json b/examples/react-expo/app.json index 3fe51a196..e19870015 100644 --- a/examples/react-expo/app.json +++ b/examples/react-expo/app.json @@ -7,7 +7,6 @@ "icon": "./assets/images/icon.png", "scheme": "myapp", "userInterfaceStyle": "automatic", - "newArchEnabled": true, "ios": { "supportsTablet": true, "bundleIdentifier": "com.evolu.expo" @@ -50,8 +49,7 @@ ] ], "experiments": { - "typedRoutes": true, - "reactCanary": true + "typedRoutes": true } } } diff --git a/examples/react-expo/app/_layout.tsx b/examples/react-expo/app/_layout.tsx index 74422c0e4..5c1c94dec 100644 --- a/examples/react-expo/app/_layout.tsx +++ b/examples/react-expo/app/_layout.tsx @@ -1,9 +1,21 @@ -import { install } from "react-native-quick-crypto"; import { installPolyfills } from "../polyfills"; -install(); installPolyfills(); +const isNodeRuntime = + typeof process !== "undefined" && typeof process.versions?.node === "string"; +const isBrowserRuntime = typeof document !== "undefined"; + +if (!isNodeRuntime && !isBrowserRuntime) { + void import("react-native-quick-crypto") + .then(({ install }) => { + install(); + }) + .catch(() => { + // Optional native crypto bridge is not available in all runtimes. + }); +} + import { Stack } from "expo-router"; export default function RootLayout(): React.ReactNode { diff --git a/examples/react-expo/package.json b/examples/react-expo/package.json index 98d0d0504..c5857b31d 100644 --- a/examples/react-expo/package.json +++ b/examples/react-expo/package.json @@ -11,7 +11,8 @@ "ios": "expo run:ios", "ios:go": "expo start --ios", "lint": "expo lint", - "start": "expo start" + "start": "expo start", + "web:export": "expo export --platform web" }, "jest": { "preset": "jest-expo" @@ -21,25 +22,27 @@ "@evolu/common": "workspace:*", "@evolu/react": "workspace:*", "@evolu/react-native": "workspace:*", - "@expo/metro-runtime": "^6.1.2", + "@expo/metro-runtime": "^55.0.6", "@expo/vector-icons": "^15.1.1", "abort-signal-polyfill": "^1.0.0", "babel-plugin-module-resolver": "^5.0.2", - "expo": "^54.0.31", - "expo-constants": "^18.0.13", - "expo-font": "^14.0.10", - "expo-linking": "^8.0.11", - "expo-router": "^6.0.21", - "expo-secure-store": "~15.0.8", - "expo-splash-screen": "~31.0.13", - "expo-sqlite": "~16.0.10", + "expo": "^55.0.4", + "expo-constants": "^55.0.7", + "expo-font": "^55.0.4", + "expo-linking": "^55.0.7", + "expo-router": "^55.0.3", + "expo-secure-store": "~55.0.8", + "expo-splash-screen": "~55.0.10", + "expo-sqlite": "~55.0.10", "react": "19.2.4", - "react-native": "0.81.6", - "react-native-nitro-modules": "0.33.9", + "react-dom": "19.2.4", + "react-native": "0.84.1", + "react-native-nitro-modules": "0.34.1", "react-native-quick-crypto": "^1.0.14", "react-native-safe-area-context": "^5.6.2", "react-native-screens": "^4.24.0", "react-native-svg": "15.15.3", + "react-native-web": "^0.21.0", "set.prototype.difference": "^1.1.7", "set.prototype.intersection": "^1.1.8", "set.prototype.isdisjointfrom": "^1.1.5", @@ -54,7 +57,7 @@ "@babel/plugin-transform-explicit-resource-management": "^7.28.6", "@babel/plugin-transform-modules-commonjs": "^7.28.6", "@types/react": "~19.2.14", - "babel-preset-expo": "^54.0.6", + "babel-preset-expo": "^55.0.10", "typescript": "^5.9.3" } } diff --git a/examples/react-nextjs/package.json b/examples/react-nextjs/package.json index cfbf01681..4e6c7f163 100644 --- a/examples/react-nextjs/package.json +++ b/examples/react-nextjs/package.json @@ -21,7 +21,7 @@ "devDependencies": { "@tailwindcss/forms": "^0.5.11", "@tailwindcss/postcss": "^4.2.1", - "@types/node": "^24.10.13", + "@types/node": "^25.3.2", "@types/react": "~19.2.14", "@types/react-dom": "~19.2.3", "postcss": "^8.5.6", diff --git a/examples/tanstack-start/index.html b/examples/tanstack-start/index.html new file mode 100644 index 000000000..9fbf126f3 --- /dev/null +++ b/examples/tanstack-start/index.html @@ -0,0 +1,12 @@ + + + + + + Evolu + TanStack Start Example + + +
+ + + diff --git a/examples/tanstack-start/package.json b/examples/tanstack-start/package.json new file mode 100644 index 000000000..2585f45e1 --- /dev/null +++ b/examples/tanstack-start/package.json @@ -0,0 +1,24 @@ +{ + "name": "@example/tanstack-start", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@evolu/tanstack-start": "workspace:*", + "@tanstack/react-router": "^1.0.0", + "react": "19.2.4", + "react-dom": "19.2.4" + }, + "devDependencies": { + "@types/react": "~19.2.14", + "@types/react-dom": "~19.2.3", + "@vitejs/plugin-react": "^5.1.4", + "typescript": "^5.9.3", + "vite": "^7.3.1" + } +} diff --git a/examples/tanstack-start/src/components/TodoApp.tsx b/examples/tanstack-start/src/components/TodoApp.tsx new file mode 100644 index 000000000..4c34c330f --- /dev/null +++ b/examples/tanstack-start/src/components/TodoApp.tsx @@ -0,0 +1,173 @@ +import { assertTanStackClientRuntime } from "@evolu/tanstack-start"; +import { type FC, useEffect, useState } from "react"; + +interface Todo { + readonly id: number; + readonly title: string; + readonly done: boolean; +} + +const useOnlineStatus = (): boolean => { + const [isOnline, setIsOnline] = useState(() => + typeof navigator === "undefined" ? true : navigator.onLine, + ); + + useEffect(() => { + if (typeof window === "undefined") return; + + const onOnline = () => setIsOnline(true); + const onOffline = () => setIsOnline(false); + + window.addEventListener("online", onOnline); + window.addEventListener("offline", onOffline); + + return () => { + window.removeEventListener("online", onOnline); + window.removeEventListener("offline", onOffline); + }; + }, []); + + return isOnline; +}; + +export const TodoApp: FC = () => { + assertTanStackClientRuntime(); + + const [todos, setTodos] = useState>([]); + const [title, setTitle] = useState(""); + const isOnline = useOnlineStatus(); + + const addTodo = () => { + const nextTitle = title.trim(); + if (nextTitle === "") return; + + setTodos((current) => [ + ...current, + { id: Date.now(), title: nextTitle, done: false }, + ]); + setTitle(""); + }; + + const toggleTodo = (id: number) => { + setTodos((current) => + current.map((todo) => + todo.id === id ? { ...todo, done: !todo.done } : todo, + ), + ); + }; + + const removeTodo = (id: number) => { + setTodos((current) => current.filter((todo) => todo.id !== id)); + }; + + return ( +
+
+ + +
+ +
+ setTitle(event.target.value)} + placeholder="Add a todo" + style={{ + flex: 1, + padding: 8, + borderRadius: 8, + border: "1px solid #bbb", + }} + /> + +
+ +
    + {todos.map((todo) => ( +
  • + toggleTodo(todo.id)} + /> + + {todo.title} + + +
  • + ))} +
+
+ ); +}; + +const StatusBadge: FC<{ label: string; value: string; color: string }> = ({ + label, + value, + color, +}) => ( + + {label}: {value} + +); + +const buttonPrimaryStyle = { + background: "#1565c0", + border: "none", + color: "#fff", + borderRadius: 8, + padding: "8px 12px", + cursor: "pointer", +} as const; + +const buttonDangerStyle = { + background: "#c62828", + border: "none", + color: "#fff", + borderRadius: 8, + padding: "6px 10px", + cursor: "pointer", +} as const; diff --git a/examples/tanstack-start/src/main.tsx b/examples/tanstack-start/src/main.tsx new file mode 100644 index 000000000..a609d8bea --- /dev/null +++ b/examples/tanstack-start/src/main.tsx @@ -0,0 +1,13 @@ +import { RouterProvider } from "@tanstack/react-router"; +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import { router } from "./router"; + +const rootElement = document.getElementById("root"); +if (!rootElement) throw new Error("Missing #root element"); + +createRoot(rootElement).render( + + + , +); diff --git a/examples/tanstack-start/src/router.tsx b/examples/tanstack-start/src/router.tsx new file mode 100644 index 000000000..2ab09ba79 --- /dev/null +++ b/examples/tanstack-start/src/router.tsx @@ -0,0 +1,37 @@ +import { + createRootRoute, + createRoute, + createRouter, + Outlet, +} from "@tanstack/react-router"; +import { TodoApp } from "./components/TodoApp"; + +const rootRoute = createRootRoute({ + component: () => ( +
+

+ Evolu + TanStack Start-style Integration +

+

+ Client-boundary Todo app with offline and sync state indicators. +

+ +
+ ), +}); + +const indexRoute = createRoute({ + getParentRoute: () => rootRoute, + path: "/", + component: TodoApp, +}); + +const routeTree = rootRoute.addChildren([indexRoute]); + +export const router = createRouter({ routeTree }); + +declare module "@tanstack/react-router" { + interface Register { + router: typeof router; + } +} diff --git a/examples/tanstack-start/tsconfig.json b/examples/tanstack-start/tsconfig.json new file mode 100644 index 000000000..87e8d083c --- /dev/null +++ b/examples/tanstack-start/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "jsx": "react-jsx", + "isolatedModules": true, + "noEmit": true, + "types": ["vite/client"] + }, + "include": ["src", "vite.config.ts"] +} diff --git a/examples/tanstack-start/vite.config.ts b/examples/tanstack-start/vite.config.ts new file mode 100644 index 000000000..4348d0200 --- /dev/null +++ b/examples/tanstack-start/vite.config.ts @@ -0,0 +1,7 @@ +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [react()], + cacheDir: ".vite", +}); diff --git a/examples/tauri/index.html b/examples/tauri/index.html new file mode 100644 index 000000000..24ee28ac3 --- /dev/null +++ b/examples/tauri/index.html @@ -0,0 +1,12 @@ + + + + + + Evolu + Tauri Integration Example + + +
+ + + diff --git a/examples/tauri/package.json b/examples/tauri/package.json new file mode 100644 index 000000000..1779c2b16 --- /dev/null +++ b/examples/tauri/package.json @@ -0,0 +1,28 @@ +{ + "name": "@example/tauri", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "tauri:dev": "bunx tauri dev", + "tauri:build": "bunx tauri build", + "clean": "rimraf dist src-tauri/target" + }, + "dependencies": { + "@evolu/tauri": "workspace:*", + "@tauri-apps/api": "^2.8.0", + "react": "19.2.4", + "react-dom": "19.2.4" + }, + "devDependencies": { + "@tauri-apps/cli": "^2.8.4", + "@types/react": "~19.2.14", + "@types/react-dom": "~19.2.3", + "@vitejs/plugin-react": "^5.1.4", + "typescript": "^5.9.3", + "vite": "^7.3.1" + } +} diff --git a/examples/tauri/src-tauri/Cargo.toml b/examples/tauri/src-tauri/Cargo.toml new file mode 100644 index 000000000..b86193dfd --- /dev/null +++ b/examples/tauri/src-tauri/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "evolu-tauri-example" +version = "0.1.0" +description = "Evolu Tauri integration example" +authors = ["SQLoot"] +license = "MIT" +edition = "2021" + +[build-dependencies] +tauri-build = { version = "2", features = [] } + +[dependencies] +tauri = { version = "2", features = [] } + +[features] +default = ["custom-protocol"] +custom-protocol = ["tauri/custom-protocol"] diff --git a/examples/tauri/src-tauri/build.rs b/examples/tauri/src-tauri/build.rs new file mode 100644 index 000000000..795b9b7c8 --- /dev/null +++ b/examples/tauri/src-tauri/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/examples/tauri/src-tauri/src/main.rs b/examples/tauri/src-tauri/src/main.rs new file mode 100644 index 000000000..06be56541 --- /dev/null +++ b/examples/tauri/src-tauri/src/main.rs @@ -0,0 +1,7 @@ +#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] + +fn main() { + tauri::Builder::default() + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} diff --git a/examples/tauri/src-tauri/tauri.conf.json b/examples/tauri/src-tauri/tauri.conf.json new file mode 100644 index 000000000..21ba2cc88 --- /dev/null +++ b/examples/tauri/src-tauri/tauri.conf.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://schema.tauri.app/config/2", + "productName": "Evolu Tauri Example", + "version": "0.1.0", + "identifier": "dev.evolu.example.tauri", + "build": { + "beforeDevCommand": "bun run dev", + "devUrl": "http://localhost:5173", + "beforeBuildCommand": "bun run build", + "frontendDist": "../dist" + }, + "app": { + "withGlobalTauri": true, + "windows": [ + { + "title": "Evolu Tauri Example", + "width": 1200, + "height": 800, + "resizable": true + } + ], + "security": { + "csp": null + } + } +} diff --git a/examples/tauri/src/App.tsx b/examples/tauri/src/App.tsx new file mode 100644 index 000000000..a39f0c75b --- /dev/null +++ b/examples/tauri/src/App.tsx @@ -0,0 +1,14 @@ +import { TodoApp } from "./components/TodoApp"; + +export const App = () => ( +
+

+ Evolu + Tauri Integration +

+

+ WebView Todo app with runtime detection, offline indicator, and sync + state. +

+ +
+); diff --git a/examples/tauri/src/components/TodoApp.tsx b/examples/tauri/src/components/TodoApp.tsx new file mode 100644 index 000000000..3ac2bd204 --- /dev/null +++ b/examples/tauri/src/components/TodoApp.tsx @@ -0,0 +1,168 @@ +import { getTauriRuntimeInfo } from "@evolu/tauri"; +import { type FC, useEffect, useMemo, useState } from "react"; + +interface Todo { + readonly id: number; + readonly title: string; + readonly done: boolean; +} + +const useOnlineStatus = (): boolean => { + const [isOnline, setIsOnline] = useState(() => + typeof navigator === "undefined" ? true : navigator.onLine, + ); + + useEffect(() => { + if (typeof window === "undefined") return; + + const onOnline = () => setIsOnline(true); + const onOffline = () => setIsOnline(false); + + window.addEventListener("online", onOnline); + window.addEventListener("offline", onOffline); + + return () => { + window.removeEventListener("online", onOnline); + window.removeEventListener("offline", onOffline); + }; + }, []); + + return isOnline; +}; + +export const TodoApp: FC = () => { + const runtimeInfo = useMemo(() => getTauriRuntimeInfo(), []); + const [todos, setTodos] = useState>([]); + const [title, setTitle] = useState(""); + const isOnline = useOnlineStatus(); + + const addTodo = () => { + const nextTitle = title.trim(); + if (nextTitle === "") return; + + setTodos((current) => [ + ...current, + { id: Date.now(), title: nextTitle, done: false }, + ]); + setTitle(""); + }; + + const toggleTodo = (id: number) => { + setTodos((current) => + current.map((todo) => + todo.id === id ? { ...todo, done: !todo.done } : todo, + ), + ); + }; + + const removeTodo = (id: number) => { + setTodos((current) => current.filter((todo) => todo.id !== id)); + }; + + return ( +
+
+ + +
+ +
+ setTitle(event.target.value)} + placeholder="Add a todo" + style={{ + flex: 1, + padding: 8, + borderRadius: 8, + border: "1px solid #bbb", + }} + /> + +
+ +
    + {todos.map((todo) => ( +
  • + toggleTodo(todo.id)} + /> + + {todo.title} + + +
  • + ))} +
+
+ ); +}; + +const StatusBadge: FC<{ label: string; value: string; color: string }> = ({ + label, + value, + color, +}) => ( + + {label}: {value} + +); + +const buttonPrimaryStyle = { + background: "#1565c0", + border: "none", + color: "#fff", + borderRadius: 8, + padding: "8px 12px", + cursor: "pointer", +} as const; + +const buttonDangerStyle = { + background: "#c62828", + border: "none", + color: "#fff", + borderRadius: 8, + padding: "6px 10px", + cursor: "pointer", +} as const; diff --git a/examples/tauri/src/main.tsx b/examples/tauri/src/main.tsx new file mode 100644 index 000000000..ab7232a87 --- /dev/null +++ b/examples/tauri/src/main.tsx @@ -0,0 +1,12 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import { App } from "./App"; + +const rootElement = document.getElementById("root"); +if (!rootElement) throw new Error("Missing #root"); + +createRoot(rootElement).render( + + + , +); diff --git a/examples/tauri/tsconfig.json b/examples/tauri/tsconfig.json new file mode 100644 index 000000000..87e8d083c --- /dev/null +++ b/examples/tauri/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "jsx": "react-jsx", + "isolatedModules": true, + "noEmit": true, + "types": ["vite/client"] + }, + "include": ["src", "vite.config.ts"] +} diff --git a/examples/tauri/vite.config.ts b/examples/tauri/vite.config.ts new file mode 100644 index 000000000..fe38ced62 --- /dev/null +++ b/examples/tauri/vite.config.ts @@ -0,0 +1,8 @@ +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [react()], + cacheDir: ".vite", + clearScreen: false, +}); diff --git a/package.json b/package.json index 26e2d4b24..68a418a17 100755 --- a/package.json +++ b/package.json @@ -25,9 +25,22 @@ "test:coverage": "bun run test:coverage:vitest && bun run test:coverage:bun && bun run coverage:merge:bun", "test:coverage:vitest": "bun run test:preflight && bunx vitest run --coverage", "test:coverage:bun": "bun test ./packages/bun/test --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage/bun", + "test:coverage:astro": "bun run test:preflight && bunx vitest run --project astro --coverage --coverage.all=true --coverage.include='packages/astro/src/**/*.{ts,tsx}' --coverage.exclude='**/*.d.ts' --coverage.reporter=text --coverage.reporter=json-summary --coverage.reportsDirectory=coverage/lane-astro", + "test:coverage:tanstack": "bun run test:preflight && bunx vitest run --project tanstack-start --coverage --coverage.all=true --coverage.include='packages/tanstack-start/src/**/*.{ts,tsx}' --coverage.exclude='**/*.d.ts' --coverage.reporter=text --coverage.reporter=json-summary --coverage.reportsDirectory=coverage/lane-tanstack", + "test:coverage:react-native": "bun run test:preflight && bunx vitest run --project react-native --coverage --coverage.all=true --coverage.include='packages/react-native/src/**/*.{ts,tsx}' --coverage.exclude='**/*.d.ts' --coverage.reporter=text --coverage.reporter=json-summary --coverage.reportsDirectory=coverage/lane-react-native", + "test:coverage:expo": "bun run test:preflight && bunx vitest run --project react-native --coverage --coverage.all=true --coverage.include='packages/react-native/src/**/*.{ts,tsx}' --coverage.exclude='**/*.d.ts' --coverage.reporter=text --coverage.reporter=json-summary --coverage.reportsDirectory=coverage/lane-expo", "coverage:merge:bun": "bun ./scripts/coverage-merge-bun.mts --vitest coverage/coverage-summary.json --bun coverage/bun/lcov.info --out coverage/coverage-summary.json", "coverage:gate:p0": "bun ./scripts/coverage-file-gate.mts --coverage coverage/coverage-summary.json --thresholds '{\"packages/common/src/local-first/Sync.ts\":{\"statements\":90,\"branches\":90},\"packages/common/src/local-first/Db.ts\":{\"statements\":90,\"branches\":90},\"packages/common/src/local-first/Worker.ts\":{\"statements\":90,\"branches\":90},\"packages/web/src/local-first/DbWorker.ts\":{\"statements\":90,\"branches\":90}}'", "coverage:gate:p1": "bun ./scripts/coverage-file-gate.mts --coverage coverage/coverage-summary.json --thresholds '{\"packages/common/src/local-first/Sync.ts\":{\"statements\":90,\"branches\":90},\"packages/common/src/local-first/Db.ts\":{\"statements\":90,\"branches\":90},\"packages/common/src/local-first/Worker.ts\":{\"statements\":90,\"branches\":90},\"packages/web/src/local-first/DbWorker.ts\":{\"statements\":90,\"branches\":90},\"packages/common/src/local-first/LocalAuth.ts\":{\"statements\":75,\"branches\":60},\"packages/web/src/local-first/LocalAuth.ts\":{\"statements\":75,\"branches\":60},\"packages/nodejs/src/Worker.ts\":{\"statements\":90,\"branches\":85},\"packages/nodejs/src/Sqlite.ts\":{\"statements\":90,\"branches\":85}}'", + "coverage:gate:astro": "bun ./scripts/coverage-file-gate.mts --coverage coverage/lane-astro/coverage-summary.json --thresholds '{\"packages/astro/src/index.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100}}'", + "coverage:gate:tanstack": "bun ./scripts/coverage-file-gate.mts --coverage coverage/lane-tanstack/coverage-summary.json --thresholds '{\"packages/tanstack-start/src/index.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100}}'", + "coverage:gate:react-native": "bun ./scripts/coverage-file-gate.mts --coverage coverage/lane-react-native/coverage-summary.json --thresholds '{\"packages/react-native/src/Task.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/Worker.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/web.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/index.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/shared.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/createExpoDeps.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/sqlite-drivers/createExpoSqliteDriver.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/sqlite-drivers/createOpSqliteDriver.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/exports/expo-sqlite.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/exports/expo-op-sqlite.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/exports/bare-op-sqlite.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/components/EvoluIdenticon.tsx\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100}}'", + "coverage:gate:expo": "bun ./scripts/coverage-file-gate.mts --coverage coverage/lane-expo/coverage-summary.json --thresholds '{\"packages/react-native/src/createExpoDeps.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/sqlite-drivers/createExpoSqliteDriver.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/exports/expo-sqlite.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100},\"packages/react-native/src/exports/expo-op-sqlite.ts\":{\"statements\":100,\"branches\":100,\"functions\":100,\"lines\":100}}'", + "coverage:lane:astro": "bun run test:coverage:astro && bun run coverage:gate:astro", + "coverage:lane:tanstack": "bun run test:coverage:tanstack && bun run coverage:gate:tanstack", + "coverage:lane:react-native": "bun run test:coverage:react-native && bun run coverage:gate:react-native", + "coverage:lane:expo": "bun run test:coverage:expo && bun run coverage:gate:expo", + "coverage:lane:active": "bun run coverage:lane:${EVOLU_ACTIVE_COVERAGE_LANE:-astro}", "test:watch": "bunx vitest", "start": "turbo start", "lint": "biome check", @@ -50,7 +63,7 @@ "examples:svelte-vite-pwa:dev": "turbo --filter @example/svelte-vite-pwa dev", "examples:vue-vite-pwa:dev": "turbo --filter @example/vue-vite-pwa dev", "docs:generate:api": "typedoc", - "docs:sync:website": "bun run docs:generate:api && bun ./scripts/docs-sync-website.mts" + "docs:sync:website": "bun ./scripts/docs-sync-website.mts" }, "devDependencies": { "@biomejs/biome": "^2.4.4", diff --git a/packages/astro/README.md b/packages/astro/README.md new file mode 100644 index 000000000..0320442b8 --- /dev/null +++ b/packages/astro/README.md @@ -0,0 +1,3 @@ +# @evolu/astro + +Private helper package for Astro client-only integration patterns. diff --git a/packages/astro/package.json b/packages/astro/package.json new file mode 100644 index 000000000..9f7e77121 --- /dev/null +++ b/packages/astro/package.json @@ -0,0 +1,32 @@ +{ + "name": "@evolu/astro", + "version": "0.1.0", + "description": "Evolu integration helpers for Astro client-only islands", + "private": true, + "type": "module", + "types": "./dist/src/index.d.ts", + "exports": { + ".": { + "types": "./dist/src/index.d.ts", + "import": "./dist/src/index.js" + } + }, + "files": [ + "dist/src/**", + "src/**", + "README.md" + ], + "scripts": { + "build": "rimraf dist && tsc --build tsconfig.build.json", + "test": "bunx vitest run", + "clean": "rimraf .turbo node_modules dist" + }, + "devDependencies": { + "@evolu/tsconfig": "workspace:*", + "typescript": "^5.9.3", + "vitest": "^4.0.18" + }, + "engines": { + "node": ">=24.0.0" + } +} diff --git a/packages/astro/src/index.ts b/packages/astro/src/index.ts new file mode 100644 index 000000000..59eafbd76 --- /dev/null +++ b/packages/astro/src/index.ts @@ -0,0 +1,26 @@ +export interface AstroClientOnlyError extends Error { + code: "ASTRO_CLIENT_ONLY"; +} + +export const isAstroClientRuntime = (): boolean => + typeof window !== "undefined" && typeof document !== "undefined"; + +export const assertAstroClientRuntime = (): void => { + if (isAstroClientRuntime()) return; + + const error = new Error( + 'Astro integration must run in a client-only island (for example client:only="react").', + ) as AstroClientOnlyError; + error.name = "AstroClientOnlyError"; + error.code = "ASTRO_CLIENT_ONLY"; + throw error; +}; + +export const withAstroClientRuntime = + , TResult>( + fn: (...args: TArgs) => TResult, + ) => + (...args: TArgs): TResult => { + assertAstroClientRuntime(); + return fn(...args); + }; diff --git a/packages/astro/test/index.test.ts b/packages/astro/test/index.test.ts new file mode 100644 index 000000000..2e5745b44 --- /dev/null +++ b/packages/astro/test/index.test.ts @@ -0,0 +1,105 @@ +import { describe, expect, test } from "vitest"; +import { + assertAstroClientRuntime, + isAstroClientRuntime, + withAstroClientRuntime, +} from "../src/index.js"; + +const windowDescriptor = Object.getOwnPropertyDescriptor(globalThis, "window"); +const documentDescriptor = Object.getOwnPropertyDescriptor( + globalThis, + "document", +); + +const deleteRuntimeGlobals = (): void => { + Reflect.deleteProperty(globalThis, "window"); + Reflect.deleteProperty(globalThis, "document"); +}; + +const setRuntime = (runtime: "server" | "window-only" | "client"): void => { + deleteRuntimeGlobals(); + if (runtime === "window-only" || runtime === "client") { + Object.defineProperty(globalThis, "window", { + configurable: true, + value: {}, + writable: true, + }); + } + if (runtime === "client") { + Object.defineProperty(globalThis, "document", { + configurable: true, + value: {}, + writable: true, + }); + } +}; + +const restoreRuntime = (): void => { + if (windowDescriptor) { + Object.defineProperty(globalThis, "window", windowDescriptor); + } else { + Reflect.deleteProperty(globalThis, "window"); + } + if (documentDescriptor) { + Object.defineProperty(globalThis, "document", documentDescriptor); + } else { + Reflect.deleteProperty(globalThis, "document"); + } +}; + +describe("@evolu/astro", () => { + test("reports server runtime in node test environment", () => { + setRuntime("server"); + expect(isAstroClientRuntime()).toBe(false); + restoreRuntime(); + }); + + test("reports non-client runtime when window exists without document", () => { + setRuntime("window-only"); + expect(isAstroClientRuntime()).toBe(false); + restoreRuntime(); + }); + + test("reports client runtime when window and document exist", () => { + setRuntime("client"); + expect(isAstroClientRuntime()).toBe(true); + restoreRuntime(); + }); + + test("throws typed client-only error outside browser runtime", () => { + setRuntime("server"); + try { + assertAstroClientRuntime(); + throw new Error("Expected assertAstroClientRuntime to throw"); + } catch (error) { + expect(error).toBeInstanceOf(Error); + expect((error as Error).message).toMatch(/client-only island/i); + expect((error as Error).name).toBe("AstroClientOnlyError"); + expect((error as { code?: unknown }).code).toBe("ASTRO_CLIENT_ONLY"); + } finally { + restoreRuntime(); + } + }); + + test("does not throw inside client runtime", () => { + setRuntime("client"); + expect(() => assertAstroClientRuntime()).not.toThrow(); + restoreRuntime(); + }); + + test("withAstroClientRuntime preserves failure semantics", () => { + setRuntime("server"); + const run = withAstroClientRuntime(() => "ok"); + expect(() => run()).toThrowError(/client-only island/i); + restoreRuntime(); + }); + + test("withAstroClientRuntime forwards args and returns result in client runtime", () => { + setRuntime("client"); + const run = withAstroClientRuntime( + (left: number, right: number) => `${left + right}`, + ); + expect(run(2, 3)).toBe("5"); + restoreRuntime(); + }); +}); diff --git a/packages/astro/tsconfig.build.json b/packages/astro/tsconfig.build.json new file mode 100644 index 000000000..6dfa9813e --- /dev/null +++ b/packages/astro/tsconfig.build.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "include": ["src"], + "exclude": ["dist", "node_modules", "test", "vitest.config.ts"], + "references": [ + { "path": "../common/tsconfig.build.json" }, + { "path": "../react/tsconfig.build.json" }, + { "path": "../react-web/tsconfig.build.json" } + ] +} diff --git a/packages/astro/tsconfig.json b/packages/astro/tsconfig.json new file mode 100644 index 000000000..47449b548 --- /dev/null +++ b/packages/astro/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../tsconfig/universal-esm.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": ".", + "tsBuildInfoFile": "dist/.tsBuildInfo" + }, + "include": ["src", "test", "vitest.config.ts"], + "exclude": ["dist", "node_modules"], + "references": [ + { "path": "../common" }, + { "path": "../react" }, + { "path": "../react-web" } + ] +} diff --git a/packages/astro/vitest.config.ts b/packages/astro/vitest.config.ts new file mode 100644 index 000000000..92ae1ebae --- /dev/null +++ b/packages/astro/vitest.config.ts @@ -0,0 +1,10 @@ +import { defineProject } from "vitest/config"; + +export default defineProject({ + test: { + name: "astro", + include: ["test/**/*.test.ts"], + exclude: ["**/node_modules/**", "**/dist/**"], + environment: "node", + }, +}); diff --git a/packages/nodejs/package.json b/packages/nodejs/package.json index faed17016..45b04b888 100644 --- a/packages/nodejs/package.json +++ b/packages/nodejs/package.json @@ -35,7 +35,7 @@ "@evolu/common": "workspace:*", "@evolu/tsconfig": "workspace:*", "@types/better-sqlite3": "^7.6.13", - "@types/node": "^24.10.13", + "@types/node": "^25.3.2", "@types/ws": "^8.18.1", "typescript": "^5.9.3" }, diff --git a/packages/nodejs/src/Worker.ts b/packages/nodejs/src/Worker.ts index bdce4fb69..152a70239 100644 --- a/packages/nodejs/src/Worker.ts +++ b/packages/nodejs/src/Worker.ts @@ -117,7 +117,7 @@ const wrap = ( port = { postMessage: (message: Input, transfer?: ReadonlyArray) => { - if (transfer == null) native.postMessage(message); + if (transfer == null) native.postMessage(message, []); else native.postMessage(message, toTransferList(transfer)); }, onMessage: null, diff --git a/packages/react-native/package.json b/packages/react-native/package.json index ce428bdd0..619eb5d52 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -75,12 +75,12 @@ "@evolu/tsconfig": "workspace:*", "@op-engineering/op-sqlite": "^15.2.2", "@types/react": "~19.2.14", - "expo": "^54.0.31", - "expo-secure-store": "~15.0.8", - "expo-sqlite": "~16.0.10", + "expo": "^55.0.4", + "expo-secure-store": "~55.0.8", + "expo-sqlite": "~55.0.10", "react": "19.2.4", - "react-native": "0.81.6", - "react-native-nitro-modules": "0.33.9", + "react-native": "0.84.1", + "react-native-nitro-modules": "0.34.1", "react-native-sensitive-info": "6.0.0-rc.11", "react-native-svg": "15.15.3", "typescript": "^5.9.3" @@ -89,12 +89,12 @@ "@evolu/common": "^7.4.1", "@evolu/react": "^10.4.0", "@op-engineering/op-sqlite": ">=12", - "expo": ">=54", - "expo-secure-store": ">=15", - "expo-sqlite": ">=16", + "expo": ">=55", + "expo-secure-store": ">=55", + "expo-sqlite": ">=55", "react": ">=19", - "react-native": ">=0.81", - "react-native-nitro-modules": ">=0.33.9", + "react-native": ">=0.84", + "react-native-nitro-modules": ">=0.34.1", "react-native-sensitive-info": ">=6", "react-native-svg": ">=15" }, diff --git a/packages/react-native/test/CreateExpoDeps.test.ts b/packages/react-native/test/CreateExpoDeps.test.ts new file mode 100644 index 000000000..28036deaa --- /dev/null +++ b/packages/react-native/test/CreateExpoDeps.test.ts @@ -0,0 +1,250 @@ +import { localAuthDefaultOptions } from "@evolu/common"; +import { beforeEach, describe, expect, test, vi } from "vitest"; +import { createExpoDeps } from "../src/createExpoDeps.js"; + +const mocks = vi.hoisted(() => ({ + createSharedEvoluDeps: vi.fn((deps) => deps), + createSharedLocalAuth: vi.fn((secureStorage) => ({ secureStorage })), + deleteItemAsync: vi.fn(async () => undefined), + getItemAsync: vi.fn(async () => null as string | null), + kvStore: { + getAllKeysAsync: vi.fn(async () => [] as Array), + multiRemove: vi.fn(async () => undefined), + removeItemAsync: vi.fn(async () => undefined), + setItem: vi.fn(async () => undefined), + }, + reloadAppAsync: vi.fn(async () => undefined), + setItemAsync: vi.fn(async () => undefined), +})); + +vi.mock("expo", () => ({ + reloadAppAsync: mocks.reloadAppAsync, +})); + +vi.mock("expo-secure-store", () => ({ + AFTER_FIRST_UNLOCK: "AFTER_FIRST_UNLOCK", + ALWAYS: "ALWAYS", + deleteItemAsync: mocks.deleteItemAsync, + getItemAsync: mocks.getItemAsync, + setItemAsync: mocks.setItemAsync, +})); + +vi.mock("expo-sqlite/kv-store", () => ({ + default: mocks.kvStore, +})); + +vi.mock("../src/shared.js", () => ({ + createEvoluDeps: mocks.createSharedEvoluDeps, + createSharedLocalAuth: mocks.createSharedLocalAuth, +})); + +const createStorage = () => { + const deps = createExpoDeps({ + createSqliteDriver: vi.fn() as any, + }); + return { + deps, + secureStorage: (deps.localAuth as { secureStorage: any }).secureStorage, + }; +}; + +describe("createExpoDeps", () => { + beforeEach(() => { + vi.clearAllMocks(); + mocks.kvStore.getAllKeysAsync.mockResolvedValue([]); + mocks.getItemAsync.mockResolvedValue(null); + }); + + test("wires shared deps and reload callback", () => { + const createSqliteDriver = vi.fn() as any; + const deps = createExpoDeps({ createSqliteDriver }); + + expect(mocks.createSharedEvoluDeps).toHaveBeenCalledWith( + expect.objectContaining({ + createSqliteDriver, + reloadApp: expect.any(Function), + }), + ); + + deps.evoluReactNativeDeps.reloadApp(); + expect(mocks.reloadAppAsync).toHaveBeenCalledTimes(1); + }); + + test("setItem stores metadata and supports all access controls", async () => { + const { secureStorage } = createStorage(); + + await secureStorage.setItem("token", "v1", { + accessControl: "none", + authenticationPrompt: { title: "Auth prompt" } as any, + keychainGroup: "group.none", + service: "svc", + }); + + const payload = JSON.parse(mocks.setItemAsync.mock.calls[0][1]); + expect(mocks.kvStore.setItem).toHaveBeenCalledWith("svc-token", "1"); + expect(payload.metadata).toEqual( + expect.objectContaining({ + accessControl: "biometryCurrentSet", + securityLevel: "biometry", + backend: "keychain", + timestamp: expect.any(Number), + }), + ); + expect(mocks.setItemAsync.mock.calls[0][2]).toEqual( + expect.objectContaining({ + accessGroup: "group.none", + keychainAccessible: "ALWAYS", + keychainService: "svc", + authenticationPrompt: "Auth prompt", + requireAuthentication: false, + }), + ); + + const secureAccessControls = [ + "biometryCurrentSet", + "biometryAny", + "devicePasscode", + "secureEnclaveBiometry", + "unknown-value", + ] as const; + + for (const accessControl of secureAccessControls) { + await secureStorage.setItem("token", "v2", { + accessControl: accessControl as any, + service: "svc", + }); + const options = mocks.setItemAsync.mock.calls.at(-1)?.[2]; + expect(options).toEqual( + expect.objectContaining({ + keychainAccessible: "AFTER_FIRST_UNLOCK", + requireAuthentication: accessControl !== "none", + }), + ); + } + }); + + test("getItem handles missing, invalid, and valid payloads", async () => { + const { secureStorage } = createStorage(); + + mocks.getItemAsync.mockResolvedValueOnce(null); + await expect(secureStorage.getItem("key")).resolves.toBeNull(); + + mocks.getItemAsync.mockResolvedValueOnce("{invalid"); + await expect(secureStorage.getItem("key")).resolves.toBeNull(); + + mocks.getItemAsync.mockResolvedValueOnce( + JSON.stringify({ + value: "secret", + metadata: { accessControl: "none", securityLevel: "software" }, + }), + ); + await expect( + secureStorage.getItem("key", { service: "svc" }), + ).resolves.toEqual( + expect.objectContaining({ + key: "key", + service: "svc", + value: "secret", + }), + ); + }); + + test("deleteItem, getAllItems, and clearService use service-scoped keys", async () => { + const { secureStorage } = createStorage(); + + await expect( + secureStorage.deleteItem("alpha", { service: "svc" }), + ).resolves.toBe(true); + + expect(mocks.kvStore.removeItemAsync).toHaveBeenCalledWith("svc-alpha"); + expect(mocks.deleteItemAsync).toHaveBeenCalledWith( + "alpha", + expect.objectContaining({ + keychainService: "svc", + }), + ); + + mocks.kvStore.getAllKeysAsync.mockResolvedValueOnce([ + "svc-a", + "other-b", + "svc-c", + ]); + const items = await secureStorage.getAllItems({ + accessControl: "none", + service: "svc", + }); + expect(items).toEqual([ + expect.objectContaining({ + key: "a", + service: "svc", + metadata: expect.objectContaining({ + accessControl: "biometryCurrentSet", + securityLevel: "biometry", + }), + }), + expect.objectContaining({ + key: "c", + service: "svc", + }), + ]); + + mocks.kvStore.getAllKeysAsync.mockResolvedValueOnce(["svc-a", "svc-c"]); + await secureStorage.clearService({ service: "svc" }); + expect(mocks.kvStore.multiRemove).toHaveBeenCalledWith(["svc-a", "svc-c"]); + expect(mocks.deleteItemAsync).toHaveBeenCalledWith( + "a", + expect.objectContaining({ + keychainService: "svc", + }), + ); + expect(mocks.deleteItemAsync).toHaveBeenCalledWith( + "c", + expect.objectContaining({ + keychainService: "svc", + }), + ); + }); + + test("falls back to default service and option mapping when options are omitted", async () => { + const { secureStorage } = createStorage(); + + await secureStorage.setItem("beta", "value"); + expect(mocks.kvStore.setItem).toHaveBeenCalledWith("default-beta", "1"); + expect(mocks.setItemAsync.mock.calls.at(-1)?.[2]).toEqual( + expect.objectContaining({ + keychainService: expect.any(String), + }), + ); + + await secureStorage.deleteItem("beta"); + expect(mocks.kvStore.removeItemAsync).toHaveBeenCalledWith("default-beta"); + + const previousDefaults = { + authenticationPrompt: localAuthDefaultOptions.authenticationPrompt, + keychainGroup: localAuthDefaultOptions.keychainGroup, + service: localAuthDefaultOptions.service, + }; + (localAuthDefaultOptions as any).keychainGroup = undefined; + (localAuthDefaultOptions as any).service = undefined; + (localAuthDefaultOptions as any).authenticationPrompt = undefined; + + await secureStorage.setItem("gamma", "value"); + expect(mocks.setItemAsync.mock.calls.at(-1)?.[2]).toEqual( + expect.objectContaining({ + accessGroup: "", + keychainService: "", + authenticationPrompt: "", + }), + ); + + (localAuthDefaultOptions as any).keychainGroup = + previousDefaults.keychainGroup; + (localAuthDefaultOptions as any).service = previousDefaults.service; + (localAuthDefaultOptions as any).authenticationPrompt = + previousDefaults.authenticationPrompt; + + mocks.kvStore.getAllKeysAsync.mockResolvedValueOnce(["default-beta"]); + await secureStorage.clearService(); + expect(mocks.kvStore.multiRemove).toHaveBeenCalledWith(["default-beta"]); + }); +}); diff --git a/packages/react-native/test/Entrypoints.test.ts b/packages/react-native/test/Entrypoints.test.ts new file mode 100644 index 000000000..9c7c28d0a --- /dev/null +++ b/packages/react-native/test/Entrypoints.test.ts @@ -0,0 +1,39 @@ +import { afterEach, describe, expect, test, vi } from "vitest"; + +afterEach(() => { + vi.clearAllMocks(); + vi.resetModules(); +}); + +describe("react-native package entrypoints", () => { + test("web entrypoint re-exports react package", async () => { + vi.doMock("@evolu/react", () => ({ + marker: "react-web-export", + useEvolu: vi.fn(), + })); + + const web = await import("../src/web.js"); + expect(web.marker).toBe("react-web-export"); + }); + + test("index entrypoint re-exports component/task/worker modules", async () => { + vi.doMock("../src/components/EvoluIdenticon.js", () => ({ + EvoluIdenticon: "EvoluIdenticonExport", + })); + vi.doMock("../src/Task.js", () => ({ + createRunner: "createRunnerExport", + })); + vi.doMock("../src/Worker.js", () => ({ + createWorker: "createWorkerExport", + })); + + const index = await import("../src/index.js"); + expect(index).toEqual( + expect.objectContaining({ + EvoluIdenticon: "EvoluIdenticonExport", + createRunner: "createRunnerExport", + createWorker: "createWorkerExport", + }), + ); + }); +}); diff --git a/packages/react-native/test/EvoluIdenticon.test.tsx b/packages/react-native/test/EvoluIdenticon.test.tsx new file mode 100644 index 000000000..70c748e1d --- /dev/null +++ b/packages/react-native/test/EvoluIdenticon.test.tsx @@ -0,0 +1,54 @@ +import { describe, expect, test, vi } from "vitest"; +import { EvoluIdenticon } from "../src/components/EvoluIdenticon.js"; + +const createIdenticon = vi.hoisted(() => vi.fn(() => "")); + +vi.mock("@evolu/common", () => ({ + createIdenticon, +})); + +vi.mock("react", async () => { + const actual = await vi.importActual("react"); + return { + ...actual, + useMemo: (factory: () => unknown) => factory(), + }; +}); + +vi.mock("react-native", () => ({ + View: "View", +})); + +vi.mock("react-native-svg", () => ({ + SvgXml: "SvgXml", +})); + +describe("EvoluIdenticon", () => { + test("renders SvgXml wrapper for valid id", () => { + const style = { background: "black" } as any; + const output = EvoluIdenticon({ + borderRadius: 8, + id: "owner-1" as any, + size: 40, + style, + }) as any; + + expect(createIdenticon).toHaveBeenCalledWith("owner-1", style); + expect(output).not.toBeNull(); + expect(output.props.style).toEqual({ + width: 40, + height: 40, + borderRadius: 8, + overflow: "hidden", + }); + expect(output.props.children.props).toEqual({ + xml: "", + width: 40, + height: 40, + }); + }); + + test("returns null for falsy id", () => { + expect(EvoluIdenticon({ id: "" as any })).toBeNull(); + }); +}); diff --git a/packages/react-native/test/Exports.test.ts b/packages/react-native/test/Exports.test.ts new file mode 100644 index 000000000..9bf11c6b7 --- /dev/null +++ b/packages/react-native/test/Exports.test.ts @@ -0,0 +1,132 @@ +import { afterEach, describe, expect, test, vi } from "vitest"; + +const nativeMocks = vi.hoisted(() => ({ + reload: vi.fn(), + sensitiveInfo: { kind: "sensitive-info" }, +})); + +vi.mock("react-native", () => ({ + DevSettings: { reload: nativeMocks.reload }, +})); + +vi.mock("react-native-sensitive-info", () => ({ + SensitiveInfo: nativeMocks.sensitiveInfo, +})); + +const reset = () => { + vi.clearAllMocks(); + vi.resetModules(); +}; + +afterEach(() => { + process.env.NODE_ENV = "test"; + reset(); +}); + +describe("react-native export entrypoints", () => { + test("expo-sqlite entrypoint wires createEvoluDeps and createExpoDeps", async () => { + const reloadAppAsync = vi.fn(async () => undefined); + const createSharedEvoluDeps = vi.fn((deps) => deps); + const createExpoDeps = vi.fn(() => ({ + evoluReactNativeDeps: { kind: "expo-react-native-deps" }, + localAuth: { kind: "expo-local-auth" }, + })); + const createExpoSqliteDriver = vi.fn(); + + vi.doMock("expo", () => ({ reloadAppAsync })); + vi.doMock("../src/shared.js", () => ({ + createEvoluDeps: createSharedEvoluDeps, + })); + vi.doMock("../src/createExpoDeps.js", () => ({ + createExpoDeps, + })); + vi.doMock("../src/sqlite-drivers/createExpoSqliteDriver.js", () => ({ + createExpoSqliteDriver, + })); + + const mod = await import("../src/exports/expo-sqlite.js"); + + expect(createExpoDeps).toHaveBeenCalledWith({ + createSqliteDriver: createExpoSqliteDriver, + }); + expect(mod.evoluReactNativeDeps).toEqual({ + kind: "expo-react-native-deps", + }); + expect(mod.localAuth).toEqual({ kind: "expo-local-auth" }); + + const deps = mod.createEvoluDeps(); + deps.reloadApp(); + + expect(createSharedEvoluDeps).toHaveBeenCalledWith({ + createSqliteDriver: createExpoSqliteDriver, + reloadApp: expect.any(Function), + }); + expect(reloadAppAsync).toHaveBeenCalledTimes(1); + }); + + test("expo-op-sqlite entrypoint delegates to createExpoDeps", async () => { + const createExpoDeps = vi.fn(() => ({ + evoluReactNativeDeps: { kind: "expo-op-deps" }, + localAuth: { kind: "expo-op-auth" }, + })); + const createOpSqliteDriver = vi.fn(); + + vi.doMock("../src/createExpoDeps.js", () => ({ + createExpoDeps, + })); + vi.doMock("../src/sqlite-drivers/createOpSqliteDriver.js", () => ({ + createOpSqliteDriver, + })); + + const mod = await import("../src/exports/expo-op-sqlite.js"); + + expect(createExpoDeps).toHaveBeenCalledWith({ + createSqliteDriver: createOpSqliteDriver, + }); + expect(mod.evoluReactNativeDeps).toEqual({ kind: "expo-op-deps" }); + expect(mod.localAuth).toEqual({ kind: "expo-op-auth" }); + }); + + test("bare-op-sqlite entrypoint reloads only in development", async () => { + nativeMocks.reload.mockClear(); + const createEvoluDeps = vi.fn((deps) => deps); + const createSharedLocalAuth = vi.fn(() => ({ kind: "bare-auth" })); + const createOpSqliteDriver = vi.fn(); + + vi.doMock("../src/shared.js", () => ({ + createEvoluDeps, + createSharedLocalAuth, + })); + vi.doMock("../src/sqlite-drivers/createOpSqliteDriver.js", () => ({ + createOpSqliteDriver, + })); + + process.env.NODE_ENV = "development"; + const devModule = await import("../src/exports/bare-op-sqlite.js"); + devModule.evoluReactNativeDeps.reloadApp(); + expect(nativeMocks.reload).toHaveBeenCalledTimes(1); + expect(createEvoluDeps).toHaveBeenCalledWith({ + createSqliteDriver: createOpSqliteDriver, + reloadApp: expect.any(Function), + }); + expect(createSharedLocalAuth).toHaveBeenCalledWith({ + kind: "sensitive-info", + }); + expect(devModule.localAuth).toEqual({ kind: "bare-auth" }); + + const previousReloadCalls = nativeMocks.reload.mock.calls.length; + vi.resetModules(); + vi.doMock("../src/shared.js", () => ({ + createEvoluDeps: vi.fn((deps) => deps), + createSharedLocalAuth: vi.fn(() => ({ kind: "bare-auth" })), + })); + vi.doMock("../src/sqlite-drivers/createOpSqliteDriver.js", () => ({ + createOpSqliteDriver, + })); + + process.env.NODE_ENV = "production"; + const prodModule = await import("../src/exports/bare-op-sqlite.js"); + prodModule.evoluReactNativeDeps.reloadApp(); + expect(nativeMocks.reload).toHaveBeenCalledTimes(previousReloadCalls); + }); +}); diff --git a/packages/react-native/test/Shared.test.ts b/packages/react-native/test/Shared.test.ts new file mode 100644 index 000000000..280946087 --- /dev/null +++ b/packages/react-native/test/Shared.test.ts @@ -0,0 +1,101 @@ +import { describe, expect, test, vi } from "vitest"; +import { createEvoluDeps, createSharedLocalAuth } from "../src/shared.js"; + +const mocks = vi.hoisted(() => { + const workerRun = vi.fn(); + return { + createCommonEvoluDeps: vi.fn((deps) => deps), + createConsoleStoreOutput: vi.fn(() => ({ entry: "console-entry" })), + createInMemoryLeaderLock: vi.fn(() => "leader-lock"), + createLocalAuth: vi.fn((deps) => ({ kind: "local-auth", deps })), + createMessageChannel: vi.fn(() => "message-channel"), + createMessagePort: vi.fn(() => "message-port"), + createRandomBytes: vi.fn(() => "random-bytes"), + createRun: vi.fn(() => workerRun), + createSharedWorker: vi.fn((init) => { + init({ kind: "shared-self" } as any); + return { kind: "shared-worker" }; + }), + createWorker: vi.fn((init) => { + init({ kind: "db-self" } as any); + return { kind: "db-worker" }; + }), + initDbWorker: vi.fn((self) => ({ kind: "db-task", self })), + initSharedWorker: vi.fn((self) => ({ kind: "shared-task", self })), + workerRun, + }; +}); + +vi.mock("@evolu/common", () => ({ + createConsoleStoreOutput: mocks.createConsoleStoreOutput, + createInMemoryLeaderLock: mocks.createInMemoryLeaderLock, + createLocalAuth: mocks.createLocalAuth, + createRandomBytes: mocks.createRandomBytes, + createRun: mocks.createRun, +})); + +vi.mock("@evolu/common/local-first", () => ({ + createEvoluDeps: mocks.createCommonEvoluDeps, + initDbWorker: mocks.initDbWorker, + initSharedWorker: mocks.initSharedWorker, +})); + +vi.mock("../src/Worker.js", () => ({ + createMessageChannel: mocks.createMessageChannel, + createMessagePort: mocks.createMessagePort, + createSharedWorker: mocks.createSharedWorker, + createWorker: mocks.createWorker, +})); + +describe("shared react-native deps", () => { + test("createEvoluDeps wires worker bootstrap through common deps", () => { + const reloadApp = vi.fn(); + const createSqliteDriver = vi.fn() as any; + + const deps = createEvoluDeps({ createSqliteDriver, reloadApp } as any); + const dbWorker = (deps as any).createDbWorker(); + + expect(dbWorker).toEqual({ kind: "db-worker" }); + expect(mocks.createRun).toHaveBeenCalledWith( + expect.objectContaining({ + consoleStoreOutputEntry: "console-entry", + createMessagePort: mocks.createMessagePort, + createSqliteDriver, + leaderLock: "leader-lock", + }), + ); + expect(mocks.initSharedWorker).toHaveBeenCalledWith({ + kind: "shared-self", + }); + expect(mocks.initDbWorker).toHaveBeenCalledWith({ kind: "db-self" }); + expect(mocks.workerRun).toHaveBeenCalledWith({ + kind: "shared-task", + self: { kind: "shared-self" }, + }); + expect(mocks.workerRun).toHaveBeenCalledWith({ + kind: "db-task", + self: { kind: "db-self" }, + }); + expect(mocks.createCommonEvoluDeps).toHaveBeenCalledWith( + expect.objectContaining({ + createDbWorker: expect.any(Function), + createMessageChannel: mocks.createMessageChannel, + reloadApp, + sharedWorker: { kind: "shared-worker" }, + }), + ); + }); + + test("createSharedLocalAuth passes random bytes and secure storage", () => { + const secureStorage = { getItem: vi.fn() } as any; + const localAuth = createSharedLocalAuth(secureStorage); + + expect(localAuth).toEqual({ + kind: "local-auth", + deps: { + randomBytes: "random-bytes", + secureStorage, + }, + }); + }); +}); diff --git a/packages/react-native/test/SqliteDriver.test.ts b/packages/react-native/test/SqliteDriver.test.ts index 1ecbbe106..86eba24e2 100644 --- a/packages/react-native/test/SqliteDriver.test.ts +++ b/packages/react-native/test/SqliteDriver.test.ts @@ -1,34 +1,202 @@ import { SimpleName, testCreateRun } from "@evolu/common"; -import { assert, describe, expect, test, vi } from "vitest"; +import { assert, beforeEach, describe, expect, test, vi } from "vitest"; -vi.mock("@op-engineering/op-sqlite", () => { - return { - open: vi.fn(), - }; -}); +vi.mock("@op-engineering/op-sqlite", () => ({ + open: vi.fn(), +})); + +vi.mock("expo-sqlite", () => ({ + openDatabaseSync: vi.fn(), +})); import { open } from "@op-engineering/op-sqlite"; +import { openDatabaseSync } from "expo-sqlite"; +import { createExpoSqliteDriver } from "../src/sqlite-drivers/createExpoSqliteDriver.js"; import { createOpSqliteDriver } from "../src/sqlite-drivers/createOpSqliteDriver.js"; const testName = SimpleName.orThrow("Test"); -const createMockDb = (getDbPath: () => string) => ({ - getDbPath, - close: vi.fn(), - prepareStatement: vi.fn(() => ({ - bindSync: vi.fn(), - })), - executeSync: vi.fn(() => ({ - rows: [], - rowsAffected: 0, - })), +const createQuery = (sql: string, prepared = false) => + ({ + sql: sql as any, + parameters: [] as Array, + ...(prepared ? { options: { prepare: true } } : {}), + }) as const; + +beforeEach(() => { + vi.clearAllMocks(); +}); + +describe("createExpoSqliteDriver", () => { + test("opens memory database and executes non-prepared query", async () => { + const resultSet = { + changes: 2, + getAllSync: vi.fn(() => [{ id: 1 }]), + resetSync: vi.fn(), + }; + const statement = { + executeSync: vi.fn(() => resultSet), + finalizeSync: vi.fn(), + }; + const db = { + closeSync: vi.fn(), + execSync: vi.fn(), + prepareSync: vi.fn(() => statement), + serializeSync: vi.fn(() => new Uint8Array([1, 2, 3])), + }; + vi.mocked(openDatabaseSync).mockReturnValue(db as any); + + await using run = testCreateRun(); + const taskResult = await run( + createExpoSqliteDriver(testName, { mode: "memory" }), + ); + assert(taskResult.ok); + + const execResult = taskResult.value.exec(createQuery("select 1")); + expect(execResult).toEqual({ rows: [{ id: 1 }], changes: 2 }); + expect(Array.from(taskResult.value.export())).toEqual([1, 2, 3]); + expect(resultSet.resetSync).toHaveBeenCalledTimes(1); + expect(statement.finalizeSync).toHaveBeenCalledTimes(1); + expect(openDatabaseSync).toHaveBeenCalledWith(":memory:"); + }); + + test("encrypts db, uses prepared cache path, and disposes idempotently", async () => { + const resultSet = { + changes: 1, + getAllSync: vi.fn(() => [{ prepared: true }]), + resetSync: vi.fn(), + }; + const preparedStatement = { + executeSync: vi.fn(() => resultSet), + finalizeSync: vi.fn(), + }; + const db = { + closeSync: vi.fn(), + execSync: vi.fn(), + prepareSync: vi.fn(() => preparedStatement), + serializeSync: vi.fn(() => new Uint8Array([4, 5])), + }; + vi.mocked(openDatabaseSync).mockReturnValue(db as any); + + await using run = testCreateRun(); + const taskResult = await run( + createExpoSqliteDriver(testName, { + mode: "encrypted", + encryptionKey: new Uint8Array([1, 2, 3]) as any, + }), + ); + assert(taskResult.ok); + + const query = createQuery("select prepared", true); + taskResult.value.exec(query); + taskResult.value.exec(query); + + expect(db.execSync).toHaveBeenCalledWith(`PRAGMA key = "x'010203'"`); + expect(db.prepareSync).toHaveBeenCalledTimes(1); + expect(preparedStatement.executeSync).toHaveBeenCalledTimes(2); + + taskResult.value[Symbol.dispose](); + taskResult.value[Symbol.dispose](); + + expect(preparedStatement.finalizeSync).toHaveBeenCalledTimes(1); + expect(db.closeSync).toHaveBeenCalledTimes(1); + }); + + test("exports Uint8Array when serialize result is not ArrayBuffer-backed view", async () => { + const statement = { + executeSync: vi.fn(() => ({ + changes: 0, + getAllSync: vi.fn(() => []), + resetSync: vi.fn(), + })), + finalizeSync: vi.fn(), + }; + const db = { + closeSync: vi.fn(), + execSync: vi.fn(), + prepareSync: vi.fn(() => statement), + serializeSync: vi.fn(() => [9, 8, 7]), + }; + vi.mocked(openDatabaseSync).mockReturnValue(db as any); + + await using run = testCreateRun(); + const taskResult = await run(createExpoSqliteDriver(testName)); + assert(taskResult.ok); + + expect(Array.from(taskResult.value.export())).toEqual([9, 8, 7]); + }); }); describe("createOpSqliteDriver", () => { - test("export throws clear error with db path", async () => { - vi.mocked(open).mockReturnValue( - createMockDb(() => "/tmp/evolu1-Test.db") as any, + test("opens memory db and executes non-prepared query", async () => { + const prepared = { + bindSync: vi.fn(), + }; + const db = { + close: vi.fn(), + executeSync: vi.fn(() => ({ rows: [{ ok: true }], rowsAffected: 4 })), + getDbPath: vi.fn(() => "/tmp/evolu1-Test.db"), + prepareStatement: vi.fn(() => prepared), + }; + vi.mocked(open).mockReturnValue(db as any); + + await using run = testCreateRun(); + const taskResult = await run( + createOpSqliteDriver(testName, { mode: "memory" }), ); + assert(taskResult.ok); + + const execResult = taskResult.value.exec(createQuery("select 1")); + expect(execResult).toEqual({ rows: [{ ok: true }], changes: 4 }); + expect(db.prepareStatement).not.toHaveBeenCalled(); + expect(open).toHaveBeenCalledWith({ + name: "inMemoryDb", + location: ":memory:", + }); + }); + + test("uses encrypted config and binds parameters for prepared query", async () => { + const prepared = { + bindSync: vi.fn(), + }; + const db = { + close: vi.fn(), + executeSync: vi.fn(() => ({ rows: [], rowsAffected: 0 })), + getDbPath: vi.fn(() => "/tmp/evolu1-Test.db"), + prepareStatement: vi.fn(() => prepared), + }; + vi.mocked(open).mockReturnValue(db as any); + + await using run = testCreateRun(); + const taskResult = await run( + createOpSqliteDriver(testName, { + mode: "encrypted", + encryptionKey: new Uint8Array([10, 11]) as any, + }), + ); + assert(taskResult.ok); + + const query = { + sql: "select prepared" as any, + parameters: [1, "a"] as any, + options: { prepare: true }, + }; + taskResult.value.exec(query); + + expect(open).toHaveBeenCalledWith({ + name: "evolu1-Test.db", + encryptionKey: "x'0a0b'", + }); + expect(prepared.bindSync).toHaveBeenCalledWith([1, "a"]); + }); + + test("export throws clear error with db path", async () => { + vi.mocked(open).mockReturnValue({ + close: vi.fn(), + executeSync: vi.fn(() => ({ rows: [], rowsAffected: 0 })), + getDbPath: vi.fn(() => "/tmp/evolu1-Test.db"), + prepareStatement: vi.fn(() => ({ bindSync: vi.fn() })), + } as any); await using run = testCreateRun(); const result = await run(createOpSqliteDriver(testName)); @@ -43,11 +211,14 @@ describe("createOpSqliteDriver", () => { }); test("export throws clear error even when db path is unavailable", async () => { - vi.mocked(open).mockReturnValue( - createMockDb(() => { + vi.mocked(open).mockReturnValue({ + close: vi.fn(), + executeSync: vi.fn(() => ({ rows: [], rowsAffected: 0 })), + getDbPath: vi.fn(() => { throw new Error("path unavailable"); - }) as any, - ); + }), + prepareStatement: vi.fn(() => ({ bindSync: vi.fn() })), + } as any); await using run = testCreateRun(); const result = await run(createOpSqliteDriver(testName)); @@ -58,4 +229,23 @@ describe("createOpSqliteDriver", () => { ); expect(() => result.value.export()).not.toThrowError(/Database path:/); }); + + test("dispose is idempotent", async () => { + const db = { + close: vi.fn(), + executeSync: vi.fn(() => ({ rows: [], rowsAffected: 0 })), + getDbPath: vi.fn(() => "/tmp/evolu1-Test.db"), + prepareStatement: vi.fn(() => ({ bindSync: vi.fn() })), + }; + vi.mocked(open).mockReturnValue(db as any); + + await using run = testCreateRun(); + const result = await run(createOpSqliteDriver(testName)); + assert(result.ok); + + result.value[Symbol.dispose](); + result.value[Symbol.dispose](); + + expect(db.close).toHaveBeenCalledTimes(1); + }); }); diff --git a/packages/react-native/test/mocks/react-native-sensitive-info.ts b/packages/react-native/test/mocks/react-native-sensitive-info.ts new file mode 100644 index 000000000..e93c308da --- /dev/null +++ b/packages/react-native/test/mocks/react-native-sensitive-info.ts @@ -0,0 +1,3 @@ +export const SensitiveInfo = { + kind: "sensitive-info", +}; diff --git a/packages/react-native/test/mocks/react-native.ts b/packages/react-native/test/mocks/react-native.ts new file mode 100644 index 000000000..d65d49043 --- /dev/null +++ b/packages/react-native/test/mocks/react-native.ts @@ -0,0 +1,5 @@ +export const DevSettings = { + reload: (): void => {}, +}; + +export const View = "View"; diff --git a/packages/react-native/vitest.config.ts b/packages/react-native/vitest.config.ts index 4edb62f48..fcac4ba10 100644 --- a/packages/react-native/vitest.config.ts +++ b/packages/react-native/vitest.config.ts @@ -1,9 +1,21 @@ +import { fileURLToPath } from "node:url"; import { defineProject } from "vitest/config"; export default defineProject({ + resolve: { + alias: { + "react-native": fileURLToPath( + new URL("./test/mocks/react-native.ts", import.meta.url), + ), + "react-native-sensitive-info": fileURLToPath( + new URL("./test/mocks/react-native-sensitive-info.ts", import.meta.url), + ), + }, + }, test: { + name: "react-native", setupFiles: ["./test/setup.ts"], exclude: ["**/node_modules/**", "**/dist/**"], - include: ["test/**/*.test.ts"], + include: ["test/**/*.test.ts", "test/**/*.test.tsx"], }, }); diff --git a/packages/tanstack-start/README.md b/packages/tanstack-start/README.md new file mode 100644 index 000000000..1b1a042a0 --- /dev/null +++ b/packages/tanstack-start/README.md @@ -0,0 +1,3 @@ +# @evolu/tanstack-start + +Private helper package for TanStack Start client boundary integration. diff --git a/packages/tanstack-start/package.json b/packages/tanstack-start/package.json new file mode 100644 index 000000000..9172d35ea --- /dev/null +++ b/packages/tanstack-start/package.json @@ -0,0 +1,32 @@ +{ + "name": "@evolu/tanstack-start", + "version": "0.1.0", + "description": "Evolu integration helpers for TanStack Start client boundaries", + "private": true, + "type": "module", + "types": "./dist/src/index.d.ts", + "exports": { + ".": { + "types": "./dist/src/index.d.ts", + "import": "./dist/src/index.js" + } + }, + "files": [ + "dist/src/**", + "src/**", + "README.md" + ], + "scripts": { + "build": "rimraf dist && tsc --build tsconfig.build.json", + "test": "bunx vitest run", + "clean": "rimraf .turbo node_modules dist" + }, + "devDependencies": { + "@evolu/tsconfig": "workspace:*", + "typescript": "^5.9.3", + "vitest": "^4.0.18" + }, + "engines": { + "node": ">=24.0.0" + } +} diff --git a/packages/tanstack-start/src/index.ts b/packages/tanstack-start/src/index.ts new file mode 100644 index 000000000..8b8916819 --- /dev/null +++ b/packages/tanstack-start/src/index.ts @@ -0,0 +1,26 @@ +export interface TanStackClientOnlyError extends Error { + code: "TANSTACK_CLIENT_ONLY"; +} + +export const isTanStackServerRuntime = (): boolean => + typeof window === "undefined"; + +export const assertTanStackClientRuntime = (): void => { + if (!isTanStackServerRuntime()) return; + + const error = new Error( + "TanStack integration must be initialized from a client boundary.", + ) as TanStackClientOnlyError; + error.name = "TanStackClientOnlyError"; + error.code = "TANSTACK_CLIENT_ONLY"; + throw error; +}; + +export const withTanStackClientRuntime = + , TResult>( + fn: (...args: TArgs) => TResult, + ) => + (...args: TArgs): TResult => { + assertTanStackClientRuntime(); + return fn(...args); + }; diff --git a/packages/tanstack-start/test/index.test.ts b/packages/tanstack-start/test/index.test.ts new file mode 100644 index 000000000..85e8db53e --- /dev/null +++ b/packages/tanstack-start/test/index.test.ts @@ -0,0 +1,70 @@ +import { describe, expect, test } from "vitest"; +import { + assertTanStackClientRuntime, + isTanStackServerRuntime, + withTanStackClientRuntime, +} from "../src/index.js"; + +const windowDescriptor = Object.getOwnPropertyDescriptor(globalThis, "window"); + +const setWindowRuntime = (runtime: "server" | "client"): void => { + Reflect.deleteProperty(globalThis, "window"); + if (runtime === "client") { + Object.defineProperty(globalThis, "window", { + configurable: true, + value: {}, + writable: true, + }); + } +}; + +const restoreWindowRuntime = (): void => { + if (windowDescriptor) { + Object.defineProperty(globalThis, "window", windowDescriptor); + } else { + Reflect.deleteProperty(globalThis, "window"); + } +}; + +describe("@evolu/tanstack-start", () => { + test("detects node runtime as server-side", () => { + setWindowRuntime("server"); + expect(isTanStackServerRuntime()).toBe(true); + restoreWindowRuntime(); + }); + + test("detects browser runtime as client-side", () => { + setWindowRuntime("client"); + expect(isTanStackServerRuntime()).toBe(false); + restoreWindowRuntime(); + }); + + test("throws typed error when initialized outside client boundary", () => { + setWindowRuntime("server"); + try { + assertTanStackClientRuntime(); + throw new Error("Expected assertTanStackClientRuntime to throw"); + } catch (error) { + expect(error).toBeInstanceOf(Error); + expect((error as Error).message).toMatch(/client boundary/i); + expect((error as Error).name).toBe("TanStackClientOnlyError"); + expect((error as { code?: unknown }).code).toBe("TANSTACK_CLIENT_ONLY"); + } finally { + restoreWindowRuntime(); + } + }); + + test("wrapper keeps runtime guard active", () => { + setWindowRuntime("server"); + const wrapped = withTanStackClientRuntime(() => "ok"); + expect(() => wrapped()).toThrowError(/client boundary/i); + restoreWindowRuntime(); + }); + + test("wrapper executes function on client runtime", () => { + setWindowRuntime("client"); + const wrapped = withTanStackClientRuntime((value: string) => value.length); + expect(wrapped("tanstack")).toBe(8); + restoreWindowRuntime(); + }); +}); diff --git a/packages/tanstack-start/tsconfig.build.json b/packages/tanstack-start/tsconfig.build.json new file mode 100644 index 000000000..6dfa9813e --- /dev/null +++ b/packages/tanstack-start/tsconfig.build.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "include": ["src"], + "exclude": ["dist", "node_modules", "test", "vitest.config.ts"], + "references": [ + { "path": "../common/tsconfig.build.json" }, + { "path": "../react/tsconfig.build.json" }, + { "path": "../react-web/tsconfig.build.json" } + ] +} diff --git a/packages/tanstack-start/tsconfig.json b/packages/tanstack-start/tsconfig.json new file mode 100644 index 000000000..47449b548 --- /dev/null +++ b/packages/tanstack-start/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../tsconfig/universal-esm.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": ".", + "tsBuildInfoFile": "dist/.tsBuildInfo" + }, + "include": ["src", "test", "vitest.config.ts"], + "exclude": ["dist", "node_modules"], + "references": [ + { "path": "../common" }, + { "path": "../react" }, + { "path": "../react-web" } + ] +} diff --git a/packages/tanstack-start/vitest.config.ts b/packages/tanstack-start/vitest.config.ts new file mode 100644 index 000000000..1aae956f0 --- /dev/null +++ b/packages/tanstack-start/vitest.config.ts @@ -0,0 +1,10 @@ +import { defineProject } from "vitest/config"; + +export default defineProject({ + test: { + name: "tanstack-start", + include: ["test/**/*.test.ts"], + exclude: ["**/node_modules/**", "**/dist/**"], + environment: "node", + }, +}); diff --git a/packages/tauri/README.md b/packages/tauri/README.md new file mode 100644 index 000000000..114dee8cc --- /dev/null +++ b/packages/tauri/README.md @@ -0,0 +1,3 @@ +# @evolu/tauri + +Private helper package for Tauri runtime detection and integration guards. diff --git a/packages/tauri/package.json b/packages/tauri/package.json new file mode 100644 index 000000000..84c95fddb --- /dev/null +++ b/packages/tauri/package.json @@ -0,0 +1,32 @@ +{ + "name": "@evolu/tauri", + "version": "0.1.0", + "description": "Evolu integration helpers for Tauri WebView runtime detection", + "private": true, + "type": "module", + "types": "./dist/src/index.d.ts", + "exports": { + ".": { + "types": "./dist/src/index.d.ts", + "import": "./dist/src/index.js" + } + }, + "files": [ + "dist/src/**", + "src/**", + "README.md" + ], + "scripts": { + "build": "rimraf dist && tsc --build tsconfig.build.json", + "test": "bunx vitest run", + "clean": "rimraf .turbo node_modules dist" + }, + "devDependencies": { + "@evolu/tsconfig": "workspace:*", + "typescript": "^5.9.3", + "vitest": "^4.0.18" + }, + "engines": { + "node": ">=24.0.0" + } +} diff --git a/packages/tauri/src/index.ts b/packages/tauri/src/index.ts new file mode 100644 index 000000000..c9194ae2e --- /dev/null +++ b/packages/tauri/src/index.ts @@ -0,0 +1,46 @@ +interface MaybeTauriWindow extends Window { + readonly __TAURI__?: unknown; + readonly __TAURI_INTERNALS__?: unknown; +} + +const getWindow = (): MaybeTauriWindow | undefined => { + if (typeof window === "undefined") return undefined; + return window as MaybeTauriWindow; +}; + +export const isTauriRuntime = (): boolean => { + const currentWindow = getWindow(); + if (!currentWindow) return false; + + return ( + currentWindow.__TAURI__ != null || currentWindow.__TAURI_INTERNALS__ != null + ); +}; + +export interface TauriRuntimeInfo { + readonly kind: "tauri" | "web"; + readonly hasTauriBridge: boolean; +} + +export const getTauriRuntimeInfo = (): TauriRuntimeInfo => { + const hasTauriBridge = isTauriRuntime(); + return { + kind: hasTauriBridge ? "tauri" : "web", + hasTauriBridge, + }; +}; + +export interface TauriRuntimeError extends Error { + code: "TAURI_RUNTIME_REQUIRED"; +} + +export const assertTauriRuntime = (): void => { + if (isTauriRuntime()) return; + + const error = new Error( + "Tauri integration helper requires a Tauri WebView runtime.", + ) as TauriRuntimeError; + error.name = "TauriRuntimeError"; + error.code = "TAURI_RUNTIME_REQUIRED"; + throw error; +}; diff --git a/packages/tauri/test/index.test.ts b/packages/tauri/test/index.test.ts new file mode 100644 index 000000000..ea6a92833 --- /dev/null +++ b/packages/tauri/test/index.test.ts @@ -0,0 +1,27 @@ +import { describe, expect, test, vi } from "vitest"; +import { + assertTauriRuntime, + getTauriRuntimeInfo, + isTauriRuntime, +} from "../src/index.js"; + +describe("@evolu/tauri", () => { + test("defaults to web runtime in node test environment", () => { + expect(isTauriRuntime()).toBe(false); + expect(getTauriRuntimeInfo()).toEqual({ + kind: "web", + hasTauriBridge: false, + }); + }); + + test("throws when tauri runtime is required", () => { + expect(() => assertTauriRuntime()).toThrowError(/tauri webview runtime/i); + }); + + test("detects tauri bridge when available", () => { + vi.stubGlobal("window", { __TAURI__: {} }); + expect(isTauriRuntime()).toBe(true); + expect(getTauriRuntimeInfo().kind).toBe("tauri"); + vi.unstubAllGlobals(); + }); +}); diff --git a/packages/tauri/tsconfig.build.json b/packages/tauri/tsconfig.build.json new file mode 100644 index 000000000..6dfa9813e --- /dev/null +++ b/packages/tauri/tsconfig.build.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "include": ["src"], + "exclude": ["dist", "node_modules", "test", "vitest.config.ts"], + "references": [ + { "path": "../common/tsconfig.build.json" }, + { "path": "../react/tsconfig.build.json" }, + { "path": "../react-web/tsconfig.build.json" } + ] +} diff --git a/packages/tauri/tsconfig.json b/packages/tauri/tsconfig.json new file mode 100644 index 000000000..47449b548 --- /dev/null +++ b/packages/tauri/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../tsconfig/universal-esm.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": ".", + "tsBuildInfoFile": "dist/.tsBuildInfo" + }, + "include": ["src", "test", "vitest.config.ts"], + "exclude": ["dist", "node_modules"], + "references": [ + { "path": "../common" }, + { "path": "../react" }, + { "path": "../react-web" } + ] +} diff --git a/packages/tauri/vitest.config.ts b/packages/tauri/vitest.config.ts new file mode 100644 index 000000000..7cb394a15 --- /dev/null +++ b/packages/tauri/vitest.config.ts @@ -0,0 +1,9 @@ +import { defineProject } from "vitest/config"; + +export default defineProject({ + test: { + include: ["test/**/*.test.ts"], + exclude: ["**/node_modules/**", "**/dist/**"], + environment: "node", + }, +}); diff --git a/packages/tsconfig.json b/packages/tsconfig.json index c302d623c..a5ea69d0d 100644 --- a/packages/tsconfig.json +++ b/packages/tsconfig.json @@ -7,6 +7,9 @@ { "path": "react" }, { "path": "react-web" }, { "path": "react-native" }, + { "path": "astro" }, + { "path": "tanstack-start" }, + { "path": "tauri" }, { "path": "svelte" }, { "path": "vue" } ] diff --git a/packages/web/src/local-first/DbWorker.ts b/packages/web/src/local-first/DbWorker.ts index 17d09fdc8..ba4e1e234 100644 --- a/packages/web/src/local-first/DbWorker.ts +++ b/packages/web/src/local-first/DbWorker.ts @@ -20,6 +20,7 @@ import { createWasmSqliteDriver } from "../Sqlite.js"; import { createRun } from "../Task.js"; const workerMemoryDbName = "evolu-worker-memory"; +type IntervalHandle = number | ReturnType; interface SharedDbState { driver: SqliteDriver | null; @@ -176,10 +177,8 @@ export const runWebDbWorkerPortWithOptions = ( readonly setInterval?: ( callback: () => void, timeoutMs: number, - ) => ReturnType; - readonly clearInterval?: ( - id: ReturnType, - ) => void; + ) => IntervalHandle; + readonly clearInterval?: (id: IntervalHandle) => void; }, ): void => { const heartbeatTimeoutMs = @@ -196,8 +195,7 @@ export const runWebDbWorkerPortWithOptions = ( let dbName: string | null = null; let schemaVersion: number | null = null; let hasDbRef = false; - let heartbeatWatchdogId: ReturnType | null = - null; + let heartbeatWatchdogId: IntervalHandle | null = null; let lastHeartbeatAt = now(); const markAlive = (): void => { diff --git a/vitest.config.mts b/vitest.config.mts index a2e44aa70..274828e9d 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -14,11 +14,14 @@ export default defineConfig({ "packages/react-web", "packages/nodejs", "packages/react-native", + "packages/astro", + "packages/tanstack-start", + "packages/tauri", ], coverage: { provider: "v8", include: ["packages/*/src/**/*.ts"], - exclude: ["packages/*/src/**/index.ts"], + exclude: ["**/*.d.ts"], reporter: ["text", "html", "json-summary"], }, },

: P; -``` - -Defined in: [packages/common/src/Type.ts:4388](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4388) - -## Type Parameters - -| Type Parameter | -| ------ | -| `P` *extends* [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TrimmedString.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/TrimmedString.mdx deleted file mode 100644 index 4a2cb2ca7..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TrimmedString.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TrimmedString - -```ts -type TrimmedString = string & Brand<"Trimmed">; -``` - -Defined in: [packages/common/src/Type.ts:1296](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1296) - -Trimmed string - -- Use `TrimmedString.is` to check if an unknown value is trimmed. -- Use `TrimmedString.from` to check if a string is trimmed. diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TrimmedString100.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/TrimmedString100.mdx deleted file mode 100644 index bb0fec079..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TrimmedString100.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TrimmedString100 - -```ts -type TrimmedString100 = string & Brand<"Trimmed"> & Brand<"MaxLength100">; -``` - -Defined in: [packages/common/src/Type.ts:1431](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1431) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TrimmedString1000.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/TrimmedString1000.mdx deleted file mode 100644 index f3199ef69..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TrimmedString1000.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TrimmedString1000 - -```ts -type TrimmedString1000 = string & Brand<"Trimmed"> & Brand<"MaxLength1000">; -``` - -Defined in: [packages/common/src/Type.ts:1435](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1435) diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx deleted file mode 100644 index 75cbb8a7f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypeErrorFormatter.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TypeErrorFormatter - -```ts -type TypeErrorFormatter = (error: Error) => string; -``` - -Defined in: [packages/common/src/Type.ts:671](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L671) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Error` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `error` | `Error` | - -## Returns - -`string` diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypeErrors.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypeErrors.mdx deleted file mode 100644 index 2dc04c99b..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypeErrors.mdx +++ /dev/null @@ -1,69 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TypeErrors - -```ts -type TypeErrors = - | StringError - | NumberError - | BigIntError - | BooleanError - | UndefinedError - | NullError - | FunctionError - | Uint8ArrayError - | InstanceOfError - | EvoluTypeError - | CurrencyCodeError - | DateIsoError - | TrimmedError - | MinLengthError - | MaxLengthError - | LengthError - | MnemonicError - | RegexError - | SimplePasswordError - | IdError - | TableIdError - | PositiveError - | NegativeError - | NonPositiveError - | NonNegativeError - | IntError - | GreaterThanError - | LessThanError - | GreaterThanOrEqualToError - | LessThanOrEqualToError - | NonNaNError - | FiniteError - | MultipleOfError - | BetweenError - | LiteralError - | Int64Error - | Int64StringError - | JsonError - | ExtraErrors - | ArrayError> - | SetError> - | RecordError, TypeErrors> - | ObjectError>> - | ObjectWithRecordError>, TypeErrors, TypeErrors> - | UnionError> -| TupleError>; -``` - -Defined in: [packages/common/src/Type.ts:4439](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4439) - -Union of all `TypeError`s defined in the `Type.ts` file, including base type -errors (e.g., `StringError`, `NumberError`), composite type errors -(`ArrayError`, `ObjectError`), and optionally, user-defined extra errors. - -This type is **recursive**, meaning errors can be nested within composite -structures like arrays, objects, records, unions, and tuples. - -Used by [createFormatTypeError](/docs/api-reference/common/Type/functions/createFormatTypeError.mdx) to generate human-readable error -messages. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `ExtraErrors` *extends* [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx) | `never` | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypeName.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypeName.mdx deleted file mode 100644 index 5cfd499ee..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypeName.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TypeName - -```ts -type TypeName = Capitalize; -``` - -Defined in: [packages/common/src/Type.ts:474](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L474) - -Unique identifier for a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypedType.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypedType.mdx deleted file mode 100644 index e3781c8ce..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/TypedType.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TypedType - -```ts -type TypedType = ObjectType<{ - type: LiteralType; -} & Props>; -``` - -Defined in: [packages/common/src/Type.ts:3508](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3508) - -Return type of [typed](/docs/api-reference/common/Type/functions/typed.mdx). - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Tag` *extends* `Capitalize`\<`string`\> | - | -| `Props` *extends* `Record`\<`string`, [`AnyType`](/docs/api-reference/common/Type/type-aliases/AnyType.mdx)\> | `Record`\<`never`, `never`\> | diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/UnknownNextResult.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/UnknownNextResult.mdx deleted file mode 100644 index f595e36d7..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/UnknownNextResult.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / UnknownNextResult - -```ts -type UnknownNextResult = Readonly<{ value: unknown; ok: true; }> | Readonly<{ error: unknown; ok: false; }>; -``` - -Defined in: [packages/common/src/Type.ts:3728](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3728) - -A [nextResult](/docs/api-reference/common/Type/functions/nextResult.mdx) type for `NextResult`. - -Useful for checking if a value is a [NextResult](/docs/api-reference/common/Result/type-aliases/NextResult.mdx) via -`UnknownNextResult.is(value)`. diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/UnknownResult.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/UnknownResult.mdx deleted file mode 100644 index 91e09d48e..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/UnknownResult.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / UnknownResult - -```ts -type UnknownResult = Readonly<{ value: unknown; ok: true; }> | Readonly<{ error: unknown; ok: false; }>; -``` - -Defined in: [packages/common/src/Type.ts:3673](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3673) - -A [result](/docs/api-reference/common/Type/functions/result.mdx) type for `Result`. - -Useful for serializing Results where the value and error types are unknown. diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/UrlSafeString.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/UrlSafeString.mdx deleted file mode 100644 index b813f6c78..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/UrlSafeString.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / UrlSafeString - -```ts -type UrlSafeString = string & Brand<"UrlSafeString">; -``` - -Defined in: [packages/common/src/Type.ts:1541](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1541) - -URL-safe string. - -A `UrlSafeString` uses a limited alphabet that is safe for URLs: - -- Uppercase letters (`A-Z`) -- Lowercase letters (`a-z`) -- Digits (`0-9`) -- Dash (`-`) -- Underscore (`_`) - -This is the same character set used by Base64Url encoding, but this type does -not validate that the string is actually Base64Url-encoded data. - -### Example - -```ts -const result = UrlSafeString.from("abc123_-"); -if (result.ok) { - console.log("Valid URL-safe string:", result.value); -} else { - console.error("Invalid URL-safe string:", result.error); -} -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/type-aliases/UrlSafeStringError.mdx b/.generated/evolu-docs/api-reference/common/Type/type-aliases/UrlSafeStringError.mdx deleted file mode 100644 index 1cc38f3ae..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/type-aliases/UrlSafeStringError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / UrlSafeStringError - -```ts -type UrlSafeStringError = typeof UrlSafeString.Error; -``` - -Defined in: [packages/common/src/Type.ts:1546](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1546) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Base64Url.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Base64Url.mdx deleted file mode 100644 index 93b46cc00..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Base64Url.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Base64Url - -```ts -const Base64Url: brand( - "Base64Url", - String, - (value: string): Result => { - // Round-trip validation ensures consistency across different base64url - // implementations (Node.js Buffer, native browser API, manual fallback). - // Only strings that decode and encode identically are accepted. - let roundTrip; - try { - roundTrip = uint8ArrayToBase64Url( - base64UrlToUint8Array(value as Base64Url), - ); - } catch { - // - } - return roundTrip === value - ? ok(value) - : err({ type: "Base64Url", value }); - }, -); -``` - -Defined in: [packages/common/src/Type.ts:1556](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1556) - -Base64Url without padding. - -Encode with [uint8ArrayToBase64Url](/docs/api-reference/common/Type/variables/uint8ArrayToBase64Url.mdx), decode with -[base64UrlToUint8Array](/docs/api-reference/common/Type/variables/base64UrlToUint8Array.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/BigInt.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/BigInt.mdx deleted file mode 100644 index 47de8142f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/BigInt.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / BigInt - -```ts -const BigInt: base("BigInt", (value) => - typeof value === "bigint" - ? ok(value) - : err({ type: "BigInt", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:763](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L763) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Boolean.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Boolean.mdx deleted file mode 100644 index 546c5e61c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Boolean.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Boolean - -```ts -const Boolean: base("Boolean", (value) => - typeof value === "boolean" - ? ok(value) - : err({ type: "Boolean", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:775](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L775) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/CurrencyCode.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/CurrencyCode.mdx deleted file mode 100644 index 44e28eda4..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/CurrencyCode.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / CurrencyCode - -```ts -const CurrencyCode: brand( - "CurrencyCode", - String, - (value) => - /^[A-Z]{3}$/.test(value) - ? ok(value) - : err({ type: "CurrencyCode", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:1137](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1137) - -A three-letter ISO 4217 currency code (e.g., USD, EUR). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Date.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Date.mdx deleted file mode 100644 index 32c195258..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Date.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Date - -```ts -const Date: instanceOf(globalThis.Date); -``` - -Defined in: [packages/common/src/Type.ts:887](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L887) - -JavaScript Date. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/DateIso.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/DateIso.mdx deleted file mode 100644 index bda902b83..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/DateIso.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / DateIso - -```ts -const DateIso: brand("DateIso", String, (value) => { - if (value.length !== 24) { - return err({ type: "DateIso", value }); - } - const parsed = globalThis.Date.parse(value); - if (globalThis.Number.isNaN(parsed)) { - return err({ type: "DateIso", value }); - } - // Round-trip test: ensure the string is actually a proper ISO format - const roundTrip = new globalThis.Date(parsed).toISOString(); - if (roundTrip !== value) { - return err({ type: "DateIso", value }); - } - return ok(value); -}); -``` - -Defined in: [packages/common/src/Type.ts:1176](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1176) - -ISO 8601 date-time string. - -This [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) represents a date-time string that follows the ISO 8601 -format and is compatible with SQLite, which lacks a native date type and -relies on ISO 8601 strings for sorting. Enforcing a 24-character format -ensures correct lexicographic ordering. - -It must be a valid JavaScript Date string that can be parsed. - -Valid range: `"0000-01-01T00:00:00.000Z"` to `"9999-12-31T23:59:59.999Z"`. - -### Example - -```ts -const result = DateIso.from("2023-01-01T12:00:00.000Z"); // ok -const error = DateIso.from("10000-01-01T00:00:00.000Z"); // err -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/EvoluType.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/EvoluType.mdx deleted file mode 100644 index d0e42793d..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/EvoluType.mdx +++ /dev/null @@ -1,24 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / EvoluType - -```ts -const EvoluType: base("EvoluType", (value) => - isType(value) - ? ok(value) - : err({ - type: "EvoluType", - value, - }), -); -``` - -Defined in: [packages/common/src/Type.ts:901](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L901) - -Validates that an unknown value is an Evolu [Type](/docs/api-reference/common/Type/interfaces/Type.mdx) (i.e., satisfies -`AnyType`). - -### Example - -```ts -const result = EvoluType.from(String); // ok(String) -const error = EvoluType.from("not a Type"); // err -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/FiniteNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/FiniteNumber.mdx deleted file mode 100644 index 922b6eb2c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/FiniteNumber.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / FiniteNumber - -```ts -const FiniteNumber: finite(Number); -``` - -Defined in: [packages/common/src/Type.ts:2291](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2291) - -Finite number. - -This Type ensures that a number is finite. - -**Why is this important?** - -`JSON.stringify` serializes JavaScript numbers into `null` if they are not -finite (e.g., `Infinity`, `-Infinity`, or `NaN`). Using `FiniteNumber` helps -prevent these unexpected behaviors when working with JSON serialization. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Function.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Function.mdx deleted file mode 100644 index 7c7d0260e..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Function.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Function - -```ts -const Function: base("Function", (value) => - isFunction(value) - ? ok(value) - : err({ type: "Function", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:809](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L809) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Id.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Id.mdx deleted file mode 100644 index c55795b41..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Id.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Id - -```ts -const Id: brand("Id", String, (value) => - value.length === 22 && Base64Url.fromParent(value).ok - ? ok(value) - : err({ type: "Id", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:1729](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1729) - -Evolu Id: 16 bytes encoded as a 22‑character Base64Url string. - -There are three ways to create an Evolu Id: - -- [createId](/docs/api-reference/common/Type/functions/createId.mdx) – default cryptographically secure random bytes - (privacy‑preserving) -- [createIdFromString](/docs/api-reference/common/Type/functions/createIdFromString.mdx) – deterministic: first 16 bytes of SHA‑256 of a - string -- [createIdAsUuidv7](/docs/api-reference/common/Type/functions/createIdAsUuidv7.mdx) – optional: embeds timestamp bits (UUID v7 layout) - -Privacy: the default random Id does not leak creation time and is safe to -share or log. The UUID v7 variant leaks creation time anywhere the Id is -copied (logs, URLs, exports); only use it when you explicitly want insertion -locality for very large write‑heavy tables and accept timestamp exposure. - -## Future - -A possible hybrid masked‑time approach (`timestamp ^ H(cluster_id, timestamp - -> > N)`) could provide locality without exposing raw creation time. See -> > https://brooker.co.za/blog/2025/10/22/uuidv7.html diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/IdBytes.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/IdBytes.mdx deleted file mode 100644 index cc6f85081..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/IdBytes.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / IdBytes - -```ts -const IdBytes: brand("IdBytes", length(16)(Uint8Array)); -``` - -Defined in: [packages/common/src/Type.ts:1900](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1900) - -Binary representation of an [Id](/docs/api-reference/common/Type/variables/Id.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Int-1.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Int-1.mdx deleted file mode 100644 index 5742990b1..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Int-1.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Int - -```ts -const Int: int(Number); -``` - -Defined in: [packages/common/src/Type.ts:2085](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2085) - -Integer within the safe range of JavaScript numbers. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Int64.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Int64.mdx deleted file mode 100644 index 447bf8f4b..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Int64.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Int64 - -```ts -const Int64: brand("Int64", BigInt, (value) => - value >= -9223372036854775808n && value <= 9223372036854775807n - ? ok(value) - : err({ type: "Int64", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:4029](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4029) - -64-bit signed integer. - -`Int64` represents a `BigInt` constrained to a 64-bit signed integer range, -which is useful for platforms that do not support the `bigint` type, such as -SQLite. - -Because SQLite lacks a dedicated `bigint` type, it may return `number` or -'Int64` depending on the stored value or even a wrong value if a platform -wrapper does not support it. A workaround for SQLite is to insert 'Int64` -serialized as a string (SQLite will convert it to int) and manually cast the -result to a string in SQL query and then to `Int64` in JS. - -https://www.sqlite.org/c3ref/int64.html diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Int64String.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Int64String.mdx deleted file mode 100644 index a7f3fd975..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Int64String.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Int64String - -```ts -const Int64String: brand( - "Int64", - NonEmptyTrimmedString, - (value) => - trySync( - () => { - const maybeInt = globalThis.BigInt(value); - Int64.orThrow(maybeInt); - return value; - }, - (): Int64StringError => ({ type: "Int64String", value }), - ), -); -``` - -Defined in: [packages/common/src/Type.ts:4048](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4048) - -Stringified [Int64](/docs/api-reference/common/Type/variables/Int64.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Json.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Json.mdx deleted file mode 100644 index e5d231f29..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Json.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Json - -```ts -const Json: brand("Json", String, (value) => { - const result = parseJson(value); - if (!result.ok) return result; - return ok(value); -}); -``` - -Defined in: [packages/common/src/Type.ts:4187](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4187) - -JSON-string [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const result = Json.from('{"key":"value"}'); // ok -const error = Json.from("invalid json"); // err -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/JsonArray.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/JsonArray.mdx deleted file mode 100644 index 3438d52f3..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/JsonArray.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonArray - -```ts -JsonArray: array(JsonValue); -``` - -Defined in: [packages/common/src/Type.ts:4105](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4105) - -JSON-compatible array of [JsonValue](/docs/api-reference/common/Type/variables/JsonValue.mdx) elements. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/JsonObject.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/JsonObject.mdx deleted file mode 100644 index 35f4407b9..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/JsonObject.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonObject - -```ts -JsonObject: record(String, JsonValue); -``` - -Defined in: [packages/common/src/Type.ts:4097](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4097) - -JSON-compatible object with string keys and [JsonValue](/docs/api-reference/common/Type/variables/JsonValue.mdx) values. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/JsonValue.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/JsonValue.mdx deleted file mode 100644 index e6eb881a1..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/JsonValue.mdx +++ /dev/null @@ -1,45 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / JsonValue - -```ts -JsonValue: recursive( - (): UnionType< - [ - typeof String, - typeof FiniteNumber, - typeof Boolean, - typeof Null, - ArrayType< - Type< - "Recursive", - JsonValue, - JsonValueInput, - JsonValueError, - JsonValueInput, - JsonValueError - > - >, - RecordType< - "String", - string, - string, - StringError, - string, - StringError, - Type< - "Recursive", - JsonValue, - JsonValueInput, - JsonValueError, - JsonValueInput, - JsonValueError - > - >, - ] - > => union(String, FiniteNumber, Boolean, Null, JsonArray, JsonObject), -); -``` - -Defined in: [packages/common/src/Type.ts:4071](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4071) - -JSON-compatible value: string, [FiniteNumber](/docs/api-reference/common/Type/variables/FiniteNumber.mdx), boolean, null, -[JsonArray](/docs/api-reference/common/Type/variables/JsonArray.mdx), or [JsonObject](/docs/api-reference/common/Type/variables/JsonObject.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Mnemonic.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Mnemonic.mdx deleted file mode 100644 index 55bb04423..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Mnemonic.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Mnemonic - -```ts -const Mnemonic: brand( - "Mnemonic", - NonEmptyTrimmedString, - (value) => - bip39.validateMnemonic(value, wordlist) - ? ok(value) - : err({ type: "Mnemonic", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:1457](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1457) - -The mnemonic, also known as a "seed phrase," is a set of 12 words in a -specific order chosen from a predefined list (BIP39). It provides a -human-readable way to store a private key securely. The mnemonic is generated -safely on the user's device using cryptographically secure random number -generation, ensuring it remains private and unique. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NegativeInt.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NegativeInt.mdx deleted file mode 100644 index 8bdedbb62..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NegativeInt.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NegativeInt - -```ts -const NegativeInt: negative(NonPositiveInt); -``` - -Defined in: [packages/common/src/Type.ts:2125](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2125) - -Negative integer (< 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NegativeNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NegativeNumber.mdx deleted file mode 100644 index ed0f108f7..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NegativeNumber.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NegativeNumber - -```ts -const NegativeNumber: negative(NonPositiveNumber); -``` - -Defined in: [packages/common/src/Type.ts:2053](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2053) - -Negative number (< 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyString.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyString.mdx deleted file mode 100644 index a4befcee6..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyString.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyString - -```ts -const NonEmptyString: minLength(1)(String); -``` - -Defined in: [packages/common/src/Type.ts:1407](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1407) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyString100.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyString100.mdx deleted file mode 100644 index 29f722a52..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyString100.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyString100 - -```ts -const NonEmptyString100: minLength(1)(String100); -``` - -Defined in: [packages/common/src/Type.ts:1419](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1419) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyString1000.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyString1000.mdx deleted file mode 100644 index 6176dd953..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyString1000.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyString1000 - -```ts -const NonEmptyString1000: minLength(1)(String1000); -``` - -Defined in: [packages/common/src/Type.ts:1423](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1423) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyTrimmedString.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyTrimmedString.mdx deleted file mode 100644 index 32dc09da9..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyTrimmedString.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyTrimmedString - -```ts -const NonEmptyTrimmedString: minLength(1)(TrimmedString); -``` - -Defined in: [packages/common/src/Type.ts:1427](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1427) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyTrimmedString100.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyTrimmedString100.mdx deleted file mode 100644 index 6cd1a08b1..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyTrimmedString100.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyTrimmedString100 - -```ts -const NonEmptyTrimmedString100: minLength(1)(TrimmedString100); -``` - -Defined in: [packages/common/src/Type.ts:1439](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1439) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyTrimmedString1000.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyTrimmedString1000.mdx deleted file mode 100644 index 0e5b1ac9d..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonEmptyTrimmedString1000.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonEmptyTrimmedString1000 - -```ts -const NonEmptyTrimmedString1000: minLength(1)(TrimmedString1000); -``` - -Defined in: [packages/common/src/Type.ts:1444](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1444) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonNaNNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonNaNNumber.mdx deleted file mode 100644 index 222e801c8..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonNaNNumber.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonNaNNumber - -```ts -const NonNaNNumber: nonNaN(Number); -``` - -Defined in: [packages/common/src/Type.ts:2256](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2256) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonNegativeInt.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonNegativeInt.mdx deleted file mode 100644 index 3fca7bc97..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonNegativeInt.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonNegativeInt - -```ts -const NonNegativeInt: nonNegative(Int); -``` - -Defined in: [packages/common/src/Type.ts:2093](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2093) - -Non-negative integer (≥ 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonNegativeNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonNegativeNumber.mdx deleted file mode 100644 index 16ddac6f7..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonNegativeNumber.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonNegativeNumber - -```ts -const NonNegativeNumber: nonNegative(Number); -``` - -Defined in: [packages/common/src/Type.ts:2029](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2029) - -Non-negative number (≥ 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonPositiveInt.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonPositiveInt.mdx deleted file mode 100644 index 3bbb9803d..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonPositiveInt.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonPositiveInt - -```ts -const NonPositiveInt: nonPositive(Int); -``` - -Defined in: [packages/common/src/Type.ts:2117](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2117) - -Non-positive integer (≤ 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/NonPositiveNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/NonPositiveNumber.mdx deleted file mode 100644 index 71e8085c2..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/NonPositiveNumber.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / NonPositiveNumber - -```ts -const NonPositiveNumber: nonPositive(Number); -``` - -Defined in: [packages/common/src/Type.ts:2045](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2045) - -Non-positive number (≤ 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Null.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Null.mdx deleted file mode 100644 index e8d515832..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Null.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Null - -```ts -const Null: base("Null", (value) => - value === null ? ok(value) : err({ type: "Null", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:799](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L799) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Number.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Number.mdx deleted file mode 100644 index 54689daa6..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Number.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Number - -```ts -const Number: base("Number", (value) => - typeof value === "number" - ? ok(value) - : err({ type: "Number", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:751](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L751) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/PositiveInt.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/PositiveInt.mdx deleted file mode 100644 index 2663d2951..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/PositiveInt.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / PositiveInt - -```ts -const PositiveInt: positive(NonNegativeInt); -``` - -Defined in: [packages/common/src/Type.ts:2101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2101) - -Positive integer (> 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/PositiveNumber.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/PositiveNumber.mdx deleted file mode 100644 index 81c07906b..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/PositiveNumber.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / PositiveNumber - -```ts -const PositiveNumber: positive(NonNegativeNumber); -``` - -Defined in: [packages/common/src/Type.ts:2037](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2037) - -Positive number (> 0). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/SimpleName.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/SimpleName.mdx deleted file mode 100644 index c554e4158..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/SimpleName.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / SimpleName - -```ts -const SimpleName: brand( - "SimpleName", - UrlSafeString, - (value) => - value.length >= 1 && value.length <= 64 - ? ok(value) - : err({ type: "SimpleName", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:1650](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1650) - -Simple alphanumeric string for naming in file systems, URLs, and identifiers. - -Uses the same safe alphabet as [UrlSafeString](/docs/api-reference/common/Type/variables/UrlSafeString.mdx) (letters, digits, `-`, -`_`). See `UrlSafeString` for details. - -The string must be between 1 and 64 characters. - -### Example - -```ts -const result = SimpleName.from("data-report-123"); -if (result.ok) { - console.log("Valid SimpleName string:", result.value); -} else { - console.error("Invalid SimpleName string:", result.error); -} -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/SimplePassword.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/SimplePassword.mdx deleted file mode 100644 index b24870e99..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/SimplePassword.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / SimplePassword - -```ts -const SimplePassword: brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -``` - -Defined in: [packages/common/src/Type.ts:1687](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1687) - -Trimmed string between 8 and 64 characters, branded as `SimplePassword`. - -Take a look how `SimplePassword` is defined: - -```ts -export const SimplePassword = brand( - "SimplePassword", - minLength(8)(maxLength(64)(TrimmedString)), -); -``` - -Nested functions are often OK (if not, make a helper), but with TC39 Hack -pipes it would be clearer: - -```ts -// TrimmedString -// |> minLength(8)(%) -// |> maxLength(64)(%) -// |> brand("SimplePassword", %) -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/String.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/String.mdx deleted file mode 100644 index dc2dfe4b4..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/String.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / String - -```ts -const String: base("String", (value) => - typeof value === "string" - ? ok(value) - : err({ type: "String", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:739](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L739) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/String100.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/String100.mdx deleted file mode 100644 index aa7ec3f28..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/String100.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / String100 - -```ts -const String100: maxLength(100)(String); -``` - -Defined in: [packages/common/src/Type.ts:1411](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1411) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/String1000.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/String1000.mdx deleted file mode 100644 index 02796f3e3..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/String1000.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / String1000 - -```ts -const String1000: maxLength(1000)(String); -``` - -Defined in: [packages/common/src/Type.ts:1415](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1415) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/TrimmedString.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/TrimmedString.mdx deleted file mode 100644 index d3d235770..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/TrimmedString.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TrimmedString - -```ts -const TrimmedString: trimmed(String); -``` - -Defined in: [packages/common/src/Type.ts:1296](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1296) - -Trimmed string - -- Use `TrimmedString.is` to check if an unknown value is trimmed. -- Use `TrimmedString.from` to check if a string is trimmed. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/TrimmedString100.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/TrimmedString100.mdx deleted file mode 100644 index a0d61903a..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/TrimmedString100.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TrimmedString100 - -```ts -const TrimmedString100: maxLength(100)(TrimmedString); -``` - -Defined in: [packages/common/src/Type.ts:1431](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1431) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/TrimmedString1000.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/TrimmedString1000.mdx deleted file mode 100644 index a380245ab..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/TrimmedString1000.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / TrimmedString1000 - -```ts -const TrimmedString1000: maxLength(1000)(TrimmedString); -``` - -Defined in: [packages/common/src/Type.ts:1435](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1435) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Uint8Array.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Uint8Array.mdx deleted file mode 100644 index a44d1a97f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Uint8Array.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Uint8Array - -```ts -const Uint8Array: base("Uint8Array", (value) => - value instanceof globalThis.Uint8Array - ? ok(value) - : err({ type: "Uint8Array", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:821](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L821) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Undefined.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Undefined.mdx deleted file mode 100644 index 17aca5c07..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Undefined.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Undefined - -```ts -const Undefined: base("Undefined", (value) => - value === undefined - ? ok(value) - : err({ type: "Undefined", value }), -); -``` - -Defined in: [packages/common/src/Type.ts:787](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L787) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/Unknown.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/Unknown.mdx deleted file mode 100644 index 1d0d2f12a..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/Unknown.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / Unknown - -```ts -const Unknown: base<"Unknown", unknown, never>( - "Unknown", - ok, -); -``` - -Defined in: [packages/common/src/Type.ts:730](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L730) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/UnknownNextResult.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/UnknownNextResult.mdx deleted file mode 100644 index 981c11213..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/UnknownNextResult.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / UnknownNextResult - -```ts -const UnknownNextResult: nextResult( - Unknown, - Unknown, - Unknown, -); -``` - -Defined in: [packages/common/src/Type.ts:3728](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3728) - -A [nextResult](/docs/api-reference/common/Type/functions/nextResult.mdx) type for `NextResult`. - -Useful for checking if a value is a [NextResult](/docs/api-reference/common/Result/type-aliases/NextResult.mdx) via -`UnknownNextResult.is(value)`. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/UnknownResult.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/UnknownResult.mdx deleted file mode 100644 index 6164072ac..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/UnknownResult.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / UnknownResult - -```ts -const UnknownResult: result(Unknown, Unknown); -``` - -Defined in: [packages/common/src/Type.ts:3673](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3673) - -A [result](/docs/api-reference/common/Type/functions/result.mdx) type for `Result`. - -Useful for serializing Results where the value and error types are unknown. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/UrlSafeString.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/UrlSafeString.mdx deleted file mode 100644 index e9e2a18eb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/UrlSafeString.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / UrlSafeString - -```ts -const UrlSafeString: regex( - "UrlSafeString", - /^[A-Za-z0-9_-]+$/, -)(String); -``` - -Defined in: [packages/common/src/Type.ts:1541](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1541) - -URL-safe string. - -A `UrlSafeString` uses a limited alphabet that is safe for URLs: - -- Uppercase letters (`A-Z`) -- Lowercase letters (`a-z`) -- Digits (`0-9`) -- Dash (`-`) -- Underscore (`_`) - -This is the same character set used by Base64Url encoding, but this type does -not validate that the string is actually Base64Url-encoded data. - -### Example - -```ts -const result = UrlSafeString.from("abc123_-"); -if (result.ok) { - console.log("Valid URL-safe string:", result.value); -} else { - console.error("Invalid URL-safe string:", result.error); -} -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/base64UrlToUint8Array.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/base64UrlToUint8Array.mdx deleted file mode 100644 index 83a6a4359..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/base64UrlToUint8Array.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / base64UrlToUint8Array - -```ts -const base64UrlToUint8Array: (str: Base64Url) => Uint8Array; -``` - -Defined in: [packages/common/src/Type.ts:1606](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1606) - -Decodes a [Base64Url](/docs/api-reference/common/Type/variables/Base64Url.mdx) string to a Uint8Array. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `str` | [`Base64Url`](/docs/api-reference/common/Type/type-aliases/Base64Url.mdx) | - -## Returns - -`Uint8Array` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/between.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/between.mdx deleted file mode 100644 index 11d15c6cf..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/between.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / between - -```ts -const between: (min: Min, max: Max) => BrandFactory<`Between${Min}-${Max}`, number, BetweenError>; -``` - -Defined in: [packages/common/src/Type.ts:2337](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2337) - -Number within a range, inclusive. - -Use numeric literal, not expression. See [BrandFactory](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx). - -### Example - -```ts -const Between1And10 = between(1, 10)(PositiveNumber); -const result = Between1And10.from(5); // ok(5) -const errorResult = Between1And10.from(11); // err -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Min` *extends* `number` | -| `Max` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `min` | `Min` | -| `max` | `Max` | - -## Returns - -[`BrandFactory`](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx)\<`` `Between${Min}-${Max}` ``, `number`, [`BetweenError`](/docs/api-reference/common/Type/interfaces/BetweenError.mdx)\<`Min`, `Max`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/finite.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/finite.mdx deleted file mode 100644 index 0aeb1afe0..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/finite.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / finite - -```ts -const finite: BrandFactory<"Finite", number, FiniteError>; -``` - -Defined in: [packages/common/src/Type.ts:2264](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2264) - -Finite number. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatBase64UrlError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatBase64UrlError.mdx deleted file mode 100644 index 0b8b0316c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatBase64UrlError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatBase64UrlError - -```ts -const formatBase64UrlError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:1579](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1579) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatBetweenError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatBetweenError.mdx deleted file mode 100644 index 49f83046f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatBetweenError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatBetweenError - -```ts -const formatBetweenError: TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:2356](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2356) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatBigIntError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatBigIntError.mdx deleted file mode 100644 index 5bfe98539..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatBigIntError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatBigIntError - -```ts -const formatBigIntError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:771](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L771) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatBooleanError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatBooleanError.mdx deleted file mode 100644 index 117793cf7..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatBooleanError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatBooleanError - -```ts -const formatBooleanError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:783](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L783) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatCurrencyCodeError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatCurrencyCodeError.mdx deleted file mode 100644 index 6e5901acf..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatCurrencyCodeError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatCurrencyCodeError - -```ts -const formatCurrencyCodeError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:1150](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1150) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatDateIsoError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatDateIsoError.mdx deleted file mode 100644 index 94a9705ec..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatDateIsoError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatDateIsoError - -```ts -const formatDateIsoError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:1196](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1196) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatFiniteError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatFiniteError.mdx deleted file mode 100644 index 710e42da1..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatFiniteError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatFiniteError - -```ts -const formatFiniteError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:2273](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2273) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatFunctionError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatFunctionError.mdx deleted file mode 100644 index e24d4fb87..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatFunctionError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatFunctionError - -```ts -const formatFunctionError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:817](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L817) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatGreaterThanError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatGreaterThanError.mdx deleted file mode 100644 index 5bc08a65f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatGreaterThanError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatGreaterThanError - -```ts -const formatGreaterThanError: TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:2148](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2148) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatGreaterThanOrEqualToError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatGreaterThanOrEqualToError.mdx deleted file mode 100644 index 3fc5e4028..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatGreaterThanOrEqualToError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatGreaterThanOrEqualToError - -```ts -const formatGreaterThanOrEqualToError: TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:2203](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2203) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatIdError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatIdError.mdx deleted file mode 100644 index a2bcc8d90..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatIdError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatIdError - -```ts -const formatIdError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:1738](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1738) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatInstanceOfError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatInstanceOfError.mdx deleted file mode 100644 index bf92cfc89..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatInstanceOfError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatInstanceOfError - -```ts -const formatInstanceOfError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:877](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L877) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatInt64Error.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatInt64Error.mdx deleted file mode 100644 index 69824b987..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatInt64Error.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatInt64Error - -```ts -const formatInt64Error: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:4037](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4037) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatInt64StringError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatInt64StringError.mdx deleted file mode 100644 index e3535bd59..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatInt64StringError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatInt64StringError - -```ts -const formatInt64StringError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:4066](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4066) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatIntError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatIntError.mdx deleted file mode 100644 index f324c9dc3..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatIntError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatIntError - -```ts -const formatIntError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:2076](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2076) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatIsTypeError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatIsTypeError.mdx deleted file mode 100644 index 6b1428222..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatIsTypeError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatIsTypeError - -```ts -const formatIsTypeError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:912](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L912) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatJsonError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatJsonError.mdx deleted file mode 100644 index 3be3da754..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatJsonError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatJsonError - -```ts -const formatJsonError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:4199](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L4199) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatLengthError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatLengthError.mdx deleted file mode 100644 index 65319e8a1..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatLengthError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatLengthError - -```ts -const formatLengthError: TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:1400](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1400) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatLessThanError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatLessThanError.mdx deleted file mode 100644 index c284f1132..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatLessThanError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatLessThanError - -```ts -const formatLessThanError: TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:2173](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2173) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatLessThanOrEqualToError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatLessThanOrEqualToError.mdx deleted file mode 100644 index 74811b01f..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatLessThanOrEqualToError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatLessThanOrEqualToError - -```ts -const formatLessThanOrEqualToError: TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:2231](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2231) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatLiteralError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatLiteralError.mdx deleted file mode 100644 index a08e59866..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatLiteralError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatLiteralError - -```ts -const formatLiteralError: TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:2404](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2404) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatMaxLengthError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatMaxLengthError.mdx deleted file mode 100644 index b9473baa8..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatMaxLengthError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatMaxLengthError - -```ts -const formatMaxLengthError: TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:1364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1364) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatMinLengthError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatMinLengthError.mdx deleted file mode 100644 index f6e8a7d7b..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatMinLengthError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatMinLengthError - -```ts -const formatMinLengthError: TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:1330](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1330) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatMnemonicError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatMnemonicError.mdx deleted file mode 100644 index 4c916cb2c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatMnemonicError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatMnemonicError - -```ts -const formatMnemonicError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:1469](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1469) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatMultipleOfError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatMultipleOfError.mdx deleted file mode 100644 index f84345c50..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatMultipleOfError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatMultipleOfError - -```ts -const formatMultipleOfError: TypeErrorFormatter>; -``` - -Defined in: [packages/common/src/Type.ts:2316](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2316) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatNegativeError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatNegativeError.mdx deleted file mode 100644 index a2431c875..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatNegativeError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatNegativeError - -```ts -const formatNegativeError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:1961](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1961) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatNonNaNError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatNonNaNError.mdx deleted file mode 100644 index 7af50d0e0..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatNonNaNError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatNonNaNError - -```ts -const formatNonNaNError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:2250](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2250) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatNonNegativeError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatNonNegativeError.mdx deleted file mode 100644 index c5bbf6f9e..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatNonNegativeError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatNonNegativeError - -```ts -const formatNonNegativeError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:2019](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2019) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatNonPositiveError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatNonPositiveError.mdx deleted file mode 100644 index b1b2bd285..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatNonPositiveError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatNonPositiveError - -```ts -const formatNonPositiveError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:1990](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1990) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatNullError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatNullError.mdx deleted file mode 100644 index 380c38d08..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatNullError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatNullError - -```ts -const formatNullError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:805](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L805) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatNumberError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatNumberError.mdx deleted file mode 100644 index 30d260ba4..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatNumberError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatNumberError - -```ts -const formatNumberError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:759](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L759) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatPositiveError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatPositiveError.mdx deleted file mode 100644 index db3bb273e..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatPositiveError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatPositiveError - -```ts -const formatPositiveError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:1936](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1936) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatRegexError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatRegexError.mdx deleted file mode 100644 index bf69ea80c..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatRegexError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatRegexError - -```ts -const formatRegexError: TypeErrorFormatter>>; -``` - -Defined in: [packages/common/src/Type.ts:1508](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1508) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatStringError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatStringError.mdx deleted file mode 100644 index 0802d05a9..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatStringError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatStringError - -```ts -const formatStringError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:747](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L747) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatTableIdError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatTableIdError.mdx deleted file mode 100644 index 3bab5c78e..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatTableIdError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatTableIdError - -```ts -const formatTableIdError: TypeErrorFormatter>>; -``` - -Defined in: [packages/common/src/Type.ts:1894](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1894) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatTrimmedError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatTrimmedError.mdx deleted file mode 100644 index d8b541fd9..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatTrimmedError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatTrimmedError - -```ts -const formatTrimmedError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:1283](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1283) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatUint8ArrayError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatUint8ArrayError.mdx deleted file mode 100644 index 8e2355de9..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatUint8ArrayError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatUint8ArrayError - -```ts -const formatUint8ArrayError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:829](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L829) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/formatUndefinedError.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/formatUndefinedError.mdx deleted file mode 100644 index 5c80142ea..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/formatUndefinedError.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / formatUndefinedError - -```ts -const formatUndefinedError: TypeErrorFormatter; -``` - -Defined in: [packages/common/src/Type.ts:795](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L795) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/greaterThan.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/greaterThan.mdx deleted file mode 100644 index cea5881ae..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/greaterThan.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / greaterThan - -```ts -const greaterThan: (min: Min) => BrandFactory<`GreaterThan${Min}`, number, GreaterThanError>; -``` - -Defined in: [packages/common/src/Type.ts:2135](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2135) - -Number greater than a specified value. - -Use numeric literal, not expression. See [BrandFactory](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `Min` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `min` | `Min` | - -## Returns - -[`BrandFactory`](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx)\<`` `GreaterThan${Min}` ``, `number`, [`GreaterThanError`](/docs/api-reference/common/Type/interfaces/GreaterThanError.mdx)\<`Min`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/greaterThanOrEqualTo.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/greaterThanOrEqualTo.mdx deleted file mode 100644 index f1125a5eb..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/greaterThanOrEqualTo.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / greaterThanOrEqualTo - -```ts -const greaterThanOrEqualTo: (min: Min) => BrandFactory<`GreaterThanOrEqualTo${Min}`, number, GreaterThanOrEqualToError>; -``` - -Defined in: [packages/common/src/Type.ts:2185](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2185) - -Number ≥ a specified value. - -Use numeric literal, not expression. See [BrandFactory](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `Min` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `min` | `Min` | - -## Returns - -[`BrandFactory`](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx)\<`` `GreaterThanOrEqualTo${Min}` ``, `number`, [`GreaterThanOrEqualToError`](/docs/api-reference/common/Type/interfaces/GreaterThanOrEqualToError.mdx)\<`Min`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/idBytesTypeValueLength.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/idBytesTypeValueLength.mdx deleted file mode 100644 index c1badf1ed..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/idBytesTypeValueLength.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / idBytesTypeValueLength - -```ts -const idBytesTypeValueLength: number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/Type.ts:1903](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1903) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/int.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/int.mdx deleted file mode 100644 index 7bc97cad1..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/int.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / int - -```ts -const int: BrandFactory<"Int", number, IntError>; -``` - -Defined in: [packages/common/src/Type.ts:2067](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2067) - -Integer within the safe range of JavaScript numbers. - -### Example - -```ts -const Int = int(Number); -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/length.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/length.mdx deleted file mode 100644 index 1e0d6afff..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/length.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / length - -```ts -const length: (exact: Exact) => BrandFactory<`Length${Exact}`, { - length: number; -}, LengthError>; -``` - -Defined in: [packages/common/src/Type.ts:1385](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1385) - -Exact length. - -Use numeric literal, not expression. See [BrandFactory](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx). - -### Example - -```ts -// string & Brand<"Length1"> -const Length1String = length(1)(String); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Exact` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `exact` | `Exact` | - -## Returns - -[`BrandFactory`](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx)\<`` `Length${Exact}` ``, \{ - `length`: `number`; -\}, [`LengthError`](/docs/api-reference/common/Type/interfaces/LengthError.mdx)\<`Exact`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/lessThan.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/lessThan.mdx deleted file mode 100644 index 2fe1973ea..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/lessThan.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / lessThan - -```ts -const lessThan: (max: Max) => BrandFactory<`LessThan${Max}`, number, LessThanError>; -``` - -Defined in: [packages/common/src/Type.ts:2160](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2160) - -Number less than a specified value. - -Use numeric literal, not expression. See [BrandFactory](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `Max` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `max` | `Max` | - -## Returns - -[`BrandFactory`](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx)\<`` `LessThan${Max}` ``, `number`, [`LessThanError`](/docs/api-reference/common/Type/interfaces/LessThanError.mdx)\<`Max`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/lessThanOrEqualTo.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/lessThanOrEqualTo.mdx deleted file mode 100644 index e0b59a6c4..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/lessThanOrEqualTo.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / lessThanOrEqualTo - -```ts -const lessThanOrEqualTo: (max: Max) => BrandFactory<`LessThanOrEqualTo${Max}`, number, LessThanOrEqualToError>; -``` - -Defined in: [packages/common/src/Type.ts:2215](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2215) - -Number ≤ a specified value. - -Use numeric literal, not expression. See [BrandFactory](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `Max` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `max` | `Max` | - -## Returns - -[`BrandFactory`](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx)\<`` `LessThanOrEqualTo${Max}` ``, `number`, [`LessThanOrEqualToError`](/docs/api-reference/common/Type/interfaces/LessThanOrEqualToError.mdx)\<`Max`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/maxLength.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/maxLength.mdx deleted file mode 100644 index 814323d48..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/maxLength.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / maxLength - -```ts -const maxLength: (max: Max) => BrandFactory<`MaxLength${Max}`, { - length: number; -}, MaxLengthError>; -``` - -Defined in: [packages/common/src/Type.ts:1351](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1351) - -Maximum length. - -Use numeric literal, not expression. See [BrandFactory](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx). - -### Example - -```ts -// string & Brand<"MaxLength100"> -const String100 = maxLength(100)(String); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Max` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `max` | `Max` | - -## Returns - -[`BrandFactory`](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx)\<`` `MaxLength${Max}` ``, \{ - `length`: `number`; -\}, [`MaxLengthError`](/docs/api-reference/common/Type/interfaces/MaxLengthError.mdx)\<`Max`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/maxPositiveInt.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/maxPositiveInt.mdx deleted file mode 100644 index 8d764adcc..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/maxPositiveInt.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / maxPositiveInt - -```ts -const maxPositiveInt: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/Type.ts:2108](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2108) - -Maximum [PositiveInt](/docs/api-reference/common/Type/variables/PositiveInt.mdx) value (MAX_SAFE_INTEGER). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/minLength.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/minLength.mdx deleted file mode 100644 index dd8c0df13..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/minLength.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / minLength - -```ts -const minLength: (min: Min) => BrandFactory<`MinLength${Min}`, { - length: number; -}, MinLengthError>; -``` - -Defined in: [packages/common/src/Type.ts:1317](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1317) - -Minimum length. - -Use numeric literal, not expression. See [BrandFactory](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx). - -### Example - -```ts -// string & Brand<"MinLength1"> -const NonEmptyString = minLength(1)(String); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Min` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `min` | `Min` | - -## Returns - -[`BrandFactory`](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx)\<`` `MinLength${Min}` ``, \{ - `length`: `number`; -\}, [`MinLengthError`](/docs/api-reference/common/Type/interfaces/MinLengthError.mdx)\<`Min`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/minPositiveInt.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/minPositiveInt.mdx deleted file mode 100644 index d863de175..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/minPositiveInt.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / minPositiveInt - -```ts -const minPositiveInt: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/Type.ts:2105](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2105) - -Minimum [PositiveInt](/docs/api-reference/common/Type/variables/PositiveInt.mdx) value (1). diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/multipleOf.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/multipleOf.mdx deleted file mode 100644 index 6d4b38516..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/multipleOf.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / multipleOf - -```ts -const multipleOf: (divisor: Divisor) => BrandFactory<`MultipleOf${Divisor}`, number, MultipleOfError>; -``` - -Defined in: [packages/common/src/Type.ts:2301](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2301) - -Number that is a multiple of a divisor. - -Use numeric literal, not expression. See [BrandFactory](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `Divisor` *extends* `number` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `divisor` | `Divisor` | - -## Returns - -[`BrandFactory`](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx)\<`` `MultipleOf${Divisor}` ``, `number`, [`MultipleOfError`](/docs/api-reference/common/Type/interfaces/MultipleOfError.mdx)\<`Divisor`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/negative.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/negative.mdx deleted file mode 100644 index a51a2a3a2..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/negative.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / negative - -```ts -const negative: BrandFactory<"Negative", number, NegativeError>; -``` - -Defined in: [packages/common/src/Type.ts:1952](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1952) - -Negative number (< 0). - -### Example - -```ts -const NegativeNumber = negative(Number); -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/nonNaN.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/nonNaN.mdx deleted file mode 100644 index 87eae8104..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/nonNaN.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / nonNaN - -```ts -const nonNaN: BrandFactory<"NonNaN", number, NonNaNError>; -``` - -Defined in: [packages/common/src/Type.ts:2241](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2241) - -Number that is not NaN. diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/nonNegative.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/nonNegative.mdx deleted file mode 100644 index aa17d2e98..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/nonNegative.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / nonNegative - -```ts -const nonNegative: BrandFactory<"NonNegative", number, NonNegativeError>; -``` - -Defined in: [packages/common/src/Type.ts:2006](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L2006) - -Non-negative number (≥ 0). - -### Example - -```ts -const NonNegativeNumber = nonNegative(Number); -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/nonPositive.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/nonPositive.mdx deleted file mode 100644 index 7584ef441..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/nonPositive.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / nonPositive - -```ts -const nonPositive: BrandFactory<"NonPositive", number, NonPositiveError>; -``` - -Defined in: [packages/common/src/Type.ts:1977](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1977) - -Non-positive number (≤ 0). - -### Example - -```ts -const NonPositiveNumber = nonPositive(Number); -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/positive.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/positive.mdx deleted file mode 100644 index 9a532c1e8..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/positive.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / positive - -```ts -const positive: BrandFactory<"Positive", number, PositiveError>; -``` - -Defined in: [packages/common/src/Type.ts:1927](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1927) - -Positive number (> 0). - -### Example - -```ts -const PositiveNumber = positive(Number); - -const result = PositiveNumber.from(42); // ok -const errorResult = PositiveNumber.from(-5); // err -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/regex.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/regex.mdx deleted file mode 100644 index e12af0170..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/regex.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / regex - -```ts -const regex: (name: Name, pattern: RegExp) => BrandFactory>; -``` - -Defined in: [packages/common/src/Type.ts:1485](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1485) - -String matching a regular expression. - -### Example - -```ts -const Alphanumeric = regex("Alphanumeric", /^[a-z0-9]+$/i)(String); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Name` *extends* [`TypeName`](/docs/api-reference/common/Type/type-aliases/TypeName.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `name` | `Name` | -| `pattern` | `RegExp` | - -## Returns - -[`BrandFactory`](/docs/api-reference/common/Type/type-aliases/BrandFactory.mdx)\<`Name`, `string`, [`RegexError`](/docs/api-reference/common/Type/interfaces/RegexError.mdx)\<`Name`\>\> diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/testName.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/testName.mdx deleted file mode 100644 index afc1905d0..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/testName.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / testName - -```ts -const testName: string & Brand<"UrlSafeString"> & Brand<"SimpleName">; -``` - -Defined in: [packages/common/src/Type.ts:1661](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1661) diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/trimmed.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/trimmed.mdx deleted file mode 100644 index 20fbd5051..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/trimmed.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / trimmed - -```ts -const trimmed: BrandFactory<"Trimmed", string, TrimmedError>; -``` - -Defined in: [packages/common/src/Type.ts:1272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1272) - -Trimmed string. - -This Type Factory validates whether a string has no leading or trailing -whitespaces. - -### Example - -```ts -const TrimmedNonEmptyString = trimmed(minLength(1)(String)); -// string & Brand<"MinLength1"> & Brand<"Trimmed"> -type TrimmedNonEmptyString = typeof TrimmedNonEmptyString.Type; -``` diff --git a/.generated/evolu-docs/api-reference/common/Type/variables/uint8ArrayToBase64Url.mdx b/.generated/evolu-docs/api-reference/common/Type/variables/uint8ArrayToBase64Url.mdx deleted file mode 100644 index c5221d95d..000000000 --- a/.generated/evolu-docs/api-reference/common/Type/variables/uint8ArrayToBase64Url.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Type](/docs/api-reference/common/Type/page.mdx) / uint8ArrayToBase64Url - -```ts -const uint8ArrayToBase64Url: (bytes: Uint8Array) => Base64Url; -``` - -Defined in: [packages/common/src/Type.ts:1587](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L1587) - -Encodes a Uint8Array to a [Base64Url](/docs/api-reference/common/Type/variables/Base64Url.mdx) string. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `bytes` | `Uint8Array` | - -## Returns - -[`Base64Url`](/docs/api-reference/common/Type/type-aliases/Base64Url.mdx) diff --git a/.generated/evolu-docs/api-reference/common/Types/functions/isPromiseLike.mdx b/.generated/evolu-docs/api-reference/common/Types/functions/isPromiseLike.mdx deleted file mode 100644 index 9091dd14c..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/functions/isPromiseLike.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / isPromiseLike - -```ts -function isPromiseLike(value: Awaitable): value is PromiseLike; -``` - -Defined in: [packages/common/src/Types.ts:256](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L256) - -Type guard to check if a value is a [PromiseLike](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables). - -Use with [Awaitable](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx) to conditionally `await` only when necessary, -avoiding microtask overhead for synchronous values. - -### Example - -```ts -const validate = (id: string): Awaitable => { - const cached = cache.get(id); - if (cached !== undefined) return cached; // Sync path - return fetchValidation(id); // Async path -}; - -const result = validate(id); -const isValid = isPromiseLike(result) ? await result : result; -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | [`Awaitable`](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx)\<`T`\> | - -## Returns - -`value is PromiseLike` diff --git a/.generated/evolu-docs/api-reference/common/Types/page.mdx b/.generated/evolu-docs/api-reference/common/Types/page.mdx deleted file mode 100644 index 3cb2c9cd5..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/page.mdx +++ /dev/null @@ -1,40 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Types - -TypeScript utility types. - -## Functions - -| Function | Description | -| ------ | ------ | -| [isPromiseLike](/docs/api-reference/common/Types/functions/isPromiseLike.mdx) | Type guard to check if a value is a [PromiseLike](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables). | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [Awaitable](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx) | A value that can be awaited. | -| [Callback](/docs/api-reference/common/Types/type-aliases/Callback.mdx) | A function that receives a value and returns nothing. | -| [CallbackWithCleanup](/docs/api-reference/common/Types/type-aliases/CallbackWithCleanup.mdx) | A function that receives a value and optionally returns a cleanup function. | -| [Digit](/docs/api-reference/common/Types/type-aliases/Digit.mdx) | Single digit 0-9. Useful for template literal type validation. | -| [Digit1To23](/docs/api-reference/common/Types/type-aliases/Digit1To23.mdx) | Numeric string 1-23. Useful for hours validation. | -| [Digit1To51](/docs/api-reference/common/Types/type-aliases/Digit1To51.mdx) | Numeric string 1-51. Useful for weeks validation. | -| [Digit1To59](/docs/api-reference/common/Types/type-aliases/Digit1To59.mdx) | Numeric string 1-59. Useful for minutes, seconds validation. | -| [Digit1To6](/docs/api-reference/common/Types/type-aliases/Digit1To6.mdx) | Numeric string 1-6. Useful for days validation. | -| [Digit1To9](/docs/api-reference/common/Types/type-aliases/Digit1To9.mdx) | Digit 1-9. Useful for template literal type validation. | -| [Digit1To99](/docs/api-reference/common/Types/type-aliases/Digit1To99.mdx) | Numeric string 1-99. Useful for years validation. | -| [DistributiveOmit](/docs/api-reference/common/Types/type-aliases/DistributiveOmit.mdx) | Removes keys from each member of a union. | -| [Int1To100](/docs/api-reference/common/Types/type-aliases/Int1To100.mdx) | Numeric literal 1-100. | -| [Int1To99](/docs/api-reference/common/Types/type-aliases/Int1To99.mdx) | Numeric literal 1-99. | -| [Literal](/docs/api-reference/common/Types/type-aliases/Literal.mdx) | String, number, bigint, boolean, undefined, null | -| [Mutable](/docs/api-reference/common/Types/type-aliases/Mutable.mdx) | Removes `readonly` modifier from all properties of a type. | -| [NewKeys](/docs/api-reference/common/Types/type-aliases/NewKeys.mdx) | Constrains `T` to only contain keys not present in `Existing`. | -| [NullablePartial](/docs/api-reference/common/Types/type-aliases/NullablePartial.mdx) | Makes properties optional if they accept `null` as a value. | -| [NumberFromString](/docs/api-reference/common/Types/type-aliases/NumberFromString.mdx) | Parses a numeric literal type from a string literal. | -| [PartialProp](/docs/api-reference/common/Types/type-aliases/PartialProp.mdx) | Makes a specific property of an object optional while keeping others unchanged. | -| [Predicate](/docs/api-reference/common/Types/type-aliases/Predicate.mdx) | Checks a condition on a value and returns a boolean. | -| [PredicateWithIndex](/docs/api-reference/common/Types/type-aliases/PredicateWithIndex.mdx) | Checks a condition on a value at a given index and returns a boolean. | -| [Refinement](/docs/api-reference/common/Types/type-aliases/Refinement.mdx) | A type guard function that refines type `A` to a narrower type `B`. | -| [RefinementWithIndex](/docs/api-reference/common/Types/type-aliases/RefinementWithIndex.mdx) | A type guard function that refines type `A` to a narrower type `B` at a given index. | -| [Simplify](/docs/api-reference/common/Types/type-aliases/Simplify.mdx) | Simplify an intersection type into a single mapped type. | -| [UnionToIntersection](/docs/api-reference/common/Types/type-aliases/UnionToIntersection.mdx) | Converts a union to an intersection. | -| [WidenLiteral](/docs/api-reference/common/Types/type-aliases/WidenLiteral.mdx) | Infers a broader type from a specific literal value type. | diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Awaitable.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Awaitable.mdx deleted file mode 100644 index 65dc9f542..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Awaitable.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Awaitable - -```ts -type Awaitable = - | T -| PromiseLike; -``` - -Defined in: [packages/common/src/Types.ts:235](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L235) - -A value that can be awaited. - -Use when a function may complete synchronously or asynchronously depending on -runtime conditions (e.g., cache hit vs network fetch). - -### Example - -```ts -const getData = (id: string): Awaitable => { - const cached = cache.get(id); - if (cached) return cached; // Sync path - return fetchData(id); // Async path -}; - -// Always works -const data = await getData(id); - -// Or optimize for sync path -const result = getData(id); -const data = isPromiseLike(result) ? await result : result; -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Callback.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Callback.mdx deleted file mode 100644 index 4d85b845b..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Callback.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Callback - -```ts -type Callback = (value: T) => void; -``` - -Defined in: [packages/common/src/Types.ts:21](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L21) - -A function that receives a value and returns nothing. - -Use for event handlers, observers, and async completion handlers. - -### Example - -```ts -const onComplete: Callback = (value) => console.log(value); -const queue = new Set>>(); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/CallbackWithCleanup.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/CallbackWithCleanup.mdx deleted file mode 100644 index 03daa3bdf..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/CallbackWithCleanup.mdx +++ /dev/null @@ -1,36 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / CallbackWithCleanup - -```ts -type CallbackWithCleanup = (value: T) => void | () => void; -``` - -Defined in: [packages/common/src/Types.ts:38](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L38) - -A function that receives a value and optionally returns a cleanup function. - -Use for subscriptions or resources that may need cleanup when done. - -### Example - -```ts -const subscribe: CallbackWithCleanup = (source) => { - source.start(); - return () => source.stop(); -}; -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | - -## Returns - -`void` \| () => `void` diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit.mdx deleted file mode 100644 index 1fb92819a..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Digit - -```ts -type Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"; -``` - -Defined in: [packages/common/src/Types.ts:262](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L262) - -Single digit 0-9. Useful for template literal type validation. diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To23.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To23.mdx deleted file mode 100644 index ef58b316c..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To23.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Digit1To23 - -```ts -type Digit1To23 = - | Digit1To9 - | `1${Digit}` - | `2${"0" | "1" | "2" | "3"}`; -``` - -Defined in: [packages/common/src/Types.ts:271](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L271) - -Numeric string 1-23. Useful for hours validation. diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To51.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To51.mdx deleted file mode 100644 index 2307501f0..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To51.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Digit1To51 - -```ts -type Digit1To51 = - | Digit1To9 - | `${"1" | "2" | "3" | "4"}${Digit}` - | `5${"0" | "1"}`; -``` - -Defined in: [packages/common/src/Types.ts:277](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L277) - -Numeric string 1-51. Useful for weeks validation. diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To59.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To59.mdx deleted file mode 100644 index 63bdc6c6f..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To59.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Digit1To59 - -```ts -type Digit1To59 = - | Digit1To9 - | `1${Digit}` - | `2${Digit}` - | `3${Digit}` - | `4${Digit}` - | `5${Digit}`; -``` - -Defined in: [packages/common/src/Types.ts:288](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L288) - -Numeric string 1-59. Useful for minutes, seconds validation. diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To6.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To6.mdx deleted file mode 100644 index 40af5b69a..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To6.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Digit1To6 - -```ts -type Digit1To6 = "1" | "2" | "3" | "4" | "5" | "6"; -``` - -Defined in: [packages/common/src/Types.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L268) - -Numeric string 1-6. Useful for days validation. diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To9.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To9.mdx deleted file mode 100644 index 3f1ae47c8..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To9.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Digit1To9 - -```ts -type Digit1To9 = Exclude; -``` - -Defined in: [packages/common/src/Types.ts:265](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L265) - -Digit 1-9. Useful for template literal type validation. diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To99.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To99.mdx deleted file mode 100644 index 00c58de01..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Digit1To99.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Digit1To99 - -```ts -type Digit1To99 = - | Digit1To9 - | `${Digit1To9}${Digit}`; -``` - -Defined in: [packages/common/src/Types.ts:283](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L283) - -Numeric string 1-99. Useful for years validation. diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/DistributiveOmit.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/DistributiveOmit.mdx deleted file mode 100644 index 26e7e0480..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/DistributiveOmit.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / DistributiveOmit - -```ts -type DistributiveOmit = T extends unknown ? Omit : never; -``` - -Defined in: [packages/common/src/Types.ts:336](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L336) - -Removes keys from each member of a union. - -Use when [Omit](https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys) would collapse a discriminated union into a single -shared shape. - -### Example - -```ts -type Event = - | { type: "a"; a: string; shared: number } - | { type: "b"; b: number; shared: number }; - -type Payload = DistributiveOmit; -// { type: "a"; a: string } | { type: "b"; b: number } -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `K` *extends* `PropertyKey` | diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Int1To100.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Int1To100.mdx deleted file mode 100644 index 150d61b32..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Int1To100.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Int1To100 - -```ts -type Int1To100 = - | Int1To99 - | 100; -``` - -Defined in: [packages/common/src/Types.ts:300](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L300) - -Numeric literal 1-100. diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Int1To99.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Int1To99.mdx deleted file mode 100644 index f5f767c99..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Int1To99.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Int1To99 - -```ts -type Int1To99 = NumberFromString; -``` - -Defined in: [packages/common/src/Types.ts:297](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L297) - -Numeric literal 1-99. diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Literal.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Literal.mdx deleted file mode 100644 index 6ec492edc..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Literal.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Literal - -```ts -type Literal = string | number | bigint | boolean | undefined | null; -``` - -Defined in: [packages/common/src/Types.ts:153](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L153) - -String, number, bigint, boolean, undefined, null - -https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Mutable.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Mutable.mdx deleted file mode 100644 index 87811b13e..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Mutable.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Mutable - -```ts -type Mutable = { -readonly [P in keyof T]: T[P] }; -``` - -Defined in: [packages/common/src/Types.ts:181](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L181) - -Removes `readonly` modifier from all properties of a type. - -Useful for constructing immutable objects step-by-step (e.g. builder pattern) -before casting them back to the readonly type. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/NewKeys.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/NewKeys.mdx deleted file mode 100644 index 86000a976..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/NewKeys.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / NewKeys - -```ts -type NewKeys = { [K in keyof T]: K extends keyof Existing ? never : T[K] }; -``` - -Defined in: [packages/common/src/Types.ts:345](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L345) - -Constrains `T` to only contain keys not present in `Existing`. - -Use as a generic constraint to prevent overriding existing properties. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `Existing` | diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/NullablePartial.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/NullablePartial.mdx deleted file mode 100644 index 578bbf67d..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/NullablePartial.mdx +++ /dev/null @@ -1,36 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / NullablePartial - -```ts -type NullablePartial = { [K in keyof NP]: NP[K] }; -``` - -Defined in: [packages/common/src/Types.ts:140](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L140) - -Makes properties optional if they accept `null` as a value. - -For each property in `T`, if `null` is a valid value for that property, the -property will be made optional in the resulting type. - -### Example - -```ts -type Example = { - required: string; - optionalWithNull: string | null; -}; - -type Result = NullablePartial; -// Result is: -// { -// required: string; -// optionalWithNull?: string | null; -// } -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `T` | - | -| `NK` *extends* keyof `T` | `{ [K in keyof T]: null extends T[K] ? K : never }`\[keyof `T`\] | -| `NP` | `Pick`\<`T`, `Exclude`\\> & `Partial`\<`Pick`\<`T`, `NK`\>\> | diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/NumberFromString.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/NumberFromString.mdx deleted file mode 100644 index c536e2f28..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/NumberFromString.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / NumberFromString - -```ts -type NumberFromString = T extends `${infer N extends number}` ? N : never; -``` - -Defined in: [packages/common/src/Types.ts:307](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L307) - -Parses a numeric literal type from a string literal. - -Used by [Int1To99](/docs/api-reference/common/Types/type-aliases/Int1To99.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* `string` | diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/PartialProp.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/PartialProp.mdx deleted file mode 100644 index cd5e3c662..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/PartialProp.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / PartialProp - -```ts -type PartialProp = Omit & Partial>; -``` - -Defined in: [packages/common/src/Types.ts:209](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L209) - -Makes a specific property of an object optional while keeping others -unchanged. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | -| `K` *extends* keyof `T` | diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Predicate.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Predicate.mdx deleted file mode 100644 index fd7e9f131..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Predicate.mdx +++ /dev/null @@ -1,36 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Predicate - -```ts -type Predicate = (value: T) => boolean; -``` - -Defined in: [packages/common/src/Types.ts:54](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L54) - -Checks a condition on a value and returns a boolean. - -A predicate starts with an 'is' prefix, e.g., `isEven`. - -### Example - -```ts -const isEven: Predicate = (n) => n % 2 === 0; - -const numbers = [1, 2, 3, 4]; -const evenNumbers = numbers.filter(isEven); // [2, 4] -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | - -## Returns - -`boolean` diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/PredicateWithIndex.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/PredicateWithIndex.mdx deleted file mode 100644 index ade20b336..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/PredicateWithIndex.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / PredicateWithIndex - -```ts -type PredicateWithIndex = (value: T, index: number) => boolean; -``` - -Defined in: [packages/common/src/Types.ts:71](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L71) - -Checks a condition on a value at a given index and returns a boolean. - -Useful for callbacks that need both the element and its position. - -### Example - -```ts -const isEvenIndex: PredicateWithIndex = (value, index) => - index % 2 === 0; - -const items = ["a", "b", "c", "d"]; -const evenIndexItems = items.filter(isEvenIndex); // ["a", "c"] -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `T` | -| `index` | `number` | - -## Returns - -`boolean` diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Refinement.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Refinement.mdx deleted file mode 100644 index 7b33d4979..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Refinement.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Refinement - -```ts -type Refinement = (a: A) => a is B; -``` - -Defined in: [packages/common/src/Types.ts:91](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L91) - -A type guard function that refines type `A` to a narrower type `B`. - -### Example - -```ts -type Animal = { name: string }; -type Dog = Animal & { breed: string }; - -const isDog: Refinement = (animal): animal is Dog => - "breed" in animal; - -const animal: Animal = { name: "Dog", breed: "Beagle" }; -if (isDog(animal)) { - console.log(animal.breed); // Safe access to `breed` -} -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `B` *extends* `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | `A` | - -## Returns - -`a is B` diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/RefinementWithIndex.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/RefinementWithIndex.mdx deleted file mode 100644 index 2d01d0667..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/RefinementWithIndex.mdx +++ /dev/null @@ -1,44 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / RefinementWithIndex - -```ts -type RefinementWithIndex = (a: A, index: number) => a is B; -``` - -Defined in: [packages/common/src/Types.ts:113](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L113) - -A type guard function that refines type `A` to a narrower type `B` at a given -index. - -Useful for callbacks that need both the element and its position while -maintaining type narrowing. - -### Example - -```ts -type Item = { type: "number" | "string"; value: unknown }; - -const isNumberItem: RefinementWithIndex = - (item, index): item is Item & { type: "number" } => - index > 0 && item.type === "number"; - -const items: ReadonlyArray = [...]; -const [numbers, others] = partitionArray(items, isNumberItem); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `A` | -| `B` *extends* `A` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `a` | `A` | -| `index` | `number` | - -## Returns - -`a is B` diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Simplify.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/Simplify.mdx deleted file mode 100644 index 53744b1ca..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/Simplify.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / Simplify - -```ts -type Simplify = Kysely.Simplify; -``` - -Defined in: [packages/common/src/Types.ts:203](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L203) - -Simplify an intersection type into a single mapped type. - -This utility forces TypeScript to "flatten" an intersection type into a -single object type so that tooltips and error messages are easier to read. - -### Example - -```ts -type A = { a: string } & { b: number }; -// Without Simplify, TypeScript may display A as: -// { a: string } & { b: number } - -type B = Simplify; -// B is equivalent to: -// { a: string; b: number } -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/UnionToIntersection.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/UnionToIntersection.mdx deleted file mode 100644 index 87487da0e..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/UnionToIntersection.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / UnionToIntersection - -```ts -type UnionToIntersection = U extends unknown ? (k: U) => void : never extends (k: infer I) => void ? I : never; -``` - -Defined in: [packages/common/src/Types.ts:311](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L311) - -Converts a union to an intersection. - -## Type Parameters - -| Type Parameter | -| ------ | -| `U` | diff --git a/.generated/evolu-docs/api-reference/common/Types/type-aliases/WidenLiteral.mdx b/.generated/evolu-docs/api-reference/common/Types/type-aliases/WidenLiteral.mdx deleted file mode 100644 index 6ee9eca43..000000000 --- a/.generated/evolu-docs/api-reference/common/Types/type-aliases/WidenLiteral.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Types](/docs/api-reference/common/Types/page.mdx) / WidenLiteral - -```ts -type WidenLiteral = T extends string ? string : T extends number ? number : T extends boolean ? boolean : T extends bigint ? bigint : T; -``` - -Defined in: [packages/common/src/Types.ts:165](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Types.ts#L165) - -Infers a broader type from a specific literal value type. - -Examples: - -- "foo" -> string -- 42 -> number -- 42n -> bigint -- True -> boolean - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`Literal`](/docs/api-reference/common/Types/type-aliases/Literal.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/CreateWebSocketDep.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/CreateWebSocketDep.mdx deleted file mode 100644 index 5a41b5753..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/CreateWebSocketDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / CreateWebSocketDep - -Defined in: [packages/common/src/WebSocket.ts:97](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L97) - -## Properties - - - -### createWebSocket - -```ts -readonly createWebSocket: CreateWebSocket; -``` - -Defined in: [packages/common/src/WebSocket.ts:98](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L98) diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx deleted file mode 100644 index 45c804f8f..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx +++ /dev/null @@ -1,155 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / WebSocket - -Defined in: [packages/common/src/WebSocket.ts:65](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L65) - -WebSocket with auto-reconnect. - -The API mirrors native -[WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) -but retries connections indefinitely by default. This design accounts for the -fact that browser and React Native online/offline detection APIs are -unreliable — they may report online status incorrectly, so the only reliable -approach is to keep attempting reconnection. - -Created via [createWebSocket](/docs/api-reference/common/WebSocket/variables/createWebSocket.mdx) which returns a [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx). - -Disposing the WebSocket closes the connection. - -## How Binary Messages Work - -The Server Chooses the Message Type: - -- Text (0x1) → Sent as UTF-8 encoded text (always received as a string in the - browser). -- Binary (0x2) → Sent as raw binary data (received as a Blob or ArrayBuffer, - depending on binaryType). - -The Client's binaryType Controls How Binary Data is Processed: - -- If the server sends a text frame (0x1), the browser always delivers - event.data as a string, regardless of binaryType. -- If the server sends a binary frame (0x2), the browser delivers event.data as: - - - A Blob (default: "blob") - - An ArrayBuffer ("arraybuffer") - -### Example - -```ts -const ws = await run( - createWebSocket("wss://example.com", { - onMessage: (data) => console.log("Received:", data), - onOpen: () => console.log("Connected"), - onClose: () => console.log("Disconnected"), - }), -); -if (ws.ok) { - ws.value.send("Hello"); - // Later: ws.value[Symbol.dispose](); -} -``` - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### getReadyState() - -```ts -readonly getReadyState: () => WebSocketReadyState; -``` - -Defined in: [packages/common/src/WebSocket.ts:74](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L74) - -#### Returns - -[`WebSocketReadyState`](/docs/api-reference/common/WebSocket/type-aliases/WebSocketReadyState.mdx) - -*** - - - -### isOpen() - -```ts -readonly isOpen: () => boolean; -``` - -Defined in: [packages/common/src/WebSocket.ts:77](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L77) - -Returns true if the WebSocket is open and ready to send data. - -#### Returns - -`boolean` - -*** - - - -### send() - -```ts -send: (data: string | Blob | ArrayBufferLike | ArrayBufferView) => Result; -``` - -Defined in: [packages/common/src/WebSocket.ts:70](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L70) - -Send data through the WebSocket connection. Returns [Result](/docs/api-reference/common/Result/type-aliases/Result.mdx) with an -error if the data couldn't be sent. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `data` | `string` \| `Blob` \| `ArrayBufferLike` \| `ArrayBufferView`\<`ArrayBufferLike`\> | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, [`WebSocketSendError`](/docs/api-reference/common/WebSocket/interfaces/WebSocketSendError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketConnectError.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketConnectError.mdx deleted file mode 100644 index 79f0bac78..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketConnectError.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / WebSocketConnectError - -Defined in: [packages/common/src/WebSocket.ts:157](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L157) - -An error that occurs when a connection cannot be established due to a network -error. Fires before `onclose`. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"WebSocketConnectError"`\> - -## Properties - - - -### event - -```ts -readonly event: Event; -``` - -Defined in: [packages/common/src/WebSocket.ts:158](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L158) - -*** - - - -### type - -```ts -readonly type: "WebSocketConnectError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionCloseError.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionCloseError.mdx deleted file mode 100644 index 519ca5394..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionCloseError.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / WebSocketConnectionCloseError - -Defined in: [packages/common/src/WebSocket.ts:180](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L180) - -An error that occurs when the connection is closed by the server. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"WebSocketConnectionCloseError"`\> - -## Properties - - - -### event - -```ts -readonly event: CloseEvent; -``` - -Defined in: [packages/common/src/WebSocket.ts:182](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L182) - -*** - - - -### type - -```ts -readonly type: "WebSocketConnectionCloseError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionError.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionError.mdx deleted file mode 100644 index 959c57a58..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionError.mdx +++ /dev/null @@ -1,43 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / WebSocketConnectionError - -Defined in: [packages/common/src/WebSocket.ts:170](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L170) - -An error that occurs when an established connection encounters an issue -(e.g., failure to send data). Fires before `onclose`. - -Note: Only Node.js and WebKit fire this error on abrupt server termination. -Chromium and Firefox only fire `onclose` without a preceding error event. - -https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/error_event - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"WebSocketConnectionError"`\> - -## Properties - - - -### event - -```ts -readonly event: Event; -``` - -Defined in: [packages/common/src/WebSocket.ts:172](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L172) - -*** - - - -### type - -```ts -readonly type: "WebSocketConnectionError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketOptions.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketOptions.mdx deleted file mode 100644 index 1932961f8..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketOptions.mdx +++ /dev/null @@ -1,212 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / WebSocketOptions - -Defined in: [packages/common/src/WebSocket.ts:102](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L102) - -Options for creating [WebSocket](/docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx). - -## Properties - - - -### binaryType? - -```ts -readonly optional binaryType: "blob" | "arraybuffer"; -``` - -Defined in: [packages/common/src/WebSocket.ts:107](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L107) - -Sets the binary type for the data being received. - -*** - - - -### onClose()? - -```ts -readonly optional onClose: (event: CloseEvent) => void; -``` - -Defined in: [packages/common/src/WebSocket.ts:116](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L116) - -Callback when the connection is closed. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `event` | `CloseEvent` | - -#### Returns - -`void` - -*** - - - -### onError()? - -```ts -readonly optional onError: (error: WebSocketError) => void; -``` - -Defined in: [packages/common/src/WebSocket.ts:113](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L113) - -Callback when an error occurs. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `error` | [`WebSocketError`](/docs/api-reference/common/WebSocket/type-aliases/WebSocketError.mdx) | - -#### Returns - -`void` - -*** - - - -### onMessage()? - -```ts -readonly optional onMessage: (data: string | Blob | ArrayBuffer) => void; -``` - -Defined in: [packages/common/src/WebSocket.ts:126](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L126) - -Callback when message data is received. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `data` | `string` \| `Blob` \| `ArrayBuffer` | - -#### Returns - -`void` - -*** - - - -### onOpen()? - -```ts -readonly optional onOpen: () => void; -``` - -Defined in: [packages/common/src/WebSocket.ts:110](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L110) - -Callback when the connection is established. - -#### Returns - -`void` - -*** - - - -### protocols? - -```ts -readonly optional protocols: string | readonly string[]; -``` - -Defined in: [packages/common/src/WebSocket.ts:104](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L104) - -Protocol(s) to use with the WebSocket connection. - -*** - - - -### schedule? - -```ts -readonly optional schedule: Schedule & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">, WebSocketRetryError>; -``` - -Defined in: [packages/common/src/WebSocket.ts:136](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L136) - -Retry schedule for reconnection. Defaults to: - -```ts -// A jittered, capped, unlimited exponential backoff. -jitter(1)(maxDelay("30s")(exponential("100ms"))); -``` - -*** - - - -### shouldRetryOnClose()? - -```ts -readonly optional shouldRetryOnClose: (event: CloseEvent) => boolean; -``` - -Defined in: [packages/common/src/WebSocket.ts:123](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L123) - -Determines whether a closed connection should trigger a retry. - -Return false to stop retrying, for example on auth errors or maintenance. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `event` | `CloseEvent` | - -#### Returns - -`boolean` - -*** - - - -### WebSocketConstructor? - -```ts -readonly optional WebSocketConstructor: { -(url: string | URL, protocols?: string | string[]): WebSocket; - CLOSED: 3; - CLOSING: 2; - CONNECTING: 0; - OPEN: 1; - prototype: WebSocket; -}; -``` - -Defined in: [packages/common/src/WebSocket.ts:145](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L145) - -For custom WebSocket implementations. - -This supports blob: - -https://github.com/callstackincubator/react-native-fast-io - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `url` | `string` \| `URL` | -| `protocols?` | `string` \| `string`[] | - -#### Returns - -`WebSocket` - -| Name | Type | Defined in | -| ------ | ------ | ------ | -| `CLOSED` | `3` | node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.dom.d.ts:36131 | -| `CLOSING` | `2` | node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.dom.d.ts:36130 | -| `CONNECTING` | `0` | node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.dom.d.ts:36128 | -| `OPEN` | `1` | node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.dom.d.ts:36129 | -| `prototype` | `WebSocket` | node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.dom.d.ts:36126 | diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketSendError.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketSendError.mdx deleted file mode 100644 index cee188f79..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/interfaces/WebSocketSendError.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / WebSocketSendError - -Defined in: [packages/common/src/WebSocket.ts:86](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L86) - -An error that occurs when trying to send data but WebSocket is not available -or is in the CONNECTING state. - -https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"WebSocketSendError"`\> - -## Properties - - - -### type - -```ts -readonly type: "WebSocketSendError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/page.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/page.mdx deleted file mode 100644 index 311328c14..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/page.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / WebSocket - -WebSocket with auto-reconnect. - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [CreateWebSocketDep](/docs/api-reference/common/WebSocket/interfaces/CreateWebSocketDep.mdx) | - | -| [WebSocket](/docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx) | WebSocket with auto-reconnect. | -| [WebSocketConnectError](/docs/api-reference/common/WebSocket/interfaces/WebSocketConnectError.mdx) | An error that occurs when a connection cannot be established due to a network error. Fires before `onclose`. | -| [WebSocketConnectionCloseError](/docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionCloseError.mdx) | An error that occurs when the connection is closed by the server. | -| [WebSocketConnectionError](/docs/api-reference/common/WebSocket/interfaces/WebSocketConnectionError.mdx) | An error that occurs when an established connection encounters an issue (e.g., failure to send data). Fires before `onclose`. | -| [WebSocketOptions](/docs/api-reference/common/WebSocket/interfaces/WebSocketOptions.mdx) | Options for creating [WebSocket](/docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx). | -| [WebSocketSendError](/docs/api-reference/common/WebSocket/interfaces/WebSocketSendError.mdx) | An error that occurs when trying to send data but WebSocket is not available or is in the CONNECTING state. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [CreateWebSocket](/docs/api-reference/common/WebSocket/type-aliases/CreateWebSocket.mdx) | [Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that creates a [WebSocket](/docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx). | -| [WebSocketError](/docs/api-reference/common/WebSocket/type-aliases/WebSocketError.mdx) | - | -| [WebSocketReadyState](/docs/api-reference/common/WebSocket/type-aliases/WebSocketReadyState.mdx) | WebSocket connection states. | -| [WebSocketRetryError](/docs/api-reference/common/WebSocket/type-aliases/WebSocketRetryError.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [createWebSocket](/docs/api-reference/common/WebSocket/variables/createWebSocket.mdx) | Create a new [WebSocket](/docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx). | diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/CreateWebSocket.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/CreateWebSocket.mdx deleted file mode 100644 index b4e997b51..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/CreateWebSocket.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / CreateWebSocket - -```ts -type CreateWebSocket = (url: string, options?: WebSocketOptions) => Task; -``` - -Defined in: [packages/common/src/WebSocket.ts:92](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L92) - -[Task](/docs/api-reference/common/Task/type-aliases/Task.mdx) that creates a [WebSocket](/docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `url` | `string` | -| `options?` | [`WebSocketOptions`](/docs/api-reference/common/WebSocket/interfaces/WebSocketOptions.mdx) | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<[`WebSocket`](/docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/WebSocketError.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/WebSocketError.mdx deleted file mode 100644 index 7c0090aa8..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/WebSocketError.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / WebSocketError - -```ts -type WebSocketError = - | WebSocketConnectError - | WebSocketConnectionError -| RetryError; -``` - -Defined in: [packages/common/src/WebSocket.ts:148](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L148) diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/WebSocketReadyState.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/WebSocketReadyState.mdx deleted file mode 100644 index 732d89dc9..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/WebSocketReadyState.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / WebSocketReadyState - -```ts -type WebSocketReadyState = "connecting" | "open" | "closing" | "closed"; -``` - -Defined in: [packages/common/src/WebSocket.ts:89](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L89) - -WebSocket connection states. diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/WebSocketRetryError.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/WebSocketRetryError.mdx deleted file mode 100644 index 87f84da48..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/type-aliases/WebSocketRetryError.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / WebSocketRetryError - -```ts -type WebSocketRetryError = - | WebSocketConnectError - | WebSocketConnectionCloseError; -``` - -Defined in: [packages/common/src/WebSocket.ts:175](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L175) diff --git a/.generated/evolu-docs/api-reference/common/WebSocket/variables/createWebSocket.mdx b/.generated/evolu-docs/api-reference/common/WebSocket/variables/createWebSocket.mdx deleted file mode 100644 index 9c26243b4..000000000 --- a/.generated/evolu-docs/api-reference/common/WebSocket/variables/createWebSocket.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) / createWebSocket - -```ts -const createWebSocket: CreateWebSocket; -``` - -Defined in: [packages/common/src/WebSocket.ts:186](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/WebSocket.ts#L186) - -Create a new [WebSocket](/docs/api-reference/common/WebSocket/interfaces/WebSocket.mdx). diff --git a/.generated/evolu-docs/api-reference/common/Worker/interfaces/CreateMessageChannelDep.mdx b/.generated/evolu-docs/api-reference/common/Worker/interfaces/CreateMessageChannelDep.mdx deleted file mode 100644 index 583fb4b1a..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/interfaces/CreateMessageChannelDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / CreateMessageChannelDep - -Defined in: [packages/common/src/Worker.ts:157](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L157) - -## Properties - - - -### createMessageChannel - -```ts -readonly createMessageChannel: CreateMessageChannel; -``` - -Defined in: [packages/common/src/Worker.ts:158](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L158) diff --git a/.generated/evolu-docs/api-reference/common/Worker/interfaces/CreateMessagePortDep.mdx b/.generated/evolu-docs/api-reference/common/Worker/interfaces/CreateMessagePortDep.mdx deleted file mode 100644 index 0e44234cd..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/interfaces/CreateMessagePortDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / CreateMessagePortDep - -Defined in: [packages/common/src/Worker.ts:94](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L94) - -## Properties - - - -### createMessagePort - -```ts -readonly createMessagePort: CreateMessagePort; -``` - -Defined in: [packages/common/src/Worker.ts:95](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L95) diff --git a/.generated/evolu-docs/api-reference/common/Worker/interfaces/MessageChannel.mdx b/.generated/evolu-docs/api-reference/common/Worker/interfaces/MessageChannel.mdx deleted file mode 100644 index 9a9102f0f..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/interfaces/MessageChannel.mdx +++ /dev/null @@ -1,130 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / MessageChannel - -Defined in: [packages/common/src/Worker.ts:143](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L143) - -Platform-agnostic MessageChannel. - -A channel creates two entangled ports: keep one and transfer the other (e.g., -to a SharedWorker via `postMessage` with `transfer`). Messages sent to one -port are received by the other. - -For one-way communication, omit `Output` (defaults to `never`). - -### Example - -One-way error channel: worker sends errors, main thread receives them. - -Main thread: - -```ts -const errorChannel = createMessageChannel(); -const errorStore = createStore(null); - -sharedWorker.port.postMessage( - { type: "InitErrorStore", port: errorChannel.port1.native }, - [errorChannel.port1.native], // transfer ownership to worker -); - -errorChannel.port2.onMessage = (error) => { - errorStore.set(error); -}; -``` - -Inside worker: - -```ts -scope.onError = (error) => { - errorPort.postMessage(error); -}; -``` - -Bidirectional channel (both sides send and receive): - -```ts -const channel = createMessageChannel(); -``` - -## See - -https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### port1 - -```ts -readonly port1: MessagePort; -``` - -Defined in: [packages/common/src/Worker.ts:145](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L145) - -The first port of the channel. - -*** - - - -### port2 - -```ts -readonly port2: MessagePort; -``` - -Defined in: [packages/common/src/Worker.ts:148](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L148) - -The second port of the channel. diff --git a/.generated/evolu-docs/api-reference/common/Worker/interfaces/MessagePort.mdx b/.generated/evolu-docs/api-reference/common/Worker/interfaces/MessagePort.mdx deleted file mode 100644 index 99931d23f..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/interfaces/MessagePort.mdx +++ /dev/null @@ -1,138 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / MessagePort - -Defined in: [packages/common/src/Worker.ts:54](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L54) - -Platform-agnostic MessagePort. - -Message deserialization errors (structured clone failures) bubble to global -error handlers — they're programming errors, not recoverable runtime -conditions. - -Note: There is no reliable way to detect when a port is closed or -disconnected. Calling `postMessage` on a disposed port does not throw — it -silently fails. To detect dead ports, use a heartbeat pattern where the other -end periodically sends "alive" messages and stale ports are pruned after a -timeout. - -## See - -https://developer.mozilla.org/en-US/docs/Web/API/MessagePort - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Extended by - -- [`Worker`](/docs/api-reference/common/Worker/interfaces/Worker.mdx) -- [`WorkerSelf`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### native - -```ts -readonly native: NativeMessagePort; -``` - -Defined in: [packages/common/src/Worker.ts:75](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L75) - -The native underlying port. Use this only for transferring via postMessage. - -*** - - - -### onMessage - -```ts -onMessage: (message: Output) => void | null; -``` - -Defined in: [packages/common/src/Worker.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L72) - -Callback for messages from the port (like `onmessage` on MessagePort). - -#### See - -https://developer.mozilla.org/en-US/docs/Web/API/MessagePort/message_event - -*** - - - -### postMessage() - -```ts -readonly postMessage: (message: Input, transfer?: readonly Transferable[]) => void; -``` - -Defined in: [packages/common/src/Worker.ts:62](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L62) - -Sends a message. - -Transferable objects in the optional transfer array will have their -ownership transferred to the receiver, making them unusable in the sender. -The transferable objects must be reachable from the message object. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `message` | `Input` | -| `transfer?` | readonly [`Transferable`](/docs/api-reference/common/Worker/type-aliases/Transferable.mdx)[] | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/Worker/interfaces/SharedWorker.mdx b/.generated/evolu-docs/api-reference/common/Worker/interfaces/SharedWorker.mdx deleted file mode 100644 index 6194d20df..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/interfaces/SharedWorker.mdx +++ /dev/null @@ -1,83 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / SharedWorker - -Defined in: [packages/common/src/Worker.ts:34](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L34) - -Platform-agnostic SharedWorker. - -A shared worker is shared across multiple clients (tabs, windows, iframes) -and provides a port for bidirectional communication with each client. - -Initialization errors (script load failures, syntax errors) bubble to global -error handlers — they're programming errors, not recoverable runtime -conditions. - -## See - -https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### port - -```ts -readonly port: MessagePort; -``` - -Defined in: [packages/common/src/Worker.ts:36](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L36) - -Port for communicating with the shared worker. diff --git a/.generated/evolu-docs/api-reference/common/Worker/interfaces/SharedWorkerScope.mdx b/.generated/evolu-docs/api-reference/common/Worker/interfaces/SharedWorkerScope.mdx deleted file mode 100644 index 247fa0db6..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/interfaces/SharedWorkerScope.mdx +++ /dev/null @@ -1,96 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / SharedWorkerScope - -Defined in: [packages/common/src/Worker.ts:192](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L192) - -## Deprecated - -Use [SharedWorkerSelf](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx). Retained for backwards compatibility. - -## Extends - -- [`SharedWorkerSelf`](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx)\<`Input`, `Output`\>.[`GlobalErrorScope`](/docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Methods - - - -### ~~\[dispose\]()~~ - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -[`SharedWorkerSelf`](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx).[`[dispose]`](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx#dispose) - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -[`SharedWorkerSelf`](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx).[`[dispose]`](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx#dispose) - -## Properties - - - -### ~~onConnect~~ - -```ts -onConnect: - | (port: MessagePort) => void - | null; -``` - -Defined in: [packages/common/src/Worker.ts:179](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L179) - -#### Inherited from - -[`SharedWorkerSelf`](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx).[`onConnect`](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx#onconnect) - -*** - - - -### ~~onError~~ - -```ts -onError: - | (error: UnknownError) => void - | null; -``` - -Defined in: [packages/common/src/Error.ts:107](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Error.ts#L107) - -Callback for uncaught errors and unhandled promise rejections. - -Set this to receive notifications when global errors occur in this scope. - -#### Inherited from - -[`GlobalErrorScope`](/docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx).[`onError`](/docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx#onerror) diff --git a/.generated/evolu-docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx b/.generated/evolu-docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx deleted file mode 100644 index f1c62d999..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx +++ /dev/null @@ -1,79 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / SharedWorkerSelf - -Defined in: [packages/common/src/Worker.ts:178](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L178) - -Typed `self` for code running inside a shared worker. - -This is the worker-side counterpart to [SharedWorker](/docs/api-reference/common/Worker/interfaces/SharedWorker.mdx). It wraps `self` -inside the shared worker, providing typed `onConnect` callbacks. - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Extended by - -- [`SharedWorkerScope`](/docs/api-reference/common/Worker/interfaces/SharedWorkerScope.mdx) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### onConnect - -```ts -onConnect: - | (port: MessagePort) => void - | null; -``` - -Defined in: [packages/common/src/Worker.ts:179](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L179) diff --git a/.generated/evolu-docs/api-reference/common/Worker/interfaces/Worker.mdx b/.generated/evolu-docs/api-reference/common/Worker/interfaces/Worker.mdx deleted file mode 100644 index 6e3201652..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/interfaces/Worker.mdx +++ /dev/null @@ -1,135 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / Worker - -Defined in: [packages/common/src/Worker.ts:19](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L19) - -Platform-agnostic Worker. - -Initialization errors (script load failures, syntax errors) bubble to global -error handlers — they're programming errors, not recoverable runtime -conditions. - -## See - -https://developer.mozilla.org/en-US/docs/Web/API/Worker - -## Extends - -- [`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx)\<`Input`, `Output`\> - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx).[`[dispose]`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#dispose) - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx).[`[dispose]`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#dispose) - -## Properties - - - -### native - -```ts -readonly native: NativeMessagePort; -``` - -Defined in: [packages/common/src/Worker.ts:75](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L75) - -The native underlying port. Use this only for transferring via postMessage. - -#### Inherited from - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx).[`native`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#native) - -*** - - - -### onMessage - -```ts -onMessage: (message: Output) => void | null; -``` - -Defined in: [packages/common/src/Worker.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L72) - -Callback for messages from the port (like `onmessage` on MessagePort). - -#### See - -https://developer.mozilla.org/en-US/docs/Web/API/MessagePort/message_event - -#### Inherited from - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx).[`onMessage`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#onmessage) - -*** - - - -### postMessage() - -```ts -readonly postMessage: (message: Input, transfer?: readonly Transferable[]) => void; -``` - -Defined in: [packages/common/src/Worker.ts:62](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L62) - -Sends a message. - -Transferable objects in the optional transfer array will have their -ownership transferred to the receiver, making them unusable in the sender. -The transferable objects must be reachable from the message object. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `message` | `Input` | -| `transfer?` | readonly [`Transferable`](/docs/api-reference/common/Worker/type-aliases/Transferable.mdx)[] | - -#### Returns - -`void` - -#### Inherited from - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx).[`postMessage`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#postmessage) diff --git a/.generated/evolu-docs/api-reference/common/Worker/interfaces/WorkerScope.mdx b/.generated/evolu-docs/api-reference/common/Worker/interfaces/WorkerScope.mdx deleted file mode 100644 index f57c0f476..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/interfaces/WorkerScope.mdx +++ /dev/null @@ -1,151 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / WorkerScope - -Defined in: [packages/common/src/Worker.ts:185](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L185) - -## Deprecated - -Use [WorkerSelf](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx). Retained for backwards compatibility. - -## Extends - -- [`WorkerSelf`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx)\<`Input`, `Output`\>.[`GlobalErrorScope`](/docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Methods - - - -### ~~\[dispose\]()~~ - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -[`WorkerSelf`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx).[`[dispose]`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx#dispose) - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -[`WorkerSelf`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx).[`[dispose]`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx#dispose) - -## Properties - - - -### ~~native~~ - -```ts -readonly native: NativeMessagePort; -``` - -Defined in: [packages/common/src/Worker.ts:75](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L75) - -The native underlying port. Use this only for transferring via postMessage. - -#### Inherited from - -[`WorkerSelf`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx).[`native`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx#native) - -*** - - - -### ~~onError~~ - -```ts -onError: - | (error: UnknownError) => void - | null; -``` - -Defined in: [packages/common/src/Error.ts:107](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Error.ts#L107) - -Callback for uncaught errors and unhandled promise rejections. - -Set this to receive notifications when global errors occur in this scope. - -#### Inherited from - -[`GlobalErrorScope`](/docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx).[`onError`](/docs/api-reference/common/Error/interfaces/GlobalErrorScope.mdx#onerror) - -*** - - - -### ~~onMessage~~ - -```ts -onMessage: (message: Input) => void | null; -``` - -Defined in: [packages/common/src/Worker.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L72) - -Callback for messages from the port (like `onmessage` on MessagePort). - -#### See - -https://developer.mozilla.org/en-US/docs/Web/API/MessagePort/message_event - -#### Inherited from - -[`WorkerSelf`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx).[`onMessage`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx#onmessage) - -*** - - - -### ~~postMessage()~~ - -```ts -readonly postMessage: (message: Output, transfer?: readonly Transferable[]) => void; -``` - -Defined in: [packages/common/src/Worker.ts:62](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L62) - -Sends a message. - -Transferable objects in the optional transfer array will have their -ownership transferred to the receiver, making them unusable in the sender. -The transferable objects must be reachable from the message object. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `message` | `Output` | -| `transfer?` | readonly [`Transferable`](/docs/api-reference/common/Worker/type-aliases/Transferable.mdx)[] | - -#### Returns - -`void` - -#### Inherited from - -[`WorkerSelf`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx).[`postMessage`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx#postmessage) diff --git a/.generated/evolu-docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx b/.generated/evolu-docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx deleted file mode 100644 index 2c18a2a5a..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx +++ /dev/null @@ -1,134 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / WorkerSelf - -Defined in: [packages/common/src/Worker.ts:169](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L169) - -Typed `self` for code running inside a dedicated worker. - -This is the worker-side counterpart to [Worker](/docs/api-reference/common/Worker/interfaces/Worker.mdx) — a typed -[MessagePort](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx) that wraps `self` inside the worker. - -## Extends - -- [`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx)\<`Output`, `Input`\> - -## Extended by - -- [`WorkerScope`](/docs/api-reference/common/Worker/interfaces/WorkerScope.mdx) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx).[`[dispose]`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#dispose) - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx).[`[dispose]`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#dispose) - -## Properties - - - -### native - -```ts -readonly native: NativeMessagePort; -``` - -Defined in: [packages/common/src/Worker.ts:75](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L75) - -The native underlying port. Use this only for transferring via postMessage. - -#### Inherited from - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx).[`native`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#native) - -*** - - - -### onMessage - -```ts -onMessage: (message: Input) => void | null; -``` - -Defined in: [packages/common/src/Worker.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L72) - -Callback for messages from the port (like `onmessage` on MessagePort). - -#### See - -https://developer.mozilla.org/en-US/docs/Web/API/MessagePort/message_event - -#### Inherited from - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx).[`onMessage`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#onmessage) - -*** - - - -### postMessage() - -```ts -readonly postMessage: (message: Output, transfer?: readonly Transferable[]) => void; -``` - -Defined in: [packages/common/src/Worker.ts:62](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L62) - -Sends a message. - -Transferable objects in the optional transfer array will have their -ownership transferred to the receiver, making them unusable in the sender. -The transferable objects must be reachable from the message object. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `message` | `Output` | -| `transfer?` | readonly [`Transferable`](/docs/api-reference/common/Worker/type-aliases/Transferable.mdx)[] | - -#### Returns - -`void` - -#### Inherited from - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx).[`postMessage`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#postmessage) diff --git a/.generated/evolu-docs/api-reference/common/Worker/page.mdx b/.generated/evolu-docs/api-reference/common/Worker/page.mdx deleted file mode 100644 index f629dda90..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/page.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / Worker - -Platform-agnostic Worker and MessageChannel abstractions. - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [CreateMessageChannelDep](/docs/api-reference/common/Worker/interfaces/CreateMessageChannelDep.mdx) | - | -| [CreateMessagePortDep](/docs/api-reference/common/Worker/interfaces/CreateMessagePortDep.mdx) | - | -| [MessageChannel](/docs/api-reference/common/Worker/interfaces/MessageChannel.mdx) | Platform-agnostic MessageChannel. | -| [MessagePort](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx) | Platform-agnostic MessagePort. | -| [SharedWorker](/docs/api-reference/common/Worker/interfaces/SharedWorker.mdx) | Platform-agnostic SharedWorker. | -| [~~SharedWorkerScope~~](/docs/api-reference/common/Worker/interfaces/SharedWorkerScope.mdx) | - | -| [SharedWorkerSelf](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx) | Typed `self` for code running inside a shared worker. | -| [Worker](/docs/api-reference/common/Worker/interfaces/Worker.mdx) | Platform-agnostic Worker. | -| [~~WorkerScope~~](/docs/api-reference/common/Worker/interfaces/WorkerScope.mdx) | - | -| [WorkerSelf](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx) | Typed `self` for code running inside a dedicated worker. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [CreateMessageChannel](/docs/api-reference/common/Worker/type-aliases/CreateMessageChannel.mdx) | Factory function to create a [MessageChannel](/docs/api-reference/common/Worker/interfaces/MessageChannel.mdx). | -| [CreateMessagePort](/docs/api-reference/common/Worker/type-aliases/CreateMessagePort.mdx) | Factory function to create a [MessagePort](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx) from a native port. | -| [NativeMessagePort](/docs/api-reference/common/Worker/type-aliases/NativeMessagePort.mdx) | Opaque type for platform-specific native MessagePort. | -| [Transferable](/docs/api-reference/common/Worker/type-aliases/Transferable.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/Worker/type-aliases/CreateMessageChannel.mdx b/.generated/evolu-docs/api-reference/common/Worker/type-aliases/CreateMessageChannel.mdx deleted file mode 100644 index 4538027de..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/type-aliases/CreateMessageChannel.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / CreateMessageChannel - -```ts -type CreateMessageChannel = () => MessageChannel; -``` - -Defined in: [packages/common/src/Worker.ts:152](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L152) - -Factory function to create a [MessageChannel](/docs/api-reference/common/Worker/interfaces/MessageChannel.mdx). - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Returns - -[`MessageChannel`](/docs/api-reference/common/Worker/interfaces/MessageChannel.mdx)\<`Input`, `Output`\> diff --git a/.generated/evolu-docs/api-reference/common/Worker/type-aliases/CreateMessagePort.mdx b/.generated/evolu-docs/api-reference/common/Worker/type-aliases/CreateMessagePort.mdx deleted file mode 100644 index 52ccf3dfe..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/type-aliases/CreateMessagePort.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / CreateMessagePort - -```ts -type CreateMessagePort = (nativePort: NativeMessagePort) => MessagePort; -``` - -Defined in: [packages/common/src/Worker.ts:90](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L90) - -Factory function to create a [MessagePort](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx) from a native port. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `nativePort` | [`NativeMessagePort`](/docs/api-reference/common/Worker/type-aliases/NativeMessagePort.mdx) | - -## Returns - -[`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx)\<`Input`, `Output`\> diff --git a/.generated/evolu-docs/api-reference/common/Worker/type-aliases/NativeMessagePort.mdx b/.generated/evolu-docs/api-reference/common/Worker/type-aliases/NativeMessagePort.mdx deleted file mode 100644 index 2ad86e851..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/type-aliases/NativeMessagePort.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / NativeMessagePort - -```ts -type NativeMessagePort = Brand<"NativeMessagePort">; -``` - -Defined in: [packages/common/src/Worker.ts:87](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L87) - -Opaque type for platform-specific native MessagePort. - -Exists because `postMessage` transfer requires the native object itself, not -a wrapper. Ensures type-safe wiring between [MessagePort.native](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx#native) and -[CreateMessagePort](/docs/api-reference/common/Worker/type-aliases/CreateMessagePort.mdx) without exposing platform details. diff --git a/.generated/evolu-docs/api-reference/common/Worker/type-aliases/Transferable.mdx b/.generated/evolu-docs/api-reference/common/Worker/type-aliases/Transferable.mdx deleted file mode 100644 index d10648556..000000000 --- a/.generated/evolu-docs/api-reference/common/Worker/type-aliases/Transferable.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [Worker](/docs/api-reference/common/Worker/page.mdx) / Transferable - -```ts -type Transferable = - | NativeMessagePort - | ArrayBuffer; -``` - -Defined in: [packages/common/src/Worker.ts:78](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Worker.ts#L78) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Db/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Db/page.mdx deleted file mode 100644 index 4e7ccaae3..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Db/page.mdx +++ /dev/null @@ -1,3 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Db - -Local-first database implementation. diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerAppOwnerMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerAppOwnerMessage.mdx deleted file mode 100644 index c57cc311b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerAppOwnerMessage.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerAppOwnerMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:74](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L74) - -AppOwner from storage. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerAppOwner"`\> - -## Properties - - - -### appOwner - -```ts -readonly appOwner: - | AppOwner - | null; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:75](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L75) - -*** - - - -### type - -```ts -readonly type: "DbWorkerAppOwner"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerCloseMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerCloseMessage.mdx deleted file mode 100644 index 7dd82d140..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerCloseMessage.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerCloseMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:51](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L51) - -Close database resources for deterministic lifecycle handling. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerClose"`\> - -## Properties - - - -### requestId - -```ts -readonly requestId: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:52](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L52) - -*** - - - -### type - -```ts -readonly type: "DbWorkerClose"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerCloseResponseMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerCloseResponseMessage.mdx deleted file mode 100644 index 0952609d5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerCloseResponseMessage.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerCloseResponseMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:106](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L106) - -Database resources closed. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerCloseResponse"`\> - -## Properties - - - -### requestId - -```ts -readonly requestId: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:108](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L108) - -*** - - - -### type - -```ts -readonly type: "DbWorkerCloseResponse"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerErrorMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerErrorMessage.mdx deleted file mode 100644 index 148f38039..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerErrorMessage.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerErrorMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:112](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L112) - -Error from worker. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerError"`\> - -## Properties - - - -### error - -```ts -readonly error: string; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:114](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L114) - -*** - - - -### requestId - -```ts -readonly requestId: number | undefined; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:113](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L113) - -*** - - - -### type - -```ts -readonly type: "DbWorkerError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerExportMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerExportMessage.mdx deleted file mode 100644 index ca8939344..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerExportMessage.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerExportMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:41](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L41) - -Export the database as a binary blob. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerExport"`\> - -## Properties - - - -### requestId - -```ts -readonly requestId: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:42](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L42) - -*** - - - -### type - -```ts -readonly type: "DbWorkerExport"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerExportResponseMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerExportResponseMessage.mdx deleted file mode 100644 index 9761a9b9f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerExportResponseMessage.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerExportResponseMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:93](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L93) - -Database exported. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerExportResponse"`\> - -## Properties - - - -### data - -```ts -readonly data: Uint8Array; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:96](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L96) - -*** - - - -### requestId - -```ts -readonly requestId: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:95](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L95) - -*** - - - -### type - -```ts -readonly type: "DbWorkerExportResponse"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerGetAppOwnerMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerGetAppOwnerMessage.mdx deleted file mode 100644 index cbc6d4ed4..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerGetAppOwnerMessage.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerGetAppOwnerMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:23](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L23) - -Request the current AppOwner from storage. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerGetAppOwner"`\> - -## Properties - - - -### type - -```ts -readonly type: "DbWorkerGetAppOwner"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerInitMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerInitMessage.mdx deleted file mode 100644 index 85152bf7e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerInitMessage.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerInitMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:17](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L17) - -Initialize the database worker with configuration. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerInit"`\> - -## Properties - - - -### dbName - -```ts -readonly dbName: string; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:18](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L18) - -*** - - - -### schemaVersion - -```ts -readonly schemaVersion: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:19](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L19) - -*** - - - -### type - -```ts -readonly type: "DbWorkerInit"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerInitResponseMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerInitResponseMessage.mdx deleted file mode 100644 index b85469d22..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerInitResponseMessage.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerInitResponseMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:67](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L67) - -Worker initialized successfully. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerInitResponse"`\> - -## Properties - - - -### error? - -```ts -readonly optional error: string; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:70](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L70) - -*** - - - -### success - -```ts -readonly success: boolean; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:69](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L69) - -*** - - - -### type - -```ts -readonly type: "DbWorkerInitResponse"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderInput.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderInput.mdx deleted file mode 100644 index ec1c66c30..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderInput.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerLeaderInput - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:127](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L127) - -Heartbeat sent by an Evolu client over the broker channel. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"LeaderHeartbeat"`\> - -## Properties - - - -### name - -```ts -readonly name: string & Brand<"UrlSafeString"> & Brand<"SimpleName">; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:128](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L128) - -*** - - - -### type - -```ts -readonly type: "LeaderHeartbeat"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderOutput.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderOutput.mdx deleted file mode 100644 index 6a309b520..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderOutput.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerLeaderOutput - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:122](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L122) - -Leader lock lifecycle event emitted by the DB worker channel. - -This uses a dedicated broker channel, not the request/response DB channel. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"LeaderAcquired"`\> - -## Properties - - - -### name - -```ts -readonly name: string & Brand<"UrlSafeString"> & Brand<"SimpleName">; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:123](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L123) - -*** - - - -### type - -```ts -readonly type: "LeaderAcquired"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerMutateMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerMutateMessage.mdx deleted file mode 100644 index ce6cb52f0..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerMutateMessage.mdx +++ /dev/null @@ -1,61 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerMutateMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:34](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L34) - -Execute a mutation (insert/update/delete). - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerMutate"`\> - -## Properties - - - -### params - -```ts -readonly params: readonly unknown[]; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L37) - -*** - - - -### requestId - -```ts -readonly requestId: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:35](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L35) - -*** - - - -### sql - -```ts -readonly sql: string; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:36](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L36) - -*** - - - -### type - -```ts -readonly type: "DbWorkerMutate"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerMutateResponseMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerMutateResponseMessage.mdx deleted file mode 100644 index 5e084c23b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerMutateResponseMessage.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerMutateResponseMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:86](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L86) - -Mutation completed. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerMutateResponse"`\> - -## Properties - - - -### changes - -```ts -readonly changes: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:89](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L89) - -*** - - - -### requestId - -```ts -readonly requestId: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:88](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L88) - -*** - - - -### type - -```ts -readonly type: "DbWorkerMutateResponse"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerQueryMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerQueryMessage.mdx deleted file mode 100644 index 5405491f1..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerQueryMessage.mdx +++ /dev/null @@ -1,61 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerQueryMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L27) - -Execute a query and return results. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerQuery"`\> - -## Properties - - - -### params? - -```ts -readonly optional params: readonly unknown[]; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:30](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L30) - -*** - - - -### requestId - -```ts -readonly requestId: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:28](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L28) - -*** - - - -### sql - -```ts -readonly sql: string; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:29](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L29) - -*** - - - -### type - -```ts -readonly type: "DbWorkerQuery"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerQueryResponseMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerQueryResponseMessage.mdx deleted file mode 100644 index 653525d3c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerQueryResponseMessage.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerQueryResponseMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:79](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L79) - -Query results. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerQueryResponse"`\> - -## Properties - - - -### requestId - -```ts -readonly requestId: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:81](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L81) - -*** - - - -### rows - -```ts -readonly rows: readonly Row[]; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:82](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L82) - -*** - - - -### type - -```ts -readonly type: "DbWorkerQueryResponse"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerResetMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerResetMessage.mdx deleted file mode 100644 index e53df5af6..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerResetMessage.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerResetMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:46](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L46) - -Reset the database (delete all data). - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerReset"`\> - -## Properties - - - -### requestId - -```ts -readonly requestId: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:47](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L47) - -*** - - - -### type - -```ts -readonly type: "DbWorkerReset"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerResetResponseMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerResetResponseMessage.mdx deleted file mode 100644 index 4f14eefe9..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerResetResponseMessage.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerResetResponseMessage - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:100](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L100) - -Database reset. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"DbWorkerResetResponse"`\> - -## Properties - - - -### requestId - -```ts -readonly requestId: number; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:102](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L102) - -*** - - - -### type - -```ts -readonly type: "DbWorkerResetResponse"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx deleted file mode 100644 index fe4a5b7f4..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/DbWorkerProtocol - -Database Worker message protocol. - -Defines all messages exchanged between main thread and the database worker. -The worker runs SQLite operations off the main thread for better performance. - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [DbWorkerAppOwnerMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerAppOwnerMessage.mdx) | AppOwner from storage. | -| [DbWorkerCloseMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerCloseMessage.mdx) | Close database resources for deterministic lifecycle handling. | -| [DbWorkerCloseResponseMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerCloseResponseMessage.mdx) | Database resources closed. | -| [DbWorkerErrorMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerErrorMessage.mdx) | Error from worker. | -| [DbWorkerExportMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerExportMessage.mdx) | Export the database as a binary blob. | -| [DbWorkerExportResponseMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerExportResponseMessage.mdx) | Database exported. | -| [DbWorkerGetAppOwnerMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerGetAppOwnerMessage.mdx) | Request the current AppOwner from storage. | -| [DbWorkerInitMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerInitMessage.mdx) | Initialize the database worker with configuration. | -| [DbWorkerInitResponseMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerInitResponseMessage.mdx) | Worker initialized successfully. | -| [DbWorkerLeaderInput](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderInput.mdx) | Heartbeat sent by an Evolu client over the broker channel. | -| [DbWorkerLeaderOutput](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderOutput.mdx) | Leader lock lifecycle event emitted by the DB worker channel. | -| [DbWorkerMutateMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerMutateMessage.mdx) | Execute a mutation (insert/update/delete). | -| [DbWorkerMutateResponseMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerMutateResponseMessage.mdx) | Mutation completed. | -| [DbWorkerQueryMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerQueryMessage.mdx) | Execute a query and return results. | -| [DbWorkerQueryResponseMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerQueryResponseMessage.mdx) | Query results. | -| [DbWorkerResetMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerResetMessage.mdx) | Reset the database (delete all data). | -| [DbWorkerResetResponseMessage](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerResetResponseMessage.mdx) | Database reset. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [DbWorkerInput](/docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerInput.mdx) | - | -| [DbWorkerOutput](/docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerOutput.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [dbWorkerLeaderHeartbeatIntervalMs](/docs/api-reference/common/local-first/DbWorkerProtocol/variables/dbWorkerLeaderHeartbeatIntervalMs.mdx) | Default heartbeat interval for broker liveness checks. | -| [dbWorkerLeaderHeartbeatTimeoutMs](/docs/api-reference/common/local-first/DbWorkerProtocol/variables/dbWorkerLeaderHeartbeatTimeoutMs.mdx) | Timeout after which missing heartbeats mark a worker port as stale. | diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerInput.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerInput.mdx deleted file mode 100644 index 583c912ca..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerInput.mdx +++ /dev/null @@ -1,14 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerInput - -```ts -type DbWorkerInput = - | DbWorkerInitMessage - | DbWorkerGetAppOwnerMessage - | DbWorkerQueryMessage - | DbWorkerMutateMessage - | DbWorkerExportMessage - | DbWorkerResetMessage - | DbWorkerCloseMessage; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:55](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L55) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerOutput.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerOutput.mdx deleted file mode 100644 index b7d1da9f8..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerOutput.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / DbWorkerOutput - -```ts -type DbWorkerOutput = - | DbWorkerInitResponseMessage - | DbWorkerAppOwnerMessage - | DbWorkerQueryResponseMessage - | DbWorkerMutateResponseMessage - | DbWorkerExportResponseMessage - | DbWorkerResetResponseMessage - | DbWorkerCloseResponseMessage - | DbWorkerErrorMessage; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:137](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L137) diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/variables/dbWorkerLeaderHeartbeatIntervalMs.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/variables/dbWorkerLeaderHeartbeatIntervalMs.mdx deleted file mode 100644 index 3e60ab00e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/variables/dbWorkerLeaderHeartbeatIntervalMs.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / dbWorkerLeaderHeartbeatIntervalMs - -```ts -const dbWorkerLeaderHeartbeatIntervalMs: 5000 = 5_000; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:132](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L132) - -Default heartbeat interval for broker liveness checks. diff --git a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/variables/dbWorkerLeaderHeartbeatTimeoutMs.mdx b/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/variables/dbWorkerLeaderHeartbeatTimeoutMs.mdx deleted file mode 100644 index de8247380..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/DbWorkerProtocol/variables/dbWorkerLeaderHeartbeatTimeoutMs.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) / dbWorkerLeaderHeartbeatTimeoutMs - -```ts -const dbWorkerLeaderHeartbeatTimeoutMs: 30000 = 30_000; -``` - -Defined in: [packages/common/src/local-first/DbWorkerProtocol.ts:135](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/DbWorkerProtocol.ts#L135) - -Timeout after which missing heartbeats mark a worker port as stale. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Error/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Error/page.mdx deleted file mode 100644 index d36326ef4..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Error/page.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Error - -Evolu error types. - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [EvoluError](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) | Represents errors that can occur in Evolu. | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx deleted file mode 100644 index b9c9bb01e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx +++ /dev/null @@ -1,14 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Error](/docs/api-reference/common/local-first/Error/page.mdx) / EvoluError - -```ts -type EvoluError = - | DecryptWithXChaCha20Poly1305Error - | ProtocolError - | SqliteError - | TimestampError - | UnknownError; -``` - -Defined in: [packages/common/src/local-first/Error.ts:14](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Error.ts#L14) - -Represents errors that can occur in Evolu. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/functions/createEvolu.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/functions/createEvolu.mdx deleted file mode 100644 index 2467522ab..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/functions/createEvolu.mdx +++ /dev/null @@ -1,68 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / createEvolu - -```ts -function createEvolu(deps: EvoluDeps): (schema: ValidateSchema extends never ? S : ValidateSchema, config: EvoluConfig) => Evolu; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:723](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L723) - -Creates an [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx) instance for a platform configured with the specified -[EvoluSchema](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) and optional [EvoluConfig](/docs/api-reference/common/local-first/Evolu/interfaces/EvoluConfig.mdx) providing a typed -interface for querying, mutating, and syncing data. - -### Example - -```ts -const TodoId = id("Todo"); -type TodoId = InferType; - -const TodoCategoryId = id("TodoCategory"); -type TodoCategoryId = InferType; - -const NonEmptyString50 = maxLength(50, NonEmptyString); -type NonEmptyString50 = InferType; - -const Schema = { - todo: { - id: TodoId, - title: NonEmptyString1000, - isCompleted: nullOr(SqliteBoolean), - categoryId: nullOr(TodoCategoryId), - }, - todoCategory: { - id: TodoCategoryId, - name: NonEmptyString50, - }, -}; - -const evolu = createEvolu(evoluReactDeps)(Schema); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`EvoluDeps`](/docs/api-reference/common/local-first/Evolu/type-aliases/EvoluDeps.mdx) | - -## Returns - -```ts -(schema: ValidateSchema extends never ? S : ValidateSchema, config?: EvoluConfig): Evolu; -``` - -### Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* `Readonly`\<`Record`\<`string`, `Readonly`\<`Record`\<`string`, [`AnyStandardSchemaV1`](/docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx)\>\>\>\> | - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `schema` | [`ValidateSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchema.mdx)\<`S`\> *extends* `never` ? `S` : [`ValidateSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchema.mdx)\<`S`\> | -| `config` | [`EvoluConfig`](/docs/api-reference/common/local-first/Evolu/interfaces/EvoluConfig.mdx) | - -### Returns - -[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/functions/createEvoluDeps.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/functions/createEvoluDeps.mdx deleted file mode 100644 index 4bf081a7e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/functions/createEvoluDeps.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / createEvoluDeps - -```ts -function createEvoluDeps(deps: D): EvoluDeps; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:621](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L621) - -Creates Evolu dependencies from platform-specific dependencies. - -## Type Parameters - -| Type Parameter | -| ------ | -| `D` *extends* [`EvoluPlatformDeps`](/docs/api-reference/common/local-first/Evolu/type-aliases/EvoluPlatformDeps.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | `D` | - -## Returns - -[`EvoluDeps`](/docs/api-reference/common/local-first/Evolu/type-aliases/EvoluDeps.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/AppNameError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/AppNameError.mdx deleted file mode 100644 index e4cce6a6a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/AppNameError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / AppNameError - -Defined in: [packages/common/src/local-first/Evolu.ts:259](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L259) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"AppName"`\> - -## Properties - - - -### type - -```ts -readonly type: "AppName"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/ErrorStoreDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/ErrorStoreDep.mdx deleted file mode 100644 index ab1f60445..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/ErrorStoreDep.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / ErrorStoreDep - -Defined in: [packages/common/src/local-first/Evolu.ts:671](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L671) - -## Properties - - - -### evoluError - -```ts -readonly evoluError: ReadonlyStore< - | EvoluError -| null>; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:686](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L686) - -Shared error store for all Evolu instances. Subscribe once to handle errors -globally across all instances. - -### Example - -```ts -deps.evoluError.subscribe(() => { - const error = deps.evoluError.get(); - if (!error) return; - console.error(error); -}); -``` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx deleted file mode 100644 index 34de67456..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx +++ /dev/null @@ -1,631 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / Evolu - -Defined in: [packages/common/src/local-first/Evolu.ts:264](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L264) - -Local-first SQL database with typed queries, mutations, and sync. - -## Extends - -- [`AsyncDisposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `S` *extends* [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | - -## Methods - - - -### \[asyncDispose\]() - -#### Call Signature - -```ts -asyncDispose: PromiseLike; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:40 - -##### Returns - -[`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<`void`\> - -##### Inherited from - -```ts -AsyncDisposable.[asyncDispose] -``` - -#### Call Signature - -```ts -asyncDispose: PromiseLike; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:13 - -##### Returns - -[`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<`void`\> - -##### Inherited from - -```ts -AsyncDisposable.[asyncDispose] -``` - -## Properties - - - -### appOwner - -```ts -readonly appOwner: Promise; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:270](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L270) - -[AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx). - -*** - - - -### exportDatabase() - -```ts -readonly exportDatabase: () => Promise>; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:543](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L543) - -Export SQLite database file as Uint8Array. - -In the future, it will be possible to import a database and export/import -history for 1:1 migrations across owners. - -#### Returns - -`Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\> - -*** - - - -### getError() - -```ts -readonly getError: () => - | EvoluError - | null; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:281](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L281) - -Transitional compatibility API. Returns `null` in Task-based stub mode. - -#### Returns - - \| [`EvoluError`](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) - \| `null` - -*** - - - -### getQueryRows() - -```ts -readonly getQueryRows: (query: Query) => QueryRows; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:352](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L352) - -Get [QueryRows](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx). - -### Example - -```ts -const unsubscribe = evolu.subscribeQuery(allTodos)(() => { - const rows = evolu.getQueryRows(allTodos); -}); -``` - -#### Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<`R`\> | - -#### Returns - -[`QueryRows`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx)\<`R`\> - -*** - - - -### insert - -```ts -insert: Mutation; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:396](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L396) - -Inserts a row into the database and returns a [Result](/docs/api-reference/common/Result/page.mdx) with the new -[Id](/docs/api-reference/common/Type/variables/Id.mdx). - -The first argument is the table name, and the second is an object -containing the row data. An optional third argument provides mutation -options including `onComplete` callback and custom `ownerId`. - -Returns a Result type - use `.ok` to check if the insertion succeeded, and -`.value.id` to access the generated ID on success, or `.error` to handle -validation errors. - -Evolu does not use SQL for mutations to ensure data can be safely and -predictably merged without conflicts. Explicit mutations also allow Evolu -to automatically update [SystemColumns](/docs/api-reference/common/local-first/Schema/variables/SystemColumns-1.mdx). - -### Example - -```ts -const result = evolu.insert("todo", { - title: "Learn Evolu", - isCompleted: false, -}); - -if (result.ok) { - console.log("Todo created with ID:", result.value.id); -} else { - console.error("Validation error:", result.error); -} - -// With onComplete callback -evolu.insert( - "todo", - { title: "Another todo" }, - { - onComplete: () => { - console.log("Insert completed"); - }, - }, -); -``` - -*** - - - -### loadQueries() - -```ts -readonly loadQueries: (queries: [...Q[]]) => [...QueriesToQueryRowsPromises[]]; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:322](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L322) - -Load an array of [Query](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) queries and return an array of -[QueryRows](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx) promises. It's like `queries.map(loadQuery)` but with -proper types for returned promises. - -### Example - -```ts -evolu.loadQueries([allTodos, todoById(1)]); -``` - -#### Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | -| `Q` *extends* [`Queries`](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx)\<`R`\> | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `queries` | \[`...Q[]`\] | - -#### Returns - -\[`...QueriesToQueryRowsPromises[]`\] - -*** - - - -### loadQuery() - -```ts -readonly loadQuery: (query: Query) => Promise>; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:309](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L309) - -Load [Query](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) and return a promise with [QueryRows](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx). - -The returned promise always resolves successfully because there is no -reason why loading should fail. All data are local, and the query is -typed. - -Loading is batched, and returned promises are cached until resolved to -prevent redundant database queries and to support React Suspense (which -requires stable promise references while pending). - -To subscribe a query for automatic updates, use -[Evolu.subscribeQuery](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx#subscribequery). - -### Example - -```ts -const createQuery = createQueryBuilder(Schema); -const allTodos = createQuery((db) => - db.selectFrom("todo").selectAll(), -); -evolu.loadQuery(allTodos).then((rows) => { - console.log(rows); -}); -``` - -#### Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<`R`\> | - -#### Returns - -`Promise`\<[`QueryRows`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx)\<`R`\>\> - -*** - - - -### name - -```ts -readonly name: string & Brand<"UrlSafeString"> & Brand<"SimpleName">; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:267](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L267) - -The name of the Evolu instance from [EvoluConfig](/docs/api-reference/common/local-first/Evolu/interfaces/EvoluConfig.mdx). - -*** - - - -### reloadApp() - -```ts -readonly reloadApp: () => void; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:535](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L535) - -Reload the app in a platform-specific way. For browsers, this will reload -all tabs using Evolu. For native apps, it will restart the app. - -#### Returns - -`void` - -*** - - - -### resetAppOwner() - -```ts -readonly resetAppOwner: (options?: { - reload?: boolean; -}) => Promise; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:516](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L516) - -Delete [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) and all their data from the current device. After -the deletion, Evolu will purge the application state. For browsers, this -will reload all tabs using Evolu. For native apps, it will restart the -app. - -Reloading can be turned off via options if you want to provide a different -UX. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `options?` | \{ `reload?`: `boolean`; \} | -| `options.reload?` | `boolean` | - -#### Returns - -`Promise`\<`void`\> - -*** - - - -### restoreAppOwner() - -```ts -readonly restoreAppOwner: (mnemonic: string & Brand<"Trimmed"> & Brand<"MinLength1"> & Brand<"Mnemonic">, options?: { - reload?: boolean; -}) => Promise; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:524](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L524) - -Restore [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) with all their synced data. It uses -[Evolu.resetAppOwner](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx#resetappowner), so be careful. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `mnemonic` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Trimmed"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"MinLength1"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Mnemonic"`\> | -| `options?` | \{ `reload?`: `boolean`; \} | -| `options.reload?` | `boolean` | - -#### Returns - -`Promise`\<`void`\> - -*** - - - -### subscribeError() - -```ts -readonly subscribeError: (listener: Listener) => Unsubscribe; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L276) - -Transitional compatibility API. Will be removed once downstream packages -migrate to Task-native error handling. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `listener` | [`Listener`](/docs/api-reference/common/Listeners/type-aliases/Listener.mdx) | - -#### Returns - -[`Unsubscribe`](/docs/api-reference/common/Listeners/type-aliases/Unsubscribe.mdx) - -*** - - - -### subscribeQuery() - -```ts -readonly subscribeQuery: (query: Query) => (listener: Listener) => Unsubscribe; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:337](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L337) - -Subscribe to [Query](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) [QueryRows](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx) changes. - -### Example - -```ts -const unsubscribe = evolu.subscribeQuery(allTodos)(() => { - const rows = evolu.getQueryRows(allTodos); -}); -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) | - -#### Returns - -```ts -(listener: Listener): Unsubscribe; -``` - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `listener` | [`Listener`](/docs/api-reference/common/Listeners/type-aliases/Listener.mdx) | - -##### Returns - -[`Unsubscribe`](/docs/api-reference/common/Listeners/type-aliases/Unsubscribe.mdx) - -*** - - - -### update - -```ts -update: Mutation; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:445](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L445) - -Updates a row in the database and returns a [Result](/docs/api-reference/common/Result/page.mdx) with the existing -[Id](/docs/api-reference/common/Type/variables/Id.mdx). - -The first argument is the table name, and the second is an object -containing the row data including the required `id` field. An optional -third argument provides mutation options including `onComplete` callback -and custom `ownerId`. - -Returns a Result type - use `.ok` to check if the update succeeded, and -`.value.id` to access the ID on success, or `.error` to handle validation -errors. - -Evolu does not use SQL for mutations to ensure data can be safely and -predictably merged without conflicts. Explicit mutations also allow Evolu -to automatically update [SystemColumns](/docs/api-reference/common/local-first/Schema/variables/SystemColumns-1.mdx). - -### Example - -```ts -const result = evolu.update("todo", { - id: todoId, - title: "Updated title", - isCompleted: true, -}); - -if (result.ok) { - console.log("Todo updated with ID:", result.value.id); -} else { - console.error("Validation error:", result.error); -} - -// To delete a row, set isDeleted to true -evolu.update("todo", { id: todoId, isDeleted: true }); - -// With onComplete callback -evolu.update( - "todo", - { id: todoId, title: "New title" }, - { - onComplete: () => { - console.log("Update completed"); - }, - }, -); -``` - -*** - - - -### upsert - -```ts -upsert: Mutation; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:505](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L505) - -Upserts a row in the database and returns a [Result](/docs/api-reference/common/Result/page.mdx) with the existing -[Id](/docs/api-reference/common/Type/variables/Id.mdx). - -The first argument is the table name, and the second is an object -containing the row data including the required `id` field. An optional -third argument provides mutation options including `onComplete` callback -and custom `ownerId`. - -This function allows you to use custom IDs and optionally set `createdAt`, -which is useful for external systems, data migrations, or when the same row -may already be created on a different device. - -Returns a Result type - use `.ok` to check if the upsert succeeded, and -`.value.id` to access the ID on success, or `.error` to handle validation -errors. - -Evolu does not use SQL for mutations to ensure data can be safely and -predictably merged without conflicts. Explicit mutations also allow Evolu -to automatically update [SystemColumns](/docs/api-reference/common/local-first/Schema/variables/SystemColumns-1.mdx). - -### Example - -```ts -// Use deterministic ID for stable upserts across devices -const stableId = createIdFromString("my-todo-1"); - -const result = evolu.upsert("todo", { - id: stableId, - title: "Learn Evolu", - isCompleted: false, -}); - -if (result.ok) { - console.log("Todo upserted with ID:", result.value.id); -} else { - console.error("Validation error:", result.error); -} - -// Data migration with custom createdAt -evolu.upsert("todo", { - id: externalId, - title: "Migrated todo", - createdAt: new Date("2023-01-01"), // Preserve original timestamp -}); - -// With onComplete callback -evolu.upsert( - "todo", - { id: stableId, title: "Updated title" }, - { - onComplete: () => { - console.log("Upsert completed"); - }, - }, -); -``` - -*** - - - -### useOwner() - -```ts -readonly useOwner: (owner: SyncOwner) => UnuseOwner; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:568](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L568) - -Use a [SyncOwner](/docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx). Returns a [UnuseOwner](/docs/api-reference/common/local-first/Evolu/type-aliases/UnuseOwner.mdx). - -Using an owner means syncing it with its transports, or the transports -defined in Evolu config if the owner has no transports defined. - -Transport are automatically deduplicated and reference-counted, so multiple -owners using the same transport will share a single connection. - -### Example - -```ts -// Use an owner (starts syncing). -const unuseOwner = evolu.useOwner(shardOwner); - -// Later, stop using the owner. -unuseOwner(); - -// Bulk operations. -const unuseOwners = owners.map((owner) => evolu.useOwner(owner)); -// Later: for (const unuse of unuseOwners) unuse(); -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `owner` | [`SyncOwner`](/docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx) | - -#### Returns - -[`UnuseOwner`](/docs/api-reference/common/local-first/Evolu/type-aliases/UnuseOwner.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/EvoluConfig.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/EvoluConfig.mdx deleted file mode 100644 index 0ce9874f0..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/interfaces/EvoluConfig.mdx +++ /dev/null @@ -1,243 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / EvoluConfig - -Defined in: [packages/common/src/local-first/Evolu.ts:82](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L82) - -## Properties - - - -### ~~appName?~~ - -```ts -readonly optional appName: string & Brand<"UrlSafeString"> & Brand<"AppName">; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:103](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L103) - -#### Deprecated - -Use [EvoluConfig.name](/docs/api-reference/common/local-first/Evolu/interfaces/EvoluConfig.mdx#name). Compatibility alias for -`upstream/common-v8`. - -*** - - - -### appOwner? - -```ts -readonly optional appOwner: AppOwner; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:141](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L141) - -External AppOwner to use when creating Evolu instance. Use this when you -want to manage AppOwner creation and persistence externally (e.g., with -your own authentication system). If omitted, Evolu will automatically -create and persist an AppOwner locally. - -For device-specific settings and account management state, we can use a -separate local-only Evolu instance via `transports: []`. - -### Example - -```ts -const ConfigId = id("Config"); -type ConfigId = typeof ConfigId.Type; - -const DeviceSchema = { - config: { - id: ConfigId, - key: NonEmptyString50, - value: NonEmptyString50, - }, -}; - -// Local-only instance for device settings (no sync) -const deviceEvolu = createEvolu(evoluReactWebDeps)(DeviceSchema, { - name: SimpleName.orThrow("MyApp-Device"), - transports: [], // No sync - stays local to device -}); - -// Main synced instance for user data -const evolu = createEvolu(evoluReactWebDeps)(MainSchema, { - name: SimpleName.orThrow("MyApp"), - // Default transports for sync -}); -``` - -*** - - - -### encryptionKey? - -```ts -readonly optional encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey">; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:246](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L246) - -Encryption key for the SQLite database. - -Note: If an unencrypted SQLite database already exists and you provide an -encryptionKey, SQLite will throw an error. - -*** - - - -### ~~externalAppOwner?~~ - -```ts -readonly optional externalAppOwner: AppOwner; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:147](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L147) - -#### Deprecated - -Use [EvoluConfig.appOwner](/docs/api-reference/common/local-first/Evolu/interfaces/EvoluConfig.mdx#appowner). Kept for transitional -backward compatibility in downstream apps. - -*** - - - -### indexes? - -```ts -readonly optional indexes: IndexesConfig; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:237](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L237) - -Use the `indexes` option to define SQLite indexes. - -Table and column names are not typed because Kysely doesn't support it. - -https://medium.com/@JasonWyatt/squeezing-performance-from-sqlite-indexes-indexes-c4e175f3c346 - -### Example - -```ts -const evolu = createEvolu(evoluReactDeps)(Schema, { - indexes: (create) => [ - create("todoCreatedAt").on("todo").column("createdAt"), - create("todoCategoryCreatedAt") - .on("todoCategory") - .column("createdAt"), - ], -}); -``` - -*** - - - -### inMemory? - -```ts -readonly optional inMemory: boolean; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:215](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L215) - -Use in-memory SQLite database instead of persistent storage. Useful for -testing or temporary data that doesn't need persistence. - -In-memory databases exist only in RAM and are completely destroyed when the -process ends, making them forensically safe for sensitive data. - -The default value is: `false`. - -*** - - - -### name? - -```ts -readonly optional name: string & Brand<"UrlSafeString"> & Brand<"SimpleName">; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:97](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L97) - -The name of the Evolu instance. Evolu is multitenant - it can run multiple -instances concurrently. Each instance must have a unique name. - -The instance name is used as the SQLite database filename for persistent -storage, ensuring that database files are separated and invisible to each -other. - -### Example - -```ts -// name: SimpleName.orThrow("MyApp") -``` - -*** - - - -### transports? - -```ts -readonly optional transports: readonly OwnerWebSocketTransport[]; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:204](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L204) - -Transport configuration for data sync and backup. Supports single transport -or multiple transports simultaneously for redundancy. - -**Redundancy:** The ideal setup uses at least two completely independent -relays - for example, a home relay and a geographically separate relay. -Data is sent to both relays simultaneously, providing true redundancy -similar to using two independent clouds. This eliminates vendor lock-in and -ensures your app continues working regardless of circumstances - whether -home relay hardware is stolen or a remote relay provider shuts down. - -Currently supports: - -- WebSocket: Real-time bidirectional communication with relay servers - -Empty transports create local-only instances. Transports can be dynamically -added and removed for any owner (including [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx)) via -[Evolu.useOwner](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx#useowner). - -Use `createOwnerWebSocketTransport` to create WebSocket transport -configurations with proper URL formatting and [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) inclusion. The -[OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) in the URL enables relay authentication, allowing relay -servers to control access (e.g., for paid tiers or private instances). - -The default value is: - -`{ type: "WebSocket", url: "wss://free.evoluhq.com" }`. - -### Example - -```ts -// Single WebSocket relay -transports: [{ type: "WebSocket", url: "wss://relay1.example.com" }]; - -// Multiple WebSocket relays for redundancy -transports: [ - { type: "WebSocket", url: "wss://relay1.example.com" }, - { type: "WebSocket", url: "wss://relay2.example.com" }, - { type: "WebSocket", url: "wss://relay3.example.com" }, -]; - -// Local-only instance (no sync) - useful for device settings or when relay -// URL will be provided later (e.g., after authentication), allowing users -// to work offline before the app connects -transports: []; - -// Using createOwnerWebSocketTransport helper for relay authentication -transports: [ - createOwnerWebSocketTransport({ - url: "ws://localhost:4000", - ownerId, - }), -]; -``` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/page.mdx deleted file mode 100644 index 814ecd55a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/page.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Evolu - -Local-first platform. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createEvolu](/docs/api-reference/common/local-first/Evolu/functions/createEvolu.mdx) | Creates an [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx) instance for a platform configured with the specified [EvoluSchema](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) and optional [EvoluConfig](/docs/api-reference/common/local-first/Evolu/interfaces/EvoluConfig.mdx) providing a typed interface for querying, mutating, and syncing data. | -| [createEvoluDeps](/docs/api-reference/common/local-first/Evolu/functions/createEvoluDeps.mdx) | Creates Evolu dependencies from platform-specific dependencies. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [AppNameError](/docs/api-reference/common/local-first/Evolu/interfaces/AppNameError.mdx) | - | -| [ErrorStoreDep](/docs/api-reference/common/local-first/Evolu/interfaces/ErrorStoreDep.mdx) | - | -| [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx) | Local-first SQL database with typed queries, mutations, and sync. | -| [EvoluConfig](/docs/api-reference/common/local-first/Evolu/interfaces/EvoluConfig.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [~~AppName~~](/docs/api-reference/common/local-first/Evolu/type-aliases/AppName.mdx) | - | -| [EvoluDeps](/docs/api-reference/common/local-first/Evolu/type-aliases/EvoluDeps.mdx) | - | -| [EvoluPlatformDeps](/docs/api-reference/common/local-first/Evolu/type-aliases/EvoluPlatformDeps.mdx) | - | -| [UnuseOwner](/docs/api-reference/common/local-first/Evolu/type-aliases/UnuseOwner.mdx) | Function returned by [Evolu.useOwner](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx#useowner) to stop using an [SyncOwner](/docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx). | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [~~AppName~~](/docs/api-reference/common/local-first/Evolu/variables/AppName.mdx) | - | -| [testAppName](/docs/api-reference/common/local-first/Evolu/variables/testAppName.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/AppName.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/AppName.mdx deleted file mode 100644 index 9c3fde390..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/AppName.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / AppName - -```ts -type AppName = string & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"UrlSafeString"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"AppName">; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:253](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L253) - -## Deprecated - -Use [SimpleName](/docs/api-reference/common/Type/variables/SimpleName.mdx). Kept as compatibility alias for -`upstream/common-v8`. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/EvoluDeps.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/EvoluDeps.mdx deleted file mode 100644 index 7ee035afb..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/EvoluDeps.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / EvoluDeps - -```ts -type EvoluDeps = EvoluPlatformDeps & ErrorStoreDep & CreateMessageChannelDep & ReloadAppDep & EvoluWorkerDep & Partial & DisposableStackDep & ConsoleDep & RandomBytesDep; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:574](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L574) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/EvoluPlatformDeps.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/EvoluPlatformDeps.mdx deleted file mode 100644 index 8a0647275..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/EvoluPlatformDeps.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / EvoluPlatformDeps - -```ts -type EvoluPlatformDeps = ReloadAppDep & Partial & Partial; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:584](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L584) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/UnuseOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/UnuseOwner.mdx deleted file mode 100644 index 6185907fa..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/type-aliases/UnuseOwner.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / UnuseOwner - -```ts -type UnuseOwner = () => void; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:572](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L572) - -Function returned by [Evolu.useOwner](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx#useowner) to stop using an [SyncOwner](/docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx). - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/variables/AppName.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/variables/AppName.mdx deleted file mode 100644 index 7dc29546d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/variables/AppName.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / AppName - -```ts -const AppName: brand("AppName", UrlSafeString, (value) => - value.length >= 1 && value.length <= 41 - ? ok(value) - : err({ type: "AppName", value }), -); -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:253](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L253) - -## Deprecated - -Use [SimpleName](/docs/api-reference/common/Type/variables/SimpleName.mdx). Kept as compatibility alias for -`upstream/common-v8`. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Evolu/variables/testAppName.mdx b/.generated/evolu-docs/api-reference/common/local-first/Evolu/variables/testAppName.mdx deleted file mode 100644 index 1603acbb6..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Evolu/variables/testAppName.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) / testAppName - -```ts -const testAppName: string & Brand<"UrlSafeString"> & Brand<"AppName">; -``` - -Defined in: [packages/common/src/local-first/Evolu.ts:261](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Evolu.ts#L261) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/getJsonObjectArgs.mdx b/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/getJsonObjectArgs.mdx deleted file mode 100644 index 8fbe85fce..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/getJsonObjectArgs.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Kysely](/docs/api-reference/common/local-first/Kysely/page.mdx) / getJsonObjectArgs - -```ts -function getJsonObjectArgs(node: SelectQueryNode, table: string): (string | Expression)[]; -``` - -Defined in: [packages/common/src/local-first/Kysely.ts:212](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Kysely.ts#L212) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `node` | `SelectQueryNode` | -| `table` | `string` | - -## Returns - -(`string` \| `Expression`\<`unknown`\>)[] diff --git a/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/jsonArrayFrom.mdx b/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/jsonArrayFrom.mdx deleted file mode 100644 index 0c23e8f8d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/jsonArrayFrom.mdx +++ /dev/null @@ -1,69 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Kysely](/docs/api-reference/common/local-first/Kysely/page.mdx) / jsonArrayFrom - -```ts -function jsonArrayFrom(expr: SelectQueryBuilderExpression): RawBuilder[]>; -``` - -Defined in: [packages/common/src/local-first/Kysely.ts:77](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Kysely.ts#L77) - -A SQLite helper for aggregating a subquery into a JSON array. - -### Example - -```ts -import { kysely } from "@evolu/common"; - -// TODO: Update for Evolu -const result = await db - .selectFrom("person") - .select((eb) => [ - "id", - kysely - .jsonArrayFrom( - eb - .selectFrom("pet") - .select(["pet.id as pet_id", "pet.name"]) - .whereRef("pet.owner_id", "=", "person.id") - .orderBy("pet.name"), - ) - .as("pets"), - ]) - .execute(); - -result[0]?.id; -result[0]?.pets[0].pet_id; -result[0]?.pets[0].name; -``` - -The generated SQL (SQLite): - -```sql -select "id", ( - select coalesce(json_group_array(json_object( - 'pet_id', "agg"."pet_id", - 'name', "agg"."name" - )), '[]') from ( - select "pet"."id" as "pet_id", "pet"."name" - from "pet" - where "pet"."owner_id" = "person"."id" - order by "pet"."name" - ) as "agg" -) as "pets" -from "person" -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `O` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `expr` | `SelectQueryBuilderExpression`\<`O`\> | - -## Returns - -`RawBuilder`\<`Simplify`\<`O`\>[]\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/jsonBuildObject.mdx b/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/jsonBuildObject.mdx deleted file mode 100644 index 7c3e77dfe..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/jsonBuildObject.mdx +++ /dev/null @@ -1,62 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Kysely](/docs/api-reference/common/local-first/Kysely/page.mdx) / jsonBuildObject - -```ts -function jsonBuildObject(obj: O): RawBuilder ? V : never }>>; -``` - -Defined in: [packages/common/src/local-first/Kysely.ts:182](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Kysely.ts#L182) - -The SQLite `json_object` function. - -### Example - -```ts -import { kysely } from "@evolu/common"; - -// TODO: Update for Evolu -const result = await db - .selectFrom("person") - .select((eb) => [ - "id", - kysely - .jsonBuildObject({ - first: eb.ref("first_name"), - last: eb.ref("last_name"), - full: kysely.sql`first_name || ' ' || last_name`, - }) - .as("name"), - ]) - .execute(); - -result[0]?.id; -result[0]?.name.first; -result[0]?.name.last; -result[0]?.name.full; -``` - -The generated SQL (SQLite): - -```sql -select "id", json_object( - 'first', first_name, - 'last', last_name, - 'full', "first_name" || ' ' || "last_name" -) as "name" -from "person" -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `O` *extends* `Record`\<`string`, `Expression`\<`unknown`\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `obj` | `O` | - -## Returns - -`RawBuilder`\<`Simplify`\<\{ \[K in string \| number \| symbol\]: O\[K\] extends Expression\ ? V : never \}\>\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/jsonObjectFrom.mdx b/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/jsonObjectFrom.mdx deleted file mode 100644 index 3c6859950..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Kysely/functions/jsonObjectFrom.mdx +++ /dev/null @@ -1,69 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Kysely](/docs/api-reference/common/local-first/Kysely/page.mdx) / jsonObjectFrom - -```ts -function jsonObjectFrom(expr: SelectQueryBuilderExpression): RawBuilder | null>; -``` - -Defined in: [packages/common/src/local-first/Kysely.ts:133](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Kysely.ts#L133) - -A SQLite helper for turning a subquery into a JSON object. - -The subquery must only return one row. - -### Example - -```ts -import { kysely } from "@evolu/common"; - -// TODO: Update for Evolu -const result = await db - .selectFrom("person") - .select((eb) => [ - "id", - jsonObjectFrom( - eb - .selectFrom("pet") - .select(["pet.id as pet_id", "pet.name"]) - .whereRef("pet.owner_id", "=", "person.id") - .where("pet.is_favorite", "=", true), - ).as("favorite_pet"), - ]) - .execute(); - -result[0]?.id; -result[0]?.favorite_pet?.pet_id; -result[0]?.favorite_pet?.name; -``` - -The generated SQL (SQLite): - -```sql -select "id", ( - select json_object( - 'pet_id', "obj"."pet_id", - 'name', "obj"."name" - ) from ( - select "pet"."id" as "pet_id", "pet"."name" - from "pet" - where "pet"."owner_id" = "person"."id" - and "pet"."is_favorite" = ? - ) as obj -) as "favorite_pet" -from "person"; -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `O` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `expr` | `SelectQueryBuilderExpression`\<`O`\> | - -## Returns - -`RawBuilder`\<`Simplify`\<`O`\> \| `null`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Kysely/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Kysely/page.mdx deleted file mode 100644 index a5c31e583..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Kysely/page.mdx +++ /dev/null @@ -1,24 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Kysely - -Kysely query builder extensions for Evolu. - -## Functions - -| Function | Description | -| ------ | ------ | -| [getJsonObjectArgs](/docs/api-reference/common/local-first/Kysely/functions/getJsonObjectArgs.mdx) | - | -| [jsonArrayFrom](/docs/api-reference/common/local-first/Kysely/functions/jsonArrayFrom.mdx) | A SQLite helper for aggregating a subquery into a JSON array. | -| [jsonBuildObject](/docs/api-reference/common/local-first/Kysely/functions/jsonBuildObject.mdx) | The SQLite `json_object` function. | -| [jsonObjectFrom](/docs/api-reference/common/local-first/Kysely/functions/jsonObjectFrom.mdx) | A SQLite helper for turning a subquery into a JSON object. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [NotNull](/docs/api-reference/common/local-first/Kysely/type-aliases/NotNull.mdx) | A type constant for marking a column as not null. Can be used with `$narrowPartial`. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [sql](/docs/api-reference/common/local-first/Kysely/variables/sql.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Kysely/type-aliases/NotNull.mdx b/.generated/evolu-docs/api-reference/common/local-first/Kysely/type-aliases/NotNull.mdx deleted file mode 100644 index f7cf45154..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Kysely/type-aliases/NotNull.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Kysely](/docs/api-reference/common/local-first/Kysely/page.mdx) / NotNull - -```ts -type NotNull = { - __notNull__: unique symbol; -}; -``` - -Defined in: node\_modules/.bun/kysely@0.28.11/node\_modules/kysely/dist/esm/util/type-utils.d.ts:137 - -A type constant for marking a column as not null. Can be used with `$narrowPartial`. - -Example: - -```ts -import type { NotNull } from 'kysely' - -await db.selectFrom('person') - .where('nullable_column', 'is not', null) - .selectAll() - .$narrowType<{ nullable_column: NotNull }>() - .executeTakeFirstOrThrow() -``` - -## Properties - - - -### \_\_notNull\_\_ - -```ts -readonly __notNull__: unique symbol; -``` - -Defined in: node\_modules/.bun/kysely@0.28.11/node\_modules/kysely/dist/esm/util/type-utils.d.ts:138 diff --git a/.generated/evolu-docs/api-reference/common/local-first/Kysely/variables/sql.mdx b/.generated/evolu-docs/api-reference/common/local-first/Kysely/variables/sql.mdx deleted file mode 100644 index 71589b7a5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Kysely/variables/sql.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Kysely](/docs/api-reference/common/local-first/Kysely/page.mdx) / sql - -```ts -const sql: Sql; -``` - -Defined in: node\_modules/.bun/kysely@0.28.11/node\_modules/kysely/dist/esm/raw-builder/sql.d.ts:366 diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/functions/createLocalAuth.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/functions/createLocalAuth.mdx deleted file mode 100644 index 44e4f6705..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/functions/createLocalAuth.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / createLocalAuth - -```ts -function createLocalAuth(deps: SecureStorageDep & RandomBytesDep): LocalAuth; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:80](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L80) - -Creates a local auth using the given secure storage implementation. This -factory function allows each platform to provide its own storage layer while -sharing the common auth logic. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SecureStorageDep`](/docs/api-reference/common/local-first/LocalAuth/interfaces/SecureStorageDep.mdx) & [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) | - -## Returns - -[`LocalAuth`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuth.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/AuthList.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/AuthList.mdx deleted file mode 100644 index 44a1cf9bf..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/AuthList.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / AuthList - -Defined in: [packages/common/src/local-first/LocalAuth.ts:337](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L337) - -## Properties - - - -### ownerId - -```ts -readonly ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:339](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L339) - -The app owner ID. - -*** - - - -### username - -```ts -readonly username: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:341](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L341) - -The name provided by the user during registration. diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/AuthResult.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/AuthResult.mdx deleted file mode 100644 index 10a0c4a90..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/AuthResult.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / AuthResult - -Defined in: [packages/common/src/local-first/LocalAuth.ts:330](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L330) - -## Properties - - - -### owner - -```ts -readonly owner: - | AppOwner - | undefined; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:332](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L332) - -The app owner created during registration. - -*** - - - -### username - -```ts -readonly username: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:334](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L334) - -The name provided by the user during registration. diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/AuthenticationPrompt.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/AuthenticationPrompt.mdx deleted file mode 100644 index 42e6239f6..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/AuthenticationPrompt.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / AuthenticationPrompt - -Defined in: [packages/common/src/local-first/LocalAuth.ts:406](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L406) - -Configuration for the biometric/device credential prompt shown when a -protected item is accessed. - -## Properties - - - -### cancel? - -```ts -readonly optional cancel: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:410](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L410) - -*** - - - -### description? - -```ts -readonly optional description: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:409](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L409) - -*** - - - -### subtitle? - -```ts -readonly optional subtitle: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:408](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L408) - -*** - - - -### title - -```ts -readonly title: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:407](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L407) diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuth.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuth.mdx deleted file mode 100644 index 077f75962..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuth.mdx +++ /dev/null @@ -1,168 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / LocalAuth - -Defined in: [packages/common/src/local-first/LocalAuth.ts:23](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L23) - -Local authentication and authorization system for Evolu. This is API is -subject to change and not recommended for production use. - -## Properties - - - -### clearAll() - -```ts -clearAll: (options?: LocalAuthOptions) => Promise; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:46](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L46) - -Clears all owners and metadata from the local auth. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `options?` | [`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) | - -#### Returns - -`Promise`\<`void`\> - -*** - - - -### getOwner() - -```ts -getOwner: (options?: LocalAuthOptions) => Promise< - | AuthResult -| null>; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:40](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L40) - -Gets the current owner (last logged in or last registered owner) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `options?` | [`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) | - -#### Returns - -`Promise`\< - \| [`AuthResult`](/docs/api-reference/common/local-first/LocalAuth/interfaces/AuthResult.mdx) - \| `null`\> - -*** - - - -### getProfiles() - -```ts -getProfiles: (options?: LocalAuthOptionsValues) => Promise; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:43](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L43) - -Lists all registered owner ids with associated usernames. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `options?` | [`LocalAuthOptionsValues`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptionsValues.mdx) | - -#### Returns - -`Promise`\<[`AuthList`](/docs/api-reference/common/local-first/LocalAuth/interfaces/AuthList.mdx)[]\> - -*** - - - -### login() - -```ts -login: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">, options?: LocalAuthOptions) => Promise< - | AuthResult -| null>; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:25](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L25) - -Logs in with the given owner ID, or loads the target owner if not provided. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | -| `options?` | [`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) | - -#### Returns - -`Promise`\< - \| [`AuthResult`](/docs/api-reference/common/local-first/LocalAuth/interfaces/AuthResult.mdx) - \| `null`\> - -*** - - - -### register() - -```ts -register: (username: string, options?: LocalAuthOptions & { - mnemonic?: | string & Brand<"Trimmed"> & Brand<"MinLength1"> & Brand<"Mnemonic"> - | null; -}) => Promise< - | AuthResult -| null>; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:31](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L31) - -Registers a new owner with the given username. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `username` | `string` | -| `options?` | [`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) & \{ `mnemonic?`: \| `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Trimmed"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"MinLength1"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Mnemonic"`\> \| `null`; \} | - -#### Returns - -`Promise`\< - \| [`AuthResult`](/docs/api-reference/common/local-first/LocalAuth/interfaces/AuthResult.mdx) - \| `null`\> - -*** - - - -### unregister() - -```ts -unregister: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">, options?: LocalAuthOptions) => Promise; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L37) - -Unregisters an owner with the given owner ID. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | -| `options?` | [`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) | - -#### Returns - -`Promise`\<`void`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthDep.mdx deleted file mode 100644 index ce5ebb866..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / LocalAuthDep - -Defined in: [packages/common/src/local-first/LocalAuth.ts:49](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L49) - -## Properties - - - -### localAuth - -```ts -readonly localAuth: LocalAuth; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:50](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L50) diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx deleted file mode 100644 index 070f214ca..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx +++ /dev/null @@ -1,168 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / LocalAuthOptions - -Defined in: [packages/common/src/local-first/LocalAuth.ts:346](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L346) - -## Extended by - -- [`LocalAuthOptionsValues`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptionsValues.mdx) -- [`SensitiveInfoGetRequest`](/docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoGetRequest.mdx) - -## Properties - - - -### accessControl? - -```ts -readonly optional accessControl: AccessControl; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L364) - -Native: Desired access-control policy. The native implementation will -automatically fall back to the strongest supported policy for the current -device (Secure Enclave ➝ Biometry ➝ Device Credential ➝ None). - -*** - - - -### androidBiometricsStrongOnly? - -```ts -readonly optional androidBiometricsStrongOnly: boolean; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:370](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L370) - -Android: Fine tune whether the hardware-authenticated key should require -biometrics only. - -*** - - - -### authenticationPrompt? - -```ts -readonly optional authenticationPrompt: AuthenticationPrompt; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:376](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L376) - -Native: Optional prompt configuration that will be shown when protected -keys require user presence. - -*** - - - -### iosSynchronizable? - -```ts -readonly optional iosSynchronizable: boolean; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:354](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L354) - -IOS: Enable keychain item synchronization via iCloud. - -*** - - - -### keychainGroup? - -```ts -readonly optional keychainGroup: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:357](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L357) - -IOS: Custom keychain access group. - -*** - - - -### relyingPartyID? - -```ts -readonly optional relyingPartyID: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L379) - -Web: The relying party ID for WebAuthn. Defaults to the current hostname. - -*** - - - -### relyingPartyName? - -```ts -readonly optional relyingPartyName: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:382](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L382) - -Web: The relying party name for WebAuthn. Defaults to 'Evolu'. - -*** - - - -### service? - -```ts -readonly optional service: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:351](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L351) - -Native: Namespaces the stored entry. Defaults to the bundle identifier -(when available) or `default`. - -*** - - - -### webAuthnAuthenticatorAttachment? - -```ts -readonly optional webAuthnAuthenticatorAttachment: AuthenticatorAttachment; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:394](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L394) - -Web: The authenticator attachment for WebAuthn. Defaults to 'platform'. - -*** - - - -### webAuthnUsername? - -```ts -readonly optional webAuthnUsername: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:385](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L385) - -Web: The username for WebAuthn. Defaults to 'Evolu User'. - -*** - - - -### webAuthnUserVerification? - -```ts -readonly optional webAuthnUserVerification: UserVerificationRequirement; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:391](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L391) - -Web: The user verification requirement for WebAuthn. Defaults to -'required'. diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptionsValues.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptionsValues.mdx deleted file mode 100644 index 6c2c66f04..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptionsValues.mdx +++ /dev/null @@ -1,225 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / LocalAuthOptionsValues - -Defined in: [packages/common/src/local-first/LocalAuth.ts:397](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L397) - -## Extends - -- [`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) - -## Properties - - - -### accessControl? - -```ts -readonly optional accessControl: AccessControl; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L364) - -Native: Desired access-control policy. The native implementation will -automatically fall back to the strongest supported policy for the current -device (Secure Enclave ➝ Biometry ➝ Device Credential ➝ None). - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`accessControl`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#accesscontrol) - -*** - - - -### androidBiometricsStrongOnly? - -```ts -readonly optional androidBiometricsStrongOnly: boolean; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:370](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L370) - -Android: Fine tune whether the hardware-authenticated key should require -biometrics only. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`androidBiometricsStrongOnly`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#androidbiometricsstrongonly) - -*** - - - -### authenticationPrompt? - -```ts -readonly optional authenticationPrompt: AuthenticationPrompt; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:376](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L376) - -Native: Optional prompt configuration that will be shown when protected -keys require user presence. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`authenticationPrompt`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#authenticationprompt) - -*** - - - -### includeValues? - -```ts -readonly optional includeValues: boolean; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:399](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L399) - -When true, the stored value is returned for each item. Defaults to false. - -*** - - - -### iosSynchronizable? - -```ts -readonly optional iosSynchronizable: boolean; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:354](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L354) - -IOS: Enable keychain item synchronization via iCloud. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`iosSynchronizable`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#iossynchronizable) - -*** - - - -### keychainGroup? - -```ts -readonly optional keychainGroup: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:357](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L357) - -IOS: Custom keychain access group. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`keychainGroup`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#keychaingroup) - -*** - - - -### relyingPartyID? - -```ts -readonly optional relyingPartyID: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L379) - -Web: The relying party ID for WebAuthn. Defaults to the current hostname. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`relyingPartyID`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#relyingpartyid) - -*** - - - -### relyingPartyName? - -```ts -readonly optional relyingPartyName: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:382](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L382) - -Web: The relying party name for WebAuthn. Defaults to 'Evolu'. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`relyingPartyName`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#relyingpartyname) - -*** - - - -### service? - -```ts -readonly optional service: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:351](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L351) - -Native: Namespaces the stored entry. Defaults to the bundle identifier -(when available) or `default`. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`service`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#service) - -*** - - - -### webAuthnAuthenticatorAttachment? - -```ts -readonly optional webAuthnAuthenticatorAttachment: AuthenticatorAttachment; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:394](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L394) - -Web: The authenticator attachment for WebAuthn. Defaults to 'platform'. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`webAuthnAuthenticatorAttachment`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#webauthnauthenticatorattachment) - -*** - - - -### webAuthnUsername? - -```ts -readonly optional webAuthnUsername: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:385](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L385) - -Web: The username for WebAuthn. Defaults to 'Evolu User'. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`webAuthnUsername`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#webauthnusername) - -*** - - - -### webAuthnUserVerification? - -```ts -readonly optional webAuthnUserVerification: UserVerificationRequirement; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:391](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L391) - -Web: The user verification requirement for WebAuthn. Defaults to -'required'. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`webAuthnUserVerification`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#webauthnuserverification) diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/MutationResult.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/MutationResult.mdx deleted file mode 100644 index 997e0c18c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/MutationResult.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / MutationResult - -Defined in: [packages/common/src/local-first/LocalAuth.ts:433](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L433) - -## Properties - - - -### metadata - -```ts -readonly metadata: StorageMetadata; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:434](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L434) diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SecureStorage.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SecureStorage.mdx deleted file mode 100644 index 4024dc020..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SecureStorage.mdx +++ /dev/null @@ -1,123 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / SecureStorage - -Defined in: [packages/common/src/local-first/LocalAuth.ts:54](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L54) - -Secure storage interface that must be implemented by each platform. - -## Properties - - - -### clearService() - -```ts -clearService: (options?: LocalAuthOptions) => Promise; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:68](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L68) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `options?` | [`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) | - -#### Returns - -`Promise`\<`void`\> - -*** - - - -### deleteItem() - -```ts -deleteItem: (key: string, options?: LocalAuthOptions) => Promise; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:64](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L64) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `string` | -| `options?` | [`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) | - -#### Returns - -`Promise`\<`boolean`\> - -*** - - - -### getAllItems() - -```ts -getAllItems: (options?: LocalAuthOptionsValues) => Promise; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:65](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L65) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `options?` | [`LocalAuthOptionsValues`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptionsValues.mdx) | - -#### Returns - -`Promise`\<[`SensitiveInfoItem`](/docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoItem.mdx)[]\> - -*** - - - -### getItem() - -```ts -getItem: (key: string, options?: LocalAuthOptionsValues) => Promise< - | SensitiveInfoItem -| null>; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:60](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L60) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `string` | -| `options?` | [`LocalAuthOptionsValues`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptionsValues.mdx) | - -#### Returns - -`Promise`\< - \| [`SensitiveInfoItem`](/docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoItem.mdx) - \| `null`\> - -*** - - - -### setItem() - -```ts -setItem: (key: string, value: string, options?: LocalAuthOptions) => Promise; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:55](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L55) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `key` | `string` | -| `value` | `string` | -| `options?` | [`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) | - -#### Returns - -`Promise`\<[`MutationResult`](/docs/api-reference/common/local-first/LocalAuth/interfaces/MutationResult.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SecureStorageDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SecureStorageDep.mdx deleted file mode 100644 index ea8fdf059..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SecureStorageDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / SecureStorageDep - -Defined in: [packages/common/src/local-first/LocalAuth.ts:71](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L71) - -## Properties - - - -### secureStorage - -```ts -readonly secureStorage: SecureStorage; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L72) diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoGetRequest.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoGetRequest.mdx deleted file mode 100644 index 787d26a57..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoGetRequest.mdx +++ /dev/null @@ -1,237 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / SensitiveInfoGetRequest - -Defined in: [packages/common/src/local-first/LocalAuth.ts:413](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L413) - -## Extends - -- [`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) - -## Properties - - - -### accessControl? - -```ts -readonly optional accessControl: AccessControl; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L364) - -Native: Desired access-control policy. The native implementation will -automatically fall back to the strongest supported policy for the current -device (Secure Enclave ➝ Biometry ➝ Device Credential ➝ None). - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`accessControl`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#accesscontrol) - -*** - - - -### androidBiometricsStrongOnly? - -```ts -readonly optional androidBiometricsStrongOnly: boolean; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:370](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L370) - -Android: Fine tune whether the hardware-authenticated key should require -biometrics only. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`androidBiometricsStrongOnly`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#androidbiometricsstrongonly) - -*** - - - -### authenticationPrompt? - -```ts -readonly optional authenticationPrompt: AuthenticationPrompt; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:376](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L376) - -Native: Optional prompt configuration that will be shown when protected -keys require user presence. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`authenticationPrompt`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#authenticationprompt) - -*** - - - -### includeValue? - -```ts -readonly optional includeValue: boolean; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:416](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L416) - -Include the encrypted value when available. Defaults to true. - -*** - - - -### iosSynchronizable? - -```ts -readonly optional iosSynchronizable: boolean; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:354](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L354) - -IOS: Enable keychain item synchronization via iCloud. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`iosSynchronizable`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#iossynchronizable) - -*** - - - -### key - -```ts -readonly key: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:414](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L414) - -*** - - - -### keychainGroup? - -```ts -readonly optional keychainGroup: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:357](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L357) - -IOS: Custom keychain access group. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`keychainGroup`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#keychaingroup) - -*** - - - -### relyingPartyID? - -```ts -readonly optional relyingPartyID: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L379) - -Web: The relying party ID for WebAuthn. Defaults to the current hostname. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`relyingPartyID`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#relyingpartyid) - -*** - - - -### relyingPartyName? - -```ts -readonly optional relyingPartyName: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:382](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L382) - -Web: The relying party name for WebAuthn. Defaults to 'Evolu'. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`relyingPartyName`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#relyingpartyname) - -*** - - - -### service? - -```ts -readonly optional service: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:351](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L351) - -Native: Namespaces the stored entry. Defaults to the bundle identifier -(when available) or `default`. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`service`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#service) - -*** - - - -### webAuthnAuthenticatorAttachment? - -```ts -readonly optional webAuthnAuthenticatorAttachment: AuthenticatorAttachment; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:394](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L394) - -Web: The authenticator attachment for WebAuthn. Defaults to 'platform'. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`webAuthnAuthenticatorAttachment`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#webauthnauthenticatorattachment) - -*** - - - -### webAuthnUsername? - -```ts -readonly optional webAuthnUsername: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:385](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L385) - -Web: The username for WebAuthn. Defaults to 'Evolu User'. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`webAuthnUsername`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#webauthnusername) - -*** - - - -### webAuthnUserVerification? - -```ts -readonly optional webAuthnUserVerification: UserVerificationRequirement; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:391](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L391) - -Web: The user verification requirement for WebAuthn. Defaults to -'required'. - -#### Inherited from - -[`LocalAuthOptions`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx).[`webAuthnUserVerification`](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx#webauthnuserverification) diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoItem.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoItem.mdx deleted file mode 100644 index 852d8882e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoItem.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / SensitiveInfoItem - -Defined in: [packages/common/src/local-first/LocalAuth.ts:426](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L426) - -## Properties - - - -### key - -```ts -readonly key: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:427](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L427) - -*** - - - -### metadata - -```ts -readonly metadata: StorageMetadata; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:430](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L430) - -*** - - - -### service - -```ts -readonly service: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:428](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L428) - -*** - - - -### value? - -```ts -readonly optional value: string; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:429](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L429) diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/StorageMetadata.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/StorageMetadata.mdx deleted file mode 100644 index ac542871f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/interfaces/StorageMetadata.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / StorageMetadata - -Defined in: [packages/common/src/local-first/LocalAuth.ts:419](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L419) - -## Properties - - - -### accessControl - -```ts -readonly accessControl: AccessControl; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:422](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L422) - -*** - - - -### backend - -```ts -readonly backend: StorageBackend; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:421](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L421) - -*** - - - -### securityLevel - -```ts -readonly securityLevel: SecurityLevel; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:420](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L420) - -*** - - - -### timestamp - -```ts -readonly timestamp: number; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:423](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L423) diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/page.mdx deleted file mode 100644 index 611f1ced9..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/page.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/LocalAuth - -Local authentication and owner management. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createLocalAuth](/docs/api-reference/common/local-first/LocalAuth/functions/createLocalAuth.mdx) | Creates a local auth using the given secure storage implementation. This factory function allows each platform to provide its own storage layer while sharing the common auth logic. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [AuthenticationPrompt](/docs/api-reference/common/local-first/LocalAuth/interfaces/AuthenticationPrompt.mdx) | Configuration for the biometric/device credential prompt shown when a protected item is accessed. | -| [AuthList](/docs/api-reference/common/local-first/LocalAuth/interfaces/AuthList.mdx) | - | -| [AuthResult](/docs/api-reference/common/local-first/LocalAuth/interfaces/AuthResult.mdx) | - | -| [LocalAuth](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuth.mdx) | Local authentication and authorization system for Evolu. This is API is subject to change and not recommended for production use. | -| [LocalAuthDep](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthDep.mdx) | - | -| [LocalAuthOptions](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptions.mdx) | - | -| [LocalAuthOptionsValues](/docs/api-reference/common/local-first/LocalAuth/interfaces/LocalAuthOptionsValues.mdx) | - | -| [MutationResult](/docs/api-reference/common/local-first/LocalAuth/interfaces/MutationResult.mdx) | - | -| [SecureStorage](/docs/api-reference/common/local-first/LocalAuth/interfaces/SecureStorage.mdx) | Secure storage interface that must be implemented by each platform. | -| [SecureStorageDep](/docs/api-reference/common/local-first/LocalAuth/interfaces/SecureStorageDep.mdx) | - | -| [SensitiveInfoGetRequest](/docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoGetRequest.mdx) | - | -| [SensitiveInfoItem](/docs/api-reference/common/local-first/LocalAuth/interfaces/SensitiveInfoItem.mdx) | - | -| [StorageMetadata](/docs/api-reference/common/local-first/LocalAuth/interfaces/StorageMetadata.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [AccessControl](/docs/api-reference/common/local-first/LocalAuth/type-aliases/AccessControl.mdx) | Enumerates the access-control policy enforced by the underlying secure storage. | -| [SecurityLevel](/docs/api-reference/common/local-first/LocalAuth/type-aliases/SecurityLevel.mdx) | Enumerates the highest security tier that was effectively applied while storing a value. | -| [StorageBackend](/docs/api-reference/common/local-first/LocalAuth/type-aliases/StorageBackend.mdx) | Enumerates the native storage backend used to persist sensitive data. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [localAuth\_Namespace](/docs/api-reference/common/local-first/LocalAuth/variables/localAuth_Namespace.mdx) | - | -| [localAuthDefaultOptions](/docs/api-reference/common/local-first/LocalAuth/variables/localAuthDefaultOptions.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/type-aliases/AccessControl.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/type-aliases/AccessControl.mdx deleted file mode 100644 index 9e2199934..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/type-aliases/AccessControl.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / AccessControl - -```ts -type AccessControl = - | "secureEnclaveBiometry" - | "biometryCurrentSet" - | "biometryAny" - | "devicePasscode" - | "none"; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:458](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L458) - -Enumerates the access-control policy enforced by the underlying secure -storage. diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/type-aliases/SecurityLevel.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/type-aliases/SecurityLevel.mdx deleted file mode 100644 index 891fb6c13..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/type-aliases/SecurityLevel.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / SecurityLevel - -```ts -type SecurityLevel = - | "secureEnclave" - | "strongBox" - | "biometry" - | "deviceCredential" - | "software"; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:441](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L441) - -Enumerates the highest security tier that was effectively applied while -storing a value. diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/type-aliases/StorageBackend.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/type-aliases/StorageBackend.mdx deleted file mode 100644 index a0644ce39..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/type-aliases/StorageBackend.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / StorageBackend - -```ts -type StorageBackend = "keychain" | "androidKeystore" | "encryptedSharedPreferences"; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:449](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L449) - -Enumerates the native storage backend used to persist sensitive data. diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/variables/localAuthDefaultOptions.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/variables/localAuthDefaultOptions.mdx deleted file mode 100644 index 91554dccd..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/variables/localAuthDefaultOptions.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / localAuthDefaultOptions - -```ts -const localAuthDefaultOptions: LocalAuthOptions; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:316](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L316) diff --git a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/variables/localAuth_Namespace.mdx b/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/variables/localAuth_Namespace.mdx deleted file mode 100644 index daa6bf3df..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/LocalAuth/variables/localAuth_Namespace.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) / localAuth\_Namespace - -```ts -const localAuth_Namespace: "evolu" = "evolu"; -``` - -Defined in: [packages/common/src/local-first/LocalAuth.ts:314](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/LocalAuth.ts#L314) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createAppOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createAppOwner.mdx deleted file mode 100644 index 219716a66..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createAppOwner.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / createAppOwner - -```ts -function createAppOwner(secret: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"OwnerSecret">): AppOwner; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:208](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L208) - -Creates an [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) from an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `secret` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerSecret"`\> | - -## Returns - -[`AppOwner`](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createOwnerSecret.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createOwnerSecret.mdx deleted file mode 100644 index dcfe2b58a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createOwnerSecret.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / createOwnerSecret - -```ts -function createOwnerSecret(deps: RandomBytesDep): Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"OwnerSecret">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:130](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L130) - -Creates a [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) | - -## Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerSecret"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createOwnerWebSocketTransport.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createOwnerWebSocketTransport.mdx deleted file mode 100644 index fe83e9a16..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createOwnerWebSocketTransport.mdx +++ /dev/null @@ -1,44 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / createOwnerWebSocketTransport - -```ts -function createOwnerWebSocketTransport(config: { - ownerId: string & Brand<"Id"> & Brand<"OwnerId">; - url: string; -}): OwnerWebSocketTransport; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:357](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L357) - -Creates an [OwnerWebSocketTransport](/docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport.mdx) for the given relay URL and -[OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). - -The URL must be a WebSocket base URL without query parameters or fragments -(e.g., `wss://relay.evolu.dev`, not `wss://relay.evolu.dev?foo=bar`). The -function appends the `ownerId` as a query parameter. - -### Example - -```ts -// Create transport "wss://relay.evolu.dev?ownerId=..." -const transport = createOwnerWebSocketTransport({ - url: "wss://relay.evolu.dev", - ownerId: owner.id, -}); - -// Use with createEvolu -const evolu = createEvolu(deps)(Schema, { - transports: [transport], -}); -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | \{ `ownerId`: `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\>; `url`: `string`; \} | -| `config.ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | -| `config.url` | `string` | - -## Returns - -[`OwnerWebSocketTransport`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createOwnerWriteKey.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createOwnerWriteKey.mdx deleted file mode 100644 index e5b3711d2..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createOwnerWriteKey.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / createOwnerWriteKey - -```ts -function createOwnerWriteKey(deps: RandomBytesDep): Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:117](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L117) - -Creates a new random [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) for rotation. - -The initial OwnerWriteKey is deterministically derived from -[OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx). Use `createOwnerWriteKey` to rotate (replace) the write -key without changing the owner identity. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) | - -## Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerWriteKey"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createShardOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createShardOwner.mdx deleted file mode 100644 index c7c77e4a9..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createShardOwner.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / createShardOwner - -```ts -function createShardOwner(secret: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"OwnerSecret">): ShardOwner; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:228](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L228) - -Creates a [ShardOwner](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) from an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `secret` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerSecret"`\> | - -## Returns - -[`ShardOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createSharedOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createSharedOwner.mdx deleted file mode 100644 index 7b2919edb..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createSharedOwner.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / createSharedOwner - -```ts -function createSharedOwner(secret: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"OwnerSecret">): SharedOwner; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:273](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L273) - -Creates a [SharedOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) from an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) for collaborative -write access. - -Use [createSharedReadonlyOwner](/docs/api-reference/common/local-first/Owner/functions/createSharedReadonlyOwner.mdx) to create a read-only version for -sharing. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `secret` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerSecret"`\> | - -## Returns - -[`SharedOwner`](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createSharedReadonlyOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createSharedReadonlyOwner.mdx deleted file mode 100644 index 1d92ce89b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/createSharedReadonlyOwner.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / createSharedReadonlyOwner - -```ts -function createSharedReadonlyOwner(sharedOwner: SharedOwner): SharedReadonlyOwner; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:288](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L288) - -Creates a [SharedReadonlyOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx) from a [SharedOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `sharedOwner` | [`SharedOwner`](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) | - -## Returns - -[`SharedReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/deriveShardOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/deriveShardOwner.mdx deleted file mode 100644 index 91c768bf8..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/deriveShardOwner.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / deriveShardOwner - -```ts -function deriveShardOwner(owner: AppOwner, path: readonly [string | number, string | number]): ShardOwner; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:251](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L251) - -Derives a [ShardOwner](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) from an [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) using the specified path. - -**Advantages of derived owners:** - -- **Deterministic**: Same path always produces the same ShardOwner across all - devices -- **Immediate availability**: Can be hardcoded and used before sync occurs -- **Consistent setup**: All devices start with identical data structure -- **Lifecycle management**: Can implement epoch patterns for clean data - deletion and recreation - -**Common patterns:** - -- Use paths like `["shard", 1]` for versioned data lifecycle -- Use paths like `["project", "MyApp", 1]` for named partitions with versions -- Each device can derive the same owners and set up initial structure - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `owner` | [`AppOwner`](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) | -| `path` | readonly \[`string` \| `number`, `string` \| `number`\] | - -## Returns - -[`ShardOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/mnemonicToOwnerSecret.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/mnemonicToOwnerSecret.mdx deleted file mode 100644 index e46dbe676..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/mnemonicToOwnerSecret.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / mnemonicToOwnerSecret - -```ts -function mnemonicToOwnerSecret(mnemonic: string & Brand<"Trimmed"> & Brand<"MinLength1"> & Brand<"Mnemonic">): Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"OwnerSecret">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:138](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L138) - -Converts a [Mnemonic](/docs/api-reference/common/Type/variables/Mnemonic.mdx) to an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `mnemonic` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Trimmed"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"MinLength1"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Mnemonic"`\> | - -## Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerSecret"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/ownerIdBytesToOwnerId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/ownerIdBytesToOwnerId.mdx deleted file mode 100644 index 8f9701b57..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/ownerIdBytesToOwnerId.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / ownerIdBytesToOwnerId - -```ts -function ownerIdBytesToOwnerId(ownerIdBytes: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">): string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:91](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L91) - -Converts [OwnerIdBytes](/docs/api-reference/common/local-first/Owner/variables/OwnerIdBytes.mdx) to [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerIdBytes` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | - -## Returns - -`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/ownerIdToOwnerIdBytes.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/ownerIdToOwnerIdBytes.mdx deleted file mode 100644 index 655617099..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/ownerIdToOwnerIdBytes.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / ownerIdToOwnerIdBytes - -```ts -function ownerIdToOwnerIdBytes(ownerId: string & Brand<"Id"> & Brand<"OwnerId">): Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:87](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L87) - -Converts [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) to [OwnerIdBytes](/docs/api-reference/common/local-first/Owner/variables/OwnerIdBytes.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | - -## Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/ownerSecretToMnemonic.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/ownerSecretToMnemonic.mdx deleted file mode 100644 index 63cda6ff7..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/ownerSecretToMnemonic.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / ownerSecretToMnemonic - -```ts -function ownerSecretToMnemonic(secret: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"OwnerSecret">): string & Brand<"Trimmed"> & Brand<"MinLength1"> & Brand<"Mnemonic">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:134](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L134) - -Converts an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) to a [Mnemonic](/docs/api-reference/common/Type/variables/Mnemonic.mdx). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `secret` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerSecret"`\> | - -## Returns - -`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Trimmed"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"MinLength1"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Mnemonic"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/parseOwnerIdFromOwnerWebSocketTransportUrl.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/parseOwnerIdFromOwnerWebSocketTransportUrl.mdx deleted file mode 100644 index db2f2976e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/functions/parseOwnerIdFromOwnerWebSocketTransportUrl.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / parseOwnerIdFromOwnerWebSocketTransportUrl - -```ts -function parseOwnerIdFromOwnerWebSocketTransportUrl(url: string): - | string & Brand<"Id"> & Brand<"OwnerId"> - | null; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:381](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L381) - -Extracts [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) from an [OwnerWebSocketTransport](/docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport.mdx) URL query -string. - -Parses the query string `?ownerId=...` and validates that the extracted value -is a valid [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). - -### Example - -```ts -parseOwnerIdFromOwnerWebSocketTransportUrl( - "/sync?ownerId=_12345678abcdefgh", -); -// Returns: OwnerId or null -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `url` | `string` | - -## Returns - - \| `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> - \| `null` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx deleted file mode 100644 index cd8b70a84..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx +++ /dev/null @@ -1,125 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / AppOwner - -Defined in: [packages/common/src/local-first/Owner.ts:192](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L192) - -The AppOwner represents the application owner. It's created using a -cryptographically secure random generator or derived from an external source, -e.g., mnemonic stored securely in a hardware device. - -While it's possible to store all application data in AppOwner, the better -approach is to use it only for sync coordination. Storing all app data in -AppOwner means that data will be stored/synced forever. And that's a problem -if we want to provide real data deletion or in-app data migration without -data duplication. In local-first apps/distributed systems, we can't delete -individual changes, we only mark them as deleted, otherwise sync could not -work. - -If we really want to delete data or at least avoid syncing it, we must store -it using a different owner than AppOwner, e.g. [ShardOwner](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) or -[SharedOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx), and delete that owner. The AppOwner itself must be -preserved because it coordinates deletion information across devices. Other -devices need to sync the information that an owner was deleted so they can -delete their local data as well. - -## Privacy Considerations - -AppOwner must never be shared with anyone, except for its [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx), -which can be used for authorization with -[createOwnerWebSocketTransport](/docs/api-reference/common/local-first/Owner/functions/createOwnerWebSocketTransport.mdx). It's safe because OwnerId is -pseudonymous (it can't be assigned to a specific person). - -For data sharing scenarios, use [SharedOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) and -[SharedReadonlyOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx) instead, which are designed specifically for -collaborative access. - -## Extends - -- [`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"AppOwner"`\> - -## Properties - - - -### encryptionKey - -```ts -readonly encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey"> & Brand<"OwnerEncryptionKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L39) - -TODO: Wrap with `Redacted` in the next major version. - -#### Inherited from - -[`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`encryptionKey`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx#encryptionkey) - -*** - - - -### id - -```ts -readonly id: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L37) - -#### Inherited from - -[`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`id`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx#id) - -*** - - - -### mnemonic? - -```ts -readonly optional mnemonic: - | string & Brand<"Trimmed"> & Brand<"MinLength1"> & Brand<"Mnemonic"> - | null; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:200](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L200) - -The mnemonic that was used to derive the AppOwner keys. Optional when the -AppOwner is created from external keys to avoid sharing the mnemonic with -the Evolu app. - -TODO: Wrap with `Redacted` in the next major version. - -*** - - - -### type - -```ts -readonly type: "AppOwner"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) - -*** - - - -### writeKey - -```ts -readonly writeKey: Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:75](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L75) - -TODO: Wrap with `Redacted` in the next major version. - -#### Inherited from - -[`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`writeKey`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx#writekey) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/AppOwnerDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/AppOwnerDep.mdx deleted file mode 100644 index 7506f2994..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/AppOwnerDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / AppOwnerDep - -Defined in: [packages/common/src/local-first/Owner.ts:203](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L203) - -## Properties - - - -### appOwner - -```ts -readonly appOwner: AppOwner; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:204](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L204) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx deleted file mode 100644 index 1ab244b1c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx +++ /dev/null @@ -1,93 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / Owner - -Defined in: [packages/common/src/local-first/Owner.ts:73](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L73) - -The Owner represents ownership of data in Evolu. Every database change is -assigned to an owner and encrypted with its [OwnerEncryptionKey](/docs/api-reference/common/local-first/Owner/variables/OwnerEncryptionKey.mdx). Owners -allow partial sync, only the [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) is synced by default. - -Owners can also provide real data deletion, while individual changes in -local-first/distributed systems can only be soft deleted, entire owners can -be completely deleted from both relays and devices (except for -[AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx), which must be preserved for sync coordination). - -Evolu provides different owner types depending on their use case: - -- **Coordination**: [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) for sync coordination and long-term - persistence -- **Data partitioning**: [ShardOwner](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) for partitioning application data -- **Collaboration**: [SharedOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) for collaborative write access -- **Data sharing**: [SharedReadonlyOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx) for read-only access to shared - data - -Owners are cryptographically derived from an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) using -SLIP-21, ensuring secure and deterministic key generation: - -- [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx): Globally unique public identifier -- [OwnerEncryptionKey](/docs/api-reference/common/local-first/Owner/variables/OwnerEncryptionKey.mdx): Symmetric encryption key for data protection -- [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx): Authentication token for write operations (rotatable) - -## See - - - [createAppOwner](/docs/api-reference/common/local-first/Owner/functions/createAppOwner.mdx) - - [createShardOwner](/docs/api-reference/common/local-first/Owner/functions/createShardOwner.mdx) - - [createSharedOwner](/docs/api-reference/common/local-first/Owner/functions/createSharedOwner.mdx) - - [createSharedReadonlyOwner](/docs/api-reference/common/local-first/Owner/functions/createSharedReadonlyOwner.mdx) - -## Extends - -- [`ReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx) - -## Extended by - -- [`AppOwner`](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) -- [`ShardOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) -- [`SharedOwner`](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) - -## Properties - - - -### encryptionKey - -```ts -readonly encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey"> & Brand<"OwnerEncryptionKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L39) - -TODO: Wrap with `Redacted` in the next major version. - -#### Inherited from - -[`ReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx).[`encryptionKey`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx#encryptionkey) - -*** - - - -### id - -```ts -readonly id: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L37) - -#### Inherited from - -[`ReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx).[`id`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx#id) - -*** - - - -### writeKey - -```ts -readonly writeKey: Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:75](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L75) - -TODO: Wrap with `Redacted` in the next major version. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx deleted file mode 100644 index 3e373a003..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerError - -Defined in: [packages/common/src/local-first/Owner.ts:386](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L386) - -Common interface implemented by all owner domain errors. - -## Extended by - -- [`ProtocolVersionError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolVersionError.mdx) -- [`ProtocolWriteKeyError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteKeyError.mdx) -- [`ProtocolWriteError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteError.mdx) -- [`ProtocolQuotaError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolQuotaError.mdx) -- [`ProtocolSyncError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolSyncError.mdx) -- [`StorageWriteError`](/docs/api-reference/common/local-first/Storage/interfaces/StorageWriteError.mdx) -- [`StorageQuotaError`](/docs/api-reference/common/local-first/Storage/interfaces/StorageQuotaError.mdx) - -## Properties - - - -### ownerId - -```ts -readonly ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:387](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L387) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/OwnerUsage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/OwnerUsage.mdx deleted file mode 100644 index df082cefb..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/OwnerUsage.mdx +++ /dev/null @@ -1,84 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerUsage - -Defined in: [packages/common/src/local-first/Owner.ts:399](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L399) - -Usage data for an [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). - -Tracks storage usage to enforce quotas if needed, and some other stuff. - -TODO: - -- Add transferredBytes for billing and monitoring network usage. - -## Properties - - - -### firstTimestamp - -```ts -readonly firstTimestamp: - | Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes"> - | null; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:420](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L420) - -Tracks the earliest timestamp for timestamp insertion strategies. - -*** - - - -### lastTimestamp - -```ts -readonly lastTimestamp: - | Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes"> - | null; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:427](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L427) - -Tracks the latest timestamp for timestamp insertion strategies. - -Free relays can use it to identify inactive accounts for cleanup. - -*** - - - -### ownerId - -```ts -readonly ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:401](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L401) - -The [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) this usage data belongs to. - -*** - - - -### storedBytes - -```ts -readonly storedBytes: number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:417](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L417) - -Total logical data bytes stored. - -Measures the size of [EncryptedDbChange](/docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange.mdx)s only, excluding -[Storage](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx) implementation overhead (with SqliteStorage: indexes, -skiplist columns, etc.). This provides: - -- **Predictable measurement** - same data = same byte count across all - instances -- **Quota enforcement** - consistent billing/limits independent of storage - implementation -- **Overhead tracking** - actual Storage size can be compared against this to - monitor efficiency diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport.mdx deleted file mode 100644 index 29973a824..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport.mdx +++ /dev/null @@ -1,63 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerWebSocketTransport - -Defined in: [packages/common/src/local-first/Owner.ts:330](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L330) - -WebSocket transport configuration. - -## Authentication via URL - -The [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) is passed as a URL query parameter. While this approach is -generally discouraged for authentication tokens (they get logged), it's safe -here because OwnerId is pseudonymous and used only for access verification - -it provides no ability to read encrypted data or write changes. - -See: [HTTP headers in Websockets client -API](https://stackoverflow.com/questions/4361173/http-headers-in-websockets-client-api/74564827#74564827) - -## Error Handling - -When a relay rejects a connection (invalid OwnerId, unauthorized owner, or -server error), the browser WebSocket API does not expose the specific HTTP -status code or reason - it only reports a generic connection failure. The -client automatically retries with exponential backoff and jitter, eventually -succeeding once the configuration or server issue is resolved. - -Legitimate clients will be properly configured with valid credentials, so -automatic retry is OK. - -## See - - - [createOwnerWebSocketTransport](/docs/api-reference/common/local-first/Owner/functions/createOwnerWebSocketTransport.mdx) - - [parseOwnerIdFromOwnerWebSocketTransportUrl](/docs/api-reference/common/local-first/Owner/functions/parseOwnerIdFromOwnerWebSocketTransportUrl.mdx) - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"WebSocket"`\> - -## Properties - - - -### type - -```ts -readonly type: "WebSocket"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) - -*** - - - -### url - -```ts -readonly url: string; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:331](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L331) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx deleted file mode 100644 index c7e2f3a37..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / ReadonlyOwner - -Defined in: [packages/common/src/local-first/Owner.ts:36](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L36) - -[Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) without a [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx). - -## See - -[createSharedReadonlyOwner](/docs/api-reference/common/local-first/Owner/functions/createSharedReadonlyOwner.mdx) - -## Extended by - -- [`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) -- [`SharedReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx) -- [`SyncOwner`](/docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx) - -## Properties - - - -### encryptionKey - -```ts -readonly encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey"> & Brand<"OwnerEncryptionKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L39) - -TODO: Wrap with `Redacted` in the next major version. - -*** - - - -### id - -```ts -readonly id: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L37) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx deleted file mode 100644 index fe15cb00d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx +++ /dev/null @@ -1,85 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / ShardOwner - -Defined in: [packages/common/src/local-first/Owner.ts:225](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L225) - -An [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) for sharding data. - -ShardOwners are the recommended storage location for most application data -because they can be completely deleted (both on relays and devices) and -conditionally synced. - -Can be created from [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) via [createShardOwner](/docs/api-reference/common/local-first/Owner/functions/createShardOwner.mdx) or -deterministically derived from [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) using -[deriveShardOwner](/docs/api-reference/common/local-first/Owner/functions/deriveShardOwner.mdx). - -## Extends - -- [`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ShardOwner"`\> - -## Properties - - - -### encryptionKey - -```ts -readonly encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey"> & Brand<"OwnerEncryptionKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L39) - -TODO: Wrap with `Redacted` in the next major version. - -#### Inherited from - -[`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`encryptionKey`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx#encryptionkey) - -*** - - - -### id - -```ts -readonly id: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L37) - -#### Inherited from - -[`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`id`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx#id) - -*** - - - -### type - -```ts -readonly type: "ShardOwner"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) - -*** - - - -### writeKey - -```ts -readonly writeKey: Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:75](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L75) - -TODO: Wrap with `Redacted` in the next major version. - -#### Inherited from - -[`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`writeKey`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx#writekey) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx deleted file mode 100644 index ad34d729b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx +++ /dev/null @@ -1,77 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / SharedOwner - -Defined in: [packages/common/src/local-first/Owner.ts:264](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L264) - -An [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) for collaborative data with write access. - -## Extends - -- [`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"SharedOwner"`\> - -## Properties - - - -### encryptionKey - -```ts -readonly encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey"> & Brand<"OwnerEncryptionKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L39) - -TODO: Wrap with `Redacted` in the next major version. - -#### Inherited from - -[`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`encryptionKey`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx#encryptionkey) - -*** - - - -### id - -```ts -readonly id: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L37) - -#### Inherited from - -[`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`id`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx#id) - -*** - - - -### type - -```ts -readonly type: "SharedOwner"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) - -*** - - - -### writeKey - -```ts -readonly writeKey: Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:75](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L75) - -TODO: Wrap with `Redacted` in the next major version. - -#### Inherited from - -[`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx).[`writeKey`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx#writekey) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx deleted file mode 100644 index 56f623a2b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx +++ /dev/null @@ -1,61 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / SharedReadonlyOwner - -Defined in: [packages/common/src/local-first/Owner.ts:283](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L283) - -Read-only version of a [SharedOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) for data sharing. Contains only the -[OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) and [EncryptionKey](/docs/api-reference/common/Crypto/variables/EncryptionKey.mdx) needed for others to read the shared -data without write access. - -## Extends - -- [`ReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"SharedReadonlyOwner"`\> - -## Properties - - - -### encryptionKey - -```ts -readonly encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey"> & Brand<"OwnerEncryptionKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L39) - -TODO: Wrap with `Redacted` in the next major version. - -#### Inherited from - -[`ReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx).[`encryptionKey`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx#encryptionkey) - -*** - - - -### id - -```ts -readonly id: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L37) - -#### Inherited from - -[`ReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx).[`id`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx#id) - -*** - - - -### type - -```ts -readonly type: "SharedReadonlyOwner"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/page.mdx deleted file mode 100644 index 8645d9d56..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/page.mdx +++ /dev/null @@ -1,58 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Owner - -Owner identity and cryptographic key derivation. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createAppOwner](/docs/api-reference/common/local-first/Owner/functions/createAppOwner.mdx) | Creates an [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) from an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx). | -| [createOwnerSecret](/docs/api-reference/common/local-first/Owner/functions/createOwnerSecret.mdx) | Creates a [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx). | -| [createOwnerWebSocketTransport](/docs/api-reference/common/local-first/Owner/functions/createOwnerWebSocketTransport.mdx) | Creates an [OwnerWebSocketTransport](/docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport.mdx) for the given relay URL and [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). | -| [createOwnerWriteKey](/docs/api-reference/common/local-first/Owner/functions/createOwnerWriteKey.mdx) | Creates a new random [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) for rotation. | -| [createShardOwner](/docs/api-reference/common/local-first/Owner/functions/createShardOwner.mdx) | Creates a [ShardOwner](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) from an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx). | -| [createSharedOwner](/docs/api-reference/common/local-first/Owner/functions/createSharedOwner.mdx) | Creates a [SharedOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) from an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) for collaborative write access. | -| [createSharedReadonlyOwner](/docs/api-reference/common/local-first/Owner/functions/createSharedReadonlyOwner.mdx) | Creates a [SharedReadonlyOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx) from a [SharedOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx). | -| [deriveShardOwner](/docs/api-reference/common/local-first/Owner/functions/deriveShardOwner.mdx) | Derives a [ShardOwner](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) from an [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) using the specified path. | -| [mnemonicToOwnerSecret](/docs/api-reference/common/local-first/Owner/functions/mnemonicToOwnerSecret.mdx) | Converts a [Mnemonic](/docs/api-reference/common/Type/variables/Mnemonic.mdx) to an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx). | -| [ownerIdBytesToOwnerId](/docs/api-reference/common/local-first/Owner/functions/ownerIdBytesToOwnerId.mdx) | Converts [OwnerIdBytes](/docs/api-reference/common/local-first/Owner/variables/OwnerIdBytes.mdx) to [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). | -| [ownerIdToOwnerIdBytes](/docs/api-reference/common/local-first/Owner/functions/ownerIdToOwnerIdBytes.mdx) | Converts [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) to [OwnerIdBytes](/docs/api-reference/common/local-first/Owner/variables/OwnerIdBytes.mdx). | -| [ownerSecretToMnemonic](/docs/api-reference/common/local-first/Owner/functions/ownerSecretToMnemonic.mdx) | Converts an [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) to a [Mnemonic](/docs/api-reference/common/Type/variables/Mnemonic.mdx). | -| [parseOwnerIdFromOwnerWebSocketTransportUrl](/docs/api-reference/common/local-first/Owner/functions/parseOwnerIdFromOwnerWebSocketTransportUrl.mdx) | Extracts [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) from an [OwnerWebSocketTransport](/docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport.mdx) URL query string. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) | The AppOwner represents the application owner. It's created using a cryptographically secure random generator or derived from an external source, e.g., mnemonic stored securely in a hardware device. | -| [AppOwnerDep](/docs/api-reference/common/local-first/Owner/interfaces/AppOwnerDep.mdx) | - | -| [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) | The Owner represents ownership of data in Evolu. Every database change is assigned to an owner and encrypted with its [OwnerEncryptionKey](/docs/api-reference/common/local-first/Owner/variables/OwnerEncryptionKey.mdx). Owners allow partial sync, only the [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) is synced by default. | -| [OwnerError](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx) | Common interface implemented by all owner domain errors. | -| [OwnerUsage](/docs/api-reference/common/local-first/Owner/interfaces/OwnerUsage.mdx) | Usage data for an [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). | -| [OwnerWebSocketTransport](/docs/api-reference/common/local-first/Owner/interfaces/OwnerWebSocketTransport.mdx) | WebSocket transport configuration. | -| [ReadonlyOwner](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx) | [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) without a [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx). | -| [ShardOwner](/docs/api-reference/common/local-first/Owner/interfaces/ShardOwner.mdx) | An [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) for sharding data. | -| [SharedOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) | An [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) for collaborative data with write access. | -| [SharedReadonlyOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedReadonlyOwner.mdx) | Read-only version of a [SharedOwner](/docs/api-reference/common/local-first/Owner/interfaces/SharedOwner.mdx) for data sharing. Contains only the [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) and [EncryptionKey](/docs/api-reference/common/Crypto/variables/EncryptionKey.mdx) needed for others to read the shared data without write access. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [OwnerEncryptionKey](/docs/api-reference/common/local-first/Owner/type-aliases/OwnerEncryptionKey.mdx) | Symmetric encryption key for [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) data protection. | -| [OwnerId](/docs/api-reference/common/local-first/Owner/type-aliases/OwnerId.mdx) | OwnerId is a branded [Id](/docs/api-reference/common/Type/variables/Id.mdx) that uniquely identifies an [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). | -| [OwnerIdBytes](/docs/api-reference/common/local-first/Owner/type-aliases/OwnerIdBytes.mdx) | Bytes representation of [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). | -| [OwnerSecret](/docs/api-reference/common/local-first/Owner/type-aliases/OwnerSecret.mdx) | 32 bytes of cryptographic entropy used to derive [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) keys. | -| [OwnerTransport](/docs/api-reference/common/local-first/Owner/type-aliases/OwnerTransport.mdx) | Transport configuration for connecting to relays. | -| [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/type-aliases/OwnerWriteKey.mdx) | A secure token for write operations. It's derived from [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) by default and can be rotated via [createOwnerWriteKey](/docs/api-reference/common/local-first/Owner/functions/createOwnerWriteKey.mdx). | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [OwnerEncryptionKey](/docs/api-reference/common/local-first/Owner/variables/OwnerEncryptionKey.mdx) | Symmetric encryption key for [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) data protection. | -| [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) | OwnerId is a branded [Id](/docs/api-reference/common/Type/variables/Id.mdx) that uniquely identifies an [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). | -| [OwnerIdBytes](/docs/api-reference/common/local-first/Owner/variables/OwnerIdBytes.mdx) | Bytes representation of [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). | -| [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) | 32 bytes of cryptographic entropy used to derive [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) keys. | -| [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) | A secure token for write operations. It's derived from [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) by default and can be rotated via [createOwnerWriteKey](/docs/api-reference/common/local-first/Owner/functions/createOwnerWriteKey.mdx). | -| [ownerWriteKeyLength](/docs/api-reference/common/local-first/Owner/variables/ownerWriteKeyLength.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerEncryptionKey.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerEncryptionKey.mdx deleted file mode 100644 index 599c1dc07..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerEncryptionKey.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerEncryptionKey - -```ts -type OwnerEncryptionKey = Uint8Array & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Entropy"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Length32"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"EncryptionKey"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"OwnerEncryptionKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:97](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L97) - -Symmetric encryption key for [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) data protection. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerId.mdx deleted file mode 100644 index d4c89002c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerId.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerId - -```ts -type OwnerId = string & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Id"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:79](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L79) - -OwnerId is a branded [Id](/docs/api-reference/common/Type/variables/Id.mdx) that uniquely identifies an [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerIdBytes.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerIdBytes.mdx deleted file mode 100644 index 1a36c0290..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerIdBytes.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerIdBytes - -```ts -type OwnerIdBytes = Uint8Array & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Length16"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"IdBytes"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"OwnerIdBytes">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:83](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L83) - -Bytes representation of [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerSecret.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerSecret.mdx deleted file mode 100644 index dad5f7a0f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerSecret.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerSecret - -```ts -type OwnerSecret = Uint8Array & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Entropy"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Length32"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"OwnerSecret">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:126](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L126) - -32 bytes of cryptographic entropy used to derive [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) keys. - -Can be created using [createOwnerSecret](/docs/api-reference/common/local-first/Owner/functions/createOwnerSecret.mdx) or converted from a -[Mnemonic](/docs/api-reference/common/Type/variables/Mnemonic.mdx) using [mnemonicToOwnerSecret](/docs/api-reference/common/local-first/Owner/functions/mnemonicToOwnerSecret.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerTransport.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerTransport.mdx deleted file mode 100644 index daa535d25..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerTransport.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerTransport - -```ts -type OwnerTransport = OwnerWebSocketTransport; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:301](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L301) - -Transport configuration for connecting to relays. - -Currently only WebSocket, in the future Bluetooth, LocalNetwork, etc. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerWriteKey.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerWriteKey.mdx deleted file mode 100644 index c7d12626e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/type-aliases/OwnerWriteKey.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerWriteKey - -```ts -type OwnerWriteKey = Uint8Array & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Entropy"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Length16"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"OwnerWriteKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:107](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L107) - -A secure token for write operations. It's derived from [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) by -default and can be rotated via [createOwnerWriteKey](/docs/api-reference/common/local-first/Owner/functions/createOwnerWriteKey.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerEncryptionKey.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerEncryptionKey.mdx deleted file mode 100644 index 1b61a213c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerEncryptionKey.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerEncryptionKey - -```ts -const OwnerEncryptionKey: brand( - "OwnerEncryptionKey", - EncryptionKey, -); -``` - -Defined in: [packages/common/src/local-first/Owner.ts:97](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L97) - -Symmetric encryption key for [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) data protection. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx deleted file mode 100644 index b4a9606d8..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerId - -```ts -const OwnerId: brand("OwnerId", Id); -``` - -Defined in: [packages/common/src/local-first/Owner.ts:79](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L79) - -OwnerId is a branded [Id](/docs/api-reference/common/Type/variables/Id.mdx) that uniquely identifies an [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerIdBytes.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerIdBytes.mdx deleted file mode 100644 index 788102f9a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerIdBytes.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerIdBytes - -```ts -const OwnerIdBytes: brand("OwnerIdBytes", IdBytes); -``` - -Defined in: [packages/common/src/local-first/Owner.ts:83](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L83) - -Bytes representation of [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx deleted file mode 100644 index 68c024362..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerSecret - -```ts -const OwnerSecret: brand("OwnerSecret", Entropy32); -``` - -Defined in: [packages/common/src/local-first/Owner.ts:126](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L126) - -32 bytes of cryptographic entropy used to derive [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) keys. - -Can be created using [createOwnerSecret](/docs/api-reference/common/local-first/Owner/functions/createOwnerSecret.mdx) or converted from a -[Mnemonic](/docs/api-reference/common/Type/variables/Mnemonic.mdx) using [mnemonicToOwnerSecret](/docs/api-reference/common/local-first/Owner/functions/mnemonicToOwnerSecret.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx deleted file mode 100644 index b1c9fb79e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / OwnerWriteKey - -```ts -const OwnerWriteKey: brand("OwnerWriteKey", Entropy16); -``` - -Defined in: [packages/common/src/local-first/Owner.ts:107](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L107) - -A secure token for write operations. It's derived from [OwnerSecret](/docs/api-reference/common/local-first/Owner/variables/OwnerSecret.mdx) by -default and can be rotated via [createOwnerWriteKey](/docs/api-reference/common/local-first/Owner/functions/createOwnerWriteKey.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/ownerWriteKeyLength.mdx b/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/ownerWriteKeyLength.mdx deleted file mode 100644 index 73b3e1258..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Owner/variables/ownerWriteKeyLength.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) / ownerWriteKeyLength - -```ts -const ownerWriteKeyLength: number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:94](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L94) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsClient.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsClient.mdx deleted file mode 100644 index 1f0e9ed66..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsClient.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / applyProtocolMessageAsClient - -```ts -function applyProtocolMessageAsClient(inputMessage: Uint8Array, options?: ApplyProtocolMessageAsClientOptions): Task; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:925](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L925) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `inputMessage` | `Uint8Array` | -| `options` | [`ApplyProtocolMessageAsClientOptions`](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientOptions.mdx) | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<[`ApplyProtocolMessageAsClientResult`](/docs/api-reference/common/local-first/Protocol/type-aliases/ApplyProtocolMessageAsClientResult.mdx), - \| [`ProtocolVersionError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolVersionError.mdx) - \| [`ProtocolInvalidDataError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError.mdx) - \| [`ProtocolWriteKeyError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteKeyError.mdx) - \| [`ProtocolWriteError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteError.mdx) - \| [`ProtocolSyncError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolSyncError.mdx) - \| [`ProtocolQuotaError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolQuotaError.mdx), [`StorageDep`](/docs/api-reference/common/local-first/Storage/interfaces/StorageDep.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsRelay.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsRelay.mdx deleted file mode 100644 index 7a39e020d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsRelay.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / applyProtocolMessageAsRelay - -```ts -function applyProtocolMessageAsRelay( - inputMessage: Uint8Array, - options?: ApplyProtocolMessageAsRelayOptions, -version?: number & Brand<"Int"> & Brand<"NonNegative">): Task; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1073](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1073) - -## Parameters - -| Parameter | Type | Default value | Description | -| ------ | ------ | ------ | ------ | -| `inputMessage` | `Uint8Array` | `undefined` | - | -| `options` | [`ApplyProtocolMessageAsRelayOptions`](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayOptions.mdx) | `{}` | - | -| `version` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | `protocolVersion` | For tests only. | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<[`ApplyProtocolMessageAsRelayResult`](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayResult.mdx), [`ProtocolInvalidDataError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError.mdx), [`StorageDep`](/docs/api-reference/common/local-first/Storage/interfaces/StorageDep.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageBuffer.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageBuffer.mdx deleted file mode 100644 index 6f0cfdd51..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageBuffer.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / createProtocolMessageBuffer - -```ts -function createProtocolMessageBuffer(ownerId: string & Brand<"Id"> & Brand<"OwnerId">, options: { - rangesMaxSize?: number & Brand<"Int"> & Brand<"Between3000-100000">; - totalMaxSize?: number & Brand<"Int"> & Brand<"Between1000000-100000000">; - version?: number & Brand<"Int"> & Brand<"NonNegative">; -} & - | { - messageType: 0; - subscriptionFlag?: SubscriptionFlag | undefined; - writeKey?: Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">; -} - | { - errorCode: ProtocolErrorCode; - messageType: 1; -} - | { - messageType: 2; -}): ProtocolMessageBuffer; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:587](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L587) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | -| `options` | \{ `rangesMaxSize?`: `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Between3000-100000"`\>; `totalMaxSize?`: `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Between1000000-100000000"`\>; `version?`: `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\>; \} & \| \{ `messageType`: `0`; `subscriptionFlag?`: SubscriptionFlag \| undefined; `writeKey?`: `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerWriteKey"`\>; \} \| \{ `errorCode`: [`ProtocolErrorCode`](/docs/api-reference/common/local-first/Protocol/variables/ProtocolErrorCode.mdx); `messageType`: `1`; \} \| \{ `messageType`: `2`; \} | - -## Returns - -[`ProtocolMessageBuffer`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolMessageBuffer.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageForSync.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageForSync.mdx deleted file mode 100644 index cc9d2c9da..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageForSync.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / createProtocolMessageForSync - -```ts -function createProtocolMessageForSync(deps: StorageDep): (ownerId: string & Brand<"Id"> & Brand<"OwnerId">, subscriptionFlag?: SubscriptionFlag) => - | ProtocolMessage - | null; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:529](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L529) - -Creates a [ProtocolMessage](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) for sync. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`StorageDep`](/docs/api-reference/common/local-first/Storage/interfaces/StorageDep.mdx) | - -## Returns - -```ts -(ownerId: string & Brand<"Id"> & Brand<"OwnerId">, subscriptionFlag?: SubscriptionFlag): - | ProtocolMessage - | null; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | -| `subscriptionFlag?` | [`SubscriptionFlag`](/docs/api-reference/common/local-first/Protocol/type-aliases/SubscriptionFlag.mdx) | - -### Returns - - \| [`ProtocolMessage`](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) - \| `null` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageForUnsubscribe.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageForUnsubscribe.mdx deleted file mode 100644 index c5901e92b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageForUnsubscribe.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / createProtocolMessageForUnsubscribe - -```ts -function createProtocolMessageForUnsubscribe(ownerId: string & Brand<"Id"> & Brand<"OwnerId">): ProtocolMessage; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:555](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L555) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | - -## Returns - -[`ProtocolMessage`](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageFromCrdtMessages.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageFromCrdtMessages.mdx deleted file mode 100644 index eb3f0d368..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageFromCrdtMessages.mdx +++ /dev/null @@ -1,40 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / createProtocolMessageFromCrdtMessages - -```ts -function createProtocolMessageFromCrdtMessages(deps: RandomBytesDep): (owner: Owner, messages: readonly [CrdtMessage, CrdtMessage], maxSize?: number & Brand<"Int"> & Brand<"Between1000000-100000000">) => ProtocolMessage; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:468](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L468) - -Creates a [ProtocolMessage](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) from CRDT messages. - -If the message size would exceed [defaultProtocolMessageMaxSize](/docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageMaxSize.mdx), the -protocol ensures all messages will be sent in the next round(s) even over -unidirectional and stateless transports. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) | - -## Returns - -```ts -( - owner: Owner, - messages: readonly [CrdtMessage, CrdtMessage], - maxSize?: number & Brand<"Int"> & Brand<"Between1000000-100000000">): ProtocolMessage; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `owner` | [`Owner`](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) | -| `messages` | readonly \[[`CrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx), [`CrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx)\] | -| `maxSize?` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Between1000000-100000000"`\> | - -### Returns - -[`ProtocolMessage`](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createTimestampsBuffer.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createTimestampsBuffer.mdx deleted file mode 100644 index 25a8193dd..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/createTimestampsBuffer.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / createTimestampsBuffer - -```ts -function createTimestampsBuffer(): TimestampsBuffer; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:803](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L803) - -## Returns - -[`TimestampsBuffer`](/docs/api-reference/common/local-first/Protocol/interfaces/TimestampsBuffer.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeFlags.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeFlags.mdx deleted file mode 100644 index ac7d58838..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeFlags.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / decodeFlags - -```ts -function decodeFlags(buffer: Buffer, count: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">): readonly boolean[]; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1740](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1740) - -Decodes a byte into an array of boolean flags. - -### Example - -```ts -const flags = decodeFlags(buffer, 3); // Decode 3 flags -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | -| `count` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> | - -## Returns - -readonly `boolean`[] diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeNodeId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeNodeId.mdx deleted file mode 100644 index 58930a7ed..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeNodeId.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / decodeNodeId - -```ts -function decodeNodeId(buffer: Buffer): string & Brand<"NodeId">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1959](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1959) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | - -## Returns - -`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NodeId"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeNonNegativeInt.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeNonNegativeInt.mdx deleted file mode 100644 index 87c98d24c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeNonNegativeInt.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / decodeNonNegativeInt - -```ts -function decodeNonNegativeInt(buffer: Buffer): number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1918](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1918) - -Decodes a non-negative integer from a variable-length integer format. - -https://en.wikipedia.org/wiki/Variable-length_quantity - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | - -## Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeNumber.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeNumber.mdx deleted file mode 100644 index 779d989f4..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeNumber.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / decodeNumber - -```ts -function decodeNumber(buffer: Buffer): number; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1683](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1683) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | - -## Returns - -`number` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeProtocolMessageToJson.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeProtocolMessageToJson.mdx deleted file mode 100644 index 988a300a6..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeProtocolMessageToJson.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / decodeProtocolMessageToJson - -```ts -function decodeProtocolMessageToJson(_protocolMessage: ProtocolMessage, _isInitiator: boolean): unknown; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:2154](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L2154) - -Decodes a ProtocolMessage into a readable JSON object for debugging. - -Note: This is a stub for future implementation. It should use: - -- DecodeVersionAndOwner -- DecodeError or decodeWriteKeys (depending on context) -- DecodeMessages -- DecodeRanges - -If you want to help, please contribute to this function. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `_protocolMessage` | [`ProtocolMessage`](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) | -| `_isInitiator` | `boolean` | - -## Returns - -`unknown` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeRle.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeRle.mdx deleted file mode 100644 index 423613c90..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeRle.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / decodeRle - -```ts -function decodeRle( - buffer: Buffer, - length: number & Brand<"Int"> & Brand<"NonNegative">, - decodeValue: () => T): readonly T[]; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1637](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1637) - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | -| `length` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `decodeValue` | () => `T` | - -## Returns - -readonly `T`[] diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeSqliteValue.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeSqliteValue.mdx deleted file mode 100644 index 9cb552c93..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeSqliteValue.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / decodeSqliteValue - -```ts -function decodeSqliteValue(buffer: Buffer): string | number | Uint8Array | null; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:2083](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L2083) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | - -## Returns - -`string` \| `number` \| `Uint8Array`\<`ArrayBufferLike`\> \| `null` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeString.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeString.mdx deleted file mode 100644 index 58f0b62f9..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decodeString.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / decodeString - -```ts -function decodeString(buffer: Buffer): string; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1949](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1949) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | - -## Returns - -`string` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decryptAndDecodeDbChange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decryptAndDecodeDbChange.mdx deleted file mode 100644 index ee2aff753..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/decryptAndDecodeDbChange.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / decryptAndDecodeDbChange - -```ts -function decryptAndDecodeDbChange(message: EncryptedCrdtMessage, key: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey">): Result; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1811](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1811) - -Decrypts and decodes an [EncryptedCrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx) using the provided -owner's encryption key. Verifies that the embedded timestamp matches the -expected timestamp to ensure message integrity. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `message` | [`EncryptedCrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx) | -| `key` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"EncryptionKey"`\> | - -## Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`DbChange`](/docs/api-reference/common/local-first/Storage/interfaces/DbChange.mdx), - \| [`DecryptWithXChaCha20Poly1305Error`](/docs/api-reference/common/Crypto/interfaces/DecryptWithXChaCha20Poly1305Error.mdx) - \| [`ProtocolInvalidDataError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError.mdx) - \| [`ProtocolTimestampMismatchError`](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolTimestampMismatchError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeAndEncryptDbChange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeAndEncryptDbChange.mdx deleted file mode 100644 index eda6dc7b5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeAndEncryptDbChange.mdx +++ /dev/null @@ -1,37 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / encodeAndEncryptDbChange - -```ts -function encodeAndEncryptDbChange(deps: RandomBytesDep): (message: CrdtMessage, key: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey">) => EncryptedDbChange; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1762](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1762) - -Encodes and encrypts a [DbChange](/docs/api-reference/common/local-first/Storage/variables/DbChange.mdx) using the provided owner's encryption -key. Returns an encrypted binary representation as [EncryptedDbChange](/docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange.mdx). - -The format includes the protocol version for backward compatibility and the -timestamp for tamper-proof verification that the timestamp matches the change -data. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) | - -## Returns - -```ts -(message: CrdtMessage, key: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey">): EncryptedDbChange; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `message` | [`CrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx) | -| `key` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length32"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"EncryptionKey"`\> | - -### Returns - -[`EncryptedDbChange`](/docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeFlags.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeFlags.mdx deleted file mode 100644 index 74fc9e5e0..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeFlags.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / encodeFlags - -```ts -function encodeFlags(buffer: Buffer, flags: readonly boolean[]): void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1718](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1718) - -Encodes an array of boolean flags into a single byte. - -Each element in the array corresponds to a bit (0-7). Array can have 0-8 -elements. - -### Example - -```ts -encodeFlags(buffer, [true, false, true]); // Encodes bits 0, 1, 2 -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | -| `flags` | readonly `boolean`[] | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeLength.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeLength.mdx deleted file mode 100644 index ccf5ae247..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeLength.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / encodeLength - -```ts -function encodeLength(buffer: Buffer, value: ArrayLike): void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1937](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1937) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | -| `value` | `ArrayLike`\<`any`\> | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeNodeId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeNodeId.mdx deleted file mode 100644 index d6e98e37a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeNodeId.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / encodeNodeId - -```ts -function encodeNodeId(buffer: Buffer, nodeId: string & Brand<"NodeId">): void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1955](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1955) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | -| `nodeId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NodeId"`\> | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeNonNegativeInt.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeNonNegativeInt.mdx deleted file mode 100644 index bb7678242..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeNonNegativeInt.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / encodeNonNegativeInt - -```ts -function encodeNonNegativeInt(buffer: Buffer, int: number & Brand<"Int"> & Brand<"NonNegative">): void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1888](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1888) - -Encodes a non-negative integer into a variable-length integer format. It's -more efficient than encoding via [encodeNumber](/docs/api-reference/common/local-first/Protocol/functions/encodeNumber.mdx). - -https://en.wikipedia.org/wiki/Variable-length_quantity - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | -| `int` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeNumber.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeNumber.mdx deleted file mode 100644 index 9a07cd68e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeNumber.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / encodeNumber - -```ts -function encodeNumber(buffer: Buffer, number: number): void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1679](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1679) - -Evolu uses MessagePack to handle all number variants except for -NonNegativeInt. For NonNegativeInt, Evolu provides more efficient encoding. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | -| `number` | `number` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeSqliteValue.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeSqliteValue.mdx deleted file mode 100644 index 6072eaa4b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeSqliteValue.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / encodeSqliteValue - -```ts -function encodeSqliteValue(buffer: Buffer, value: string | number | Uint8Array | null): void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1997](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1997) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | -| `value` | `string` \| `number` \| `Uint8Array`\<`ArrayBufferLike`\> \| `null` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeString.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeString.mdx deleted file mode 100644 index 9a0fca9e5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/encodeString.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / encodeString - -```ts -function encodeString(buffer: Buffer, value: string): void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1943](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1943) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | -| `value` | `string` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/pack.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/pack.mdx deleted file mode 100644 index 5684e2815..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/functions/pack.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / pack - -```ts -function pack(value: unknown): Uint8Array; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:275](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L275) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `value` | `unknown` | - -## Returns - -`Uint8Array` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientBroadcast.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientBroadcast.mdx deleted file mode 100644 index f261933ae..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientBroadcast.mdx +++ /dev/null @@ -1,145 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ApplyProtocolMessageAsClientBroadcast - -Defined in: [packages/common/src/local-first/Protocol.ts:916](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L916) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"Broadcast"`\> - -## Properties - - - -### type - -```ts -readonly type: "Broadcast"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientNoResponse.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientNoResponse.mdx deleted file mode 100644 index bf03ed843..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientNoResponse.mdx +++ /dev/null @@ -1,145 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ApplyProtocolMessageAsClientNoResponse - -Defined in: [packages/common/src/local-first/Protocol.ts:913](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L913) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"NoResponse"`\> - -## Properties - - - -### type - -```ts -readonly type: "NoResponse"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientOptions.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientOptions.mdx deleted file mode 100644 index 3dae68e9c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientOptions.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ApplyProtocolMessageAsClientOptions - -Defined in: [packages/common/src/local-first/Protocol.ts:895](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L895) - -## Properties - - - -### getWriteKey()? - -```ts -optional getWriteKey: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">) => - | Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey"> - | null; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:896](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L896) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | - -#### Returns - - \| `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerWriteKey"`\> - \| `null` - -*** - - - -### rangesMaxSize? - -```ts -optional rangesMaxSize: number & Brand<"Int"> & Brand<"Between3000-100000">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:898](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L898) - -*** - - - -### version? - -```ts -optional version: number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:901](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L901) - -For tests only. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientResponse.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientResponse.mdx deleted file mode 100644 index 73a37cd92..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientResponse.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ApplyProtocolMessageAsClientResponse - -Defined in: [packages/common/src/local-first/Protocol.ts:908](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L908) - -Result type for [applyProtocolMessageAsClient](/docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsClient.mdx) that distinguishes -between responses to client requests and broadcast messages. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"Response"`\> - -## Properties - - - -### message - -```ts -readonly message: ProtocolMessage; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:910](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L910) - -*** - - - -### type - -```ts -readonly type: "Response"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayOptions.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayOptions.mdx deleted file mode 100644 index 9af83d6ba..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayOptions.mdx +++ /dev/null @@ -1,100 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ApplyProtocolMessageAsRelayOptions - -Defined in: [packages/common/src/local-first/Protocol.ts:1045](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1045) - -## Properties - - - -### broadcast()? - -```ts -optional broadcast: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">, message: ProtocolMessage) => void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1053](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1053) - -To broadcast a protocol message to all subscribers. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | -| `message` | [`ProtocolMessage`](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) | - -#### Returns - -`void` - -*** - - - -### rangesMaxSize? - -```ts -optional rangesMaxSize: number & Brand<"Int"> & Brand<"Between3000-100000">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1056](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1056) - -*** - - - -### subscribe()? - -```ts -optional subscribe: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">) => void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1047](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1047) - -To subscribe an owner for broadcasting. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | - -#### Returns - -`void` - -*** - - - -### totalMaxSize? - -```ts -optional totalMaxSize: number & Brand<"Int"> & Brand<"Between1000000-100000000">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1055](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1055) - -*** - - - -### unsubscribe()? - -```ts -optional unsubscribe: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">) => void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1050](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1050) - -To unsubscribe an owner from broadcasting. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayResult.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayResult.mdx deleted file mode 100644 index 8a6227089..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayResult.mdx +++ /dev/null @@ -1,43 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ApplyProtocolMessageAsRelayResult - -Defined in: [packages/common/src/local-first/Protocol.ts:1068](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1068) - -Result type for [applyProtocolMessageAsRelay](/docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsRelay.mdx). - -Unlike [ApplyProtocolMessageAsClientResult](/docs/api-reference/common/local-first/Protocol/type-aliases/ApplyProtocolMessageAsClientResult.mdx), relays always respond with -a message to provide sync completion feedback. This ensures the initiator can -reliably detect when synchronization is complete, even when there's nothing -to sync. Clients may choose not to respond in certain cases (like when they -receive broadcast messages or when they lack a write key for syncing). - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"Response"`\> - -## Properties - - - -### message - -```ts -readonly message: ProtocolMessage; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1069](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1069) - -*** - - - -### type - -```ts -readonly type: "Response"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError.mdx deleted file mode 100644 index 7f05b9a8b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolInvalidDataError - -Defined in: [packages/common/src/local-first/Protocol.ts:405](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L405) - -Error for invalid or corrupted protocol message data. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ProtocolInvalidDataError"`\> - -## Properties - - - -### data - -```ts -readonly data: Uint8Array; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:407](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L407) - -*** - - - -### error - -```ts -readonly error: unknown; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:408](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L408) - -*** - - - -### type - -```ts -readonly type: "ProtocolInvalidDataError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolMessageBuffer.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolMessageBuffer.mdx deleted file mode 100644 index 7b6420b18..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolMessageBuffer.mdx +++ /dev/null @@ -1,148 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolMessageBuffer - -Defined in: [packages/common/src/local-first/Protocol.ts:567](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L567) - -Mutable builder for constructing [ProtocolMessage](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) respecting size -limits. - -## Properties - - - -### addMessage() - -```ts -readonly addMessage: (message: EncryptedCrdtMessage) => void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:570](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L570) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `message` | [`EncryptedCrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx) | - -#### Returns - -`void` - -*** - - - -### addRange() - -```ts -readonly addRange: (range: - | FingerprintRange - | SkipRange - | TimestampsRangeWithTimestampsBuffer) => void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:579](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L579) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `range` | \| [`FingerprintRange`](/docs/api-reference/common/local-first/Storage/interfaces/FingerprintRange.mdx) \| [`SkipRange`](/docs/api-reference/common/local-first/Storage/interfaces/SkipRange.mdx) \| [`TimestampsRangeWithTimestampsBuffer`](/docs/api-reference/common/local-first/Protocol/interfaces/TimestampsRangeWithTimestampsBuffer.mdx) | - -#### Returns - -`void` - -*** - - - -### canAddMessage() - -```ts -readonly canAddMessage: (message: EncryptedCrdtMessage) => boolean; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:568](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L568) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `message` | [`EncryptedCrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx) | - -#### Returns - -`boolean` - -*** - - - -### canAddTimestampsRangeAndMessage() - -```ts -readonly canAddTimestampsRangeAndMessage: (timestamps: TimestampsBuffer, message: - | EncryptedCrdtMessage - | null) => boolean; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:574](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L574) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `timestamps` | [`TimestampsBuffer`](/docs/api-reference/common/local-first/Protocol/interfaces/TimestampsBuffer.mdx) | -| `message` | \| [`EncryptedCrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx) \| `null` | - -#### Returns - -`boolean` - -*** - - - -### canSplitRange() - -```ts -readonly canSplitRange: () => boolean; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:572](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L572) - -#### Returns - -`boolean` - -*** - - - -### getSize() - -```ts -readonly getSize: () => number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:584](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L584) - -#### Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> - -*** - - - -### unwrap() - -```ts -readonly unwrap: () => ProtocolMessage; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:583](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L583) - -#### Returns - -[`ProtocolMessage`](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolQuotaError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolQuotaError.mdx deleted file mode 100644 index d1388fb61..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolQuotaError.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolQuotaError - -Defined in: [packages/common/src/local-first/Protocol.ts:437](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L437) - -Error when storage or billing quota is exceeded. - -When relay rejects writes due to quota, the affected device stops syncing -because RBSR requires both sides to converge—if the relay won't accept the -client's data, they can never reach the same state. Only the device with -excess local data is affected. Other devices that haven't exceeded quota can -still sync normally. - -Clients should prompt the user to contact the relay provider or upgrade their -plan. Quota monitoring and management is the relay provider's -responsibility. - -## Extends - -- [`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ProtocolQuotaError"`\> - -## Properties - - - -### ownerId - -```ts -readonly ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:387](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L387) - -#### Inherited from - -[`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`ownerId`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx#ownerid) - -*** - - - -### type - -```ts -readonly type: "ProtocolQuotaError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolSyncError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolSyncError.mdx deleted file mode 100644 index 353904768..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolSyncError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolSyncError - -Defined in: [packages/common/src/local-first/Protocol.ts:445](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L445) - -Error indicating a serious relay-side synchronization failure. Clients should -log this error and show a generic sync error to the user. - -## Extends - -- [`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ProtocolSyncError"`\> - -## Properties - - - -### ownerId - -```ts -readonly ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:387](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L387) - -#### Inherited from - -[`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`ownerId`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx#ownerid) - -*** - - - -### type - -```ts -readonly type: "ProtocolSyncError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolTimestampMismatchError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolTimestampMismatchError.mdx deleted file mode 100644 index 7b890afdf..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolTimestampMismatchError.mdx +++ /dev/null @@ -1,51 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolTimestampMismatchError - -Defined in: [packages/common/src/local-first/Protocol.ts:454](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L454) - -Error when embedded timestamp doesn't match expected timestamp in -EncryptedDbChange. Indicates potential tampering or corruption of CRDT -messages. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ProtocolTimestampMismatchError"`\> - -## Properties - - - -### expected - -```ts -readonly expected: Timestamp; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L456) - -*** - - - -### timestamp - -```ts -readonly timestamp: Timestamp; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:457](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L457) - -*** - - - -### type - -```ts -readonly type: "ProtocolTimestampMismatchError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolVersionError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolVersionError.mdx deleted file mode 100644 index c9a5423c0..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolVersionError.mdx +++ /dev/null @@ -1,68 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolVersionError - -Defined in: [packages/common/src/local-first/Protocol.ts:396](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L396) - -Represents a version mismatch in the Evolu Protocol. Occurs when the -initiator and non-initiator are using incompatible protocol versions. - -## Extends - -- [`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ProtocolVersionError"`\> - -## Properties - - - -### isInitiator - -```ts -readonly isInitiator: boolean; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:401](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L401) - -Indicates which side is obsolete and should update. - -*** - - - -### ownerId - -```ts -readonly ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:387](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L387) - -#### Inherited from - -[`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`ownerId`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx#ownerid) - -*** - - - -### type - -```ts -readonly type: "ProtocolVersionError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) - -*** - - - -### version - -```ts -readonly version: number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:399](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L399) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteError.mdx deleted file mode 100644 index 8d0fd4b8b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteError.mdx +++ /dev/null @@ -1,42 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolWriteError - -Defined in: [packages/common/src/local-first/Protocol.ts:420](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L420) - -Error indicating a serious relay-side write failure. Clients should log this -error and show a generic sync error to the user. - -## Extends - -- [`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ProtocolWriteError"`\> - -## Properties - - - -### ownerId - -```ts -readonly ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:387](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L387) - -#### Inherited from - -[`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`ownerId`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx#ownerid) - -*** - - - -### type - -```ts -readonly type: "ProtocolWriteError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteKeyError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteKeyError.mdx deleted file mode 100644 index 4a0b9d1dd..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteKeyError.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolWriteKeyError - -Defined in: [packages/common/src/local-first/Protocol.ts:412](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L412) - -Error when a [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) is invalid, missing, or fails validation. - -## Extends - -- [`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ProtocolWriteKeyError"`\> - -## Properties - - - -### ownerId - -```ts -readonly ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:387](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L387) - -#### Inherited from - -[`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`ownerId`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx#ownerid) - -*** - - - -### type - -```ts -readonly type: "ProtocolWriteKeyError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/TimestampsBuffer.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/TimestampsBuffer.mdx deleted file mode 100644 index c47c16d6b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/TimestampsBuffer.mdx +++ /dev/null @@ -1,95 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / TimestampsBuffer - -Defined in: [packages/common/src/local-first/Protocol.ts:795](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L795) - -## Properties - - - -### add() - -```ts -readonly add: (timestamp: Timestamp) => void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:796](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L796) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `timestamp` | [`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) | - -#### Returns - -`void` - -*** - - - -### addInfinite() - -```ts -readonly addInfinite: () => void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:797](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L797) - -#### Returns - -`void` - -*** - - - -### append() - -```ts -readonly append: (buffer: Buffer) => void; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:800](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L800) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | - -#### Returns - -`void` - -*** - - - -### getCount() - -```ts -readonly getCount: () => number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:798](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L798) - -#### Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - -*** - - - -### getLength() - -```ts -readonly getLength: () => number; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:799](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L799) - -#### Returns - -`number` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/TimestampsRangeWithTimestampsBuffer.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/TimestampsRangeWithTimestampsBuffer.mdx deleted file mode 100644 index 9a6b4f30c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/interfaces/TimestampsRangeWithTimestampsBuffer.mdx +++ /dev/null @@ -1,47 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / TimestampsRangeWithTimestampsBuffer - -Defined in: [packages/common/src/local-first/Protocol.ts:790](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L790) - -## Extends - -- [`BaseRange`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx) - -## Properties - - - -### timestamps - -```ts -readonly timestamps: TimestampsBuffer; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:792](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L792) - -*** - - - -### type - -```ts -readonly type: 2; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:791](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L791) - -*** - - - -### upperBound - -```ts -readonly upperBound: RangeUpperBound; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:206](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L206) - -#### Inherited from - -[`BaseRange`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx).[`upperBound`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx#upperbound) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/page.mdx deleted file mode 100644 index 95a2453f8..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/page.mdx +++ /dev/null @@ -1,237 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Protocol - -Evolu Protocol - -Evolu Protocol is a local-first, end-to-end encrypted binary synchronization -protocol optimized for minimal size and maximum speed. It enables data sync -between a client and a relay. In the future, direct peer-to-peer (P2P) sync -between clients will be possible without a relay. - -Relays don't need to sync with each other—clients using those relays will -sync them eventually. If a relay is offline (e.g., for maintenance), it will -sync automatically later via client sync logic. For relay backup using -SQLite, see https://sqlite.org/rsync.html (uses a similar algorithm to Evolu -RBSR). - -Evolu Protocol is designed for SQLite but can be extended to any database. It -implements [Range-Based Set -Reconciliation](https://arxiv.org/abs/2212.13567). To learn how RBSR works, -check [Negentropy](https://logperiodic.com/rbsr.html). Evolu Protocol is -similar to Negentropy but uses different encoding and also provides data -transfer, ownership, real-time broadcasting, request-response semantics, and -error handling. - -## Message structure - -| Field | Notes | -| :----------------------------- | :------------------------ | -| **Header** | | -| - [protocolVersion](/docs/api-reference/common/local-first/Protocol/variables/protocolVersion.mdx) | | -| - [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) | [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx) | -| - messageType | [MessageType](/docs/api-reference/common/local-first/Protocol/variables/MessageType.mdx) | -| **Request (messageType=0)** | | -| - hasWriteKey | 0 = no, 1 = yes | -| - [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) | If hasWriteKey = 1 | -| - subscriptionFlag | [SubscriptionFlags](/docs/api-reference/common/local-first/Protocol/variables/SubscriptionFlags.mdx) | -| **Response (messageType=1)** | | -| - [ProtocolErrorCode](/docs/api-reference/common/local-first/Protocol/variables/ProtocolErrorCode.mdx) | | -| **Broadcast (messageType=2)** | | -| - (no additional fields) | | -| **Messages** | | -| - [NonNegativeInt](/docs/api-reference/common/Type/variables/NonNegativeInt.mdx) | A number of messages. | -| - [EncryptedCrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx) | | -| **Ranges** | | -| - [NonNegativeInt](/docs/api-reference/common/Type/variables/NonNegativeInt.mdx) | Number of ranges. | -| - [Range](/docs/api-reference/common/local-first/Storage/type-aliases/Range.mdx) | | - -## WriteKey validation - -The initiator sends a hasWriteKey flag and optionally a WriteKey. The -WriteKey is required when sending messages as a secure token proving the -initiator can write changes. It's ok to not send a WriteKey if the initiator -is only syncing (read-only) and not sending messages. The non-initiator -validates the WriteKey immediately after parsing the initiator header, before -processing any messages or ranges. - -## Synchronization - -- **Messages**: Sends [EncryptedCrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx)s in either direction. -- **Ranges**: Determines messages to sync. Usage varies by transport—e.g., sent - only on WebSocket connection open or with every fetch request. - -Synchronization involves an initiator and a non-initiator. The **initiator** -is typically a client, and the **non-initiator** is typically a relay. Each -side processes the received message and responds with a new `ProtocolMessage` -if further sync is needed or possible, continuing until both sides are -synchronized. - -The **non-initiator always responds** to provide sync completion feedback, -even with empty messages containing only the header and no error. This allows -the initiator to detect when synchronization is complete. - -Both **Messages** and **Ranges** are optional, allowing each side to send, -sync, or only subscribe data as needed. - -When the initiator sends data, the [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) is required as a -secure token proving the initiator can write changes. The non-initiator -responds without a [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx), since the initiator’s request -already signals it wants data. If the non-initiator detects an issue, it -sends an error code via the `Error` field in the header back to the -initiator. In relay-to-relay or P2P sync, both sides may require the -[OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) depending on who is the initiator. - -## Protocol errors - -The protocol uses error codes in the header to signal issues: - -- [ProtocolWriteKeyError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteKeyError.mdx): The provided WriteKey is invalid or missing. -- [ProtocolWriteError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteError.mdx): A serious relay-side write failure occurred. -- [ProtocolQuotaError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolQuotaError.mdx): Storage or billing quota exceeded. -- [ProtocolSyncError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolSyncError.mdx): A serious relay-side synchronization failure - occurred. -- [ProtocolVersionError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolVersionError.mdx): Protocol version mismatch. -- [ProtocolInvalidDataError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError.mdx): The message is malformed or corrupted. - -All protocol errors except `ProtocolInvalidDataError` include the `OwnerId` -to allow clients to associate errors with the correct owner. - -## Message size limit - -The protocol enforces a strict maximum size for all messages, defined by -[ProtocolMessageMaxSize](/docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageMaxSize.mdx). This ensures every [ProtocolMessage](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) is -less than or equal to this limit, enabling stateless transports, simplified -relay implementation, and predictable memory usage. When all messages don't -fit within the limit, the protocol automatically continues synchronization in -subsequent rounds using range-based reconciliation. - -Database mutations are limited to 640KB, which is smaller than the protocol -message limit to ensure efficient sync with -[defaultProtocolMessageRangesMaxSize](/docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageRangesMaxSize.mdx). - -## Why Binary? - -The protocol avoids JSON because: - -- Encrypted data doesn’t compress well, unlike plain JSON. -- Message size must be controlled during creation. -- Sequential byte reading is faster than parsing and avoids conversions. - -It uses structure-aware encoding, significantly outperforming generic binary -serialization formats with the following optimizations: - -- **NonNegativeInt:** Up to 33% smaller than MessagePack. -- **DateIso:** Up to 75% smaller. -- **Timestamp Encoding:** Delta encoding for milliseconds and run-length - encoding (RLE) for counters and NodeIds. -- **Small Integers (0 to 19):** Reduces size by 1 byte per integer. - -To avoid reinventing serialization where it’s unnecessary—like for JSON and -certain numbers—the Evolu Protocol relies on MessagePack. - -## Versioning - -Evolu Protocol uses explicit versioning to ensure compatibility between -clients and relays (or peers). Each protocol message begins with a version -number and an `ownerId` in its header. - -**How version negotiation works:** - -- The initiator (usually a client) sends a `ProtocolMessage` that includes its - protocol version and the `ownerId`. -- The non-initiator (usually a relay or peer) checks the version. - - - If the versions match, synchronization proceeds as normal. - - If the versions do not match, the non-initiator responds with a message - containing **its own protocol version and the same `ownerId`**. -- The initiator can then detect the version mismatch for that specific owner - and handle it appropriately (e.g., prompt for an update or halt sync). - -Version negotiation is per-owner, allowing Evolu Protocol to evolve safely -over time and provide clear feedback about version mismatches. - -## Credible exit - -The protocol specification is intentionally non-configurable to ensure -universal compatibility. This design allows applications (users) to switch -between any compliant relay without negotiation or compatibility checks -beyond version matching. Relays are generic infrastructure that any -application can use interchangeably making exit from any single provider -technically feasible and economically viable. - -## Functions - -| Function | Description | -| ------ | ------ | -| [applyProtocolMessageAsClient](/docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsClient.mdx) | - | -| [applyProtocolMessageAsRelay](/docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsRelay.mdx) | - | -| [createProtocolMessageBuffer](/docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageBuffer.mdx) | - | -| [createProtocolMessageForSync](/docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageForSync.mdx) | Creates a [ProtocolMessage](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) for sync. | -| [createProtocolMessageForUnsubscribe](/docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageForUnsubscribe.mdx) | - | -| [createProtocolMessageFromCrdtMessages](/docs/api-reference/common/local-first/Protocol/functions/createProtocolMessageFromCrdtMessages.mdx) | Creates a [ProtocolMessage](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) from CRDT messages. | -| [createTimestampsBuffer](/docs/api-reference/common/local-first/Protocol/functions/createTimestampsBuffer.mdx) | - | -| [decodeFlags](/docs/api-reference/common/local-first/Protocol/functions/decodeFlags.mdx) | Decodes a byte into an array of boolean flags. | -| [decodeNodeId](/docs/api-reference/common/local-first/Protocol/functions/decodeNodeId.mdx) | - | -| [decodeNonNegativeInt](/docs/api-reference/common/local-first/Protocol/functions/decodeNonNegativeInt.mdx) | Decodes a non-negative integer from a variable-length integer format. | -| [decodeNumber](/docs/api-reference/common/local-first/Protocol/functions/decodeNumber.mdx) | - | -| [decodeProtocolMessageToJson](/docs/api-reference/common/local-first/Protocol/functions/decodeProtocolMessageToJson.mdx) | Decodes a ProtocolMessage into a readable JSON object for debugging. | -| [decodeRle](/docs/api-reference/common/local-first/Protocol/functions/decodeRle.mdx) | - | -| [decodeSqliteValue](/docs/api-reference/common/local-first/Protocol/functions/decodeSqliteValue.mdx) | - | -| [decodeString](/docs/api-reference/common/local-first/Protocol/functions/decodeString.mdx) | - | -| [decryptAndDecodeDbChange](/docs/api-reference/common/local-first/Protocol/functions/decryptAndDecodeDbChange.mdx) | Decrypts and decodes an [EncryptedCrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx) using the provided owner's encryption key. Verifies that the embedded timestamp matches the expected timestamp to ensure message integrity. | -| [encodeAndEncryptDbChange](/docs/api-reference/common/local-first/Protocol/functions/encodeAndEncryptDbChange.mdx) | Encodes and encrypts a [DbChange](/docs/api-reference/common/local-first/Storage/variables/DbChange.mdx) using the provided owner's encryption key. Returns an encrypted binary representation as [EncryptedDbChange](/docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange.mdx). | -| [encodeFlags](/docs/api-reference/common/local-first/Protocol/functions/encodeFlags.mdx) | Encodes an array of boolean flags into a single byte. | -| [encodeLength](/docs/api-reference/common/local-first/Protocol/functions/encodeLength.mdx) | - | -| [encodeNodeId](/docs/api-reference/common/local-first/Protocol/functions/encodeNodeId.mdx) | - | -| [encodeNonNegativeInt](/docs/api-reference/common/local-first/Protocol/functions/encodeNonNegativeInt.mdx) | Encodes a non-negative integer into a variable-length integer format. It's more efficient than encoding via [encodeNumber](/docs/api-reference/common/local-first/Protocol/functions/encodeNumber.mdx). | -| [encodeNumber](/docs/api-reference/common/local-first/Protocol/functions/encodeNumber.mdx) | Evolu uses MessagePack to handle all number variants except for NonNegativeInt. For NonNegativeInt, Evolu provides more efficient encoding. | -| [encodeSqliteValue](/docs/api-reference/common/local-first/Protocol/functions/encodeSqliteValue.mdx) | - | -| [encodeString](/docs/api-reference/common/local-first/Protocol/functions/encodeString.mdx) | - | -| [pack](/docs/api-reference/common/local-first/Protocol/functions/pack.mdx) | - | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [ApplyProtocolMessageAsClientBroadcast](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientBroadcast.mdx) | Base interface for objects with a discriminant `type` property. | -| [ApplyProtocolMessageAsClientNoResponse](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientNoResponse.mdx) | Base interface for objects with a discriminant `type` property. | -| [ApplyProtocolMessageAsClientOptions](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientOptions.mdx) | - | -| [ApplyProtocolMessageAsClientResponse](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsClientResponse.mdx) | Result type for [applyProtocolMessageAsClient](/docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsClient.mdx) that distinguishes between responses to client requests and broadcast messages. | -| [ApplyProtocolMessageAsRelayOptions](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayOptions.mdx) | - | -| [ApplyProtocolMessageAsRelayResult](/docs/api-reference/common/local-first/Protocol/interfaces/ApplyProtocolMessageAsRelayResult.mdx) | Result type for [applyProtocolMessageAsRelay](/docs/api-reference/common/local-first/Protocol/functions/applyProtocolMessageAsRelay.mdx). | -| [ProtocolInvalidDataError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError.mdx) | Error for invalid or corrupted protocol message data. | -| [ProtocolMessageBuffer](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolMessageBuffer.mdx) | Mutable builder for constructing [ProtocolMessage](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) respecting size limits. | -| [ProtocolQuotaError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolQuotaError.mdx) | Error when storage or billing quota is exceeded. | -| [ProtocolSyncError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolSyncError.mdx) | Error indicating a serious relay-side synchronization failure. Clients should log this error and show a generic sync error to the user. | -| [ProtocolTimestampMismatchError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolTimestampMismatchError.mdx) | Error when embedded timestamp doesn't match expected timestamp in EncryptedDbChange. Indicates potential tampering or corruption of CRDT messages. | -| [ProtocolVersionError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolVersionError.mdx) | Represents a version mismatch in the Evolu Protocol. Occurs when the initiator and non-initiator are using incompatible protocol versions. | -| [ProtocolWriteError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteError.mdx) | Error indicating a serious relay-side write failure. Clients should log this error and show a generic sync error to the user. | -| [ProtocolWriteKeyError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteKeyError.mdx) | Error when a [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) is invalid, missing, or fails validation. | -| [TimestampsBuffer](/docs/api-reference/common/local-first/Protocol/interfaces/TimestampsBuffer.mdx) | - | -| [TimestampsRangeWithTimestampsBuffer](/docs/api-reference/common/local-first/Protocol/interfaces/TimestampsRangeWithTimestampsBuffer.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [ApplyProtocolMessageAsClientResult](/docs/api-reference/common/local-first/Protocol/type-aliases/ApplyProtocolMessageAsClientResult.mdx) | - | -| [MessageType](/docs/api-reference/common/local-first/Protocol/type-aliases/MessageType.mdx) | - | -| [ProtocolError](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolError.mdx) | - | -| [ProtocolMessage](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx) | Evolu Protocol Message. | -| [ProtocolMessageMaxSize](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessageMaxSize.mdx) | Protocol message maximum size. | -| [ProtocolMessageRangesMaxSize](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessageRangesMaxSize.mdx) | Protocol message ranges maximum size. | -| [SubscriptionFlag](/docs/api-reference/common/local-first/Protocol/type-aliases/SubscriptionFlag.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [decodeLength](/docs/api-reference/common/local-first/Protocol/variables/decodeLength.mdx) | - | -| [defaultProtocolMessageMaxSize](/docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageMaxSize.mdx) | Default [ProtocolMessageMaxSize](/docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageMaxSize.mdx) (1MB). | -| [defaultProtocolMessageRangesMaxSize](/docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageRangesMaxSize.mdx) | Default [ProtocolMessageRangesMaxSize](/docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageRangesMaxSize.mdx) (30KB). | -| [MessageType](/docs/api-reference/common/local-first/Protocol/variables/MessageType.mdx) | - | -| [ProtocolErrorCode](/docs/api-reference/common/local-first/Protocol/variables/ProtocolErrorCode.mdx) | - | -| [ProtocolMessageMaxSize](/docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageMaxSize.mdx) | Protocol message maximum size. | -| [ProtocolMessageRangesMaxSize](/docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageRangesMaxSize.mdx) | Protocol message ranges maximum size. | -| [ProtocolValueType](/docs/api-reference/common/local-first/Protocol/variables/ProtocolValueType.mdx) | - | -| [protocolVersion](/docs/api-reference/common/local-first/Protocol/variables/protocolVersion.mdx) | Evolu Protocol version. | -| [SubscriptionFlags](/docs/api-reference/common/local-first/Protocol/variables/SubscriptionFlags.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ApplyProtocolMessageAsClientResult.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ApplyProtocolMessageAsClientResult.mdx deleted file mode 100644 index ac288bda1..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ApplyProtocolMessageAsClientResult.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ApplyProtocolMessageAsClientResult - -```ts -type ApplyProtocolMessageAsClientResult = - | ApplyProtocolMessageAsClientResponse - | ApplyProtocolMessageAsClientNoResponse - | ApplyProtocolMessageAsClientBroadcast; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:919](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L919) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/MessageType.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/MessageType.mdx deleted file mode 100644 index cf38e562d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/MessageType.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / MessageType - -```ts -type MessageType = typeof MessageType[keyof typeof MessageType]; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:345](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L345) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolError.mdx deleted file mode 100644 index 96aff5c04..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolError.mdx +++ /dev/null @@ -1,14 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolError - -```ts -type ProtocolError = - | ProtocolVersionError - | ProtocolInvalidDataError - | ProtocolWriteKeyError - | ProtocolWriteError - | ProtocolSyncError - | ProtocolQuotaError - | ProtocolTimestampMismatchError; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:383](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L383) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx deleted file mode 100644 index 4ed572bb7..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessage.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolMessage - -```ts -type ProtocolMessage = Uint8Array & Brand<"ProtocolMessage">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:340](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L340) - -Evolu Protocol Message. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessageMaxSize.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessageMaxSize.mdx deleted file mode 100644 index 6394605b5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessageMaxSize.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolMessageMaxSize - -```ts -type ProtocolMessageMaxSize = number & Brand<"Int"> & Brand<"Between1000000-100000000">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:296](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L296) - -Protocol message maximum size. - -Defines the upper limit for how large a single protocol message can be. -Implementations must enforce a maximum size between 1MB and 100MB to ensure -compatibility across all Evolu implementations (the maximum size of mutation -change is hardcoded and enforced hence the maximum size can't be smaller). - -Larger maximum sizes can be configured by relays to reduce roundtrips. For -example, a dedicated relay with ample resources could configure a 100MB -maximum to minimize roundtrips for large syncs. - -Only relays can safely configure larger sizes, as clients will handle them. -Increasing this value on the client side would break compatibility with -relays that enforce smaller limits. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessageRangesMaxSize.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessageRangesMaxSize.mdx deleted file mode 100644 index 4ed605b8a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolMessageRangesMaxSize.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolMessageRangesMaxSize - -```ts -type ProtocolMessageRangesMaxSize = number & Brand<"Int"> & Brand<"Between3000-100000">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:323](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L323) - -Protocol message ranges maximum size. - -Defines the upper limit for how large the ranges section of a protocol -message can be. Implementations must enforce a maximum size between 3KB and -100KB to ensure compatibility. - -The upper bound is set to ensure ranges fit within the default 1MB -[defaultProtocolMessageMaxSize](/docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageMaxSize.mdx), maintaining compatibility between all -clients and relays. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/SubscriptionFlag.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/SubscriptionFlag.mdx deleted file mode 100644 index 44b20ef0a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/type-aliases/SubscriptionFlag.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / SubscriptionFlag - -```ts -type SubscriptionFlag = typeof SubscriptionFlags[keyof typeof SubscriptionFlags]; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:365](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L365) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/MessageType.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/MessageType.mdx deleted file mode 100644 index 5f394c35d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/MessageType.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / MessageType - -```ts -const MessageType: { - Broadcast: 2; - Request: 0; - Response: 1; -}; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:345](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L345) - -## Type Declaration - -| Name | Type | Default value | Description | Defined in | -| ------ | ------ | ------ | ------ | ------ | -| `Broadcast` | `2` | `2` | Broadcast message from non-initiator (relay) to subscribed clients. | [packages/common/src/local-first/Protocol.ts:351](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L351) | -| `Request` | `0` | `0` | Request message from initiator (client) to non-initiator (relay). | [packages/common/src/local-first/Protocol.ts:347](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L347) | -| `Response` | `1` | `1` | Response message from non-initiator (relay) to initiator (client). | [packages/common/src/local-first/Protocol.ts:349](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L349) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolErrorCode.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolErrorCode.mdx deleted file mode 100644 index 4b080d93f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolErrorCode.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolErrorCode - -```ts -const ProtocolErrorCode: { - NoError: 0; - QuotaError: 3; - SyncError: 4; - WriteError: 2; - WriteKeyError: 1; -}; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:368](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L368) - -## Type Declaration - -| Name | Type | Default value | Description | Defined in | -| ------ | ------ | ------ | ------ | ------ | -| `NoError` | `0` | `0` | - | [packages/common/src/local-first/Protocol.ts:369](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L369) | -| `QuotaError` | `3` | `3` | A code for [ProtocolQuotaError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolQuotaError.mdx). | [packages/common/src/local-first/Protocol.ts:375](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L375) | -| `SyncError` | `4` | `4` | A code for [ProtocolSyncError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolSyncError.mdx). | [packages/common/src/local-first/Protocol.ts:377](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L377) | -| `WriteError` | `2` | `2` | A code for [ProtocolWriteError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteError.mdx). | [packages/common/src/local-first/Protocol.ts:373](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L373) | -| `WriteKeyError` | `1` | `1` | A code for [ProtocolWriteKeyError](/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolWriteKeyError.mdx). | [packages/common/src/local-first/Protocol.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L371) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageMaxSize.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageMaxSize.mdx deleted file mode 100644 index 16d01a048..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageMaxSize.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolMessageMaxSize - -```ts -const ProtocolMessageMaxSize: between( - minProtocolMessageMaxSize, - maxProtocolMessageMaxSize, -)(Int); -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:296](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L296) - -Protocol message maximum size. - -Defines the upper limit for how large a single protocol message can be. -Implementations must enforce a maximum size between 1MB and 100MB to ensure -compatibility across all Evolu implementations (the maximum size of mutation -change is hardcoded and enforced hence the maximum size can't be smaller). - -Larger maximum sizes can be configured by relays to reduce roundtrips. For -example, a dedicated relay with ample resources could configure a 100MB -maximum to minimize roundtrips for large syncs. - -Only relays can safely configure larger sizes, as clients will handle them. -Increasing this value on the client side would break compatibility with -relays that enforce smaller limits. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageRangesMaxSize.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageRangesMaxSize.mdx deleted file mode 100644 index 1165beb21..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageRangesMaxSize.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolMessageRangesMaxSize - -```ts -const ProtocolMessageRangesMaxSize: between( - 3_000, - 100_000, -)(Int); -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:323](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L323) - -Protocol message ranges maximum size. - -Defines the upper limit for how large the ranges section of a protocol -message can be. Implementations must enforce a maximum size between 3KB and -100KB to ensure compatibility. - -The upper bound is set to ensure ranges fit within the default 1MB -[defaultProtocolMessageMaxSize](/docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageMaxSize.mdx), maintaining compatibility between all -clients and relays. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolValueType.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolValueType.mdx deleted file mode 100644 index 407df2d2c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/ProtocolValueType.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / ProtocolValueType - -```ts -const ProtocolValueType: { - Base64Url: number & Brand<"Int"> & Brand<"NonNegative">; - Bytes: number & Brand<"Int"> & Brand<"NonNegative">; - DateIsoWithNegativeTime: number & Brand<"Int"> & Brand<"NonNegative">; - DateIsoWithNonNegativeTime: number & Brand<"Int"> & Brand<"NonNegative">; - EmptyString: number & Brand<"Int"> & Brand<"NonNegative">; - Id: number & Brand<"Int"> & Brand<"NonNegative">; - Json: number & Brand<"Int"> & Brand<"NonNegative">; - NonNegativeInt: number & Brand<"Int"> & Brand<"NonNegative">; - Null: number & Brand<"Int"> & Brand<"NonNegative">; - Number: number & Brand<"Int"> & Brand<"NonNegative">; - String: number & Brand<"Int"> & Brand<"NonNegative">; -}; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1968](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1968) - -## Type Declaration - -| Name | Type | Defined in | -| ------ | ------ | ------ | -| `Base64Url` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1983](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1983) | -| `Bytes` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1975](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1975) | -| `DateIsoWithNegativeTime` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1991](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1991) | -| `DateIsoWithNonNegativeTime` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1990](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1990) | -| `EmptyString` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1982](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1982) | -| `Id` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1984](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1984) | -| `Json` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1985](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1985) | -| `NonNegativeInt` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1979](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1979) | -| `Null` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1974](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1974) | -| `Number` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1973](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1973) | -| `String` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | [packages/common/src/local-first/Protocol.ts:1972](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1972) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/SubscriptionFlags.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/SubscriptionFlags.mdx deleted file mode 100644 index e98d693fe..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/SubscriptionFlags.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / SubscriptionFlags - -```ts -const SubscriptionFlags: { - None: 0; - Subscribe: 1; - Unsubscribe: 2; -}; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:356](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L356) - -## Type Declaration - -| Name | Type | Default value | Description | Defined in | -| ------ | ------ | ------ | ------ | ------ | -| `None` | `0` | `0` | No subscription changes for this owner. | [packages/common/src/local-first/Protocol.ts:358](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L358) | -| `Subscribe` | `1` | `1` | Subscribe to updates for this owner. | [packages/common/src/local-first/Protocol.ts:360](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L360) | -| `Unsubscribe` | `2` | `2` | Unsubscribe from updates for this owner. | [packages/common/src/local-first/Protocol.ts:362](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L362) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/decodeLength.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/decodeLength.mdx deleted file mode 100644 index 7a283e15f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/decodeLength.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / decodeLength - -```ts -const decodeLength: (buffer: Buffer) => number & Brand<"Int"> & Brand<"NonNegative"> = decodeNonNegativeInt; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:1941](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L1941) - -Decodes a non-negative integer from a variable-length integer format. - -https://en.wikipedia.org/wiki/Variable-length_quantity - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `buffer` | [`Buffer`](/docs/api-reference/common/Buffer/interfaces/Buffer.mdx) | - -## Returns - -`number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageMaxSize.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageMaxSize.mdx deleted file mode 100644 index 434e6b15f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageMaxSize.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / defaultProtocolMessageMaxSize - -```ts -const defaultProtocolMessageMaxSize: number & Brand<"Int"> & Brand<"Between1000000-100000000">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:309](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L309) - -Default [ProtocolMessageMaxSize](/docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageMaxSize.mdx) (1MB). - -The standard size used across Evolu implementations. Relays with more -resources can configure larger sizes to reduce roundtrips. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageRangesMaxSize.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageRangesMaxSize.mdx deleted file mode 100644 index 9c716b5c5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/defaultProtocolMessageRangesMaxSize.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / defaultProtocolMessageRangesMaxSize - -```ts -const defaultProtocolMessageRangesMaxSize: number & Brand<"Int"> & Brand<"Between3000-100000">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:336](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L336) - -Default [ProtocolMessageRangesMaxSize](/docs/api-reference/common/local-first/Protocol/variables/ProtocolMessageRangesMaxSize.mdx) (30KB). - -The standard size used across Evolu implementations. Relays with more -resources can configure larger sizes to reduce roundtrips. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/protocolVersion.mdx b/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/protocolVersion.mdx deleted file mode 100644 index 7ced65b99..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Protocol/variables/protocolVersion.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) / protocolVersion - -```ts -const protocolVersion: number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/local-first/Protocol.ts:343](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Protocol.ts#L343) - -Evolu Protocol version. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/applyPatches.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/functions/applyPatches.mdx deleted file mode 100644 index a5bcbf8d4..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/applyPatches.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / applyPatches - -```ts -function applyPatches(patches: readonly Patch[], current: readonly Row[]): readonly Row[]; -``` - -Defined in: [packages/common/src/local-first/Query.ts:293](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L293) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `patches` | readonly [`Patch`](/docs/api-reference/common/local-first/Query/type-aliases/Patch.mdx)[] | -| `current` | readonly [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx)[] | - -## Returns - -readonly [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx)[] diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/createGetQueryRowsCache.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/functions/createGetQueryRowsCache.mdx deleted file mode 100644 index ce4aeae90..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/createGetQueryRowsCache.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / createGetQueryRowsCache - -```ts -function createGetQueryRowsCache(): GetQueryRowsCache; -``` - -Defined in: [packages/common/src/local-first/Query.ts:177](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L177) - -## Returns - -[`GetQueryRowsCache`](/docs/api-reference/common/local-first/Query/type-aliases/GetQueryRowsCache.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/createSubscribedQueries.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/functions/createSubscribedQueries.mdx deleted file mode 100644 index 8e51c69fd..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/createSubscribedQueries.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / createSubscribedQueries - -```ts -function createSubscribedQueries(rowsStore: Store): SubscribedQueries; -``` - -Defined in: [packages/common/src/local-first/Query.ts:136](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L136) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `rowsStore` | [`Store`](/docs/api-reference/common/Store/interfaces/Store.mdx)\<[`QueryRowsMap`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRowsMap.mdx)\> | - -## Returns - -[`SubscribedQueries`](/docs/api-reference/common/local-first/Query/interfaces/SubscribedQueries.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/deserializeQuery.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/functions/deserializeQuery.mdx deleted file mode 100644 index cbff42dd7..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/deserializeQuery.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / deserializeQuery - -```ts -function deserializeQuery(query: Query): SqliteQuery; -``` - -Defined in: [packages/common/src/local-first/Query.ts:75](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L75) - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<`R`\> | - -## Returns - -[`SqliteQuery`](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/loadQueries.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/functions/loadQueries.mdx deleted file mode 100644 index db64be073..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/loadQueries.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / loadQueries - -```ts -function loadQueries(deps: GetQueryRowsCacheDep & SqliteDep): (tabId: string & Brand<"Id">, queries: readonly Query[]) => Result; -``` - -Defined in: [packages/common/src/local-first/Query.ts:197](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L197) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`GetQueryRowsCacheDep`](/docs/api-reference/common/local-first/Query/interfaces/GetQueryRowsCacheDep.mdx) & [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - -## Returns - -```ts -(tabId: string & Brand<"Id">, queries: readonly Query[]): Result; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `tabId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> | -| `queries` | readonly [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<[`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx)\>[] | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\ diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/makePatches.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/functions/makePatches.mdx deleted file mode 100644 index 437fd8d90..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/makePatches.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / makePatches - -```ts -function makePatches(previousRows: - | readonly Row[] - | undefined, nextRows: readonly Row[]): readonly Patch[]; -``` - -Defined in: [packages/common/src/local-first/Query.ts:256](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L256) - -We detect only changes in the whole result and in-place edits. In the future, -we will add more heuristics. We will probably not implement the Myers diff -algorithm because it's faster to rerender all than to compute many detailed -patches. We will only implement logic a developer would implement manually, -if necessary. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `previousRows` | \| readonly [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx)[] \| `undefined` | -| `nextRows` | readonly [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx)[] | - -## Returns - -readonly [`Patch`](/docs/api-reference/common/local-first/Query/type-aliases/Patch.mdx)[] diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/parseSqliteJsonArray.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/functions/parseSqliteJsonArray.mdx deleted file mode 100644 index a6f13b965..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/parseSqliteJsonArray.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / parseSqliteJsonArray - -```ts -function parseSqliteJsonArray(arr: readonly T[]): readonly T[]; -``` - -Defined in: [packages/common/src/local-first/Query.ts:328](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L328) - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `arr` | readonly `T`[] | - -## Returns - -readonly `T`[] diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/serializeQuery.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/functions/serializeQuery.mdx deleted file mode 100644 index a932656f0..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/functions/serializeQuery.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / serializeQuery - -```ts -function serializeQuery(query: SqliteQuery): Query; -``` - -Defined in: [packages/common/src/local-first/Query.ts:61](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L61) - -Evolu serializes [SqliteQuery](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) into a string to be easily used as a key -and for comparison. - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`SqliteQuery`](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) | - -## Returns - -[`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<`R`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/GetQueryRowsCacheDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/GetQueryRowsCacheDep.mdx deleted file mode 100644 index 7916a9dad..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/GetQueryRowsCacheDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / GetQueryRowsCacheDep - -Defined in: [packages/common/src/local-first/Query.ts:164](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L164) - -## Properties - - - -### getQueryRowsCache - -```ts -readonly getQueryRowsCache: GetQueryRowsCache; -``` - -Defined in: [packages/common/src/local-first/Query.ts:165](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L165) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/QueryPatches.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/QueryPatches.mdx deleted file mode 100644 index c45590ffa..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/QueryPatches.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / QueryPatches - -Defined in: [packages/common/src/local-first/Query.ts:231](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L231) - -## Properties - - - -### patches - -```ts -readonly patches: readonly Patch[]; -``` - -Defined in: [packages/common/src/local-first/Query.ts:233](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L233) - -*** - - - -### query - -```ts -readonly query: Query; -``` - -Defined in: [packages/common/src/local-first/Query.ts:232](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L232) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/QueryRowsCache.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/QueryRowsCache.mdx deleted file mode 100644 index f6e5838d0..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/QueryRowsCache.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / QueryRowsCache - -Defined in: [packages/common/src/local-first/Query.ts:170](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L170) - -## Properties - - - -### get() - -```ts -readonly get: () => QueryRowsMap; -``` - -Defined in: [packages/common/src/local-first/Query.ts:174](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L174) - -#### Returns - -[`QueryRowsMap`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRowsMap.mdx) - -*** - - - -### set() - -```ts -readonly set: (queriesRows: readonly readonly [Query, readonly SqliteRow[]][]) => void; -``` - -Defined in: [packages/common/src/local-first/Query.ts:171](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L171) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `queriesRows` | readonly readonly \[[`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<[`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx)\>, readonly [`SqliteRow`](/docs/api-reference/common/Sqlite/type-aliases/SqliteRow.mdx)[]\][] | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/ReplaceAllPatch.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/ReplaceAllPatch.mdx deleted file mode 100644 index 7b3daae02..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/ReplaceAllPatch.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / ReplaceAllPatch - -Defined in: [packages/common/src/local-first/Query.ts:238](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L238) - -## Properties - - - -### op - -```ts -readonly op: "replaceAll"; -``` - -Defined in: [packages/common/src/local-first/Query.ts:239](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L239) - -*** - - - -### value - -```ts -readonly value: readonly Row[]; -``` - -Defined in: [packages/common/src/local-first/Query.ts:240](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L240) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/ReplaceAtPatch.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/ReplaceAtPatch.mdx deleted file mode 100644 index 4d00f168c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/ReplaceAtPatch.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / ReplaceAtPatch - -Defined in: [packages/common/src/local-first/Query.ts:243](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L243) - -## Properties - - - -### index - -```ts -readonly index: number; -``` - -Defined in: [packages/common/src/local-first/Query.ts:245](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L245) - -*** - - - -### op - -```ts -readonly op: "replaceAt"; -``` - -Defined in: [packages/common/src/local-first/Query.ts:244](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L244) - -*** - - - -### value - -```ts -readonly value: Row; -``` - -Defined in: [packages/common/src/local-first/Query.ts:246](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L246) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/Row.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/Row.mdx deleted file mode 100644 index fb3c05db9..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/Row.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / Row - -Defined in: [packages/common/src/local-first/Query.ts:101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L101) - -## Indexable - -```ts -[key: string]: - | string - | number - | Uint8Array - | Row - | readonly Row[] - | null -``` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/SubscribedQueries.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/SubscribedQueries.mdx deleted file mode 100644 index f52d2d323..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/interfaces/SubscribedQueries.mdx +++ /dev/null @@ -1,75 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / SubscribedQueries - -Defined in: [packages/common/src/local-first/Query.ts:128](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L128) - -## Properties - - - -### get() - -```ts -get: () => readonly Query[]; -``` - -Defined in: [packages/common/src/local-first/Query.ts:133](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L133) - -#### Returns - -readonly [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<[`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx)\>[] - -*** - - - -### has() - -```ts -has: (query: Query) => boolean; -``` - -Defined in: [packages/common/src/local-first/Query.ts:131](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L131) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) | - -#### Returns - -`boolean` - -*** - - - -### subscribe() - -```ts -subscribe: (query: Query) => (listener: Listener) => Unsubscribe; -``` - -Defined in: [packages/common/src/local-first/Query.ts:129](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L129) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) | - -#### Returns - -```ts -(listener: Listener): Unsubscribe; -``` - -##### Parameters - -| Parameter | Type | -| ------ | ------ | -| `listener` | [`Listener`](/docs/api-reference/common/Listeners/type-aliases/Listener.mdx) | - -##### Returns - -[`Unsubscribe`](/docs/api-reference/common/Listeners/type-aliases/Unsubscribe.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/page.mdx deleted file mode 100644 index e990b14d1..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/page.mdx +++ /dev/null @@ -1,49 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Query - -Query execution and caching. - -## Functions - -| Function | Description | -| ------ | ------ | -| [applyPatches](/docs/api-reference/common/local-first/Query/functions/applyPatches.mdx) | - | -| [createGetQueryRowsCache](/docs/api-reference/common/local-first/Query/functions/createGetQueryRowsCache.mdx) | - | -| [createSubscribedQueries](/docs/api-reference/common/local-first/Query/functions/createSubscribedQueries.mdx) | - | -| [deserializeQuery](/docs/api-reference/common/local-first/Query/functions/deserializeQuery.mdx) | - | -| [loadQueries](/docs/api-reference/common/local-first/Query/functions/loadQueries.mdx) | - | -| [makePatches](/docs/api-reference/common/local-first/Query/functions/makePatches.mdx) | We detect only changes in the whole result and in-place edits. In the future, we will add more heuristics. We will probably not implement the Myers diff algorithm because it's faster to rerender all than to compute many detailed patches. We will only implement logic a developer would implement manually, if necessary. | -| [parseSqliteJsonArray](/docs/api-reference/common/local-first/Query/functions/parseSqliteJsonArray.mdx) | - | -| [serializeQuery](/docs/api-reference/common/local-first/Query/functions/serializeQuery.mdx) | Evolu serializes [SqliteQuery](/docs/api-reference/common/Sqlite/interfaces/SqliteQuery.mdx) into a string to be easily used as a key and for comparison. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [GetQueryRowsCacheDep](/docs/api-reference/common/local-first/Query/interfaces/GetQueryRowsCacheDep.mdx) | - | -| [QueryPatches](/docs/api-reference/common/local-first/Query/interfaces/QueryPatches.mdx) | - | -| [QueryRowsCache](/docs/api-reference/common/local-first/Query/interfaces/QueryRowsCache.mdx) | - | -| [ReplaceAllPatch](/docs/api-reference/common/local-first/Query/interfaces/ReplaceAllPatch.mdx) | - | -| [ReplaceAtPatch](/docs/api-reference/common/local-first/Query/interfaces/ReplaceAtPatch.mdx) | - | -| [Row](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - | -| [SubscribedQueries](/docs/api-reference/common/local-first/Query/interfaces/SubscribedQueries.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [GetQueryRowsCache](/docs/api-reference/common/local-first/Query/type-aliases/GetQueryRowsCache.mdx) | - | -| [InferRow](/docs/api-reference/common/local-first/Query/type-aliases/InferRow.mdx) | - | -| [Patch](/docs/api-reference/common/local-first/Query/type-aliases/Patch.mdx) | - | -| [Queries](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx) | - | -| [QueriesToQueryRows](/docs/api-reference/common/local-first/Query/type-aliases/QueriesToQueryRows.mdx) | - | -| [QueriesToQueryRowsPromises](/docs/api-reference/common/local-first/Query/type-aliases/QueriesToQueryRowsPromises.mdx) | - | -| [Query](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) | A type-safe SQL query. | -| [QueryRows](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx) | Rows returned by a query. | -| [QueryRowsMap](/docs/api-reference/common/local-first/Query/type-aliases/QueryRowsMap.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [emptyRows](/docs/api-reference/common/local-first/Query/variables/emptyRows.mdx) | - | -| [kyselyJsonIdentifier](/docs/api-reference/common/local-first/Query/variables/kyselyJsonIdentifier.mdx) | A unique identifier prepended to JSON-encoded strings. This allows safe detection and parsing of only those columns that require JSON.parse. | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/GetQueryRowsCache.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/GetQueryRowsCache.mdx deleted file mode 100644 index 4089b04ec..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/GetQueryRowsCache.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / GetQueryRowsCache - -```ts -type GetQueryRowsCache = (tabId: Id) => QueryRowsCache; -``` - -Defined in: [packages/common/src/local-first/Query.ts:168](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L168) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `tabId` | [`Id`](/docs/api-reference/common/Type/type-aliases/Id.mdx) | - -## Returns - -[`QueryRowsCache`](/docs/api-reference/common/local-first/Query/interfaces/QueryRowsCache.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/InferRow.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/InferRow.mdx deleted file mode 100644 index 8255fb27c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/InferRow.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / InferRow - -```ts -type InferRow = T extends Query ? R : never; -``` - -Defined in: [packages/common/src/local-first/Query.ts:99](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L99) - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/Patch.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/Patch.mdx deleted file mode 100644 index 23755cf5e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/Patch.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / Patch - -```ts -type Patch = - | ReplaceAllPatch - | ReplaceAtPatch; -``` - -Defined in: [packages/common/src/local-first/Query.ts:236](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L236) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx deleted file mode 100644 index 838edd8a8..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / Queries - -```ts -type Queries = ReadonlyArray>; -``` - -Defined in: [packages/common/src/local-first/Query.ts:116](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L116) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueriesToQueryRows.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueriesToQueryRows.mdx deleted file mode 100644 index 0b02b39f3..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueriesToQueryRows.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / QueriesToQueryRows - -```ts -type QueriesToQueryRows = { [P in keyof Q]: Q[P] extends Query ? QueryRows : never }; -``` - -Defined in: [packages/common/src/local-first/Query.ts:118](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L118) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Q` *extends* [`Queries`](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueriesToQueryRowsPromises.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueriesToQueryRowsPromises.mdx deleted file mode 100644 index 351440123..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueriesToQueryRowsPromises.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / QueriesToQueryRowsPromises - -```ts -type QueriesToQueryRowsPromises = { [P in keyof Q]: Q[P] extends Query ? Promise> : never }; -``` - -Defined in: [packages/common/src/local-first/Query.ts:122](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L122) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Q` *extends* [`Queries`](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/Query.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/Query.mdx deleted file mode 100644 index 6aa6aeb16..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/Query.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / Query - -```ts -type Query = string & Brand<"Query"> & { - Row: R; -}; -``` - -Defined in: [packages/common/src/local-first/Query.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L39) - -A type-safe SQL query. - -### Example - -```ts -const createQuery = createQueryBuilder(Schema); -const allTodos = createQuery((db) => db.selectFrom("todo").selectAll()); -type AllTodosRow = typeof allTodos.Row; -``` - -## Type Declaration - -| Name | Type | Description | Defined in | -| ------ | ------ | ------ | ------ | -| `Row` | `R` | A shorthand for [InferRow](/docs/api-reference/common/local-first/Query/type-aliases/InferRow.mdx). ### Example `const createQuery = createQueryBuilder(Schema); const allTodos = createQuery((db) => db.selectFrom("todo").selectAll(), ); type AllTodosRow = typeof allTodos.Row;` | [packages/common/src/local-first/Query.ts:54](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L54) | - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx deleted file mode 100644 index fc882f0e0..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / QueryRows - -```ts -type QueryRows = ReadonlyArray>>; -``` - -Defined in: [packages/common/src/local-first/Query.ts:112](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L112) - -Rows returned by a query. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueryRowsMap.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueryRowsMap.mdx deleted file mode 100644 index 37c7f292f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/type-aliases/QueryRowsMap.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / QueryRowsMap - -```ts -type QueryRowsMap = ReadonlyMap>; -``` - -Defined in: [packages/common/src/local-first/Query.ts:126](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L126) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/variables/emptyRows.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/variables/emptyRows.mdx deleted file mode 100644 index 7aed74d9e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/variables/emptyRows.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / emptyRows - -```ts -const emptyRows: ReadonlyArray = []; -``` - -Defined in: [packages/common/src/local-first/Query.ts:109](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L109) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Query/variables/kyselyJsonIdentifier.mdx b/.generated/evolu-docs/api-reference/common/local-first/Query/variables/kyselyJsonIdentifier.mdx deleted file mode 100644 index 421026295..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Query/variables/kyselyJsonIdentifier.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) / kyselyJsonIdentifier - -```ts -const kyselyJsonIdentifier: string & Brand<"Id">; -``` - -Defined in: [packages/common/src/local-first/Query.ts:324](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Query.ts#L324) - -A unique identifier prepended to JSON-encoded strings. This allows safe -detection and parsing of only those columns that require JSON.parse. - -The identifier is a cryptographically random Evolu Id, ensuring uniqueness -and preventing malicious actors from inserting fake data that could be -misinterpreted as JSON by the application. - -Note: The same queries created by different browser tabs will have different -identifiers and thus be considered different and cached separately. This is -usually not a big deal, but if needed, the DB cache can be optimized by -passing the kyselyJsonIdentifier into the DB worker during initialization, -allowing queries to be grouped and recognized across tabs or sessions. - -See: https://github.com/kysely-org/kysely/issues/1372#issuecomment-2702773948 diff --git a/.generated/evolu-docs/api-reference/common/local-first/Relay/functions/createRelaySqliteStorage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Relay/functions/createRelaySqliteStorage.mdx deleted file mode 100644 index 157de186a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Relay/functions/createRelaySqliteStorage.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Relay](/docs/api-reference/common/local-first/Relay/page.mdx) / createRelaySqliteStorage - -```ts -function createRelaySqliteStorage(deps: RandomDep & SqliteDep & TimingSafeEqualDep): (config: CreateBaseSqliteStorageConfig) => Storage; -``` - -Defined in: [packages/common/src/local-first/Relay.ts:112](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Relay.ts#L112) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomDep`](/docs/api-reference/common/Random/interfaces/RandomDep.mdx) & [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) & [`TimingSafeEqualDep`](/docs/api-reference/common/Crypto/interfaces/TimingSafeEqualDep.mdx) | - -## Returns - -```ts -(config: CreateBaseSqliteStorageConfig): Storage; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | [`CreateBaseSqliteStorageConfig`](/docs/api-reference/common/local-first/Storage/interfaces/CreateBaseSqliteStorageConfig.mdx) | - -### Returns - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Relay/functions/createRelayStorageTables.mdx b/.generated/evolu-docs/api-reference/common/local-first/Relay/functions/createRelayStorageTables.mdx deleted file mode 100644 index 5a9492202..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Relay/functions/createRelayStorageTables.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Relay](/docs/api-reference/common/local-first/Relay/page.mdx) / createRelayStorageTables - -```ts -function createRelayStorageTables(deps: SqliteDep): Result; -``` - -Defined in: [packages/common/src/local-first/Relay.ts:345](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Relay.ts#L345) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - -## Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Relay/interfaces/Relay.mdx b/.generated/evolu-docs/api-reference/common/local-first/Relay/interfaces/Relay.mdx deleted file mode 100644 index 3195a0aa8..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Relay/interfaces/Relay.mdx +++ /dev/null @@ -1,57 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Relay](/docs/api-reference/common/local-first/Relay/page.mdx) / Relay - -Defined in: [packages/common/src/local-first/Relay.ts:109](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Relay.ts#L109) - -A completely interchangeable server for syncing and backing up encrypted data -between Evolu clients. - -Unlike traditional servers, relays are blind by design—they transmit -encrypted data without understanding its shape or meaning. This enables true -decentralization and infinite horizontal scalability with minimal -infrastructure. - -## Extends - -- [`AsyncDisposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Methods - - - -### \[asyncDispose\]() - -#### Call Signature - -```ts -asyncDispose: PromiseLike; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:40 - -##### Returns - -[`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<`void`\> - -##### Inherited from - -```ts -AsyncDisposable.[asyncDispose] -``` - -#### Call Signature - -```ts -asyncDispose: PromiseLike; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:13 - -##### Returns - -[`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<`void`\> - -##### Inherited from - -```ts -AsyncDisposable.[asyncDispose] -``` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx b/.generated/evolu-docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx deleted file mode 100644 index 665db9b5d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx +++ /dev/null @@ -1,146 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Relay](/docs/api-reference/common/local-first/Relay/page.mdx) / RelayConfig - -Defined in: [packages/common/src/local-first/Relay.ts:45](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Relay.ts#L45) - -## Extends - -- [`StorageConfig`](/docs/api-reference/common/local-first/Storage/interfaces/StorageConfig.mdx) - -## Extended by - -- [`NodeJsRelayConfig`](/docs/api-reference/nodejs/interfaces/NodeJsRelayConfig.mdx) - -## Properties - - - -### isOwnerAllowed()? - -```ts -readonly optional isOwnerAllowed: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">) => Awaitable; -``` - -Defined in: [packages/common/src/local-first/Relay.ts:97](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Relay.ts#L97) - -Optional callback to check if an [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) is allowed to access the -relay. If this callback is not provided, all owners are allowed. - -The callback receives the [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) and returns a [Awaitable](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx) -boolean: `true` to allow access, or `false` to deny. - -The callback can be synchronous (for SQLite or in-memory checks) or -asynchronous (for calling remote APIs). - -The callback returns a boolean rather than an error type because error -handling and logging are the responsibility of the callback -implementation. - -OwnerId is used rather than short-lived tokens because this only controls -relay access, not write permissions. Since all data is encrypted on the -relay, OwnerId exposure is safe. - -Owners specify which relays to connect to via `OwnerTransport`. In -WebSocket-based implementations, this check occurs before accepting the -connection, with the OwnerId typically extracted from the URL Path (e.g., -`ws://localhost:4000/`). The relay requires the URL to be in the -correct format for OwnerId extraction. - -### Example - -```ts -// Client -const transport = createOwnerWebSocketTransport({ - url: "wss://relay.evolu.dev", - ownerId: owner.id, -}); - -const evolu = createEvolu(deps)(Schema, { - transports: [transport], -}); - -// Relay -isOwnerAllowed: (ownerId) => - Promise.resolve(ownerId === "6jy_2F4RT5qqeLgJ14_dnQ"), -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | - -#### Returns - -[`Awaitable`](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx)\<`boolean`\> - -*** - - - -### isOwnerWithinQuota() - -```ts -readonly isOwnerWithinQuota: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">, requiredBytes: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">) => Awaitable; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:77](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L77) - -Callback called before an attempt to write, to check if an [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) -has sufficient quota for the write. - -The callback receives the [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) and the total bytes that would be -stored after the write (current stored bytes plus incoming bytes), and -returns a [Awaitable](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx) boolean: `true` to allow the write, or `false` -to deny it due to quota limits. - -The callback can be synchronous (for SQLite or in-memory checks) or -asynchronous (for calling remote APIs). - -The callback returns a boolean rather than an error because error handling -and logging are the responsibility of the callback implementation. - -### Example - -```ts -// Client -// evolu.subscribeError - -// Relay -isOwnerWithinQuota: (ownerId, requiredBytes) => { - console.log(ownerId, requiredBytes); - // Check error via evolu.subscribeError - return true; -}; -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | -| `requiredBytes` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> | - -#### Returns - -[`Awaitable`](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx)\<`boolean`\> - -#### Inherited from - -[`StorageConfig`](/docs/api-reference/common/local-first/Storage/interfaces/StorageConfig.mdx).[`isOwnerWithinQuota`](/docs/api-reference/common/local-first/Storage/interfaces/StorageConfig.mdx#isownerwithinquota) - -*** - - - -### name? - -```ts -readonly optional name: string & Brand<"UrlSafeString"> & Brand<"SimpleName">; -``` - -Defined in: [packages/common/src/local-first/Relay.ts:52](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Relay.ts#L52) - -The relay name. - -Implementations can use this for identification purposes (e.g., database -file name, logging). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Relay/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Relay/page.mdx deleted file mode 100644 index d124f973d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Relay/page.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Relay - -Relay server for data synchronization. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createRelaySqliteStorage](/docs/api-reference/common/local-first/Relay/functions/createRelaySqliteStorage.mdx) | - | -| [createRelayStorageTables](/docs/api-reference/common/local-first/Relay/functions/createRelayStorageTables.mdx) | - | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Relay](/docs/api-reference/common/local-first/Relay/interfaces/Relay.mdx) | A completely interchangeable server for syncing and backing up encrypted data between Evolu clients. | -| [RelayConfig](/docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/createQueryBuilder.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/createQueryBuilder.mdx deleted file mode 100644 index dd3b47548..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/createQueryBuilder.mdx +++ /dev/null @@ -1,45 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / createQueryBuilder - -```ts -function createQueryBuilder(_schema: S): CreateQuery; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:433](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L433) - -Creates a query builder from a [EvoluSchema](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx). - -### Example - -```ts -const Schema = { - todo: { - id: id("Todo"), - title: NonEmptyString100, - isCompleted: nullOr(SqliteBoolean), - }, -}; - -// Create a typed query builder (once per schema) -const createQuery = createQueryBuilder(Schema); - -// Use it for all queries -const todosQuery = createQuery((db) => - db.selectFrom("todo").select(["id", "title", "isCompleted"]), -); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* `Readonly`\<`Record`\<`string`, `Readonly`\<`Record`\<`string`, [`AnyStandardSchemaV1`](/docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx)\>\>\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `_schema` | `S` | - -## Returns - -[`CreateQuery`](/docs/api-reference/common/local-first/Schema/type-aliases/CreateQuery.mdx)\<`S`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/ensureDbSchema.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/ensureDbSchema.mdx deleted file mode 100644 index 8e4314128..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/ensureDbSchema.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / ensureDbSchema - -```ts -function ensureDbSchema(deps: SqliteDep): (newSchema: DbSchema, currentSchema?: DbSchema) => Result; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:512](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L512) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - -## Returns - -```ts -(newSchema: DbSchema, currentSchema?: DbSchema): Result; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `newSchema` | [`DbSchema`](/docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx) | -| `currentSchema?` | [`DbSchema`](/docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx) | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/evoluSchemaToDbSchema.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/evoluSchemaToDbSchema.mdx deleted file mode 100644 index 1b878f827..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/evoluSchemaToDbSchema.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / evoluSchemaToDbSchema - -```ts -function evoluSchemaToDbSchema(schema: EvoluSchema, indexesConfig?: IndexesConfig): DbSchema; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:388](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L388) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `schema` | [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | -| `indexesConfig?` | [`IndexesConfig`](/docs/api-reference/common/local-first/Schema/type-aliases/IndexesConfig.mdx) | - -## Returns - -[`DbSchema`](/docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/getDbSchema.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/getDbSchema.mdx deleted file mode 100644 index b32e11cd1..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/functions/getDbSchema.mdx +++ /dev/null @@ -1,36 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / getDbSchema - -```ts -function getDbSchema(deps: SqliteDep): (__namedParameters: { - allIndexes?: boolean; -}) => Result; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:448](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L448) - -Get the current database schema by reading SQLite metadata. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - -## Returns - -```ts -(__namedParameters?: { - allIndexes?: boolean; -}): Result; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `__namedParameters` | \{ `allIndexes?`: `boolean`; \} | -| `__namedParameters.allIndexes?` | `boolean` | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`DbSchema`](/docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx), [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/DbIndex.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/DbIndex.mdx deleted file mode 100644 index dcff8b985..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/DbIndex.mdx +++ /dev/null @@ -1,50 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / DbIndex - -Defined in: [packages/common/src/local-first/Schema.ts:293](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L293) - -Extracts the type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const User = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Use interface for objects. TypeScript displays the interface name -// instead of expanding all properties. -interface User extends InferType {} -``` - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`DbIndex`](/docs/api-reference/common/local-first/Schema/variables/DbIndex.mdx)\> - -## Properties - - - -### name - -```ts -name: string; -``` - -#### Inherited from - -[`DbIndex`](/docs/api-reference/common/local-first/Schema/interfaces/DbIndex.mdx).[`name`](/docs/api-reference/common/local-first/Schema/interfaces/DbIndex.mdx#name) - -*** - - - -### sql - -```ts -sql: string; -``` - -#### Inherited from - -[`DbIndex`](/docs/api-reference/common/local-first/Schema/interfaces/DbIndex.mdx).[`sql`](/docs/api-reference/common/local-first/Schema/interfaces/DbIndex.mdx#sql) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx deleted file mode 100644 index 95c990d1b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx +++ /dev/null @@ -1,53 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / DbSchema - -Defined in: [packages/common/src/local-first/Schema.ts:296](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L296) - -Extracts the type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). - -### Example - -```ts -const User = object({ - name: NonEmptyTrimmedString100, - age: optional(PositiveInt), -}); - -// Use interface for objects. TypeScript displays the interface name -// instead of expanding all properties. -interface User extends InferType {} -``` - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`DbSchema`](/docs/api-reference/common/local-first/Schema/variables/DbSchema.mdx)\> - -## Properties - - - -### indexes - -```ts -indexes: readonly Readonly<{ - name: string; - sql: string; -}>[]; -``` - -#### Inherited from - -[`DbSchema`](/docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx).[`indexes`](/docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx#indexes) - -*** - - - -### tables - -```ts -tables: Readonly>>; -``` - -#### Inherited from - -[`DbSchema`](/docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx).[`tables`](/docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx#tables) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/DbSchemaDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/DbSchemaDep.mdx deleted file mode 100644 index 0c703d5dd..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/DbSchemaDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / DbSchemaDep - -Defined in: [packages/common/src/local-first/Schema.ts:304](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L304) - -## Properties - - - -### dbSchema - -```ts -readonly dbSchema: DbSchema; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:305](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L305) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx deleted file mode 100644 index e971b9156..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx +++ /dev/null @@ -1,94 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / MutationChange - -Defined in: [packages/common/src/local-first/Schema.ts:243](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L243) - -A DbChange is a change to a table row. Together with a unique -[Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx), it forms a [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx). - -## Extends - -- [`DbChange`](/docs/api-reference/common/local-first/Storage/interfaces/DbChange.mdx) - -## Properties - - - -### id - -```ts -id: string & Brand<"Id">; -``` - -#### Inherited from - -[`RunnerEvent`](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx).[`id`](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx#id) - -*** - - - -### isDelete - -```ts -isDelete: boolean | null; -``` - -#### Inherited from - -[`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx).[`isDelete`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx#isdelete) - -*** - - - -### isInsert - -```ts -isInsert: boolean; -``` - -#### Inherited from - -[`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx).[`isInsert`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx#isinsert) - -*** - - - -### ownerId? - -```ts -readonly optional ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:245](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L245) - -Owner of the change. If undefined, the change belongs to the AppOwner. - -*** - - - -### table - -```ts -table: string; -``` - -#### Inherited from - -[`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx).[`table`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx#table) - -*** - - - -### values - -```ts -values: Readonly | null>> & Brand<"ValidDbChangeValues">; -``` - -#### Inherited from - -[`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx).[`values`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx#values) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/MutationOptions.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/MutationOptions.mdx deleted file mode 100644 index 49fa23920..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/MutationOptions.mdx +++ /dev/null @@ -1,65 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / MutationOptions - -Defined in: [packages/common/src/local-first/Schema.ts:201](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L201) - -## Properties - - - -### onComplete()? - -```ts -readonly optional onComplete: () => void; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:207](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L207) - -Called after the mutation is completed and the local state is updated. -Useful for triggering side effects (e.g., notifications, UI updates) after -insert, update, or upsert. - -#### Returns - -`void` - -*** - - - -### ownerId? - -```ts -readonly optional ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:240](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L240) - -Specifies the owner ID for this mutation. If omitted, the default -[AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) is used. - -The owner must be used with `evolu.useOwner()` to enable sync. Mutations -with unused owners are stored locally but not synced until the owner is -used. - -### Example - -```ts -// Partition your own data by project (derived from your AppOwner) -const projectOwner = deriveShardOwner(appOwner, [ - "project", - projectId, -]); -evolu.insert( - "task", - { title: "Task 1" }, - { ownerId: projectOwner.id }, -); - -// Collaborative data (independent owner shared with others) -const sharedOwner = createSharedOwner(sharedSecret); -evolu.insert( - "comment", - { text: "Hello" }, - { ownerId: sharedOwner.id }, -); -``` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx deleted file mode 100644 index 00557794b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx +++ /dev/null @@ -1,71 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / SystemColumns - -Defined in: [packages/common/src/local-first/Schema.ts:163](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L163) - -System columns that are implicitly defined by Evolu. - -- `createdAt`: Set by Evolu on row creation, derived from Timestamp. -- `updatedAt`: Set by Evolu on every row change, derived from Timestamp. -- `isDeleted`: Soft delete flag created by Evolu and used by the developer to - mark rows as deleted. -- `ownerId`: Represents ownership and logically partitions the database. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`SystemColumns`](/docs/api-reference/common/local-first/Schema/variables/SystemColumns-1.mdx)\> - -## Properties - - - -### createdAt - -```ts -createdAt: string & Brand<"DateIso">; -``` - -#### Inherited from - -[`SystemColumns`](/docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx).[`createdAt`](/docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx#createdat) - -*** - - - -### isDeleted - -```ts -isDeleted: 0 | 1 | null; -``` - -#### Inherited from - -[`SystemColumns`](/docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx).[`isDeleted`](/docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx#isdeleted) - -*** - - - -### ownerId - -```ts -ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -#### Inherited from - -[`SystemColumns`](/docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx).[`ownerId`](/docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx#ownerid) - -*** - - - -### updatedAt - -```ts -updatedAt: string & Brand<"DateIso">; -``` - -#### Inherited from - -[`SystemColumns`](/docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx).[`updatedAt`](/docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx#updatedat) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/page.mdx deleted file mode 100644 index 69e529ed5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/page.mdx +++ /dev/null @@ -1,64 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Schema - -Database schema definition and validation. - -## Utilities - -| Interface | Description | -| ------ | ------ | -| [DbIndex](/docs/api-reference/common/local-first/Schema/interfaces/DbIndex.mdx) | Extracts the type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | -| [DbSchema](/docs/api-reference/common/local-first/Schema/interfaces/DbSchema.mdx) | Extracts the type from a [Type](/docs/api-reference/common/Type/interfaces/Type.mdx). | - -## Functions - -| Function | Description | -| ------ | ------ | -| [createQueryBuilder](/docs/api-reference/common/local-first/Schema/functions/createQueryBuilder.mdx) | Creates a query builder from a [EvoluSchema](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx). | -| [ensureDbSchema](/docs/api-reference/common/local-first/Schema/functions/ensureDbSchema.mdx) | - | -| [evoluSchemaToDbSchema](/docs/api-reference/common/local-first/Schema/functions/evoluSchemaToDbSchema.mdx) | - | -| [getDbSchema](/docs/api-reference/common/local-first/Schema/functions/getDbSchema.mdx) | Get the current database schema by reading SQLite metadata. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [DbSchemaDep](/docs/api-reference/common/local-first/Schema/interfaces/DbSchemaDep.mdx) | - | -| [MutationChange](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx) | A DbChange is a change to a table row. Together with a unique [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx), it forms a [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx). | -| [MutationOptions](/docs/api-reference/common/local-first/Schema/interfaces/MutationOptions.mdx) | - | -| [SystemColumns](/docs/api-reference/common/local-first/Schema/interfaces/SystemColumns.mdx) | System columns that are implicitly defined by Evolu. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [AnyStandardSchemaV1](/docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx) | Any [StandardSchemaV1](/docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx). | -| [CreateQuery](/docs/api-reference/common/local-first/Schema/type-aliases/CreateQuery.mdx) | - | -| [EvoluSchema](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | Defines the schema of an Evolu database. | -| [IndexesConfig](/docs/api-reference/common/local-first/Schema/type-aliases/IndexesConfig.mdx) | - | -| [InsertValues](/docs/api-reference/common/local-first/Schema/type-aliases/InsertValues.mdx) | Insert values: `id` omitted (auto-generated), nullable columns optional, non-nullable columns required. | -| [Mutation](/docs/api-reference/common/local-first/Schema/type-aliases/Mutation.mdx) | Mutation function type. Accepts already-validated values — validation is the caller's responsibility using any Standard Schema library (Evolu Type, Zod, Valibot, ArkType, etc.). | -| [MutationKind](/docs/api-reference/common/local-first/Schema/type-aliases/MutationKind.mdx) | - | -| [MutationValues](/docs/api-reference/common/local-first/Schema/type-aliases/MutationValues.mdx) | Derives the expected values type for a mutation from a table's column schemas and a [MutationKind](/docs/api-reference/common/local-first/Schema/type-aliases/MutationKind.mdx). | -| [NullableColumnsToOptional](/docs/api-reference/common/local-first/Schema/type-aliases/NullableColumnsToOptional.mdx) | Makes columns whose output type includes `null` optional. | -| [OptionalColumnKeys](/docs/api-reference/common/local-first/Schema/type-aliases/OptionalColumnKeys.mdx) | - | -| [RequiredColumnKeys](/docs/api-reference/common/local-first/Schema/type-aliases/RequiredColumnKeys.mdx) | - | -| [SchemaValidationError](/docs/api-reference/common/local-first/Schema/type-aliases/SchemaValidationError.mdx) | Schema validation error that shows clear, readable messages | -| [TableSchema](/docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx) | A table schema: column names mapped to Standard Schema validators. | -| [UpdateValues](/docs/api-reference/common/local-first/Schema/type-aliases/UpdateValues.mdx) | Update values: `id` required, all other columns optional. Includes `isDeleted` for soft deletes. | -| [UpsertValues](/docs/api-reference/common/local-first/Schema/type-aliases/UpsertValues.mdx) | Upsert values: `id` required, nullable columns optional, non-nullable columns required. Includes `isDeleted` for soft deletes. | -| [ValidateColumnTypes](/docs/api-reference/common/local-first/Schema/type-aliases/ValidateColumnTypes.mdx) | - | -| [ValidateIdColumnType](/docs/api-reference/common/local-first/Schema/type-aliases/ValidateIdColumnType.mdx) | - | -| [ValidateNoSystemColumns](/docs/api-reference/common/local-first/Schema/type-aliases/ValidateNoSystemColumns.mdx) | - | -| [ValidateSchema](/docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchema.mdx) | Validates an [EvoluSchema](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) at compile time, returning the first error found as a readable string literal type. This approach provides much clearer and more actionable TypeScript errors than the default, which are often hard to read. | -| [ValidateSchemaHasId](/docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchemaHasId.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [DbIndex](/docs/api-reference/common/local-first/Schema/variables/DbIndex.mdx) | - | -| [DbSchema](/docs/api-reference/common/local-first/Schema/variables/DbSchema.mdx) | - | -| [kysely](/docs/api-reference/common/local-first/Schema/variables/kysely.mdx) | - | -| [systemColumns](/docs/api-reference/common/local-first/Schema/variables/systemColumns.mdx) | - | -| [SystemColumns](/docs/api-reference/common/local-first/Schema/variables/SystemColumns-1.mdx) | System columns that are implicitly defined by Evolu. | -| [systemColumnsWithId](/docs/api-reference/common/local-first/Schema/variables/systemColumnsWithId.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx deleted file mode 100644 index adcdc1e24..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / AnyStandardSchemaV1 - -```ts -type AnyStandardSchemaV1 = StandardSchemaV1; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:48](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L48) - -Any [StandardSchemaV1](/docs/api-reference/common/Type/interfaces/StandardSchemaV1.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/CreateQuery.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/CreateQuery.mdx deleted file mode 100644 index f1c08d45a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/CreateQuery.mdx +++ /dev/null @@ -1,45 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / CreateQuery - -```ts -type CreateQuery = (queryCallback: (db: Pick : InferOutput<(...)> | null } & SystemColumns } & { - evolu_history: { - column: string; - id: IdBytes; - table: keyof S; - timestamp: TimestampBytes; - value: SqliteValue; - }; - evolu_message_quarantine: { - column: string; - id: IdBytes; - table: string; - timestamp: TimestampBytes; - value: SqliteValue; - }; -}>, "selectFrom" | "fn" | "with" | "withRecursive">) => Kysely.SelectQueryBuilder, options?: SqliteQueryOptions) => Query>; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:121](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L121) - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `queryCallback` | (`db`: `Pick`\<`Kysely.Kysely`\<\{ \[Table in keyof S\]: \{ readonly \[Column in keyof S\[Table\]\]: Column extends "id" ? InferOutput\<(...)\[(...)\]\> : InferOutput\<(...)\> \| null \} & SystemColumns \} & \{ `evolu_history`: \{ `column`: `string`; `id`: [`IdBytes`](/docs/api-reference/common/Type/type-aliases/IdBytes.mdx); `table`: keyof `S`; `timestamp`: [`TimestampBytes`](/docs/api-reference/common/local-first/Timestamp/type-aliases/TimestampBytes.mdx); `value`: [`SqliteValue`](/docs/api-reference/common/Sqlite/type-aliases/SqliteValue.mdx); \}; `evolu_message_quarantine`: \{ `column`: `string`; `id`: [`IdBytes`](/docs/api-reference/common/Type/type-aliases/IdBytes.mdx); `table`: `string`; `timestamp`: [`TimestampBytes`](/docs/api-reference/common/local-first/Timestamp/type-aliases/TimestampBytes.mdx); `value`: [`SqliteValue`](/docs/api-reference/common/Sqlite/type-aliases/SqliteValue.mdx); \}; \}\>, `"selectFrom"` \| `"fn"` \| `"with"` \| `"withRecursive"`\>) => `Kysely.SelectQueryBuilder`\<`any`, `any`, `R`\> | -| `options?` | [`SqliteQueryOptions`](/docs/api-reference/common/Sqlite/interfaces/SqliteQueryOptions.mdx) | - -## Returns - -[`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<[`Simplify`](/docs/api-reference/common/Types/type-aliases/Simplify.mdx)\<`R`\>\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx deleted file mode 100644 index 91751ccba..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx +++ /dev/null @@ -1,40 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / EvoluSchema - -```ts -type EvoluSchema = ReadonlyRecord; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:84](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L84) - -Defines the schema of an Evolu database. - -Column types are Standard Schema v1 compatible — use Evolu Type, Zod, -Valibot, ArkType, or any library that implements Standard Schema. - -Table schema defines columns that are required for table rows. For optional -columns, use a schema whose output type includes `null`. - -### Example - -```ts -// With Evolu Type -const TodoId = id("Todo"); -type TodoId = typeof TodoId.Type; - -const Schema = { - todo: { - id: TodoId, - title: NonEmptyString100, - isCompleted: nullOr(SqliteBoolean), - }, -}; - -// With Zod (or any Standard Schema library) -const Schema = { - todo: { - id: TodoId, // Evolu id() for branded IDs - title: z.string().min(1).max(100), - isCompleted: z.union([z.literal(0), z.literal(1)]).nullable(), - }, -}; -``` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/IndexesConfig.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/IndexesConfig.mdx deleted file mode 100644 index 49b1edbcd..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/IndexesConfig.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / IndexesConfig - -```ts -type IndexesConfig = (create: (indexName: string) => Kysely.CreateIndexBuilder) => ReadonlyArray>; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:117](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L117) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `create` | (`indexName`: `string`) => `Kysely.CreateIndexBuilder` | - -## Returns - -`ReadonlyArray`\<`Kysely.CreateIndexBuilder`\<`any`\>\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/InsertValues.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/InsertValues.mdx deleted file mode 100644 index 5c4dfaaf7..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/InsertValues.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / InsertValues - -```ts -type InsertValues = Omit, "id">; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:267](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L267) - -Insert values: `id` omitted (auto-generated), nullable columns optional, -non-nullable columns required. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`TableSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/Mutation.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/Mutation.mdx deleted file mode 100644 index 1b4cb0a8b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/Mutation.mdx +++ /dev/null @@ -1,61 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / Mutation - -```ts -type Mutation = (table: TableName, values: MutationValues, options?: MutationOptions) => { - id: InferOutput; -}; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:193](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L193) - -Mutation function type. Accepts already-validated values — validation is the -caller's responsibility using any Standard Schema library (Evolu Type, Zod, -Valibot, ArkType, etc.). - -Evolu does not use SQL for mutations to ensure data can be deterministically -merged without conflicts. Explicit mutations also allow Evolu to -automatically update [SystemColumns](/docs/api-reference/common/local-first/Schema/variables/SystemColumns-1.mdx) and encourage developers to -consider the number of changes produced, unlike SQL where a single query can -inadvertently generate a large volume of CRDT messages. Each mutation -produces exactly one [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx) containing all provided columns. - -Mutations never fail — values are already validated by the caller, and -changes are stored locally in SQLite. - -- **insert**: all non-nullable columns required, nullable columns optional, - `id` omitted (auto-generated) -- **update**: only `id` required, everything else optional -- **upsert**: like insert but `id` required too - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | -| `Kind` *extends* [`MutationKind`](/docs/api-reference/common/local-first/Schema/type-aliases/MutationKind.mdx) | - -## Type Parameters - -| Type Parameter | -| ------ | -| `TableName` *extends* keyof `S` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `table` | `TableName` | -| `values` | [`MutationValues`](/docs/api-reference/common/local-first/Schema/type-aliases/MutationValues.mdx)\<`S`\[`TableName`\], `Kind`\> | -| `options?` | [`MutationOptions`](/docs/api-reference/common/local-first/Schema/interfaces/MutationOptions.mdx) | - -## Returns - -```ts -{ - id: InferOutput; -} -``` - -| Name | Type | Defined in | -| ------ | ------ | ------ | -| `id` | [`InferOutput`](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/InferOutput.mdx)\<`S`\[`TableName`\]\[`"id"`\]\> | [packages/common/src/local-first/Schema.ts:199](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L199) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/MutationKind.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/MutationKind.mdx deleted file mode 100644 index 18d561cdc..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/MutationKind.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / MutationKind - -```ts -type MutationKind = "insert" | "update" | "upsert"; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:171](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L171) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/MutationValues.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/MutationValues.mdx deleted file mode 100644 index 5f1c23dc5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/MutationValues.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / MutationValues - -```ts -type MutationValues = Simplify : M extends "update" ? UpdateValues : UpsertValues>; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:252](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L252) - -Derives the expected values type for a mutation from a table's column schemas -and a [MutationKind](/docs/api-reference/common/local-first/Schema/type-aliases/MutationKind.mdx). - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`TableSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx) | -| `M` *extends* [`MutationKind`](/docs/api-reference/common/local-first/Schema/type-aliases/MutationKind.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/NullableColumnsToOptional.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/NullableColumnsToOptional.mdx deleted file mode 100644 index af748c34c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/NullableColumnsToOptional.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / NullableColumnsToOptional - -```ts -type NullableColumnsToOptional = { readonly [K in RequiredColumnKeys]: InferOutput } & { readonly [K in OptionalColumnKeys]?: InferOutput }; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:365](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L365) - -Makes columns whose output type includes `null` optional. - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`TableSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/OptionalColumnKeys.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/OptionalColumnKeys.mdx deleted file mode 100644 index 3e123aceb..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/OptionalColumnKeys.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / OptionalColumnKeys - -```ts -type OptionalColumnKeys = { [K in keyof T]: null extends InferOutput ? K : never }[keyof T]; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:375](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L375) - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`TableSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/RequiredColumnKeys.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/RequiredColumnKeys.mdx deleted file mode 100644 index b740dd90d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/RequiredColumnKeys.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / RequiredColumnKeys - -```ts -type RequiredColumnKeys = { [K in keyof T]: null extends InferOutput ? never : K }[keyof T]; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:371](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L371) - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`TableSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/SchemaValidationError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/SchemaValidationError.mdx deleted file mode 100644 index 4984ada24..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/SchemaValidationError.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / SchemaValidationError - -```ts -type SchemaValidationError = `❌ Schema Error: ${Message}`; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:361](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L361) - -Schema validation error that shows clear, readable messages - -## Type Parameters - -| Type Parameter | -| ------ | -| `Message` *extends* `string` | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx deleted file mode 100644 index 264274507..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / TableSchema - -```ts -type TableSchema = ReadonlyRecord; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:91](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L91) - -A table schema: column names mapped to Standard Schema validators. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/UpdateValues.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/UpdateValues.mdx deleted file mode 100644 index 7806c36b7..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/UpdateValues.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / UpdateValues - -```ts -type UpdateValues = { - id: InferOutput; -} & { readonly [K in Exclude]?: InferOutput } & { - isDeleted?: SqliteBoolean; -}; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:276](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L276) - -Update values: `id` required, all other columns optional. Includes -`isDeleted` for soft deletes. - -## Type Declaration - -| Name | Type | Defined in | -| ------ | ------ | ------ | -| `id` | [`InferOutput`](/docs/api-reference/common/Type/namespaces/StandardSchemaV1/type-aliases/InferOutput.mdx)\<`T`\[`"id"`\]\> | [packages/common/src/local-first/Schema.ts:277](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L277) | - -## Type Declaration - -| Name | Type | Defined in | -| ------ | ------ | ------ | -| `isDeleted?` | [`SqliteBoolean`](/docs/api-reference/common/Sqlite/type-aliases/SqliteBoolean.mdx) | [packages/common/src/local-first/Schema.ts:281](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L281) | - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`TableSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/UpsertValues.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/UpsertValues.mdx deleted file mode 100644 index 8a3117a89..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/UpsertValues.mdx +++ /dev/null @@ -1,24 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / UpsertValues - -```ts -type UpsertValues = NullableColumnsToOptional & { - isDeleted?: SqliteBoolean; -}; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:288](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L288) - -Upsert values: `id` required, nullable columns optional, non-nullable columns -required. Includes `isDeleted` for soft deletes. - -## Type Declaration - -| Name | Type | Defined in | -| ------ | ------ | ------ | -| `isDeleted?` | [`SqliteBoolean`](/docs/api-reference/common/Sqlite/type-aliases/SqliteBoolean.mdx) | [packages/common/src/local-first/Schema.ts:290](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L290) | - -## Type Parameters - -| Type Parameter | -| ------ | -| `T` *extends* [`TableSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/TableSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateColumnTypes.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateColumnTypes.mdx deleted file mode 100644 index 16b5375a9..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateColumnTypes.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / ValidateColumnTypes - -```ts -type ValidateColumnTypes = keyof S extends infer TableName ? TableName extends keyof S ? keyof S[TableName] extends infer ColumnName ? ColumnName extends keyof S[TableName] ? InferOutput extends SqliteValue ? never : SchemaValidationError<`Table "${TableName & string}" column "${ColumnName & string}" type is not compatible with SQLite. Column types must extend SqliteValue (string, number, Uint8Array, or null).`> : never : never : never : never; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:345](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L345) - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateIdColumnType.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateIdColumnType.mdx deleted file mode 100644 index 2b75fdd2b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateIdColumnType.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / ValidateIdColumnType - -```ts -type ValidateIdColumnType = keyof S extends infer TableName ? TableName extends keyof S ? "id" extends keyof S[TableName] ? InferOutput extends Id ? never : SchemaValidationError<`Table "${TableName & string}" id column output type must extend Id. Use id("${TableName & string}") from Evolu Type.`> : never : never : never; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:317](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L317) - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateNoSystemColumns.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateNoSystemColumns.mdx deleted file mode 100644 index 35bddc7fb..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateNoSystemColumns.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / ValidateNoSystemColumns - -```ts -type ValidateNoSystemColumns = keyof S extends infer TableName ? TableName extends keyof S ? keyof S[TableName] extends infer ColumnName ? ColumnName extends keyof S[TableName] ? ColumnName extends "createdAt" | "updatedAt" | "isDeleted" | "ownerId" ? SchemaValidationError<`Table "${TableName & string}" uses system column name "${ColumnName & string}". System columns (createdAt, updatedAt, isDeleted, ownerId) are added automatically.`> : never : never : never : never : never; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:328](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L328) - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchema.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchema.mdx deleted file mode 100644 index 16d656c3b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchema.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / ValidateSchema - -```ts -type ValidateSchema = ValidateSchemaHasId extends never ? ValidateIdColumnType extends never ? ValidateNoSystemColumns extends never ? ValidateColumnTypes extends never ? S : ValidateColumnTypes : ValidateNoSystemColumns : ValidateIdColumnType : ValidateSchemaHasId; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:106](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L106) - -Validates an [EvoluSchema](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) at compile time, returning the first error -found as a readable string literal type. This approach provides much clearer -and more actionable TypeScript errors than the default, which are often hard -to read. - -Validates the following schema requirements: - -1. All tables must have an 'id' column -2. The 'id' column output type must extend [Id](/docs/api-reference/common/Type/variables/Id.mdx) -3. Tables cannot use system column names (createdAt, updatedAt, isDeleted) -4. All column output types must be compatible with SQLite (extend SqliteValue) - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchemaHasId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchemaHasId.mdx deleted file mode 100644 index 3debc72fd..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchemaHasId.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / ValidateSchemaHasId - -```ts -type ValidateSchemaHasId = keyof S extends infer TableName ? TableName extends keyof S ? "id" extends keyof S[TableName] ? never : SchemaValidationError<`Table "${TableName & string}" is missing required id column.`> : never : never; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:308](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L308) - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/DbIndex.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/DbIndex.mdx deleted file mode 100644 index 2d583e8ab..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/DbIndex.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / DbIndex - -```ts -const DbIndex: object({ name: String, sql: String }); -``` - -Defined in: [packages/common/src/local-first/Schema.ts:293](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L293) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/DbSchema.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/DbSchema.mdx deleted file mode 100644 index cab8f9cab..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/DbSchema.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / DbSchema - -```ts -const DbSchema: object({ - tables: record(String, set(String)), - indexes: array(DbIndex), -}); -``` - -Defined in: [packages/common/src/local-first/Schema.ts:296](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L296) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/SystemColumns-1.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/SystemColumns-1.mdx deleted file mode 100644 index d9a5961db..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/SystemColumns-1.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / SystemColumns - -```ts -const SystemColumns: object({ - createdAt: DateIso, - updatedAt: DateIso, - isDeleted: nullOr(SqliteBoolean), - ownerId: OwnerId, -}); -``` - -Defined in: [packages/common/src/local-first/Schema.ts:163](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L163) - -System columns that are implicitly defined by Evolu. - -- `createdAt`: Set by Evolu on row creation, derived from Timestamp. -- `updatedAt`: Set by Evolu on every row change, derived from Timestamp. -- `isDeleted`: Soft delete flag created by Evolu and used by the developer to - mark rows as deleted. -- `ownerId`: Represents ownership and logically partitions the database. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/kysely.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/kysely.mdx deleted file mode 100644 index f3f0754d2..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/kysely.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / kysely - -```ts -const kysely: Kysely; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:571](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L571) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/systemColumns.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/systemColumns.mdx deleted file mode 100644 index 125b6e585..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/systemColumns.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / systemColumns - -```ts -const systemColumns: ReadonlySet; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:379](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L379) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/systemColumnsWithId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/systemColumnsWithId.mdx deleted file mode 100644 index 606b7bdc5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Schema/variables/systemColumnsWithId.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) / systemColumnsWithId - -```ts -const systemColumnsWithId: readonly string[]; -``` - -Defined in: [packages/common/src/local-first/Schema.ts:383](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Schema.ts#L383) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/createBaseSqliteStorage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/createBaseSqliteStorage.mdx deleted file mode 100644 index d951f6a36..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/createBaseSqliteStorage.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / createBaseSqliteStorage - -```ts -function createBaseSqliteStorage(deps: SqliteStorageDeps): (config: CreateBaseSqliteStorageConfig) => BaseSqliteStorage; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:387](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L387) - -Creates a [BaseSqliteStorage](/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx) implementation. - -# Stateless Design - -This implementation is fully stateless - it requires no in-memory state -between invocations. All necessary metadata (timestamp bounds for insertion -strategy optimization) is persisted in the evolu_usage table. This makes -Evolu Relay suitable for stateless serverless environments like AWS Lambda, -Cloudflare Workers with Durable Objects, and other platforms where memory -doesn't persist between requests. While not extensively tested in all these -environments yet, the stateless design should work well across them. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SqliteStorageDeps`](/docs/api-reference/common/local-first/Storage/type-aliases/SqliteStorageDeps.mdx) | - -## Returns - -```ts -(config: CreateBaseSqliteStorageConfig): BaseSqliteStorage; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | [`CreateBaseSqliteStorageConfig`](/docs/api-reference/common/local-first/Storage/interfaces/CreateBaseSqliteStorageConfig.mdx) | - -### Returns - -[`BaseSqliteStorage`](/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/createBaseSqliteStorageTables.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/createBaseSqliteStorageTables.mdx deleted file mode 100644 index f28a054b7..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/createBaseSqliteStorageTables.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / createBaseSqliteStorageTables - -```ts -function createBaseSqliteStorageTables(deps: SqliteDep): Result; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:524](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L524) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - -## Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/getOwnerUsage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/getOwnerUsage.mdx deleted file mode 100644 index b5cc0628a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/getOwnerUsage.mdx +++ /dev/null @@ -1,47 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / getOwnerUsage - -```ts -function getOwnerUsage(deps: SqliteDep): (ownerIdBytes: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, initialTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">) => Result<{ - firstTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">; - lastTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">; - storedBytes: | number & Brand<"Int"> & Brand<"NonNegative"> - | null; -}, SqliteError>; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:1644](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L1644) - -Retrieves usage information for an owner from the evolu_usage table. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - -## Returns - -```ts -(ownerIdBytes: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, initialTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">): Result<{ - firstTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">; - lastTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">; - storedBytes: | number & Brand<"Int"> & Brand<"NonNegative"> - | null; -}, SqliteError>; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerIdBytes` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `initialTimestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<\{ - `firstTimestamp`: `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>; - `lastTimestamp`: `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>; - `storedBytes`: \| `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - \| `null`; -\}, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/getTimestampByIndex.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/getTimestampByIndex.mdx deleted file mode 100644 index 4def18712..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/getTimestampByIndex.mdx +++ /dev/null @@ -1,30 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / getTimestampByIndex - -```ts -function getTimestampByIndex(deps: SqliteDep): (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, index: number & Brand<"Int"> & Brand<"NonNegative">) => Result & Brand<"Length16"> & Brand<"TimestampBytes">, SqliteError>; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:1559](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L1559) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - -## Returns - -```ts -(ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, index: number & Brand<"Int"> & Brand<"NonNegative">): Result & Brand<"Length16"> & Brand<"TimestampBytes">, SqliteError>; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `index` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/getTimestampInsertStrategy.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/getTimestampInsertStrategy.mdx deleted file mode 100644 index 80b96ecb0..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/getTimestampInsertStrategy.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / getTimestampInsertStrategy - -```ts -function getTimestampInsertStrategy( - timestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, - firstTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, - lastTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">): [StorageInsertTimestampStrategy, Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">]; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:602](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L602) - -Determines the insertion strategy for a timestamp based on its position -relative to the current first and last timestamps. - -Returns a tuple with the strategy and updated timestamp bounds. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `timestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | -| `firstTimestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | -| `lastTimestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | - -## Returns - -\[[`StorageInsertTimestampStrategy`](/docs/api-reference/common/local-first/Storage/type-aliases/StorageInsertTimestampStrategy.mdx), `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>, `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>\] diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/timestampBytesToFingerprint.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/timestampBytesToFingerprint.mdx deleted file mode 100644 index c9c5fca9d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/timestampBytesToFingerprint.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / timestampBytesToFingerprint - -```ts -function timestampBytesToFingerprint(timestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">): Fingerprint; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:1161](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L1161) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `timestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | - -## Returns - -[`Fingerprint`](/docs/api-reference/common/local-first/Storage/type-aliases/Fingerprint.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/updateOwnerUsage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/updateOwnerUsage.mdx deleted file mode 100644 index ea68cbb25..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/functions/updateOwnerUsage.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / updateOwnerUsage - -```ts -function updateOwnerUsage(deps: SqliteDep): (ownerIdBytes: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, storedBytes: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">, firstTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, lastTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">) => Result; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:1693](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L1693) - -Updates timestamp bounds in evolu_usage table. - -Used by both relay and client to maintain firstTimestamp/lastTimestamp after -processing messages. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - -## Returns - -```ts -( - ownerIdBytes: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, - storedBytes: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">, - firstTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, -lastTimestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">): Result; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerIdBytes` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `storedBytes` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> | -| `firstTimestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | -| `lastTimestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx deleted file mode 100644 index d35abe981..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / BaseRange - -Defined in: [packages/common/src/local-first/Storage.ts:205](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L205) - -## Extended by - -- [`TimestampsRangeWithTimestampsBuffer`](/docs/api-reference/common/local-first/Protocol/interfaces/TimestampsRangeWithTimestampsBuffer.mdx) -- [`SkipRange`](/docs/api-reference/common/local-first/Storage/interfaces/SkipRange.mdx) -- [`FingerprintRange`](/docs/api-reference/common/local-first/Storage/interfaces/FingerprintRange.mdx) -- [`TimestampsRange`](/docs/api-reference/common/local-first/Storage/interfaces/TimestampsRange.mdx) - -## Properties - - - -### upperBound - -```ts -readonly upperBound: RangeUpperBound; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:206](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L206) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx deleted file mode 100644 index e9a6efa9a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx +++ /dev/null @@ -1,289 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / BaseSqliteStorage - -Defined in: [packages/common/src/local-first/Storage.ts:336](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L336) - -Common interface for both client and relay SQLite storages. - -Evolu uses a Skiplist, which leverages SQLite indexes. The core logic is -implemented in SQL, so it doesn't have to make roundtrips to the DB. - -While the SQL implementation may look sophisticated, it's conceptually simple -and LLMs can explain how it works. The Skiplist data structure is well -explained in [this Stack Overflow -answer](https://stackoverflow.com/questions/61944198/what-is-a-zip-tree-and-how-does-it-work). -The logic resembles [Negentropy's C++ -storage](https://github.com/hoytech/negentropy), except we use a Skiplist to -leverage SQLite indexes, which makes the code simpler. - -Note: A paid review by the SQLite team is planned, as they use the same -algorithm for their rsync tool. - -The ideal storage for a Relay should use an architecture like -[strfry](https://github.com/hoytech/strfry) (a KV storage), but with Skiplist -to ensure that insertion order doesn't matter (local-first apps can often -write in the past.) - -The ideal client implementation should probably use the SQLite extension -instead of SQL or even a KV storage, when such a thing for browsers/native -will exist and will be faster than SQLite. - -# Scaling - -The load can be distributed by deploying multiple relays, synchronized with -each other, if necessary. One relay should handle hundreds of thousands of -users, and when it goes down, nothing happens, because it will be -synchronized later. - -## Extends - -- `Pick`\<[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx), - \| `"getSize"` - \| `"fingerprint"` - \| `"fingerprintRanges"` - \| `"findLowerBound"` - \| `"iterate"` - \| `"deleteOwner"`\> - -## Extended by - -- [`ClientStorage`](/docs/api-reference/common/local-first/Sync/interfaces/ClientStorage.mdx) - -## Properties - - - -### deleteOwner() - -```ts -readonly deleteOwner: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">) => boolean; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:174](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L174) - -Delete all data for the given [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). - -Returns `true` on success, `false` on failure. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | - -#### Returns - -`boolean` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`deleteOwner`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#deleteowner) - -*** - - - -### findLowerBound() - -```ts -readonly findLowerBound: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, begin: number & Brand<"Int"> & Brand<"NonNegative">, end: number & Brand<"Int"> & Brand<"NonNegative">, upperBound: RangeUpperBound) => - | number & Brand<"Int"> & Brand<"NonNegative"> - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:122](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L122) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `begin` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `end` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `upperBound` | [`RangeUpperBound`](/docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound.mdx) | - -#### Returns - - \| `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - \| `null` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`findLowerBound`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#findlowerbound) - -*** - - - -### fingerprint() - -```ts -readonly fingerprint: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, begin: number & Brand<"Int"> & Brand<"NonNegative">, end: number & Brand<"Int"> & Brand<"NonNegative">) => - | Fingerprint - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:103](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L103) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `begin` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `end` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | - -#### Returns - - \| [`Fingerprint`](/docs/api-reference/common/local-first/Storage/type-aliases/Fingerprint.mdx) - \| `null` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`fingerprint`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#fingerprint) - -*** - - - -### fingerprintRanges() - -```ts -readonly fingerprintRanges: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, buckets: readonly number & Brand<"Int"> & Brand<"NonNegative">[], upperBound?: RangeUpperBound) => - | readonly FingerprintRange[] - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:116](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L116) - -Computes fingerprints with their upper bounds in one call. - -This function can be replaced with many fingerprint/findLowerBound calls, -but implementations can leverage it for batching and more efficient -fingerprint computation. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `buckets` | readonly `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\>[] | -| `upperBound?` | [`RangeUpperBound`](/docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound.mdx) | - -#### Returns - - \| readonly [`FingerprintRange`](/docs/api-reference/common/local-first/Storage/interfaces/FingerprintRange.mdx)[] - \| `null` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`fingerprintRanges`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#fingerprintranges) - -*** - - - -### getExistingTimestamps() - -```ts -readonly getExistingTimestamps: (ownerIdBytes: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, timestampsBytes: readonly [Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">]) => Result & Brand<"Length16"> & Brand<"TimestampBytes">[], SqliteError>; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:357](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L357) - -Efficiently checks which timestamps already exist in the database using a -single CTE query instead of N individual queries. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerIdBytes` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `timestampsBytes` | readonly \[`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>, `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>\] | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\ & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>[], [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> - -*** - - - -### getSize() - -```ts -readonly getSize: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">) => - | number & Brand<"Int"> & Brand<"NonNegative"> - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L101) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | - -#### Returns - - \| `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - \| `null` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`getSize`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#getsize) - -*** - - - -### insertTimestamp() - -```ts -readonly insertTimestamp: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, timestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, strategy: StorageInsertTimestampStrategy) => Result; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:347](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L347) - -Inserts a timestamp for an owner into the skiplist-based storage. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `timestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | -| `strategy` | [`StorageInsertTimestampStrategy`](/docs/api-reference/common/local-first/Storage/type-aliases/StorageInsertTimestampStrategy.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> - -*** - - - -### iterate() - -```ts -readonly iterate: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, begin: number & Brand<"Int"> & Brand<"NonNegative">, end: number & Brand<"Int"> & Brand<"NonNegative">, callback: (timestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, index: number & Brand<"Int"> & Brand<"NonNegative">) => boolean) => void; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:129](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L129) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `begin` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `end` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `callback` | (`timestamp`: `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>, `index`: `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\>) => `boolean` | - -#### Returns - -`void` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`iterate`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#iterate) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorageDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorageDep.mdx deleted file mode 100644 index 62c7d6343..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorageDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / BaseSqliteStorageDep - -Defined in: [packages/common/src/local-first/Storage.ts:363](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L363) - -## Properties - - - -### storage - -```ts -readonly storage: BaseSqliteStorage; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:364](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L364) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx deleted file mode 100644 index 6567051fa..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / CrdtMessage - -Defined in: [packages/common/src/local-first/Storage.ts:260](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L260) - -A CRDT message combining a unique [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx) with a [DbChange](/docs/api-reference/common/local-first/Storage/variables/DbChange.mdx). - -Used in Evolu's sync protocol to replicate data changes across devices. Evolu -operates as a durable queue, providing exactly-once delivery guarantees for -reliable synchronization across application restarts and network failures. - -## Properties - - - -### change - -```ts -readonly change: DbChange; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:262](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L262) - -*** - - - -### timestamp - -```ts -readonly timestamp: Timestamp; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:261](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L261) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/CreateBaseSqliteStorageConfig.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/CreateBaseSqliteStorageConfig.mdx deleted file mode 100644 index da5cbb70e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/CreateBaseSqliteStorageConfig.mdx +++ /dev/null @@ -1,84 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / CreateBaseSqliteStorageConfig - -Defined in: [packages/common/src/local-first/Storage.ts:369](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L369) - -## Extends - -- [`StorageConfig`](/docs/api-reference/common/local-first/Storage/interfaces/StorageConfig.mdx) - -## Properties - - - -### isOwnerWithinQuota() - -```ts -readonly isOwnerWithinQuota: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">, requiredBytes: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">) => Awaitable; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:77](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L77) - -Callback called before an attempt to write, to check if an [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) -has sufficient quota for the write. - -The callback receives the [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) and the total bytes that would be -stored after the write (current stored bytes plus incoming bytes), and -returns a [Awaitable](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx) boolean: `true` to allow the write, or `false` -to deny it due to quota limits. - -The callback can be synchronous (for SQLite or in-memory checks) or -asynchronous (for calling remote APIs). - -The callback returns a boolean rather than an error because error handling -and logging are the responsibility of the callback implementation. - -### Example - -```ts -// Client -// evolu.subscribeError - -// Relay -isOwnerWithinQuota: (ownerId, requiredBytes) => { - console.log(ownerId, requiredBytes); - // Check error via evolu.subscribeError - return true; -}; -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | -| `requiredBytes` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> | - -#### Returns - -[`Awaitable`](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx)\<`boolean`\> - -#### Inherited from - -[`StorageConfig`](/docs/api-reference/common/local-first/Storage/interfaces/StorageConfig.mdx).[`isOwnerWithinQuota`](/docs/api-reference/common/local-first/Storage/interfaces/StorageConfig.mdx#isownerwithinquota) - -*** - - - -### onStorageError() - -```ts -onStorageError: (error: SqliteError) => void; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:370](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L370) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `error` | [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx) | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/DbChange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/DbChange.mdx deleted file mode 100644 index e6862809d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/DbChange.mdx +++ /dev/null @@ -1,84 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / DbChange - -Defined in: [packages/common/src/local-first/Storage.ts:294](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L294) - -A DbChange is a change to a table row. Together with a unique -[Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx), it forms a [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx). - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`DbChange`](/docs/api-reference/common/local-first/Storage/variables/DbChange.mdx)\> - -## Extended by - -- [`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx) - -## Properties - - - -### id - -```ts -id: string & Brand<"Id">; -``` - -#### Inherited from - -[`RunnerEvent`](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx).[`id`](/docs/api-reference/common/Task/interfaces/RunnerEvent.mdx#id) - -*** - - - -### isDelete - -```ts -isDelete: boolean | null; -``` - -#### Inherited from - -[`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx).[`isDelete`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx#isdelete) - -*** - - - -### isInsert - -```ts -isInsert: boolean; -``` - -#### Inherited from - -[`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx).[`isInsert`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx#isinsert) - -*** - - - -### table - -```ts -table: string; -``` - -#### Inherited from - -[`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx).[`table`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx#table) - -*** - - - -### values - -```ts -values: Readonly | null>> & Brand<"ValidDbChangeValues">; -``` - -#### Inherited from - -[`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx).[`values`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx#values) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx deleted file mode 100644 index e313edbcd..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / EncryptedCrdtMessage - -Defined in: [packages/common/src/local-first/Storage.ts:245](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L245) - -An encrypted [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx). - -## Properties - - - -### change - -```ts -readonly change: EncryptedDbChange; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:247](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L247) - -*** - - - -### timestamp - -```ts -readonly timestamp: Timestamp; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:246](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L246) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/FingerprintRange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/FingerprintRange.mdx deleted file mode 100644 index 7ec4b43b5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/FingerprintRange.mdx +++ /dev/null @@ -1,47 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / FingerprintRange - -Defined in: [packages/common/src/local-first/Storage.ts:232](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L232) - -## Extends - -- [`BaseRange`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx) - -## Properties - - - -### fingerprint - -```ts -readonly fingerprint: Fingerprint; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:234](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L234) - -*** - - - -### type - -```ts -readonly type: 1; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:233](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L233) - -*** - - - -### upperBound - -```ts -readonly upperBound: RangeUpperBound; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:206](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L206) - -#### Inherited from - -[`BaseRange`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx).[`upperBound`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx#upperbound) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/SkipRange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/SkipRange.mdx deleted file mode 100644 index 94e8c5c0e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/SkipRange.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / SkipRange - -Defined in: [packages/common/src/local-first/Storage.ts:228](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L228) - -## Extends - -- [`BaseRange`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx) - -## Properties - - - -### type - -```ts -readonly type: 0; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:229](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L229) - -*** - - - -### upperBound - -```ts -readonly upperBound: RangeUpperBound; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:206](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L206) - -#### Inherited from - -[`BaseRange`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx).[`upperBound`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx#upperbound) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx deleted file mode 100644 index 7963e822c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx +++ /dev/null @@ -1,299 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / Storage - -Defined in: [packages/common/src/local-first/Storage.ts:100](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L100) - -Evolu Storage. - -Evolu Protocol is agnostic to storage implementation—any storage can be -plugged in, as long as it implements this interface. Implementations must -handle their own errors; return values only indicate overall success or -failure. - -The Storage API is synchronous because SQLite's synchronous API is the -fastest way to use SQLite. Synchronous bindings (like better-sqlite3) call -SQLite's C API directly with no context switching between the event loop and -native code, and no promise microtasks or await overhead. - -The only exception is [Storage.writeMessages](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#writemessages), which is async to allow -for async validation logic before writing to storage. The write operation -itself remains synchronous. - -## Extended by - -- [`ClientStorage`](/docs/api-reference/common/local-first/Sync/interfaces/ClientStorage.mdx) - -## Properties - - - -### deleteOwner() - -```ts -readonly deleteOwner: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">) => boolean; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:174](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L174) - -Delete all data for the given [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). - -Returns `true` on success, `false` on failure. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | - -#### Returns - -`boolean` - -*** - - - -### findLowerBound() - -```ts -readonly findLowerBound: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, begin: number & Brand<"Int"> & Brand<"NonNegative">, end: number & Brand<"Int"> & Brand<"NonNegative">, upperBound: RangeUpperBound) => - | number & Brand<"Int"> & Brand<"NonNegative"> - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:122](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L122) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `begin` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `end` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `upperBound` | [`RangeUpperBound`](/docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound.mdx) | - -#### Returns - - \| `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - \| `null` - -*** - - - -### fingerprint() - -```ts -readonly fingerprint: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, begin: number & Brand<"Int"> & Brand<"NonNegative">, end: number & Brand<"Int"> & Brand<"NonNegative">) => - | Fingerprint - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:103](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L103) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `begin` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `end` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | - -#### Returns - - \| [`Fingerprint`](/docs/api-reference/common/local-first/Storage/type-aliases/Fingerprint.mdx) - \| `null` - -*** - - - -### fingerprintRanges() - -```ts -readonly fingerprintRanges: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, buckets: readonly number & Brand<"Int"> & Brand<"NonNegative">[], upperBound?: RangeUpperBound) => - | readonly FingerprintRange[] - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:116](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L116) - -Computes fingerprints with their upper bounds in one call. - -This function can be replaced with many fingerprint/findLowerBound calls, -but implementations can leverage it for batching and more efficient -fingerprint computation. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `buckets` | readonly `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\>[] | -| `upperBound?` | [`RangeUpperBound`](/docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound.mdx) | - -#### Returns - - \| readonly [`FingerprintRange`](/docs/api-reference/common/local-first/Storage/interfaces/FingerprintRange.mdx)[] - \| `null` - -*** - - - -### getSize() - -```ts -readonly getSize: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">) => - | number & Brand<"Int"> & Brand<"NonNegative"> - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L101) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | - -#### Returns - - \| `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - \| `null` - -*** - - - -### iterate() - -```ts -readonly iterate: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, begin: number & Brand<"Int"> & Brand<"NonNegative">, end: number & Brand<"Int"> & Brand<"NonNegative">, callback: (timestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, index: number & Brand<"Int"> & Brand<"NonNegative">) => boolean) => void; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:129](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L129) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `begin` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `end` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `callback` | (`timestamp`: `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>, `index`: `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\>) => `boolean` | - -#### Returns - -`void` - -*** - - - -### readDbChange() - -```ts -readonly readDbChange: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, timestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">) => - | EncryptedDbChange - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:164](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L164) - -Read encrypted [DbChange](/docs/api-reference/common/local-first/Storage/variables/DbChange.mdx)s from storage. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `timestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | - -#### Returns - - \| [`EncryptedDbChange`](/docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange.mdx) - \| `null` - -*** - - - -### setWriteKey() - -```ts -readonly setWriteKey: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, writeKey: Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">) => boolean; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:147](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L147) - -Sets the [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) for the given [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `writeKey` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerWriteKey"`\> | - -#### Returns - -`boolean` - -*** - - - -### validateWriteKey() - -```ts -readonly validateWriteKey: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, writeKey: Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">) => boolean; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:141](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L141) - -Validates the [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) for the given [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). - -Returns `true` if the write key is valid, `false` otherwise. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `writeKey` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerWriteKey"`\> | - -#### Returns - -`boolean` - -*** - - - -### writeMessages() - -```ts -readonly writeMessages: (ownerIdBytes: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, messages: readonly [EncryptedCrdtMessage, EncryptedCrdtMessage]) => Task; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:158](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L158) - -Write encrypted [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx)s to storage. - -Must use a mutex per ownerId to ensure sequential processing and proper -protocol logic handling during sync operations. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerIdBytes` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `messages` | readonly \[[`EncryptedCrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx), [`EncryptedCrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx)\] | - -#### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`, - \| [`StorageWriteError`](/docs/api-reference/common/local-first/Storage/interfaces/StorageWriteError.mdx) - \| [`StorageQuotaError`](/docs/api-reference/common/local-first/Storage/interfaces/StorageQuotaError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageConfig.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageConfig.mdx deleted file mode 100644 index 1c489749e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageConfig.mdx +++ /dev/null @@ -1,59 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / StorageConfig - -Defined in: [packages/common/src/local-first/Storage.ts:47](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L47) - -## Extended by - -- [`RelayConfig`](/docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx) -- [`CreateBaseSqliteStorageConfig`](/docs/api-reference/common/local-first/Storage/interfaces/CreateBaseSqliteStorageConfig.mdx) - -## Properties - - - -### isOwnerWithinQuota() - -```ts -readonly isOwnerWithinQuota: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">, requiredBytes: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">) => Awaitable; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:77](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L77) - -Callback called before an attempt to write, to check if an [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) -has sufficient quota for the write. - -The callback receives the [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) and the total bytes that would be -stored after the write (current stored bytes plus incoming bytes), and -returns a [Awaitable](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx) boolean: `true` to allow the write, or `false` -to deny it due to quota limits. - -The callback can be synchronous (for SQLite or in-memory checks) or -asynchronous (for calling remote APIs). - -The callback returns a boolean rather than an error because error handling -and logging are the responsibility of the callback implementation. - -### Example - -```ts -// Client -// evolu.subscribeError - -// Relay -isOwnerWithinQuota: (ownerId, requiredBytes) => { - console.log(ownerId, requiredBytes); - // Check error via evolu.subscribeError - return true; -}; -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | -| `requiredBytes` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> | - -#### Returns - -[`Awaitable`](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx)\<`boolean`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageDep.mdx deleted file mode 100644 index 321f660d3..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / StorageDep - -Defined in: [packages/common/src/local-first/Storage.ts:177](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L177) - -## Properties - - - -### storage - -```ts -readonly storage: Storage; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:178](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L178) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageQuotaError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageQuotaError.mdx deleted file mode 100644 index 05188d4e1..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageQuotaError.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / StorageQuotaError - -Defined in: [packages/common/src/local-first/Storage.ts:187](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L187) - -Error when storage or billing quota is exceeded. - -## Extends - -- [`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"StorageQuotaError"`\> - -## Properties - - - -### ownerId - -```ts -readonly ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:387](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L387) - -#### Inherited from - -[`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`ownerId`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx#ownerid) - -*** - - - -### type - -```ts -readonly type: "StorageQuotaError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageWriteError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageWriteError.mdx deleted file mode 100644 index 211feb4ed..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/StorageWriteError.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / StorageWriteError - -Defined in: [packages/common/src/local-first/Storage.ts:182](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L182) - -Error indicating a serious write failure. - -## Extends - -- [`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"StorageWriteError"`\> - -## Properties - - - -### ownerId - -```ts -readonly ownerId: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:387](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L387) - -#### Inherited from - -[`OwnerError`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx).[`ownerId`](/docs/api-reference/common/local-first/Owner/interfaces/OwnerError.mdx#ownerid) - -*** - - - -### type - -```ts -readonly type: "StorageWriteError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/TimestampsRange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/TimestampsRange.mdx deleted file mode 100644 index 1c1a8095e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/TimestampsRange.mdx +++ /dev/null @@ -1,47 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / TimestampsRange - -Defined in: [packages/common/src/local-first/Storage.ts:237](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L237) - -## Extends - -- [`BaseRange`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx) - -## Properties - - - -### timestamps - -```ts -readonly timestamps: readonly Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">[]; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:239](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L239) - -*** - - - -### type - -```ts -readonly type: 2; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:238](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L238) - -*** - - - -### upperBound - -```ts -readonly upperBound: RangeUpperBound; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:206](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L206) - -#### Inherited from - -[`BaseRange`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx).[`upperBound`](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx#upperbound) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/ValidDbChangeValuesError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/ValidDbChangeValuesError.mdx deleted file mode 100644 index 49b7406f7..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/interfaces/ValidDbChangeValuesError.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / ValidDbChangeValuesError - -Defined in: [packages/common/src/local-first/Storage.ts:285](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L285) - -## Extends - -- [`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx)\<`"ValidDbChangeValues"`\> - -## Properties - - - -### invalidColumns - -```ts -readonly invalidColumns: readonly string[]; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:287](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L287) - -*** - - - -### type - -```ts -readonly type: "ValidDbChangeValues"; -``` - -Defined in: [packages/common/src/Type.ts:477](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L477) - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`type`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#type) - -*** - - - -### value - -```ts -readonly value: unknown; -``` - -Defined in: [packages/common/src/Type.ts:483](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L483) - -The value that was received and caused the error. Provides additional -context for debugging and validation feedback. - -#### Inherited from - -[`TypeError`](/docs/api-reference/common/Type/interfaces/TypeError.mdx).[`value`](/docs/api-reference/common/Type/interfaces/TypeError.mdx#value) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/page.mdx deleted file mode 100644 index 8ac49138d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/page.mdx +++ /dev/null @@ -1,63 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Storage - -Encrypted storage layer for local-first data. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createBaseSqliteStorage](/docs/api-reference/common/local-first/Storage/functions/createBaseSqliteStorage.mdx) | Creates a [BaseSqliteStorage](/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx) implementation. | -| [createBaseSqliteStorageTables](/docs/api-reference/common/local-first/Storage/functions/createBaseSqliteStorageTables.mdx) | - | -| [getOwnerUsage](/docs/api-reference/common/local-first/Storage/functions/getOwnerUsage.mdx) | Retrieves usage information for an owner from the evolu_usage table. | -| [getTimestampByIndex](/docs/api-reference/common/local-first/Storage/functions/getTimestampByIndex.mdx) | - | -| [getTimestampInsertStrategy](/docs/api-reference/common/local-first/Storage/functions/getTimestampInsertStrategy.mdx) | Determines the insertion strategy for a timestamp based on its position relative to the current first and last timestamps. | -| [timestampBytesToFingerprint](/docs/api-reference/common/local-first/Storage/functions/timestampBytesToFingerprint.mdx) | - | -| [updateOwnerUsage](/docs/api-reference/common/local-first/Storage/functions/updateOwnerUsage.mdx) | Updates timestamp bounds in evolu_usage table. | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [BaseRange](/docs/api-reference/common/local-first/Storage/interfaces/BaseRange.mdx) | - | -| [BaseSqliteStorage](/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx) | Common interface for both client and relay SQLite storages. | -| [BaseSqliteStorageDep](/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorageDep.mdx) | - | -| [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx) | A CRDT message combining a unique [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx) with a [DbChange](/docs/api-reference/common/local-first/Storage/variables/DbChange.mdx). | -| [CreateBaseSqliteStorageConfig](/docs/api-reference/common/local-first/Storage/interfaces/CreateBaseSqliteStorageConfig.mdx) | - | -| [DbChange](/docs/api-reference/common/local-first/Storage/interfaces/DbChange.mdx) | A DbChange is a change to a table row. Together with a unique [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx), it forms a [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx). | -| [EncryptedCrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx) | An encrypted [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx). | -| [FingerprintRange](/docs/api-reference/common/local-first/Storage/interfaces/FingerprintRange.mdx) | - | -| [SkipRange](/docs/api-reference/common/local-first/Storage/interfaces/SkipRange.mdx) | - | -| [Storage](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx) | Evolu Storage. | -| [StorageConfig](/docs/api-reference/common/local-first/Storage/interfaces/StorageConfig.mdx) | - | -| [StorageDep](/docs/api-reference/common/local-first/Storage/interfaces/StorageDep.mdx) | - | -| [StorageQuotaError](/docs/api-reference/common/local-first/Storage/interfaces/StorageQuotaError.mdx) | Error when storage or billing quota is exceeded. | -| [StorageWriteError](/docs/api-reference/common/local-first/Storage/interfaces/StorageWriteError.mdx) | Error indicating a serious write failure. | -| [TimestampsRange](/docs/api-reference/common/local-first/Storage/interfaces/TimestampsRange.mdx) | - | -| [ValidDbChangeValuesError](/docs/api-reference/common/local-first/Storage/interfaces/ValidDbChangeValuesError.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [DbChangeValues](/docs/api-reference/common/local-first/Storage/type-aliases/DbChangeValues.mdx) | - | -| [EncryptedDbChange](/docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange.mdx) | Encrypted DbChange | -| [Fingerprint](/docs/api-reference/common/local-first/Storage/type-aliases/Fingerprint.mdx) | A cryptographic hash used for efficiently comparing collections of [TimestampBytes](/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx)es. | -| [InfiniteUpperBound](/docs/api-reference/common/local-first/Storage/type-aliases/InfiniteUpperBound.mdx) | - | -| [Range](/docs/api-reference/common/local-first/Storage/type-aliases/Range.mdx) | - | -| [RangeType](/docs/api-reference/common/local-first/Storage/type-aliases/RangeType.mdx) | - | -| [RangeUpperBound](/docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound.mdx) | Union type for Range's upperBound: either a [TimestampBytes](/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx) or [InfiniteUpperBound](/docs/api-reference/common/local-first/Storage/variables/InfiniteUpperBound.mdx). | -| [SqliteStorageDeps](/docs/api-reference/common/local-first/Storage/type-aliases/SqliteStorageDeps.mdx) | - | -| [StorageInsertTimestampStrategy](/docs/api-reference/common/local-first/Storage/type-aliases/StorageInsertTimestampStrategy.mdx) | - | -| [ValidDbChangeValues](/docs/api-reference/common/local-first/Storage/type-aliases/ValidDbChangeValues.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [DbChange](/docs/api-reference/common/local-first/Storage/variables/DbChange.mdx) | A DbChange is a change to a table row. Together with a unique [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx), it forms a [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx). | -| [DbChangeValues](/docs/api-reference/common/local-first/Storage/variables/DbChangeValues.mdx) | - | -| [fingerprintSize](/docs/api-reference/common/local-first/Storage/variables/fingerprintSize.mdx) | - | -| [InfiniteUpperBound](/docs/api-reference/common/local-first/Storage/variables/InfiniteUpperBound.mdx) | - | -| [RangeType](/docs/api-reference/common/local-first/Storage/variables/RangeType.mdx) | - | -| [ValidDbChangeValues](/docs/api-reference/common/local-first/Storage/variables/ValidDbChangeValues.mdx) | - | -| [zeroFingerprint](/docs/api-reference/common/local-first/Storage/variables/zeroFingerprint.mdx) | A fingerprint of an empty range. | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/DbChangeValues.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/DbChangeValues.mdx deleted file mode 100644 index 00e52bd95..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/DbChangeValues.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / DbChangeValues - -```ts -type DbChangeValues = Readonly | null>>; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:265](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L265) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange.mdx deleted file mode 100644 index 7ea436348..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / EncryptedDbChange - -```ts -type EncryptedDbChange = Uint8Array & Brand<"EncryptedDbChange">; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:251](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L251) - -Encrypted DbChange diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/Fingerprint.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/Fingerprint.mdx deleted file mode 100644 index c28903c2a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/Fingerprint.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / Fingerprint - -```ts -type Fingerprint = Uint8Array & Brand<"Fingerprint">; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:198](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L198) - -A cryptographic hash used for efficiently comparing collections of -[TimestampBytes](/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx)es. - -It consists of the first [fingerprintSize](/docs/api-reference/common/local-first/Storage/variables/fingerprintSize.mdx) bytes of the SHA-256 hash of -one or more timestamps. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/InfiniteUpperBound.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/InfiniteUpperBound.mdx deleted file mode 100644 index fbd1067f1..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/InfiniteUpperBound.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / InfiniteUpperBound - -```ts -type InfiniteUpperBound = typeof InfiniteUpperBound; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:215](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L215) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/Range.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/Range.mdx deleted file mode 100644 index c81575a90..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/Range.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / Range - -```ts -type Range = - | SkipRange - | FingerprintRange - | TimestampsRange; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:242](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L242) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/RangeType.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/RangeType.mdx deleted file mode 100644 index 413a53db1..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/RangeType.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / RangeType - -```ts -type RangeType = typeof RangeType[keyof typeof RangeType]; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:220](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L220) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound.mdx deleted file mode 100644 index a0ef8813f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / RangeUpperBound - -```ts -type RangeUpperBound = - | TimestampBytes - | InfiniteUpperBound; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:213](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L213) - -Union type for Range's upperBound: either a [TimestampBytes](/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx) or -[InfiniteUpperBound](/docs/api-reference/common/local-first/Storage/variables/InfiniteUpperBound.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/SqliteStorageDeps.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/SqliteStorageDeps.mdx deleted file mode 100644 index 774ce3faf..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/SqliteStorageDeps.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / SqliteStorageDeps - -```ts -type SqliteStorageDeps = RandomDep & SqliteDep; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:367](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L367) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/StorageInsertTimestampStrategy.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/StorageInsertTimestampStrategy.mdx deleted file mode 100644 index 1cdba068e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/StorageInsertTimestampStrategy.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / StorageInsertTimestampStrategy - -```ts -type StorageInsertTimestampStrategy = "append" | "prepend" | "insert"; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:594](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L594) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/ValidDbChangeValues.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/ValidDbChangeValues.mdx deleted file mode 100644 index 45b59c45f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/type-aliases/ValidDbChangeValues.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / ValidDbChangeValues - -```ts -type ValidDbChangeValues = Readonly | null>> & Brand<"ValidDbChangeValues">; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L268) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/DbChange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/DbChange.mdx deleted file mode 100644 index b7d3eae1e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/DbChange.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / DbChange - -```ts -const DbChange: object({ - table: String, - id: Id, - values: ValidDbChangeValues, - isInsert: Boolean, - isDelete: nullOr(Boolean), -}); -``` - -Defined in: [packages/common/src/local-first/Storage.ts:294](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L294) - -A DbChange is a change to a table row. Together with a unique -[Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx), it forms a [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/DbChangeValues.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/DbChangeValues.mdx deleted file mode 100644 index be6e4cfaf..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/DbChangeValues.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / DbChangeValues - -```ts -const DbChangeValues: record(String, SqliteValue); -``` - -Defined in: [packages/common/src/local-first/Storage.ts:265](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L265) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/InfiniteUpperBound.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/InfiniteUpperBound.mdx deleted file mode 100644 index 2a3e15e55..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/InfiniteUpperBound.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / InfiniteUpperBound - -```ts -const InfiniteUpperBound: typeof InfiniteUpperBound; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:215](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L215) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/RangeType.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/RangeType.mdx deleted file mode 100644 index 13a269535..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/RangeType.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / RangeType - -```ts -const RangeType: { - Fingerprint: 1; - Skip: 0; - Timestamps: 2; -}; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:220](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L220) - -## Type Declaration - -| Name | Type | Default value | Defined in | -| ------ | ------ | ------ | ------ | -| `Fingerprint` | `1` | `1` | [packages/common/src/local-first/Storage.ts:221](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L221) | -| `Skip` | `0` | `0` | [packages/common/src/local-first/Storage.ts:222](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L222) | -| `Timestamps` | `2` | `2` | [packages/common/src/local-first/Storage.ts:223](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L223) | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/ValidDbChangeValues.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/ValidDbChangeValues.mdx deleted file mode 100644 index b3a66950b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/ValidDbChangeValues.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / ValidDbChangeValues - -```ts -const ValidDbChangeValues: brand( - "ValidDbChangeValues", - DbChangeValues, - (value) => { - const invalidColumns = systemColumnsWithId.filter((key) => key in value); - if (invalidColumns.length > 0) - return err({ - type: "ValidDbChangeValues", - value, - invalidColumns, - }); - - return ok(value); - }, -); -``` - -Defined in: [packages/common/src/local-first/Storage.ts:268](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L268) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/fingerprintSize.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/fingerprintSize.mdx deleted file mode 100644 index ecd665da5..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/fingerprintSize.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / fingerprintSize - -```ts -const fingerprintSize: number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:200](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L200) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/zeroFingerprint.mdx b/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/zeroFingerprint.mdx deleted file mode 100644 index 8ffcba3db..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Storage/variables/zeroFingerprint.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) / zeroFingerprint - -```ts -const zeroFingerprint: Fingerprint; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:203](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L203) - -A fingerprint of an empty range. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/applyLocalOnlyChange.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/applyLocalOnlyChange.mdx deleted file mode 100644 index 0144d5c0f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/applyLocalOnlyChange.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / applyLocalOnlyChange - -```ts -function applyLocalOnlyChange(deps: SqliteDep & TimeDep & AppOwnerDep): (change: MutationChange) => Result; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:671](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L671) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) & [`TimeDep`](/docs/api-reference/common/Time/interfaces/TimeDep.mdx) & [`AppOwnerDep`](/docs/api-reference/common/local-first/Owner/interfaces/AppOwnerDep.mdx) | - -## Returns - -```ts -(change: MutationChange): Result; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `change` | [`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx) | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/createClock.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/createClock.mdx deleted file mode 100644 index cd807dac9..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/createClock.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / createClock - -```ts -function createClock(deps: RandomBytesDep & SqliteDep): (initialTimestamp: Timestamp) => Clock; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:424](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L424) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) & [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - -## Returns - -```ts -(initialTimestamp?: Timestamp): Clock; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `initialTimestamp` | [`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) | - -### Returns - -[`Clock`](/docs/api-reference/common/local-first/Sync/interfaces/Clock.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/createSync.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/createSync.mdx deleted file mode 100644 index f9a59291b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/createSync.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / createSync - -```ts -function createSync(deps: ClockDep & ConsoleDep & CreateWebSocketDep & DbSchemaDep & RandomBytesDep & RandomDep & SqliteDep & TimeDep & TimestampConfigDep): (config: SyncConfig) => Result; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:164](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L164) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`ClockDep`](/docs/api-reference/common/local-first/Sync/interfaces/ClockDep.mdx) & [`ConsoleDep`](/docs/api-reference/common/Console/interfaces/ConsoleDep.mdx) & [`CreateWebSocketDep`](/docs/api-reference/common/WebSocket/interfaces/CreateWebSocketDep.mdx) & [`DbSchemaDep`](/docs/api-reference/common/local-first/Schema/interfaces/DbSchemaDep.mdx) & [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) & [`RandomDep`](/docs/api-reference/common/Random/interfaces/RandomDep.mdx) & [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) & [`TimeDep`](/docs/api-reference/common/Time/interfaces/TimeDep.mdx) & [`TimestampConfigDep`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfigDep.mdx) | - -## Returns - -```ts -(config: SyncConfig): Result; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | [`SyncConfig`](/docs/api-reference/common/local-first/Sync/interfaces/SyncConfig.mdx) | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`Sync`](/docs/api-reference/common/local-first/Sync/interfaces/Sync.mdx), [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/tryApplyQuarantinedMessages.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/tryApplyQuarantinedMessages.mdx deleted file mode 100644 index 7d2105a0d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/functions/tryApplyQuarantinedMessages.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / tryApplyQuarantinedMessages - -```ts -function tryApplyQuarantinedMessages(deps: DbSchemaDep & SqliteDep): () => Result; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:858](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L858) - -Attempts to apply quarantined messages that may now be valid after a schema -update. Messages are quarantined when they reference tables or columns that -don't exist in the current schema (e.g., from a newer app version). - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`DbSchemaDep`](/docs/api-reference/common/local-first/Schema/interfaces/DbSchemaDep.mdx) & [`SqliteDep`](/docs/api-reference/common/Sqlite/interfaces/SqliteDep.mdx) | - -## Returns - -```ts -(): Result; -``` - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ClientStorage.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ClientStorage.mdx deleted file mode 100644 index ddbec883e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ClientStorage.mdx +++ /dev/null @@ -1,399 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / ClientStorage - -Defined in: [packages/common/src/local-first/Sync.ts:448](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L448) - -Evolu Storage. - -Evolu Protocol is agnostic to storage implementation—any storage can be -plugged in, as long as it implements this interface. Implementations must -handle their own errors; return values only indicate overall success or -failure. - -The Storage API is synchronous because SQLite's synchronous API is the -fastest way to use SQLite. Synchronous bindings (like better-sqlite3) call -SQLite's C API directly with no context switching between the event loop and -native code, and no promise microtasks or await overhead. - -The only exception is [Storage.writeMessages](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#writemessages), which is async to allow -for async validation logic before writing to storage. The write operation -itself remains synchronous. - -## Extends - -- [`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`BaseSqliteStorage`](/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx) - -## Properties - - - -### deleteOwner() - -```ts -readonly deleteOwner: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">) => boolean; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:174](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L174) - -Delete all data for the given [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). - -Returns `true` on success, `false` on failure. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | - -#### Returns - -`boolean` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`deleteOwner`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#deleteowner) - -*** - - - -### findLowerBound() - -```ts -readonly findLowerBound: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, begin: number & Brand<"Int"> & Brand<"NonNegative">, end: number & Brand<"Int"> & Brand<"NonNegative">, upperBound: RangeUpperBound) => - | number & Brand<"Int"> & Brand<"NonNegative"> - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:122](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L122) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `begin` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `end` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `upperBound` | [`RangeUpperBound`](/docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound.mdx) | - -#### Returns - - \| `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - \| `null` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`findLowerBound`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#findlowerbound) - -*** - - - -### fingerprint() - -```ts -readonly fingerprint: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, begin: number & Brand<"Int"> & Brand<"NonNegative">, end: number & Brand<"Int"> & Brand<"NonNegative">) => - | Fingerprint - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:103](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L103) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `begin` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `end` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | - -#### Returns - - \| [`Fingerprint`](/docs/api-reference/common/local-first/Storage/type-aliases/Fingerprint.mdx) - \| `null` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`fingerprint`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#fingerprint) - -*** - - - -### fingerprintRanges() - -```ts -readonly fingerprintRanges: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, buckets: readonly number & Brand<"Int"> & Brand<"NonNegative">[], upperBound?: RangeUpperBound) => - | readonly FingerprintRange[] - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:116](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L116) - -Computes fingerprints with their upper bounds in one call. - -This function can be replaced with many fingerprint/findLowerBound calls, -but implementations can leverage it for batching and more efficient -fingerprint computation. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `buckets` | readonly `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\>[] | -| `upperBound?` | [`RangeUpperBound`](/docs/api-reference/common/local-first/Storage/type-aliases/RangeUpperBound.mdx) | - -#### Returns - - \| readonly [`FingerprintRange`](/docs/api-reference/common/local-first/Storage/interfaces/FingerprintRange.mdx)[] - \| `null` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`fingerprintRanges`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#fingerprintranges) - -*** - - - -### getExistingTimestamps() - -```ts -readonly getExistingTimestamps: (ownerIdBytes: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, timestampsBytes: readonly [Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">]) => Result & Brand<"Length16"> & Brand<"TimestampBytes">[], SqliteError>; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:357](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L357) - -Efficiently checks which timestamps already exist in the database using a -single CTE query instead of N individual queries. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerIdBytes` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `timestampsBytes` | readonly \[`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>, `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>\] | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\ & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>[], [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> - -#### Inherited from - -[`BaseSqliteStorage`](/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx).[`getExistingTimestamps`](/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx#getexistingtimestamps) - -*** - - - -### getSize() - -```ts -readonly getSize: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">) => - | number & Brand<"Int"> & Brand<"NonNegative"> - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:101](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L101) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | - -#### Returns - - \| `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> - \| `null` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`getSize`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#getsize) - -*** - - - -### insertTimestamp() - -```ts -readonly insertTimestamp: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, timestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, strategy: StorageInsertTimestampStrategy) => Result; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:347](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L347) - -Inserts a timestamp for an owner into the skiplist-based storage. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `timestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | -| `strategy` | [`StorageInsertTimestampStrategy`](/docs/api-reference/common/local-first/Storage/type-aliases/StorageInsertTimestampStrategy.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> - -#### Inherited from - -[`BaseSqliteStorage`](/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx).[`insertTimestamp`](/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage.mdx#inserttimestamp) - -*** - - - -### iterate() - -```ts -readonly iterate: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, begin: number & Brand<"Int"> & Brand<"NonNegative">, end: number & Brand<"Int"> & Brand<"NonNegative">, callback: (timestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">, index: number & Brand<"Int"> & Brand<"NonNegative">) => boolean) => void; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:129](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L129) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `begin` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `end` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> | -| `callback` | (`timestamp`: `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\>, `index`: `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\>) => `boolean` | - -#### Returns - -`void` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`iterate`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#iterate) - -*** - - - -### readDbChange() - -```ts -readonly readDbChange: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, timestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">) => - | EncryptedDbChange - | null; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:164](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L164) - -Read encrypted [DbChange](/docs/api-reference/common/local-first/Storage/variables/DbChange.mdx)s from storage. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `timestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | - -#### Returns - - \| [`EncryptedDbChange`](/docs/api-reference/common/local-first/Storage/type-aliases/EncryptedDbChange.mdx) - \| `null` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`readDbChange`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#readdbchange) - -*** - - - -### setWriteKey() - -```ts -readonly setWriteKey: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, writeKey: Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">) => boolean; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:147](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L147) - -Sets the [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) for the given [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `writeKey` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerWriteKey"`\> | - -#### Returns - -`boolean` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`setWriteKey`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#setwritekey) - -*** - - - -### validateWriteKey() - -```ts -readonly validateWriteKey: (ownerId: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, writeKey: Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">) => boolean; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:141](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L141) - -Validates the [OwnerWriteKey](/docs/api-reference/common/local-first/Owner/variables/OwnerWriteKey.mdx) for the given [Owner](/docs/api-reference/common/local-first/Owner/interfaces/Owner.mdx). - -Returns `true` if the write key is valid, `false` otherwise. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `writeKey` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Entropy"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerWriteKey"`\> | - -#### Returns - -`boolean` - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`validateWriteKey`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#validatewritekey) - -*** - - - -### writeMessages() - -```ts -readonly writeMessages: (ownerIdBytes: Uint8Array & Brand<"Length16"> & Brand<"IdBytes"> & Brand<"OwnerIdBytes">, messages: readonly [EncryptedCrdtMessage, EncryptedCrdtMessage]) => Task; -``` - -Defined in: [packages/common/src/local-first/Storage.ts:158](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Storage.ts#L158) - -Write encrypted [CrdtMessage](/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage.mdx)s to storage. - -Must use a mutex per ownerId to ensure sequential processing and proper -protocol logic handling during sync operations. - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerIdBytes` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"IdBytes"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerIdBytes"`\> | -| `messages` | readonly \[[`EncryptedCrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx), [`EncryptedCrdtMessage`](/docs/api-reference/common/local-first/Storage/interfaces/EncryptedCrdtMessage.mdx)\] | - -#### Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`, - \| [`StorageWriteError`](/docs/api-reference/common/local-first/Storage/interfaces/StorageWriteError.mdx) - \| [`StorageQuotaError`](/docs/api-reference/common/local-first/Storage/interfaces/StorageQuotaError.mdx)\> - -#### Inherited from - -[`Storage`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx).[`writeMessages`](/docs/api-reference/common/local-first/Storage/interfaces/Storage.mdx#writemessages) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ClientStorageDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ClientStorageDep.mdx deleted file mode 100644 index 313d77a30..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ClientStorageDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / ClientStorageDep - -Defined in: [packages/common/src/local-first/Sync.ts:450](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L450) - -## Properties - - - -### storage - -```ts -readonly storage: ClientStorage; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:451](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L451) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/Clock.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/Clock.mdx deleted file mode 100644 index 226e45a12..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/Clock.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / Clock - -Defined in: [packages/common/src/local-first/Sync.ts:418](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L418) - -## Properties - - - -### get() - -```ts -readonly get: () => Timestamp; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:419](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L419) - -#### Returns - -[`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) - -*** - - - -### save() - -```ts -readonly save: (timestamp: Timestamp) => Result; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:420](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L420) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `timestamp` | [`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ClockDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ClockDep.mdx deleted file mode 100644 index 3f958d225..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ClockDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / ClockDep - -Defined in: [packages/common/src/local-first/Sync.ts:414](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L414) - -## Properties - - - -### clock - -```ts -readonly clock: Clock; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:415](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L415) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/NetworkError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/NetworkError.mdx deleted file mode 100644 index b530d1fb3..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/NetworkError.mdx +++ /dev/null @@ -1,145 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / NetworkError - -Defined in: [packages/common/src/local-first/Sync.ts:938](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L938) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"NetworkError"`\> - -## Properties - - - -### type - -```ts -readonly type: "NetworkError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/PaymentRequiredError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/PaymentRequiredError.mdx deleted file mode 100644 index dd7d346b1..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/PaymentRequiredError.mdx +++ /dev/null @@ -1,145 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / PaymentRequiredError - -Defined in: [packages/common/src/local-first/Sync.ts:944](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L944) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"PaymentRequiredError"`\> - -## Properties - - - -### type - -```ts -readonly type: "PaymentRequiredError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ServerError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ServerError.mdx deleted file mode 100644 index 19a2379ff..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/ServerError.mdx +++ /dev/null @@ -1,157 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / ServerError - -Defined in: [packages/common/src/local-first/Sync.ts:940](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L940) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"ServerError"`\> - -## Properties - - - -### status - -```ts -readonly status: number; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:941](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L941) - -*** - - - -### type - -```ts -readonly type: "ServerError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/Sync.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/Sync.mdx deleted file mode 100644 index 2ea36df5d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/Sync.mdx +++ /dev/null @@ -1,108 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / Sync - -Defined in: [packages/common/src/local-first/Sync.ts:100](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L100) - -## Extends - -- [`Disposable`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) - -## Methods - - - -### \[dispose\]() - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/typescript@5.9.3/node\_modules/typescript/lib/lib.esnext.disposable.d.ts:36 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -#### Call Signature - -```ts -dispose: void; -``` - -Defined in: node\_modules/.bun/@types+node@22.19.11/node\_modules/@types/node/compatibility/disposable.d.ts:9 - -##### Returns - -`void` - -##### Inherited from - -```ts -Disposable.[dispose] -``` - -## Properties - - - -### applyChanges() - -```ts -readonly applyChanges: (changes: readonly [MutationChange, MutationChange]) => Result; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:110](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L110) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `changes` | readonly \[[`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx), [`MutationChange`](/docs/api-reference/common/local-first/Schema/interfaces/MutationChange.mdx)\] | - -#### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<`void`, - \| [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx) - \| [`TimestampDriftError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampDriftError.mdx) - \| [`TimestampCounterOverflowError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampCounterOverflowError.mdx) - \| [`TimestampTimeOutOfRangeError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampTimeOutOfRangeError.mdx)\> - -*** - - - -### useOwner() - -```ts -readonly useOwner: (use: boolean, owner: SyncOwner) => void; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:108](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L108) - -Assigns or removes an owner to/from transports with reference counting. - -Owners are only synced if assigned to at least one transport. Uses -`owner.transports` or falls back to [SyncConfig](/docs/api-reference/common/local-first/Sync/interfaces/SyncConfig.mdx) transports. Multiple -calls increment/decrement reference counts (useful for React Hooks). - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `use` | `boolean` | -| `owner` | [`SyncOwner`](/docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx) | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncConfig.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncConfig.mdx deleted file mode 100644 index f9e41a1f6..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncConfig.mdx +++ /dev/null @@ -1,87 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / SyncConfig - -Defined in: [packages/common/src/local-first/Sync.ts:136](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L136) - -## Properties - - - -### appOwner - -```ts -readonly appOwner: AppOwner; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:137](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L137) - -*** - - - -### disposalDelayMs? - -```ts -readonly optional disposalDelayMs: number; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:145](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L145) - -Delay in milliseconds before disposing unused WebSocket connections. -Defaults to 100ms. - -*** - - - -### onError() - -```ts -readonly onError: (error: - | UnknownError - | DecryptWithXChaCha20Poly1305Error - | SqliteError - | TimestampDriftError - | TimestampCounterOverflowError - | TimestampTimeOutOfRangeError - | ProtocolError) => void; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:147](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L147) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `error` | \| [`UnknownError`](/docs/api-reference/common/Error/interfaces/UnknownError.mdx) \| [`DecryptWithXChaCha20Poly1305Error`](/docs/api-reference/common/Crypto/interfaces/DecryptWithXChaCha20Poly1305Error.mdx) \| [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx) \| [`TimestampDriftError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampDriftError.mdx) \| [`TimestampCounterOverflowError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampCounterOverflowError.mdx) \| [`TimestampTimeOutOfRangeError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampTimeOutOfRangeError.mdx) \| [`ProtocolError`](/docs/api-reference/common/local-first/Protocol/type-aliases/ProtocolError.mdx) | - -#### Returns - -`void` - -*** - - - -### onReceive() - -```ts -readonly onReceive: () => void; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:160](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L160) - -#### Returns - -`void` - -*** - - - -### transports - -```ts -readonly transports: readonly OwnerWebSocketTransport[]; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:139](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L139) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncDep.mdx deleted file mode 100644 index 7bfc381d4..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / SyncDep - -Defined in: [packages/common/src/local-first/Sync.ts:121](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L121) - -## Properties - - - -### sync - -```ts -readonly sync: Sync; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:122](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L122) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx deleted file mode 100644 index a0e7d0b70..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx +++ /dev/null @@ -1,70 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / SyncOwner - -Defined in: [packages/common/src/local-first/Sync.ts:131](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L131) - -Represents an owner for sync operations. - -Includes readonly owner fields plus optional write key (for clients that -write) and optional transports to override SyncConfig transports per owner. - -## Extends - -- [`ReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx) - -## Properties - - - -### encryptionKey - -```ts -readonly encryptionKey: Uint8Array & Brand<"Entropy"> & Brand<"Length32"> & Brand<"EncryptionKey"> & Brand<"OwnerEncryptionKey">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L39) - -TODO: Wrap with `Redacted` in the next major version. - -#### Inherited from - -[`ReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx).[`encryptionKey`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx#encryptionkey) - -*** - - - -### id - -```ts -readonly id: string & Brand<"Id"> & Brand<"OwnerId">; -``` - -Defined in: [packages/common/src/local-first/Owner.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Owner.ts#L37) - -#### Inherited from - -[`ReadonlyOwner`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx).[`id`](/docs/api-reference/common/local-first/Owner/interfaces/ReadonlyOwner.mdx#id) - -*** - - - -### transports? - -```ts -readonly optional transports: readonly OwnerWebSocketTransport[]; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:133](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L133) - -*** - - - -### writeKey? - -```ts -readonly optional writeKey: Uint8Array & Brand<"Entropy"> & Brand<"Length16"> & Brand<"OwnerWriteKey">; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:132](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L132) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateInitial.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateInitial.mdx deleted file mode 100644 index f618cb759..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateInitial.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / SyncStateInitial - -Defined in: [packages/common/src/local-first/Sync.ts:926](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L926) - -The initial synchronization state when the app starts. In this state, the app -needs to determine whether the data is synced. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"SyncStateInitial"`\> - -## Properties - - - -### type - -```ts -readonly type: "SyncStateInitial"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsNotSynced.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsNotSynced.mdx deleted file mode 100644 index 024652a66..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsNotSynced.mdx +++ /dev/null @@ -1,160 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / SyncStateIsNotSynced - -Defined in: [packages/common/src/local-first/Sync.ts:934](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L934) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"SyncStateIsNotSynced"`\> - -## Properties - - - -### error - -```ts -readonly error: - | NetworkError - | ServerError - | PaymentRequiredError; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:935](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L935) - -*** - - - -### type - -```ts -readonly type: "SyncStateIsNotSynced"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSynced.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSynced.mdx deleted file mode 100644 index 7500279c3..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSynced.mdx +++ /dev/null @@ -1,157 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / SyncStateIsSynced - -Defined in: [packages/common/src/local-first/Sync.ts:930](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L930) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"SyncStateIsSynced"`\> - -## Properties - - - -### time - -```ts -readonly time: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:931](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L931) - -*** - - - -### type - -```ts -readonly type: "SyncStateIsSynced"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSyncing.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSyncing.mdx deleted file mode 100644 index ed5fb0f54..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSyncing.mdx +++ /dev/null @@ -1,145 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / SyncStateIsSyncing - -Defined in: [packages/common/src/local-first/Sync.ts:928](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L928) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"SyncStateIsSyncing"`\> - -## Properties - - - -### type - -```ts -readonly type: "SyncStateIsSyncing"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/page.mdx deleted file mode 100644 index 8eaf56729..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/page.mdx +++ /dev/null @@ -1,44 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Sync - -Synchronization logic between client and relay. - -## Functions - -| Function | Description | -| ------ | ------ | -| [applyLocalOnlyChange](/docs/api-reference/common/local-first/Sync/functions/applyLocalOnlyChange.mdx) | - | -| [createClock](/docs/api-reference/common/local-first/Sync/functions/createClock.mdx) | - | -| [createSync](/docs/api-reference/common/local-first/Sync/functions/createSync.mdx) | - | -| [tryApplyQuarantinedMessages](/docs/api-reference/common/local-first/Sync/functions/tryApplyQuarantinedMessages.mdx) | Attempts to apply quarantined messages that may now be valid after a schema update. Messages are quarantined when they reference tables or columns that don't exist in the current schema (e.g., from a newer app version). | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [ClientStorage](/docs/api-reference/common/local-first/Sync/interfaces/ClientStorage.mdx) | Evolu Storage. | -| [ClientStorageDep](/docs/api-reference/common/local-first/Sync/interfaces/ClientStorageDep.mdx) | - | -| [Clock](/docs/api-reference/common/local-first/Sync/interfaces/Clock.mdx) | - | -| [ClockDep](/docs/api-reference/common/local-first/Sync/interfaces/ClockDep.mdx) | - | -| [NetworkError](/docs/api-reference/common/local-first/Sync/interfaces/NetworkError.mdx) | Base interface for objects with a discriminant `type` property. | -| [PaymentRequiredError](/docs/api-reference/common/local-first/Sync/interfaces/PaymentRequiredError.mdx) | Base interface for objects with a discriminant `type` property. | -| [ServerError](/docs/api-reference/common/local-first/Sync/interfaces/ServerError.mdx) | Base interface for objects with a discriminant `type` property. | -| [Sync](/docs/api-reference/common/local-first/Sync/interfaces/Sync.mdx) | - | -| [SyncConfig](/docs/api-reference/common/local-first/Sync/interfaces/SyncConfig.mdx) | - | -| [SyncDep](/docs/api-reference/common/local-first/Sync/interfaces/SyncDep.mdx) | - | -| [SyncOwner](/docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx) | Represents an owner for sync operations. | -| [SyncStateInitial](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateInitial.mdx) | The initial synchronization state when the app starts. In this state, the app needs to determine whether the data is synced. | -| [SyncStateIsNotSynced](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsNotSynced.mdx) | Base interface for objects with a discriminant `type` property. | -| [SyncStateIsSynced](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSynced.mdx) | Base interface for objects with a discriminant `type` property. | -| [SyncStateIsSyncing](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSyncing.mdx) | Base interface for objects with a discriminant `type` property. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [SyncState](/docs/api-reference/common/local-first/Sync/type-aliases/SyncState.mdx) | TODO: Rework for the new owners API. | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [initialSyncState](/docs/api-reference/common/local-first/Sync/variables/initialSyncState.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/type-aliases/SyncState.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/type-aliases/SyncState.mdx deleted file mode 100644 index 2bd58a52d..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/type-aliases/SyncState.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / SyncState - -```ts -type SyncState = - | SyncStateInitial - | SyncStateIsSyncing - | SyncStateIsSynced - | SyncStateIsNotSynced; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:916](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L916) - -TODO: Rework for the new owners API. - -The possible states of a synchronization process. The `SyncState` can be one -of the following: - -- [SyncStateInitial](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateInitial.mdx) -- [SyncStateIsSyncing](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSyncing.mdx) -- [SyncStateIsSynced](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsSynced.mdx) -- [SyncStateIsNotSynced](/docs/api-reference/common/local-first/Sync/interfaces/SyncStateIsNotSynced.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Sync/variables/initialSyncState.mdx b/.generated/evolu-docs/api-reference/common/local-first/Sync/variables/initialSyncState.mdx deleted file mode 100644 index 61721b96f..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Sync/variables/initialSyncState.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) / initialSyncState - -```ts -const initialSyncState: SyncStateInitial; -``` - -Defined in: [packages/common/src/local-first/Sync.ts:946](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Sync.ts#L946) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/createInitialTimestamp.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/createInitialTimestamp.mdx deleted file mode 100644 index c57396e29..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/createInitialTimestamp.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / createInitialTimestamp - -```ts -function createInitialTimestamp(deps: RandomBytesDep): Timestamp; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:181](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L181) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) | - -## Returns - -[`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/createTimestamp.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/createTimestamp.mdx deleted file mode 100644 index 142c5e5ae..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/createTimestamp.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / createTimestamp - -```ts -function createTimestamp(__namedParameters?: Partial): Timestamp; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:175](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L175) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `__namedParameters` | `Partial`\<[`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx)\> | - -## Returns - -[`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/receiveTimestamp.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/receiveTimestamp.mdx deleted file mode 100644 index 5c2ba0e74..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/receiveTimestamp.mdx +++ /dev/null @@ -1,39 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / receiveTimestamp - -```ts -function receiveTimestamp(deps: TimeDep & TimestampConfigDep): (local: Timestamp, remote: Timestamp) => Result; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:240](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L240) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`TimeDep`](/docs/api-reference/common/Time/interfaces/TimeDep.mdx) & [`TimestampConfigDep`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfigDep.mdx) | - -## Returns - -```ts -(local: Timestamp, remote: Timestamp): Result; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `local` | [`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) | -| `remote` | [`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx), - \| [`TimestampDriftError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampDriftError.mdx) - \| [`TimestampCounterOverflowError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampCounterOverflowError.mdx) - \| [`TimestampTimeOutOfRangeError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampTimeOutOfRangeError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/sendTimestamp.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/sendTimestamp.mdx deleted file mode 100644 index 8f612553b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/sendTimestamp.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / sendTimestamp - -```ts -function sendTimestamp(deps: TimeDep & TimestampConfigDep): (timestamp: Timestamp) => Result; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:214](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L214) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`TimeDep`](/docs/api-reference/common/Time/interfaces/TimeDep.mdx) & [`TimestampConfigDep`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfigDep.mdx) | - -## Returns - -```ts -(timestamp: Timestamp): Result; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `timestamp` | [`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) | - -### Returns - -[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx), - \| [`TimestampDriftError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampDriftError.mdx) - \| [`TimestampCounterOverflowError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampCounterOverflowError.mdx) - \| [`TimestampTimeOutOfRangeError`](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampTimeOutOfRangeError.mdx)\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/timestampBytesToTimestamp.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/timestampBytesToTimestamp.mdx deleted file mode 100644 index ea5dcce46..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/timestampBytesToTimestamp.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / timestampBytesToTimestamp - -```ts -function timestampBytesToTimestamp(timestamp: Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">): Timestamp; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:310](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L310) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `timestamp` | `Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> | - -## Returns - -[`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/timestampToDateIso.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/timestampToDateIso.mdx deleted file mode 100644 index a081a5adf..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/timestampToDateIso.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / timestampToDateIso - -```ts -function timestampToDateIso(timestamp: Timestamp): string & Brand<"DateIso">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:349](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L349) - -Convert a [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx) to an ISO 8601 [DateIso](/docs/api-reference/common/Type/variables/DateIso.mdx) string. - -The conversion uses the timestamp's `millis` (a [Millis](/docs/api-reference/common/Time/variables/Millis.mdx) value) and -`Date.prototype.toISOString()` to produce a `DateIso`. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `timestamp` | [`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) | - -## Returns - -`string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"DateIso"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/timestampToTimestampBytes.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/timestampToTimestampBytes.mdx deleted file mode 100644 index 8a9e4b41b..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/functions/timestampToTimestampBytes.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / timestampToTimestampBytes - -```ts -function timestampToTimestampBytes(timestamp: Timestamp): Uint8Array & Brand<"Length16"> & Brand<"TimestampBytes">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:280](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L280) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `timestamp` | [`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) | - -## Returns - -`Uint8Array`\<`ArrayBufferLike`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Length16"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"TimestampBytes"`\> diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx deleted file mode 100644 index f11993dce..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx +++ /dev/null @@ -1,108 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / Timestamp - -Defined in: [packages/common/src/local-first/Timestamp.ts:161](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L161) - -Hybrid Logical Clock timestamp. - -Timestamps serve as globally unique, causally ordered identifiers for CRDT -messages in Evolu's sync protocol. - -## Why Hybrid Logical Clocks - -Evolu uses Hybrid Logical Clocks (HLC), which combine physical time (millis) -with a logical counter. This hybrid approach preserves causality like logical -clocks while staying close to physical time for better human -interpretability. - -The counter component ensures causality is maintained even when physical -clocks are imperfect. When clocks drift or operations occur concurrently, the -counter increments to establish a total order. This means Evolu achieves -well-defined, eventually-consistent behavior regardless of physical clock -accuracy. - -Vector clocks can accurately track causality and detect concurrent -operations, but they require unbounded space in peer-to-peer systems and -crucially, still don't solve our fundamental problem: when they detect -operations as concurrent, we still need a deterministic way to choose a -winner. Additionally, any deterministic conflict resolution can be gamed by -malicious actors. - -HLC timestamps work well in practice because modern device clocks accurately -reflect the order of sequential edits in the common case. Evolu's `maxDrift` -configuration protects against buggy clocks and prevents problematic -future-dated entries from propagating through the network. - -## References - -- https://muratbuffalo.blogspot.com/2014/07/hybrid-logical-clocks.html -- https://sergeiturukin.com/2017/06/26/hybrid-logical-clocks.html -- https://jaredforsyth.com/posts/hybrid-logical-clocks/ -- https://willowprotocol.org/more/timestamps_really/index.html - -## Privacy Considerations - -Timestamps are metadata visible to relays and collaborators. While it can be -considered a privacy leak, let us explain why it's necessary, and how to -avoid it if maximum privacy is required. - -With real-time communication, participants always see activity (receiving -bytes). We cannot trust anyone not to store that information, so explicitly -exposing timestamps doesn't add additional risk. - -If we really want not to leak user activity, we can implement a local write -queue: - -1. Write changes immediately to a local-only table -2. Periodically and randomly flush messages to sync tables - -**Trade-off:** It breaks real-time collaboration. - -Another technique is generating fake random activity (dummy messages) to mask -real usage patterns. This preserves real-time collaboration but increases -storage and bandwidth usage. - -## Extends - -- [`InferType`](/docs/api-reference/common/Type/type-aliases/InferType.mdx)\<*typeof* [`Timestamp`](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx)\> - -## Properties - - - -### counter - -```ts -counter: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThanOrEqualTo65535"> & Brand<"Counter">; -``` - -#### Inherited from - -[`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx).[`counter`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx#counter) - -*** - - - -### millis - -```ts -millis: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -#### Inherited from - -[`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx).[`millis`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx#millis) - -*** - - - -### nodeId - -```ts -nodeId: string & Brand<"NodeId">; -``` - -#### Inherited from - -[`Timestamp`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx).[`nodeId`](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx#nodeid) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfig.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfig.mdx deleted file mode 100644 index c2ffa4372..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfig.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / TimestampConfig - -Defined in: [packages/common/src/local-first/Timestamp.ts:29](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L29) - -## Properties - - - -### maxDrift - -```ts -readonly maxDrift: number; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:35](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L35) - -Maximum physical clock drift allowed in ms. - -The default value is 5 * 60 * 1000 (5 minutes). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfigDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfigDep.mdx deleted file mode 100644 index 6d7def278..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfigDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / TimestampConfigDep - -Defined in: [packages/common/src/local-first/Timestamp.ts:41](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L41) - -## Properties - - - -### timestampConfig - -```ts -readonly timestampConfig: TimestampConfig; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:42](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L42) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampCounterOverflowError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampCounterOverflowError.mdx deleted file mode 100644 index abd46b4b3..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampCounterOverflowError.mdx +++ /dev/null @@ -1,145 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / TimestampCounterOverflowError - -Defined in: [packages/common/src/local-first/Timestamp.ts:55](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L55) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"TimestampCounterOverflowError"`\> - -## Properties - - - -### type - -```ts -readonly type: "TimestampCounterOverflowError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampDriftError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampDriftError.mdx deleted file mode 100644 index 5450d5981..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampDriftError.mdx +++ /dev/null @@ -1,169 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / TimestampDriftError - -Defined in: [packages/common/src/local-first/Timestamp.ts:50](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L50) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"TimestampDriftError"`\> - -## Properties - - - -### next - -```ts -readonly next: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:51](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L51) - -*** - - - -### now - -```ts -readonly now: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:52](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L52) - -*** - - - -### type - -```ts -readonly type: "TimestampDriftError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampTimeOutOfRangeError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampTimeOutOfRangeError.mdx deleted file mode 100644 index 5d6de3cac..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/interfaces/TimestampTimeOutOfRangeError.mdx +++ /dev/null @@ -1,145 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / TimestampTimeOutOfRangeError - -Defined in: [packages/common/src/local-first/Timestamp.ts:58](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L58) - -Base interface for objects with a discriminant `type` property. - -This enables -[discriminated unions](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions) -(also known as tagged unions) — a pattern where TypeScript uses a literal -`type` field to narrow union types automatically. - -## Why Discriminated Unions? - -Discriminated unions model states that are **mutually exclusive**. Instead of -optional fields and boolean flags that can combine into invalid -configurations, each variant is a distinct type. This makes illegal states -unrepresentable — invalid combinations cannot exist, so bugs cannot create -them. - -Benefits: - -- **Self-documenting** — Union cases immediately show all possible states -- **Compile-time safety** — TypeScript enforces handling all cases -- **Refactoring-friendly** — Adding a new state breaks code that doesn't handle - it - -### Example - -```ts -// Bad: optional fields allow invalid states (no contact info at all) -interface Contact { - readonly email?: Email; - readonly phone?: Phone; -} - -// Good: discriminated union makes "at least one" explicit -interface EmailOnly extends Typed<"EmailOnly"> { - readonly email: Email; -} -interface PhoneOnly extends Typed<"PhoneOnly"> { - readonly phone: Phone; -} -interface EmailAndPhone extends Typed<"EmailAndPhone"> { - readonly email: Email; - readonly phone: Phone; -} - -type ContactInfo = EmailOnly | PhoneOnly | EmailAndPhone; -``` - -```ts -interface Pending extends Typed<"Pending"> { - readonly createdAt: DateIso; -} -interface Shipped extends Typed<"Shipped"> { - readonly trackingNumber: TrackingNumber; -} -interface Delivered extends Typed<"Delivered"> { - readonly deliveredAt: DateIso; -} -interface Cancelled extends Typed<"Cancelled"> { - readonly reason: CancellationReason; -} - -type OrderState = Pending | Shipped | Delivered | Cancelled; - -// TypeScript enforces exhaustiveness via return type -const getStatusMessage = (state: OrderState): string => { - switch (state.type) { - case "Pending": - return "Order placed"; - case "Shipped": - return `Shipped: ${state.trackingNumber}`; - case "Delivered": - return `Delivered on ${state.deliveredAt.toLocaleDateString()}`; - case "Cancelled": - return `Cancelled: ${state.reason}`; - } -}; - -// For void functions, use exhaustiveCheck to ensure all cases are handled -const logState = (state: OrderState): void => { - switch (state.type) { - case "Pending": - console.log("Order placed"); - break; - case "Shipped": - console.log(`Shipped: ${state.trackingNumber}`); - break; - case "Delivered": - console.log( - `Delivered on ${state.deliveredAt.toLocaleDateString()}`, - ); - break; - case "Cancelled": - console.log(`Cancelled: ${state.reason}`); - break; - default: - exhaustiveCheck(state); - } -}; -``` - -## Why `type` (and not e.g. `_tag`)? - -Underscore-prefixing is meant to avoid clashing with domain properties, but -proper discriminated union design means the discriminant IS the domain -concept — there's no clash to avoid. The `type` prop name also aligns with -[Type](/docs/api-reference/common/Type/interfaces/Type.mdx)'s name. If an entity has a meaningful "type" (like product -category), model it as the discriminant itself: - -```ts -interface Electronics extends Typed<"Electronics"> { - voltage: Voltage; -} -interface Clothing extends Typed<"Clothing"> { - size: Size; -} -type Product = Electronics | Clothing; -``` - -## See - - - [exhaustiveCheck](/docs/api-reference/common/Function/functions/exhaustiveCheck.mdx) to ensure all cases are handled in void functions. - - [typed](/docs/api-reference/common/Type/functions/typed.mdx) for runtime-validated typed objects. - -## Extends - -- [`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx)\<`"TimestampTimeOutOfRangeError"`\> - -## Properties - - - -### type - -```ts -readonly type: "TimestampTimeOutOfRangeError"; -``` - -Defined in: [packages/common/src/Type.ts:3456](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/Type.ts#L3456) - -#### Inherited from - -[`Typed`](/docs/api-reference/common/Type/interfaces/Typed.mdx).[`type`](/docs/api-reference/common/Type/interfaces/Typed.mdx#type) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/page.mdx deleted file mode 100644 index 38bde3d12..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/page.mdx +++ /dev/null @@ -1,52 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Timestamp - -Hybrid logical clock timestamps for CRDT ordering. - -## Functions - -| Function | Description | -| ------ | ------ | -| [createInitialTimestamp](/docs/api-reference/common/local-first/Timestamp/functions/createInitialTimestamp.mdx) | - | -| [createTimestamp](/docs/api-reference/common/local-first/Timestamp/functions/createTimestamp.mdx) | - | -| [receiveTimestamp](/docs/api-reference/common/local-first/Timestamp/functions/receiveTimestamp.mdx) | - | -| [sendTimestamp](/docs/api-reference/common/local-first/Timestamp/functions/sendTimestamp.mdx) | - | -| [timestampBytesToTimestamp](/docs/api-reference/common/local-first/Timestamp/functions/timestampBytesToTimestamp.mdx) | - | -| [timestampToDateIso](/docs/api-reference/common/local-first/Timestamp/functions/timestampToDateIso.mdx) | Convert a [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx) to an ISO 8601 [DateIso](/docs/api-reference/common/Type/variables/DateIso.mdx) string. | -| [timestampToTimestampBytes](/docs/api-reference/common/local-first/Timestamp/functions/timestampToTimestampBytes.mdx) | - | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [Timestamp](/docs/api-reference/common/local-first/Timestamp/interfaces/Timestamp.mdx) | Hybrid Logical Clock timestamp. | -| [TimestampConfig](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfig.mdx) | - | -| [TimestampConfigDep](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfigDep.mdx) | - | -| [TimestampCounterOverflowError](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampCounterOverflowError.mdx) | Base interface for objects with a discriminant `type` property. | -| [TimestampDriftError](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampDriftError.mdx) | Base interface for objects with a discriminant `type` property. | -| [TimestampTimeOutOfRangeError](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampTimeOutOfRangeError.mdx) | Base interface for objects with a discriminant `type` property. | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [Counter](/docs/api-reference/common/local-first/Timestamp/type-aliases/Counter.mdx) | - | -| [NodeId](/docs/api-reference/common/local-first/Timestamp/type-aliases/NodeId.mdx) | A NodeId uniquely identifies an owner's device. Generated once per device using cryptographic randomness. | -| [TimestampBytes](/docs/api-reference/common/local-first/Timestamp/type-aliases/TimestampBytes.mdx) | Sortable bytes representation of [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx). | -| [TimestampError](/docs/api-reference/common/local-first/Timestamp/type-aliases/TimestampError.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [Counter](/docs/api-reference/common/local-first/Timestamp/variables/Counter.mdx) | - | -| [defaultTimestampMaxDrift](/docs/api-reference/common/local-first/Timestamp/variables/defaultTimestampMaxDrift.mdx) | Default value for [TimestampConfig.maxDrift](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfig.mdx#maxdrift). | -| [eqTimestamp](/docs/api-reference/common/local-first/Timestamp/variables/eqTimestamp.mdx) | Equality function for comparing [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx). | -| [maxCounter](/docs/api-reference/common/local-first/Timestamp/variables/maxCounter.mdx) | - | -| [maxNodeId](/docs/api-reference/common/local-first/Timestamp/variables/maxNodeId.mdx) | - | -| [minCounter](/docs/api-reference/common/local-first/Timestamp/variables/minCounter.mdx) | - | -| [minNodeId](/docs/api-reference/common/local-first/Timestamp/variables/minNodeId.mdx) | - | -| [NodeId](/docs/api-reference/common/local-first/Timestamp/variables/NodeId.mdx) | A NodeId uniquely identifies an owner's device. Generated once per device using cryptographic randomness. | -| [orderTimestampBytes](/docs/api-reference/common/local-first/Timestamp/variables/orderTimestampBytes.mdx) | An [Order](/docs/api-reference/common/Order/type-aliases/Order.mdx) for [TimestampBytes](/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx). | -| [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx) | Hybrid Logical Clock timestamp. | -| [TimestampBytes](/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx) | Sortable bytes representation of [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx). | -| [timestampBytesLength](/docs/api-reference/common/local-first/Timestamp/variables/timestampBytesLength.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/Counter.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/Counter.mdx deleted file mode 100644 index ec03a8ddd..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/Counter.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / Counter - -```ts -type Counter = number & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Int"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"NonNegative"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"LessThanOrEqualTo65535"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Counter">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:61](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L61) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/NodeId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/NodeId.mdx deleted file mode 100644 index 82e4beeb9..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/NodeId.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / NodeId - -```ts -type NodeId = string & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"NodeId">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:95](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L95) - -A NodeId uniquely identifies an owner's device. Generated once per device -using cryptographic randomness. - -Collision probability (birthday paradox): - -- 1,000 devices: ~0.00000000000271% (negligible). -- 1M devices: ~0.00000271% (1 in 37M chance). -- 135M devices: ~1% chance. -- 4.29B devices: ~50% chance. - -https://lemire.me/blog/2019/12/12/are-64-bit-random-identifiers-free-from-collision - -What happens if different devices generate the same NodeId? - -If devices with the same NodeId use different owners, no issues occur. - -If devices with the same NodeId use the same owner, problems only arise when -they generate CRDT messages with identical timestamps (same millis, counter, -and NodeId). In this case, the protocol sync algorithm treats them as the -same message: the first will be synced with the relay, while the affected -message will not be delivered. The affected devices will see different data -yet they will think they are synced. This is extremely rare and can be -resolved by resetting one device to generate a new NodeId. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/TimestampBytes.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/TimestampBytes.mdx deleted file mode 100644 index 40985c459..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/TimestampBytes.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / TimestampBytes - -```ts -type TimestampBytes = Uint8Array & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"Length16"> & import("/Users/miccy/Dev/workspaces/SQLoot/evolu-plan-b/packages/common/src/Brand").Brand<"TimestampBytes">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L272) - -Sortable bytes representation of [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/TimestampError.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/TimestampError.mdx deleted file mode 100644 index 2617bc1bd..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/type-aliases/TimestampError.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / TimestampError - -```ts -type TimestampError = - | TimestampDriftError - | TimestampCounterOverflowError - | TimestampTimeOutOfRangeError; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:45](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L45) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/Counter.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/Counter.mdx deleted file mode 100644 index 276d231c4..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/Counter.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / Counter - -```ts -const Counter: brand( - "Counter", - lessThanOrEqualTo(65535)(NonNegativeInt), -); -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:61](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L61) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/NodeId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/NodeId.mdx deleted file mode 100644 index e6adefc79..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/NodeId.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / NodeId - -```ts -const NodeId: regex("NodeId", /^[a-f0-9]{16}$/)(String); -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:95](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L95) - -A NodeId uniquely identifies an owner's device. Generated once per device -using cryptographic randomness. - -Collision probability (birthday paradox): - -- 1,000 devices: ~0.00000000000271% (negligible). -- 1M devices: ~0.00000271% (1 in 37M chance). -- 135M devices: ~1% chance. -- 4.29B devices: ~50% chance. - -https://lemire.me/blog/2019/12/12/are-64-bit-random-identifiers-free-from-collision - -What happens if different devices generate the same NodeId? - -If devices with the same NodeId use different owners, no issues occur. - -If devices with the same NodeId use the same owner, problems only arise when -they generate CRDT messages with identical timestamps (same millis, counter, -and NodeId). In this case, the protocol sync algorithm treats them as the -same message: the first will be synced with the relay, while the affected -message will not be delivered. The affected devices will see different data -yet they will think they are synced. This is extremely rare and can be -resolved by resetting one device to generate a new NodeId. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx deleted file mode 100644 index edff91f66..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx +++ /dev/null @@ -1,70 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / Timestamp - -```ts -const Timestamp: object({ - millis: Millis, - counter: Counter, - nodeId: NodeId, -}); -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:161](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L161) - -Hybrid Logical Clock timestamp. - -Timestamps serve as globally unique, causally ordered identifiers for CRDT -messages in Evolu's sync protocol. - -## Why Hybrid Logical Clocks - -Evolu uses Hybrid Logical Clocks (HLC), which combine physical time (millis) -with a logical counter. This hybrid approach preserves causality like logical -clocks while staying close to physical time for better human -interpretability. - -The counter component ensures causality is maintained even when physical -clocks are imperfect. When clocks drift or operations occur concurrently, the -counter increments to establish a total order. This means Evolu achieves -well-defined, eventually-consistent behavior regardless of physical clock -accuracy. - -Vector clocks can accurately track causality and detect concurrent -operations, but they require unbounded space in peer-to-peer systems and -crucially, still don't solve our fundamental problem: when they detect -operations as concurrent, we still need a deterministic way to choose a -winner. Additionally, any deterministic conflict resolution can be gamed by -malicious actors. - -HLC timestamps work well in practice because modern device clocks accurately -reflect the order of sequential edits in the common case. Evolu's `maxDrift` -configuration protects against buggy clocks and prevents problematic -future-dated entries from propagating through the network. - -## References - -- https://muratbuffalo.blogspot.com/2014/07/hybrid-logical-clocks.html -- https://sergeiturukin.com/2017/06/26/hybrid-logical-clocks.html -- https://jaredforsyth.com/posts/hybrid-logical-clocks/ -- https://willowprotocol.org/more/timestamps_really/index.html - -## Privacy Considerations - -Timestamps are metadata visible to relays and collaborators. While it can be -considered a privacy leak, let us explain why it's necessary, and how to -avoid it if maximum privacy is required. - -With real-time communication, participants always see activity (receiving -bytes). We cannot trust anyone not to store that information, so explicitly -exposing timestamps doesn't add additional risk. - -If we really want not to leak user activity, we can implement a local write -queue: - -1. Write changes immediately to a local-only table -2. Periodically and randomly flush messages to sync tables - -**Trade-off:** It breaks real-time collaboration. - -Another technique is generating fake random activity (dummy messages) to mask -real usage patterns. This preserves real-time collaboration but increases -storage and bandwidth usage. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx deleted file mode 100644 index a9f07321e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / TimestampBytes - -```ts -const TimestampBytes: brand( - "TimestampBytes", - length(16)(Uint8Array), -); -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:272](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L272) - -Sortable bytes representation of [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/defaultTimestampMaxDrift.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/defaultTimestampMaxDrift.mdx deleted file mode 100644 index 82d3f39f6..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/defaultTimestampMaxDrift.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / defaultTimestampMaxDrift - -```ts -const defaultTimestampMaxDrift: number; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:39](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L39) - -Default value for [TimestampConfig.maxDrift](/docs/api-reference/common/local-first/Timestamp/interfaces/TimestampConfig.mdx#maxdrift). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/eqTimestamp.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/eqTimestamp.mdx deleted file mode 100644 index 9917bbfc7..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/eqTimestamp.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / eqTimestamp - -```ts -const eqTimestamp: Eq<{ - counter: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThanOrEqualTo65535"> & Brand<"Counter">; - millis: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">; - nodeId: string & Brand<"NodeId">; -}>; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:169](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L169) - -Equality function for comparing [Timestamp](/docs/api-reference/common/local-first/Timestamp/variables/Timestamp.mdx). diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/maxCounter.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/maxCounter.mdx deleted file mode 100644 index 300c0c9d6..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/maxCounter.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / maxCounter - -```ts -const maxCounter: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThanOrEqualTo65535"> & Brand<"Counter">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:68](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L68) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/maxNodeId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/maxNodeId.mdx deleted file mode 100644 index be075cec7..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/maxNodeId.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / maxNodeId - -```ts -const maxNodeId: string & Brand<"NodeId">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:99](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L99) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/minCounter.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/minCounter.mdx deleted file mode 100644 index 46cdb794e..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/minCounter.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / minCounter - -```ts -const minCounter: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThanOrEqualTo65535"> & Brand<"Counter">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:67](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L67) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/minNodeId.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/minNodeId.mdx deleted file mode 100644 index 4fba4eb53..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/minNodeId.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / minNodeId - -```ts -const minNodeId: string & Brand<"NodeId">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:98](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L98) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/orderTimestampBytes.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/orderTimestampBytes.mdx deleted file mode 100644 index b94af6738..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/orderTimestampBytes.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / orderTimestampBytes - -```ts -const orderTimestampBytes: Order = orderUint8Array; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:341](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L341) - -An [Order](/docs/api-reference/common/Order/type-aliases/Order.mdx) for [TimestampBytes](/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx). - -This `Order` uses lexicographic byte order to compare serialized -[TimestampBytes](/docs/api-reference/common/local-first/Timestamp/variables/TimestampBytes.mdx) produced by [timestampToTimestampBytes](/docs/api-reference/common/local-first/Timestamp/functions/timestampToTimestampBytes.mdx). See -[orderUint8Array](/docs/api-reference/common/Order/variables/orderUint8Array.mdx) for the underlying implementation. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/timestampBytesLength.mdx b/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/timestampBytesLength.mdx deleted file mode 100644 index 0a2693f00..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Timestamp/variables/timestampBytesLength.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) / timestampBytesLength - -```ts -const timestampBytesLength: number & Brand<"Int"> & Brand<"NonNegative">; -``` - -Defined in: [packages/common/src/local-first/Timestamp.ts:278](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Timestamp.ts#L278) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Worker/functions/initEvoluWorker.mdx b/.generated/evolu-docs/api-reference/common/local-first/Worker/functions/initEvoluWorker.mdx deleted file mode 100644 index f1382bc54..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Worker/functions/initEvoluWorker.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Worker](/docs/api-reference/common/local-first/Worker/page.mdx) / initEvoluWorker - -```ts -function initEvoluWorker(self: SharedWorkerScope): Task; -``` - -Defined in: [packages/common/src/local-first/Worker.ts:121](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Worker.ts#L121) - -Initializes Evolu worker handlers in a Task-based style. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `self` | [`SharedWorkerScope`](/docs/api-reference/common/Worker/interfaces/SharedWorkerScope.mdx)\<[`EvoluWorkerInput`](/docs/api-reference/common/local-first/Worker/type-aliases/EvoluWorkerInput.mdx)\> | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<`void`, `never`, [`CreateMessagePortDep`](/docs/api-reference/common/Worker/interfaces/CreateMessagePortDep.mdx) & [`RunDbWorkerPortDep`](/docs/api-reference/common/local-first/Worker/interfaces/RunDbWorkerPortDep.mdx)\> - -## Deprecated - -Use platform-specific worker run helpers where available. diff --git a/.generated/evolu-docs/api-reference/common/local-first/Worker/functions/runEvoluWorkerScope.mdx b/.generated/evolu-docs/api-reference/common/local-first/Worker/functions/runEvoluWorkerScope.mdx deleted file mode 100644 index 07afe85a6..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Worker/functions/runEvoluWorkerScope.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Worker](/docs/api-reference/common/local-first/Worker/page.mdx) / runEvoluWorkerScope - -```ts -function runEvoluWorkerScope(deps: CreateMessagePortDep & RunDbWorkerPortDep): (self: SharedWorkerScope) => void; -``` - -Defined in: [packages/common/src/local-first/Worker.ts:64](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Worker.ts#L64) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | [`CreateMessagePortDep`](/docs/api-reference/common/Worker/interfaces/CreateMessagePortDep.mdx) & [`RunDbWorkerPortDep`](/docs/api-reference/common/local-first/Worker/interfaces/RunDbWorkerPortDep.mdx) | - -## Returns - -```ts -(self: SharedWorkerScope): void; -``` - -### Parameters - -| Parameter | Type | -| ------ | ------ | -| `self` | [`SharedWorkerScope`](/docs/api-reference/common/Worker/interfaces/SharedWorkerScope.mdx)\<[`EvoluWorkerInput`](/docs/api-reference/common/local-first/Worker/type-aliases/EvoluWorkerInput.mdx)\> | - -### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Worker/interfaces/EvoluWorkerDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Worker/interfaces/EvoluWorkerDep.mdx deleted file mode 100644 index 9dce41694..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Worker/interfaces/EvoluWorkerDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Worker](/docs/api-reference/common/local-first/Worker/page.mdx) / EvoluWorkerDep - -Defined in: [packages/common/src/local-first/Worker.ts:29](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Worker.ts#L29) - -## Properties - - - -### evoluWorker - -```ts -readonly evoluWorker: EvoluWorker; -``` - -Defined in: [packages/common/src/local-first/Worker.ts:30](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Worker.ts#L30) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Worker/interfaces/RunDbWorkerPortDep.mdx b/.generated/evolu-docs/api-reference/common/local-first/Worker/interfaces/RunDbWorkerPortDep.mdx deleted file mode 100644 index dcb25211c..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Worker/interfaces/RunDbWorkerPortDep.mdx +++ /dev/null @@ -1,32 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Worker](/docs/api-reference/common/local-first/Worker/page.mdx) / RunDbWorkerPortDep - -Defined in: [packages/common/src/local-first/Worker.ts:55](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Worker.ts#L55) - -## Properties - - - -### runDbWorkerPort() - -```ts -readonly runDbWorkerPort: (config: { - brokerPort: MessagePort; - name: string & Brand<"UrlSafeString"> & Brand<"SimpleName">; - port: MessagePort; -}) => void; -``` - -Defined in: [packages/common/src/local-first/Worker.ts:56](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Worker.ts#L56) - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `config` | \{ `brokerPort`: [`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx)\<[`DbWorkerLeaderOutput`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderOutput.mdx), [`DbWorkerLeaderInput`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderInput.mdx)\>; `name`: `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"UrlSafeString"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"SimpleName"`\>; `port`: [`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx)\<[`DbWorkerOutput`](/docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerOutput.mdx), [`DbWorkerInput`](/docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerInput.mdx)\>; \} | -| `config.brokerPort` | [`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx)\<[`DbWorkerLeaderOutput`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderOutput.mdx), [`DbWorkerLeaderInput`](/docs/api-reference/common/local-first/DbWorkerProtocol/interfaces/DbWorkerLeaderInput.mdx)\> | -| `config.name` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"UrlSafeString"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"SimpleName"`\> | -| `config.port` | [`MessagePort`](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx)\<[`DbWorkerOutput`](/docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerOutput.mdx), [`DbWorkerInput`](/docs/api-reference/common/local-first/DbWorkerProtocol/type-aliases/DbWorkerInput.mdx)\> | - -#### Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/common/local-first/Worker/page.mdx b/.generated/evolu-docs/api-reference/common/local-first/Worker/page.mdx deleted file mode 100644 index dc7481bc4..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Worker/page.mdx +++ /dev/null @@ -1,25 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / local-first/Worker - -SharedWorker integration for Evolu. - -## Functions - -| Function | Description | -| ------ | ------ | -| [~~initEvoluWorker~~](/docs/api-reference/common/local-first/Worker/functions/initEvoluWorker.mdx) | Initializes Evolu worker handlers in a Task-based style. | -| [runEvoluWorkerScope](/docs/api-reference/common/local-first/Worker/functions/runEvoluWorkerScope.mdx) | - | - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [EvoluWorkerDep](/docs/api-reference/common/local-first/Worker/interfaces/EvoluWorkerDep.mdx) | - | -| [RunDbWorkerPortDep](/docs/api-reference/common/local-first/Worker/interfaces/RunDbWorkerPortDep.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [EvoluTabOutput](/docs/api-reference/common/local-first/Worker/type-aliases/EvoluTabOutput.mdx) | - | -| [EvoluWorker](/docs/api-reference/common/local-first/Worker/type-aliases/EvoluWorker.mdx) | - | -| [EvoluWorkerInput](/docs/api-reference/common/local-first/Worker/type-aliases/EvoluWorkerInput.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/common/local-first/Worker/type-aliases/EvoluTabOutput.mdx b/.generated/evolu-docs/api-reference/common/local-first/Worker/type-aliases/EvoluTabOutput.mdx deleted file mode 100644 index 6a99c683a..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Worker/type-aliases/EvoluTabOutput.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Worker](/docs/api-reference/common/local-first/Worker/page.mdx) / EvoluTabOutput - -```ts -type EvoluTabOutput = - | { - entry: ConsoleEntry; - type: "ConsoleEntry"; -} - | { - error: EvoluError; - type: "EvoluError"; -}; -``` - -Defined in: [packages/common/src/local-first/Worker.ts:45](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Worker.ts#L45) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Worker/type-aliases/EvoluWorker.mdx b/.generated/evolu-docs/api-reference/common/local-first/Worker/type-aliases/EvoluWorker.mdx deleted file mode 100644 index f58edad95..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Worker/type-aliases/EvoluWorker.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Worker](/docs/api-reference/common/local-first/Worker/page.mdx) / EvoluWorker - -```ts -type EvoluWorker = SharedWorker; -``` - -Defined in: [packages/common/src/local-first/Worker.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Worker.ts#L27) diff --git a/.generated/evolu-docs/api-reference/common/local-first/Worker/type-aliases/EvoluWorkerInput.mdx b/.generated/evolu-docs/api-reference/common/local-first/Worker/type-aliases/EvoluWorkerInput.mdx deleted file mode 100644 index 8cf544156..000000000 --- a/.generated/evolu-docs/api-reference/common/local-first/Worker/type-aliases/EvoluWorkerInput.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/common](/docs/api-reference/common/page.mdx) / [local-first/Worker](/docs/api-reference/common/local-first/Worker/page.mdx) / EvoluWorkerInput - -```ts -type EvoluWorkerInput = - | { - port: NativeMessagePort; - type: "InitTab"; -} - | { - brokerPort: NativeMessagePort; - name: SimpleName; - port: NativeMessagePort; - type: "InitEvolu"; -}; -``` - -Defined in: [packages/common/src/local-first/Worker.ts:33](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/common/src/local-first/Worker.ts#L33) diff --git a/.generated/evolu-docs/api-reference/common/page.mdx b/.generated/evolu-docs/api-reference/common/page.mdx deleted file mode 100644 index 84decbbde..000000000 --- a/.generated/evolu-docs/api-reference/common/page.mdx +++ /dev/null @@ -1,64 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / @evolu/common - -## Modules - -| Module | Description | -| ------ | ------ | -| [Array](/docs/api-reference/common/Array/page.mdx) | Array helpers that help TypeScript help you. | -| [Assert](/docs/api-reference/common/Assert/page.mdx) | Runtime assertions for invariant checking. | -| [BigInt](/docs/api-reference/common/BigInt/page.mdx) | BigInt arithmetic and comparison utilities. | -| [Brand](/docs/api-reference/common/Brand/page.mdx) | A utility interface for creating branded types. | -| [Buffer](/docs/api-reference/common/Buffer/page.mdx) | Binary data handling and byte array utilities. | -| [Cache](/docs/api-reference/common/Cache/page.mdx) | Cache implementations including LRU eviction. | -| [Callbacks](/docs/api-reference/common/Callbacks/page.mdx) | Request-response correlation for callbacks across boundaries. | -| [Console](/docs/api-reference/common/Console/page.mdx) | Platform-agnostic console with structured logging. | -| [Crypto](/docs/api-reference/common/Crypto/page.mdx) | Cryptographic utilities. | -| [Eq](/docs/api-reference/common/Eq/page.mdx) | Equality comparison functions and utilities. | -| [Error](/docs/api-reference/common/Error/page.mdx) | Error types and utilities for safe error handling. | -| [Function](/docs/api-reference/common/Function/page.mdx) | Function utilities including exhaustive checks and composition. | -| [Identicon](/docs/api-reference/common/Identicon/page.mdx) | Visual identicon generation from IDs. | -| [Instances](/docs/api-reference/common/Instances/page.mdx) | A multiton for disposable instances. | -| [Listeners](/docs/api-reference/common/Listeners/page.mdx) | Simple publish-subscribe mechanism for event broadcasting. | -| [local-first/Db](/docs/api-reference/common/local-first/Db/page.mdx) | Local-first database implementation. | -| [local-first/DbWorkerProtocol](/docs/api-reference/common/local-first/DbWorkerProtocol/page.mdx) | Database Worker message protocol. | -| [local-first/Error](/docs/api-reference/common/local-first/Error/page.mdx) | Evolu error types. | -| [local-first/Evolu](/docs/api-reference/common/local-first/Evolu/page.mdx) | Local-first platform. | -| [local-first/Kysely](/docs/api-reference/common/local-first/Kysely/page.mdx) | Kysely query builder extensions for Evolu. | -| [local-first/LocalAuth](/docs/api-reference/common/local-first/LocalAuth/page.mdx) | Local authentication and owner management. | -| [local-first/Owner](/docs/api-reference/common/local-first/Owner/page.mdx) | Owner identity and cryptographic key derivation. | -| [local-first/Protocol](/docs/api-reference/common/local-first/Protocol/page.mdx) | Evolu Protocol | -| [local-first/Query](/docs/api-reference/common/local-first/Query/page.mdx) | Query execution and caching. | -| [local-first/Relay](/docs/api-reference/common/local-first/Relay/page.mdx) | Relay server for data synchronization. | -| [local-first/Schema](/docs/api-reference/common/local-first/Schema/page.mdx) | Database schema definition and validation. | -| [local-first/Storage](/docs/api-reference/common/local-first/Storage/page.mdx) | Encrypted storage layer for local-first data. | -| [local-first/Sync](/docs/api-reference/common/local-first/Sync/page.mdx) | Synchronization logic between client and relay. | -| [local-first/Timestamp](/docs/api-reference/common/local-first/Timestamp/page.mdx) | Hybrid logical clock timestamps for CRDT ordering. | -| [local-first/Worker](/docs/api-reference/common/local-first/Worker/page.mdx) | SharedWorker integration for Evolu. | -| [Microtask](/docs/api-reference/common/Microtask/page.mdx) | Microtask queue utilities. | -| [Number](/docs/api-reference/common/Number/page.mdx) | Number arithmetic, comparison, and branded numeric types. | -| [Object](/docs/api-reference/common/Object/page.mdx) | Object utilities. | -| [Option](/docs/api-reference/common/Option/page.mdx) | Optional value container. | -| [Order](/docs/api-reference/common/Order/page.mdx) | Ordering and comparison utilities. | -| [Platform](/docs/api-reference/common/Platform/page.mdx) | Runtime platform detection utilities. | -| [Polyfills](/docs/api-reference/common/Polyfills/page.mdx) | Polyfills. | -| [Random](/docs/api-reference/common/Random/page.mdx) | Seeded random number generation. | -| [Redacted](/docs/api-reference/common/Redacted/page.mdx) | Sensitive value protection against accidental exposure. | -| [Ref](/docs/api-reference/common/Ref/page.mdx) | Mutable reference container for state management. | -| [RefCount](/docs/api-reference/common/RefCount/page.mdx) | Reference counting for arbitrary keys. | -| [Relation](/docs/api-reference/common/Relation/page.mdx) | Bidirectional relations with O(1) lookup in both directions. | -| [Resources](/docs/api-reference/common/Resources/page.mdx) | Reference-counted resource management with delayed disposal. | -| [Result](/docs/api-reference/common/Result/page.mdx) | Type-safe error handling with Result types. | -| [Schedule](/docs/api-reference/common/Schedule/page.mdx) | Composable scheduling strategies. | -| [Set](/docs/api-reference/common/Set/page.mdx) | Set helpers. | -| [Skiplist](/docs/api-reference/common/Skiplist/page.mdx) | Skiplist data structure with probabilistic level generation. | -| [Sqlite](/docs/api-reference/common/Sqlite/page.mdx) | SQLite database abstraction and query execution. | -| [Store](/docs/api-reference/common/Store/page.mdx) | Observable state container with change notifications. | -| [String](/docs/api-reference/common/String/page.mdx) | String utilities for safe value conversion. | -| [Task](/docs/api-reference/common/Task/page.mdx) | JavaScript-native structured concurrency. | -| [Test](/docs/api-reference/common/Test/page.mdx) | Test utilities for deterministic testing. | -| [Time](/docs/api-reference/common/Time/page.mdx) | Time representations, durations, and scheduling utilities. | -| [Tracer](/docs/api-reference/common/Tracer/page.mdx) | Minimal tracer interface for observability. | -| [Type](/docs/api-reference/common/Type/page.mdx) | Runtime type validation, parsing, and branded types. | -| [Types](/docs/api-reference/common/Types/page.mdx) | TypeScript utility types. | -| [WebSocket](/docs/api-reference/common/WebSocket/page.mdx) | WebSocket with auto-reconnect. | -| [Worker](/docs/api-reference/common/Worker/page.mdx) | Platform-agnostic Worker and MessageChannel abstractions. | diff --git a/.generated/evolu-docs/api-reference/nodejs/functions/createMessageChannel.mdx b/.generated/evolu-docs/api-reference/nodejs/functions/createMessageChannel.mdx deleted file mode 100644 index d891da856..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/functions/createMessageChannel.mdx +++ /dev/null @@ -1,20 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / createMessageChannel - -```ts -function createMessageChannel(): MessageChannel; -``` - -Defined in: [nodejs/src/Worker.ts:34](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Worker.ts#L34) - -Creates a [MessageChannel](/docs/api-reference/common/Worker/interfaces/MessageChannel.mdx) from Node.js `worker_threads.MessageChannel`. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Returns - -[`MessageChannel`](/docs/api-reference/common/Worker/interfaces/MessageChannel.mdx)\<`Input`, `Output`\> diff --git a/.generated/evolu-docs/api-reference/nodejs/functions/createRelayDeps.mdx b/.generated/evolu-docs/api-reference/nodejs/functions/createRelayDeps.mdx deleted file mode 100644 index a39b5ef45..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/functions/createRelayDeps.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / createRelayDeps - -```ts -function createRelayDeps(): RelayDeps; -``` - -Defined in: [nodejs/src/local-first/Relay.ts:43](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/local-first/Relay.ts#L43) - -Dependencies for [startRelay](/docs/api-reference/nodejs/functions/startRelay.mdx) using better-sqlite3. - -## Returns - -[`RelayDeps`](/docs/api-reference/nodejs/type-aliases/RelayDeps.mdx) diff --git a/.generated/evolu-docs/api-reference/nodejs/functions/createTimingSafeEqual.mdx b/.generated/evolu-docs/api-reference/nodejs/functions/createTimingSafeEqual.mdx deleted file mode 100644 index f68af4187..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/functions/createTimingSafeEqual.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / createTimingSafeEqual - -```ts -function createTimingSafeEqual(): TimingSafeEqual; -``` - -Defined in: [nodejs/src/Crypto.ts:4](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Crypto.ts#L4) - -## Returns - -[`TimingSafeEqual`](/docs/api-reference/common/Crypto/type-aliases/TimingSafeEqual.mdx) diff --git a/.generated/evolu-docs/api-reference/nodejs/functions/createWorker.mdx b/.generated/evolu-docs/api-reference/nodejs/functions/createWorker.mdx deleted file mode 100644 index b9ee88cad..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/functions/createWorker.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / createWorker - -```ts -function createWorker(nativeWorker: Worker): Worker; -``` - -Defined in: [nodejs/src/Worker.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Worker.ts#L27) - -Creates an Evolu [Worker](/docs/api-reference/common/Worker/interfaces/Worker.mdx) from Node.js `worker_threads.Worker`. - -## Type Parameters - -| Type Parameter | -| ------ | -| `Input` | -| `Output` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `nativeWorker` | `Worker` | - -## Returns - -[`Worker`](/docs/api-reference/common/Worker/interfaces/Worker.mdx)\<`Input`, `Output`\> diff --git a/.generated/evolu-docs/api-reference/nodejs/functions/createWorkerScope.mdx b/.generated/evolu-docs/api-reference/nodejs/functions/createWorkerScope.mdx deleted file mode 100644 index 98bba594f..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/functions/createWorkerScope.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / createWorkerScope - -```ts -function createWorkerScope(nativeParentPort?: MessagePort | null): WorkerScope; -``` - -Defined in: [nodejs/src/Worker.ts:72](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Worker.ts#L72) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Parameters - -| Parameter | Type | Default value | -| ------ | ------ | ------ | -| `nativeParentPort` | `MessagePort` \| `null` | `workerParentPort` | - -## Returns - -[`WorkerScope`](/docs/api-reference/common/Worker/interfaces/WorkerScope.mdx)\<`Input`, `Output`\> - -## Deprecated - -Use [createWorkerSelf](/docs/api-reference/nodejs/functions/createWorkerSelf.mdx). Retained for backwards compatibility. diff --git a/.generated/evolu-docs/api-reference/nodejs/functions/createWorkerSelf.mdx b/.generated/evolu-docs/api-reference/nodejs/functions/createWorkerSelf.mdx deleted file mode 100644 index 657477ca8..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/functions/createWorkerSelf.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / createWorkerSelf - -```ts -function createWorkerSelf(nativeParentPort?: MessagePort | null): WorkerSelf; -``` - -Defined in: [nodejs/src/Worker.ts:59](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Worker.ts#L59) - -Creates an Evolu [WorkerSelf](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx) inside a Node.js worker thread. - -By default it uses `worker_threads.parentPort`. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Parameters - -| Parameter | Type | Default value | -| ------ | ------ | ------ | -| `nativeParentPort` | `MessagePort` \| `null` | `workerParentPort` | - -## Returns - -[`WorkerSelf`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx)\<`Input`, `Output`\> diff --git a/.generated/evolu-docs/api-reference/nodejs/functions/startRelay.mdx b/.generated/evolu-docs/api-reference/nodejs/functions/startRelay.mdx deleted file mode 100644 index ce832eba0..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/functions/startRelay.mdx +++ /dev/null @@ -1,35 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / startRelay - -```ts -function startRelay(__namedParameters: NodeJsRelayConfig): Task; -``` - -Defined in: [nodejs/src/local-first/Relay.ts:69](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/local-first/Relay.ts#L69) - -Starts an Evolu relay server using Node.js. - -Use [createRelayDeps](/docs/api-reference/nodejs/functions/createRelayDeps.mdx) to create dependencies for better-sqlite3, or -provide a custom SQLite driver implementation. - -### Example - -```ts -const deps = { ...createRelayDeps(), console }; - -await using run = createRunner(deps); -await using stack = run.stack(); - -await stack.use(startRelay({ port: 4000 })); - -await run.deps.shutdown; -``` - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `__namedParameters` | [`NodeJsRelayConfig`](/docs/api-reference/nodejs/interfaces/NodeJsRelayConfig.mdx) | - -## Returns - -[`Task`](/docs/api-reference/common/Task/type-aliases/Task.mdx)\<[`Relay`](/docs/api-reference/common/local-first/Relay/interfaces/Relay.mdx), [`SqliteError`](/docs/api-reference/common/Sqlite/interfaces/SqliteError.mdx), [`RelayDeps`](/docs/api-reference/nodejs/type-aliases/RelayDeps.mdx)\> diff --git a/.generated/evolu-docs/api-reference/nodejs/interfaces/NodeJsRelayConfig.mdx b/.generated/evolu-docs/api-reference/nodejs/interfaces/NodeJsRelayConfig.mdx deleted file mode 100644 index 9408e1dcc..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/interfaces/NodeJsRelayConfig.mdx +++ /dev/null @@ -1,164 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / NodeJsRelayConfig - -Defined in: [nodejs/src/local-first/Relay.ts:35](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/local-first/Relay.ts#L35) - -## Extends - -- [`RelayConfig`](/docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx) - -## Properties - - - -### isOwnerAllowed()? - -```ts -readonly optional isOwnerAllowed: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">) => Awaitable; -``` - -Defined in: common/dist/src/local-first/Relay.d.ts:64 - -Optional callback to check if an [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) is allowed to access the -relay. If this callback is not provided, all owners are allowed. - -The callback receives the [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) and returns a [Awaitable](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx) -boolean: `true` to allow access, or `false` to deny. - -The callback can be synchronous (for SQLite or in-memory checks) or -asynchronous (for calling remote APIs). - -The callback returns a boolean rather than an error type because error -handling and logging are the responsibility of the callback -implementation. - -OwnerId is used rather than short-lived tokens because this only controls -relay access, not write permissions. Since all data is encrypted on the -relay, OwnerId exposure is safe. - -Owners specify which relays to connect to via `OwnerTransport`. In -WebSocket-based implementations, this check occurs before accepting the -connection, with the OwnerId typically extracted from the URL Path (e.g., -`ws://localhost:4000/`). The relay requires the URL to be in the -correct format for OwnerId extraction. - -### Example - -```ts -// Client -const transport = createOwnerWebSocketTransport({ - url: "wss://relay.evolu.dev", - ownerId: owner.id, -}); - -const evolu = createEvolu(deps)(Schema, { - transports: [transport], -}); - -// Relay -isOwnerAllowed: (ownerId) => - Promise.resolve(ownerId === "6jy_2F4RT5qqeLgJ14_dnQ"), -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | - -#### Returns - -[`Awaitable`](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx)\<`boolean`\> - -#### Inherited from - -[`RelayConfig`](/docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx).[`isOwnerAllowed`](/docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx#isownerallowed) - -*** - - - -### isOwnerWithinQuota() - -```ts -readonly isOwnerWithinQuota: (ownerId: string & Brand<"Id"> & Brand<"OwnerId">, requiredBytes: number & Brand<"Int"> & Brand<"NonNegative"> & Brand<"Positive">) => Awaitable; -``` - -Defined in: common/dist/src/local-first/Storage.d.ts:47 - -Callback called before an attempt to write, to check if an [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) -has sufficient quota for the write. - -The callback receives the [OwnerId](/docs/api-reference/common/local-first/Owner/variables/OwnerId.mdx) and the total bytes that would be -stored after the write (current stored bytes plus incoming bytes), and -returns a [Awaitable](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx) boolean: `true` to allow the write, or `false` -to deny it due to quota limits. - -The callback can be synchronous (for SQLite or in-memory checks) or -asynchronous (for calling remote APIs). - -The callback returns a boolean rather than an error because error handling -and logging are the responsibility of the callback implementation. - -### Example - -```ts -// Client -// evolu.subscribeError - -// Relay -isOwnerWithinQuota: (ownerId, requiredBytes) => { - console.log(ownerId, requiredBytes); - // Check error via evolu.subscribeError - return true; -}; -``` - -#### Parameters - -| Parameter | Type | -| ------ | ------ | -| `ownerId` | `string` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Id"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"OwnerId"`\> | -| `requiredBytes` | `number` & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Int"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"NonNegative"`\> & [`Brand`](/docs/api-reference/common/Brand/interfaces/Brand.mdx)\<`"Positive"`\> | - -#### Returns - -[`Awaitable`](/docs/api-reference/common/Types/type-aliases/Awaitable.mdx)\<`boolean`\> - -#### Inherited from - -[`RelayConfig`](/docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx).[`isOwnerWithinQuota`](/docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx#isownerwithinquota) - -*** - - - -### name? - -```ts -readonly optional name: string & Brand<"UrlSafeString"> & Brand<"SimpleName">; -``` - -Defined in: common/dist/src/local-first/Relay.d.ts:20 - -The relay name. - -Implementations can use this for identification purposes (e.g., database -file name, logging). - -#### Inherited from - -[`RelayConfig`](/docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx).[`name`](/docs/api-reference/common/local-first/Relay/interfaces/RelayConfig.mdx#name) - -*** - - - -### port? - -```ts -readonly optional port: number; -``` - -Defined in: [nodejs/src/local-first/Relay.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/local-first/Relay.ts#L37) - -The port number for the HTTP server. diff --git a/.generated/evolu-docs/api-reference/nodejs/interfaces/ShutdownDep.mdx b/.generated/evolu-docs/api-reference/nodejs/interfaces/ShutdownDep.mdx deleted file mode 100644 index d22f53945..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/interfaces/ShutdownDep.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / ShutdownDep - -Defined in: [nodejs/src/Task.ts:26](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Task.ts#L26) - -## Properties - - - -### shutdown - -```ts -readonly shutdown: Shutdown; -``` - -Defined in: [nodejs/src/Task.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Task.ts#L27) diff --git a/.generated/evolu-docs/api-reference/nodejs/page.mdx b/.generated/evolu-docs/api-reference/nodejs/page.mdx deleted file mode 100644 index b3083696a..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/page.mdx +++ /dev/null @@ -1,41 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / @evolu/nodejs - -## Interfaces - -| Interface | Description | -| ------ | ------ | -| [NodeJsRelayConfig](/docs/api-reference/nodejs/interfaces/NodeJsRelayConfig.mdx) | - | -| [ShutdownDep](/docs/api-reference/nodejs/interfaces/ShutdownDep.mdx) | - | - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [RelayDeps](/docs/api-reference/nodejs/type-aliases/RelayDeps.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [createBetterSqliteDriver](/docs/api-reference/nodejs/variables/createBetterSqliteDriver.mdx) | - | -| [createMessagePort](/docs/api-reference/nodejs/variables/createMessagePort.mdx) | Creates an Evolu [MessagePort](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx) from Node.js native message port. | -| [~~createRun~~](/docs/api-reference/nodejs/variables/createRun.mdx) | - | - -## Functions - -| Function | Description | -| ------ | ------ | -| [createMessageChannel](/docs/api-reference/nodejs/functions/createMessageChannel.mdx) | Creates a [MessageChannel](/docs/api-reference/common/Worker/interfaces/MessageChannel.mdx) from Node.js `worker_threads.MessageChannel`. | -| [createRelayDeps](/docs/api-reference/nodejs/functions/createRelayDeps.mdx) | Dependencies for [startRelay](/docs/api-reference/nodejs/functions/startRelay.mdx) using better-sqlite3. | -| [createTimingSafeEqual](/docs/api-reference/nodejs/functions/createTimingSafeEqual.mdx) | - | -| [createWorker](/docs/api-reference/nodejs/functions/createWorker.mdx) | Creates an Evolu [Worker](/docs/api-reference/common/Worker/interfaces/Worker.mdx) from Node.js `worker_threads.Worker`. | -| [~~createWorkerScope~~](/docs/api-reference/nodejs/functions/createWorkerScope.mdx) | - | -| [createWorkerSelf](/docs/api-reference/nodejs/functions/createWorkerSelf.mdx) | Creates an Evolu [WorkerSelf](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx) inside a Node.js worker thread. | -| [startRelay](/docs/api-reference/nodejs/functions/startRelay.mdx) | Starts an Evolu relay server using Node.js. | - -## Node.js Runner - -| Name | Description | -| ------ | ------ | -| [Shutdown](/docs/api-reference/nodejs/type-aliases/Shutdown.mdx) | A promise that resolves when a termination signal is received. | -| [createRunner](/docs/api-reference/nodejs/variables/createRunner.mdx) | Creates [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) for Node.js with global error handling and graceful shutdown. | diff --git a/.generated/evolu-docs/api-reference/nodejs/type-aliases/RelayDeps.mdx b/.generated/evolu-docs/api-reference/nodejs/type-aliases/RelayDeps.mdx deleted file mode 100644 index 1f4a1ffea..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/type-aliases/RelayDeps.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / RelayDeps - -```ts -type RelayDeps = CreateSqliteDriverDep & RandomDep & TimingSafeEqualDep; -``` - -Defined in: [nodejs/src/local-first/Relay.ts:40](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/local-first/Relay.ts#L40) diff --git a/.generated/evolu-docs/api-reference/nodejs/type-aliases/Shutdown.mdx b/.generated/evolu-docs/api-reference/nodejs/type-aliases/Shutdown.mdx deleted file mode 100644 index c5c5f0857..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/type-aliases/Shutdown.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / Shutdown - -```ts -type Shutdown = Promise; -``` - -Defined in: [nodejs/src/Task.ts:24](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Task.ts#L24) - -A promise that resolves when a termination signal is received. - -Resolves on `SIGINT` (Ctrl-C), `SIGTERM` (OS/k8s/Docker termination), -`SIGHUP` (console close/terminal disconnect), or `SIGBREAK` (Windows -Ctrl-Break). diff --git a/.generated/evolu-docs/api-reference/nodejs/variables/createBetterSqliteDriver.mdx b/.generated/evolu-docs/api-reference/nodejs/variables/createBetterSqliteDriver.mdx deleted file mode 100644 index c916e2cca..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/variables/createBetterSqliteDriver.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / createBetterSqliteDriver - -```ts -const createBetterSqliteDriver: CreateSqliteDriver; -``` - -Defined in: [nodejs/src/Sqlite.ts:11](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Sqlite.ts#L11) diff --git a/.generated/evolu-docs/api-reference/nodejs/variables/createMessagePort.mdx b/.generated/evolu-docs/api-reference/nodejs/variables/createMessagePort.mdx deleted file mode 100644 index 05f21f14c..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/variables/createMessagePort.mdx +++ /dev/null @@ -1,9 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / createMessagePort - -```ts -const createMessagePort: CreateMessagePort; -``` - -Defined in: [nodejs/src/Worker.ts:51](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Worker.ts#L51) - -Creates an Evolu [MessagePort](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx) from Node.js native message port. diff --git a/.generated/evolu-docs/api-reference/nodejs/variables/createRun.mdx b/.generated/evolu-docs/api-reference/nodejs/variables/createRun.mdx deleted file mode 100644 index 1c7d49c84..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/variables/createRun.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / createRun - -```ts -const createRun: typeof createRunner = createRunner; -``` - -Defined in: [nodejs/src/Task.ts:105](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Task.ts#L105) - -## Deprecated - -Use [createRunner](/docs/api-reference/nodejs/variables/createRunner.mdx). Kept for `upstream/common-v8` -compatibility. diff --git a/.generated/evolu-docs/api-reference/nodejs/variables/createRunner.mdx b/.generated/evolu-docs/api-reference/nodejs/variables/createRunner.mdx deleted file mode 100644 index 9449e1927..000000000 --- a/.generated/evolu-docs/api-reference/nodejs/variables/createRunner.mdx +++ /dev/null @@ -1,34 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) / createRunner - -```ts -const createRunner: CreateRunner; -``` - -Defined in: [nodejs/src/Task.ts:60](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/nodejs/src/Task.ts#L60) - -Creates [Runner](/docs/api-reference/common/Task/interfaces/Runner.mdx) for Node.js with global error handling and graceful -shutdown. - -Registers `uncaughtException` and `unhandledRejection` handlers that log -errors and initiate graceful shutdown. Adds a `shutdown` promise to deps that -resolves on termination signals (`SIGINT`, `SIGTERM`, `SIGHUP`). Handlers are -removed when the Runner is disposed. - -### Example - -```ts -const console = createConsole({ - formatter: createConsoleFormatter()({ - timestampFormat: "relative", - }), -}); - -const deps = { ...createRelayDeps(), console }; - -await using run = createRunner(deps); -await using stack = run.stack(); - -await stack.use(startRelay({ port: 4000 })); - -await run.deps.shutdown; -``` diff --git a/.generated/evolu-docs/api-reference/page.mdx b/.generated/evolu-docs/api-reference/page.mdx deleted file mode 100644 index 4d6ee2aa3..000000000 --- a/.generated/evolu-docs/api-reference/page.mdx +++ /dev/null @@ -1,13 +0,0 @@ -## Modules - -| Module | Description | -| ------ | ------ | -| [@evolu/bun](/docs/api-reference/bun/page.mdx) | Bun-specific Database Worker implementation. | -| [@evolu/common](/docs/api-reference/common/page.mdx) | - | -| [@evolu/nodejs](/docs/api-reference/nodejs/page.mdx) | - | -| [@evolu/react](/docs/api-reference/react/page.mdx) | - | -| [@evolu/react-native](/docs/api-reference/react-native/page.mdx) | - | -| [@evolu/react-web](/docs/api-reference/react-web/page.mdx) | - | -| [@evolu/svelte](/docs/api-reference/svelte/page.mdx) | - | -| [@evolu/vue](/docs/api-reference/vue/page.mdx) | - | -| [@evolu/web](/docs/api-reference/web/page.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/react-native/exports/bare-op-sqlite/page.mdx b/.generated/evolu-docs/api-reference/react-native/exports/bare-op-sqlite/page.mdx deleted file mode 100644 index cded6017b..000000000 --- a/.generated/evolu-docs/api-reference/react-native/exports/bare-op-sqlite/page.mdx +++ /dev/null @@ -1,8 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / exports/bare-op-sqlite - -## Variables - -| Variable | Description | -| ------ | ------ | -| [evoluReactNativeDeps](/docs/api-reference/react-native/exports/bare-op-sqlite/variables/evoluReactNativeDeps.mdx) | - | -| [localAuth](/docs/api-reference/react-native/exports/bare-op-sqlite/variables/localAuth.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/react-native/exports/bare-op-sqlite/variables/evoluReactNativeDeps.mdx b/.generated/evolu-docs/api-reference/react-native/exports/bare-op-sqlite/variables/evoluReactNativeDeps.mdx deleted file mode 100644 index e3c544ce5..000000000 --- a/.generated/evolu-docs/api-reference/react-native/exports/bare-op-sqlite/variables/evoluReactNativeDeps.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [exports/bare-op-sqlite](/docs/api-reference/react-native/exports/bare-op-sqlite/page.mdx) / evoluReactNativeDeps - -```ts -const evoluReactNativeDeps: EvoluDeps; -``` - -Defined in: [react-native/src/exports/bare-op-sqlite.ts:22](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react-native/src/exports/bare-op-sqlite.ts#L22) diff --git a/.generated/evolu-docs/api-reference/react-native/exports/bare-op-sqlite/variables/localAuth.mdx b/.generated/evolu-docs/api-reference/react-native/exports/bare-op-sqlite/variables/localAuth.mdx deleted file mode 100644 index 892414417..000000000 --- a/.generated/evolu-docs/api-reference/react-native/exports/bare-op-sqlite/variables/localAuth.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [exports/bare-op-sqlite](/docs/api-reference/react-native/exports/bare-op-sqlite/page.mdx) / localAuth - -```ts -const localAuth: LocalAuth; -``` - -Defined in: [react-native/src/exports/bare-op-sqlite.ts:24](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react-native/src/exports/bare-op-sqlite.ts#L24) diff --git a/.generated/evolu-docs/api-reference/react-native/exports/expo-op-sqlite/page.mdx b/.generated/evolu-docs/api-reference/react-native/exports/expo-op-sqlite/page.mdx deleted file mode 100644 index 10d2b394a..000000000 --- a/.generated/evolu-docs/api-reference/react-native/exports/expo-op-sqlite/page.mdx +++ /dev/null @@ -1,8 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / exports/expo-op-sqlite - -## Variables - -| Variable | Description | -| ------ | ------ | -| [evoluReactNativeDeps](/docs/api-reference/react-native/exports/expo-op-sqlite/variables/evoluReactNativeDeps.mdx) | - | -| [localAuth](/docs/api-reference/react-native/exports/expo-op-sqlite/variables/localAuth.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/react-native/exports/expo-op-sqlite/variables/evoluReactNativeDeps.mdx b/.generated/evolu-docs/api-reference/react-native/exports/expo-op-sqlite/variables/evoluReactNativeDeps.mdx deleted file mode 100644 index 2911b6d86..000000000 --- a/.generated/evolu-docs/api-reference/react-native/exports/expo-op-sqlite/variables/evoluReactNativeDeps.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [exports/expo-op-sqlite](/docs/api-reference/react-native/exports/expo-op-sqlite/page.mdx) / evoluReactNativeDeps - -```ts -evoluReactNativeDeps: EvoluDeps; -``` - -Defined in: [react-native/src/exports/expo-op-sqlite.ts:12](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react-native/src/exports/expo-op-sqlite.ts#L12) diff --git a/.generated/evolu-docs/api-reference/react-native/exports/expo-op-sqlite/variables/localAuth.mdx b/.generated/evolu-docs/api-reference/react-native/exports/expo-op-sqlite/variables/localAuth.mdx deleted file mode 100644 index c01844465..000000000 --- a/.generated/evolu-docs/api-reference/react-native/exports/expo-op-sqlite/variables/localAuth.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [exports/expo-op-sqlite](/docs/api-reference/react-native/exports/expo-op-sqlite/page.mdx) / localAuth - -```ts -localAuth: LocalAuth; -``` - -Defined in: [react-native/src/exports/expo-op-sqlite.ts:12](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react-native/src/exports/expo-op-sqlite.ts#L12) diff --git a/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/functions/createEvoluDeps.mdx b/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/functions/createEvoluDeps.mdx deleted file mode 100644 index 157315ab2..000000000 --- a/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/functions/createEvoluDeps.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [exports/expo-sqlite](/docs/api-reference/react-native/exports/expo-sqlite/page.mdx) / createEvoluDeps - -```ts -function createEvoluDeps(): EvoluDeps; -``` - -Defined in: [react-native/src/exports/expo-sqlite.ts:13](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react-native/src/exports/expo-sqlite.ts#L13) - -Creates Evolu dependencies for Expo. - -## Returns - -[`EvoluDeps`](/docs/api-reference/common/local-first/Evolu/type-aliases/EvoluDeps.mdx) diff --git a/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/page.mdx b/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/page.mdx deleted file mode 100644 index 695db7b3d..000000000 --- a/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/page.mdx +++ /dev/null @@ -1,14 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / exports/expo-sqlite - -## Variables - -| Variable | Description | -| ------ | ------ | -| [evoluReactNativeDeps](/docs/api-reference/react-native/exports/expo-sqlite/variables/evoluReactNativeDeps.mdx) | - | -| [localAuth](/docs/api-reference/react-native/exports/expo-sqlite/variables/localAuth.mdx) | - | - -## Functions - -| Function | Description | -| ------ | ------ | -| [createEvoluDeps](/docs/api-reference/react-native/exports/expo-sqlite/functions/createEvoluDeps.mdx) | Creates Evolu dependencies for Expo. | diff --git a/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/variables/evoluReactNativeDeps.mdx b/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/variables/evoluReactNativeDeps.mdx deleted file mode 100644 index c705d5019..000000000 --- a/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/variables/evoluReactNativeDeps.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [exports/expo-sqlite](/docs/api-reference/react-native/exports/expo-sqlite/page.mdx) / evoluReactNativeDeps - -```ts -evoluReactNativeDeps: EvoluDeps; -``` - -Defined in: [react-native/src/exports/expo-sqlite.ts:23](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react-native/src/exports/expo-sqlite.ts#L23) diff --git a/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/variables/localAuth.mdx b/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/variables/localAuth.mdx deleted file mode 100644 index 401b6d167..000000000 --- a/.generated/evolu-docs/api-reference/react-native/exports/expo-sqlite/variables/localAuth.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [exports/expo-sqlite](/docs/api-reference/react-native/exports/expo-sqlite/page.mdx) / localAuth - -```ts -localAuth: LocalAuth; -``` - -Defined in: [react-native/src/exports/expo-sqlite.ts:23](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react-native/src/exports/expo-sqlite.ts#L23) diff --git a/.generated/evolu-docs/api-reference/react-native/page.mdx b/.generated/evolu-docs/api-reference/react-native/page.mdx deleted file mode 100644 index 3e4bea82a..000000000 --- a/.generated/evolu-docs/api-reference/react-native/page.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / @evolu/react-native - -## Modules - -| Module | Description | -| ------ | ------ | -| [exports/bare-op-sqlite](/docs/api-reference/react-native/exports/bare-op-sqlite/page.mdx) | - | -| [exports/expo-op-sqlite](/docs/api-reference/react-native/exports/expo-op-sqlite/page.mdx) | - | -| [exports/expo-sqlite](/docs/api-reference/react-native/exports/expo-sqlite/page.mdx) | - | -| [web](/docs/api-reference/react-native/web/page.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/react-native/web/page.mdx b/.generated/evolu-docs/api-reference/react-native/web/page.mdx deleted file mode 100644 index 575d6d406..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/page.mdx +++ /dev/null @@ -1,18 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / web - -## Variables - -| Variable | Description | -| ------ | ------ | -| [createEvoluContext](/docs/api-reference/react-native/web/variables/createEvoluContext.mdx) | Creates typed React Context and Provider for [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). | -| [createRunContext](/docs/api-reference/react-native/web/variables/createRunContext.mdx) | Creates typed React Context and Provider for [Run](/docs/api-reference/common/Task/type-aliases/Run.mdx). | -| [createUseEvolu](/docs/api-reference/react-native/web/variables/createUseEvolu.mdx) | Creates a typed React Hook returning an instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). | -| [EvoluContext](/docs/api-reference/react-native/web/variables/EvoluContext.mdx) | - | -| [EvoluProvider](/docs/api-reference/react-native/web/variables/EvoluProvider.mdx) | - | -| [useEvolu](/docs/api-reference/react-native/web/variables/useEvolu.mdx) | React Hook returning a generic instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). | -| [useEvoluError](/docs/api-reference/react-native/web/variables/useEvoluError.mdx) | Subscribe to [EvoluError](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) changes. | -| [useIsSsr](/docs/api-reference/react-native/web/variables/useIsSsr.mdx) | Avoiding hydration mismatches. | -| [useOwner](/docs/api-reference/react-native/web/variables/useOwner.mdx) | React Hook for Evolu `useOwner` method. | -| [useQueries](/docs/api-reference/react-native/web/variables/useQueries.mdx) | The same as [useQuery](/docs/api-reference/react-native/web/variables/useQuery.mdx), but for many queries. | -| [useQuery](/docs/api-reference/react-native/web/variables/useQuery.mdx) | Load and subscribe to the Query, and return an object with `rows` and `row` properties that are automatically updated when data changes. | -| [useQuerySubscription](/docs/api-reference/react-native/web/variables/useQuerySubscription.mdx) | Subscribe to [Query](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) [QueryRows](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx) changes. | diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/EvoluContext.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/EvoluContext.mdx deleted file mode 100644 index b6c45294d..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/EvoluContext.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / EvoluContext - -```ts -const EvoluContext: Context; -``` - -Defined in: react/dist/local-first/EvoluContext.d.ts:4 diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/EvoluProvider.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/EvoluProvider.mdx deleted file mode 100644 index 8f4140633..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/EvoluProvider.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / EvoluProvider - -```ts -const EvoluProvider: ({ children, value, }: { - children?: ReactNode; - value: Evolu; -}) => React.ReactElement; -``` - -Defined in: react/dist/EvoluProvider.d.ts:3 - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `{ children, value, }` | \{ `children?`: `ReactNode`; `value`: [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`any`\>; \} | -| `{ children, value, }.children?` | `ReactNode` | -| `{ children, value, }.value` | [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`any`\> | - -## Returns - -`React.ReactElement` diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/createEvoluContext.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/createEvoluContext.mdx deleted file mode 100644 index f89f0c8c2..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/createEvoluContext.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / createEvoluContext - -```ts -const createEvoluContext: (fiber: PromiseLike, unknown>>) => readonly [React.Context>, React.FC<{ - children?: ReactNode; -}>]; -``` - -Defined in: react/dist/local-first/EvoluContext.d.ts:33 - -Creates typed React Context and Provider for [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). - -Returns a tuple for easy renaming when using multiple Evolu instances. - -The provider internally uses React's `use()` to unwrap the Fiber, so it must -be wrapped in a Suspense boundary. - -### Example - -```tsx -const app = run(Evolu.createEvolu(Schema, {...})); -const [App, AppProvider] = createEvoluContext(app); - -// Multiple instances with custom names -const [TodoEvolu, TodoEvoluProvider] = createEvoluContext(todo); -const [NotesEvolu, NotesEvoluProvider] = createEvoluContext(notes); - - - - - -; - -// In a component -const evolu = use(App); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `fiber` | [`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\>, `unknown`\>\> | - -## Returns - -readonly \[`React.Context`\<[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\>\>, `React.FC`\<\{ - `children?`: `ReactNode`; -\}\>\] diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/createRunContext.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/createRunContext.mdx deleted file mode 100644 index 868508893..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/createRunContext.mdx +++ /dev/null @@ -1,56 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / createRunContext - -```ts -const createRunContext: (run: Run) => { - Run: React.Context>; - RunProvider: React.FC<{ - children?: ReactNode; - }>; -}; -``` - -Defined in: react/dist/Task.d.ts:20 - -Creates typed React Context and Provider for [Run](/docs/api-reference/common/Task/type-aliases/Run.mdx). - -### Example - -```tsx -const run = createRun(createEvoluDeps()); -const { Run, RunProvider } = createRunContext(run); - - - -; - -// In a component -const run = use(Run); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `D` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `run` | [`Run`](/docs/api-reference/common/Task/type-aliases/Run.mdx)\<`D`\> | - -## Returns - -```ts -{ - Run: React.Context>; - RunProvider: React.FC<{ - children?: ReactNode; - }>; -} -``` - -| Name | Type | Defined in | -| ------ | ------ | ------ | -| `Run` | `React.Context`\<[`Run`](/docs/api-reference/common/Task/type-aliases/Run.mdx)\<`D`\>\> | react/dist/Task.d.ts:21 | -| `RunProvider` | `React.FC`\<\{ `children?`: `ReactNode`; \}\> | react/dist/Task.d.ts:22 | diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/createUseEvolu.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/createUseEvolu.mdx deleted file mode 100644 index a129fd880..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/createUseEvolu.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / createUseEvolu - -```ts -const createUseEvolu: (evolu: Evolu) => () => Evolu; -``` - -Defined in: react/dist/createUseEvolu.d.ts:12 - -Creates a typed React Hook returning an instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). - -### Example - -```ts -const useEvolu = createUseEvolu(evolu); -const { insert, update } = useEvolu(); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* [`EvoluSchema`](/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `evolu` | [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\> | - -## Returns - -```ts -(): Evolu; -``` - -### Returns - -[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\> diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/useEvolu.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/useEvolu.mdx deleted file mode 100644 index 09ac72812..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/useEvolu.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / useEvolu - -```ts -const useEvolu: () => Evolu; -``` - -Defined in: react/dist/useEvolu.d.ts:7 - -React Hook returning a generic instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). - -This is intended for internal usage. - -## Returns - -[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx) diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/useEvoluError.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/useEvoluError.mdx deleted file mode 100644 index 03acefac5..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/useEvoluError.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / useEvoluError - -```ts -const useEvoluError: () => - | EvoluError - | null; -``` - -Defined in: react/dist/useEvoluError.d.ts:3 - -Subscribe to [EvoluError](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) changes. - -## Returns - - \| [`EvoluError`](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) - \| `null` diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/useIsSsr.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/useIsSsr.mdx deleted file mode 100644 index d3ebe5982..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/useIsSsr.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / useIsSsr - -```ts -const useIsSsr: () => boolean; -``` - -Defined in: react/dist/local-first/useIsSsr.d.ts:6 - -Avoiding hydration mismatches. - -## Returns - -`boolean` - -## See - -https://kurtextrem.de/posts/react-uses-hydration diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/useOwner.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/useOwner.mdx deleted file mode 100644 index a7160136c..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/useOwner.mdx +++ /dev/null @@ -1,24 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / useOwner - -```ts -const useOwner: (owner: - | SyncOwner - | null) => void; -``` - -Defined in: react/dist/local-first/useOwner.d.ts:8 - -React Hook for Evolu `useOwner` method. - -Using an owner means syncing it with its transports, or the transports -defined in Evolu config if the owner has no transports defined. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `owner` | \| [`SyncOwner`](/docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx) \| `null` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/useQueries.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/useQueries.mdx deleted file mode 100644 index 1f67b3735..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/useQueries.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / useQueries - -```ts -const useQueries: (queries: [...Q], options?: Partial<{ - once: [...OQ]; - promises: [...QueriesToQueryRowsPromises, ...QueriesToQueryRowsPromises]; -}>) => [...QueriesToQueryRows, ...QueriesToQueryRows]; -``` - -Defined in: react/dist/local-first/useQueries.d.ts:7 - -The same as [useQuery](/docs/api-reference/react-native/web/variables/useQuery.mdx), but for many queries. - -The number of queries must remain stable across renders. - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | -| `Q` *extends* [`Queries`](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx)\<`R`\> | -| `OQ` *extends* [`Queries`](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx)\<`R`\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `queries` | \[`...Q`\] | -| `options?` | `Partial`\<\{ `once`: \[`...OQ`\]; `promises`: \[`...QueriesToQueryRowsPromises`, `...QueriesToQueryRowsPromises`\]; \}\> | - -## Returns - -\[`...QueriesToQueryRows`, `...QueriesToQueryRows`\] diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/useQuery.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/useQuery.mdx deleted file mode 100644 index 468a32ffe..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/useQuery.mdx +++ /dev/null @@ -1,55 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / useQuery - -```ts -const useQuery: (query: Query, options?: Partial<{ - once: boolean; - promise: Promise>; -}>) => QueryRows; -``` - -Defined in: react/dist/local-first/useQuery.d.ts:31 - -Load and subscribe to the Query, and return an object with `rows` and `row` -properties that are automatically updated when data changes. - -Note that [useQuery](/docs/api-reference/react-native/web/variables/useQuery.mdx) uses React Suspense. It means every usage of -[useQuery](/docs/api-reference/react-native/web/variables/useQuery.mdx) blocks rendering until loading is completed. To avoid loading -waterfall with more queries, use [useQueries](/docs/api-reference/react-native/web/variables/useQueries.mdx). - -The `promise` option allows preloading queries before rendering, which can be -useful for complex queries that might take noticeable time even with local -data. However, this is rarely needed as local queries are typically fast. - -### Example - -```ts -// Get all rows. -const rows = useQuery(allTodos); - -// Get rows for a specific todo (the first row can be null). -const rows = useQuery(todoById(1)); - -// Get all rows, but without subscribing to changes. -const rows = useQuery(allTodos, { once: true }); - -// Preload a query (rarely needed). -const allTodosPromise = evolu.loadQuery(allTodos); -const rows = useQuery(allTodos, { promise: allTodosPromise }); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<`R`\> | -| `options?` | `Partial`\<\{ `once`: `boolean`; `promise`: `Promise`\<[`QueryRows`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx)\<`R`\>\>; \}\> | - -## Returns - -[`QueryRows`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx)\<`R`\> diff --git a/.generated/evolu-docs/api-reference/react-native/web/variables/useQuerySubscription.mdx b/.generated/evolu-docs/api-reference/react-native/web/variables/useQuerySubscription.mdx deleted file mode 100644 index 01ce9d401..000000000 --- a/.generated/evolu-docs/api-reference/react-native/web/variables/useQuerySubscription.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-native](/docs/api-reference/react-native/page.mdx) / [web](/docs/api-reference/react-native/web/page.mdx) / useQuerySubscription - -```ts -const useQuerySubscription: (query: Query, options?: Partial<{ - once: boolean; -}>) => QueryRows; -``` - -Defined in: react/dist/local-first/useQuerySubscription.d.ts:3 - -Subscribe to [Query](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) [QueryRows](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx) changes. - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<`R`\> | -| `options?` | `Partial`\<\{ `once`: `boolean`; \}\> | - -## Returns - -[`QueryRows`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx)\<`R`\> diff --git a/.generated/evolu-docs/api-reference/react-web/page.mdx b/.generated/evolu-docs/api-reference/react-web/page.mdx deleted file mode 100644 index 9492a5355..000000000 --- a/.generated/evolu-docs/api-reference/react-web/page.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / @evolu/react-web - -## Variables - -| Variable | Description | -| ------ | ------ | -| [EvoluIdenticon](/docs/api-reference/react-web/variables/EvoluIdenticon.mdx) | - | diff --git a/.generated/evolu-docs/api-reference/react-web/variables/EvoluIdenticon.mdx b/.generated/evolu-docs/api-reference/react-web/variables/EvoluIdenticon.mdx deleted file mode 100644 index f5f7de7ab..000000000 --- a/.generated/evolu-docs/api-reference/react-web/variables/EvoluIdenticon.mdx +++ /dev/null @@ -1,12 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react-web](/docs/api-reference/react-web/page.mdx) / EvoluIdenticon - -```ts -const EvoluIdenticon: FC<{ - borderRadius?: number; - id: OwnerId; - size?: number; - style?: IdenticonStyle; -}>; -``` - -Defined in: [EvoluIdenticon.tsx:8](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react-web/src/components/EvoluIdenticon.tsx#L8) diff --git a/.generated/evolu-docs/api-reference/react/functions/EvoluProvider.mdx b/.generated/evolu-docs/api-reference/react/functions/EvoluProvider.mdx deleted file mode 100644 index a613b7bd5..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/EvoluProvider.mdx +++ /dev/null @@ -1,22 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / EvoluProvider - -```ts -function EvoluProvider(__namedParameters: { - children?: ReactNode; - value: Evolu; -}): ReactElement; -``` - -Defined in: [EvoluProvider.tsx:7](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/EvoluProvider.tsx#L7) - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `__namedParameters` | \{ `children?`: `ReactNode`; `value`: [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`any`\>; \} | -| `__namedParameters.children?` | `ReactNode` | -| `__namedParameters.value` | [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`any`\> | - -## Returns - -`ReactElement` diff --git a/.generated/evolu-docs/api-reference/react/functions/createEvoluContext.mdx b/.generated/evolu-docs/api-reference/react/functions/createEvoluContext.mdx deleted file mode 100644 index 7a6741f18..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/createEvoluContext.mdx +++ /dev/null @@ -1,54 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / createEvoluContext - -```ts -function createEvoluContext(fiber: PromiseLike, unknown>>): readonly [Context>, FC<{ - children?: ReactNode; -}>]; -``` - -Defined in: [local-first/EvoluContext.tsx:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/local-first/EvoluContext.tsx#L37) - -Creates typed React Context and Provider for [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). - -Returns a tuple for easy renaming when using multiple Evolu instances. - -The provider internally uses React's `use()` to unwrap the Fiber, so it must -be wrapped in a Suspense boundary. - -### Example - -```tsx -const app = run(Evolu.createEvolu(Schema, {...})); -const [App, AppProvider] = createEvoluContext(app); - -// Multiple instances with custom names -const [TodoEvolu, TodoEvoluProvider] = createEvoluContext(todo); -const [NotesEvolu, NotesEvoluProvider] = createEvoluContext(notes); - - - - - -; - -// In a component -const evolu = use(App); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* `Readonly`\<`Record`\<`string`, `Readonly`\<`Record`\<`string`, [`AnyStandardSchemaV1`](/docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx)\>\>\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `fiber` | [`PromiseLike`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables)\<[`Result`](/docs/api-reference/common/Result/type-aliases/Result.mdx)\<[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\>, `unknown`\>\> | - -## Returns - -readonly \[`Context`\<[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\>\>, `FC`\<\{ - `children?`: `ReactNode`; -\}\>\] diff --git a/.generated/evolu-docs/api-reference/react/functions/createRunContext.mdx b/.generated/evolu-docs/api-reference/react/functions/createRunContext.mdx deleted file mode 100644 index 5dcb06ae7..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/createRunContext.mdx +++ /dev/null @@ -1,56 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / createRunContext - -```ts -function createRunContext(run: Run): { - Run: Context>; - RunProvider: FC<{ - children?: ReactNode; - }>; -}; -``` - -Defined in: [Task.tsx:25](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/Task.tsx#L25) - -Creates typed React Context and Provider for [Run](/docs/api-reference/common/Task/type-aliases/Run.mdx). - -### Example - -```tsx -const run = createRun(createEvoluDeps()); -const { Run, RunProvider } = createRunContext(run); - - - -; - -// In a component -const run = use(Run); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `D` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `run` | [`Run`](/docs/api-reference/common/Task/type-aliases/Run.mdx)\<`D`\> | - -## Returns - -```ts -{ - Run: Context>; - RunProvider: FC<{ - children?: ReactNode; - }>; -} -``` - -| Name | Type | Defined in | -| ------ | ------ | ------ | -| `Run` | `Context`\<[`Run`](/docs/api-reference/common/Task/type-aliases/Run.mdx)\<`D`\>\> | [Task.tsx:28](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/Task.tsx#L28) | -| `RunProvider` | `FC`\<\{ `children?`: `ReactNode`; \}\> | [Task.tsx:29](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/Task.tsx#L29) | diff --git a/.generated/evolu-docs/api-reference/react/functions/createUseEvolu.mdx b/.generated/evolu-docs/api-reference/react/functions/createUseEvolu.mdx deleted file mode 100644 index c89227afe..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/createUseEvolu.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / createUseEvolu - -```ts -function createUseEvolu(evolu: Evolu): () => Evolu; -``` - -Defined in: [createUseEvolu.ts:14](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/createUseEvolu.ts#L14) - -Creates a typed React Hook returning an instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). - -### Example - -```ts -const useEvolu = createUseEvolu(evolu); -const { insert, update } = useEvolu(); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* `Readonly`\<`Record`\<`string`, `Readonly`\<`Record`\<`string`, [`AnyStandardSchemaV1`](/docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx)\>\>\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `evolu` | [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\> | - -## Returns - -```ts -(): Evolu; -``` - -### Returns - -[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\> diff --git a/.generated/evolu-docs/api-reference/react/functions/useEvolu.mdx b/.generated/evolu-docs/api-reference/react/functions/useEvolu.mdx deleted file mode 100644 index 1163cf235..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/useEvolu.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / useEvolu - -```ts -function useEvolu(): Evolu; -``` - -Defined in: [useEvolu.ts:10](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/useEvolu.ts#L10) - -React Hook returning a generic instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). - -This is intended for internal usage. - -## Returns - -[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx) diff --git a/.generated/evolu-docs/api-reference/react/functions/useEvoluError.mdx b/.generated/evolu-docs/api-reference/react/functions/useEvoluError.mdx deleted file mode 100644 index 5726c6f08..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/useEvoluError.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / useEvoluError - -```ts -function useEvoluError(): - | EvoluError - | null; -``` - -Defined in: [useEvoluError.ts:6](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/useEvoluError.ts#L6) - -Subscribe to [EvoluError](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) changes. - -## Returns - - \| [`EvoluError`](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) - \| `null` diff --git a/.generated/evolu-docs/api-reference/react/functions/useIsSsr.mdx b/.generated/evolu-docs/api-reference/react/functions/useIsSsr.mdx deleted file mode 100644 index 56ef7942e..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/useIsSsr.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / useIsSsr - -```ts -function useIsSsr(): boolean; -``` - -Defined in: [local-first/useIsSsr.ts:11](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/local-first/useIsSsr.ts#L11) - -Avoiding hydration mismatches. - -## Returns - -`boolean` - -## See - -https://kurtextrem.de/posts/react-uses-hydration diff --git a/.generated/evolu-docs/api-reference/react/functions/useOwner.mdx b/.generated/evolu-docs/api-reference/react/functions/useOwner.mdx deleted file mode 100644 index 49c17537c..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/useOwner.mdx +++ /dev/null @@ -1,24 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / useOwner - -```ts -function useOwner(owner: - | SyncOwner - | null): void; -``` - -Defined in: [local-first/useOwner.ts:11](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/local-first/useOwner.ts#L11) - -React Hook for Evolu `useOwner` method. - -Using an owner means syncing it with its transports, or the transports -defined in Evolu config if the owner has no transports defined. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `owner` | \| [`SyncOwner`](/docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx) \| `null` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/react/functions/useQueries.mdx b/.generated/evolu-docs/api-reference/react/functions/useQueries.mdx deleted file mode 100644 index 371d80c31..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/useQueries.mdx +++ /dev/null @@ -1,33 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / useQueries - -```ts -function useQueries(queries: [...Q[]], options?: Partial<{ - once: [...OQ]; - promises: [...QueriesToQueryRowsPromises, ...QueriesToQueryRowsPromises]; -}>): [...QueriesToQueryRows[], ...QueriesToQueryRows[]]; -``` - -Defined in: [local-first/useQueries.ts:18](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/local-first/useQueries.ts#L18) - -The same as [useQuery](/docs/api-reference/react/functions/useQuery.mdx), but for many queries. - -The number of queries must remain stable across renders. - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | -| `Q` *extends* [`Queries`](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx)\<`R`\> | -| `OQ` *extends* [`Queries`](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx)\<`R`\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `queries` | \[`...Q[]`\] | -| `options` | `Partial`\<\{ `once`: \[`...OQ`\]; `promises`: \[`...QueriesToQueryRowsPromises`, `...QueriesToQueryRowsPromises`\]; \}\> | - -## Returns - -\[`...QueriesToQueryRows[]`, `...QueriesToQueryRows[]`\] diff --git a/.generated/evolu-docs/api-reference/react/functions/useQuery.mdx b/.generated/evolu-docs/api-reference/react/functions/useQuery.mdx deleted file mode 100644 index c6c2ceb09..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/useQuery.mdx +++ /dev/null @@ -1,55 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / useQuery - -```ts -function useQuery(query: Query, options?: Partial<{ - once: boolean; - promise: Promise>; -}>): QueryRows; -``` - -Defined in: [local-first/useQuery.ts:37](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/local-first/useQuery.ts#L37) - -Load and subscribe to the Query, and return an object with `rows` and `row` -properties that are automatically updated when data changes. - -Note that [useQuery](/docs/api-reference/react/functions/useQuery.mdx) uses React Suspense. It means every usage of -[useQuery](/docs/api-reference/react/functions/useQuery.mdx) blocks rendering until loading is completed. To avoid loading -waterfall with more queries, use [useQueries](/docs/api-reference/react/functions/useQueries.mdx). - -The `promise` option allows preloading queries before rendering, which can be -useful for complex queries that might take noticeable time even with local -data. However, this is rarely needed as local queries are typically fast. - -### Example - -```ts -// Get all rows. -const rows = useQuery(allTodos); - -// Get rows for a specific todo (the first row can be null). -const rows = useQuery(todoById(1)); - -// Get all rows, but without subscribing to changes. -const rows = useQuery(allTodos, { once: true }); - -// Preload a query (rarely needed). -const allTodosPromise = evolu.loadQuery(allTodos); -const rows = useQuery(allTodos, { promise: allTodosPromise }); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<`R`\> | -| `options` | `Partial`\<\{ `once`: `boolean`; `promise`: `Promise`\<[`QueryRows`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx)\<`R`\>\>; \}\> | - -## Returns - -[`QueryRows`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx)\<`R`\> diff --git a/.generated/evolu-docs/api-reference/react/functions/useQuerySubscription.mdx b/.generated/evolu-docs/api-reference/react/functions/useQuerySubscription.mdx deleted file mode 100644 index ef128ff15..000000000 --- a/.generated/evolu-docs/api-reference/react/functions/useQuerySubscription.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / useQuerySubscription - -```ts -function useQuerySubscription(query: Query, options?: Partial<{ - once: boolean; -}>): QueryRows; -``` - -Defined in: [local-first/useQuerySubscription.ts:12](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/local-first/useQuerySubscription.ts#L12) - -Subscribe to [Query](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) [QueryRows](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx) changes. - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<`R`\> | -| `options` | `Partial`\<\{ `once`: `boolean`; \}\> | - -## Returns - -[`QueryRows`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx)\<`R`\> diff --git a/.generated/evolu-docs/api-reference/react/page.mdx b/.generated/evolu-docs/api-reference/react/page.mdx deleted file mode 100644 index 50f09af16..000000000 --- a/.generated/evolu-docs/api-reference/react/page.mdx +++ /dev/null @@ -1,23 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / @evolu/react - -## Variables - -| Variable | Description | -| ------ | ------ | -| [EvoluContext](/docs/api-reference/react/variables/EvoluContext.mdx) | - | - -## Functions - -| Function | Description | -| ------ | ------ | -| [createEvoluContext](/docs/api-reference/react/functions/createEvoluContext.mdx) | Creates typed React Context and Provider for [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). | -| [createRunContext](/docs/api-reference/react/functions/createRunContext.mdx) | Creates typed React Context and Provider for [Run](/docs/api-reference/common/Task/type-aliases/Run.mdx). | -| [createUseEvolu](/docs/api-reference/react/functions/createUseEvolu.mdx) | Creates a typed React Hook returning an instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). | -| [EvoluProvider](/docs/api-reference/react/functions/EvoluProvider.mdx) | - | -| [useEvolu](/docs/api-reference/react/functions/useEvolu.mdx) | React Hook returning a generic instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). | -| [useEvoluError](/docs/api-reference/react/functions/useEvoluError.mdx) | Subscribe to [EvoluError](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) changes. | -| [useIsSsr](/docs/api-reference/react/functions/useIsSsr.mdx) | Avoiding hydration mismatches. | -| [useOwner](/docs/api-reference/react/functions/useOwner.mdx) | React Hook for Evolu `useOwner` method. | -| [useQueries](/docs/api-reference/react/functions/useQueries.mdx) | The same as [useQuery](/docs/api-reference/react/functions/useQuery.mdx), but for many queries. | -| [useQuery](/docs/api-reference/react/functions/useQuery.mdx) | Load and subscribe to the Query, and return an object with `rows` and `row` properties that are automatically updated when data changes. | -| [useQuerySubscription](/docs/api-reference/react/functions/useQuerySubscription.mdx) | Subscribe to [Query](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx) [QueryRows](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx) changes. | diff --git a/.generated/evolu-docs/api-reference/react/variables/EvoluContext.mdx b/.generated/evolu-docs/api-reference/react/variables/EvoluContext.mdx deleted file mode 100644 index cf5e661df..000000000 --- a/.generated/evolu-docs/api-reference/react/variables/EvoluContext.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/react](/docs/api-reference/react/page.mdx) / EvoluContext - -```ts -const EvoluContext: Context>>>>>; -``` - -Defined in: [local-first/EvoluContext.tsx:7](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/react/src/local-first/EvoluContext.tsx#L7) diff --git a/.generated/evolu-docs/api-reference/svelte/functions/appOwnerState.mdx b/.generated/evolu-docs/api-reference/svelte/functions/appOwnerState.mdx deleted file mode 100644 index b44a59866..000000000 --- a/.generated/evolu-docs/api-reference/svelte/functions/appOwnerState.mdx +++ /dev/null @@ -1,48 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/svelte](/docs/api-reference/svelte/page.mdx) / appOwnerState - -```ts -function appOwnerState(evolu: Evolu): { - current: | AppOwner - | undefined; -}; -``` - -Defined in: [index.svelte.ts:136](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/svelte/src/lib/index.svelte.ts#L136) - -Get the [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) state when available. - -### Example - -```ts -import { appOwnerState } from "@evolu/svelte"; - -const owner = appOwnerState(evolu); - -// use owner.current in your Svelte templates -// it will be undefined initially and set once available -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `Schema` *extends* `Readonly`\<`Record`\<`string`, `Readonly`\<`Record`\<`string`, [`AnyStandardSchemaV1`](/docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx)\>\>\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `evolu` | [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`Schema`\> | - -## Returns - -```ts -{ - current: | AppOwner - | undefined; -} -``` - -| Name | Type | Defined in | -| ------ | ------ | ------ | -| `current` | \| [`AppOwner`](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) \| `undefined` | [index.svelte.ts:139](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/svelte/src/lib/index.svelte.ts#L139) | diff --git a/.generated/evolu-docs/api-reference/svelte/functions/queryState.mdx b/.generated/evolu-docs/api-reference/svelte/functions/queryState.mdx deleted file mode 100644 index 3a395cd6f..000000000 --- a/.generated/evolu-docs/api-reference/svelte/functions/queryState.mdx +++ /dev/null @@ -1,79 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/svelte](/docs/api-reference/svelte/page.mdx) / queryState - -```ts -function queryState( - evolu: Evolu, - observedQuery: () => - | Query - | undefined, - options?: { - mapping?: (row: R) => MappedRow; -}): { - rows: MappedRow[]; -}; -``` - -Defined in: [index.svelte.ts:55](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/svelte/src/lib/index.svelte.ts#L55) - -Load and subscribe to the Query, and return an object with `rows` property -that are automatically updated when data changes. - -### Example - -```ts -// Create your query -const allTodos = evolu.createQuery((db) => - db.selectFrom("todo").selectAll(), -); - -// Get all rows. -const allTodosState = queryState(evolu, () => allTodos); -``` - -### Example - -```ts -// some kind of state -let someKindOfState = $state("someId"); - -// derive your query based other props -const allTodos = $derived( - evolu.createQuery((db) => - db.selectFrom("todo").where("id", "=", someKindOfState).selectAll(), - ), -); - -// Get all rows, once someKindOfState changes, this allTodosState will be updated with the evolu query result -const allTodosState = queryState(evolu, () => allTodos); - -// use allTodosState.rows in further calculations / UI -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - | -| `Schema` *extends* `Readonly`\<`Record`\<`string`, `Readonly`\<`Record`\<`string`, [`AnyStandardSchemaV1`](/docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx)\>\>\>\> | - | -| `MappedRow` | `R` | - -## Parameters - -| Parameter | Type | Description | -| ------ | ------ | ------ | -| `evolu` | [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`Schema`\> | - | -| `observedQuery` | () => \| [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<`R`\> \| `undefined` | Can be a normal query or a derived query. Svelte reactivity: it needs to be a callback, if the query is $derived this will re-trigger the load/subscription based on the new query. | -| `options?` | \{ `mapping?`: (`row`: `R`) => `MappedRow`; \} | - | -| `options.mapping?` | (`row`: `R`) => `MappedRow` | This is a little helper so that you can map the results instead of using a $derive operation. | - -## Returns - -```ts -{ - rows: MappedRow[]; -} -``` - -| Name | Type | Defined in | -| ------ | ------ | ------ | -| `rows` | `MappedRow`[] | [index.svelte.ts:77](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/svelte/src/lib/index.svelte.ts#L77) | diff --git a/.generated/evolu-docs/api-reference/svelte/page.mdx b/.generated/evolu-docs/api-reference/svelte/page.mdx deleted file mode 100644 index 5a46b106d..000000000 --- a/.generated/evolu-docs/api-reference/svelte/page.mdx +++ /dev/null @@ -1,14 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / @evolu/svelte - -## Variables - -| Variable | Description | -| ------ | ------ | -| [evoluSvelteDeps](/docs/api-reference/svelte/variables/evoluSvelteDeps.mdx) | - | - -## Functions - -| Function | Description | -| ------ | ------ | -| [appOwnerState](/docs/api-reference/svelte/functions/appOwnerState.mdx) | Get the [AppOwner](/docs/api-reference/common/local-first/Owner/interfaces/AppOwner.mdx) state when available. | -| [queryState](/docs/api-reference/svelte/functions/queryState.mdx) | Load and subscribe to the Query, and return an object with `rows` property that are automatically updated when data changes. | diff --git a/.generated/evolu-docs/api-reference/svelte/variables/evoluSvelteDeps.mdx b/.generated/evolu-docs/api-reference/svelte/variables/evoluSvelteDeps.mdx deleted file mode 100644 index 19cd04e8d..000000000 --- a/.generated/evolu-docs/api-reference/svelte/variables/evoluSvelteDeps.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/svelte](/docs/api-reference/svelte/page.mdx) / evoluSvelteDeps - -```ts -const evoluSvelteDeps: EvoluDeps; -``` - -Defined in: [index.svelte.ts:18](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/svelte/src/lib/index.svelte.ts#L18) diff --git a/.generated/evolu-docs/api-reference/vue/functions/createUseEvolu.mdx b/.generated/evolu-docs/api-reference/vue/functions/createUseEvolu.mdx deleted file mode 100644 index c3fc7941c..000000000 --- a/.generated/evolu-docs/api-reference/vue/functions/createUseEvolu.mdx +++ /dev/null @@ -1,38 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / createUseEvolu - -```ts -function createUseEvolu(evolu: Evolu): () => Evolu; -``` - -Defined in: [createUseEvolu.ts:14](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/createUseEvolu.ts#L14) - -Creates a helper function returning a type-aware instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). - -### Example - -```ts -const useEvolu = createUseEvolu(evolu); -const { insert, update } = useEvolu(); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `S` *extends* `Readonly`\<`Record`\<`string`, `Readonly`\<`Record`\<`string`, [`AnyStandardSchemaV1`](/docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1.mdx)\>\>\>\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `evolu` | [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\> | - -## Returns - -```ts -(): Evolu; -``` - -### Returns - -[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`S`\> diff --git a/.generated/evolu-docs/api-reference/vue/functions/provideEvolu.mdx b/.generated/evolu-docs/api-reference/vue/functions/provideEvolu.mdx deleted file mode 100644 index e650b53d4..000000000 --- a/.generated/evolu-docs/api-reference/vue/functions/provideEvolu.mdx +++ /dev/null @@ -1,21 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / provideEvolu - -```ts -function provideEvolu(evolu: - | Evolu - | () => Evolu): void; -``` - -Defined in: [provideEvolu.ts:23](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/provideEvolu.ts#L23) - -Provide the Evolu instance to components via Vue's provide/inject system. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `evolu` | \| [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`any`\> \| () => [`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx)\<`any`\> | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/vue/functions/useEvolu.mdx b/.generated/evolu-docs/api-reference/vue/functions/useEvolu.mdx deleted file mode 100644 index 1e1c939d1..000000000 --- a/.generated/evolu-docs/api-reference/vue/functions/useEvolu.mdx +++ /dev/null @@ -1,15 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / useEvolu - -```ts -function useEvolu(): Evolu; -``` - -Defined in: [useEvolu.ts:11](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/useEvolu.ts#L11) - -Vue composable returning a generic instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). - -Applications should prefer [createUseEvolu](/docs/api-reference/vue/functions/createUseEvolu.mdx) for proper typing. - -## Returns - -[`Evolu`](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx) diff --git a/.generated/evolu-docs/api-reference/vue/functions/useEvoluError.mdx b/.generated/evolu-docs/api-reference/vue/functions/useEvoluError.mdx deleted file mode 100644 index 75e851200..000000000 --- a/.generated/evolu-docs/api-reference/vue/functions/useEvoluError.mdx +++ /dev/null @@ -1,17 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / useEvoluError - -```ts -function useEvoluError(): Ref< - | EvoluError -| null>; -``` - -Defined in: [useEvoluError.ts:6](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/useEvoluError.ts#L6) - -Subscribe to [EvoluError](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) changes. - -## Returns - -`Ref`\< - \| [`EvoluError`](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) - \| `null`\> diff --git a/.generated/evolu-docs/api-reference/vue/functions/useOwner.mdx b/.generated/evolu-docs/api-reference/vue/functions/useOwner.mdx deleted file mode 100644 index 5a1252664..000000000 --- a/.generated/evolu-docs/api-reference/vue/functions/useOwner.mdx +++ /dev/null @@ -1,24 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / useOwner - -```ts -function useOwner(owner: - | SyncOwner - | null): void; -``` - -Defined in: [useOwner.ts:10](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/useOwner.ts#L10) - -Vue composable for Evolu `useOwner` method. - -Using an owner means syncing it with its transports, or the transports -defined in Evolu config if the owner has no transports defined. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `owner` | \| [`SyncOwner`](/docs/api-reference/common/local-first/Sync/interfaces/SyncOwner.mdx) \| `null` | - -## Returns - -`void` diff --git a/.generated/evolu-docs/api-reference/vue/functions/useQueries.mdx b/.generated/evolu-docs/api-reference/vue/functions/useQueries.mdx deleted file mode 100644 index e7db9bd2b..000000000 --- a/.generated/evolu-docs/api-reference/vue/functions/useQueries.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / useQueries - -```ts -function useQueries(queries: [...Q[]], options?: Partial<{ - once: [...OQ]; - promises: [...QueriesToQueryRowsPromises, ...QueriesToQueryRowsPromises]; -}>): [...QueriesToQueryRowsRef[], ...QueriesToQueryRowsRef[]]; -``` - -Defined in: [useQueries.ts:16](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/useQueries.ts#L16) - -The same as [useQuery](/docs/api-reference/vue/functions/useQuery.mdx), but for many queries. - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | -| `Q` *extends* [`Queries`](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx)\<`R`\> | -| `OQ` *extends* [`Queries`](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx)\<`R`\> | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `queries` | \[`...Q[]`\] | -| `options` | `Partial`\<\{ `once`: \[`...OQ`\]; `promises`: \[`...QueriesToQueryRowsPromises`, `...QueriesToQueryRowsPromises`\]; \}\> | - -## Returns - -\[`...QueriesToQueryRowsRef[]`, `...QueriesToQueryRowsRef[]`\] diff --git a/.generated/evolu-docs/api-reference/vue/functions/useQuery.mdx b/.generated/evolu-docs/api-reference/vue/functions/useQuery.mdx deleted file mode 100644 index 20ccae267..000000000 --- a/.generated/evolu-docs/api-reference/vue/functions/useQuery.mdx +++ /dev/null @@ -1,52 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / useQuery - -```ts -function useQuery(query: Query, options?: Partial<{ - once: boolean; - promise: Promise>; -}>): Readonly>>; -``` - -Defined in: [useQuery.ts:36](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/useQuery.ts#L36) - -Load and subscribe to the query, returning a ref that stays in sync with -Evolu changes. - -### Example - -```ts -// Get all rows. -const rows = useQuery(allTodos); - -// Get rows for a specific todo (the first row can be null). -const rows = useQuery(todoById(1)); - -// Get all rows, but without subscribing to changes. -const rows = useQuery(allTodos, { once: true }); - -// Prefetch rows. -const allTodos = evolu.createQuery((db) => - db.selectFrom("todo").selectAll(), -); -const allTodosPromise = evolu.loadQuery(allTodos); - -// Use prefetched rows. -const rows = useQuery(allTodos, { promise: allTodosPromise }); -``` - -## Type Parameters - -| Type Parameter | -| ------ | -| `R` *extends* [`Row`](/docs/api-reference/common/local-first/Query/interfaces/Row.mdx) | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `query` | [`Query`](/docs/api-reference/common/local-first/Query/type-aliases/Query.mdx)\<`R`\> | -| `options` | `Partial`\<\{ `once`: `boolean`; `promise`: `Promise`\<[`QueryRows`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx)\<`R`\>\>; \}\> | - -## Returns - -`Readonly`\<`Ref`\<[`QueryRows`](/docs/api-reference/common/local-first/Query/type-aliases/QueryRows.mdx)\<`R`\>\>\> diff --git a/.generated/evolu-docs/api-reference/vue/functions/useSyncState.mdx b/.generated/evolu-docs/api-reference/vue/functions/useSyncState.mdx deleted file mode 100644 index ae1ee3f93..000000000 --- a/.generated/evolu-docs/api-reference/vue/functions/useSyncState.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / useSyncState - -```ts -function useSyncState(): Ref; -``` - -Defined in: [useSyncState.ts:6](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/useSyncState.ts#L6) - -Subscribe to [SyncState](/docs/api-reference/common/local-first/Sync/type-aliases/SyncState.mdx) changes. - -## Returns - -`Ref`\<[`SyncState`](/docs/api-reference/common/local-first/Sync/type-aliases/SyncState.mdx)\> diff --git a/.generated/evolu-docs/api-reference/vue/page.mdx b/.generated/evolu-docs/api-reference/vue/page.mdx deleted file mode 100644 index fd2320e8a..000000000 --- a/.generated/evolu-docs/api-reference/vue/page.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / @evolu/vue - -## Type Aliases - -| Type Alias | Description | -| ------ | ------ | -| [QueriesToQueryRowsRef](/docs/api-reference/vue/type-aliases/QueriesToQueryRowsRef.mdx) | - | - -## Variables - -| Variable | Description | -| ------ | ------ | -| [EvoluContext](/docs/api-reference/vue/variables/EvoluContext.mdx) | The injection key for providing Evolu. | -| [evoluInstanceMap](/docs/api-reference/vue/variables/evoluInstanceMap.mdx) | Stores the Evolu instance for a Vue component. This is most useful at the root component where provide/inject doesn't work. | -| [EvoluProvider](/docs/api-reference/vue/variables/EvoluProvider.mdx) | - | - -## Functions - -| Function | Description | -| ------ | ------ | -| [createUseEvolu](/docs/api-reference/vue/functions/createUseEvolu.mdx) | Creates a helper function returning a type-aware instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). | -| [provideEvolu](/docs/api-reference/vue/functions/provideEvolu.mdx) | Provide the Evolu instance to components via Vue's provide/inject system. | -| [useEvolu](/docs/api-reference/vue/functions/useEvolu.mdx) | Vue composable returning a generic instance of [Evolu](/docs/api-reference/common/local-first/Evolu/interfaces/Evolu.mdx). | -| [useEvoluError](/docs/api-reference/vue/functions/useEvoluError.mdx) | Subscribe to [EvoluError](/docs/api-reference/common/local-first/Error/type-aliases/EvoluError.mdx) changes. | -| [useOwner](/docs/api-reference/vue/functions/useOwner.mdx) | Vue composable for Evolu `useOwner` method. | -| [useQueries](/docs/api-reference/vue/functions/useQueries.mdx) | The same as [useQuery](/docs/api-reference/vue/functions/useQuery.mdx), but for many queries. | -| [useQuery](/docs/api-reference/vue/functions/useQuery.mdx) | Load and subscribe to the query, returning a ref that stays in sync with Evolu changes. | -| [useSyncState](/docs/api-reference/vue/functions/useSyncState.mdx) | Subscribe to [SyncState](/docs/api-reference/common/local-first/Sync/type-aliases/SyncState.mdx) changes. | diff --git a/.generated/evolu-docs/api-reference/vue/type-aliases/QueriesToQueryRowsRef.mdx b/.generated/evolu-docs/api-reference/vue/type-aliases/QueriesToQueryRowsRef.mdx deleted file mode 100644 index ef7b70dee..000000000 --- a/.generated/evolu-docs/api-reference/vue/type-aliases/QueriesToQueryRowsRef.mdx +++ /dev/null @@ -1,13 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / QueriesToQueryRowsRef - -```ts -type QueriesToQueryRowsRef = { [P in keyof Q]: Q[P] extends Query ? Ref> : never }; -``` - -Defined in: [useQueries.ts:11](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/useQueries.ts#L11) - -## Type Parameters - -| Type Parameter | -| ------ | -| `Q` *extends* [`Queries`](/docs/api-reference/common/local-first/Query/type-aliases/Queries.mdx) | diff --git a/.generated/evolu-docs/api-reference/vue/variables/EvoluContext.mdx b/.generated/evolu-docs/api-reference/vue/variables/EvoluContext.mdx deleted file mode 100644 index 241c356cf..000000000 --- a/.generated/evolu-docs/api-reference/vue/variables/EvoluContext.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / EvoluContext - -```ts -const EvoluContext: InjectionKey< - | Evolu -| null>; -``` - -Defined in: [provideEvolu.ts:19](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/provideEvolu.ts#L19) - -The injection key for providing Evolu. diff --git a/.generated/evolu-docs/api-reference/vue/variables/EvoluProvider.mdx b/.generated/evolu-docs/api-reference/vue/variables/EvoluProvider.mdx deleted file mode 100644 index 094595639..000000000 --- a/.generated/evolu-docs/api-reference/vue/variables/EvoluProvider.mdx +++ /dev/null @@ -1,31 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / EvoluProvider - -```ts -const EvoluProvider: DefineComponent Evolu; - }; -}>, () => - | VNode[] - | undefined, { -}, { -}, { -}, ComponentOptionsMixin, ComponentOptionsMixin, { -}, string, PublicProps, ToResolvedProps Evolu; - }; -}>, { -}>, { -}, { -}, { -}, { -}, string, ComponentProvideOptions, true, { -}, any>; -``` - -Defined in: [EvoluProvider.ts:5](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/EvoluProvider.ts#L5) diff --git a/.generated/evolu-docs/api-reference/vue/variables/evoluInstanceMap.mdx b/.generated/evolu-docs/api-reference/vue/variables/evoluInstanceMap.mdx deleted file mode 100644 index ce48a1018..000000000 --- a/.generated/evolu-docs/api-reference/vue/variables/evoluInstanceMap.mdx +++ /dev/null @@ -1,10 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/vue](/docs/api-reference/vue/page.mdx) / evoluInstanceMap - -```ts -const evoluInstanceMap: WeakMap>; -``` - -Defined in: [provideEvolu.ts:13](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/vue/src/provideEvolu.ts#L13) - -Stores the Evolu instance for a Vue component. This is most useful at the -root component where provide/inject doesn't work. diff --git a/.generated/evolu-docs/api-reference/web/functions/createEvoluDeps.mdx b/.generated/evolu-docs/api-reference/web/functions/createEvoluDeps.mdx deleted file mode 100644 index 92e55931a..000000000 --- a/.generated/evolu-docs/api-reference/web/functions/createEvoluDeps.mdx +++ /dev/null @@ -1,19 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createEvoluDeps - -```ts -function createEvoluDeps(deps?: Partial): EvoluDeps; -``` - -Defined in: [local-first/Evolu.ts:14](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/local-first/Evolu.ts#L14) - -Creates Evolu dependencies for the web platform. - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `deps` | `Partial`\<[`ConsoleDep`](/docs/api-reference/common/Console/interfaces/ConsoleDep.mdx)\> | - -## Returns - -[`EvoluDeps`](/docs/api-reference/common/local-first/Evolu/type-aliases/EvoluDeps.mdx) diff --git a/.generated/evolu-docs/api-reference/web/functions/createMessageChannel.mdx b/.generated/evolu-docs/api-reference/web/functions/createMessageChannel.mdx deleted file mode 100644 index 5e4c8308c..000000000 --- a/.generated/evolu-docs/api-reference/web/functions/createMessageChannel.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createMessageChannel - -```ts -function createMessageChannel(): MessageChannel; -``` - -Defined in: [Worker.ts:53](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Worker.ts#L53) - -Creates a [MessageChannel](/docs/api-reference/common/Worker/interfaces/MessageChannel.mdx) from a Web MessageChannel. - -### Example - -```ts -const channel = createMessageChannel(); -channel.port1.onMessage = (response) => console.log(response); -channel.port1.postMessage({ type: "ping" }); -``` - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Returns - -[`MessageChannel`](/docs/api-reference/common/Worker/interfaces/MessageChannel.mdx)\<`Input`, `Output`\> diff --git a/.generated/evolu-docs/api-reference/web/functions/createSharedWorker.mdx b/.generated/evolu-docs/api-reference/web/functions/createSharedWorker.mdx deleted file mode 100644 index 69cb44a0b..000000000 --- a/.generated/evolu-docs/api-reference/web/functions/createSharedWorker.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createSharedWorker - -```ts -function createSharedWorker(nativeSharedWorker: SharedWorker): SharedWorker; -``` - -Defined in: [Worker.ts:32](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Worker.ts#L32) - -Creates an Evolu [SharedWorker](/docs/api-reference/common/Worker/interfaces/SharedWorker.mdx) from a Web SharedWorker. - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `nativeSharedWorker` | `SharedWorker` | - -## Returns - -[`SharedWorker`](/docs/api-reference/common/Worker/interfaces/SharedWorker.mdx)\<`Input`, `Output`\> diff --git a/.generated/evolu-docs/api-reference/web/functions/createSharedWorkerScope.mdx b/.generated/evolu-docs/api-reference/web/functions/createSharedWorkerScope.mdx deleted file mode 100644 index 976529c78..000000000 --- a/.generated/evolu-docs/api-reference/web/functions/createSharedWorkerScope.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createSharedWorkerScope - -```ts -function createSharedWorkerScope(nativeSelf: SharedWorkerGlobalScope): SharedWorkerScope; -``` - -Defined in: [Worker.ts:200](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Worker.ts#L200) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `nativeSelf` | `SharedWorkerGlobalScope` | - -## Returns - -[`SharedWorkerScope`](/docs/api-reference/common/Worker/interfaces/SharedWorkerScope.mdx)\<`Input`, `Output`\> - -## Deprecated - -Use [createSharedWorkerSelf](/docs/api-reference/web/functions/createSharedWorkerSelf.mdx). Retained for backwards compatibility. diff --git a/.generated/evolu-docs/api-reference/web/functions/createSharedWorkerSelf.mdx b/.generated/evolu-docs/api-reference/web/functions/createSharedWorkerSelf.mdx deleted file mode 100644 index 1c1bf59e3..000000000 --- a/.generated/evolu-docs/api-reference/web/functions/createSharedWorkerSelf.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createSharedWorkerSelf - -```ts -function createSharedWorkerSelf(nativeSelf: SharedWorkerGlobalScope): SharedWorkerSelf; -``` - -Defined in: [Worker.ts:89](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Worker.ts#L89) - -Creates an Evolu [SharedWorkerSelf](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx) from a Web `SharedWorkerGlobalScope` -(`self` inside a shared worker). - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `nativeSelf` | `SharedWorkerGlobalScope` | - -## Returns - -[`SharedWorkerSelf`](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx)\<`Input`, `Output`\> diff --git a/.generated/evolu-docs/api-reference/web/functions/createWorker.mdx b/.generated/evolu-docs/api-reference/web/functions/createWorker.mdx deleted file mode 100644 index f54fb5457..000000000 --- a/.generated/evolu-docs/api-reference/web/functions/createWorker.mdx +++ /dev/null @@ -1,26 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createWorker - -```ts -function createWorker(nativeWorker: Worker): Worker; -``` - -Defined in: [Worker.ts:27](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Worker.ts#L27) - -Creates a [Worker](/docs/api-reference/common/Worker/interfaces/Worker.mdx) from a Web Worker. - -## Type Parameters - -| Type Parameter | -| ------ | -| `Input` | -| `Output` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `nativeWorker` | `Worker` | - -## Returns - -[`Worker`](/docs/api-reference/common/Worker/interfaces/Worker.mdx)\<`Input`, `Output`\> diff --git a/.generated/evolu-docs/api-reference/web/functions/createWorkerRun.mdx b/.generated/evolu-docs/api-reference/web/functions/createWorkerRun.mdx deleted file mode 100644 index 58bb7fc16..000000000 --- a/.generated/evolu-docs/api-reference/web/functions/createWorkerRun.mdx +++ /dev/null @@ -1,16 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createWorkerRun - -```ts -function createWorkerRun(): Run & Partial & Partial & ConsoleStoreOutputEntryDep & CreateMessagePortDep>; -``` - -Defined in: [Worker.ts:117](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Worker.ts#L117) - -Creates [Run](/docs/api-reference/common/Task/type-aliases/Run.mdx) for a Web Worker or SharedWorker. - -Includes a console store output for forwarding worker logs and native output -for local debugging. - -## Returns - -[`Run`](/docs/api-reference/common/Task/type-aliases/Run.mdx)\<[`ConsoleDep`](/docs/api-reference/common/Console/interfaces/ConsoleDep.mdx) & [`RandomBytesDep`](/docs/api-reference/common/Crypto/interfaces/RandomBytesDep.mdx) & [`RandomDep`](/docs/api-reference/common/Random/interfaces/RandomDep.mdx) & [`TimeDep`](/docs/api-reference/common/Time/interfaces/TimeDep.mdx) & `Partial`\<[`RunnerConfigDep`](/docs/api-reference/common/Task/interfaces/RunnerConfigDep.mdx)\> & `Partial`\<[`TracerConfigDep`](/docs/api-reference/common/Tracer/interfaces/TracerConfigDep.mdx)\> & `Partial`\<[`TracerDep`](/docs/api-reference/common/Tracer/interfaces/TracerDep.mdx)\> & [`ConsoleStoreOutputEntryDep`](/docs/api-reference/common/Console/interfaces/ConsoleStoreOutputEntryDep.mdx) & [`CreateMessagePortDep`](/docs/api-reference/common/Worker/interfaces/CreateMessagePortDep.mdx)\> diff --git a/.generated/evolu-docs/api-reference/web/functions/createWorkerScope.mdx b/.generated/evolu-docs/api-reference/web/functions/createWorkerScope.mdx deleted file mode 100644 index 59e6500ca..000000000 --- a/.generated/evolu-docs/api-reference/web/functions/createWorkerScope.mdx +++ /dev/null @@ -1,28 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createWorkerScope - -```ts -function createWorkerScope(nativeSelf: DedicatedWorkerGlobalScope): WorkerScope; -``` - -Defined in: [Worker.ts:164](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Worker.ts#L164) - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `nativeSelf` | `DedicatedWorkerGlobalScope` | - -## Returns - -[`WorkerScope`](/docs/api-reference/common/Worker/interfaces/WorkerScope.mdx)\<`Input`, `Output`\> - -## Deprecated - -Use [createWorkerSelf](/docs/api-reference/web/functions/createWorkerSelf.mdx). Retained for backwards compatibility. diff --git a/.generated/evolu-docs/api-reference/web/functions/createWorkerSelf.mdx b/.generated/evolu-docs/api-reference/web/functions/createWorkerSelf.mdx deleted file mode 100644 index 76725a113..000000000 --- a/.generated/evolu-docs/api-reference/web/functions/createWorkerSelf.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createWorkerSelf - -```ts -function createWorkerSelf(nativeSelf: DedicatedWorkerGlobalScope): WorkerSelf; -``` - -Defined in: [Worker.ts:81](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Worker.ts#L81) - -Creates an Evolu [WorkerSelf](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx) from a Web `DedicatedWorkerGlobalScope` -(`self` inside a dedicated worker). - -## Type Parameters - -| Type Parameter | Default type | -| ------ | ------ | -| `Input` | - | -| `Output` | `never` | - -## Parameters - -| Parameter | Type | -| ------ | ------ | -| `nativeSelf` | `DedicatedWorkerGlobalScope` | - -## Returns - -[`WorkerSelf`](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx)\<`Input`, `Output`\> diff --git a/.generated/evolu-docs/api-reference/web/page.mdx b/.generated/evolu-docs/api-reference/web/page.mdx deleted file mode 100644 index 091cc150e..000000000 --- a/.generated/evolu-docs/api-reference/web/page.mdx +++ /dev/null @@ -1,29 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / @evolu/web - -## Variables - -| Variable | Description | -| ------ | ------ | -| [createMessagePort](/docs/api-reference/web/variables/createMessagePort.mdx) | Creates an Evolu [MessagePort](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx) from a Web MessagePort. | -| [~~createRunner~~](/docs/api-reference/web/variables/createRunner.mdx) | - | -| [createWasmSqliteDriver](/docs/api-reference/web/variables/createWasmSqliteDriver.mdx) | - | - -## Functions - -| Function | Description | -| ------ | ------ | -| [createEvoluDeps](/docs/api-reference/web/functions/createEvoluDeps.mdx) | Creates Evolu dependencies for the web platform. | -| [createMessageChannel](/docs/api-reference/web/functions/createMessageChannel.mdx) | Creates a [MessageChannel](/docs/api-reference/common/Worker/interfaces/MessageChannel.mdx) from a Web MessageChannel. | -| [createSharedWorker](/docs/api-reference/web/functions/createSharedWorker.mdx) | Creates an Evolu [SharedWorker](/docs/api-reference/common/Worker/interfaces/SharedWorker.mdx) from a Web SharedWorker. | -| [~~createSharedWorkerScope~~](/docs/api-reference/web/functions/createSharedWorkerScope.mdx) | - | -| [createSharedWorkerSelf](/docs/api-reference/web/functions/createSharedWorkerSelf.mdx) | Creates an Evolu [SharedWorkerSelf](/docs/api-reference/common/Worker/interfaces/SharedWorkerSelf.mdx) from a Web `SharedWorkerGlobalScope` (`self` inside a shared worker). | -| [createWorker](/docs/api-reference/web/functions/createWorker.mdx) | Creates a [Worker](/docs/api-reference/common/Worker/interfaces/Worker.mdx) from a Web Worker. | -| [createWorkerRun](/docs/api-reference/web/functions/createWorkerRun.mdx) | Creates [Run](/docs/api-reference/common/Task/type-aliases/Run.mdx) for a Web Worker or SharedWorker. | -| [~~createWorkerScope~~](/docs/api-reference/web/functions/createWorkerScope.mdx) | - | -| [createWorkerSelf](/docs/api-reference/web/functions/createWorkerSelf.mdx) | Creates an Evolu [WorkerSelf](/docs/api-reference/common/Worker/interfaces/WorkerSelf.mdx) from a Web `DedicatedWorkerGlobalScope` (`self` inside a dedicated worker). | - -## Browser Runner - -| Variable | Description | -| ------ | ------ | -| [createRun](/docs/api-reference/web/variables/createRun.mdx) | Creates [Run](/docs/api-reference/common/Task/type-aliases/Run.mdx) for the browser with global error handling. | diff --git a/.generated/evolu-docs/api-reference/web/variables/createMessagePort.mdx b/.generated/evolu-docs/api-reference/web/variables/createMessagePort.mdx deleted file mode 100644 index 57685cb64..000000000 --- a/.generated/evolu-docs/api-reference/web/variables/createMessagePort.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createMessagePort - -```ts -const createMessagePort: CreateMessagePort; -``` - -Defined in: [Worker.ts:74](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Worker.ts#L74) - -Creates an Evolu [MessagePort](/docs/api-reference/common/Worker/interfaces/MessagePort.mdx) from a Web MessagePort. - -Use this for ports received via postMessage transfer. diff --git a/.generated/evolu-docs/api-reference/web/variables/createRun.mdx b/.generated/evolu-docs/api-reference/web/variables/createRun.mdx deleted file mode 100644 index d39b75b28..000000000 --- a/.generated/evolu-docs/api-reference/web/variables/createRun.mdx +++ /dev/null @@ -1,27 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createRun - -```ts -const createRun: CreateRunner; -``` - -Defined in: [Task.ts:38](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Task.ts#L38) - -Creates [Run](/docs/api-reference/common/Task/type-aliases/Run.mdx) for the browser with global error handling. - -Registers `error` and `unhandledrejection` handlers that log errors to the -console. Handlers are removed when the run is disposed. - -### Example - -```ts -const console = createConsole({ - formatter: createConsoleFormatter()({ - timestampFormat: "relative", - }), -}); - -await using run = createRun({ console }); -await using stack = run.stack(); - -await stack.use(startApp()); -``` diff --git a/.generated/evolu-docs/api-reference/web/variables/createRunner.mdx b/.generated/evolu-docs/api-reference/web/variables/createRunner.mdx deleted file mode 100644 index 6dcfdde58..000000000 --- a/.generated/evolu-docs/api-reference/web/variables/createRunner.mdx +++ /dev/null @@ -1,11 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createRunner - -```ts -const createRunner: CreateRunner = createRun; -``` - -Defined in: [Task.ts:65](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Task.ts#L65) - -## Deprecated - -Use [createRun](/docs/api-reference/web/variables/createRun.mdx). diff --git a/.generated/evolu-docs/api-reference/web/variables/createWasmSqliteDriver.mdx b/.generated/evolu-docs/api-reference/web/variables/createWasmSqliteDriver.mdx deleted file mode 100644 index f2b99826e..000000000 --- a/.generated/evolu-docs/api-reference/web/variables/createWasmSqliteDriver.mdx +++ /dev/null @@ -1,7 +0,0 @@ -[API Reference](/docs/api-reference/page.mdx) / [@evolu/web](/docs/api-reference/web/page.mdx) / createWasmSqliteDriver - -```ts -const createWasmSqliteDriver: CreateSqliteDriver; -``` - -Defined in: [Sqlite.ts:25](https://github.com/SQLoot/EvoLoot/blob/d86280a21ced8e9f86b70217b1c345b37bea4ce2/packages/web/src/Sqlite.ts#L25) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 80c226783..4aab1ea4d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,6 +7,17 @@ on: branches: ["main"] merge_group: workflow_dispatch: + inputs: + coverage_lane: + description: "Active integration coverage lane" + required: false + default: "expo" + type: choice + options: + - astro + - tanstack + - react-native + - expo permissions: contents: read @@ -23,7 +34,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [24] + node-version: [24, 25] steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -35,7 +46,7 @@ jobs: - name: Setup Bun uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1 with: - bun-version: "1.3.9" + bun-version: "1.3.10" - name: Install dependencies run: bun install @@ -66,11 +77,34 @@ jobs: fi } >> "$GITHUB_STEP_SUMMARY" + coverage-lane: + runs-on: ubuntu-latest + env: + EVOLU_ACTIVE_COVERAGE_LANE: ${{ github.event.inputs.coverage_lane || vars.EVOLU_ACTIVE_COVERAGE_LANE || 'expo' }} + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Setup Node.js + uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + with: + node-version: 24 + + - name: Setup Bun + uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1 + with: + bun-version: "1.3.10" + + - name: Install dependencies + run: bun install + + - name: Run active coverage lane + run: bun run coverage:lane:active + relay-runtime-smoke: runs-on: ubuntu-latest strategy: matrix: - node-version: [24] + node-version: [24, 25] runtime: [bun, node] steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -83,7 +117,7 @@ jobs: - name: Setup Bun uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1 with: - bun-version: "1.3.9" + bun-version: "1.3.10" - name: Install dependencies run: bun install @@ -101,3 +135,61 @@ jobs: node ./node_modules/vitest/vitest.mjs run --project unit packages/common/test/WebSocket.test.ts packages/common/test/local-first/Relay.test.ts + + expo-smoke: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [24] + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Using Node.js ${{ matrix.node-version }} + uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + with: + node-version: ${{ matrix.node-version }} + + - name: Setup Bun + uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1 + with: + bun-version: "1.3.10" + + - name: Install dependencies + run: bun install + + - name: Expo doctor + working-directory: examples/react-expo + continue-on-error: true + run: bunx expo-doctor + + - name: Expo web export smoke + working-directory: examples/react-expo + run: bun run web:export + + integrations-smoke: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [24, 25] + example: [astro, tanstack-start, tauri] + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Using Node.js ${{ matrix.node-version }} + uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + with: + node-version: ${{ matrix.node-version }} + + - name: Setup Bun + uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1 + with: + bun-version: "1.3.10" + + - name: Install dependencies + run: bun install + + - name: Build integration package + run: bunx turbo --filter @evolu/${{ matrix.example }} build + + - name: Build integration example + run: bunx turbo --filter @example/${{ matrix.example }} build diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 7d2285407..e958952d4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -20,6 +20,8 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: oven-sh/setup-bun@ff41c74480e92d179c27462a68d60e4e4ccb5e06 # v2.0.1 + with: + bun-version: "1.3.10" - name: Install dependencies run: bun install diff --git a/.github/workflows/tree-shaking-compat.yaml b/.github/workflows/tree-shaking-compat.yaml index 09d9141a4..8c68071d6 100644 --- a/.github/workflows/tree-shaking-compat.yaml +++ b/.github/workflows/tree-shaking-compat.yaml @@ -34,7 +34,7 @@ jobs: - name: Setup Bun uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1 with: - bun-version: "1.3.9" + bun-version: "1.3.10" - name: Install dependencies run: bun install @@ -44,3 +44,28 @@ jobs: - name: Run tree-shaking compatibility lane run: bun run test:tree-shaking:compat + + tree-shaking-compat-node25: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Setup Node.js + uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 + with: + node-version: 25 + + - name: Setup Bun + uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1 + with: + bun-version: "1.3.10" + + - name: Install dependencies + run: bun install + + - name: Build @evolu/common + run: bunx turbo --filter @evolu/common build + + - name: Run tree-shaking compatibility lane (Node 25 compat) + run: bun run test:tree-shaking:compat diff --git a/README.md b/README.md index 97938b474..08cd04292 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Coverage snapshot date: `2026-02-27` (from `bun run test:coverage` and `bun run | `@evolu/web` | `@evolu/common ^7.4.1` | Stable | `99.33% / 93.71%` | Browser runtime (Worker/SharedWorker/Web Locks path). | | `@evolu/nodejs` | Node `>=24.0.0`, `@evolu/common ^7.4.1` | Stable | `95.74% / 87.50%` | Includes relay adapter hardening (WS lifecycle + subscribe/broadcast/unsubscribe + restart coverage). | | `@evolu/react-web` | React `>=19`, React DOM `>=19`, `@evolu/web ^2.4.0` | Stable thin adapter | `100% / 100%` | Thin web integration wrapper. | -| `@evolu/react-native` | React Native `>=0.81`, Expo `>=54`, `@op-engineering/op-sqlite >=12` | Active hardening | `20.65% / 13.11%` | Core adapters are covered; broader suite is backlog. | +| `@evolu/react-native` | React Native `>=0.84`, Expo `>=55`, `@op-engineering/op-sqlite >=12` | Lane-gated hardening | `100.00% / 100.00%` (lane gate) | Strict file gates (`react-native` + `expo`) are enforced at `100/100/100/100` for scoped source files. | | `@evolu/react` | React `>=19` | Wrapper support | `0% / 0%` | Hook wrappers; coverage expansion planned. | | `@evolu/vue` | Vue `>=3.5.29` | Wrapper support | `0% / 0%` | Composition API wrappers; coverage expansion planned. | | `@evolu/svelte` | Svelte `>=5.53.3`, `@evolu/web ^2.4.0` | Wrapper support | `0% / 0%` | Store-based wrappers; coverage expansion planned. | @@ -99,7 +99,7 @@ To chat with other community members, you can join the [Evolu Discord](https://d Evolu monorepo uses [Bun](https://bun.sh). > [!NOTE] -> The Evolu monorepo is verified to run under **Bun 1.3.10** in combination with **Node.js >=24.0.0**. This compatibility is explicitly tested in CI. +> The Evolu monorepo is verified to run under **Bun 1.3.10** with **Node.js 24 (LTS)** and **Node.js 25 (current)** in CI. Install dependencies: diff --git a/apps/relay/package.json b/apps/relay/package.json index 854d648c8..e9d7641a2 100644 --- a/apps/relay/package.json +++ b/apps/relay/package.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@evolu/tsconfig": "workspace:*", - "@types/node": "^24.10.13", + "@types/node": "^25.3.2", "typescript": "^5.9.3" }, "engines": { diff --git a/bun.lock b/bun.lock index 052b18547..78688cc3d 100644 --- a/bun.lock +++ b/bun.lock @@ -29,7 +29,7 @@ }, "devDependencies": { "@evolu/tsconfig": "workspace:*", - "@types/node": "^24.10.13", + "@types/node": "^25.3.2", "typescript": "^5.9.3", }, }, @@ -54,6 +54,22 @@ "vite-plugin-pwa": "^1.2.0", }, }, + "examples/astro": { + "name": "@example/astro", + "version": "0.0.0", + "dependencies": { + "@astrojs/react": "^4.4.2", + "@evolu/astro": "workspace:*", + "astro": "^5.14.5", + "react": "19.2.4", + "react-dom": "19.2.4", + }, + "devDependencies": { + "@types/react": "~19.2.14", + "@types/react-dom": "~19.2.3", + "typescript": "^5.9.3", + }, + }, "examples/react-electron": { "name": "@example/react-electron", "version": "0.0.0", @@ -84,25 +100,27 @@ "@evolu/common": "workspace:*", "@evolu/react": "workspace:*", "@evolu/react-native": "workspace:*", - "@expo/metro-runtime": "^6.1.2", + "@expo/metro-runtime": "^55.0.6", "@expo/vector-icons": "^15.1.1", "abort-signal-polyfill": "^1.0.0", "babel-plugin-module-resolver": "^5.0.2", - "expo": "^54.0.31", - "expo-constants": "^18.0.13", - "expo-font": "^14.0.10", - "expo-linking": "^8.0.11", - "expo-router": "^6.0.21", - "expo-secure-store": "~15.0.8", - "expo-splash-screen": "~31.0.13", - "expo-sqlite": "~16.0.10", + "expo": "^55.0.4", + "expo-constants": "^55.0.7", + "expo-font": "^55.0.4", + "expo-linking": "^55.0.7", + "expo-router": "^55.0.3", + "expo-secure-store": "~55.0.8", + "expo-splash-screen": "~55.0.10", + "expo-sqlite": "~55.0.10", "react": "19.2.4", - "react-native": "0.81.6", - "react-native-nitro-modules": "0.33.9", + "react-dom": "19.2.4", + "react-native": "0.84.1", + "react-native-nitro-modules": "0.34.1", "react-native-quick-crypto": "^1.0.14", "react-native-safe-area-context": "^5.6.2", "react-native-screens": "^4.24.0", "react-native-svg": "15.15.3", + "react-native-web": "^0.21.0", "set.prototype.difference": "^1.1.7", "set.prototype.intersection": "^1.1.8", "set.prototype.isdisjointfrom": "^1.1.5", @@ -117,7 +135,7 @@ "@babel/plugin-transform-explicit-resource-management": "^7.28.6", "@babel/plugin-transform-modules-commonjs": "^7.28.6", "@types/react": "~19.2.14", - "babel-preset-expo": "^54.0.6", + "babel-preset-expo": "^55.0.10", "typescript": "^5.9.3", }, }, @@ -137,7 +155,7 @@ "devDependencies": { "@tailwindcss/forms": "^0.5.11", "@tailwindcss/postcss": "^4.2.1", - "@types/node": "^24.10.13", + "@types/node": "^25.3.2", "@types/react": "~19.2.14", "@types/react-dom": "~19.2.3", "postcss": "^8.5.6", @@ -189,6 +207,41 @@ "vite-plugin-pwa": "^1.2.0", }, }, + "examples/tanstack-start": { + "name": "@example/tanstack-start", + "version": "0.0.0", + "dependencies": { + "@evolu/tanstack-start": "workspace:*", + "@tanstack/react-router": "^1.0.0", + "react": "19.2.4", + "react-dom": "19.2.4", + }, + "devDependencies": { + "@types/react": "~19.2.14", + "@types/react-dom": "~19.2.3", + "@vitejs/plugin-react": "^5.1.4", + "typescript": "^5.9.3", + "vite": "^7.3.1", + }, + }, + "examples/tauri": { + "name": "@example/tauri", + "version": "0.0.0", + "dependencies": { + "@evolu/tauri": "workspace:*", + "@tauri-apps/api": "^2.8.0", + "react": "19.2.4", + "react-dom": "19.2.4", + }, + "devDependencies": { + "@tauri-apps/cli": "^2.8.4", + "@types/react": "~19.2.14", + "@types/react-dom": "~19.2.3", + "@vitejs/plugin-react": "^5.1.4", + "typescript": "^5.9.3", + "vite": "^7.3.1", + }, + }, "examples/vue-vite-pwa": { "name": "@example/vue-vite-pwa", "version": "0.0.0", @@ -209,6 +262,15 @@ "vue-tsc": "^3.2.5", }, }, + "packages/astro": { + "name": "@evolu/astro", + "version": "0.1.0", + "devDependencies": { + "@evolu/tsconfig": "workspace:*", + "typescript": "^5.9.3", + "vitest": "^4.0.18", + }, + }, "packages/bun": { "name": "@evolu/bun", "version": "0.1.0", @@ -257,7 +319,7 @@ "@evolu/common": "workspace:*", "@evolu/tsconfig": "workspace:*", "@types/better-sqlite3": "^7.6.13", - "@types/node": "^24.10.13", + "@types/node": "^25.3.2", "@types/ws": "^8.18.1", "typescript": "^5.9.3", }, @@ -290,12 +352,12 @@ "@evolu/tsconfig": "workspace:*", "@op-engineering/op-sqlite": "^15.2.2", "@types/react": "~19.2.14", - "expo": "^54.0.31", - "expo-secure-store": "~15.0.8", - "expo-sqlite": "~16.0.10", + "expo": "^55.0.4", + "expo-secure-store": "~55.0.8", + "expo-sqlite": "~55.0.10", "react": "19.2.4", - "react-native": "0.81.6", - "react-native-nitro-modules": "0.33.9", + "react-native": "0.84.1", + "react-native-nitro-modules": "0.34.1", "react-native-sensitive-info": "6.0.0-rc.11", "react-native-svg": "15.15.3", "typescript": "^5.9.3", @@ -304,12 +366,12 @@ "@evolu/common": "^7.4.1", "@evolu/react": "^10.4.0", "@op-engineering/op-sqlite": ">=12", - "expo": ">=54", - "expo-secure-store": ">=15", - "expo-sqlite": ">=16", + "expo": ">=55", + "expo-secure-store": ">=55", + "expo-sqlite": ">=55", "react": ">=19", - "react-native": ">=0.81", - "react-native-nitro-modules": ">=0.33.9", + "react-native": ">=0.84", + "react-native-nitro-modules": ">=0.34.1", "react-native-sensitive-info": ">=6", "react-native-svg": ">=15", }, @@ -363,6 +425,24 @@ "svelte": ">=5.53.3", }, }, + "packages/tanstack-start": { + "name": "@evolu/tanstack-start", + "version": "0.1.0", + "devDependencies": { + "@evolu/tsconfig": "workspace:*", + "typescript": "^5.9.3", + "vitest": "^4.0.18", + }, + }, + "packages/tauri": { + "name": "@evolu/tauri", + "version": "0.1.0", + "devDependencies": { + "@evolu/tsconfig": "workspace:*", + "typescript": "^5.9.3", + "vitest": "^4.0.18", + }, + }, "packages/tsconfig": { "name": "@evolu/tsconfig", "version": "0.0.2", @@ -416,8 +496,6 @@ "packages": { "7zip-bin": ["7zip-bin@5.2.0", "", {}, "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A=="], - "@0no-co/graphql.web": ["@0no-co/graphql.web@1.2.0", "", { "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" }, "optionalPeers": ["graphql"] }, "sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw=="], - "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], @@ -442,6 +520,18 @@ "@apideck/better-ajv-errors": ["@apideck/better-ajv-errors@0.3.6", "", { "dependencies": { "json-schema": "^0.4.0", "jsonpointer": "^5.0.0", "leven": "^3.1.0" }, "peerDependencies": { "ajv": ">=8" } }, "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA=="], + "@astrojs/compiler": ["@astrojs/compiler@2.13.1", "", {}, "sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg=="], + + "@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.7.5", "", {}, "sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA=="], + + "@astrojs/markdown-remark": ["@astrojs/markdown-remark@6.3.10", "", { "dependencies": { "@astrojs/internal-helpers": "0.7.5", "@astrojs/prism": "3.3.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.2.0", "js-yaml": "^4.1.1", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^3.19.0", "smol-toml": "^1.5.2", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A=="], + + "@astrojs/prism": ["@astrojs/prism@3.3.0", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ=="], + + "@astrojs/react": ["@astrojs/react@4.4.2", "", { "dependencies": { "@vitejs/plugin-react": "^4.7.0", "ultrahtml": "^1.6.0", "vite": "^6.4.1" }, "peerDependencies": { "@types/react": "^17.0.50 || ^18.0.21 || ^19.0.0", "@types/react-dom": "^17.0.17 || ^18.0.6 || ^19.0.0", "react": "^17.0.2 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0" } }, "sha512-1tl95bpGfuaDMDn8O3x/5Dxii1HPvzjvpL2YTuqOOrQehs60I2DKiDgh1jrKc7G8lv+LQT5H15V6QONQ+9waeQ=="], + + "@astrojs/telemetry": ["@astrojs/telemetry@3.3.0", "", { "dependencies": { "ci-info": "^4.2.0", "debug": "^4.4.0", "dlv": "^1.1.3", "dset": "^3.1.4", "is-docker": "^3.0.0", "is-wsl": "^3.1.0", "which-pm-runs": "^1.1.0" } }, "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ=="], + "@babel/code-frame": ["@babel/code-frame@7.29.0", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw=="], "@babel/compat-data": ["@babel/compat-data@7.29.0", "", {}, "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg=="], @@ -490,8 +580,6 @@ "@babel/helpers": ["@babel/helpers@7.28.6", "", { "dependencies": { "@babel/template": "^7.28.6", "@babel/types": "^7.28.6" } }, "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw=="], - "@babel/highlight": ["@babel/highlight@7.25.9", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw=="], - "@babel/parser": ["@babel/parser@7.29.0", "", { "dependencies": { "@babel/types": "^7.29.0" }, "bin": "./bin/babel-parser.js" }, "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww=="], "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ["@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.5" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q=="], @@ -720,6 +808,8 @@ "@canvas/image-data": ["@canvas/image-data@1.1.0", "", {}, "sha512-QdObRRjRbcXGmM1tmJ+MrHcaz1MftF2+W7YI+MsphnsCrmtyfS0d5qJbk0MeSbUeyM/jCb0hmnkXPsy026L7dA=="], + "@capsizecss/unpack": ["@capsizecss/unpack@4.0.0", "", { "dependencies": { "fontkitten": "^1.0.0" } }, "sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA=="], + "@changesets/apply-release-plan": ["@changesets/apply-release-plan@7.0.14", "", { "dependencies": { "@changesets/config": "^3.1.2", "@changesets/get-version-range-type": "^0.4.0", "@changesets/git": "^3.0.4", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "detect-indent": "^6.0.0", "fs-extra": "^7.0.1", "lodash.startcase": "^4.4.0", "outdent": "^0.5.0", "prettier": "^2.7.1", "resolve-from": "^5.0.0", "semver": "^7.5.3" } }, "sha512-ddBvf9PHdy2YY0OUiEl3TV78mH9sckndJR14QAt87KLEbIov81XO0q0QAmvooBxXlqRRP8I9B7XOzZwQG7JkWA=="], "@changesets/assemble-release-plan": ["@changesets/assemble-release-plan@6.0.9", "", { "dependencies": { "@changesets/errors": "^0.2.0", "@changesets/get-dependents-graph": "^2.1.3", "@changesets/should-skip-package": "^0.1.2", "@changesets/types": "^6.1.0", "@manypkg/get-packages": "^1.1.3", "semver": "^7.5.3" } }, "sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ=="], @@ -832,6 +922,8 @@ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.3", "", { "os": "win32", "cpu": "x64" }, "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA=="], + "@evolu/astro": ["@evolu/astro@workspace:packages/astro"], + "@evolu/bun": ["@evolu/bun@workspace:packages/bun"], "@evolu/common": ["@evolu/common@workspace:packages/common"], @@ -850,6 +942,10 @@ "@evolu/svelte": ["@evolu/svelte@workspace:packages/svelte"], + "@evolu/tanstack-start": ["@evolu/tanstack-start@workspace:packages/tanstack-start"], + + "@evolu/tauri": ["@evolu/tauri@workspace:packages/tauri"], + "@evolu/tsconfig": ["@evolu/tsconfig@workspace:packages/tsconfig"], "@evolu/vue": ["@evolu/vue@workspace:packages/vue"], @@ -858,6 +954,8 @@ "@example/angular-vite-pwa": ["@example/angular-vite-pwa@workspace:examples/angular-vite-pwa"], + "@example/astro": ["@example/astro@workspace:examples/astro"], + "@example/react-electron": ["@example/react-electron@workspace:examples/react-electron"], "@example/react-expo": ["@example/react-expo@workspace:examples/react-expo"], @@ -868,45 +966,61 @@ "@example/svelte-vite-pwa": ["@example/svelte-vite-pwa@workspace:examples/svelte-vite-pwa"], + "@example/tanstack-start": ["@example/tanstack-start@workspace:examples/tanstack-start"], + + "@example/tauri": ["@example/tauri@workspace:examples/tauri"], + "@example/vue-vite-pwa": ["@example/vue-vite-pwa@workspace:examples/vue-vite-pwa"], - "@expo/cli": ["@expo/cli@54.0.23", "", { "dependencies": { "@0no-co/graphql.web": "^1.0.8", "@expo/code-signing-certificates": "^0.0.6", "@expo/config": "~12.0.13", "@expo/config-plugins": "~54.0.4", "@expo/devcert": "^1.2.1", "@expo/env": "~2.0.8", "@expo/image-utils": "^0.8.8", "@expo/json-file": "^10.0.8", "@expo/metro": "~54.2.0", "@expo/metro-config": "~54.0.14", "@expo/osascript": "^2.3.8", "@expo/package-manager": "^1.9.10", "@expo/plist": "^0.4.8", "@expo/prebuild-config": "^54.0.8", "@expo/schema-utils": "^0.1.8", "@expo/spawn-async": "^1.7.2", "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.3.0", "@react-native/dev-middleware": "0.81.5", "@urql/core": "^5.0.6", "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", "arg": "^5.0.2", "better-opn": "~3.0.2", "bplist-creator": "0.1.0", "bplist-parser": "^0.3.1", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "env-editor": "^0.4.1", "expo-server": "^1.0.5", "freeport-async": "^2.0.0", "getenv": "^2.0.0", "glob": "^13.0.0", "lan-network": "^0.1.6", "minimatch": "^9.0.0", "node-forge": "^1.3.3", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^3.0.1", "pretty-bytes": "^5.6.0", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "qrcode-terminal": "0.11.0", "require-from-string": "^2.0.2", "requireg": "^0.2.2", "resolve": "^1.22.2", "resolve-from": "^5.0.0", "resolve.exports": "^2.0.3", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "tar": "^7.5.2", "terminal-link": "^2.1.1", "undici": "^6.18.2", "wrap-ansi": "^7.0.0", "ws": "^8.12.1" }, "peerDependencies": { "expo": "*", "expo-router": "*", "react-native": "*" }, "optionalPeers": ["expo-router", "react-native"], "bin": { "expo-internal": "build/bin/cli" } }, "sha512-km0h72SFfQCmVycH/JtPFTVy69w6Lx1cHNDmfLfQqgKFYeeHTjx7LVDP4POHCtNxFP2UeRazrygJhlh4zz498g=="], + "@expo-google-fonts/material-symbols": ["@expo-google-fonts/material-symbols@0.4.24", "", {}, "sha512-1bJ63Yv2Bn8SN2MjrlbwLwUhnC8COOeejd15H88WjCtw5iNErqEPaBnpvmYyqciVYwudGo5drUIdY9C/5yPGbg=="], + + "@expo/cli": ["@expo/cli@55.0.14", "", { "dependencies": { "@expo/code-signing-certificates": "^0.0.6", "@expo/config": "~55.0.8", "@expo/config-plugins": "~55.0.6", "@expo/devcert": "^1.2.1", "@expo/env": "~2.1.1", "@expo/image-utils": "^0.8.12", "@expo/json-file": "^10.0.12", "@expo/log-box": "55.0.7", "@expo/metro": "~54.2.0", "@expo/metro-config": "~55.0.9", "@expo/osascript": "^2.4.2", "@expo/package-manager": "^1.10.3", "@expo/plist": "^0.5.2", "@expo/prebuild-config": "^55.0.8", "@expo/require-utils": "^55.0.2", "@expo/router-server": "^55.0.9", "@expo/schema-utils": "^55.0.2", "@expo/spawn-async": "^1.7.2", "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.4.0", "@react-native/dev-middleware": "0.83.2", "accepts": "^1.3.8", "arg": "^5.0.2", "better-opn": "~3.0.2", "bplist-creator": "0.1.0", "bplist-parser": "^0.3.1", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "dnssd-advertise": "^1.1.3", "expo-server": "^55.0.6", "fetch-nodeshim": "^0.4.6", "getenv": "^2.0.0", "glob": "^13.0.0", "lan-network": "^0.2.0", "multitars": "^0.2.3", "node-forge": "^1.3.3", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^4.0.3", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "resolve-from": "^5.0.0", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "terminal-link": "^2.1.1", "toqr": "^0.1.1", "wrap-ansi": "^7.0.0", "ws": "^8.12.1", "zod": "^3.25.76" }, "peerDependencies": { "expo": "*", "expo-router": "*", "react-native": "*" }, "optionalPeers": ["expo-router", "react-native"], "bin": { "expo-internal": "build/bin/cli" } }, "sha512-glXPSjjLCIz+KX/ezqLTGIF9eTE1lexiCxunvB3loRZNnGeBDGW3eF++cuPKudW26jeC6bqZkcqBG7Lp0Sp9qg=="], "@expo/code-signing-certificates": ["@expo/code-signing-certificates@0.0.6", "", { "dependencies": { "node-forge": "^1.3.3" } }, "sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w=="], - "@expo/config": ["@expo/config@12.0.13", "", { "dependencies": { "@babel/code-frame": "~7.10.4", "@expo/config-plugins": "~54.0.4", "@expo/config-types": "^54.0.10", "@expo/json-file": "^10.0.8", "deepmerge": "^4.3.1", "getenv": "^2.0.0", "glob": "^13.0.0", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0", "resolve-workspace-root": "^2.0.0", "semver": "^7.6.0", "slugify": "^1.3.4", "sucrase": "~3.35.1" } }, "sha512-Cu52arBa4vSaupIWsF0h7F/Cg//N374nYb7HAxV0I4KceKA7x2UXpYaHOL7EEYYvp7tZdThBjvGpVmr8ScIvaQ=="], + "@expo/config": ["@expo/config@55.0.8", "", { "dependencies": { "@expo/config-plugins": "~55.0.6", "@expo/config-types": "^55.0.5", "@expo/json-file": "^10.0.12", "@expo/require-utils": "^55.0.2", "deepmerge": "^4.3.1", "getenv": "^2.0.0", "glob": "^13.0.0", "resolve-from": "^5.0.0", "resolve-workspace-root": "^2.0.0", "semver": "^7.6.0", "slugify": "^1.3.4" } }, "sha512-D7RYYHfErCgEllGxNwdYdkgzLna7zkzUECBV3snbUpf7RvIpB5l1LpCgzuVoc5KVew5h7N1Tn4LnT/tBSUZsQg=="], - "@expo/config-plugins": ["@expo/config-plugins@54.0.4", "", { "dependencies": { "@expo/config-types": "^54.0.10", "@expo/json-file": "~10.0.8", "@expo/plist": "^0.4.8", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", "getenv": "^2.0.0", "glob": "^13.0.0", "resolve-from": "^5.0.0", "semver": "^7.5.4", "slash": "^3.0.0", "slugify": "^1.6.6", "xcode": "^3.0.1", "xml2js": "0.6.0" } }, "sha512-g2yXGICdoOw5i3LkQSDxl2Q5AlQCrG7oniu0pCPPO+UxGb7He4AFqSvPSy8HpRUj55io17hT62FTjYRD+d6j3Q=="], + "@expo/config-plugins": ["@expo/config-plugins@55.0.6", "", { "dependencies": { "@expo/config-types": "^55.0.5", "@expo/json-file": "~10.0.12", "@expo/plist": "^0.5.2", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", "getenv": "^2.0.0", "glob": "^13.0.0", "resolve-from": "^5.0.0", "semver": "^7.5.4", "slugify": "^1.6.6", "xcode": "^3.0.1", "xml2js": "0.6.0" } }, "sha512-cIox6FjZlFaaX40rbQ3DvP9e87S5X85H9uw+BAxJE5timkMhuByy3GAlOsj1h96EyzSiol7Q6YIGgY1Jiz4M+A=="], - "@expo/config-types": ["@expo/config-types@54.0.10", "", {}, "sha512-/J16SC2an1LdtCZ67xhSkGXpALYUVUNyZws7v+PVsFZxClYehDSoKLqyRaGkpHlYrCc08bS0RF5E0JV6g50psA=="], + "@expo/config-types": ["@expo/config-types@55.0.5", "", {}, "sha512-sCmSUZG4mZ/ySXvfyyBdhjivz8Q539X1NondwDdYG7s3SBsk+wsgPJzYsqgAG/P9+l0xWjUD2F+kQ1cAJ6NNLg=="], "@expo/devcert": ["@expo/devcert@1.2.1", "", { "dependencies": { "@expo/sudo-prompt": "^9.3.1", "debug": "^3.1.0" } }, "sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA=="], - "@expo/devtools": ["@expo/devtools@0.1.8", "", { "dependencies": { "chalk": "^4.1.2" }, "peerDependencies": { "react": "*", "react-native": "*" }, "optionalPeers": ["react", "react-native"] }, "sha512-SVLxbuanDjJPgc0sy3EfXUMLb/tXzp6XIHkhtPVmTWJAp+FOr6+5SeiCfJrCzZFet0Ifyke2vX3sFcKwEvCXwQ=="], + "@expo/devtools": ["@expo/devtools@55.0.2", "", { "dependencies": { "chalk": "^4.1.2" }, "peerDependencies": { "react": "*", "react-native": "*" }, "optionalPeers": ["react", "react-native"] }, "sha512-4VsFn9MUriocyuhyA+ycJP3TJhUsOFHDc270l9h3LhNpXMf6wvIdGcA0QzXkZtORXmlDybWXRP2KT1k36HcQkA=="], - "@expo/env": ["@expo/env@2.0.11", "", { "dependencies": { "chalk": "^4.0.0", "debug": "^4.3.4", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "getenv": "^2.0.0" } }, "sha512-xV+ps6YCW7XIPVUwFVCRN2nox09dnRwy8uIjwHWTODu0zFw4kp4omnVkl0OOjuu2XOe7tdgAHxikrkJt9xB/7Q=="], + "@expo/dom-webview": ["@expo/dom-webview@55.0.3", "", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-bY4/rfcZ0f43DvOtMn8/kmPlmo01tex5hRoc5hKbwBwQjqWQuQt0ACwu7akR9IHI4j0WNG48eL6cZB6dZUFrzg=="], - "@expo/fingerprint": ["@expo/fingerprint@0.15.4", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "arg": "^5.0.2", "chalk": "^4.1.2", "debug": "^4.3.4", "getenv": "^2.0.0", "glob": "^13.0.0", "ignore": "^5.3.1", "minimatch": "^9.0.0", "p-limit": "^3.1.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "bin": { "fingerprint": "bin/cli.js" } }, "sha512-eYlxcrGdR2/j2M6pEDXo9zU9KXXF1vhP+V+Tl+lyY+bU8lnzrN6c637mz6Ye3em2ANy8hhUR03Raf8VsT9Ogng=="], + "@expo/env": ["@expo/env@2.1.1", "", { "dependencies": { "chalk": "^4.0.0", "debug": "^4.3.4", "getenv": "^2.0.0" } }, "sha512-rVvHC4I6xlPcg+mAO09ydUi2Wjv1ZytpLmHOSzvXzBAz9mMrJggqCe4s4dubjJvi/Ino/xQCLhbaLCnTtLpikg=="], + + "@expo/fingerprint": ["@expo/fingerprint@0.16.5", "", { "dependencies": { "@expo/env": "^2.0.11", "@expo/spawn-async": "^1.7.2", "arg": "^5.0.2", "chalk": "^4.1.2", "debug": "^4.3.4", "getenv": "^2.0.0", "glob": "^13.0.0", "ignore": "^5.3.1", "minimatch": "^10.2.2", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "bin": { "fingerprint": "bin/cli.js" } }, "sha512-mLrcymtgkW9IJ/G1e8MH1Xt2VIb1MOS86ePY0ePcnV3nVyJqm7gfa/AXD1Hk+eZXvf8XhioYz6QZaamBdEzR3A=="], "@expo/image-utils": ["@expo/image-utils@0.8.12", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", "getenv": "^2.0.0", "jimp-compact": "0.16.1", "parse-png": "^2.1.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" } }, "sha512-3KguH7kyKqq7pNwLb9j6BBdD/bjmNwXZG/HPWT6GWIXbwrvAJt2JNyYTP5agWJ8jbbuys1yuCzmkX+TU6rmI7A=="], "@expo/json-file": ["@expo/json-file@10.0.12", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "json5": "^2.2.3" } }, "sha512-inbDycp1rMAelAofg7h/mMzIe+Owx6F7pur3XdQ3EPTy00tme+4P6FWgHKUcjN8dBSrnbRNpSyh5/shzHyVCyQ=="], + "@expo/local-build-cache-provider": ["@expo/local-build-cache-provider@55.0.6", "", { "dependencies": { "@expo/config": "~55.0.8", "chalk": "^4.1.2" } }, "sha512-4kfdv48sKzokijMqi07fINYA9/XprshmPgSLf8i69XgzIv2YdRyBbb70SzrufB7PDneFoltz8N83icW8gOOj1g=="], + + "@expo/log-box": ["@expo/log-box@55.0.7", "", { "dependencies": { "@expo/dom-webview": "^55.0.3", "anser": "^1.4.9", "stacktrace-parser": "^0.1.10" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-m7V1k2vlMp4NOj3fopjOg4zl/ANXyTRF3HMTMep2GZAKsPiDzgOQ41nm8CaU50/HlDIGXlCObss07gOn20UpHQ=="], + "@expo/metro": ["@expo/metro@54.2.0", "", { "dependencies": { "metro": "0.83.3", "metro-babel-transformer": "0.83.3", "metro-cache": "0.83.3", "metro-cache-key": "0.83.3", "metro-config": "0.83.3", "metro-core": "0.83.3", "metro-file-map": "0.83.3", "metro-minify-terser": "0.83.3", "metro-resolver": "0.83.3", "metro-runtime": "0.83.3", "metro-source-map": "0.83.3", "metro-symbolicate": "0.83.3", "metro-transform-plugins": "0.83.3", "metro-transform-worker": "0.83.3" } }, "sha512-h68TNZPGsk6swMmLm9nRSnE2UXm48rWwgcbtAHVMikXvbxdS41NDHHeqg1rcQ9AbznDRp6SQVC2MVpDnsRKU1w=="], - "@expo/metro-config": ["@expo/metro-config@54.0.14", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@expo/config": "~12.0.13", "@expo/env": "~2.0.8", "@expo/json-file": "~10.0.8", "@expo/metro": "~54.2.0", "@expo/spawn-async": "^1.7.2", "browserslist": "^4.25.0", "chalk": "^4.1.0", "debug": "^4.3.2", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "getenv": "^2.0.0", "glob": "^13.0.0", "hermes-parser": "^0.29.1", "jsc-safe-url": "^0.2.4", "lightningcss": "^1.30.1", "minimatch": "^9.0.0", "postcss": "~8.4.32", "resolve-from": "^5.0.0" }, "peerDependencies": { "expo": "*" }, "optionalPeers": ["expo"] }, "sha512-hxpLyDfOR4L23tJ9W1IbJJsG7k4lv2sotohBm/kTYyiG+pe1SYCAWsRmgk+H42o/wWf/HQjE5k45S5TomGLxNA=="], + "@expo/metro-config": ["@expo/metro-config@55.0.9", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@expo/config": "~55.0.8", "@expo/env": "~2.1.1", "@expo/json-file": "~10.0.12", "@expo/metro": "~54.2.0", "@expo/spawn-async": "^1.7.2", "browserslist": "^4.25.0", "chalk": "^4.1.0", "debug": "^4.3.2", "getenv": "^2.0.0", "glob": "^13.0.0", "hermes-parser": "^0.32.0", "jsc-safe-url": "^0.2.4", "lightningcss": "^1.30.1", "picomatch": "^4.0.3", "postcss": "~8.4.32", "resolve-from": "^5.0.0" }, "peerDependencies": { "expo": "*" }, "optionalPeers": ["expo"] }, "sha512-ZJFEfat/+dLUhFyFFWrzMjAqAwwUaJ3RD42QNqR7jh+RVYkAf6XYLynb5qrKJTHI1EcOx4KoO1717yXYYRFDBA=="], - "@expo/metro-runtime": ["@expo/metro-runtime@6.1.2", "", { "dependencies": { "anser": "^1.4.9", "pretty-format": "^29.7.0", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-dom": "*", "react-native": "*" }, "optionalPeers": ["react-dom"] }, "sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g=="], + "@expo/metro-runtime": ["@expo/metro-runtime@55.0.6", "", { "dependencies": { "@expo/log-box": "55.0.7", "anser": "^1.4.9", "pretty-format": "^29.7.0", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-dom": "*", "react-native": "*" }, "optionalPeers": ["react-dom"] }, "sha512-l8VvgKN9md+URjeQDB+DnHVmvpcWI6zFLH6yv7GTv4sfRDKyaZ5zDXYjTP1phYdgW6ea2NrRtCGNIxylWhsgtg=="], "@expo/osascript": ["@expo/osascript@2.4.2", "", { "dependencies": { "@expo/spawn-async": "^1.7.2" } }, "sha512-/XP7PSYF2hzOZzqfjgkoWtllyeTN8dW3aM4P6YgKcmmPikKL5FdoyQhti4eh6RK5a5VrUXJTOlTNIpIHsfB5Iw=="], "@expo/package-manager": ["@expo/package-manager@1.10.3", "", { "dependencies": { "@expo/json-file": "^10.0.12", "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "resolve-workspace-root": "^2.0.0" } }, "sha512-ZuXiK/9fCrIuLjPSe1VYmfp0Sa85kCMwd8QQpgyi5ufppYKRtLBg14QOgUqj8ZMbJTxE0xqzd0XR7kOs3vAK9A=="], - "@expo/plist": ["@expo/plist@0.4.8", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.2.3", "xmlbuilder": "^15.1.1" } }, "sha512-pfNtErGGzzRwHP+5+RqswzPDKkZrx+Cli0mzjQaus1ZWFsog5ibL+nVT3NcporW51o8ggnt7x813vtRbPiyOrQ=="], + "@expo/plist": ["@expo/plist@0.5.2", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, "sha512-o4xdVdBpe4aTl3sPMZ2u3fJH4iG1I768EIRk1xRZP+GaFI93MaR3JvoFibYqxeTmLQ1p1kNEVqylfUjezxx45g=="], + + "@expo/prebuild-config": ["@expo/prebuild-config@55.0.8", "", { "dependencies": { "@expo/config": "~55.0.8", "@expo/config-plugins": "~55.0.6", "@expo/config-types": "^55.0.5", "@expo/image-utils": "^0.8.12", "@expo/json-file": "^10.0.12", "@react-native/normalize-colors": "0.83.2", "debug": "^4.3.1", "resolve-from": "^5.0.0", "semver": "^7.6.0", "xml2js": "0.6.0" }, "peerDependencies": { "expo": "*" } }, "sha512-VJNJiOmmZgyDnR7JMmc3B8Z0ZepZ17I8Wtw+wAH/2+UCUsFg588XU+bwgYcFGw+is28kwGjY46z43kfufpxOnA=="], + + "@expo/require-utils": ["@expo/require-utils@55.0.2", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "@babel/core": "^7.25.2", "@babel/plugin-transform-modules-commonjs": "^7.24.8" }, "peerDependencies": { "typescript": "^5.0.0 || ^5.0.0-0" }, "optionalPeers": ["typescript"] }, "sha512-dV5oCShQ1umKBKagMMT4B/N+SREsQe3lU4Zgmko5AO0rxKV0tynZT6xXs+e2JxuqT4Rz997atg7pki0BnZb4uw=="], - "@expo/prebuild-config": ["@expo/prebuild-config@54.0.8", "", { "dependencies": { "@expo/config": "~12.0.13", "@expo/config-plugins": "~54.0.4", "@expo/config-types": "^54.0.10", "@expo/image-utils": "^0.8.8", "@expo/json-file": "^10.0.8", "@react-native/normalize-colors": "0.81.5", "debug": "^4.3.1", "resolve-from": "^5.0.0", "semver": "^7.6.0", "xml2js": "0.6.0" }, "peerDependencies": { "expo": "*" } }, "sha512-EA7N4dloty2t5Rde+HP0IEE+nkAQiu4A/+QGZGT9mFnZ5KKjPPkqSyYcRvP5bhQE10D+tvz6X0ngZpulbMdbsg=="], + "@expo/router-server": ["@expo/router-server@55.0.9", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "@expo/metro-runtime": "^55.0.6", "expo": "*", "expo-constants": "^55.0.7", "expo-font": "^55.0.4", "expo-router": "*", "expo-server": "^55.0.6", "react": "*", "react-dom": "*", "react-server-dom-webpack": "~19.0.1 || ~19.1.2 || ~19.2.1" }, "optionalPeers": ["@expo/metro-runtime", "expo-router", "react-dom", "react-server-dom-webpack"] }, "sha512-LcCFi+P1qfZOsw0DO4JwNKRxtWt4u2bjTYj0PUe4WVf9NVG/NfUetAXYRbBS6P+gupfM6SC+/bdzdqCWQh7j8g=="], - "@expo/schema-utils": ["@expo/schema-utils@0.1.8", "", {}, "sha512-9I6ZqvnAvKKDiO+ZF8BpQQFYWXOJvTAL5L/227RUbWG1OVZDInFifzCBiqAZ3b67NRfeAgpgvbA7rejsqhY62A=="], + "@expo/schema-utils": ["@expo/schema-utils@55.0.2", "", {}, "sha512-QZ5WKbJOWkCrMq0/kfhV9ry8te/OaS34YgLVpG8u9y2gix96TlpRTbxM/YATjNcUR2s4fiQmPCOxkGtog4i37g=="], "@expo/sdk-runtime-versions": ["@expo/sdk-runtime-versions@1.0.0", "", {}, "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ=="], @@ -1126,6 +1240,8 @@ "@op-engineering/op-sqlite": ["@op-engineering/op-sqlite@15.2.5", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-Vmgwt0AzY7qoge3X6EONhsb5NlM2yoQUF0/lseUWBelfc9BUili7/DFsFsS73cvtYWlwPpqeTGOoce5mzHozBw=="], + "@oslojs/encoding": ["@oslojs/encoding@1.1.0", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="], + "@oxc-project/types": ["@oxc-project/types@0.113.0", "", {}, "sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA=="], "@parcel/watcher": ["@parcel/watcher@2.5.6", "", { "dependencies": { "detect-libc": "^2.0.3", "is-glob": "^4.0.3", "node-addon-api": "^7.0.0", "picomatch": "^4.0.3" }, "optionalDependencies": { "@parcel/watcher-android-arm64": "2.5.6", "@parcel/watcher-darwin-arm64": "2.5.6", "@parcel/watcher-darwin-x64": "2.5.6", "@parcel/watcher-freebsd-x64": "2.5.6", "@parcel/watcher-linux-arm-glibc": "2.5.6", "@parcel/watcher-linux-arm-musl": "2.5.6", "@parcel/watcher-linux-arm64-glibc": "2.5.6", "@parcel/watcher-linux-arm64-musl": "2.5.6", "@parcel/watcher-linux-x64-glibc": "2.5.6", "@parcel/watcher-linux-x64-musl": "2.5.6", "@parcel/watcher-win32-arm64": "2.5.6", "@parcel/watcher-win32-ia32": "2.5.6", "@parcel/watcher-win32-x64": "2.5.6" } }, "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ=="], @@ -1190,7 +1306,7 @@ "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA=="], - "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.0", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w=="], + "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.4", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA=="], "@radix-ui/react-tabs": ["@radix-ui/react-tabs@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A=="], @@ -1204,27 +1320,29 @@ "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], - "@react-native/assets-registry": ["@react-native/assets-registry@0.81.6", "", {}, "sha512-nNlJ7mdXFoq/7LMG3eJIncqjgXkpDJak3xO8Lb4yQmFI3XVI1nupPRjlYRY0ham1gLE0F/AWvKFChsKUfF5lOQ=="], + "@react-native/assets-registry": ["@react-native/assets-registry@0.84.1", "", {}, "sha512-lAJ6PDZv95FdT9s9uhc9ivhikW1Zwh4j9XdXM7J2l4oUA3t37qfoBmTSDLuPyE3Bi+Xtwa11hJm0BUTT2sc/gg=="], + + "@react-native/babel-plugin-codegen": ["@react-native/babel-plugin-codegen@0.83.2", "", { "dependencies": { "@babel/traverse": "^7.25.3", "@react-native/codegen": "0.83.2" } }, "sha512-XbcN/BEa64pVlb0Hb/E/Ph2SepjVN/FcNKrJcQvtaKZA6mBSO8pW8Eircdlr61/KBH94LihHbQoQDzkQFpeaTg=="], - "@react-native/babel-plugin-codegen": ["@react-native/babel-plugin-codegen@0.81.5", "", { "dependencies": { "@babel/traverse": "^7.25.3", "@react-native/codegen": "0.81.5" } }, "sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ=="], + "@react-native/babel-preset": ["@react-native/babel-preset@0.83.2", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.24.7", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-computed-properties": "^7.24.7", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-numeric-separator": "^7.24.7", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.25.2", "@babel/plugin-transform-react-jsx-self": "^7.24.7", "@babel/plugin-transform-react-jsx-source": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-shorthand-properties": "^7.24.7", "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/template": "^7.25.0", "@react-native/babel-plugin-codegen": "0.83.2", "babel-plugin-syntax-hermes-parser": "0.32.0", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" } }, "sha512-X/RAXDfe6W+om/Fw1i6htTxQXFhBJ2jgNOWx3WpI3KbjeIWbq7ib6vrpTeIAW2NUMg+K3mML1NzgD4dpZeqdjA=="], - "@react-native/babel-preset": ["@react-native/babel-preset@0.81.5", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-arrow-functions": "^7.24.7", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-computed-properties": "^7.24.7", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-numeric-separator": "^7.24.7", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.25.2", "@babel/plugin-transform-react-jsx-self": "^7.24.7", "@babel/plugin-transform-react-jsx-source": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-shorthand-properties": "^7.24.7", "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/template": "^7.25.0", "@react-native/babel-plugin-codegen": "0.81.5", "babel-plugin-syntax-hermes-parser": "0.29.1", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" } }, "sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA=="], + "@react-native/codegen": ["@react-native/codegen@0.84.1", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/parser": "^7.25.3", "hermes-parser": "0.32.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "tinyglobby": "^0.2.15", "yargs": "^17.6.2" } }, "sha512-n1RIU0QAavgCg1uC5+s53arL7/mpM+16IBhJ3nCFSd/iK5tUmCwxQDcIDC703fuXfpub/ZygeSjVN8bcOWn0gA=="], - "@react-native/codegen": ["@react-native/codegen@0.81.6", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/parser": "^7.25.3", "glob": "^7.1.1", "hermes-parser": "0.29.1", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "yargs": "^17.6.2" } }, "sha512-9KoYRep/KDnELLLmIYTtIIEOClVUJ88pxWObb/0sjkacA7uL4SgfbAg7rWLURAQJWI85L1YS67IhdEqNNk1I7w=="], + "@react-native/community-cli-plugin": ["@react-native/community-cli-plugin@0.84.1", "", { "dependencies": { "@react-native/dev-middleware": "0.84.1", "debug": "^4.4.0", "invariant": "^2.2.4", "metro": "^0.83.3", "metro-config": "^0.83.3", "metro-core": "^0.83.3", "semver": "^7.1.3" }, "peerDependencies": { "@react-native-community/cli": "*", "@react-native/metro-config": "*" }, "optionalPeers": ["@react-native-community/cli", "@react-native/metro-config"] }, "sha512-f6a+mJEJ6Joxlt/050TqYUr7uRRbeKnz8lnpL7JajhpsgZLEbkJRjH8HY5QiLcRdUwWFtizml4V+vcO3P4RxoQ=="], - "@react-native/community-cli-plugin": ["@react-native/community-cli-plugin@0.81.6", "", { "dependencies": { "@react-native/dev-middleware": "0.81.6", "debug": "^4.4.0", "invariant": "^2.2.4", "metro": "^0.83.1", "metro-config": "^0.83.1", "metro-core": "^0.83.1", "semver": "^7.1.3" }, "peerDependencies": { "@react-native-community/cli": "*", "@react-native/metro-config": "*" }, "optionalPeers": ["@react-native-community/cli", "@react-native/metro-config"] }, "sha512-oTwIheF4TU7NkfoHxwSQAKtIDx4SQEs2xufgM3gguY7WkpnhGa/BYA/A+hdHXfqEKJFKlHcXQu4BrV/7Sv1fhw=="], + "@react-native/debugger-frontend": ["@react-native/debugger-frontend@0.83.2", "", {}, "sha512-t4fYfa7xopbUF5S4+ihNEwgaq4wLZLKLY0Ms8z72lkMteVd3bOX2Foxa8E2wTfRvdhPOkSpOsTeNDmD8ON4DoQ=="], - "@react-native/debugger-frontend": ["@react-native/debugger-frontend@0.81.5", "", {}, "sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w=="], + "@react-native/debugger-shell": ["@react-native/debugger-shell@0.83.2", "", { "dependencies": { "cross-spawn": "^7.0.6", "fb-dotslash": "0.5.8" } }, "sha512-z9go6NJMsLSDJT5MW6VGugRsZHjYvUTwxtsVc3uLt4U9W6T3J6FWI2wHpXIzd2dUkXRfAiRQ3Zi8ZQQ8fRFg9A=="], - "@react-native/dev-middleware": ["@react-native/dev-middleware@0.81.5", "", { "dependencies": { "@isaacs/ttlcache": "^1.4.1", "@react-native/debugger-frontend": "0.81.5", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^4.4.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "open": "^7.0.3", "serve-static": "^1.16.2", "ws": "^6.2.3" } }, "sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA=="], + "@react-native/dev-middleware": ["@react-native/dev-middleware@0.83.2", "", { "dependencies": { "@isaacs/ttlcache": "^1.4.1", "@react-native/debugger-frontend": "0.83.2", "@react-native/debugger-shell": "0.83.2", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^4.4.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "open": "^7.0.3", "serve-static": "^1.16.2", "ws": "^7.5.10" } }, "sha512-Zi4EVaAm28+icD19NN07Gh8Pqg/84QQu+jn4patfWKNkcToRFP5vPEbbp0eLOGWS+BVB1d1Fn5lvMrJsBbFcOg=="], - "@react-native/gradle-plugin": ["@react-native/gradle-plugin@0.81.6", "", {}, "sha512-atUItC5MZ6yaNaI0sbsoDwUdF+KMNZcMKBIrNhXlUyIj3x1AQ6Cf8CHHv6Qokn8ZFw+uU6GWmQSiOWYUbmi8Ag=="], + "@react-native/gradle-plugin": ["@react-native/gradle-plugin@0.84.1", "", {}, "sha512-7uVlPBE3uluRNRX4MW7PUJIO1LDBTpAqStKHU7LHH+GRrdZbHsWtOEAX8PiY4GFfBEvG8hEjiuTOqAxMjV+hDg=="], - "@react-native/js-polyfills": ["@react-native/js-polyfills@0.81.6", "", {}, "sha512-P5MWH/9vM24XkJ1TasCq42DMLoCUjZVSppTn6VWv/cI65NDjuYEy7bUSaXbYxGTnqiKyPG5Y+ADymqlIkdSAcw=="], + "@react-native/js-polyfills": ["@react-native/js-polyfills@0.84.1", "", {}, "sha512-UsTe2AbUugsfyI7XIHMQq4E7xeC8a6GrYwuK+NohMMMJMxmyM3JkzIk+GB9e2il6ScEQNMJNaj+q+i5za8itxQ=="], - "@react-native/normalize-colors": ["@react-native/normalize-colors@0.81.6", "", {}, "sha512-/OCgUysHIFhfmZxbJAydVc58l2SGIZbWpbQXBrYEYch8YElBbDFQ8IUtyogB7YJJQ8ewHZFj93rQGaECgkvvcw=="], + "@react-native/normalize-colors": ["@react-native/normalize-colors@0.84.1", "", {}, "sha512-/UPaQ4jl95soXnLDEJ6Cs6lnRXhwbxtT4KbZz+AFDees7prMV2NOLcHfCnzmTabf5Y3oxENMVBL666n4GMLcTA=="], - "@react-native/virtualized-lists": ["@react-native/virtualized-lists@0.81.6", "", { "dependencies": { "invariant": "^2.2.4", "nullthrows": "^1.1.1" }, "peerDependencies": { "@types/react": "^19.1.4", "react": "*", "react-native": "*" }, "optionalPeers": ["@types/react"] }, "sha512-1RrZl3a7iCoAS2SGaRLjJPIn8bg/GLNXzqkIB2lufXcJsftu1umNLRIi17ZoDRejAWSd2pUfUtQBASo4R2mw4Q=="], + "@react-native/virtualized-lists": ["@react-native/virtualized-lists@0.84.1", "", { "dependencies": { "invariant": "^2.2.4", "nullthrows": "^1.1.1" }, "peerDependencies": { "@types/react": "^19.2.0", "react": "*", "react-native": "*" }, "optionalPeers": ["@types/react"] }, "sha512-sJoDunzhci8ZsqxlUiKoLut4xQeQcmbIgvDHGQKeBz6uEq9HgU+hCWOijMRr6sLP0slQVfBAza34Rq7IbXZZOA=="], "@react-navigation/bottom-tabs": ["@react-navigation/bottom-tabs@7.15.2", "", { "dependencies": { "@react-navigation/elements": "^2.9.8", "color": "^4.2.3", "sf-symbols-typescript": "^2.1.0" }, "peerDependencies": { "@react-navigation/native": "^7.1.31", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", "react-native-screens": ">= 4.0.0" } }, "sha512-xaSumZWE97P3j33guO7bh5dJ5IqR1bWiT+i17SUjsXxoI9xnNXWDm4dkTjzGuuT0BHcUVkzei0tjjCQmNg9cIQ=="], @@ -1274,7 +1392,7 @@ "@rollup/plugin-terser": ["@rollup/plugin-terser@0.4.4", "", { "dependencies": { "serialize-javascript": "^6.0.1", "smob": "^1.0.0", "terser": "^5.17.4" }, "peerDependencies": { "rollup": "^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A=="], - "@rollup/pluginutils": ["@rollup/pluginutils@3.1.0", "", { "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0" } }, "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg=="], + "@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.59.0", "", { "os": "android", "cpu": "arm" }, "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg=="], @@ -1330,6 +1448,10 @@ "@scure/bip39": ["@scure/bip39@2.0.1", "", { "dependencies": { "@noble/hashes": "2.0.1", "@scure/base": "2.0.0" } }, "sha512-PsxdFj/d2AcJcZDX1FXN3dDgitDDTmwf78rKZq1a6c1P1Nan1X/Sxc7667zU3U+AN60g7SxxP0YCVw2H/hBycg=="], + "@shikijs/core": ["@shikijs/core@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA=="], + + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA=="], + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g=="], "@shikijs/langs": ["@shikijs/langs@3.23.0", "", { "dependencies": { "@shikijs/types": "3.23.0" } }, "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg=="], @@ -1402,6 +1524,42 @@ "@tailwindcss/vite": ["@tailwindcss/vite@4.2.1", "", { "dependencies": { "@tailwindcss/node": "4.2.1", "@tailwindcss/oxide": "4.2.1", "tailwindcss": "4.2.1" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7" } }, "sha512-TBf2sJjYeb28jD2U/OhwdW0bbOsxkWPwQ7SrqGf9sVcoYwZj7rkXljroBO9wKBut9XnmQLXanuDUeqQK0lGg/w=="], + "@tanstack/history": ["@tanstack/history@1.161.4", "", {}, "sha512-Kp/WSt411ZWYvgXy6uiv5RmhHrz9cAml05AQPrtdAp7eUqvIDbMGPnML25OKbzR3RJ1q4wgENxDTvlGPa9+Mww=="], + + "@tanstack/react-router": ["@tanstack/react-router@1.163.3", "", { "dependencies": { "@tanstack/history": "1.161.4", "@tanstack/react-store": "^0.9.1", "@tanstack/router-core": "1.163.3", "isbot": "^5.1.22", "tiny-invariant": "^1.3.3", "tiny-warning": "^1.0.3" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-hheBbFVb+PbxtrWp8iy6+TTRTbhx3Pn6hKo8Tv/sWlG89ZMcD1xpQWzx8ukHN9K8YWbh5rdzt4kv6u8X4kB28Q=="], + + "@tanstack/react-store": ["@tanstack/react-store@0.9.1", "", { "dependencies": { "@tanstack/store": "0.9.1", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-YzJLnRvy5lIEFTLWBAZmcOjK3+2AepnBv/sr6NZmiqJvq7zTQggyK99Gw8fqYdMdHPQWXjz0epFKJXC+9V2xDA=="], + + "@tanstack/router-core": ["@tanstack/router-core@1.163.3", "", { "dependencies": { "@tanstack/history": "1.161.4", "@tanstack/store": "^0.9.1", "cookie-es": "^2.0.0", "seroval": "^1.4.2", "seroval-plugins": "^1.4.2", "tiny-invariant": "^1.3.3", "tiny-warning": "^1.0.3" } }, "sha512-jPptiGq/w3nuPzcMC7RNa79aU+b6OjaDzWJnBcV2UAwL4ThJamRS4h42TdhJE+oF5yH9IEnCOGQdfnbw45LbfA=="], + + "@tanstack/store": ["@tanstack/store@0.9.1", "", {}, "sha512-+qcNkOy0N1qSGsP7omVCW0SDrXtaDcycPqBDE726yryiA5eTDFpjBReaYjghVJwNf1pcPMyzIwTGlYjCSQR0Fg=="], + + "@tauri-apps/api": ["@tauri-apps/api@2.10.1", "", {}, "sha512-hKL/jWf293UDSUN09rR69hrToyIXBb8CjGaWC7gfinvnQrBVvnLr08FeFi38gxtugAVyVcTa5/FD/Xnkb1siBw=="], + + "@tauri-apps/cli": ["@tauri-apps/cli@2.10.0", "", { "optionalDependencies": { "@tauri-apps/cli-darwin-arm64": "2.10.0", "@tauri-apps/cli-darwin-x64": "2.10.0", "@tauri-apps/cli-linux-arm-gnueabihf": "2.10.0", "@tauri-apps/cli-linux-arm64-gnu": "2.10.0", "@tauri-apps/cli-linux-arm64-musl": "2.10.0", "@tauri-apps/cli-linux-riscv64-gnu": "2.10.0", "@tauri-apps/cli-linux-x64-gnu": "2.10.0", "@tauri-apps/cli-linux-x64-musl": "2.10.0", "@tauri-apps/cli-win32-arm64-msvc": "2.10.0", "@tauri-apps/cli-win32-ia32-msvc": "2.10.0", "@tauri-apps/cli-win32-x64-msvc": "2.10.0" }, "bin": { "tauri": "tauri.js" } }, "sha512-ZwT0T+7bw4+DPCSWzmviwq5XbXlM0cNoleDKOYPFYqcZqeKY31KlpoMW/MOON/tOFBPgi31a2v3w9gliqwL2+Q=="], + + "@tauri-apps/cli-darwin-arm64": ["@tauri-apps/cli-darwin-arm64@2.10.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-avqHD4HRjrMamE/7R/kzJPcAJnZs0IIS+1nkDP5b+TNBn3py7N2aIo9LIpy+VQq0AkN8G5dDpZtOOBkmWt/zjA=="], + + "@tauri-apps/cli-darwin-x64": ["@tauri-apps/cli-darwin-x64@2.10.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-keDmlvJRStzVFjZTd0xYkBONLtgBC9eMTpmXnBXzsHuawV2q9PvDo2x6D5mhuoMVrJ9QWjgaPKBBCFks4dK71Q=="], + + "@tauri-apps/cli-linux-arm-gnueabihf": ["@tauri-apps/cli-linux-arm-gnueabihf@2.10.0", "", { "os": "linux", "cpu": "arm" }, "sha512-e5u0VfLZsMAC9iHaOEANumgl6lfnJx0Dtjkd8IJpysZ8jp0tJ6wrIkto2OzQgzcYyRCKgX72aKE0PFgZputA8g=="], + + "@tauri-apps/cli-linux-arm64-gnu": ["@tauri-apps/cli-linux-arm64-gnu@2.10.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-YrYYk2dfmBs5m+OIMCrb+JH/oo+4FtlpcrTCgiFYc7vcs6m3QDd1TTyWu0u01ewsCtK2kOdluhr/zKku+KP7HA=="], + + "@tauri-apps/cli-linux-arm64-musl": ["@tauri-apps/cli-linux-arm64-musl@2.10.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-GUoPdVJmrJRIXFfW3Rkt+eGK9ygOdyISACZfC/bCSfOnGt8kNdQIQr5WRH9QUaTVFIwxMlQyV3m+yXYP+xhSVA=="], + + "@tauri-apps/cli-linux-riscv64-gnu": ["@tauri-apps/cli-linux-riscv64-gnu@2.10.0", "", { "os": "linux", "cpu": "none" }, "sha512-JO7s3TlSxshwsoKNCDkyvsx5gw2QAs/Y2GbR5UE2d5kkU138ATKoPOtxn8G1fFT1aDW4LH0rYAAfBpGkDyJJnw=="], + + "@tauri-apps/cli-linux-x64-gnu": ["@tauri-apps/cli-linux-x64-gnu@2.10.0", "", { "os": "linux", "cpu": "x64" }, "sha512-Uvh4SUUp4A6DVRSMWjelww0GnZI3PlVy7VS+DRF5napKuIehVjGl9XD0uKoCoxwAQBLctvipyEK+pDXpJeoHng=="], + + "@tauri-apps/cli-linux-x64-musl": ["@tauri-apps/cli-linux-x64-musl@2.10.0", "", { "os": "linux", "cpu": "x64" }, "sha512-AP0KRK6bJuTpQ8kMNWvhIpKUkQJfcPFeba7QshOQZjJ8wOS6emwTN4K5g/d3AbCMo0RRdnZWwu67MlmtJyxC1Q=="], + + "@tauri-apps/cli-win32-arm64-msvc": ["@tauri-apps/cli-win32-arm64-msvc@2.10.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-97DXVU3dJystrq7W41IX+82JEorLNY+3+ECYxvXWqkq7DBN6FsA08x/EFGE8N/b0LTOui9X2dvpGGoeZKKV08g=="], + + "@tauri-apps/cli-win32-ia32-msvc": ["@tauri-apps/cli-win32-ia32-msvc@2.10.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-EHyQ1iwrWy1CwMalEm9z2a6L5isQ121pe7FcA2xe4VWMJp+GHSDDGvbTv/OPdkt2Lyr7DAZBpZHM6nvlHXEc4A=="], + + "@tauri-apps/cli-win32-x64-msvc": ["@tauri-apps/cli-win32-x64-msvc@2.10.0", "", { "os": "win32", "cpu": "x64" }, "sha512-NTpyQxkpzGmU6ceWBTY2xRIEaS0ZLbVx1HE1zTA3TY/pV3+cPoPPOs+7YScr4IMzXMtOw7tLw5LEXo5oIG3qaQ=="], + "@ts-morph/common": ["@ts-morph/common@0.22.0", "", { "dependencies": { "fast-glob": "^3.3.2", "minimatch": "^9.0.3", "mkdirp": "^3.0.1", "path-browserify": "^1.0.1" } }, "sha512-HqNBuV/oIlMKdkLshXd1zKBqNQCsuPEsgQOkfFQ/eUKjRlwndXW1AjN9LVkBEIukm00gGXSRmfkl0Wv5VXLnlw=="], "@tsconfig/svelte": ["@tsconfig/svelte@5.0.8", "", {}, "sha512-UkNnw1/oFEfecR8ypyHIQuWYdkPvHiwcQ78sh+ymIiYoF+uc5H1UBetbjyqT+vgGJ3qQN6nhucJviX6HesWtKQ=="], @@ -1450,9 +1608,13 @@ "@types/keyv": ["@types/keyv@3.1.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg=="], + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], - "@types/node": ["@types/node@24.10.15", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-BgjLoRuSr0MTI5wA6gMw9Xy0sFudAaUuvrnjgGx9wZ522fYYLA5SYJ+1Y30vTcJEG+DRCyDHx/gzQVfofYzSdg=="], + "@types/nlcst": ["@types/nlcst@2.0.3", "", { "dependencies": { "@types/unist": "*" } }, "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA=="], + + "@types/node": ["@types/node@25.3.2", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-RpV6r/ij22zRRdyBPcxDeKAzH43phWVKEjL2iksqo1Vz3CuBUrgmPpPhALKiRfU7OMCmeeO9vECBMsV0hMTG8Q=="], "@types/plist": ["@types/plist@3.0.5", "", { "dependencies": { "@types/node": "*", "xmlbuilder": ">=11.0.1" } }, "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA=="], @@ -1488,10 +1650,6 @@ "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], - "@urql/core": ["@urql/core@5.2.0", "", { "dependencies": { "@0no-co/graphql.web": "^1.0.13", "wonka": "^6.3.2" } }, "sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A=="], - - "@urql/exchange-retry": ["@urql/exchange-retry@1.3.2", "", { "dependencies": { "@urql/core": "^5.1.2", "wonka": "^6.3.2" } }, "sha512-TQMCz2pFJMfpNxmSfX1VSfTjwUIFx/mL+p1bnfM1xjjdla7Z+KnGMW/EhFbpckp3LyWAH4PgOsMwOMnIN+MBFg=="], - "@vite-pwa/assets-generator": ["@vite-pwa/assets-generator@1.0.2", "", { "dependencies": { "cac": "^6.7.14", "colorette": "^2.0.20", "consola": "^3.4.2", "sharp": "^0.33.5", "sharp-ico": "^0.1.5", "unconfig": "^7.3.1" }, "bin": { "pwa-assets-generator": "bin/pwa-assets-generator.mjs" } }, "sha512-MCbrb508JZHqe7bUibmZj/lyojdhLRnfkmyXnkrCM2zVrjTgL89U8UEfInpKTvPeTnxsw2hmyZxnhsdNR6yhwg=="], "@vitejs/plugin-basic-ssl": ["@vitejs/plugin-basic-ssl@2.1.4", "", { "peerDependencies": { "vite": "^6.0.0 || ^7.0.0" } }, "sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw=="], @@ -1608,6 +1766,8 @@ "anser": ["anser@1.4.10", "", {}, "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww=="], + "ansi-align": ["ansi-align@3.0.1", "", { "dependencies": { "string-width": "^4.1.0" } }, "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w=="], + "ansi-colors": ["ansi-colors@4.1.3", "", {}, "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="], "ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], @@ -1616,8 +1776,6 @@ "ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], - "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], "app-builder-bin": ["app-builder-bin@5.0.0-alpha.12", "", {}, "sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w=="], @@ -1634,6 +1792,8 @@ "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], + "array-iterate": ["array-iterate@2.0.1", "", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="], + "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="], "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], @@ -1648,14 +1808,14 @@ "astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="], + "astro": ["astro@5.18.0", "", { "dependencies": { "@astrojs/compiler": "^2.13.0", "@astrojs/internal-helpers": "0.7.5", "@astrojs/markdown-remark": "6.3.10", "@astrojs/telemetry": "3.3.0", "@capsizecss/unpack": "^4.0.0", "@oslojs/encoding": "^1.1.0", "@rollup/pluginutils": "^5.3.0", "acorn": "^8.15.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "boxen": "8.0.1", "ci-info": "^4.3.1", "clsx": "^2.1.1", "common-ancestor-path": "^1.0.1", "cookie": "^1.1.1", "cssesc": "^3.0.0", "debug": "^4.4.3", "deterministic-object-hash": "^2.0.2", "devalue": "^5.6.2", "diff": "^8.0.3", "dlv": "^1.1.3", "dset": "^3.1.4", "es-module-lexer": "^1.7.0", "esbuild": "^0.27.3", "estree-walker": "^3.0.3", "flattie": "^1.1.1", "fontace": "~0.4.0", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "import-meta-resolve": "^4.2.0", "js-yaml": "^4.1.1", "magic-string": "^0.30.21", "magicast": "^0.5.1", "mrmime": "^2.0.1", "neotraverse": "^0.6.18", "p-limit": "^6.2.0", "p-queue": "^8.1.1", "package-manager-detector": "^1.6.0", "piccolore": "^0.1.3", "picomatch": "^4.0.3", "prompts": "^2.4.2", "rehype": "^13.0.2", "semver": "^7.7.3", "shiki": "^3.21.0", "smol-toml": "^1.6.0", "svgo": "^4.0.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tsconfck": "^3.1.6", "ultrahtml": "^1.6.0", "unifont": "~0.7.3", "unist-util-visit": "^5.0.0", "unstorage": "^1.17.4", "vfile": "^6.0.3", "vite": "^6.4.1", "vitefu": "^1.1.1", "xxhash-wasm": "^1.1.0", "yargs-parser": "^21.1.1", "yocto-spinner": "^0.2.3", "zod": "^3.25.76", "zod-to-json-schema": "^3.25.1", "zod-to-ts": "^1.2.0" }, "optionalDependencies": { "sharp": "^0.34.0" }, "bin": { "astro": "astro.js" } }, "sha512-CHiohwJIS4L0G6/IzE1Fx3dgWqXBCXus/od0eGUfxrZJD2um2pE7ehclMmgL/fXqbU7NfE1Ze2pq34h2QaA6iQ=="], + "async": ["async@3.2.6", "", {}, "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="], "async-exit-hook": ["async-exit-hook@2.0.1", "", {}, "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw=="], "async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], - "async-limiter": ["async-limiter@1.0.1", "", {}, "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="], - "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], "at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="], @@ -1684,18 +1844,22 @@ "babel-plugin-react-native-web": ["babel-plugin-react-native-web@0.21.2", "", {}, "sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA=="], - "babel-plugin-syntax-hermes-parser": ["babel-plugin-syntax-hermes-parser@0.29.1", "", { "dependencies": { "hermes-parser": "0.29.1" } }, "sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA=="], + "babel-plugin-syntax-hermes-parser": ["babel-plugin-syntax-hermes-parser@0.32.0", "", { "dependencies": { "hermes-parser": "0.32.0" } }, "sha512-m5HthL++AbyeEA2FcdwOLfVFvWYECOBObLHNqdR8ceY4TsEdn4LdX2oTvbB2QJSSElE2AWA/b2MXZ/PF/CqLZg=="], "babel-plugin-transform-flow-enums": ["babel-plugin-transform-flow-enums@0.0.2", "", { "dependencies": { "@babel/plugin-syntax-flow": "^7.12.1" } }, "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ=="], "babel-preset-current-node-syntax": ["babel-preset-current-node-syntax@1.2.0", "", { "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg=="], - "babel-preset-expo": ["babel-preset-expo@54.0.10", "", { "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/plugin-proposal-decorators": "^7.12.9", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.27.1", "@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", "@react-native/babel-preset": "0.81.5", "babel-plugin-react-compiler": "^1.0.0", "babel-plugin-react-native-web": "~0.21.0", "babel-plugin-syntax-hermes-parser": "^0.29.1", "babel-plugin-transform-flow-enums": "^0.0.2", "debug": "^4.3.4", "resolve-from": "^5.0.0" }, "peerDependencies": { "@babel/runtime": "^7.20.0", "expo": "*", "react-refresh": ">=0.14.0 <1.0.0" }, "optionalPeers": ["@babel/runtime", "expo"] }, "sha512-wTt7POavLFypLcPW/uC5v8y+mtQKDJiyGLzYCjqr9tx0Qc3vCXcDKk1iCFIj/++Iy5CWhhTflEa7VvVPNWeCfw=="], + "babel-preset-expo": ["babel-preset-expo@55.0.10", "", { "dependencies": { "@babel/generator": "^7.20.5", "@babel/helper-module-imports": "^7.25.9", "@babel/plugin-proposal-decorators": "^7.12.9", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.27.1", "@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", "@react-native/babel-preset": "0.83.2", "babel-plugin-react-compiler": "^1.0.0", "babel-plugin-react-native-web": "~0.21.0", "babel-plugin-syntax-hermes-parser": "^0.32.0", "babel-plugin-transform-flow-enums": "^0.0.2", "debug": "^4.3.4", "resolve-from": "^5.0.0" }, "peerDependencies": { "@babel/runtime": "^7.20.0", "expo": "*", "expo-widgets": "^55.0.2", "react-refresh": ">=0.14.0 <1.0.0" }, "optionalPeers": ["@babel/runtime", "expo", "expo-widgets"] }, "sha512-aRtW7qJKohGU2V0LUJ6IeP7py3+kVUo9zcc8+v1Kix8jGGuIvqvpo9S6W1Fmn9VFP2DBwkFDLiyzkCZS85urVA=="], "babel-preset-jest": ["babel-preset-jest@29.6.3", "", { "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA=="], + "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "base-64": ["base-64@1.0.0", "", {}, "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg=="], + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], "baseline-browser-mapping": ["baseline-browser-mapping@2.10.0", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA=="], @@ -1718,6 +1882,8 @@ "boolean": ["boolean@3.2.0", "", {}, "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw=="], + "boxen": ["boxen@8.0.1", "", { "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^8.0.0", "chalk": "^5.3.0", "cli-boxes": "^3.0.0", "string-width": "^7.2.0", "type-fest": "^4.21.0", "widest-line": "^5.0.0", "wrap-ansi": "^9.0.0" } }, "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw=="], + "bplist-creator": ["bplist-creator@0.1.0", "", { "dependencies": { "stream-buffers": "2.2.x" } }, "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg=="], "bplist-parser": ["bplist-parser@0.3.1", "", { "dependencies": { "big-integer": "1.6.x" } }, "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA=="], @@ -1730,7 +1896,7 @@ "bser": ["bser@2.1.1", "", { "dependencies": { "node-int64": "^0.4.0" } }, "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="], - "buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], + "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], @@ -1758,14 +1924,22 @@ "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], - "camelcase": ["camelcase@6.3.0", "", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="], + "camelcase": ["camelcase@8.0.0", "", {}, "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA=="], "caniuse-lite": ["caniuse-lite@1.0.30001774", "", {}, "sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA=="], + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + "chai": ["chai@6.2.2", "", {}, "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg=="], "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], + + "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], + + "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + "chardet": ["chardet@2.1.1", "", {}, "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ=="], "chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], @@ -1782,6 +1956,8 @@ "ci-info": ["ci-info@3.9.0", "", {}, "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="], + "cli-boxes": ["cli-boxes@3.0.0", "", {}, "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g=="], + "cli-cursor": ["cli-cursor@2.1.0", "", { "dependencies": { "restore-cursor": "^2.0.0" } }, "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw=="], "cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="], @@ -1814,8 +1990,12 @@ "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], + "commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], + "common-ancestor-path": ["common-ancestor-path@1.0.1", "", {}, "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w=="], + "common-tags": ["common-tags@1.8.2", "", {}, "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA=="], "compare-version": ["compare-version@0.1.2", "", {}, "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A=="], @@ -1832,6 +2012,10 @@ "convert-source-map": ["convert-source-map@1.9.0", "", {}, "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="], + "cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="], + + "cookie-es": ["cookie-es@2.0.0", "", {}, "sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg=="], + "core-js-compat": ["core-js-compat@3.48.0", "", { "dependencies": { "browserslist": "^4.28.1" } }, "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q=="], "core-util-is": ["core-util-is@1.0.2", "", {}, "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="], @@ -1840,16 +2024,26 @@ "cross-dirname": ["cross-dirname@0.1.0", "", {}, "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q=="], + "cross-fetch": ["cross-fetch@3.2.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q=="], + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + "crossws": ["crossws@0.3.5", "", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA=="], + "crypto-random-string": ["crypto-random-string@2.0.0", "", {}, "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="], + "css-in-js-utils": ["css-in-js-utils@3.1.0", "", { "dependencies": { "hyphenate-style-name": "^1.0.3" } }, "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A=="], + "css-select": ["css-select@5.2.2", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw=="], "css-tree": ["css-tree@1.1.3", "", { "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" } }, "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q=="], "css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="], + "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + + "csso": ["csso@5.0.5", "", { "dependencies": { "css-tree": "~2.2.0" } }, "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="], + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], @@ -1864,6 +2058,8 @@ "decode-ico": ["decode-ico@0.4.1", "", { "dependencies": { "@canvas/image-data": "^1.0.0", "decode-bmp": "^0.2.0", "to-data-view": "^1.1.0" } }, "sha512-69NZfbKIzux1vBOd31al3XnMnH+2mqDhEgLdpygErm4d60N+UwA5Sq5WFjmEDQzumgB9fElojGwWG0vybVfFmA=="], + "decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="], + "decode-uri-component": ["decode-uri-component@0.2.2", "", {}, "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="], "decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="], @@ -1890,6 +2086,10 @@ "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + + "destr": ["destr@2.0.5", "", {}, "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA=="], + "destroy": ["destroy@1.2.0", "", {}, "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="], "detect-indent": ["detect-indent@6.1.0", "", {}, "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA=="], @@ -1900,18 +2100,28 @@ "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="], + "deterministic-object-hash": ["deterministic-object-hash@2.0.2", "", { "dependencies": { "base-64": "^1.0.0" } }, "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ=="], + "devalue": ["devalue@5.6.3", "", {}, "sha512-nc7XjUU/2Lb+SvEFVGcWLiKkzfw8+qHI7zn8WYXKkLMgfGSHbgCEaR6bJpev8Cm6Rmrb19Gfd/tZvGqx9is3wg=="], + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], + + "diff": ["diff@8.0.3", "", {}, "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ=="], + "dir-compare": ["dir-compare@4.2.0", "", { "dependencies": { "minimatch": "^3.0.5", "p-limit": "^3.1.0 " } }, "sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ=="], "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], "disposablestack": ["disposablestack@1.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "get-intrinsic": "^1.2.6", "globalthis": "^1.0.4", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.0.7", "suppressed-error": "^1.0.3" } }, "sha512-UmyM57A8fTz5Hn4pYO/q2YdQ7fApPmxT3T5eA3Igr4UnUZ/HY6zEWSUVR7QT6kiM4udOyljC8Ag2jn7DnaSUqA=="], + "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], + "dmg-builder": ["dmg-builder@26.8.1", "", { "dependencies": { "app-builder-lib": "26.8.1", "builder-util": "26.8.1", "fs-extra": "^10.1.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" }, "optionalDependencies": { "dmg-license": "^1.0.11" } }, "sha512-glMJgnTreo8CFINujtAhCgN96QAqApDMZ8Vl1r8f0QT8QprvC1UCltV4CcWj20YoIyLZx6IUskaJZ0NV8fokcg=="], "dmg-license": ["dmg-license@1.0.11", "", { "dependencies": { "@types/plist": "^3.0.1", "@types/verror": "^1.10.3", "ajv": "^6.10.0", "crc": "^3.8.0", "iconv-corefoundation": "^1.1.7", "plist": "^3.0.4", "smart-buffer": "^4.0.2", "verror": "^1.10.0" }, "os": "darwin", "bin": { "dmg-license": "bin/dmg-license.js" } }, "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q=="], + "dnssd-advertise": ["dnssd-advertise@1.1.3", "", {}, "sha512-XENsHi3MBzWOCAXif3yZvU1Ah0l+nhJj1sjWL6TnOAYKvGiFhbTx32xHN7+wLMLUOCj7Nr0evADWG4R8JtqCDA=="], + "dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="], "domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="], @@ -1920,10 +2130,12 @@ "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], - "dotenv": ["dotenv@16.4.7", "", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="], + "dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], "dotenv-expand": ["dotenv-expand@11.0.7", "", { "dependencies": { "dotenv": "^16.4.5" } }, "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA=="], + "dset": ["dset@3.1.4", "", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="], + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], @@ -1958,8 +2170,6 @@ "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], - "env-editor": ["env-editor@0.4.2", "", {}, "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA=="], - "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="], "environment": ["environment@1.1.0", "", {}, "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q=="], @@ -2026,36 +2236,44 @@ "expect-type": ["expect-type@1.3.0", "", {}, "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA=="], - "expo": ["expo@54.0.33", "", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "54.0.23", "@expo/config": "~12.0.13", "@expo/config-plugins": "~54.0.4", "@expo/devtools": "0.1.8", "@expo/fingerprint": "0.15.4", "@expo/metro": "~54.2.0", "@expo/metro-config": "54.0.14", "@expo/vector-icons": "^15.0.3", "@ungap/structured-clone": "^1.3.0", "babel-preset-expo": "~54.0.10", "expo-asset": "~12.0.12", "expo-constants": "~18.0.13", "expo-file-system": "~19.0.21", "expo-font": "~14.0.11", "expo-keep-awake": "~15.0.8", "expo-modules-autolinking": "3.0.24", "expo-modules-core": "3.0.29", "pretty-format": "^29.7.0", "react-refresh": "^0.14.2", "whatwg-url-without-unicode": "8.0.0-3" }, "peerDependencies": { "@expo/dom-webview": "*", "@expo/metro-runtime": "*", "react": "*", "react-native": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/dom-webview", "@expo/metro-runtime", "react-native-webview"], "bin": { "expo": "bin/cli", "fingerprint": "bin/fingerprint", "expo-modules-autolinking": "bin/autolinking" } }, "sha512-3yOEfAKqo+gqHcV8vKcnq0uA5zxlohnhA3fu4G43likN8ct5ZZ3LjAh9wDdKteEkoad3tFPvwxmXW711S5OHUw=="], + "expo": ["expo@55.0.4", "", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "55.0.14", "@expo/config": "~55.0.8", "@expo/config-plugins": "~55.0.6", "@expo/devtools": "55.0.2", "@expo/fingerprint": "0.16.5", "@expo/local-build-cache-provider": "55.0.6", "@expo/log-box": "55.0.7", "@expo/metro": "~54.2.0", "@expo/metro-config": "55.0.9", "@expo/vector-icons": "^15.0.2", "@ungap/structured-clone": "^1.3.0", "babel-preset-expo": "~55.0.10", "expo-asset": "~55.0.8", "expo-constants": "~55.0.7", "expo-file-system": "~55.0.10", "expo-font": "~55.0.4", "expo-keep-awake": "~55.0.4", "expo-modules-autolinking": "55.0.8", "expo-modules-core": "55.0.13", "pretty-format": "^29.7.0", "react-refresh": "^0.14.2", "whatwg-url-minimum": "^0.1.1" }, "peerDependencies": { "@expo/dom-webview": "*", "@expo/metro-runtime": "*", "react": "*", "react-native": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/dom-webview", "@expo/metro-runtime", "react-native-webview"], "bin": { "expo": "bin/cli", "fingerprint": "bin/fingerprint", "expo-modules-autolinking": "bin/autolinking" } }, "sha512-cbQBPYwmH6FRvh942KR8mSdEcrVdsIMkjdHthtf59zlpzgrk28FabhOdL/Pc9WuS+CsIP3EIQbZqmLkTjv6qPg=="], + + "expo-asset": ["expo-asset@55.0.8", "", { "dependencies": { "@expo/image-utils": "^0.8.12", "expo-constants": "~55.0.7" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-yEz2svDX67R0yiW2skx6dJmcE0q7sj9ECpGMcxBExMCbctc+nMoZCnjUuhzPl5vhClUsO5HFFXS5vIGmf1bgHQ=="], + + "expo-constants": ["expo-constants@55.0.7", "", { "dependencies": { "@expo/config": "~55.0.8", "@expo/env": "~2.1.1" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-kdcO4TsQRRqt0USvjaY5vgQMO9H52K3kBZ/ejC7F6rz70mv08GoowrZ1CYOr5O4JpPDRlIpQfZJUucaS/c+KWQ=="], + + "expo-file-system": ["expo-file-system@55.0.10", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-ysFdVdUgtfj2ApY0Cn+pBg+yK4xp+SNwcaH8j2B91JJQ4OXJmnyCSmrNZYz7J4mdYVuv2GzxIP+N/IGlHQG3Yw=="], - "expo-asset": ["expo-asset@12.0.12", "", { "dependencies": { "@expo/image-utils": "^0.8.8", "expo-constants": "~18.0.12" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-CsXFCQbx2fElSMn0lyTdRIyKlSXOal6ilLJd+yeZ6xaC7I9AICQgscY5nj0QcwgA+KYYCCEQEBndMsmj7drOWQ=="], + "expo-font": ["expo-font@55.0.4", "", { "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-ZKeGTFffPygvY5dM/9ATM2p7QDkhsaHopH7wFAWgP2lKzqUMS9B/RxCvw5CaObr9Ro7x9YptyeRKX2HmgmMfrg=="], - "expo-constants": ["expo-constants@18.0.13", "", { "dependencies": { "@expo/config": "~12.0.13", "@expo/env": "~2.0.8" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ=="], + "expo-glass-effect": ["expo-glass-effect@55.0.7", "", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-G7Q9rUaEY0YC36fGE6irDljfsfvzz/y49zagARAKvSJSyQMUSrhR25WOr5LK5Cw7gQNNBEy9U1ctlr7yCay/fQ=="], - "expo-file-system": ["expo-file-system@19.0.21", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg=="], + "expo-image": ["expo-image@55.0.5", "", { "dependencies": { "sf-symbols-typescript": "^2.2.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-oejmMwy5O9EtC8po9NxkcurWHqND6p8xuJaj9FGNo8NXLt9e+w3cKWx7HuPzkH5y3qFXQ9Od+z+I/wxEci36fw=="], - "expo-font": ["expo-font@14.0.11", "", { "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-ga0q61ny4s/kr4k8JX9hVH69exVSIfcIc19+qZ7gt71Mqtm7xy2c6kwsPTCyhBW2Ro5yXTT8EaZOpuRi35rHbg=="], + "expo-keep-awake": ["expo-keep-awake@55.0.4", "", { "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-vwfdMtMS5Fxaon8gC0AiE70SpxTsHJ+rjeoVJl8kdfdbxczF7OIaVmfjFJ5Gfigd/WZiLqxhfZk34VAkXF4PNg=="], - "expo-keep-awake": ["expo-keep-awake@15.0.8", "", { "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-YK9M1VrnoH1vLJiQzChZgzDvVimVoriibiDIFLbQMpjYBnvyfUeHJcin/Gx1a+XgupNXy92EQJLgI/9ZuXajYQ=="], + "expo-linking": ["expo-linking@55.0.7", "", { "dependencies": { "expo-constants": "~55.0.7", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-MiGCedere1vzQTEi2aGrkzd7eh/rPSz4w6F3GMBuAJzYl+/0VhIuyhozpEGrueyDIXWfzaUVOcn3SfxVi+kwQQ=="], - "expo-linking": ["expo-linking@8.0.11", "", { "dependencies": { "expo-constants": "~18.0.12", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-+VSaNL5om3kOp/SSKO5qe6cFgfSIWnnQDSbA7XLs3ECkYzXRquk5unxNS3pg7eK5kNUmQ4kgLI7MhTggAEUBLA=="], + "expo-modules-autolinking": ["expo-modules-autolinking@55.0.8", "", { "dependencies": { "@expo/require-utils": "^55.0.2", "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "commander": "^7.2.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, "sha512-nrWB1pkNp7bR8ECUTgYUiJ2Pyh6AvxCBXZ+lyPlfl1TzEIGhwU1Yqr+d78eJDueXaW+9zKeE0HqrTZoLS3ve4A=="], - "expo-modules-autolinking": ["expo-modules-autolinking@3.0.24", "", { "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "commander": "^7.2.0", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, "sha512-TP+6HTwhL7orDvsz2VzauyQlXJcAWyU3ANsZ7JGL4DQu8XaZv/A41ZchbtAYLfozNA2Ya1Hzmhx65hXryBMjaQ=="], + "expo-modules-core": ["expo-modules-core@55.0.13", "", { "dependencies": { "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-DYLQTOJAR7jD3M9S0sH9myZaPEtShdicHrPiWcupIXMeMkQxFzErx+adUI8gZPy4AU45BgeGgtaogRfT25iLfw=="], - "expo-modules-core": ["expo-modules-core@3.0.29", "", { "dependencies": { "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-LzipcjGqk8gvkrOUf7O2mejNWugPkf3lmd9GkqL9WuNyeN2fRwU0Dn77e3ZUKI3k6sI+DNwjkq4Nu9fNN9WS7Q=="], + "expo-router": ["expo-router@55.0.3", "", { "dependencies": { "@expo/metro-runtime": "^55.0.6", "@expo/schema-utils": "^55.0.2", "@radix-ui/react-slot": "^1.2.0", "@radix-ui/react-tabs": "^1.1.12", "@react-navigation/bottom-tabs": "^7.10.1", "@react-navigation/native": "^7.1.28", "@react-navigation/native-stack": "^7.10.1", "client-only": "^0.0.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "expo-glass-effect": "^55.0.7", "expo-image": "^55.0.5", "expo-server": "^55.0.6", "expo-symbols": "^55.0.4", "fast-deep-equal": "^3.1.3", "invariant": "^2.2.4", "nanoid": "^3.3.8", "query-string": "^7.1.3", "react-fast-compare": "^3.2.2", "react-native-is-edge-to-edge": "^1.2.1", "semver": "~7.6.3", "server-only": "^0.0.1", "sf-symbols-typescript": "^2.1.0", "shallowequal": "^1.1.0", "use-latest-callback": "^0.2.1", "vaul": "^1.1.2" }, "peerDependencies": { "@expo/log-box": "55.0.7", "@react-navigation/drawer": "^7.7.2", "@testing-library/react-native": ">= 13.2.0", "expo": "*", "expo-constants": "^55.0.7", "expo-linking": "^55.0.7", "react": "*", "react-dom": "*", "react-native": "*", "react-native-gesture-handler": "*", "react-native-reanimated": "*", "react-native-safe-area-context": ">= 5.4.0", "react-native-screens": "*", "react-native-web": "*", "react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4" }, "optionalPeers": ["@react-navigation/drawer", "@testing-library/react-native", "react-dom", "react-native-gesture-handler", "react-native-reanimated", "react-native-web", "react-server-dom-webpack"] }, "sha512-B3MQAeZq9B2SS5kgEybGqXYR0AY7QYM7fQ5E4bJwtvZLJjWPmWhDALhBpD26ovK/i1k0fi9VgW47FKJODxM5Jg=="], - "expo-router": ["expo-router@6.0.23", "", { "dependencies": { "@expo/metro-runtime": "^6.1.2", "@expo/schema-utils": "^0.1.8", "@radix-ui/react-slot": "1.2.0", "@radix-ui/react-tabs": "^1.1.12", "@react-navigation/bottom-tabs": "^7.4.0", "@react-navigation/native": "^7.1.8", "@react-navigation/native-stack": "^7.3.16", "client-only": "^0.0.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "expo-server": "^1.0.5", "fast-deep-equal": "^3.1.3", "invariant": "^2.2.4", "nanoid": "^3.3.8", "query-string": "^7.1.3", "react-fast-compare": "^3.2.2", "react-native-is-edge-to-edge": "^1.1.6", "semver": "~7.6.3", "server-only": "^0.0.1", "sf-symbols-typescript": "^2.1.0", "shallowequal": "^1.1.0", "use-latest-callback": "^0.2.1", "vaul": "^1.1.2" }, "peerDependencies": { "@react-navigation/drawer": "^7.5.0", "@testing-library/react-native": ">= 12.0.0", "expo": "*", "expo-constants": "^18.0.13", "expo-linking": "^8.0.11", "react": "*", "react-dom": "*", "react-native": "*", "react-native-gesture-handler": "*", "react-native-reanimated": "*", "react-native-safe-area-context": ">= 5.4.0", "react-native-screens": "*", "react-native-web": "*", "react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4" }, "optionalPeers": ["@react-navigation/drawer", "@testing-library/react-native", "react-dom", "react-native-gesture-handler", "react-native-reanimated", "react-native-web", "react-server-dom-webpack"] }, "sha512-qCxVAiCrCyu0npky6azEZ6dJDMt77OmCzEbpF6RbUTlfkaCA417LvY14SBkk0xyGruSxy/7pvJOI6tuThaUVCA=="], + "expo-secure-store": ["expo-secure-store@55.0.8", "", { "peerDependencies": { "expo": "*" } }, "sha512-8w9tQe8U6oRo5YIzqCqVhRrOnfoODNDoitBtLXEx+zS6WLUnkRq5kH7ViJuOgiM7PzLr9pvAliRiDOKyvFbTuQ=="], - "expo-secure-store": ["expo-secure-store@15.0.8", "", { "peerDependencies": { "expo": "*" } }, "sha512-lHnzvRajBu4u+P99+0GEMijQMFCOYpWRO4dWsXSuMt77+THPIGjzNvVKrGSl6mMrLsfVaKL8BpwYZLGlgA+zAw=="], + "expo-server": ["expo-server@55.0.6", "", {}, "sha512-xI72FTm469FfuuBL2R5aNtthgH+GR7ygOpsx/KcPS0K8AZaZd7VjtEExbzn9/qyyYkWW3T+3dAmCDKOMX8gdmQ=="], - "expo-server": ["expo-server@1.0.5", "", {}, "sha512-IGR++flYH70rhLyeXF0Phle56/k4cee87WeQ4mamS+MkVAVP+dDlOHf2nN06Z9Y2KhU0Gp1k+y61KkghF7HdhA=="], + "expo-splash-screen": ["expo-splash-screen@55.0.10", "", { "dependencies": { "@expo/prebuild-config": "^55.0.8" }, "peerDependencies": { "expo": "*" } }, "sha512-RN5qqrxudxFlRIjLFr/Ifmt+mUCLRc0gs66PekP6flzNS/JYEuoCbwJ+NmUwwJtPA+vyy60DYiky0QmS98ydmQ=="], - "expo-splash-screen": ["expo-splash-screen@31.0.13", "", { "dependencies": { "@expo/prebuild-config": "^54.0.8" }, "peerDependencies": { "expo": "*" } }, "sha512-1epJLC1cDlwwj089R2h8cxaU5uk4ONVAC+vzGiTZH4YARQhL4Stlz1MbR6yAS173GMosvkE6CAeihR7oIbCkDA=="], + "expo-sqlite": ["expo-sqlite@55.0.10", "", { "dependencies": { "await-lock": "^2.2.2" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-yLQXkwcA0OVSKuL4t+a6vv+H/Klh8147n7hH75AN0MkC48p3Go7+6GM+3SFENeaBUsmOnOS3XSFxMxxj6PIg4g=="], - "expo-sqlite": ["expo-sqlite@16.0.10", "", { "dependencies": { "await-lock": "^2.2.2" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-tUOKxE9TpfneRG3eOfbNfhN9236SJ7IiUnP8gCqU7umd9DtgDGB/5PhYVVfl+U7KskgolgNoB9v9OZ9iwXN8Eg=="], + "expo-symbols": ["expo-symbols@55.0.4", "", { "dependencies": { "@expo-google-fonts/material-symbols": "^0.4.1", "sf-symbols-typescript": "^2.0.0" }, "peerDependencies": { "expo": "*", "expo-font": "*", "react": "*", "react-native": "*" } }, "sha512-w9rxPlpta3gks0G4Tvpq/qQdiMp4R/XOeOzyjSruYUQakmsWbQBKA+Sd/fCVXs7qFJSvVTOGXiOhZm+YJRYZVg=="], "exponential-backoff": ["exponential-backoff@3.1.3", "", {}, "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA=="], + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + "extendable-error": ["extendable-error@0.1.7", "", {}, "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg=="], "extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": { "extract-zip": "cli.js" } }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="], @@ -2074,12 +2292,20 @@ "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], + "fb-dotslash": ["fb-dotslash@0.5.8", "", { "bin": { "dotslash": "bin/dotslash" } }, "sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA=="], + "fb-watchman": ["fb-watchman@2.0.2", "", { "dependencies": { "bser": "2.1.1" } }, "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA=="], + "fbjs": ["fbjs@3.0.5", "", { "dependencies": { "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", "loose-envify": "^1.0.0", "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", "ua-parser-js": "^1.0.35" } }, "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg=="], + + "fbjs-css-vars": ["fbjs-css-vars@1.0.2", "", {}, "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="], + "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="], "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + "fetch-nodeshim": ["fetch-nodeshim@0.4.8", "", {}, "sha512-YW5vG33rabBq6JpYosLNoXoaMN69/WH26MeeX2hkDVjN6UlvRGq3Wkazl9H0kisH95aMu/HtHL64JUvv/+Nv/g=="], + "file-uri-to-path": ["file-uri-to-path@1.0.0", "", {}, "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="], "filelist": ["filelist@1.0.6", "", { "dependencies": { "minimatch": "^5.0.1" } }, "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA=="], @@ -2094,18 +2320,22 @@ "find-up": ["find-up@3.0.0", "", { "dependencies": { "locate-path": "^3.0.0" } }, "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="], + "flattie": ["flattie@1.1.1", "", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="], + "flow-enums-runtime": ["flow-enums-runtime@0.0.6", "", {}, "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw=="], + "fontace": ["fontace@0.4.1", "", { "dependencies": { "fontkitten": "^1.0.2" } }, "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw=="], + "fontfaceobserver": ["fontfaceobserver@2.3.0", "", {}, "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg=="], + "fontkitten": ["fontkitten@1.0.2", "", { "dependencies": { "tiny-inflate": "^1.0.3" } }, "sha512-piJxbLnkD9Xcyi7dWJRnqszEURixe7CrF/efBfbffe2DPyabmuIuqraruY8cXTs19QoM8VJzx47BDRVNXETM7Q=="], + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="], - "freeport-async": ["freeport-async@2.0.0", "", {}, "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ=="], - "fresh": ["fresh@0.5.2", "", {}, "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="], "fs-constants": ["fs-constants@1.0.0", "", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="], @@ -2150,6 +2380,8 @@ "github-from-package": ["github-from-package@0.0.0", "", {}, "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="], + "github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], + "glob": ["glob@13.0.6", "", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], "glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], @@ -2168,6 +2400,8 @@ "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + "h3": ["h3@1.15.5", "", { "dependencies": { "cookie-es": "^1.2.2", "crossws": "^0.3.5", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.4", "radix3": "^1.1.2", "ufo": "^1.6.3", "uncrypto": "^0.1.3" } }, "sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg=="], + "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], @@ -2182,13 +2416,37 @@ "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], - "hermes-estree": ["hermes-estree@0.29.1", "", {}, "sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ=="], + "hast-util-from-html": ["hast-util-from-html@2.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.1.0", "hast-util-from-parse5": "^8.0.0", "parse5": "^7.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0" } }, "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw=="], + + "hast-util-from-parse5": ["hast-util-from-parse5@8.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" } }, "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg=="], + + "hast-util-is-element": ["hast-util-is-element@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g=="], + + "hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="], + + "hast-util-raw": ["hast-util-raw@9.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "hast-util-from-parse5": "^8.0.0", "hast-util-to-parse5": "^8.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "parse5": "^7.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw=="], + + "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="], + + "hast-util-to-parse5": ["hast-util-to-parse5@8.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA=="], + + "hast-util-to-text": ["hast-util-to-text@4.0.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "hast-util-is-element": "^3.0.0", "unist-util-find-after": "^5.0.0" } }, "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A=="], - "hermes-parser": ["hermes-parser@0.29.1", "", { "dependencies": { "hermes-estree": "0.29.1" } }, "sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA=="], + "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], + + "hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], + + "hermes-compiler": ["hermes-compiler@250829098.0.9", "", {}, "sha512-hZ5O7PDz1vQ99TS7HD3FJ9zVynfU1y+VWId6U1Pldvd8hmAYrNec/XLPYJKD3dLOW6NXak6aAQAuMuSo3ji0tQ=="], + + "hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], + + "hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], "hosted-git-info": ["hosted-git-info@4.1.0", "", { "dependencies": { "lru-cache": "^6.0.0" } }, "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA=="], - "html-escaper": ["html-escaper@2.0.2", "", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="], + "html-escaper": ["html-escaper@3.0.3", "", {}, "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ=="], + + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], "htmlparser2": ["htmlparser2@10.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "entities": "^7.0.1" } }, "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ=="], @@ -2204,6 +2462,8 @@ "human-id": ["human-id@4.1.3", "", { "bin": { "human-id": "dist/cli.js" } }, "sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q=="], + "hyphenate-style-name": ["hyphenate-style-name@1.1.0", "", {}, "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw=="], + "ico-endec": ["ico-endec@0.1.6", "", {}, "sha512-ZdLU38ZoED3g1j3iEyzcQj+wAkY2xfWNkymszfJPoxucIUhK7NayQ+/C4Kv0nDFMIsbtbEHldv3V8PU494/ueQ=="], "iconv-corefoundation": ["iconv-corefoundation@1.1.7", "", { "dependencies": { "cli-truncate": "^2.1.0", "node-addon-api": "^1.6.3" }, "os": "darwin" }, "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ=="], @@ -2222,6 +2482,8 @@ "immutable": ["immutable@5.1.4", "", {}, "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA=="], + "import-meta-resolve": ["import-meta-resolve@4.2.0", "", {}, "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg=="], + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], @@ -2230,12 +2492,16 @@ "ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], + "inline-style-prefixer": ["inline-style-prefixer@7.0.1", "", { "dependencies": { "css-in-js-utils": "^3.1.0" } }, "sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw=="], + "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], "invariant": ["invariant@2.2.4", "", { "dependencies": { "loose-envify": "^1.0.0" } }, "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA=="], "ip-address": ["ip-address@10.1.0", "", {}, "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q=="], + "iron-webcrypto": ["iron-webcrypto@1.2.1", "", {}, "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg=="], + "is-arguments": ["is-arguments@1.2.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA=="], "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], @@ -2256,7 +2522,7 @@ "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], - "is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], + "is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], @@ -2268,6 +2534,8 @@ "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + "is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="], + "is-interactive": ["is-interactive@1.0.0", "", {}, "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="], "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], @@ -2282,6 +2550,8 @@ "is-obj": ["is-obj@1.0.1", "", {}, "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg=="], + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + "is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="], "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], @@ -2312,12 +2582,14 @@ "is-windows": ["is-windows@1.0.2", "", {}, "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="], - "is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], + "is-wsl": ["is-wsl@3.1.1", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw=="], "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], "isbinaryfile": ["isbinaryfile@5.0.7", "", {}, "sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ=="], + "isbot": ["isbot@5.1.35", "", {}, "sha512-waFfC72ZNfwLLuJ2iLaoVaqcNo+CAaLR7xCpAn0Y5WfGzkNHv7ZN39Vbi1y+kb+Zs46XHOX3tZNExroFUPX+Kg=="], + "isexe": ["isexe@3.1.5", "", {}, "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w=="], "istanbul-lib-coverage": ["istanbul-lib-coverage@3.2.2", "", {}, "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="], @@ -2390,7 +2662,7 @@ "kysely": ["kysely@0.28.11", "", {}, "sha512-zpGIFg0HuoC893rIjYX1BETkVWdDnzTzF5e0kWXJFg5lE0k1/LfNWBejrcnOFu8Q2Rfq/hTDTU7XLUM8QOrpzg=="], - "lan-network": ["lan-network@0.1.7", "", { "bin": { "lan-network": "dist/lan-network-cli.js" } }, "sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ=="], + "lan-network": ["lan-network@0.2.0", "", { "bin": { "lan-network": "dist/lan-network-cli.js" } }, "sha512-EZgbsXMrGS+oK+Ta12mCjzBFse+SIewGdwrSTr5g+MSymnjpox2x05ceI20PQejJOFvOgzcXrfDk/SdY7dSCtw=="], "lazy-val": ["lazy-val@1.0.5", "", {}, "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q=="], @@ -2422,8 +2694,6 @@ "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.31.1", "", { "os": "win32", "cpu": "x64" }, "sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw=="], - "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], - "linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="], "listr2": ["listr2@9.0.5", "", { "dependencies": { "cli-truncate": "^5.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", "log-update": "^6.1.0", "rfdc": "^1.4.1", "wrap-ansi": "^9.0.0" } }, "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g=="], @@ -2450,11 +2720,13 @@ "log-update": ["log-update@6.1.0", "", { "dependencies": { "ansi-escapes": "^7.0.0", "cli-cursor": "^5.0.0", "slice-ansi": "^7.1.0", "strip-ansi": "^7.1.0", "wrap-ansi": "^9.0.0" } }, "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w=="], + "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], "lowercase-keys": ["lowercase-keys@2.0.0", "", {}, "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="], - "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "lru-cache": ["lru-cache@11.2.6", "", {}, "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ=="], "lunr": ["lunr@2.3.9", "", {}, "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="], @@ -2470,12 +2742,40 @@ "markdown-it": ["markdown-it@14.1.1", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA=="], + "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="], + "marky": ["marky@1.3.0", "", {}, "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ=="], "matcher": ["matcher@3.0.0", "", { "dependencies": { "escape-string-regexp": "^4.0.0" } }, "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng=="], "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + "mdast-util-definitions": ["mdast-util-definitions@6.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ=="], + + "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="], + + "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.3", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q=="], + + "mdast-util-gfm": ["mdast-util-gfm@3.1.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", "mdast-util-gfm-footnote": "^2.0.0", "mdast-util-gfm-strikethrough": "^2.0.0", "mdast-util-gfm-table": "^2.0.0", "mdast-util-gfm-task-list-item": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ=="], + + "mdast-util-gfm-autolink-literal": ["mdast-util-gfm-autolink-literal@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-find-and-replace": "^3.0.0", "micromark-util-character": "^2.0.0" } }, "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ=="], + + "mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" } }, "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ=="], + + "mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg=="], + + "mdast-util-gfm-table": ["mdast-util-gfm-table@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "markdown-table": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg=="], + + "mdast-util-gfm-task-list-item": ["mdast-util-gfm-task-list-item@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ=="], + + "mdast-util-phrasing": ["mdast-util-phrasing@4.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" } }, "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w=="], + + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="], + + "mdast-util-to-markdown": ["mdast-util-to-markdown@2.1.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA=="], + + "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], + "mdn-data": ["mdn-data@2.0.14", "", {}, "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="], "mdurl": ["mdurl@2.0.0", "", {}, "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="], @@ -2514,6 +2814,62 @@ "metro-transform-worker": ["metro-transform-worker@0.83.3", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/generator": "^7.25.0", "@babel/parser": "^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "metro": "0.83.3", "metro-babel-transformer": "0.83.3", "metro-cache": "0.83.3", "metro-cache-key": "0.83.3", "metro-minify-terser": "0.83.3", "metro-source-map": "0.83.3", "metro-transform-plugins": "0.83.3", "nullthrows": "^1.1.1" } }, "sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA=="], + "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], + + "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], + + "micromark-extension-gfm": ["micromark-extension-gfm@3.0.0", "", { "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-table": "^2.0.0", "micromark-extension-gfm-tagfilter": "^2.0.0", "micromark-extension-gfm-task-list-item": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w=="], + + "micromark-extension-gfm-autolink-literal": ["micromark-extension-gfm-autolink-literal@2.1.0", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw=="], + + "micromark-extension-gfm-footnote": ["micromark-extension-gfm-footnote@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw=="], + + "micromark-extension-gfm-strikethrough": ["micromark-extension-gfm-strikethrough@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw=="], + + "micromark-extension-gfm-table": ["micromark-extension-gfm-table@2.1.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg=="], + + "micromark-extension-gfm-tagfilter": ["micromark-extension-gfm-tagfilter@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg=="], + + "micromark-extension-gfm-task-list-item": ["micromark-extension-gfm-task-list-item@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw=="], + + "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="], + + "micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="], + + "micromark-factory-space": ["micromark-factory-space@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="], + + "micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="], + + "micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="], + + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], + + "micromark-util-chunked": ["micromark-util-chunked@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="], + + "micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="], + + "micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="], + + "micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="], + + "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="], + + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], + + "micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="], + + "micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="], + + "micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="], + + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], + + "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="], + + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], + + "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], "mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], @@ -2564,9 +2920,9 @@ "muggle-string": ["muggle-string@0.4.1", "", {}, "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ=="], - "mute-stream": ["mute-stream@2.0.0", "", {}, "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA=="], + "multitars": ["multitars@0.2.4", "", {}, "sha512-XgLbg1HHchFauMCQPRwMj6MSyDd5koPlTA1hM3rUFkeXzGpjU/I9fP3to7yrObE9jcN8ChIOQGrM0tV0kUZaKg=="], - "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], + "mute-stream": ["mute-stream@2.0.0", "", {}, "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA=="], "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], @@ -2576,16 +2932,22 @@ "neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], - "nested-error-stacks": ["nested-error-stacks@2.0.1", "", {}, "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A=="], + "neotraverse": ["neotraverse@0.6.18", "", {}, "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA=="], "next": ["next@16.1.6", "", { "dependencies": { "@next/env": "16.1.6", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.8.3", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.1.6", "@next/swc-darwin-x64": "16.1.6", "@next/swc-linux-arm64-gnu": "16.1.6", "@next/swc-linux-arm64-musl": "16.1.6", "@next/swc-linux-x64-gnu": "16.1.6", "@next/swc-linux-x64-musl": "16.1.6", "@next/swc-win32-arm64-msvc": "16.1.6", "@next/swc-win32-x64-msvc": "16.1.6", "sharp": "^0.34.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw=="], + "nlcst-to-string": ["nlcst-to-string@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0" } }, "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA=="], + "node-abi": ["node-abi@3.87.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ=="], "node-addon-api": ["node-addon-api@6.1.0", "", {}, "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="], "node-api-version": ["node-api-version@0.2.1", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q=="], + "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + + "node-fetch-native": ["node-fetch-native@1.6.7", "", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="], + "node-forge": ["node-forge@1.3.3", "", {}, "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg=="], "node-gyp": ["node-gyp@11.5.0", "", { "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "graceful-fs": "^4.2.6", "make-fetch-happen": "^14.0.3", "nopt": "^8.0.0", "proc-log": "^5.0.0", "semver": "^7.3.5", "tar": "^7.4.3", "tinyglobby": "^0.2.12", "which": "^5.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" } }, "sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ=="], @@ -2594,6 +2956,8 @@ "node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="], + "node-mock-http": ["node-mock-http@1.0.4", "", {}, "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ=="], + "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], "nopt": ["nopt@8.1.0", "", { "dependencies": { "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A=="], @@ -2622,6 +2986,10 @@ "obug": ["obug@2.1.1", "", {}, "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ=="], + "ofetch": ["ofetch@1.5.1", "", { "dependencies": { "destr": "^2.0.5", "node-fetch-native": "^1.6.7", "ufo": "^1.6.1" } }, "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA=="], + + "ohash": ["ohash@2.0.11", "", {}, "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ=="], + "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], "on-headers": ["on-headers@1.1.0", "", {}, "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A=="], @@ -2630,6 +2998,10 @@ "onetime": ["onetime@2.0.1", "", { "dependencies": { "mimic-fn": "^1.0.0" } }, "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ=="], + "oniguruma-parser": ["oniguruma-parser@0.12.1", "", {}, "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w=="], + + "oniguruma-to-es": ["oniguruma-to-es@4.3.4", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA=="], + "open": ["open@7.4.2", "", { "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" } }, "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q=="], "ora": ["ora@3.4.0", "", { "dependencies": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-spinners": "^2.0.0", "log-symbols": "^2.2.0", "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" } }, "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg=="], @@ -2650,12 +3022,18 @@ "p-map": ["p-map@2.1.0", "", {}, "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw=="], + "p-queue": ["p-queue@8.1.1", "", { "dependencies": { "eventemitter3": "^5.0.1", "p-timeout": "^6.1.2" } }, "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ=="], + + "p-timeout": ["p-timeout@6.1.4", "", {}, "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg=="], + "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], "package-manager-detector": ["package-manager-detector@0.2.11", "", { "dependencies": { "quansync": "^0.2.7" } }, "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ=="], + "parse-latin": ["parse-latin@7.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "@types/unist": "^3.0.0", "nlcst-to-string": "^4.0.0", "unist-util-modify-children": "^4.0.0", "unist-util-visit-children": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ=="], + "parse-png": ["parse-png@2.1.0", "", { "dependencies": { "pngjs": "^3.3.0" } }, "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ=="], "parse5": ["parse5@8.0.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA=="], @@ -2686,6 +3064,8 @@ "pend": ["pend@1.2.0", "", {}, "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="], + "piccolore": ["piccolore@0.1.3", "", {}, "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw=="], + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], @@ -2716,6 +3096,8 @@ "postcss-safe-parser": ["postcss-safe-parser@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.31" } }, "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A=="], + "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + "postject": ["postject@1.0.0-alpha.6", "", { "dependencies": { "commander": "^9.4.0" }, "bin": { "postject": "dist/cli.js" } }, "sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A=="], "prebuild-install": ["prebuild-install@7.1.3", "", { "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" }, "bin": { "prebuild-install": "bin.js" } }, "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug=="], @@ -2726,6 +3108,8 @@ "pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="], + "prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], + "proc-log": ["proc-log@4.2.0", "", {}, "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA=="], "process": ["process@0.11.10", "", {}, "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="], @@ -2740,6 +3124,8 @@ "proper-lockfile": ["proper-lockfile@4.1.2", "", { "dependencies": { "graceful-fs": "^4.2.4", "retry": "^0.12.0", "signal-exit": "^3.0.2" } }, "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA=="], + "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="], + "pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="], "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], @@ -2748,8 +3134,6 @@ "pure-rand": ["pure-rand@7.0.1", "", {}, "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ=="], - "qrcode-terminal": ["qrcode-terminal@0.11.0", "", { "bin": { "qrcode-terminal": "./bin/qrcode-terminal.js" } }, "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ=="], - "quansync": ["quansync@0.2.11", "", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], "query-string": ["query-string@7.1.3", "", { "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" } }, "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg=="], @@ -2760,6 +3144,8 @@ "quick-lru": ["quick-lru@5.1.1", "", {}, "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="], + "radix3": ["radix3@1.1.2", "", {}, "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA=="], + "randombytes": ["randombytes@2.1.0", "", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], @@ -2778,11 +3164,11 @@ "react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "react-native": ["react-native@0.81.6", "", { "dependencies": { "@jest/create-cache-key-function": "^29.7.0", "@react-native/assets-registry": "0.81.6", "@react-native/codegen": "0.81.6", "@react-native/community-cli-plugin": "0.81.6", "@react-native/gradle-plugin": "0.81.6", "@react-native/js-polyfills": "0.81.6", "@react-native/normalize-colors": "0.81.6", "@react-native/virtualized-lists": "0.81.6", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", "babel-jest": "^29.7.0", "babel-plugin-syntax-hermes-parser": "0.29.1", "base64-js": "^1.5.1", "commander": "^12.0.0", "flow-enums-runtime": "^0.0.6", "glob": "^7.1.1", "invariant": "^2.2.4", "jest-environment-node": "^29.7.0", "memoize-one": "^5.0.0", "metro-runtime": "^0.83.1", "metro-source-map": "^0.83.1", "nullthrows": "^1.1.1", "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-devtools-core": "^6.1.5", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.26.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", "ws": "^6.2.3", "yargs": "^17.6.2" }, "peerDependencies": { "@types/react": "^19.1.4", "react": "^19.1.4" }, "optionalPeers": ["@types/react"], "bin": { "react-native": "cli.js" } }, "sha512-X/tI8GqfzVaa+zfbE4+lySNN5UzwBIAVRHVZPKymOny9Acc5GYYcjAcEVfG3AM4h920YALWoSl8favnDmQEWIg=="], + "react-native": ["react-native@0.84.1", "", { "dependencies": { "@jest/create-cache-key-function": "^29.7.0", "@react-native/assets-registry": "0.84.1", "@react-native/codegen": "0.84.1", "@react-native/community-cli-plugin": "0.84.1", "@react-native/gradle-plugin": "0.84.1", "@react-native/js-polyfills": "0.84.1", "@react-native/normalize-colors": "0.84.1", "@react-native/virtualized-lists": "0.84.1", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", "babel-jest": "^29.7.0", "babel-plugin-syntax-hermes-parser": "0.32.0", "base64-js": "^1.5.1", "commander": "^12.0.0", "flow-enums-runtime": "^0.0.6", "hermes-compiler": "250829098.0.9", "invariant": "^2.2.4", "jest-environment-node": "^29.7.0", "memoize-one": "^5.0.0", "metro-runtime": "^0.83.3", "metro-source-map": "^0.83.3", "nullthrows": "^1.1.1", "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-devtools-core": "^6.1.5", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.27.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "tinyglobby": "^0.2.15", "whatwg-fetch": "^3.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" }, "peerDependencies": { "@types/react": "^19.1.1", "react": "^19.2.3" }, "optionalPeers": ["@types/react"], "bin": { "react-native": "cli.js" } }, "sha512-0PjxOyXRu3tZ8EobabxSukvhKje2HJbsZikR0U+pvS0pYZza2hXKjcSBiBdFN4h9D0S3v6a8kkrDK6WTRKMwzg=="], "react-native-is-edge-to-edge": ["react-native-is-edge-to-edge@1.2.1", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q=="], - "react-native-nitro-modules": ["react-native-nitro-modules@0.33.9", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-BM9C5mCGYYjrc8CDWZZ0anLWU/knH2xaEuFzvzogKTOW6fzgS6mmsCdM3ty+AhImJNSYwK19DLrHaqwnrrwEzw=="], + "react-native-nitro-modules": ["react-native-nitro-modules@0.34.1", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-ga6MBmG5CXBJ69d7BXXOMZ4sI3mEz6Q5pOjV1lyWEV60B/Ma/zGJGBNowsix1wx74zQEvq7gf+O0ovgazE4IKA=="], "react-native-quick-base64": ["react-native-quick-base64@2.2.2", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-WLHSifHLoamr2kF00Gov0W9ud6CfPshe1rmqWTquVIi9c62qxOaJCFVDrXFZhEBU8B8PvGLVuOlVKH78yhY0Fg=="], @@ -2796,6 +3182,8 @@ "react-native-svg": ["react-native-svg@15.15.3", "", { "dependencies": { "css-select": "^5.1.0", "css-tree": "^1.1.3", "warn-once": "0.1.1" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-/k4KYwPBLGcx2f5d4FjE+vCScK7QOX14cl2lIASJ28u4slHHtIhL0SZKU7u9qmRBHxTCKPoPBtN6haT1NENJNA=="], + "react-native-web": ["react-native-web@0.21.2", "", { "dependencies": { "@babel/runtime": "^7.18.6", "@react-native/normalize-colors": "^0.74.1", "fbjs": "^3.0.4", "inline-style-prefixer": "^7.0.1", "memoize-one": "^6.0.0", "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", "styleq": "^0.1.3" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg=="], + "react-refresh": ["react-refresh@0.14.2", "", {}, "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA=="], "react-remove-scroll": ["react-remove-scroll@2.7.2", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q=="], @@ -2822,6 +3210,12 @@ "regenerator-runtime": ["regenerator-runtime@0.13.11", "", {}, "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="], + "regex": ["regex@6.1.0", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg=="], + + "regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], + + "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], + "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], "regexpu-core": ["regexpu-core@6.4.0", "", { "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.2.1" } }, "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA=="], @@ -2830,12 +3224,28 @@ "regjsparser": ["regjsparser@0.13.0", "", { "dependencies": { "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q=="], + "rehype": ["rehype@13.0.2", "", { "dependencies": { "@types/hast": "^3.0.0", "rehype-parse": "^9.0.0", "rehype-stringify": "^10.0.0", "unified": "^11.0.0" } }, "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A=="], + + "rehype-parse": ["rehype-parse@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-html": "^2.0.0", "unified": "^11.0.0" } }, "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag=="], + + "rehype-raw": ["rehype-raw@7.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", "vfile": "^6.0.0" } }, "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww=="], + + "rehype-stringify": ["rehype-stringify@10.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-to-html": "^9.0.0", "unified": "^11.0.0" } }, "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA=="], + + "remark-gfm": ["remark-gfm@4.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="], + + "remark-parse": ["remark-parse@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="], + + "remark-rehype": ["remark-rehype@11.1.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "mdast-util-to-hast": "^13.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw=="], + + "remark-smartypants": ["remark-smartypants@3.0.2", "", { "dependencies": { "retext": "^9.0.0", "retext-smartypants": "^6.0.0", "unified": "^11.0.4", "unist-util-visit": "^5.0.0" } }, "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA=="], + + "remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="], + "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "requireg": ["requireg@0.2.2", "", { "dependencies": { "nested-error-stacks": "~2.0.1", "rc": "~1.2.7", "resolve": "~1.7.1" } }, "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg=="], - "resedit": ["resedit@1.7.2", "", { "dependencies": { "pe-library": "^0.4.1" } }, "sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA=="], "reselect": ["reselect@4.1.8", "", {}, "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ=="], @@ -2848,12 +3258,18 @@ "resolve-workspace-root": ["resolve-workspace-root@2.0.1", "", {}, "sha512-nR23LHAvaI6aHtMg6RWoaHpdR4D881Nydkzi2CixINyg9T00KgaJdJI6Vwty+Ps8WLxZHuxsS0BseWjxSA4C+w=="], - "resolve.exports": ["resolve.exports@2.0.3", "", {}, "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A=="], - "responselike": ["responselike@2.0.1", "", { "dependencies": { "lowercase-keys": "^2.0.0" } }, "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw=="], "restore-cursor": ["restore-cursor@2.0.0", "", { "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q=="], + "retext": ["retext@9.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "retext-latin": "^4.0.0", "retext-stringify": "^4.0.0", "unified": "^11.0.0" } }, "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA=="], + + "retext-latin": ["retext-latin@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "parse-latin": "^7.0.0", "unified": "^11.0.0" } }, "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA=="], + + "retext-smartypants": ["retext-smartypants@6.2.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ=="], + + "retext-stringify": ["retext-stringify@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unified": "^11.0.0" } }, "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA=="], + "retry": ["retry@0.12.0", "", {}, "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="], "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], @@ -2890,7 +3306,7 @@ "sax": ["sax@1.4.4", "", {}, "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw=="], - "scheduler": ["scheduler@0.26.0", "", {}, "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA=="], + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], "schema-utils": ["schema-utils@4.3.3", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA=="], @@ -2906,6 +3322,10 @@ "serialize-javascript": ["serialize-javascript@6.0.2", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], + "seroval": ["seroval@1.5.0", "", {}, "sha512-OE4cvmJ1uSPrKorFIH9/w/Qwuvi/IMcGbv5RKgcJ/zjA/IohDLU6SVaxFN9FwajbP7nsX0dQqMDes1whk3y+yw=="], + + "seroval-plugins": ["seroval-plugins@1.5.0", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-EAHqADIQondwRZIdeW2I636zgsODzoBDwb3PT/+7TLDWyw1Dy/Xv7iGUIEXXav7usHDE9HVhOU61irI3EnyyHA=="], + "serve-static": ["serve-static@1.16.3", "", { "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "~0.19.1" } }, "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA=="], "server-only": ["server-only@0.0.1", "", {}, "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA=="], @@ -2930,6 +3350,8 @@ "set.prototype.union": ["set.prototype.union@1.1.3", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-set": "^1.1.1", "get-intrinsic": "^1.2.4", "is-set": "^2.0.3", "stop-iteration-iterator": "^1.0.0" } }, "sha512-FbjDcc80Ph43roJELrwXuFnQhf2kImcHr7elcegrXYB/B1++HMFk/qKpCjvR1qKiU4Z79bPgOhJyteg769fudg=="], + "setimmediate": ["setimmediate@1.0.5", "", {}, "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="], + "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], "sf-symbols-typescript": ["sf-symbols-typescript@2.2.0", "", {}, "sha512-TPbeg0b7ylrswdGCji8FRGFAKuqbpQlLbL8SOle3j1iHSs5Ob5mhvMAxWN2UItOjgALAB5Zp3fmMfj8mbWvXKw=="], @@ -2946,6 +3368,8 @@ "shell-quote": ["shell-quote@1.8.3", "", {}, "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw=="], + "shiki": ["shiki@3.23.0", "", { "dependencies": { "@shikijs/core": "3.23.0", "@shikijs/engine-javascript": "3.23.0", "@shikijs/engine-oniguruma": "3.23.0", "@shikijs/langs": "3.23.0", "@shikijs/themes": "3.23.0", "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA=="], + "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], @@ -2982,6 +3406,8 @@ "smob": ["smob@1.6.1", "", {}, "sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g=="], + "smol-toml": ["smol-toml@1.6.0", "", {}, "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw=="], + "socks": ["socks@2.8.7", "", { "dependencies": { "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" } }, "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A=="], "socks-proxy-agent": ["socks-proxy-agent@8.0.5", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" } }, "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw=="], @@ -2994,6 +3420,8 @@ "sourcemap-codec": ["sourcemap-codec@1.4.8", "", {}, "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="], + "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + "spawndamnit": ["spawndamnit@3.0.1", "", { "dependencies": { "cross-spawn": "^7.0.5", "signal-exit": "^4.0.1" } }, "sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg=="], "split-on-first": ["split-on-first@1.1.0", "", {}, "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="], @@ -3036,6 +3464,8 @@ "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], + "stringify-object": ["stringify-object@3.3.0", "", { "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" } }, "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw=="], "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], @@ -3052,7 +3482,7 @@ "styled-jsx": ["styled-jsx@5.1.6", "", { "dependencies": { "client-only": "0.0.1" }, "peerDependencies": { "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" } }, "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA=="], - "sucrase": ["sucrase@3.35.1", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "tinyglobby": "^0.2.11", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw=="], + "styleq": ["styleq@0.1.3", "", {}, "sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA=="], "sumchecker": ["sumchecker@3.0.1", "", { "dependencies": { "debug": "^4.1.0" } }, "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg=="], @@ -3064,12 +3494,14 @@ "suppressed-error": ["suppressed-error@1.0.3", "", { "dependencies": { "define-data-property": "^1.1.1", "define-properties": "^1.2.1", "es-abstract": "^1.22.3", "es-errors": "^1.1.0", "function-bind": "^1.1.2", "globalthis": "^1.0.3", "has-property-descriptors": "^1.0.1", "set-function-name": "^2.0.1" } }, "sha512-6+ZiCVUmDLFRyYRswTrDTYWaM/IT01W/cqQBLnnyg8T0njVrWj3tP+EXFevXk6qK61yDXnmZsOFVzFfYoUy/KA=="], - "svelte": ["svelte@5.53.5", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "@types/trusted-types": "^2.0.7", "acorn": "^8.12.1", "aria-query": "5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.6.3", "esm-env": "^1.2.1", "esrap": "^2.2.2", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-YkqERnF05g8KLdDZwZrF8/i1eSbj6Eoat8Jjr2IfruZz9StLuBqo8sfCSzjosNKd+ZrQ8DkKZDjpO5y3ht1Pow=="], + "svelte": ["svelte@5.53.6", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "@types/trusted-types": "^2.0.7", "acorn": "^8.12.1", "aria-query": "5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.6.3", "esm-env": "^1.2.1", "esrap": "^2.2.2", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-lP5DGF3oDDI9fhHcSpaBiJEkFLuS16h92DhM1L5K1lFm0WjOmUh1i2sNkBBk8rkxJRpob0dBE75jRfUzGZUOGA=="], "svelte-check": ["svelte-check@4.4.4", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-F1pGqXc710Oi/wTI4d/x7d6lgPwwfx1U6w3Q35n4xsC2e8C/yN2sM1+mWxjlMcpAfWucjlq4vPi+P4FZ8a14sQ=="], "svelte2tsx": ["svelte2tsx@0.7.51", "", { "dependencies": { "dedent-js": "^1.0.1", "scule": "^1.3.0" }, "peerDependencies": { "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", "typescript": "^4.9.4 || ^5.0.0" } }, "sha512-YbVMQi5LtQkVGOMdATTY8v3SMtkNjzYtrVDGaN3Bv+0LQ47tGXu/Oc8ryTkcYuEJWTZFJ8G2+2I8ORcQVGt9Ag=="], + "svgo": ["svgo@4.0.0", "", { "dependencies": { "commander": "^11.1.0", "css-select": "^5.1.0", "css-tree": "^3.0.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", "sax": "^1.4.1" }, "bin": "./bin/svgo.js" }, "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw=="], + "tailwindcss": ["tailwindcss@4.2.1", "", {}, "sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw=="], "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], @@ -3098,14 +3530,16 @@ "test-exclude": ["test-exclude@6.0.0", "", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" } }, "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w=="], - "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], - - "thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="], - "throat": ["throat@5.0.0", "", {}, "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA=="], "tiny-async-pool": ["tiny-async-pool@1.3.0", "", { "dependencies": { "semver": "^5.5.0" } }, "sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA=="], + "tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="], + + "tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="], + + "tiny-warning": ["tiny-warning@1.0.3", "", {}, "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="], + "tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], "tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], @@ -3126,16 +3560,22 @@ "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + "toqr": ["toqr@0.1.1", "", {}, "sha512-FWAPzCIHZHnrE/5/w9MPk0kK25hSQSH2IKhYh9PyjS3SG/+IEMvlwIHbhz+oF7xl54I+ueZlVnMjyzdSwLmAwA=="], + "totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], "tr46": ["tr46@1.0.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA=="], - "truncate-utf8-bytes": ["truncate-utf8-bytes@1.0.2", "", { "dependencies": { "utf8-byte-length": "^1.0.1" } }, "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ=="], + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], + + "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], - "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="], + "truncate-utf8-bytes": ["truncate-utf8-bytes@1.0.2", "", { "dependencies": { "utf8-byte-length": "^1.0.1" } }, "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ=="], "ts-morph": ["ts-morph@21.0.1", "", { "dependencies": { "@ts-morph/common": "~0.22.0", "code-block-writer": "^12.0.0" } }, "sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg=="], + "tsconfck": ["tsconfck@3.1.6", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": { "tsconfck": "bin/tsconfck.js" } }, "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="], @@ -3172,17 +3612,25 @@ "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "ua-parser-js": ["ua-parser-js@1.0.41", "", { "bin": { "ua-parser-js": "script/cli.js" } }, "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug=="], + "uc.micro": ["uc.micro@2.1.0", "", {}, "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="], + "ufo": ["ufo@1.6.3", "", {}, "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q=="], + + "ultrahtml": ["ultrahtml@1.6.0", "", {}, "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw=="], + "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], "unconfig": ["unconfig@7.5.0", "", { "dependencies": { "@quansync/fs": "^1.0.0", "defu": "^6.1.4", "jiti": "^2.6.1", "quansync": "^1.0.0", "unconfig-core": "7.5.0" } }, "sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA=="], "unconfig-core": ["unconfig-core@7.5.0", "", { "dependencies": { "@quansync/fs": "^1.0.0", "quansync": "^1.0.0" } }, "sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w=="], + "uncrypto": ["uncrypto@0.1.3", "", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="], + "undici": ["undici@7.22.0", "", {}, "sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg=="], - "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], + "undici-types": ["undici-types@7.18.2", "", {}, "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w=="], "unicode-canonical-property-names-ecmascript": ["unicode-canonical-property-names-ecmascript@2.0.1", "", {}, "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg=="], @@ -3192,16 +3640,40 @@ "unicode-property-aliases-ecmascript": ["unicode-property-aliases-ecmascript@2.2.0", "", {}, "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ=="], + "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], + + "unifont": ["unifont@0.7.4", "", { "dependencies": { "css-tree": "^3.1.0", "ofetch": "^1.5.1", "ohash": "^2.0.11" } }, "sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg=="], + "unique-filename": ["unique-filename@4.0.0", "", { "dependencies": { "unique-slug": "^5.0.0" } }, "sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ=="], "unique-slug": ["unique-slug@5.0.0", "", { "dependencies": { "imurmurhash": "^0.1.4" } }, "sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg=="], "unique-string": ["unique-string@2.0.0", "", { "dependencies": { "crypto-random-string": "^2.0.0" } }, "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg=="], + "unist-util-find-after": ["unist-util-find-after@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ=="], + + "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], + + "unist-util-modify-children": ["unist-util-modify-children@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "array-iterate": "^2.0.0" } }, "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw=="], + + "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], + + "unist-util-remove-position": ["unist-util-remove-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q=="], + + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], + + "unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="], + + "unist-util-visit-children": ["unist-util-visit-children@3.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA=="], + + "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], + "universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], + "unstorage": ["unstorage@1.17.4", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^5.0.0", "destr": "^2.0.5", "h3": "^1.15.5", "lru-cache": "^11.2.0", "node-fetch-native": "^1.6.7", "ofetch": "^1.5.1", "ufo": "^1.6.3" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6 || ^7 || ^8", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1 || ^2 || ^3", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw=="], + "upath": ["upath@1.2.0", "", {}, "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="], "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], @@ -3236,6 +3708,12 @@ "verror": ["verror@1.10.1", "", { "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg=="], + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + + "vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="], + + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], + "vite": ["vite@7.3.1", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA=="], "vite-plugin-electron": ["vite-plugin-electron@0.29.0", "", { "peerDependencies": { "vite-plugin-electron-renderer": "*" }, "optionalPeers": ["vite-plugin-electron-renderer"] }, "sha512-HP0DI9Shg41hzt55IKYVnbrChWXHX95QtsEQfM+szQBpWjVhVGMlqRjVco6ebfQjWNr+Ga+PeoBjMIl8zMaufw=="], @@ -3266,7 +3744,9 @@ "weak-lru-cache": ["weak-lru-cache@1.2.2", "", {}, "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw=="], - "webidl-conversions": ["webidl-conversions@5.0.0", "", {}, "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA=="], + "web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="], + + "webidl-conversions": ["webidl-conversions@4.0.2", "", {}, "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="], "webpack": ["webpack@5.105.3", "", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.16.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.19.0", "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", "terser-webpack-plugin": "^5.3.16", "watchpack": "^2.5.1", "webpack-sources": "^3.3.4" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-LLBBA4oLmT7sZdHiYE/PeVuifOxYyE2uL/V+9VQP7YSYdJU7bSf7H8bZRRxW8kEPMkmVjnrXmoR3oejIdX0xbg=="], @@ -3276,7 +3756,7 @@ "whatwg-url": ["whatwg-url@7.1.0", "", { "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", "webidl-conversions": "^4.0.2" } }, "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg=="], - "whatwg-url-without-unicode": ["whatwg-url-without-unicode@8.0.0-3", "", { "dependencies": { "buffer": "^5.4.3", "punycode": "^2.1.1", "webidl-conversions": "^5.0.0" } }, "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig=="], + "whatwg-url-minimum": ["whatwg-url-minimum@0.1.1", "", {}, "sha512-u2FNVjFVFZhdjb502KzXy1gKn1mEisQRJssmSJT8CPhZdZa0AP6VCbWlXERKyGu0l09t0k50FiDiralpGhBxgA=="], "which": ["which@5.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ=="], @@ -3286,11 +3766,13 @@ "which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], + "which-pm-runs": ["which-pm-runs@1.1.0", "", {}, "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA=="], + "which-typed-array": ["which-typed-array@1.1.20", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg=="], "why-is-node-running": ["why-is-node-running@2.3.0", "", { "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" }, "bin": { "why-is-node-running": "cli.js" } }, "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w=="], - "wonka": ["wonka@6.3.5", "", {}, "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw=="], + "widest-line": ["widest-line@5.0.0", "", { "dependencies": { "string-width": "^7.0.0" } }, "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA=="], "workbox-background-sync": ["workbox-background-sync@7.4.0", "", { "dependencies": { "idb": "^7.0.1", "workbox-core": "7.4.0" } }, "sha512-8CB9OxKAgKZKyNMwfGZ1XESx89GryWTfI+V5yEj8sHjFH8MFelUwYXEyldEK6M6oKMmn807GoJFUEA1sC4XS9w=="], @@ -3340,6 +3822,8 @@ "xmlbuilder": ["xmlbuilder@15.1.1", "", {}, "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg=="], + "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="], + "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], @@ -3352,7 +3836,11 @@ "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="], - "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + "yocto-queue": ["yocto-queue@1.2.2", "", {}, "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ=="], + + "yocto-spinner": ["yocto-spinner@0.2.3", "", { "dependencies": { "yoctocolors": "^2.1.1" } }, "sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ=="], + + "yoctocolors": ["yoctocolors@2.1.2", "", {}, "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug=="], "yoctocolors-cjs": ["yoctocolors-cjs@2.1.3", "", {}, "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw=="], @@ -3360,28 +3848,38 @@ "zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], + "zod-to-json-schema": ["zod-to-json-schema@3.25.1", "", { "peerDependencies": { "zod": "^3.25 || ^4" } }, "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA=="], + + "zod-to-ts": ["zod-to-ts@1.2.0", "", { "peerDependencies": { "typescript": "^4.9.4 || ^5.0.2", "zod": "^3" } }, "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA=="], + + "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + "@angular-devkit/core/ajv-formats": ["ajv-formats@3.0.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="], "@angular-devkit/core/source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], "@angular/compiler-cli/yargs": ["yargs@18.0.0", "", { "dependencies": { "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "string-width": "^7.2.0", "y18n": "^5.0.5", "yargs-parser": "^22.0.0" } }, "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg=="], + "@astrojs/react/@vitejs/plugin-react": ["@vitejs/plugin-react@4.7.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA=="], + + "@astrojs/react/vite": ["vite@6.4.1", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g=="], + + "@astrojs/telemetry/ci-info": ["ci-info@4.4.0", "", {}, "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg=="], + "@babel/code-frame/js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], "@babel/core/convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "@babel/helper-create-regexp-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@babel/highlight/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], - - "@babel/highlight/js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "@babel/plugin-transform-runtime/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "@babel/preset-env/babel-plugin-polyfill-corejs3": ["babel-plugin-polyfill-corejs3@0.14.0", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.6", "core-js-compat": "^3.48.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ=="], @@ -3418,17 +3916,11 @@ "@electron/windows-sign/fs-extra": ["fs-extra@11.3.3", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg=="], - "@expo/cli/picomatch": ["picomatch@3.0.1", "", {}, "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag=="], - - "@expo/cli/pretty-bytes": ["pretty-bytes@5.6.0", "", {}, "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg=="], - - "@expo/cli/undici": ["undici@6.23.0", "", {}, "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g=="], - - "@expo/config/@babel/code-frame": ["@babel/code-frame@7.10.4", "", { "dependencies": { "@babel/highlight": "^7.10.4" } }, "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg=="], + "@expo/cli/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], "@expo/devcert/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - "@expo/fingerprint/p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + "@expo/fingerprint/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], "@expo/metro/metro-runtime": ["metro-runtime@0.83.3", "", { "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" } }, "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw=="], @@ -3436,7 +3928,7 @@ "@expo/metro-config/postcss": ["postcss@8.4.49", "", { "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA=="], - "@expo/prebuild-config/@react-native/normalize-colors": ["@react-native/normalize-colors@0.81.5", "", {}, "sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g=="], + "@expo/prebuild-config/@react-native/normalize-colors": ["@react-native/normalize-colors@0.83.2", "", {}, "sha512-gkZAb9LoVVzNuYzzOviH7DiPTXQoZPHuiTH2+O2+VWNtOkiznjgvqpwYAhg58a5zfRq5GXlbBdf5mzRj5+3Y5Q=="], "@inquirer/core/wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="], @@ -3472,11 +3964,9 @@ "@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], - "@react-native/babel-plugin-codegen/@react-native/codegen": ["@react-native/codegen@0.81.5", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/parser": "^7.25.3", "glob": "^7.1.1", "hermes-parser": "0.29.1", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "yargs": "^17.6.2" } }, "sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g=="], + "@react-native/babel-plugin-codegen/@react-native/codegen": ["@react-native/codegen@0.83.2", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/parser": "^7.25.3", "glob": "^7.1.1", "hermes-parser": "0.32.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "yargs": "^17.6.2" } }, "sha512-9uK6X1miCXqtL4c759l74N/XbQeneWeQVjoV7SD2CGJuW7ZefxaoYenwGPs7rMoCdtS6wuIyR3hXQ+uWEBGYXA=="], - "@react-native/codegen/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - - "@react-native/community-cli-plugin/@react-native/dev-middleware": ["@react-native/dev-middleware@0.81.6", "", { "dependencies": { "@isaacs/ttlcache": "^1.4.1", "@react-native/debugger-frontend": "0.81.6", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^4.4.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "open": "^7.0.3", "serve-static": "^1.16.2", "ws": "^6.2.3" } }, "sha512-mK2M3gJ25LtgtqxS1ZXe1vHrz8APOA79Ot/MpbLeovFgLu6YJki0kbO5MRpJagTd+HbesVYSZb/BhAsGN7QAXA=="], + "@react-native/community-cli-plugin/@react-native/dev-middleware": ["@react-native/dev-middleware@0.84.1", "", { "dependencies": { "@isaacs/ttlcache": "^1.4.1", "@react-native/debugger-frontend": "0.84.1", "@react-native/debugger-shell": "0.84.1", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^4.4.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "open": "^7.0.3", "serve-static": "^1.16.2", "ws": "^7.5.10" } }, "sha512-Z83ra+Gk6ElAhH3XRrv3vwbwCPTb04sPPlNpotxcFZb5LtRQZwT91ZQEXw3GOJCVIFp9EQ/gj8AQbVvtHKOUlQ=="], "@react-native/community-cli-plugin/metro": ["metro@0.83.4", "", { "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/core": "^7.25.2", "@babel/generator": "^7.29.1", "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", "@babel/traverse": "^7.29.0", "@babel/types": "^7.29.0", "accepts": "^2.0.0", "chalk": "^4.0.0", "ci-info": "^2.0.0", "connect": "^3.6.5", "debug": "^4.4.0", "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "hermes-parser": "0.33.3", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", "metro-babel-transformer": "0.83.4", "metro-cache": "0.83.4", "metro-cache-key": "0.83.4", "metro-config": "0.83.4", "metro-core": "0.83.4", "metro-file-map": "0.83.4", "metro-resolver": "0.83.4", "metro-runtime": "0.83.4", "metro-source-map": "0.83.4", "metro-symbolicate": "0.83.4", "metro-transform-plugins": "0.83.4", "metro-transform-worker": "0.83.4", "mime-types": "^3.0.1", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", "source-map": "^0.5.6", "throat": "^5.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" }, "bin": { "metro": "src/cli.js" } }, "sha512-eBkAtcob+YmvSLL+/rsFiK8dHNfDbQA2/pi0lnxg3E6LLtUpwDfdGJ9WBWXkj0PVeOhoWQyj9Rt7s/+6k/GXuA=="], @@ -3484,25 +3974,21 @@ "@react-native/community-cli-plugin/metro-core": ["metro-core@0.83.4", "", { "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", "metro-resolver": "0.83.4" } }, "sha512-EE+j/imryd3og/6Ly9usku9vcTLQr2o4IDax/izsr6b0HRqZK9k6f5SZkGkOPqnsACLq6csPCx+2JsgF9DkVbw=="], - "@react-native/dev-middleware/ws": ["ws@6.2.3", "", { "dependencies": { "async-limiter": "~1.0.0" } }, "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA=="], + "@react-native/dev-middleware/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], "@react-navigation/core/react-is": ["react-is@19.2.4", "", {}, "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA=="], + "@rollup/plugin-babel/@rollup/pluginutils": ["@rollup/pluginutils@3.1.0", "", { "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0" } }, "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg=="], + "@rollup/plugin-babel/rollup": ["rollup@2.80.0", "", { "optionalDependencies": { "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ=="], - "@rollup/plugin-node-resolve/@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], + "@rollup/plugin-replace/@rollup/pluginutils": ["@rollup/pluginutils@3.1.0", "", { "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0" } }, "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg=="], "@rollup/plugin-replace/magic-string": ["magic-string@0.25.9", "", { "dependencies": { "sourcemap-codec": "^1.4.8" } }, "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ=="], "@rollup/plugin-replace/rollup": ["rollup@2.80.0", "", { "optionalDependencies": { "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ=="], - "@rollup/pluginutils/@types/estree": ["@types/estree@0.0.39", "", {}, "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="], - - "@rollup/pluginutils/estree-walker": ["estree-walker@1.0.1", "", {}, "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg=="], - - "@rollup/pluginutils/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - - "@rollup/pluginutils/rollup": ["rollup@2.80.0", "", { "optionalDependencies": { "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ=="], + "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], "@surma/rollup-plugin-off-main-thread/magic-string": ["magic-string@0.25.9", "", { "dependencies": { "sourcemap-codec": "^1.4.8" } }, "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ=="], @@ -3536,12 +4022,24 @@ "app-builder-lib/ci-info": ["ci-info@4.3.1", "", {}, "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA=="], - "app-builder-lib/dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], - "app-builder-lib/fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], "app-builder-lib/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], + "astro/aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], + + "astro/ci-info": ["ci-info@4.4.0", "", {}, "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg=="], + + "astro/p-limit": ["p-limit@6.2.0", "", { "dependencies": { "yocto-queue": "^1.1.1" } }, "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA=="], + + "astro/package-manager-detector": ["package-manager-detector@1.6.0", "", {}, "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA=="], + + "astro/sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], + + "astro/vite": ["vite@6.4.1", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g=="], + + "astro/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "babel-plugin-istanbul/istanbul-lib-instrument": ["istanbul-lib-instrument@5.2.1", "", { "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" } }, "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg=="], "babel-plugin-module-resolver/glob": ["glob@9.3.5", "", { "dependencies": { "fs.realpath": "^1.0.0", "minimatch": "^8.0.2", "minipass": "^4.2.4", "path-scurry": "^1.6.1" } }, "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q=="], @@ -3554,8 +4052,18 @@ "better-opn/open": ["open@8.4.2", "", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], + "bl/buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], + "bl/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + "boxen/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "boxen/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], + + "boxen/type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="], + + "boxen/wrap-ansi": ["wrap-ansi@9.0.2", "", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww=="], + "builder-util/fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], "cacache/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], @@ -3566,6 +4074,10 @@ "chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "chrome-launcher/is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], + + "chromium-edge-launcher/is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], + "chromium-edge-launcher/mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], "chromium-edge-launcher/rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="], @@ -3582,10 +4094,14 @@ "connect/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "crc/buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], + "cross-spawn/which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], "css-tree/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="], + "dir-compare/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], "dir-compare/p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], @@ -3596,7 +4112,7 @@ "dmg-license/ajv": ["ajv@6.14.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw=="], - "dotenv-expand/dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], + "electron/@types/node": ["@types/node@24.10.15", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-BgjLoRuSr0MTI5wA6gMw9Xy0sFudAaUuvrnjgGx9wZ522fYYLA5SYJ+1Y30vTcJEG+DRCyDHx/gzQVfofYzSdg=="], "electron-builder/ci-info": ["ci-info@4.4.0", "", {}, "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg=="], @@ -3614,6 +4130,8 @@ "expo-router/semver": ["semver@7.6.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="], + "fbjs/promise": ["promise@7.3.1", "", { "dependencies": { "asap": "~2.0.3" } }, "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg=="], + "filelist/minimatch": ["minimatch@5.1.9", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw=="], "finalhandler/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], @@ -3628,6 +4146,12 @@ "global-agent/serialize-error": ["serialize-error@7.0.1", "", { "dependencies": { "type-fest": "^0.13.1" } }, "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw=="], + "h3/cookie-es": ["cookie-es@1.2.2", "", {}, "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg=="], + + "hast-util-from-html/parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + + "hast-util-raw/parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + "hosted-git-info/lru-cache": ["lru-cache@6.0.0", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="], "htmlparser2/entities": ["entities@7.0.1", "", {}, "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA=="], @@ -3636,12 +4160,16 @@ "iconv-corefoundation/node-addon-api": ["node-addon-api@1.7.2", "", {}, "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg=="], + "istanbul-reports/html-escaper": ["html-escaper@2.0.2", "", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="], + "jest-haste-map/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], "jest-haste-map/jest-worker": ["jest-worker@29.7.0", "", { "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw=="], "jest-util/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "jest-validate/camelcase": ["camelcase@6.3.0", "", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="], + "jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], "lighthouse-logger/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], @@ -3662,15 +4190,13 @@ "loose-envify/js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], - "make-fetch-happen/negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], "make-fetch-happen/proc-log": ["proc-log@5.0.0", "", {}, "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ=="], - "metro/ci-info": ["ci-info@2.0.0", "", {}, "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="], + "mdast-util-find-and-replace/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], - "metro/hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], + "metro/ci-info": ["ci-info@2.0.0", "", {}, "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="], "metro/jest-worker": ["jest-worker@29.7.0", "", { "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw=="], @@ -3680,8 +4206,6 @@ "metro/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], - "metro-babel-transformer/hermes-parser": ["hermes-parser@0.32.0", "", { "dependencies": { "hermes-estree": "0.32.0" } }, "sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw=="], - "metro-config/metro-runtime": ["metro-runtime@0.83.3", "", { "dependencies": { "@babel/runtime": "^7.25.0", "flow-enums-runtime": "^0.0.6" } }, "sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw=="], "metro-file-map/jest-worker": ["jest-worker@29.7.0", "", { "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw=="], @@ -3704,10 +4228,16 @@ "next/sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], + "node-fetch/whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + "node-gyp/proc-log": ["proc-log@5.0.0", "", {}, "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ=="], "npm-package-arg/hosted-git-info": ["hosted-git-info@7.0.2", "", { "dependencies": { "lru-cache": "^10.0.1" } }, "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w=="], + "open/is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], + + "open/is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], + "ora/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], "ora/strip-ansi": ["strip-ansi@5.2.0", "", { "dependencies": { "ansi-regex": "^4.1.0" } }, "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="], @@ -3718,8 +4248,6 @@ "parse5-html-rewriting-stream/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], - "path-scurry/lru-cache": ["lru-cache@11.2.6", "", {}, "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ=="], - "postject/commander": ["commander@9.5.0", "", {}, "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="], "prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], @@ -3728,18 +4256,14 @@ "react-devtools-core/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], - "react-dom/scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + "react-native/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], - "react-native/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "react-native-web/@react-native/normalize-colors": ["@react-native/normalize-colors@0.74.89", "", {}, "sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg=="], - "react-native/ws": ["ws@6.2.3", "", { "dependencies": { "async-limiter": "~1.0.0" } }, "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA=="], + "react-native-web/memoize-one": ["memoize-one@6.0.0", "", {}, "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="], "read-yaml-file/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], - "readable-stream/buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], - - "requireg/resolve": ["resolve@1.7.1", "", { "dependencies": { "path-parse": "^1.0.5" } }, "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw=="], - "restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], "rolldown/@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-rc.4", "", {}, "sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ=="], @@ -3762,10 +4286,12 @@ "stack-utils/escape-string-regexp": ["escape-string-regexp@2.0.0", "", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="], - "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], - "svelte-check/chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], + "svgo/commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="], + + "svgo/css-tree": ["css-tree@3.1.0", "", { "dependencies": { "mdn-data": "2.12.2", "source-map-js": "^1.0.1" } }, "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w=="], + "tar/chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], "tar-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], @@ -3790,11 +4316,13 @@ "unconfig-core/quansync": ["quansync@1.0.0", "", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="], + "unifont/css-tree": ["css-tree@3.1.0", "", { "dependencies": { "mdn-data": "2.12.2", "source-map-js": "^1.0.1" } }, "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w=="], + "vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], "webpack/es-module-lexer": ["es-module-lexer@2.0.0", "", {}, "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw=="], - "whatwg-url/webidl-conversions": ["webidl-conversions@4.0.2", "", {}, "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="], + "widest-line/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], "workbox-build/fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], @@ -3814,17 +4342,23 @@ "xml2js/xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="], + "zod-to-ts/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "@angular/compiler-cli/yargs/cliui": ["cliui@9.0.1", "", { "dependencies": { "string-width": "^7.2.0", "strip-ansi": "^7.1.0", "wrap-ansi": "^9.0.0" } }, "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w=="], "@angular/compiler-cli/yargs/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], "@angular/compiler-cli/yargs/yargs-parser": ["yargs-parser@22.0.0", "", {}, "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw=="], - "@babel/highlight/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], + "@astrojs/react/@vitejs/plugin-react/@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.27", "", {}, "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="], + + "@astrojs/react/@vitejs/plugin-react/react-refresh": ["react-refresh@0.17.0", "", {}, "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ=="], - "@babel/highlight/chalk/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], + "@astrojs/react/vite/esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], - "@babel/highlight/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], + "@astrojs/react/vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], "@develar/schema-utils/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], @@ -3854,6 +4388,8 @@ "@electron/windows-sign/fs-extra/universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + "@expo/fingerprint/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], + "@expo/metro/metro-source-map/ob1": ["ob1@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA=="], "@inquirer/core/wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], @@ -3870,11 +4406,11 @@ "@react-native/babel-plugin-codegen/@react-native/codegen/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - "@react-native/codegen/glob/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], + "@react-native/community-cli-plugin/@react-native/dev-middleware/@react-native/debugger-frontend": ["@react-native/debugger-frontend@0.84.1", "", {}, "sha512-rUU/Pyh3R5zT0WkVgB+yA6VwOp7HM5Hz4NYE97ajFS07OUIcv8JzBL3MXVdSSjLfldfqOuPEuKUaZcAOwPgabw=="], - "@react-native/community-cli-plugin/@react-native/dev-middleware/@react-native/debugger-frontend": ["@react-native/debugger-frontend@0.81.6", "", {}, "sha512-aGw28yzbtm25GQuuxNeVAT72tLuGoH0yh79uYOIZkvjI+5x1NjZyPrgiLZ2LlZi5dJdxfbz30p1zUcHvcAzEZw=="], + "@react-native/community-cli-plugin/@react-native/dev-middleware/@react-native/debugger-shell": ["@react-native/debugger-shell@0.84.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "debug": "^4.4.0", "fb-dotslash": "0.5.8" } }, "sha512-LIGhh4q4ette3yW5OzmukNMYwmINYrRGDZqKyTYc/VZyNpblZPw72coXVHXdfpPT6+YlxHqXzn3UjFZpNODGCQ=="], - "@react-native/community-cli-plugin/@react-native/dev-middleware/ws": ["ws@6.2.3", "", { "dependencies": { "async-limiter": "~1.0.0" } }, "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA=="], + "@react-native/community-cli-plugin/@react-native/dev-middleware/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], "@react-native/community-cli-plugin/metro/accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="], @@ -3908,13 +4444,21 @@ "@react-native/community-cli-plugin/metro-core/metro-resolver": ["metro-resolver@0.83.4", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-drWdylyNqgdaJufz0GjU/ielv2hjcc6piegjjJwKn8l7A/72aLQpUpOHtP+GMR+kOqhSsD4MchhJ6PSANvlSEw=="], + "@rollup/plugin-babel/@rollup/pluginutils/@types/estree": ["@types/estree@0.0.39", "", {}, "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="], + + "@rollup/plugin-babel/@rollup/pluginutils/estree-walker": ["estree-walker@1.0.1", "", {}, "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg=="], + + "@rollup/plugin-babel/@rollup/pluginutils/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "@rollup/plugin-babel/rollup/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "@rollup/plugin-node-resolve/@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + "@rollup/plugin-replace/@rollup/pluginutils/@types/estree": ["@types/estree@0.0.39", "", {}, "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="], - "@rollup/plugin-replace/rollup/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + "@rollup/plugin-replace/@rollup/pluginutils/estree-walker": ["estree-walker@1.0.1", "", {}, "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg=="], - "@rollup/pluginutils/rollup/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + "@rollup/plugin-replace/@rollup/pluginutils/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "@rollup/plugin-replace/rollup/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], "app-builder-lib/@electron/get/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], @@ -3926,6 +4470,48 @@ "app-builder-lib/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], + "astro/sharp/@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w=="], + + "astro/sharp/@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.2.4" }, "os": "darwin", "cpu": "x64" }, "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw=="], + + "astro/sharp/@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g=="], + + "astro/sharp/@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg=="], + + "astro/sharp/@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A=="], + + "astro/sharp/@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw=="], + + "astro/sharp/@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.2.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ=="], + + "astro/sharp/@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw=="], + + "astro/sharp/@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw=="], + + "astro/sharp/@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg=="], + + "astro/sharp/@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.2.4" }, "os": "linux", "cpu": "arm" }, "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw=="], + + "astro/sharp/@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg=="], + + "astro/sharp/@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.2.4" }, "os": "linux", "cpu": "s390x" }, "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg=="], + + "astro/sharp/@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ=="], + + "astro/sharp/@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg=="], + + "astro/sharp/@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q=="], + + "astro/sharp/@img/sharp-wasm32": ["@img/sharp-wasm32@0.34.5", "", { "dependencies": { "@emnapi/runtime": "^1.7.0" }, "cpu": "none" }, "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw=="], + + "astro/sharp/@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.34.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg=="], + + "astro/sharp/@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="], + + "astro/vite/esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], + + "astro/vite/fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + "babel-plugin-istanbul/istanbul-lib-instrument/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "babel-plugin-module-resolver/glob/minimatch": ["minimatch@8.0.7", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg=="], @@ -3934,6 +4520,18 @@ "babel-plugin-module-resolver/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + "better-opn/open/is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], + + "better-opn/open/is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], + + "boxen/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + + "boxen/string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], + + "boxen/wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], + + "boxen/wrap-ansi/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], + "builder-util/fs-extra/jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], "builder-util/fs-extra/universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], @@ -3942,6 +4540,10 @@ "cacache/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + "chrome-launcher/is-wsl/is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], + + "chromium-edge-launcher/is-wsl/is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], + "chromium-edge-launcher/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], "cli-truncate/string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], @@ -3952,8 +4554,12 @@ "cross-spawn/which/isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + "csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="], + "dir-compare/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "dir-compare/p-limit/yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + "dmg-builder/fs-extra/jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], "dmg-builder/fs-extra/universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], @@ -3968,12 +4574,18 @@ "electron-publish/fs-extra/universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + "electron/@types/node/undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], + "finalhandler/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], "glob/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], "global-agent/serialize-error/type-fest": ["type-fest@0.13.1", "", {}, "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg=="], + "hast-util-from-html/parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + + "hast-util-raw/parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + "hosted-git-info/lru-cache/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], "iconv-corefoundation/cli-truncate/slice-ansi": ["slice-ansi@3.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ=="], @@ -4002,16 +4614,12 @@ "log-update/wrap-ansi/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], - "metro-babel-transformer/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], - "metro-file-map/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], "metro-symbolicate/metro-source-map/ob1": ["ob1@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA=="], "metro-transform-worker/metro-source-map/ob1": ["ob1@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA=="], - "metro/hermes-parser/hermes-estree": ["hermes-estree@0.32.0", "", {}, "sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ=="], - "metro/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], "metro/metro-source-map/ob1": ["ob1@0.83.3", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA=="], @@ -4060,6 +4668,10 @@ "next/sharp/@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="], + "node-fetch/whatwg-url/tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + + "node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + "npm-package-arg/hosted-git-info/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], "ora/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], @@ -4070,8 +4682,6 @@ "ora/strip-ansi/ansi-regex": ["ansi-regex@4.1.1", "", {}, "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="], - "react-native/glob/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], - "read-yaml-file/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], "sass/chokidar/readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], @@ -4118,6 +4728,8 @@ "svelte-check/chokidar/readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], + "svgo/css-tree/mdn-data": ["mdn-data@2.12.2", "", {}, "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA=="], + "temp-file/fs-extra/jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], "temp-file/fs-extra/universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], @@ -4126,6 +4738,12 @@ "test-exclude/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "unifont/css-tree/mdn-data": ["mdn-data@2.12.2", "", {}, "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA=="], + + "widest-line/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], + + "widest-line/string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], + "workbox-build/fs-extra/jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], "workbox-build/fs-extra/universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], @@ -4142,12 +4760,62 @@ "@angular/compiler-cli/yargs/string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], - "@babel/highlight/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], + "@astrojs/react/vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], - "@babel/highlight/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], + "@astrojs/react/vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], + + "@astrojs/react/vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], + + "@astrojs/react/vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], + + "@astrojs/react/vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], + + "@astrojs/react/vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], + + "@astrojs/react/vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], + + "@astrojs/react/vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], + + "@astrojs/react/vite/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], + + "@astrojs/react/vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], + + "@astrojs/react/vite/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], + + "@astrojs/react/vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], + + "@astrojs/react/vite/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], + + "@astrojs/react/vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + + "@astrojs/react/vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + + "@astrojs/react/vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + + "@astrojs/react/vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], "@electron/rebuild/ora/cli-cursor/restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], + "@expo/fingerprint/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], "@istanbuljs/load-nyc-config/js-yaml/argparse/sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], @@ -4156,8 +4824,6 @@ "@react-native/babel-plugin-codegen/@react-native/codegen/glob/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], - "@react-native/codegen/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "@react-native/community-cli-plugin/metro/accepts/negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], "@react-native/community-cli-plugin/metro/hermes-parser/hermes-estree": ["hermes-estree@0.33.3", "", {}, "sha512-6kzYZHCk8Fy1Uc+t3HGYyJn3OL4aeqKLTyina4UFtWl8I0kSL7OmKThaiX+Uh2f8nGw3mo4Ifxg0M5Zk3/Oeqg=="], @@ -4170,10 +4836,66 @@ "app-builder-lib/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + "astro/vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], + + "astro/vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], + + "astro/vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], + + "astro/vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], + + "astro/vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], + + "astro/vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], + + "astro/vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], + + "astro/vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], + + "astro/vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], + + "astro/vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], + + "astro/vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], + + "astro/vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], + + "astro/vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], + + "astro/vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], + + "astro/vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], + + "astro/vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], + + "astro/vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], + + "astro/vite/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], + + "astro/vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], + + "astro/vite/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], + + "astro/vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], + + "astro/vite/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], + + "astro/vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + + "astro/vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + + "astro/vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + + "astro/vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], + "babel-plugin-module-resolver/glob/path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], "babel-plugin-module-resolver/glob/path-scurry/minipass": ["minipass@7.1.3", "", {}, "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="], + "boxen/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + + "boxen/wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "cacache/glob/jackspeak/@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], "chromium-edge-launcher/rimraf/glob/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], @@ -4200,12 +4922,12 @@ "ora/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - "react-native/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "read-yaml-file/js-yaml/argparse/sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], "temp/rimraf/glob/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], + "widest-line/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], + "workbox-build/glob/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], "@angular/compiler-cli/yargs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], @@ -4214,8 +4936,6 @@ "@angular/compiler-cli/yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - "@babel/highlight/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], - "@electron/rebuild/ora/cli-cursor/restore-cursor/onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], "@electron/rebuild/ora/cli-cursor/restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], diff --git a/examples/astro/.gitignore b/examples/astro/.gitignore new file mode 100644 index 000000000..3ed00e19d --- /dev/null +++ b/examples/astro/.gitignore @@ -0,0 +1,3 @@ +.astro/ +dist/ +node_modules/ diff --git a/examples/astro/astro.config.mjs b/examples/astro/astro.config.mjs new file mode 100644 index 000000000..b7ddafcd7 --- /dev/null +++ b/examples/astro/astro.config.mjs @@ -0,0 +1,6 @@ +import react from "@astrojs/react"; +import { defineConfig } from "astro/config"; + +export default defineConfig({ + integrations: [react()], +}); diff --git a/examples/astro/package.json b/examples/astro/package.json new file mode 100644 index 000000000..afd957532 --- /dev/null +++ b/examples/astro/package.json @@ -0,0 +1,24 @@ +{ + "name": "@example/astro", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview", + "check": "astro check" + }, + "dependencies": { + "@astrojs/react": "^4.4.2", + "@evolu/astro": "workspace:*", + "astro": "^5.14.5", + "react": "19.2.4", + "react-dom": "19.2.4" + }, + "devDependencies": { + "@types/react": "~19.2.14", + "@types/react-dom": "~19.2.3", + "typescript": "^5.9.3" + } +} diff --git a/examples/astro/src/components/TodoApp.tsx b/examples/astro/src/components/TodoApp.tsx new file mode 100644 index 000000000..ebfc59a5f --- /dev/null +++ b/examples/astro/src/components/TodoApp.tsx @@ -0,0 +1,173 @@ +import { assertAstroClientRuntime } from "@evolu/astro"; +import { type FC, useEffect, useState } from "react"; + +interface Todo { + readonly id: number; + readonly title: string; + readonly done: boolean; +} + +const useOnlineStatus = (): boolean => { + const [isOnline, setIsOnline] = useState(() => + typeof navigator === "undefined" ? true : navigator.onLine, + ); + + useEffect(() => { + if (typeof window === "undefined") return; + + const onOnline = () => setIsOnline(true); + const onOffline = () => setIsOnline(false); + + window.addEventListener("online", onOnline); + window.addEventListener("offline", onOffline); + + return () => { + window.removeEventListener("online", onOnline); + window.removeEventListener("offline", onOffline); + }; + }, []); + + return isOnline; +}; + +export const TodoApp: FC = () => { + assertAstroClientRuntime(); + + const [todos, setTodos] = useState>([]); + const [title, setTitle] = useState(""); + const isOnline = useOnlineStatus(); + + const addTodo = () => { + const nextTitle = title.trim(); + if (nextTitle === "") return; + + setTodos((current) => [ + ...current, + { id: Date.now(), title: nextTitle, done: false }, + ]); + setTitle(""); + }; + + const toggleTodo = (id: number) => { + setTodos((current) => + current.map((todo) => + todo.id === id ? { ...todo, done: !todo.done } : todo, + ), + ); + }; + + const removeTodo = (id: number) => { + setTodos((current) => current.filter((todo) => todo.id !== id)); + }; + + return ( +