stellar-drive 1.2.3 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -44
- package/dist/bin/commands.js +0 -0
- package/dist/bin/install-pwa.js +1 -1
- package/dist/config.d.ts +0 -13
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -23
- package/dist/config.js.map +1 -1
- package/dist/conflicts.js +1 -1
- package/dist/database.d.ts +1 -1
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +7 -25
- package/dist/database.js.map +1 -1
- package/dist/diagnostics.d.ts +0 -75
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +2 -114
- package/dist/diagnostics.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +1 -21
- package/dist/engine.js.map +1 -1
- package/dist/entries/types.d.ts +0 -1
- package/dist/entries/types.d.ts.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +1 -5
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +0 -54
- package/dist/schema.js.map +1 -1
- package/dist/sw/build/vite-plugin.d.ts +0 -6
- package/dist/sw/build/vite-plugin.d.ts.map +1 -1
- package/dist/sw/build/vite-plugin.js +0 -3
- package/dist/sw/build/vite-plugin.js.map +1 -1
- package/package.json +2 -7
- package/dist/crdt/awareness.d.ts +0 -128
- package/dist/crdt/awareness.d.ts.map +0 -1
- package/dist/crdt/awareness.js +0 -284
- package/dist/crdt/awareness.js.map +0 -1
- package/dist/crdt/channel.d.ts +0 -167
- package/dist/crdt/channel.d.ts.map +0 -1
- package/dist/crdt/channel.js +0 -546
- package/dist/crdt/channel.js.map +0 -1
- package/dist/crdt/config.d.ts +0 -58
- package/dist/crdt/config.d.ts.map +0 -1
- package/dist/crdt/config.js +0 -123
- package/dist/crdt/config.js.map +0 -1
- package/dist/crdt/helpers.d.ts +0 -104
- package/dist/crdt/helpers.d.ts.map +0 -1
- package/dist/crdt/helpers.js +0 -116
- package/dist/crdt/helpers.js.map +0 -1
- package/dist/crdt/offline.d.ts +0 -58
- package/dist/crdt/offline.d.ts.map +0 -1
- package/dist/crdt/offline.js +0 -130
- package/dist/crdt/offline.js.map +0 -1
- package/dist/crdt/persistence.d.ts +0 -74
- package/dist/crdt/persistence.d.ts.map +0 -1
- package/dist/crdt/persistence.js +0 -207
- package/dist/crdt/persistence.js.map +0 -1
- package/dist/crdt/provider.d.ts +0 -111
- package/dist/crdt/provider.d.ts.map +0 -1
- package/dist/crdt/provider.js +0 -615
- package/dist/crdt/provider.js.map +0 -1
- package/dist/crdt/store.d.ts +0 -111
- package/dist/crdt/store.d.ts.map +0 -1
- package/dist/crdt/store.js +0 -158
- package/dist/crdt/store.js.map +0 -1
- package/dist/crdt/types.d.ts +0 -281
- package/dist/crdt/types.d.ts.map +0 -1
- package/dist/crdt/types.js +0 -26
- package/dist/crdt/types.js.map +0 -1
- package/dist/entries/crdt.d.ts +0 -32
- package/dist/entries/crdt.d.ts.map +0 -1
- package/dist/entries/crdt.js +0 -52
- package/dist/entries/crdt.js.map +0 -1
package/README.md
CHANGED
|
@@ -42,7 +42,6 @@ Building offline-first sync is notoriously difficult. stellar-drive handles the
|
|
|
42
42
|
- **Realtime subscriptions** -- Supabase Realtime WebSocket push with echo suppression and deduplication against polling. Changes appear instantly across tabs and devices.
|
|
43
43
|
- **Tombstone management** -- Soft deletes with configurable garbage collection. Deleted records sync correctly before being permanently purged.
|
|
44
44
|
- **Egress optimization** -- Column-level selects, operation coalescing, push-only mode when realtime is healthy, and cursor-based pulls minimize bandwidth.
|
|
45
|
-
- **CRDT collaborative editing** -- Optional Yjs-based subsystem for real-time multi-user editing via Supabase Broadcast. Zero database writes per keystroke.
|
|
46
45
|
- **Demo mode** -- Sandboxed database, zero Supabase connections, mock auth. Ship instant onboarding experiences without backend setup.
|
|
47
46
|
- **Reactive stores** -- Svelte-compatible stores for sync status, auth state, network state, and remote changes. Works with Svelte 5 runes.
|
|
48
47
|
- **Store factories** -- `createCollectionStore` and `createDetailStore` for boilerplate-free reactive data layers with auto-refresh on sync.
|
|
@@ -58,7 +57,7 @@ Building offline-first sync is notoriously difficult. stellar-drive handles the
|
|
|
58
57
|
### Use cases
|
|
59
58
|
|
|
60
59
|
- Productivity and task management apps
|
|
61
|
-
- Notion-like block editors
|
|
60
|
+
- Notion-like block editors
|
|
62
61
|
- Personal finance trackers (numeric merge across devices)
|
|
63
62
|
- File and asset management UIs (fractional ordering for drag-and-drop)
|
|
64
63
|
- Habit trackers and daily planners
|
|
@@ -113,9 +112,6 @@ initEngine({
|
|
|
113
112
|
profileToMetadata: (p) => ({ first_name: p.firstName }),
|
|
114
113
|
},
|
|
115
114
|
|
|
116
|
-
// Optional CRDT collaborative editing
|
|
117
|
-
crdt: true, // or { persistIntervalMs: 60000, maxOfflineDocuments: 50 }
|
|
118
|
-
|
|
119
115
|
// Optional demo mode
|
|
120
116
|
demo: {
|
|
121
117
|
seedData: async (db) => {
|
|
@@ -269,41 +265,7 @@ import { remoteChangeAnimation, trackEditing } from 'stellar-drive/actions';
|
|
|
269
265
|
// Signals the engine a field is being actively edited (suppresses incoming overwrites).
|
|
270
266
|
```
|
|
271
267
|
|
|
272
|
-
### 7.
|
|
273
|
-
|
|
274
|
-
```ts
|
|
275
|
-
import {
|
|
276
|
-
openDocument,
|
|
277
|
-
closeDocument,
|
|
278
|
-
createSharedText,
|
|
279
|
-
createBlockDocument,
|
|
280
|
-
updateCursor,
|
|
281
|
-
getCollaborators,
|
|
282
|
-
onCollaboratorsChange,
|
|
283
|
-
} from 'stellar-drive/crdt';
|
|
284
|
-
|
|
285
|
-
// Open a collaborative document (uses Supabase Broadcast -- zero DB writes per keystroke)
|
|
286
|
-
const provider = await openDocument('doc-1', 'page-1', {
|
|
287
|
-
offlineEnabled: true,
|
|
288
|
-
initialPresence: { name: 'Alice' },
|
|
289
|
-
});
|
|
290
|
-
|
|
291
|
-
// Use with any Yjs-compatible editor (Tiptap, BlockNote, etc.)
|
|
292
|
-
const { content, meta } = createBlockDocument(provider.doc);
|
|
293
|
-
meta.set('title', 'My Page');
|
|
294
|
-
|
|
295
|
-
// Shared text for simpler use cases
|
|
296
|
-
const text = createSharedText(provider.doc);
|
|
297
|
-
|
|
298
|
-
// Track collaborator cursors and presence
|
|
299
|
-
const unsub = onCollaboratorsChange('doc-1', (collaborators) => {
|
|
300
|
-
// Update avatar list, cursor positions, etc.
|
|
301
|
-
});
|
|
302
|
-
|
|
303
|
-
await closeDocument('doc-1');
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
### 8. Demo mode
|
|
268
|
+
### 7. Demo mode
|
|
307
269
|
|
|
308
270
|
```ts
|
|
309
271
|
import { setDemoMode, isDemoMode } from 'stellar-drive';
|
|
@@ -322,7 +284,7 @@ setDemoMode(true);
|
|
|
322
284
|
window.location.href = '/';
|
|
323
285
|
```
|
|
324
286
|
|
|
325
|
-
###
|
|
287
|
+
### 8. SQL and TypeScript generation
|
|
326
288
|
|
|
327
289
|
```ts
|
|
328
290
|
import { generateSupabaseSQL, generateTypeScript } from 'stellar-drive/utils';
|
|
@@ -337,7 +299,7 @@ const sql = generateSupabaseSQL(config.schema!, { prefix: config.prefix });
|
|
|
337
299
|
const ts = generateTypeScript(config.schema!);
|
|
338
300
|
```
|
|
339
301
|
|
|
340
|
-
###
|
|
302
|
+
### 9. Diagnostics and debug
|
|
341
303
|
|
|
342
304
|
```ts
|
|
343
305
|
import { setDebugMode, isDebugMode } from 'stellar-drive/utils';
|
|
@@ -488,7 +450,6 @@ Import only what you need:
|
|
|
488
450
|
| `stellar-drive/config` | Runtime config management (`initConfig`, `getConfig`, `setConfig`, `getDexieTableFor`) |
|
|
489
451
|
| `stellar-drive/vite` | Vite plugin (`stellarPWA`) for service worker builds, asset manifests, and schema auto-generation |
|
|
490
452
|
| `stellar-drive/kit` | SvelteKit helpers: server route factories, layout loaders, email confirmation, SW lifecycle, auth hydration |
|
|
491
|
-
| `stellar-drive/crdt` | CRDT collaborative editing: document lifecycle, shared types, presence/cursors, offline persistence |
|
|
492
453
|
| `stellar-drive/components/*` | Svelte components: `SyncStatus`, `DeferredChangesBanner`, `DemoBanner` |
|
|
493
454
|
|
|
494
455
|
### Key categories at a glance
|
|
@@ -553,7 +514,6 @@ Given `prefix: 'stellar'` and schema key `goals`, the Supabase table becomes `st
|
|
|
553
514
|
**Shared across apps (unprefixed, per-app rows):**
|
|
554
515
|
- `auth.users` (Supabase Auth) -- same user account works in every app
|
|
555
516
|
- `trusted_devices` -- single table with an `app_prefix` column (default `'stellar'`). The unique constraint is `(user_id, device_id, app_prefix)`, so trusting a device in one app does not grant trust in another. All device verification queries filter by prefix automatically.
|
|
556
|
-
- `crdt_documents` (CRDT collaborative editing)
|
|
557
517
|
- Helper functions: `set_user_id()`, `update_updated_at_column()`
|
|
558
518
|
|
|
559
519
|
**Isolated per app (prefixed tables):**
|
package/dist/bin/commands.js
CHANGED
|
File without changes
|
package/dist/bin/install-pwa.js
CHANGED
package/dist/config.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ import type { SupabaseClient } from '@supabase/supabase-js';
|
|
|
23
23
|
import type { Session } from '@supabase/supabase-js';
|
|
24
24
|
import type Dexie from 'dexie';
|
|
25
25
|
import type { SingleUserGateType, SchemaDefinition, AuthConfig } from './types';
|
|
26
|
-
import type { CRDTConfig } from './crdt/types';
|
|
27
26
|
import type { DemoConfig } from './demo';
|
|
28
27
|
import { type DatabaseConfig } from './database';
|
|
29
28
|
/**
|
|
@@ -132,18 +131,6 @@ export interface SyncEngineConfig {
|
|
|
132
131
|
* @see {@link DemoConfig} for the configuration shape
|
|
133
132
|
*/
|
|
134
133
|
demo?: DemoConfig;
|
|
135
|
-
/**
|
|
136
|
-
* CRDT collaborative editing configuration.
|
|
137
|
-
*
|
|
138
|
-
* When provided, enables the CRDT subsystem — creates IndexedDB tables for
|
|
139
|
-
* CRDT document storage and allows use of the `stellar-drive/crdt` API.
|
|
140
|
-
* When omitted, no CRDT tables are created and CRDT imports will throw.
|
|
141
|
-
*
|
|
142
|
-
* Pass `true` as shorthand for `{}` (all defaults).
|
|
143
|
-
*
|
|
144
|
-
* @see {@link CRDTConfig} for available configuration options
|
|
145
|
-
*/
|
|
146
|
-
crdt?: CRDTConfig | true;
|
|
147
134
|
}
|
|
148
135
|
/**
|
|
149
136
|
* Per-table sync configuration.
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAqB,UAAU,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -25,7 +25,6 @@ import { _setClientPrefix } from './supabase/client';
|
|
|
25
25
|
import { _setConfigPrefix } from './runtime/runtimeConfig';
|
|
26
26
|
import { registerDemoConfig, _setDemoPrefix, isDemoMode } from './demo';
|
|
27
27
|
import { createDatabase, SYSTEM_INDEXES, computeSchemaVersion } from './database';
|
|
28
|
-
import { _initCRDT } from './crdt/config';
|
|
29
28
|
import { snakeToCamel } from './utils';
|
|
30
29
|
// =============================================================================
|
|
31
30
|
// Module State
|
|
@@ -39,10 +38,6 @@ export function initEngine(config) {
|
|
|
39
38
|
if (_engineInitialized)
|
|
40
39
|
return;
|
|
41
40
|
_engineInitialized = true;
|
|
42
|
-
/* Normalize `crdt: true` shorthand to `crdt: {}`. */
|
|
43
|
-
if (config.crdt === true) {
|
|
44
|
-
config.crdt = {};
|
|
45
|
-
}
|
|
46
41
|
/* Normalize flat auth config to the nested structure used internally. */
|
|
47
42
|
if (config.auth) {
|
|
48
43
|
config.auth = normalizeAuthConfig(config.auth);
|
|
@@ -57,7 +52,7 @@ export function initEngine(config) {
|
|
|
57
52
|
'Use either the schema-driven API or the manual API, not both.');
|
|
58
53
|
}
|
|
59
54
|
config.tables = generateTablesFromSchema(config.schema, config.prefix);
|
|
60
|
-
config.database = generateDatabaseFromSchema(config.schema, config.prefix, config.databaseName
|
|
55
|
+
config.database = generateDatabaseFromSchema(config.schema, config.prefix, config.databaseName);
|
|
61
56
|
}
|
|
62
57
|
/* Validate that tables are configured (either manually or via schema).
|
|
63
58
|
* Schema-driven mode may have 0 entity tables (app uses only auth/system features),
|
|
@@ -83,18 +78,13 @@ export function initEngine(config) {
|
|
|
83
78
|
if (config.demo) {
|
|
84
79
|
registerDemoConfig(config.demo);
|
|
85
80
|
}
|
|
86
|
-
/* Initialize CRDT subsystem if configured. */
|
|
87
|
-
if (config.crdt) {
|
|
88
|
-
_initCRDT(config.crdt, config.prefix);
|
|
89
|
-
}
|
|
90
81
|
/* If demo mode is active, switch to a separate sandboxed database. */
|
|
91
82
|
if (isDemoMode() && config.database) {
|
|
92
83
|
config.database = { ...config.database, name: config.database.name + '_demo' };
|
|
93
84
|
}
|
|
94
|
-
/* Create the Dexie database and store the instance on config for engine.ts access.
|
|
95
|
-
* Pass crdtEnabled flag so CRDT IndexedDB tables are conditionally included. */
|
|
85
|
+
/* Create the Dexie database and store the instance on config for engine.ts access. */
|
|
96
86
|
if (config.database) {
|
|
97
|
-
_dbReady = createDatabase(config.database
|
|
87
|
+
_dbReady = createDatabase(config.database).then((db) => {
|
|
98
88
|
config.db = db;
|
|
99
89
|
});
|
|
100
90
|
}
|
|
@@ -294,22 +284,19 @@ function generateTablesFromSchema(schema, prefix) {
|
|
|
294
284
|
* @param schema - The declarative schema definition.
|
|
295
285
|
* @param prefix - Application prefix for database naming and versioning.
|
|
296
286
|
* @param databaseName - Optional override for the database name.
|
|
297
|
-
* @param crdtEnabled - Whether the CRDT subsystem is enabled.
|
|
298
287
|
* @returns A `DatabaseConfig` ready for `createDatabase()`.
|
|
299
288
|
*
|
|
300
289
|
* @example
|
|
301
290
|
* generateDatabaseFromSchema(
|
|
302
291
|
* { goals: 'goal_list_id, order' },
|
|
303
|
-
* 'stellar'
|
|
304
|
-
* undefined,
|
|
305
|
-
* false
|
|
292
|
+
* 'stellar'
|
|
306
293
|
* );
|
|
307
294
|
* // → {
|
|
308
295
|
* // name: 'stellarDB',
|
|
309
296
|
* // versions: [{ version: 1, stores: { goals: 'id, user_id, ..., goal_list_id, order' } }]
|
|
310
297
|
* // }
|
|
311
298
|
*/
|
|
312
|
-
function generateDatabaseFromSchema(schema, prefix, databaseName
|
|
299
|
+
function generateDatabaseFromSchema(schema, prefix, databaseName) {
|
|
313
300
|
const stores = {};
|
|
314
301
|
for (const [tableName, definition] of Object.entries(schema)) {
|
|
315
302
|
const config = typeof definition === 'string' ? { indexes: definition } : definition;
|
|
@@ -319,11 +306,8 @@ function generateDatabaseFromSchema(schema, prefix, databaseName, crdtEnabled =
|
|
|
319
306
|
const appIndexes = (config.indexes || '').trim();
|
|
320
307
|
stores[dexieName] = appIndexes ? `${SYSTEM_INDEXES}, ${appIndexes}` : SYSTEM_INDEXES;
|
|
321
308
|
}
|
|
322
|
-
/* Compute auto-version based on the merged store schema.
|
|
323
|
-
|
|
324
|
-
* by buildDexie() — if CRDT is toggled, the version should bump. */
|
|
325
|
-
const hashInput = crdtEnabled ? { ...stores, __crdt: 'enabled' } : stores;
|
|
326
|
-
const result = computeSchemaVersion(prefix, hashInput);
|
|
309
|
+
/* Compute auto-version based on the merged store schema. */
|
|
310
|
+
const result = computeSchemaVersion(prefix, stores);
|
|
327
311
|
/*
|
|
328
312
|
* Build the versions array. When an upgrade is detected, declare BOTH
|
|
329
313
|
* the previous version and the current version so Dexie has a proper
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,EACL,cAAc,EACd,cAAc,EACd,oBAAoB,EAErB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA+JvC,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,kEAAkE;AAClE,IAAI,YAAY,GAA4B,IAAI,CAAC;AAEjD,4EAA4E;AAC5E,IAAI,QAAQ,GAAyB,IAAI,CAAC;AAkC1C,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B,MAAM,UAAU,UAAU,CAAC,MAAuB;IAChD,IAAI,kBAAkB;QAAE,OAAO;IAC/B,kBAAkB,GAAG,IAAI,CAAC;IAE1B,yEAAyE;IACzE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,2EAA2E;gBACzE,+DAA+D,CAClE,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvE,MAAM,CAAC,QAAQ,GAAG,0BAA0B,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAClG,CAAC;IAED;;2EAEuE;IACvE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IACD,8EAA8E;IAC9E,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,wEAAwE;IACxE,YAAY,GAAG,MAA0B,CAAC;IAE1C,0EAA0E;IAC1E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/B,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,uCAAuC;IACvC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,sEAAsE;IACtE,IAAI,UAAU,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;IACjF,CAAC;IAED,sFAAsF;IACtF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACpD,MAAwB,CAAC,EAAE,GAAG,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IACjD,OAAO,YAAY,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IACzF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,6BAA6B,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAED,gFAAgF;AAChF,8CAA8C;AAC9C,gFAAgF;AAEhF;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,MAAc,EAAE,SAAiB;IACxD,OAAO,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,CACjE,CAAC;IACF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;;;;;;;;;;GAUG;AACH;;;GAGG;AACH,SAAS,kBAAkB,CAAC,MAAyB;IACnD,OAAO,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC;AAC9C,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAyB;IACvD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3E,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC1F;;gFAE4E;IAC5E,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC;QACnD,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,YAAsB,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAwB,EAAE,MAAc;IACxE,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,sDAAsD;QACtD,MAAM,MAAM,GACV,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAExE,MAAM,WAAW,GAAgB;YAC/B,YAAY,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;YAChD,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,IAAI,GAAG;YAChE,eAAe,EAAE,kBAAkB,CAAC,MAAM,CAAC;gBACzC,CAAC,CAAE,MAAM,CAAC,SAAoB,IAAI,SAAS;gBAC3C,CAAC,CAAC,SAAS;SACd,CAAC;QAEF,IAAI,MAAM,CAAC,SAAS;YAAE,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;QACrD,IAAI,MAAM,CAAC,mBAAmB;YAAE,WAAW,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAC7F,IAAI,MAAM,CAAC,kBAAkB;YAAE,WAAW,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAC1F,IAAI,MAAM,CAAC,cAAc;YAAE,WAAW,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAE9E,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,0BAA0B,CACjC,MAAwB,EACxB,MAAc,EACd,YAAqB;IAErB,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GACV,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAExE,kFAAkF;QAClF,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;QAE9D,qDAAqD;QACrD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,cAAc,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;IACvF,CAAC;IAED,4DAA4D;IAC5D,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpD;;;;;;;;;;OAUG;IACH,MAAM,QAAQ,GAA+B,EAAE,CAAC;IAEhD,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEnD,OAAO;QACL,IAAI,EAAE,YAAY,IAAI,GAAG,MAAM,IAAI;QACnC,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,mBAAmB,CAAC,IAA6B;IACxD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,6DAA6D;IAC7D,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2DAA2D;IAC3D,MAAM,IAAI,GAAG,IAAkB,CAAC;IAChC,MAAM,MAAM,GAA6B,EAAE,CAAC;IAE5C,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IACvC,MAAkC,CAAC,UAAU,GAAG;QAC/C,QAAQ;QACR,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC;IAEF,yDAAyD;IACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9F,MAAkC,CAAC,iBAAiB,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAEvF,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,MAAkC,CAAC,kBAAkB,GAAG;QACvD,OAAO,EAAE,kBAAkB;QAC3B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,EAAE;KAChD,CAAC;IAEF,kDAAkD;IACjD,MAAkC,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,IAAI,UAAU,CAAC;IAChG,MAAkC,CAAC,iBAAiB;QACnD,IAAI,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,IAAI,IAAI,CAAC,2BAA2B,KAAK,SAAS,EAAE,CAAC;QAClD,MAAkC,CAAC,2BAA2B;YAC7D,IAAI,CAAC,2BAA2B,CAAC;IACrC,CAAC;IACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,MAAkC,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAC/E,CAAC;IACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAkC,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACjF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/conflicts.js
CHANGED
|
@@ -385,7 +385,7 @@ export async function resolveConflicts(entityType, entityId, local, remote, pend
|
|
|
385
385
|
|
|
386
386
|
**Why last-write-wins?** It's the simplest strategy that produces
|
|
387
387
|
predictable, consistent results across all devices. More sophisticated
|
|
388
|
-
strategies (operational transform,
|
|
388
|
+
strategies (operational transform, etc.) add significant complexity
|
|
389
389
|
and are overkill for the entity-level sync this engine performs. */
|
|
390
390
|
resolution = resolveByTimestamp(field, local, remote, localUpdatedAt, remoteUpdatedAt, deviceId);
|
|
391
391
|
mergedEntity[field] = resolution.resolvedValue;
|
package/dist/database.d.ts
CHANGED
|
@@ -72,7 +72,7 @@ export declare const SYSTEM_INDEXES = "id, user_id, created_at, updated_at, dele
|
|
|
72
72
|
* @param config - Database name and version declarations.
|
|
73
73
|
* @returns The opened Dexie instance, ready for use.
|
|
74
74
|
*/
|
|
75
|
-
export declare function createDatabase(config: DatabaseConfig
|
|
75
|
+
export declare function createDatabase(config: DatabaseConfig): Promise<Dexie>;
|
|
76
76
|
/**
|
|
77
77
|
* Get the engine-managed Dexie instance.
|
|
78
78
|
*
|
package/dist/database.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAMD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAMD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,2DAA2D,CAAC;AAsCvF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAwD3E;AAkCD;;;;;GAKG;AACH,wBAAgB,KAAK,IAAI,KAAK,CAO7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC9C,sEAAsE;IACtE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,mBAAmB,CA+CrB;AAyBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0B5D"}
|
package/dist/database.js
CHANGED
|
@@ -54,22 +54,6 @@ const SYSTEM_TABLES = {
|
|
|
54
54
|
offlineSession: 'id',
|
|
55
55
|
singleUserConfig: 'id'
|
|
56
56
|
};
|
|
57
|
-
/**
|
|
58
|
-
* CRDT tables — only included when the CRDT subsystem is enabled via
|
|
59
|
-
* `initEngine({ crdt: {...} })`.
|
|
60
|
-
*
|
|
61
|
-
* - `crdtDocuments` — Full Yjs document state snapshots for offline access
|
|
62
|
-
* and cross-session recovery
|
|
63
|
-
* - `crdtPendingUpdates` — Incremental Yjs update deltas for crash safety
|
|
64
|
-
* (replayed if browser crashes between full saves)
|
|
65
|
-
*
|
|
66
|
-
* @see {@link ./crdt/types.ts} for record shapes
|
|
67
|
-
* @see {@link ./crdt/store.ts} for CRUD operations on these tables
|
|
68
|
-
*/
|
|
69
|
-
const CRDT_SYSTEM_TABLES = {
|
|
70
|
-
crdtDocuments: 'documentId, pageId, offlineEnabled',
|
|
71
|
-
crdtPendingUpdates: '++id, documentId, timestamp'
|
|
72
|
-
};
|
|
73
57
|
// =============================================================================
|
|
74
58
|
// Module State
|
|
75
59
|
// =============================================================================
|
|
@@ -98,8 +82,8 @@ let _dbWasReset = false;
|
|
|
98
82
|
* @param config - Database name and version declarations.
|
|
99
83
|
* @returns The opened Dexie instance, ready for use.
|
|
100
84
|
*/
|
|
101
|
-
export async function createDatabase(config
|
|
102
|
-
let db = buildDexie(config
|
|
85
|
+
export async function createDatabase(config) {
|
|
86
|
+
let db = buildDexie(config);
|
|
103
87
|
try {
|
|
104
88
|
/*
|
|
105
89
|
* Open eagerly to trigger version upgrade NOW, not lazily on first access.
|
|
@@ -126,7 +110,7 @@ export async function createDatabase(config, crdtEnabled = false) {
|
|
|
126
110
|
db.close();
|
|
127
111
|
await Dexie.delete(config.name);
|
|
128
112
|
_dbWasReset = true;
|
|
129
|
-
db = buildDexie(config
|
|
113
|
+
db = buildDexie(config);
|
|
130
114
|
await db.open();
|
|
131
115
|
}
|
|
132
116
|
}
|
|
@@ -146,7 +130,7 @@ export async function createDatabase(config, crdtEnabled = false) {
|
|
|
146
130
|
}
|
|
147
131
|
await Dexie.delete(config.name);
|
|
148
132
|
_dbWasReset = true;
|
|
149
|
-
db = buildDexie(config
|
|
133
|
+
db = buildDexie(config);
|
|
150
134
|
await db.open();
|
|
151
135
|
}
|
|
152
136
|
managedDb = db;
|
|
@@ -161,15 +145,13 @@ export async function createDatabase(config, crdtEnabled = false) {
|
|
|
161
145
|
* @param config - Database name and version declarations.
|
|
162
146
|
* @returns An unopened Dexie instance with all versions declared.
|
|
163
147
|
*/
|
|
164
|
-
function buildDexie(config
|
|
148
|
+
function buildDexie(config) {
|
|
165
149
|
const db = new Dexie(config.name);
|
|
166
150
|
for (const ver of config.versions) {
|
|
167
|
-
/* Merge app tables with system tables — system tables always included.
|
|
168
|
-
* CRDT tables are only included when the CRDT subsystem is enabled. */
|
|
151
|
+
/* Merge app tables with system tables — system tables always included. */
|
|
169
152
|
const mergedStores = {
|
|
170
153
|
...ver.stores,
|
|
171
|
-
...SYSTEM_TABLES
|
|
172
|
-
...(crdtEnabled ? CRDT_SYSTEM_TABLES : {})
|
|
154
|
+
...SYSTEM_TABLES
|
|
173
155
|
};
|
|
174
156
|
if (ver.upgrade) {
|
|
175
157
|
db.version(ver.version).stores(mergedStores).upgrade(ver.upgrade);
|
package/dist/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AA+B1B,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,wDAAwD,CAAC;AAEvF,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,aAAa,GAA2B;IAC5C,SAAS,EAAE,kCAAkC;IAC7C,eAAe,EAAE,uCAAuC;IACxD,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostics.d.ts
CHANGED
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
import type { ConflictHistoryEntry, SyncStatus } from './types';
|
|
27
27
|
import type { RealtimeConnectionState } from './realtime';
|
|
28
28
|
import type { SyncError } from './stores/sync';
|
|
29
|
-
import type { CRDTConnectionState } from './crdt/types';
|
|
30
29
|
/**
|
|
31
30
|
* Comprehensive diagnostics snapshot returned by {@link getDiagnostics}.
|
|
32
31
|
*
|
|
@@ -121,68 +120,6 @@ export interface DiagnosticsSnapshot {
|
|
|
121
120
|
lastErrorDetails: string | null;
|
|
122
121
|
recentErrors: SyncError[];
|
|
123
122
|
};
|
|
124
|
-
/** CRDT collaborative editing subsystem diagnostics */
|
|
125
|
-
crdt: {
|
|
126
|
-
/** Whether the CRDT subsystem is enabled (crdt config provided to initEngine). */
|
|
127
|
-
enabled: boolean;
|
|
128
|
-
/** Resolved CRDT configuration (null if not enabled). */
|
|
129
|
-
config: {
|
|
130
|
-
supabaseTable: string;
|
|
131
|
-
persistIntervalMs: number;
|
|
132
|
-
broadcastDebounceMs: number;
|
|
133
|
-
localSaveDebounceMs: number;
|
|
134
|
-
cursorDebounceMs: number;
|
|
135
|
-
maxOfflineDocuments: number;
|
|
136
|
-
maxBroadcastPayloadBytes: number;
|
|
137
|
-
syncPeerTimeoutMs: number;
|
|
138
|
-
maxReconnectAttempts: number;
|
|
139
|
-
reconnectBaseDelayMs: number;
|
|
140
|
-
} | null;
|
|
141
|
-
/** Currently active (open) CRDT documents. */
|
|
142
|
-
activeDocuments: Array<{
|
|
143
|
-
documentId: string;
|
|
144
|
-
pageId: string;
|
|
145
|
-
connectionState: CRDTConnectionState;
|
|
146
|
-
isDirty: boolean;
|
|
147
|
-
/** Current Y.Doc state size in bytes. */
|
|
148
|
-
stateSizeBytes: number;
|
|
149
|
-
stateSizeFormatted: string;
|
|
150
|
-
/** Number of remote collaborators currently connected. */
|
|
151
|
-
collaboratorCount: number;
|
|
152
|
-
/** Names of connected collaborators. */
|
|
153
|
-
collaboratorNames: string[];
|
|
154
|
-
}>;
|
|
155
|
-
/** Total number of active documents. */
|
|
156
|
-
activeDocumentCount: number;
|
|
157
|
-
/** Offline storage statistics. */
|
|
158
|
-
offline: {
|
|
159
|
-
/** Number of documents stored for offline access. */
|
|
160
|
-
documentCount: number;
|
|
161
|
-
/** Max offline documents allowed. */
|
|
162
|
-
maxDocuments: number;
|
|
163
|
-
/** Total bytes stored across all offline documents. */
|
|
164
|
-
totalSizeBytes: number;
|
|
165
|
-
totalSizeFormatted: string;
|
|
166
|
-
/** Per-document offline storage details. */
|
|
167
|
-
documents: Array<{
|
|
168
|
-
documentId: string;
|
|
169
|
-
pageId: string;
|
|
170
|
-
stateSizeBytes: number;
|
|
171
|
-
stateSizeFormatted: string;
|
|
172
|
-
localUpdatedAt: string;
|
|
173
|
-
lastPersistedAt: string | null;
|
|
174
|
-
/** Whether this document has been persisted to Supabase since last local edit. */
|
|
175
|
-
syncedWithRemote: boolean;
|
|
176
|
-
}>;
|
|
177
|
-
};
|
|
178
|
-
/** Pending crash-recovery updates per active document. */
|
|
179
|
-
pendingUpdates: Array<{
|
|
180
|
-
documentId: string;
|
|
181
|
-
updateCount: number;
|
|
182
|
-
}>;
|
|
183
|
-
/** Total pending updates across all documents. */
|
|
184
|
-
totalPendingUpdates: number;
|
|
185
|
-
};
|
|
186
123
|
/** Engine configuration summary */
|
|
187
124
|
config: {
|
|
188
125
|
tableCount: number;
|
|
@@ -208,18 +145,6 @@ export interface DiagnosticsSnapshot {
|
|
|
208
145
|
* ```
|
|
209
146
|
*/
|
|
210
147
|
export declare function getDiagnostics(): Promise<DiagnosticsSnapshot>;
|
|
211
|
-
/**
|
|
212
|
-
* Get CRDT subsystem diagnostics (async — reads IndexedDB for offline and pending data).
|
|
213
|
-
*
|
|
214
|
-
* Returns a comprehensive snapshot of the CRDT subsystem including active documents,
|
|
215
|
-
* their state sizes, connection states, collaborator counts, offline storage usage,
|
|
216
|
-
* and pending crash-recovery updates.
|
|
217
|
-
*
|
|
218
|
-
* If CRDT is not enabled, returns a minimal object with `enabled: false`.
|
|
219
|
-
*
|
|
220
|
-
* @returns CRDT diagnostics section of the {@link DiagnosticsSnapshot}.
|
|
221
|
-
*/
|
|
222
|
-
export declare function getCRDTDiagnostics(): Promise<DiagnosticsSnapshot['crdt']>;
|
|
223
148
|
/**
|
|
224
149
|
* Get sync cycle and egress diagnostics (synchronous).
|
|
225
150
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|