@prabhask5/stellar-engine 1.1.12 → 1.1.14

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.
Files changed (60) hide show
  1. package/README.md +42 -1
  2. package/dist/auth/deviceVerification.d.ts.map +1 -1
  3. package/dist/auth/deviceVerification.js +17 -0
  4. package/dist/auth/deviceVerification.js.map +1 -1
  5. package/dist/auth/resolveAuthState.d.ts +2 -1
  6. package/dist/auth/resolveAuthState.d.ts.map +1 -1
  7. package/dist/auth/resolveAuthState.js +5 -0
  8. package/dist/auth/resolveAuthState.js.map +1 -1
  9. package/dist/auth/singleUser.d.ts.map +1 -1
  10. package/dist/auth/singleUser.js +27 -0
  11. package/dist/auth/singleUser.js.map +1 -1
  12. package/dist/bin/install-pwa.js +275 -5
  13. package/dist/bin/install-pwa.js.map +1 -1
  14. package/dist/config.d.ts +9 -0
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +10 -0
  17. package/dist/config.js.map +1 -1
  18. package/dist/data.d.ts.map +1 -1
  19. package/dist/data.js +13 -5
  20. package/dist/data.js.map +1 -1
  21. package/dist/demo.d.ts +131 -0
  22. package/dist/demo.d.ts.map +1 -0
  23. package/dist/demo.js +168 -0
  24. package/dist/demo.js.map +1 -0
  25. package/dist/engine.d.ts.map +1 -1
  26. package/dist/engine.js +13 -1
  27. package/dist/engine.js.map +1 -1
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +10 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/kit/auth.d.ts.map +1 -1
  33. package/dist/kit/auth.js +4 -1
  34. package/dist/kit/auth.js.map +1 -1
  35. package/dist/kit/loads.d.ts.map +1 -1
  36. package/dist/kit/loads.js +15 -4
  37. package/dist/kit/loads.js.map +1 -1
  38. package/dist/queue.d.ts.map +1 -1
  39. package/dist/queue.js +13 -0
  40. package/dist/queue.js.map +1 -1
  41. package/dist/realtime.d.ts.map +1 -1
  42. package/dist/realtime.js +4 -0
  43. package/dist/realtime.js.map +1 -1
  44. package/dist/stores/authState.d.ts +8 -0
  45. package/dist/stores/authState.d.ts.map +1 -1
  46. package/dist/stores/authState.js +31 -1
  47. package/dist/stores/authState.js.map +1 -1
  48. package/dist/supabase/auth.d.ts.map +1 -1
  49. package/dist/supabase/auth.js +14 -0
  50. package/dist/supabase/auth.js.map +1 -1
  51. package/dist/supabase/client.d.ts.map +1 -1
  52. package/dist/supabase/client.js +11 -0
  53. package/dist/supabase/client.js.map +1 -1
  54. package/dist/supabase/validate.d.ts.map +1 -1
  55. package/dist/supabase/validate.js +3 -0
  56. package/dist/supabase/validate.js.map +1 -1
  57. package/dist/types.d.ts +2 -1
  58. package/dist/types.d.ts.map +1 -1
  59. package/package.json +5 -1
  60. package/src/components/DemoBanner.svelte +94 -0
package/dist/data.js CHANGED
@@ -34,6 +34,7 @@ import { markEntityModified, scheduleSyncPush } from './engine';
34
34
  import { generateId, now } from './utils';
35
35
  import { debugError } from './debug';
36
36
  import { supabase } from './supabase/client';
37
+ import { isDemoMode } from './demo';
37
38
  // =============================================================================
38
39
  // HELPERS
39
40
  // =============================================================================
