@prabhask5/stellar-engine 1.0.4 → 1.0.5

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 (71) hide show
  1. package/README.md +8 -10
  2. package/dist/auth/admin.d.ts.map +1 -1
  3. package/dist/auth/admin.js +3 -0
  4. package/dist/auth/admin.js.map +1 -1
  5. package/dist/auth/crypto.d.ts +14 -0
  6. package/dist/auth/crypto.d.ts.map +1 -0
  7. package/dist/auth/crypto.js +22 -0
  8. package/dist/auth/crypto.js.map +1 -0
  9. package/dist/auth/offlineCredentials.d.ts.map +1 -1
  10. package/dist/auth/offlineCredentials.js +17 -3
  11. package/dist/auth/offlineCredentials.js.map +1 -1
  12. package/dist/auth/resolveAuthState.d.ts +2 -0
  13. package/dist/auth/resolveAuthState.d.ts.map +1 -1
  14. package/dist/auth/resolveAuthState.js +60 -0
  15. package/dist/auth/resolveAuthState.js.map +1 -1
  16. package/dist/auth/singleUser.d.ts +58 -0
  17. package/dist/auth/singleUser.d.ts.map +1 -0
  18. package/dist/auth/singleUser.js +407 -0
  19. package/dist/auth/singleUser.js.map +1 -0
  20. package/dist/config.d.ts +13 -1
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +9 -1
  23. package/dist/config.js.map +1 -1
  24. package/dist/data.js +11 -11
  25. package/dist/data.js.map +1 -1
  26. package/dist/database.d.ts.map +1 -1
  27. package/dist/database.js +2 -1
  28. package/dist/database.js.map +1 -1
  29. package/dist/engine.d.ts.map +1 -1
  30. package/dist/engine.js +45 -35
  31. package/dist/engine.js.map +1 -1
  32. package/dist/entries/auth.d.ts +1 -0
  33. package/dist/entries/auth.d.ts.map +1 -1
  34. package/dist/entries/auth.js +1 -0
  35. package/dist/entries/auth.js.map +1 -1
  36. package/dist/entries/types.d.ts +1 -1
  37. package/dist/entries/types.d.ts.map +1 -1
  38. package/dist/entries/utils.d.ts +1 -1
  39. package/dist/entries/utils.d.ts.map +1 -1
  40. package/dist/entries/utils.js +1 -1
  41. package/dist/entries/utils.js.map +1 -1
  42. package/dist/index.d.ts +3 -2
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +3 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/queue.d.ts.map +1 -1
  47. package/dist/queue.js +4 -3
  48. package/dist/queue.js.map +1 -1
  49. package/dist/realtime.d.ts.map +1 -1
  50. package/dist/realtime.js +6 -5
  51. package/dist/realtime.js.map +1 -1
  52. package/dist/stores/network.d.ts.map +1 -1
  53. package/dist/stores/network.js +9 -4
  54. package/dist/stores/network.js.map +1 -1
  55. package/dist/stores/remoteChanges.d.ts.map +1 -1
  56. package/dist/stores/remoteChanges.js +33 -22
  57. package/dist/stores/remoteChanges.js.map +1 -1
  58. package/dist/supabase/client.d.ts.map +1 -1
  59. package/dist/supabase/client.js +12 -2
  60. package/dist/supabase/client.js.map +1 -1
  61. package/dist/supabase/validate.d.ts +1 -1
  62. package/dist/supabase/validate.d.ts.map +1 -1
  63. package/dist/supabase/validate.js +2 -2
  64. package/dist/supabase/validate.js.map +1 -1
  65. package/dist/types.d.ts +12 -0
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/utils.d.ts +7 -0
  68. package/dist/utils.d.ts.map +1 -1
  69. package/dist/utils.js +16 -1
  70. package/dist/utils.js.map +1 -1
  71. package/package.json +1 -1