@@ -411,8 +412,11 @@ export async function engineGet(table, id, opts) {
411
412
  if (local)
412
413
  return local;
413
414
  /* Remote fallback: only attempted when explicitly opted in AND the browser
414
- reports online status. This avoids unnecessary network errors in offline mode. */
415
- if (opts?.remoteFallback && typeof navigator !== 'undefined' && navigator.onLine) {
415
+ reports online status. Skipped in demo mode (sandboxed, no Supabase). */
416
+ if (opts?.remoteFallback &&
417
+ !isDemoMode() &&
418
+ typeof navigator !== 'undefined' &&
419
+ navigator.onLine) {
416
420
  try {
417
421
  const columns = getTableColumns(table);
418
422
  const { data, error } = await supabase
@@ -476,9 +480,10 @@ export async function engineGetAll(table, opts) {
476
480
  }
477
481
  /* Remote fallback only fires when the local table is completely empty.
478
482
  This handles the "first device" or "fresh install" scenario where no
479
- data has been synced down yet. */
483
+ data has been synced down yet. Skipped in demo mode (sandboxed). */
480
484
  if (results.length === 0 &&
481
485
  opts?.remoteFallback &&
486
+ !isDemoMode() &&
482
487
  typeof navigator !== 'undefined' &&
483
488
  navigator.onLine) {
484
489
  try {
@@ -542,6 +547,7 @@ export async function engineQuery(table, index, value, opts) {
542
547
  .toArray();
543
548
  if (results.length === 0 &&
544
549
  opts?.remoteFallback &&
550
+ !isDemoMode() &&
545
551
  typeof navigator !== 'undefined' &&
546
552
  navigator.onLine) {
547
553
  try {
@@ -602,6 +608,7 @@ export async function engineQueryRange(table, index, lower, upper, opts) {
602
608
  let results = await db.table(dexieTable).where(index).between(lower, upper, true, true).toArray();
603
609
  if (results.length === 0 &&
604
610
  opts?.remoteFallback &&
611
+ !isDemoMode() &&
605
612
  typeof navigator !== 'undefined' &&
606
613
  navigator.onLine) {
607
614
  try {
@@ -685,8 +692,9 @@ export async function engineGetOrCreate(table, index, value, defaults, opts) {
685
692
  const existing = localResults.find((r) => !r.deleted);
686
693
  if (existing)
687
694
  return existing;
688
- /* Step 2: Check remote if requested -- prevents duplicate creation across devices. */
689
- if (opts?.checkRemote && typeof navigator !== 'undefined' && navigator.onLine) {
695
+ /* Step 2: Check remote if requested -- prevents duplicate creation across devices.
696
+ Skipped in demo mode (sandboxed, no Supabase). */
697
+ if (opts?.checkRemote && !isDemoMode() && typeof navigator !== 'undefined' && navigator.onLine) {
690
698
  try {
691
699
  const columns = getTableColumns(table);
692
700
  const { data } = await supabase
package/dist/data.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
package/dist/demo.d.ts ADDED
@@ -0,0 +1,131 @@
1
+ /**
2
+ * @fileoverview Demo Mode State Module
3
+ *
4
+ * Provides a completely isolated sandbox for consumer PWA apps. When demo mode
5
+ * is active, the app uses a separate Dexie database (`${name}_demo`), makes
6
+ * zero Supabase connections, and skips all sync/auth/email/device-verification
7
+ * flows. Writes go to the sandboxed DB and are dropped on page refresh (mock
8
+ * data is re-seeded).
9
+ *
10
+ * **Security model:**
11
+ * Demo mode does NOT "bypass" auth — it replaces the entire data layer.
12
+ * The real database is never opened. No Supabase client is created. If someone
13
+ * manually sets the localStorage flag on a real instance, they see an empty or
14
+ * seeded demo DB — there is no path to real user data.
15
+ *
16
+ * Callers of `setDemoMode()` must trigger a **full page reload**
17
+ * (`window.location.href`) to ensure complete engine teardown and
18
+ * reinitialization with the correct database.
19
+ *
20
+ * @module demo
21
+ * @see {@link config.ts} for demo DB name switching in `initEngine()`
22
+ * @see {@link engine.ts} for sync guards that check `isDemoMode()`
23
+ */
24
+ import Dexie from 'dexie';
25
+ /**
26
+ * Configuration for demo mode, provided by the consumer app.
27
+ *
28
+ * Contains a callback to seed mock data and a mock user profile for the
29
+ * demo session. Registered via `initEngine({ demo: demoConfig })`.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const demoConfig: DemoConfig = {
34
+ * seedData: async (db) => {
35
+ * await db.table('items').bulkPut([
36
+ * { id: '1', name: 'Sample Item', ... },
37
+ * ]);
38
+ * },
39
+ * mockProfile: {
40
+ * email: 'demo@example.com',
41
+ * firstName: 'Demo',
42
+ * lastName: 'User',
43
+ * },
44
+ * };
45
+ * ```
46
+ */
47
+ export interface DemoConfig {
48
+ /** Consumer callback that populates the demo Dexie DB with mock data. */
49
+ seedData: (db: Dexie) => Promise<void>;
50
+ /** Mock user profile for the demo session. */
51
+ mockProfile: {
52
+ email: string;
53
+ firstName: string;
54
+ lastName: string;
55
+ [key: string]: unknown;
56
+ };
57
+ }
58
+ /**
59
+ * Check whether demo mode is currently active.
60
+ *
61
+ * SSR-safe: returns `false` on the server (no `localStorage` access).
62
+ *
63
+ * @returns `true` if the demo mode localStorage flag is set.
64
+ */
65
+ export declare function isDemoMode(): boolean;
66
+ /**
67
+ * Activate or deactivate demo mode.
68
+ *
69
+ * Sets a localStorage flag that is read during engine initialization.
70
+ * **The caller must trigger a full page reload** after calling this
71
+ * to ensure the engine reinitializes with the correct (demo or real) database.
72
+ *
73
+ * @param enabled - `true` to enter demo mode, `false` to exit.
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * setDemoMode(true);
78
+ * window.location.href = '/';
79
+ * ```
80
+ */
81
+ export declare function setDemoMode(enabled: boolean): void;
82
+ /**
83
+ * Register the demo configuration.
84
+ *
85
+ * Called by `initEngine()` when the consumer provides a `demo` config.
86
+ *
87
+ * @param config - The demo configuration from the consumer app.
88
+ * @internal
89
+ */
90
+ export declare function registerDemoConfig(config: DemoConfig): void;
91
+ /**
92
+ * Get the currently registered demo configuration.
93
+ *
94
+ * @returns The demo config, or `null` if none is registered.
95
+ */
96
+ export declare function getDemoConfig(): DemoConfig | null;
97
+ /**
98
+ * Set the prefix used for the demo mode localStorage key.
99
+ *
100
+ * Called by `initEngine()` to propagate the app prefix.
101
+ *
102
+ * @param prefix - The application prefix (e.g. `'myapp'`).
103
+ * @internal
104
+ */
105
+ export declare function _setDemoPrefix(prefix: string): void;
106
+ /**
107
+ * Seed the demo database with mock data.
108
+ *
109
+ * Idempotent per page load: no-ops if data has already been seeded
110
+ * (prevents re-seeding on SvelteKit client-side navigations).
111
+ *
112
+ * Steps:
113
+ * 1. Check `_demoSeeded` flag — return if already seeded.
114
+ * 2. Clear all app tables (using engine config's table definitions).
115
+ * 3. Clear system tables (`syncQueue`, `conflictHistory`).
116
+ * 4. Call the consumer's `seedData(db)` callback.
117
+ * 5. Set `_demoSeeded = true`.
118
+ *
119
+ * @throws {Error} If no demo config is registered.
120
+ */
121
+ export declare function seedDemoData(): Promise<void>;
122
+ /**
123
+ * Delete the demo Dexie database entirely.
124
+ *
125
+ * Called when deactivating demo mode to clean up the sandboxed database.
126
+ * The caller should trigger a full page reload after this.
127
+ *
128
+ * @param dbName - The name of the demo database to delete (e.g. `'myapp-db_demo'`).
129
+ */
130
+ export declare function cleanupDemoDatabase(dbName: string): Promise<void>;
131
+ //# sourceMappingURL=demo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC,8CAA8C;IAC9C,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAmBD;;;;;;GAMG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAGpC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAOlD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAgClD;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvE"}
package/dist/demo.js ADDED
@@ -0,0 +1,168 @@
1
+ /**
2
+ * @fileoverview Demo Mode State Module
3
+ *
4
+ * Provides a completely isolated sandbox for consumer PWA apps. When demo mode
5
+ * is active, the app uses a separate Dexie database (`${name}_demo`), makes
6
+ * zero Supabase connections, and skips all sync/auth/email/device-verification
7
+ * flows. Writes go to the sandboxed DB and are dropped on page refresh (mock
8
+ * data is re-seeded).
9
+ *
10
+ * **Security model:**
11
+ * Demo mode does NOT "bypass" auth — it replaces the entire data layer.
12
+ * The real database is never opened. No Supabase client is created. If someone
13
+ * manually sets the localStorage flag on a real instance, they see an empty or
14
+ * seeded demo DB — there is no path to real user data.
15
+ *
16
+ * Callers of `setDemoMode()` must trigger a **full page reload**
17
+ * (`window.location.href`) to ensure complete engine teardown and
18
+ * reinitialization with the correct database.
19
+ *
20
+ * @module demo
21
+ * @see {@link config.ts} for demo DB name switching in `initEngine()`
22
+ * @see {@link engine.ts} for sync guards that check `isDemoMode()`
23
+ */
24
+ import Dexie from 'dexie';
25
+ import { getDb } from './database';
26
+ import { getEngineConfig, getDexieTableFor } from './config';
27
+ // =============================================================================
28
+ // Module State
29
+ // =============================================================================
30
+ /** The registered demo configuration (set via `registerDemoConfig`). */
31
+ let _demoConfig = null;
32
+ /** Whether demo data has been seeded in this page load (prevents re-seeding). */
33
+ let _demoSeeded = false;
34
+ /** The app prefix, used to namespace the localStorage demo flag. */
35
+ let _demoPrefix = '';
36
+ // =============================================================================
37
+ // Public API
38
+ // =============================================================================
39
+ /**
40
+ * Check whether demo mode is currently active.
41
+ *
42
+ * SSR-safe: returns `false` on the server (no `localStorage` access).
43
+ *
44
+ * @returns `true` if the demo mode localStorage flag is set.
45
+ */
46
+ export function isDemoMode() {
47
+ if (typeof localStorage === 'undefined')
48
+ return false;
49
+ return localStorage.getItem(`${_demoPrefix}_demo_mode`) === 'true';
50
+ }
51
+ /**
52
+ * Activate or deactivate demo mode.
53
+ *
54
+ * Sets a localStorage flag that is read during engine initialization.
55
+ * **The caller must trigger a full page reload** after calling this
56
+ * to ensure the engine reinitializes with the correct (demo or real) database.
57
+ *
58
+ * @param enabled - `true` to enter demo mode, `false` to exit.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * setDemoMode(true);
63
+ * window.location.href = '/';
64
+ * ```
65
+ */
66
+ export function setDemoMode(enabled) {
67
+ if (typeof localStorage === 'undefined')
68
+ return;
69
+ if (enabled) {
70
+ localStorage.setItem(`${_demoPrefix}_demo_mode`, 'true');
71
+ }
72
+ else {
73
+ localStorage.removeItem(`${_demoPrefix}_demo_mode`);
74
+ }
75
+ }
76
+ /**
77
+ * Register the demo configuration.
78
+ *
79
+ * Called by `initEngine()` when the consumer provides a `demo` config.
80
+ *
81
+ * @param config - The demo configuration from the consumer app.
82
+ * @internal
83
+ */
84
+ export function registerDemoConfig(config) {
85
+ _demoConfig = config;
86
+ }
87
+ /**
88
+ * Get the currently registered demo configuration.
89
+ *
90
+ * @returns The demo config, or `null` if none is registered.
91
+ */
92
+ export function getDemoConfig() {
93
+ return _demoConfig;
94
+ }
95
+ /**
96
+ * Set the prefix used for the demo mode localStorage key.
97
+ *
98
+ * Called by `initEngine()` to propagate the app prefix.
99
+ *
100
+ * @param prefix - The application prefix (e.g. `'myapp'`).
101
+ * @internal
102
+ */
103
+ export function _setDemoPrefix(prefix) {
104
+ _demoPrefix = prefix;
105
+ }
106
+ /**
107
+ * Seed the demo database with mock data.
108
+ *
109
+ * Idempotent per page load: no-ops if data has already been seeded
110
+ * (prevents re-seeding on SvelteKit client-side navigations).
111
+ *
112
+ * Steps:
113
+ * 1. Check `_demoSeeded` flag — return if already seeded.
114
+ * 2. Clear all app tables (using engine config's table definitions).
115
+ * 3. Clear system tables (`syncQueue`, `conflictHistory`).
116
+ * 4. Call the consumer's `seedData(db)` callback.
117
+ * 5. Set `_demoSeeded = true`.
118
+ *
119
+ * @throws {Error} If no demo config is registered.
120
+ */
121
+ export async function seedDemoData() {
122
+ if (_demoSeeded)
123
+ return;
124
+ if (!_demoConfig) {
125
+ throw new Error('No demo config registered. Pass `demo` to initEngine().');
126
+ }
127
+ const db = getDb();
128
+ const config = getEngineConfig();
129
+ /* Clear all app tables */
130
+ for (const table of config.tables) {
131
+ const dexieName = getDexieTableFor(table);
132
+ try {
133
+ await db.table(dexieName).clear();
134
+ }
135
+ catch {
136
+ /* Table may not exist in the demo DB — safe to ignore. */
137
+ }
138
+ }
139
+ /* Clear system tables */
140
+ for (const systemTable of ['syncQueue', 'conflictHistory']) {
141
+ try {
142
+ await db.table(systemTable).clear();
143
+ }
144
+ catch {
145
+ /* Safe to ignore if table doesn't exist. */
146
+ }
147
+ }
148
+ /* Call consumer's seed function */
149
+ await _demoConfig.seedData(db);
150
+ _demoSeeded = true;
151
+ }
152
+ /**
153
+ * Delete the demo Dexie database entirely.
154
+ *
155
+ * Called when deactivating demo mode to clean up the sandboxed database.
156
+ * The caller should trigger a full page reload after this.
157
+ *
158
+ * @param dbName - The name of the demo database to delete (e.g. `'myapp-db_demo'`).
159
+ */
160
+ export async function cleanupDemoDatabase(dbName) {
161
+ try {
162
+ await Dexie.delete(dbName);
163
+ }
164
+ catch {
165
+ /* Ignore deletion errors — the DB may not exist. */
166
+ }
167
+ }
168
+ //# sourceMappingURL=demo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAyC7D,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,wEAAwE;AACxE,IAAI,WAAW,GAAsB,IAAI,CAAC;AAE1C,iFAAiF;AACjF,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,oEAAoE;AACpE,IAAI,WAAW,GAAG,EAAE,CAAC;AAErB,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,OAAO,YAAY,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,WAAW,YAAY,CAAC,KAAK,MAAM,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,IAAI,OAAO,YAAY,KAAK,WAAW;QAAE,OAAO;IAChD,IAAI,OAAO,EAAE,CAAC;QACZ,YAAY,CAAC,OAAO,CAAC,GAAG,WAAW,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,UAAU,CAAC,GAAG,WAAW,YAAY,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAkB;IACnD,WAAW,GAAG,MAAM,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,WAAW,GAAG,MAAM,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,WAAW;QAAE,OAAO;IACxB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,0BAA0B;IAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;QAC5D,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,KAAK,MAAM,WAAW,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;QAC9C,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE/B,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;IACtD,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AA+KH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAW7D;AAuCD,uDAAuD;AACvD,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAgLD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB;;;;;;uBAxLF,MAAM;yBAAW,MAAM;;;oBAF5C,MAAM;sBACJ,MAAM;sBAEN,MAAM;;;;;;;;;;;;EAuMrB;AAgLD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAO/D;AAuCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAavC;AA67BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,WAAW,CAC/B,KAAK,GAAE,OAAe,EACtB,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CA0Mf;AAolBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAuYrD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+DpD;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BrD"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAgLH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAW7D;AAuCD,uDAAuD;AACvD,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAgLD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB;;;;;;uBAxLF,MAAM;yBAAW,MAAM;;;oBAF5C,MAAM;sBACJ,MAAM;sBAEN,MAAM;;;;;;;;;;;;EAuMrB;AAgLD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAO/D;AAuCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAcvC;AAm8BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,WAAW,CAC/B,KAAK,GAAE,OAAe,EACtB,QAAQ,GAAE,OAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Mf;AAolBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAwYrD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA+DpD;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BrD"}
package/dist/engine.js CHANGED
@@ -70,6 +70,7 @@ import { getValidOfflineSession, createOfflineSession } from './auth/offlineSess
70
70
  import { validateSchema } from './supabase/validate';
71
71
  import { formatBytes } from './utils';
72
72
  import { getDiagnostics } from './diagnostics';
73
+ import { isDemoMode } from './demo';
73
74
  // =============================================================================
74
75
  // CONFIG ACCESSORS
75
76
  // =============================================================================
@@ -637,6 +638,8 @@ function notifySyncComplete() {
637
638
  * ```
638
639
  */
639
640
  export function scheduleSyncPush() {
641
+ if (isDemoMode())
642
+ return;
640
643
  if (syncTimeout) {
641
644
  clearTimeout(syncTimeout);
642
645
  }
@@ -1020,8 +1023,13 @@ async function pushPendingOps() {
1020
1023
  if (coalescedCount > 0) {
1021
1024
  debugLog(`[SYNC] Coalesced ${coalescedCount} redundant operations (${originalCount} -> ${originalCount - coalescedCount})`);
1022
1025
  }
1026
+ // Snapshot: capture the IDs to process in THIS cycle. Items queued after
1027
+ // this point are left for the next cycle, allowing the UI to show the
1028
+ // "pending" state between sync cycles instead of silently consuming them.
1029
+ const snapshotItems = await getPendingSync();
1030
+ const snapshotIds = new Set(snapshotItems.map((item) => item.id));
1023
1031
  while (iterations < maxIterations) {
1024
- const pendingItems = await getPendingSync();
1032
+ const pendingItems = (await getPendingSync()).filter((item) => snapshotIds.has(item.id));
1025
1033
  if (pendingItems.length === 0)
1026
1034
  break;
1027
1035
  iterations++;
@@ -1487,6 +1495,8 @@ function parseErrorMessage(error) {
1487
1495
  * @param skipPull - If `true`, skip the pull phase (push-only mode)
1488
1496
  */
1489
1497
  export async function runFullSync(quiet = false, skipPull = false) {
1498
+ if (isDemoMode())
1499
+ return;
1490
1500
  if (typeof navigator === 'undefined' || !navigator.onLine) {
1491
1501
  if (!quiet) {
1492
1502
  syncStatusStore.setStatus('offline');
@@ -2171,6 +2181,8 @@ let authStateUnsubscribe = null;
2171
2181
  export async function startSyncEngine() {
2172
2182
  if (typeof window === 'undefined')
2173
2183
  return;
2184
+ if (isDemoMode())
2185
+ return;
2174
2186
  // Ensure DB is open and upgraded before any access
2175
2187
  await waitForDb();
2176
2188
  const supabase = getSupabase();