@@ -0,0 +1,407 @@
1
+ /**
2
+ * Single-User Auth Module
3
+ *
4
+ * Implements a local gate (code or password) verified against a SHA-256 hash
5
+ * stored in IndexedDB. Uses Supabase anonymous auth for session/token management
6
+ * and RLS compliance. Falls back to offline auth when connectivity is unavailable.
7
+ */
8
+ import { getEngineConfig } from '../config';
9
+ import { supabase } from '../supabase/client';
10
+ import { hashValue } from './crypto';
11
+ import { cacheOfflineCredentials } from './offlineCredentials';
12
+ import { createOfflineSession } from './offlineSession';
13
+ import { authState } from '../stores/authState';
14
+ import { syncStatusStore } from '../stores/sync';
15
+ import { getSession, isSessionExpired } from '../supabase/auth';
16
+ import { debugLog, debugWarn, debugError } from '../debug';
17
+ const CONFIG_ID = 'config';
18
+ const SINGLE_USER_EMAIL_DOMAIN = 'single-user.local';
19
+ // ============================================================
20
+ // HELPERS
21
+ // ============================================================
22
+ function getDb() {
23
+ const db = getEngineConfig().db;
24
+ if (!db)
25
+ throw new Error('Database not initialized.');
26
+ return db;
27
+ }
28
+ function getSingleUserEmail() {
29
+ const config = getEngineConfig();
30
+ return `single-user@${config.prefix || 'app'}.${SINGLE_USER_EMAIL_DOMAIN}`;
31
+ }
32
+ async function readConfig() {
33
+ const db = getDb();
34
+ const record = await db.table('singleUserConfig').get(CONFIG_ID);
35
+ return record;
36
+ }
37
+ async function writeConfig(config) {
38
+ const db = getDb();
39
+ await db.table('singleUserConfig').put(config);
40
+ }
41
+ // ============================================================
42
+ // PUBLIC API
43
+ // ============================================================
44
+ /**
45
+ * Check if single-user mode has been set up (config exists in IndexedDB).
46
+ */
47
+ export async function isSingleUserSetUp() {
48
+ try {
49
+ const config = await readConfig();
50
+ return config !== null;
51
+ }
52
+ catch {
53
+ return false;
54
+ }
55
+ }
56
+ /**
57
+ * Get non-sensitive display info about the single user.
58
+ * Returns null if not set up.
59
+ */
60
+ export async function getSingleUserInfo() {
61
+ const config = await readConfig();
62
+ if (!config)
63
+ return null;
64
+ return {
65
+ profile: config.profile,
66
+ gateType: config.gateType,
67
+ codeLength: config.codeLength
68
+ };
69
+ }
70
+ /**
71
+ * First-time setup: hash gate, create anonymous Supabase user (if online),
72
+ * store config, and set auth state.
73
+ */
74
+ export async function setupSingleUser(gate, profile) {
75
+ try {
76
+ const engineConfig = getEngineConfig();
77
+ const singleUserOpts = engineConfig.auth?.singleUser;
78
+ const gateType = singleUserOpts?.gateType || 'code';
79
+ const codeLength = singleUserOpts?.codeLength;
80
+ const gateHash = await hashValue(gate);
81
+ const now = new Date().toISOString();
82
+ const isOffline = typeof navigator !== 'undefined' && !navigator.onLine;
83
+ // Build profile metadata for Supabase user_metadata
84
+ const profileToMetadata = engineConfig.auth?.profileToMetadata;
85
+ const metadata = profileToMetadata ? profileToMetadata(profile) : profile;
86
+ if (!isOffline) {
87
+ // --- ONLINE SETUP ---
88
+ const { data, error } = await supabase.auth.signInAnonymously();
89
+ if (error) {
90
+ debugError('[SingleUser] Anonymous sign-in failed:', error.message);
91
+ return { error: `Setup failed: ${error.message}` };
92
+ }
93
+ const session = data.session;
94
+ const user = data.user;
95
+ // Store profile in user_metadata so userDisplayInfo works unchanged
96
+ const { error: updateError } = await supabase.auth.updateUser({ data: metadata });
97
+ if (updateError) {
98
+ debugWarn('[SingleUser] Failed to set user_metadata:', updateError.message);
99
+ }
100
+ // Store config in IndexedDB
101
+ const config = {
102
+ id: CONFIG_ID,
103
+ gateType,
104
+ codeLength,
105
+ gateHash,
106
+ profile,
107
+ supabaseUserId: user.id,
108
+ setupAt: now,
109
+ updatedAt: now
110
+ };
111
+ await writeConfig(config);
112
+ // Cache offline credentials for offline fallback
113
+ try {
114
+ await cacheOfflineCredentials(getSingleUserEmail(), gate, user, session);
115
+ }
116
+ catch (e) {
117
+ debugWarn('[SingleUser] Failed to cache offline credentials:', e);
118
+ }
119
+ // Create offline session for offline fallback
120
+ try {
121
+ await createOfflineSession(user.id);
122
+ }
123
+ catch (e) {
124
+ debugWarn('[SingleUser] Failed to create offline session:', e);
125
+ }
126
+ // Set auth state
127
+ authState.setSupabaseAuth(session);
128
+ debugLog('[SingleUser] Setup complete (online), userId:', user.id);
129
+ }
130
+ else {
131
+ // --- OFFLINE SETUP ---
132
+ const tempUserId = crypto.randomUUID();
133
+ const config = {
134
+ id: CONFIG_ID,
135
+ gateType,
136
+ codeLength,
137
+ gateHash,
138
+ profile,
139
+ // supabaseUserId deferred until online
140
+ setupAt: now,
141
+ updatedAt: now
142
+ };
143
+ await writeConfig(config);
144
+ // Create offline session with temp ID
145
+ await createOfflineSession(tempUserId);
146
+ // Build offline profile for authState
147
+ const offlineProfile = {
148
+ id: 'current_user',
149
+ userId: tempUserId,
150
+ email: getSingleUserEmail(),
151
+ password: gateHash,
152
+ profile,
153
+ cachedAt: now
154
+ };
155
+ authState.setOfflineAuth(offlineProfile);
156
+ debugLog('[SingleUser] Setup complete (offline), temp userId:', tempUserId);
157
+ }
158
+ return { error: null };
159
+ }
160
+ catch (e) {
161
+ debugError('[SingleUser] Setup error:', e);
162
+ return { error: e instanceof Error ? e.message : 'Setup failed' };
163
+ }
164
+ }
165
+ /**
166
+ * Unlock: verify gate hash, restore Supabase session or fall back to offline auth.
167
+ */
168
+ export async function unlockSingleUser(gate) {
169
+ try {
170
+ const config = await readConfig();
171
+ if (!config) {
172
+ return { error: 'Single-user mode is not set up' };
173
+ }
174
+ // Verify gate
175
+ const inputHash = await hashValue(gate);
176
+ if (inputHash !== config.gateHash) {
177
+ return { error: 'Incorrect code' };
178
+ }
179
+ const isOffline = typeof navigator !== 'undefined' && !navigator.onLine;
180
+ const engineConfig = getEngineConfig();
181
+ if (!isOffline) {
182
+ // --- ONLINE UNLOCK ---
183
+ // Try existing session first
184
+ const existingSession = await getSession();
185
+ if (existingSession && !isSessionExpired(existingSession)) {
186
+ authState.setSupabaseAuth(existingSession);
187
+ debugLog('[SingleUser] Unlocked with existing session');
188
+ return { error: null };
189
+ }
190
+ // No valid session — sign in anonymously again
191
+ const { data, error } = await supabase.auth.signInAnonymously();
192
+ if (error) {
193
+ debugError('[SingleUser] Anonymous sign-in failed on unlock:', error.message);
194
+ return { error: `Unlock failed: ${error.message}` };
195
+ }
196
+ const session = data.session;
197
+ const user = data.user;
198
+ // If user ID changed (new anonymous user), update config
199
+ if (config.supabaseUserId && user.id !== config.supabaseUserId) {
200
+ debugWarn('[SingleUser] New anonymous user ID, updating config');
201
+ config.supabaseUserId = user.id;
202
+ config.updatedAt = new Date().toISOString();
203
+ await writeConfig(config);
204
+ // Reset sync cursor for new user (dynamic import to avoid circular deps)
205
+ try {
206
+ if (typeof localStorage !== 'undefined') {
207
+ // Clear old user cursor
208
+ const keys = Object.keys(localStorage).filter(k => k.startsWith('lastSyncCursor_'));
209
+ keys.forEach(k => localStorage.removeItem(k));
210
+ }
211
+ }
212
+ catch {
213
+ // Ignore storage errors
214
+ }
215
+ }
216
+ else if (!config.supabaseUserId) {
217
+ // First time online after offline setup
218
+ config.supabaseUserId = user.id;
219
+ config.updatedAt = new Date().toISOString();
220
+ await writeConfig(config);
221
+ }
222
+ // Re-apply profile to user_metadata
223
+ const profileToMetadata = engineConfig.auth?.profileToMetadata;
224
+ const metadata = profileToMetadata ? profileToMetadata(config.profile) : config.profile;
225
+ await supabase.auth.updateUser({ data: metadata }).catch((e) => {
226
+ debugWarn('[SingleUser] Failed to update user_metadata on unlock:', e);
227
+ });
228
+ // Update offline credentials cache
229
+ try {
230
+ await cacheOfflineCredentials(getSingleUserEmail(), gate, user, session);
231
+ }
232
+ catch (e) {
233
+ debugWarn('[SingleUser] Failed to update offline credentials:', e);
234
+ }
235
+ // Update offline session
236
+ try {
237
+ await createOfflineSession(user.id);
238
+ }
239
+ catch (e) {
240
+ debugWarn('[SingleUser] Failed to update offline session:', e);
241
+ }
242
+ authState.setSupabaseAuth(session);
243
+ debugLog('[SingleUser] Unlocked online, userId:', user.id);
244
+ }
245
+ else {
246
+ // --- OFFLINE UNLOCK ---
247
+ // Try cached Supabase session from localStorage
248
+ const cachedSession = await getSession();
249
+ if (cachedSession) {
250
+ authState.setSupabaseAuth(cachedSession);
251
+ debugLog('[SingleUser] Unlocked offline with cached Supabase session');
252
+ return { error: null };
253
+ }
254
+ // No cached session — fall back to offline auth
255
+ const userId = config.supabaseUserId || crypto.randomUUID();
256
+ await createOfflineSession(userId);
257
+ const offlineProfile = {
258
+ id: 'current_user',
259
+ userId,
260
+ email: getSingleUserEmail(),
261
+ password: config.gateHash,
262
+ profile: config.profile,
263
+ cachedAt: new Date().toISOString()
264
+ };
265
+ authState.setOfflineAuth(offlineProfile);
266
+ debugLog('[SingleUser] Unlocked offline with offline session');
267
+ }
268
+ return { error: null };
269
+ }
270
+ catch (e) {
271
+ debugError('[SingleUser] Unlock error:', e);
272
+ return { error: e instanceof Error ? e.message : 'Unlock failed' };
273
+ }
274
+ }
275
+ /**
276
+ * Lock: stop sync engine, reset auth state to 'none'.
277
+ * Does NOT destroy session, data, or sign out of Supabase.
278
+ */
279
+ export async function lockSingleUser() {
280
+ try {
281
+ // Dynamic import to avoid circular deps
282
+ const { stopSyncEngine } = await import('../engine');
283
+ await stopSyncEngine();
284
+ }
285
+ catch (e) {
286
+ debugError('[SingleUser] Failed to stop sync engine on lock:', e);
287
+ }
288
+ syncStatusStore.reset();
289
+ authState.setNoAuth();
290
+ debugLog('[SingleUser] Locked');
291
+ }
292
+ /**
293
+ * Change the gate (code/password). Verifies old gate first.
294
+ */
295
+ export async function changeSingleUserGate(oldGate, newGate) {
296
+ try {
297
+ const config = await readConfig();
298
+ if (!config) {
299
+ return { error: 'Single-user mode is not set up' };
300
+ }
301
+ // Verify old gate
302
+ const oldHash = await hashValue(oldGate);
303
+ if (oldHash !== config.gateHash) {
304
+ return { error: 'Current code is incorrect' };
305
+ }
306
+ // Update hash
307
+ const newHash = await hashValue(newGate);
308
+ config.gateHash = newHash;
309
+ config.updatedAt = new Date().toISOString();
310
+ await writeConfig(config);
311
+ // Update offline credentials cache if it exists
312
+ try {
313
+ const db = getDb();
314
+ const creds = await db.table('offlineCredentials').get('current_user');
315
+ if (creds) {
316
+ await db.table('offlineCredentials').update('current_user', {
317
+ password: newHash,
318
+ cachedAt: new Date().toISOString()
319
+ });
320
+ }
321
+ }
322
+ catch (e) {
323
+ debugWarn('[SingleUser] Failed to update offline credentials after gate change:', e);
324
+ }
325
+ debugLog('[SingleUser] Gate changed successfully');
326
+ return { error: null };
327
+ }
328
+ catch (e) {
329
+ debugError('[SingleUser] Gate change error:', e);
330
+ return { error: e instanceof Error ? e.message : 'Failed to change code' };
331
+ }
332
+ }
333
+ /**
334
+ * Update profile in IndexedDB and Supabase user_metadata.
335
+ */
336
+ export async function updateSingleUserProfile(profile) {
337
+ try {
338
+ const config = await readConfig();
339
+ if (!config) {
340
+ return { error: 'Single-user mode is not set up' };
341
+ }
342
+ // Update IndexedDB
343
+ config.profile = profile;
344
+ config.updatedAt = new Date().toISOString();
345
+ await writeConfig(config);
346
+ // Update Supabase user_metadata if online
347
+ const isOffline = typeof navigator !== 'undefined' && !navigator.onLine;
348
+ if (!isOffline) {
349
+ const engineConfig = getEngineConfig();
350
+ const profileToMetadata = engineConfig.auth?.profileToMetadata;
351
+ const metadata = profileToMetadata ? profileToMetadata(profile) : profile;
352
+ const { error } = await supabase.auth.updateUser({ data: metadata });
353
+ if (error) {
354
+ debugWarn('[SingleUser] Failed to update Supabase profile:', error.message);
355
+ }
356
+ else {
357
+ // Update auth state to reflect changes in UI
358
+ authState.updateUserProfile(metadata);
359
+ }
360
+ }
361
+ // Update offline credentials cache
362
+ try {
363
+ const db = getDb();
364
+ const creds = await db.table('offlineCredentials').get('current_user');
365
+ if (creds) {
366
+ await db.table('offlineCredentials').update('current_user', {
367
+ profile,
368
+ cachedAt: new Date().toISOString()
369
+ });
370
+ }
371
+ }
372
+ catch (e) {
373
+ debugWarn('[SingleUser] Failed to update offline credentials profile:', e);
374
+ }
375
+ debugLog('[SingleUser] Profile updated');
376
+ return { error: null };
377
+ }
378
+ catch (e) {
379
+ debugError('[SingleUser] Profile update error:', e);
380
+ return { error: e instanceof Error ? e.message : 'Failed to update profile' };
381
+ }
382
+ }
383
+ /**
384
+ * Full reset: clear config, sign out of Supabase, clear all data.
385
+ */
386
+ export async function resetSingleUser() {
387
+ try {
388
+ // Import signOut which handles full cleanup
389
+ const { signOut } = await import('../supabase/auth');
390
+ const result = await signOut();
391
+ // Clear single-user config
392
+ try {
393
+ const db = getDb();
394
+ await db.table('singleUserConfig').delete(CONFIG_ID);
395
+ }
396
+ catch (e) {
397
+ debugWarn('[SingleUser] Failed to clear config on reset:', e);
398
+ }
399
+ debugLog('[SingleUser] Reset complete');
400
+ return { error: result.error };
401
+ }
402
+ catch (e) {
403
+ debugError('[SingleUser] Reset error:', e);
404
+ return { error: e instanceof Error ? e.message : 'Reset failed' };
405
+ }
406
+ }
407
+ //# sourceMappingURL=singleUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleUser.js","sourceRoot":"","sources":["../../src/auth/singleUser.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { SupabaseClient, User } from '@supabase/supabase-js';
2
2
  import type { Session } from '@supabase/supabase-js';
3
3
  import type Dexie from 'dexie';
4
+ import type { SingleUserGateType } from './types';
4
5
  import { type DatabaseConfig } from './database';
5
6
  export interface SyncEngineConfig {
6
7
  tables: TableConfig[];
@@ -12,6 +13,13 @@ export interface SyncEngineConfig {
12
13
  /** Engine creates and owns the Dexie instance when this is provided. */
13
14
  database?: DatabaseConfig;
14
15
  auth?: {
16
+ /** Auth mode: 'multi-user' (default) or 'single-user' (anonymous Supabase auth with local gate) */
17
+ mode?: 'multi-user' | 'single-user';
18
+ /** Single-user mode configuration */
19
+ singleUser?: {
20
+ gateType: SingleUserGateType;
21
+ codeLength?: 4 | 6;
22
+ };
15
23
  profileExtractor?: (userMetadata: Record<string, unknown>) => Record<string, unknown>;
16
24
  profileToMetadata?: (profile: Record<string, unknown>) => Record<string, unknown>;
17
25
  enableOfflineAuth?: boolean;
@@ -32,7 +40,6 @@ export interface SyncEngineConfig {
32
40
  }
33
41
  export interface TableConfig {
34
42
  supabaseName: string;
35
- dexieTable: string;
36
43
  columns: string;
37
44
  ownershipFilter?: string;
38
45
  isSingleton?: boolean;
@@ -42,6 +49,11 @@ export interface TableConfig {
42
49
  }
43
50
  export declare function initEngine(config: SyncEngineConfig): void;
44
51
  export declare function getEngineConfig(): SyncEngineConfig;
52
+ /**
53
+ * Get the Dexie (IndexedDB) table name for a TableConfig entry.
54
+ * Derives from supabaseName via snake_case → camelCase conversion.
55
+ */
56
+ export declare function getDexieTableFor(table: TableConfig): string;
45
57
  /**
46
58
  * Get the Supabase-to-Dexie table mapping derived from config.
47
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAiC,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IAEf,kGAAkG;IAClG,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,8GAA8G;IAC9G,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,IAAI,CAAC,EAAE;QACL,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtF,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClF,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,2CAA2C;QAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC;KAC7C,CAAC;IAEF,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IACrE,wFAAwF;IACxF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC3E;AAID,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAoBzD;AAED,wBAAgB,eAAe,IAAI,gBAAgB,CAKlD;AAGD;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAO5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAKlD,OAAO,EAAiC,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAGhF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IAEf,kGAAkG;IAClG,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,8GAA8G;IAC9G,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,IAAI,CAAC,EAAE;QACL,mGAAmG;QACnG,IAAI,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;QACpC,qCAAqC;QACrC,UAAU,CAAC,EAAE;YACX,QAAQ,EAAE,kBAAkB,CAAC;YAC7B,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SACpB,CAAC;QACF,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtF,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClF,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,2CAA2C;QAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC;KAC7C,CAAC;IAEF,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IACrE,wFAAwF;IACxF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC3E;AAID,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAoBzD;AAED,wBAAgB,eAAe,IAAI,gBAAgB,CAKlD;AAGD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAO5D"}
package/dist/config.js CHANGED
@@ -3,6 +3,7 @@ import { _setDeviceIdPrefix } from './deviceId';
3
3
  import { _setClientPrefix } from './supabase/client';
4
4
  import { _setConfigPrefix } from './runtime/runtimeConfig';
5
5
  import { createDatabase, _setManagedDb } from './database';
6
+ import { snakeToCamel } from './utils';
6
7
  let engineConfig = null;
7
8
  export function initEngine(config) {
8
9
  engineConfig = config;
@@ -30,6 +31,13 @@ export function getEngineConfig() {
30
31
  }
31
32
  return engineConfig;
32
33
  }
34
+ /**
35
+ * Get the Dexie (IndexedDB) table name for a TableConfig entry.
36
+ * Derives from supabaseName via snake_case → camelCase conversion.
37
+ */
38
+ export function getDexieTableFor(table) {
39
+ return snakeToCamel(table.supabaseName);
40
+ }
33
41
  /**
34
42
  * Get the Supabase-to-Dexie table mapping derived from config.
35
43
  */
@@ -37,7 +45,7 @@ export function getTableMap() {
37
45
  const config = getEngineConfig();
38
46
  const map = {};
39
47
  for (const table of config.tables) {
40
- map[table.supabaseName] = table.dexieTable;
48
+ map[table.supabaseName] = getDexieTableFor(table);
41
49
  }
42
50
  return map;
43
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,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,cAAc,EAAE,aAAa,EAAuB,MAAM,YAAY,CAAC;AA8ChF,IAAI,YAAY,GAA4B,IAAI,CAAC;AAEjD,MAAM,UAAU,UAAU,CAAC,MAAwB;IACjD,YAAY,GAAG,MAAM,CAAC;IAEtB,2CAA2C;IAC3C,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;IAClC,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,kEAAkE;QACjE,MAAwB,CAAC,EAAE,GAAG,EAAE,CAAC;IACpC,CAAC;SAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACrB,+CAA+C;QAC/C,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,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;AAGD;;GAEG;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,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,YAAoB;IAClD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,SAAS,YAAY,6BAA6B,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,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,cAAc,EAAE,aAAa,EAAuB,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAoDvC,IAAI,YAAY,GAA4B,IAAI,CAAC;AAEjD,MAAM,UAAU,UAAU,CAAC,MAAwB;IACjD,YAAY,GAAG,MAAM,CAAC;IAEtB,2CAA2C;IAC3C,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;IAClC,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,kEAAkE;QACjE,MAAwB,CAAC,EAAE,GAAG,EAAE,CAAC;IACpC,CAAC;SAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACrB,+CAA+C;QAC/C,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,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;AAGD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IACjD,OAAO,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;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,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,YAAoB;IAClD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,SAAS,YAAY,6BAA6B,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC"}
package/dist/data.js CHANGED
@@ -147,19 +147,19 @@ export async function engineIncrement(table, id, field, amount, additionalFields
147
147
  const db = getDb();
148
148
  const dexieTable = getDexieTableName(table);
149
149
  const timestamp = now();
150
- // Read current value
151
- const current = await db.table(dexieTable).get(id);
152
- if (!current)
153
- return undefined;
154
- const currentValue = current[field] || 0;
155
- const newValue = currentValue + amount;
156
- const updateFields = {
157
- [field]: newValue,
158
- updated_at: timestamp,
159
- ...additionalFields
160
- };
161
150
  let updated;
162
151
  await db.transaction('rw', [db.table(dexieTable), db.table('syncQueue')], async () => {
152
+ // Read current value inside transaction to prevent TOCTOU race
153
+ const current = await db.table(dexieTable).get(id);
154
+ if (!current)
155
+ return;
156
+ const currentValue = current[field] || 0;
157
+ const newValue = currentValue + amount;
158
+ const updateFields = {
159
+ [field]: newValue,
160
+ updated_at: timestamp,
161
+ ...additionalFields
162
+ };
163
163
  await db.table(dexieTable).update(id, updateFields);
164
164
  updated = await db.table(dexieTable).get(id);
165
165
  if (updated) {
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D,SAAS,iBAAiB,CAAC,YAAoB;IAC7C,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC;AAC3C,CAAC;AAED,+DAA+D;AAC/D,iCAAiC;AACjC,+DAA+D;AAE/D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAa,EACb,IAA6B;IAE7B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAI,IAAI,CAAC,EAAa,IAAI,UAAU,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IAE1C,qEAAqE;IACrE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAE7C,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC7B,gBAAgB,EAAE,CAAC;IAEnB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAa,EACb,EAAU,EACV,MAA+B;IAE/B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IACxB,MAAM,YAAY,GAAG,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAE1D,IAAI,OAA4C,CAAC;IACjD,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QACpD,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,kBAAkB,CAAC;gBACvB,KAAK;gBACL,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,CAAC;QACZ,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvB,gBAAgB,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,EAAU;IAC1D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IAExB,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAChF,MAAM,oBAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACvB,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAWD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAA4B;IACjE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IAExB,wEAAwE;IACxE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5B,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;QAC5C,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAE/C,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;gBAChB,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,QAAQ,GAAI,EAAE,CAAC,IAAI,CAAC,EAAa,IAAI,UAAU,EAAE,CAAC;oBACxD,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;oBAC7C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;oBAC7C,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACxC,MAAM,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;oBAC7D,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC3B,MAAM;gBACR,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;oBAC7D,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;oBACvD,MAAM,kBAAkB,CAAC;wBACvB,KAAK,EAAE,EAAE,CAAC,KAAK;wBACf,QAAQ,EAAE,EAAE,CAAC,EAAE;wBACf,aAAa,EAAE,KAAK;wBACpB,KAAK,EAAE,YAAY;qBACpB,CAAC,CAAC;oBACH,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACxB,MAAM;gBACR,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;oBACnF,MAAM,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC5C,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACxB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAED,+DAA+D;AAC/D,sBAAsB;AACtB,+DAA+D;AAE/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,EAAU,EACV,KAAa,EACb,MAAc,EACd,gBAA0C;IAE1C,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IAExB,IAAI,OAA4C,CAAC;IACjD,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;QACnF,+DAA+D;QAC/D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,YAAY,GAAI,OAAO,CAAC,KAAK,CAAY,IAAI,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC;QACvC,MAAM,YAAY,GAA4B;YAC5C,CAAC,KAAK,CAAC,EAAE,QAAQ;YACjB,UAAU,EAAE,SAAS;YACrB,GAAG,gBAAgB;SACpB,CAAC;QAEF,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QACpD,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,kBAAkB,CAAC;gBACvB,KAAK;gBACL,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,WAAW;gBAC1B,KAAK;gBACL,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YACH,iEAAiE;YACjE,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,MAAM,kBAAkB,CAAC;oBACvB,KAAK;oBACL,QAAQ,EAAE,EAAE;oBACZ,aAAa,EAAE,KAAK;oBACpB,KAAK,EAAE,EAAE,GAAG,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE;iBACtD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,CAAC;QACZ,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACvB,gBAAgB,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+DAA+D;AAC/D,mBAAmB;AACnB,+DAA+D;AAE/D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAa,EACb,EAAU,EACV,IAAmC;IAEnC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjD,IAAI,KAAK;QAAE,OAAO,KAAgC,CAAC;IAEnD,IAAI,IAAI,EAAE,cAAc,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACjF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ;iBACnC,IAAI,CAAC,KAAK,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC;iBACf,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;iBACZ,EAAE,CAAC,kCAAkC,CAAC;iBACtC,WAAW,EAAE,CAAC;YAEjB,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,OAAO,IAA0C,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAC,qCAAqC,KAAK,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAa,EACb,IAAqD;IAErD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,OAAkC,CAAC;IACvC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;QAClB,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,EAAE,cAAc,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACzG,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ;iBACnC,IAAI,CAAC,KAAK,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC;iBACf,EAAE,CAAC,kCAAkC,CAAC,CAAC;YAE1C,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;oBAClB,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;gBACvE,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,IAA4C,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAC,qCAAqC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,KAAa,EACb,KAAc,EACd,IAAmC;IAEnC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC,OAAO,EAAE,CAAC;IAExF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,EAAE,cAAc,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACzG,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ;iBACnC,IAAI,CAAC,KAAK,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC;iBACf,EAAE,CAAC,KAAK,EAAE,KAAe,CAAC;iBAC1B,EAAE,CAAC,kCAAkC,CAAC,CAAC;YAE1C,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzC,OAAO,GAAG,IAA4C,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAC,2CAA2C,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAa,EACb,KAAa,EACb,KAAc,EACd,KAAc,EACd,IAAmC;IAEnC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAElG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,EAAE,cAAc,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACzG,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ;iBACnC,IAAI,CAAC,KAAK,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,KAAK,EAAE,KAAe,CAAC;iBAC3B,GAAG,CAAC,KAAK,EAAE,KAAe,CAAC;iBAC3B,EAAE,CAAC,kCAAkC,CAAC,CAAC;YAE1C,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzC,OAAO,GAAG,IAA4C,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAC,iDAAiD,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,KAAa,EACb,KAAc,EACd,QAAiC,EACjC,IAAgC;IAEhC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE5C,oBAAoB;IACpB,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/F,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/E,IAAI,QAAQ;QAAE,OAAO,QAAmC,CAAC;IAEzD,4BAA4B;IAC5B,IAAI,IAAI,EAAE,WAAW,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QAC9E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ;iBAC5B,IAAI,CAAC,KAAK,CAAC;iBACX,MAAM,CAAC,OAAO,CAAC;iBACf,EAAE,CAAC,KAAK,EAAE,KAAe,CAAC;iBAC1B,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC;iBACnB,WAAW,EAAE,CAAC;YAEjB,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,OAAO,IAA0C,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;QAC5D,CAAC;IACH,CAAC;IAED,aAAa;IACb,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG;QACd,EAAE,EAAE,QAAQ;QACZ,GAAG,QAAQ;QACX,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;KACtB,CAAC;IAEF,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IAE7C,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC7B,gBAAgB,EAAE,CAAC;IAEnB,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAYD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,KAAK,CAgB5D;AAED;;;GAGG;AACH,wBAAgB,KAAK,IAAI,KAAK,CAK7B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,CAE7C"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAaD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,KAAK,CAgB5D;AAED;;;GAGG;AACH,wBAAgB,KAAK,IAAI,KAAK,CAK7B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,CAE7C"}
package/dist/database.js CHANGED
@@ -11,7 +11,8 @@ const SYSTEM_TABLES = {
11
11
  syncQueue: '++id, table, entityId, timestamp',
12
12
  conflictHistory: '++id, entityId, entityType, timestamp',
13
13
  offlineCredentials: 'id',
14
- offlineSession: 'id'
14
+ offlineSession: 'id',
15
+ singleUserConfig: 'id'
15
16
  };
16
17
  let managedDb = null;
17
18
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,4CAA4C;AAC5C,MAAM,aAAa,GAA2B;IAC5C,SAAS,EAAE,kCAAkC;IAC7C,eAAe,EAAE,uCAAuC;IACxD,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,IAAI,SAAS,GAAiB,IAAI,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClC,sCAAsC;QACtC,MAAM,YAAY,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAEzD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,SAAS,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK;IACnB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAS;IACrC,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,4CAA4C;AAC5C,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,IAAI,SAAS,GAAiB,IAAI,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClC,sCAAsC;QACtC,MAAM,YAAY,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAEzD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,SAAS,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK;IACnB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAS;IACrC,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAkGA;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAW7D;AAkND,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEzD;AAwFD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAS/D;AAkBD,wBAAgB,gBAAgB,IAAI,IAAI,CAavC;AA0wBD,wBAAsB,WAAW,CAAC,KAAK,GAAE,OAAe,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoMlG;AA0YD,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA8WrD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAsDpD;AAGD,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BrD"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAkGA;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAW7D;AAkND,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEzD;AAwFD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAS/D;AAkBD,wBAAgB,gBAAgB,IAAI,IAAI,CAavC;AAqxBD,wBAAsB,WAAW,CAAC,KAAK,GAAE,OAAe,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoMlG;AA0YD,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA8WrD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAsDpD;AAGD,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BrD"}