@prabhask5/stellar-engine 1.2.0 → 1.2.1

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 (40) hide show
  1. package/README.md +446 -373
  2. package/dist/bin/commands.d.ts +14 -0
  3. package/dist/bin/commands.d.ts.map +1 -0
  4. package/dist/bin/commands.js +68 -0
  5. package/dist/bin/commands.js.map +1 -0
  6. package/dist/bin/install-pwa.d.ts +20 -6
  7. package/dist/bin/install-pwa.d.ts.map +1 -1
  8. package/dist/bin/install-pwa.js +111 -234
  9. package/dist/bin/install-pwa.js.map +1 -1
  10. package/dist/config.d.ts +57 -12
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +257 -22
  13. package/dist/config.js.map +1 -1
  14. package/dist/database.d.ts +65 -0
  15. package/dist/database.d.ts.map +1 -1
  16. package/dist/database.js +105 -0
  17. package/dist/database.js.map +1 -1
  18. package/dist/entries/types.d.ts +4 -3
  19. package/dist/entries/types.d.ts.map +1 -1
  20. package/dist/entries/utils.d.ts +1 -0
  21. package/dist/entries/utils.d.ts.map +1 -1
  22. package/dist/entries/utils.js +8 -0
  23. package/dist/entries/utils.js.map +1 -1
  24. package/dist/entries/vite.d.ts +1 -1
  25. package/dist/entries/vite.d.ts.map +1 -1
  26. package/dist/index.d.ts +6 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +7 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/schema.d.ts +150 -0
  31. package/dist/schema.d.ts.map +1 -0
  32. package/dist/schema.js +891 -0
  33. package/dist/schema.js.map +1 -0
  34. package/dist/sw/build/vite-plugin.d.ts +93 -18
  35. package/dist/sw/build/vite-plugin.d.ts.map +1 -1
  36. package/dist/sw/build/vite-plugin.js +356 -22
  37. package/dist/sw/build/vite-plugin.js.map +1 -1
  38. package/dist/types.d.ts +139 -0
  39. package/dist/types.d.ts.map +1 -1
  40. package/package.json +3 -2
package/dist/database.js CHANGED
@@ -22,6 +22,24 @@
22
22
  */
23
23
  import Dexie from 'dexie';
24
24
  // =============================================================================
25
+ // System Indexes
26
+ // =============================================================================
27
+ /**
28
+ * Dexie indexes automatically appended to every app table when using the
29
+ * schema-driven API (`initEngine({ schema: {...} })`).
30
+ *
31
+ * These correspond to the system columns that every synced table has:
32
+ * - `id` — UUID primary key
33
+ * - `user_id` — ownership filter for RLS
34
+ * - `created_at` — creation timestamp
35
+ * - `updated_at` — last modification timestamp (sync cursor)
36
+ * - `deleted` — soft-delete flag
37
+ * - `_version` — optimistic concurrency version counter
38
+ *
39
+ * @see {@link config.ts#generateDatabaseFromSchema} for usage
40
+ */
41
+ export const SYSTEM_INDEXES = 'id, user_id, created_at, updated_at, deleted, _version';
42
+ // =============================================================================
25
43
  // System Tables
26
44
  // =============================================================================
27
45
  /**
@@ -190,6 +208,93 @@ export function getDb() {
190
208
  export function _setManagedDb(db) {
191
209
  managedDb = db;
192
210
  }
211
+ /**
212
+ * Compute a stable Dexie version number from a merged store schema.
213
+ *
214
+ * Uses a localStorage-backed hash comparison to detect schema changes:
215
+ * 1. Compute a deterministic hash of the stringified stores object.
216
+ * 2. Compare to the previously stored hash in localStorage.
217
+ * 3. If changed → increment the stored version, persist both hash and
218
+ * previous stores schema, and return the upgrade info.
219
+ * 4. If unchanged → return the stored version.
220
+ * 5. If first run → return version 1.
221
+ *
222
+ * When a schema change is detected, the previous stores schema is returned
223
+ * so that the caller can declare both versions. This gives Dexie a proper
224
+ * upgrade path (version N → version N+1) instead of requiring a full
225
+ * database rebuild.
226
+ *
227
+ * @param prefix - Application prefix for namespacing localStorage keys.
228
+ * @param mergedStores - The complete Dexie store schema (app + system tables).
229
+ * @returns Version info including previous stores for upgrade path.
230
+ *
231
+ * @example
232
+ * const result = computeSchemaVersion('stellar', {
233
+ * goals: 'id, user_id, goal_list_id, order',
234
+ * });
235
+ * // First run: { version: 1, previousStores: null, previousVersion: null }
236
+ * // On change: { version: 2, previousStores: { goals: '...' }, previousVersion: 1 }
237
+ *
238
+ * @see {@link config.ts#generateDatabaseFromSchema} for the caller
239
+ */
240
+ export function computeSchemaVersion(prefix, mergedStores) {
241
+ /* 1. Build a stable, sorted string representation of the schema. */
242
+ const schemaString = JSON.stringify(Object.keys(mergedStores)
243
+ .sort()
244
+ .map((k) => `${k}:${mergedStores[k]}`));
245
+ const hash = djb2Hash(schemaString);
246
+ /* 2. Compare to the stored hash. */
247
+ const hashKey = `${prefix}_schema_hash`;
248
+ const versionKey = `${prefix}_schema_version`;
249
+ const storesKey = `${prefix}_schema_stores`;
250
+ /* Guard for SSR or environments without localStorage. */
251
+ if (typeof localStorage === 'undefined') {
252
+ return { version: 1, previousStores: null, previousVersion: null };
253
+ }
254
+ const storedHash = localStorage.getItem(hashKey);
255
+ const storedVersion = parseInt(localStorage.getItem(versionKey) || '0', 10);
256
+ if (storedHash === hash) {
257
+ /* Schema unchanged — use the stored version. */
258
+ return { version: storedVersion || 1, previousStores: null, previousVersion: null };
259
+ }
260
+ /* 3. Schema changed (or first run) — bump version. */
261
+ const newVersion = (storedVersion || 0) + 1;
262
+ /* Retrieve the previous stores schema for the upgrade path. */
263
+ let previousStores = null;
264
+ const previousVersion = storedVersion || null;
265
+ const storedStores = localStorage.getItem(storesKey);
266
+ if (storedStores) {
267
+ try {
268
+ previousStores = JSON.parse(storedStores);
269
+ }
270
+ catch {
271
+ /* Corrupted — treat as first run. */
272
+ }
273
+ }
274
+ /* Persist the new state. */
275
+ localStorage.setItem(hashKey, hash);
276
+ localStorage.setItem(versionKey, String(newVersion));
277
+ localStorage.setItem(storesKey, JSON.stringify(mergedStores));
278
+ return { version: newVersion, previousStores, previousVersion };
279
+ }
280
+ /**
281
+ * DJB2 hash function — fast, deterministic string hash.
282
+ *
283
+ * Produces a hex string from an arbitrary input string. Not cryptographic,
284
+ * but sufficient for detecting schema changes across app restarts.
285
+ *
286
+ * @param str - The input string to hash.
287
+ * @returns A hex string representation of the hash.
288
+ * @internal
289
+ */
290
+ function djb2Hash(str) {
291
+ let hash = 5381;
292
+ for (let i = 0; i < str.length; i++) {
293
+ hash = (hash * 33) ^ str.charCodeAt(i);
294
+ }
295
+ /* Convert to unsigned 32-bit integer, then to hex. */
296
+ return (hash >>> 0).toString(16);
297
+ }
193
298
  // =============================================================================
194
299
  // Recovery
195
300
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,16 @@
8
8
  * No runtime code is emitted from this file — it contains only `export type`
9
9
  * statements and will be fully erased during compilation.
10
10
  */
11
- export type { SyncEngineConfig, TableConfig } from '../config';
12
- export type { DatabaseConfig, DatabaseVersionConfig } from '../database';
11
+ export type { SyncEngineConfig, TableConfig, InitEngineInput } from '../config';
12
+ export type { DatabaseConfig, DatabaseVersionConfig, SchemaVersionResult } from '../database';
13
13
  export type { BatchOperation } from '../data';
14
14
  export type { AuthStateResult } from '../auth/resolveAuthState';
15
15
  export type { AppConfig } from '../runtime/runtimeConfig';
16
- export type { SyncOperationItem, OperationType, OfflineCredentials, OfflineSession, ConflictHistoryEntry, SyncStatus, AuthMode, SingleUserConfig, SingleUserGateType } from '../types';
16
+ export type { SyncOperationItem, OperationType, OfflineCredentials, OfflineSession, ConflictHistoryEntry, SyncStatus, AuthMode, SingleUserConfig, SingleUserGateType, SchemaDefinition, SchemaTableConfig, AuthConfig, FieldType } from '../types';
17
17
  export type { SyncError, RealtimeState } from '../stores/sync';
18
18
  export type { RemoteActionType } from '../stores/remoteChanges';
19
19
  export type { DiagnosticsSnapshot } from '../diagnostics';
20
20
  export type { Session } from '@supabase/supabase-js';
21
21
  export type { CRDTConfig, UserPresenceState } from '../crdt/types';
22
+ export type { SQLGenerationOptions, TypeScriptGenerationOptions } from '../schema';
22
23
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/entries/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAQ/D,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAQzE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQ9C,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAOhE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAe1D,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AASlB,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAOhE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAQ1D,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAQrD,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/entries/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAQhF,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAQ9F,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQ9C,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAOhE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAe1D,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACV,MAAM,UAAU,CAAC;AASlB,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAOhE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAQ1D,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAQrD,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOnE,YAAY,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC"}
@@ -8,4 +8,5 @@
8
8
  export { generateId, now, calculateNewOrder, snakeToCamel, formatBytes } from '../utils';
9
9
  export { debug, isDebugMode, setDebugMode } from '../debug';
10
10
  export { getDiagnostics, getSyncDiagnostics, getRealtimeDiagnostics, getQueueDiagnostics, getConflictDiagnostics, getEngineDiagnostics, getNetworkDiagnostics, getErrorDiagnostics } from '../diagnostics';
11
+ export { generateSupabaseSQL, inferColumnType, generateMigrationSQL, generateTypeScript } from '../schema';
11
12
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/entries/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAUzF,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAS5D,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/entries/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAUzF,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAS5D,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAUxB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,WAAW,CAAC"}
@@ -31,4 +31,12 @@ export { debug, isDebugMode, setDebugMode } from '../debug';
31
31
  // - `getDiagnostics` — returns a comprehensive JSON snapshot of all engine state.
32
32
  // - Sub-category functions for lightweight access to specific sections.
33
33
  export { getDiagnostics, getSyncDiagnostics, getRealtimeDiagnostics, getQueueDiagnostics, getConflictDiagnostics, getEngineDiagnostics, getNetworkDiagnostics, getErrorDiagnostics } from '../diagnostics';
34
+ // =============================================================================
35
+ // SQL Generation
36
+ // =============================================================================
37
+ // Generate complete Supabase SQL from a declarative schema definition:
38
+ // - `generateSupabaseSQL` — produces CREATE TABLE, RLS, triggers, indexes.
39
+ // - `inferColumnType` — maps field names to SQL types via naming conventions.
40
+ // - `generateMigrationSQL` — diffs two schemas and produces ALTER statements.
41
+ export { generateSupabaseSQL, inferColumnType, generateMigrationSQL, generateTypeScript } from '../schema';
34
42
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/entries/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAChF,+CAA+C;AAC/C,sEAAsE;AACtE,2DAA2D;AAC3D,4EAA4E;AAC5E,mEAAmE;AACnE,oEAAoE;AACpE,uEAAuE;AAEvE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEzF,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,sDAAsD;AACtD,8EAA8E;AAC9E,qEAAqE;AACrE,gEAAgE;AAEhE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5D,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAChF,qEAAqE;AACrE,kFAAkF;AAClF,wEAAwE;AAExE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/entries/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAChF,+CAA+C;AAC/C,sEAAsE;AACtE,2DAA2D;AAC3D,4EAA4E;AAC5E,mEAAmE;AACnE,oEAAoE;AACpE,uEAAuE;AAEvE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEzF,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,sDAAsD;AACtD,8EAA8E;AAC9E,qEAAqE;AACrE,gEAAgE;AAEhE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE5D,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAChF,qEAAqE;AACrE,kFAAkF;AAClF,wEAAwE;AAExE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAExB,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAChF,uEAAuE;AACvE,2EAA2E;AAC3E,8EAA8E;AAC9E,8EAA8E;AAE9E,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,WAAW,CAAC"}
@@ -16,5 +16,5 @@
16
16
  * ```
17
17
  */
18
18
  export { stellarPWA } from '../sw/build/vite-plugin.js';
19
- export type { SWConfig } from '../sw/build/vite-plugin.js';
19
+ export type { SWConfig, SchemaConfig } from '../sw/build/vite-plugin.js';
20
20
  //# sourceMappingURL=vite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../../src/entries/vite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../../src/entries/vite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -29,9 +29,11 @@
29
29
  * which expose focused subsets of this API.
30
30
  */
31
31
  export { initEngine } from './config';
32
- export type { SyncEngineConfig, TableConfig } from './config';
32
+ export type { SyncEngineConfig, TableConfig, InitEngineInput } from './config';
33
33
  export { getDb, resetDatabase } from './database';
34
34
  export type { DatabaseConfig, DatabaseVersionConfig } from './database';
35
+ export { SYSTEM_INDEXES, computeSchemaVersion } from './database';
36
+ export type { SchemaVersionResult } from './database';
35
37
  export { startSyncEngine, runFullSync } from './engine';
36
38
  export { onSyncComplete } from './engine';
37
39
  export { engineCreate, engineUpdate, engineDelete, engineBatchWrite, engineIncrement } from './data';
@@ -64,7 +66,9 @@ export type { DiagnosticsSnapshot } from './diagnostics';
64
66
  export { remoteChangeAnimation, trackEditing, triggerLocalAnimation } from './actions/remoteChange';
65
67
  export { isDemoMode, setDemoMode, seedDemoData, cleanupDemoDatabase, getDemoConfig } from './demo';
66
68
  export type { DemoConfig } from './demo';
67
- export type { SyncOperationItem, OperationType, OfflineCredentials, OfflineSession, ConflictHistoryEntry, SyncStatus, AuthMode, SingleUserConfig, SingleUserGateType, TrustedDevice } from './types';
69
+ export type { SyncOperationItem, OperationType, OfflineCredentials, OfflineSession, ConflictHistoryEntry, SyncStatus, AuthMode, SingleUserConfig, SingleUserGateType, TrustedDevice, SchemaDefinition, SchemaTableConfig, AuthConfig, FieldType } from './types';
70
+ export { generateSupabaseSQL, inferColumnType, generateMigrationSQL, generateTypeScript } from './schema';
71
+ export type { SQLGenerationOptions, TypeScriptGenerationOptions } from './schema';
68
72
  export type { Session } from '@supabase/supabase-js';
69
73
  export { validateSupabaseCredentials, validateSchema } from './supabase/validate';
70
74
  export { isCRDTEnabled } from './crdt/config';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -42,6 +42,7 @@ export { initEngine } from './config';
42
42
  // - `getDb` — returns a typed handle to the open database instance.
43
43
  // - `resetDatabase` — deletes and re-creates the local database (destructive).
44
44
  export { getDb, resetDatabase } from './database';
45
+ export { SYSTEM_INDEXES, computeSchemaVersion } from './database';
45
46
  // =============================================================================
46
47
  // Engine Lifecycle
47
48
  // =============================================================================
@@ -208,6 +209,12 @@ export { remoteChangeAnimation, trackEditing, triggerLocalAnimation } from './ac
208
209
  // - `DemoConfig` — configuration interface for demo mode.
209
210
  export { isDemoMode, setDemoMode, seedDemoData, cleanupDemoDatabase, getDemoConfig } from './demo';
210
211
  // =============================================================================
212
+ // SQL Generation
213
+ // =============================================================================
214
+ // Generate complete Supabase SQL from a declarative schema definition.
215
+ // These are also available via `@prabhask5/stellar-engine/utils`.
216
+ export { generateSupabaseSQL, inferColumnType, generateMigrationSQL, generateTypeScript } from './schema';
217
+ // =============================================================================
211
218
  // Supabase Credential Validation (Server-Side)
212
219
  // =============================================================================
213
220
  // Server-side utilities for validating Supabase credentials and database
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAChF,0EAA0E;AAC1E,wEAAwE;AACxE,yEAAyE;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,sDAAsD;AACtD,oEAAoE;AACpE,+EAA+E;AAE/E,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlE,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAChF,oDAAoD;AACpD,qEAAqE;AACrE,wDAAwD;AACxD,yEAAyE;AACzE,6EAA6E;AAC7E,2DAA2D;AAE3D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAChF,+EAA+E;AAC/E,mCAAmC;AACnC,2CAA2C;AAC3C,iDAAiD;AACjD,wEAAwE;AACxE,iEAAiE;AACjE,+DAA+D;AAE/D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EAChB,MAAM,QAAQ,CAAC;AAGhB,gFAAgF;AAChF,4BAA4B;AAC5B,gFAAgF;AAChF,kEAAkE;AAClE,4DAA4D;AAC5D,wDAAwD;AACxD,oEAAoE;AACpE,qEAAqE;AACrE,2EAA2E;AAE3E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEnG,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAChF,gFAAgF;AAChF,mEAAmE;AACnE,4DAA4D;AAC5D,kEAAkE;AAClE,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEzE,gFAAgF;AAChF,iDAAiD;AACjD,gFAAgF;AAChF,uEAAuE;AACvE,iEAAiE;AAEjE,OAAO,EACL,OAAO,EACP,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,SAAS,EACT,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,wEAAwE;AACxE,6EAA6E;AAC7E,qDAAqD;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAChF,qEAAqE;AACrE,mEAAmE;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,gFAAgF;AAChF,wCAAwC;AACxC,gFAAgF;AAChF,yEAAyE;AACzE,6EAA6E;AAE7E,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,MAAM,EACN,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,yCAAyC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE5F,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAChF,wDAAwD;AACxD,6EAA6E;AAC7E,yDAAyD;AACzD,mFAAmF;AACnF,4EAA4E;AAC5E,6EAA6E;AAC7E,6EAA6E;AAE7E,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACf,MAAM,2BAA2B,CAAC;AAEnC,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,8EAA8E;AAC9E,qFAAqF;AACrF,iFAAiF;AACjF,mEAAmE;AACnE,6EAA6E;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjF,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,+EAA+E;AAC/E,wCAAwC;AAExC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAQ9E,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAChF,6EAA6E;AAC7E,+EAA+E;AAC/E,qDAAqD;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,gFAAgF;AAChF,+CAA+C;AAC/C,gFAAgF;AAChF,0EAA0E;AAC1E,+EAA+E;AAC/E,oDAAoD;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,yCAAyC;AACzC,0DAA0D;AAC1D,4DAA4D;AAC5D,wEAAwE;AAExE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAG3E,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,sDAAsD;AACtD,2EAA2E;AAC3E,6EAA6E;AAE7E,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE3D,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAChF,yBAAyB;AACzB,iDAAiD;AACjD,oDAAoD;AACpD,2EAA2E;AAC3E,2DAA2D;AAE3D,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExF,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAChF,qEAAqE;AACrE,yEAAyE;AACzE,6DAA6D;AAE7D,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AAGvB,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAChF,uEAAuE;AACvE,sFAAsF;AACtF,gEAAgE;AAChE,+EAA+E;AAE/E,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpG,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAChF,sEAAsE;AACtE,mEAAmE;AACnE,+EAA+E;AAC/E,0EAA0E;AAC1E,gEAAgE;AAChE,0DAA0D;AAE1D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AA0BnG,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAChF,uEAAuE;AACvE,kEAAkE;AAElE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAWlB,gFAAgF;AAChF,gDAAgD;AAChD,gFAAgF;AAChF,yEAAyE;AACzE,yCAAyC;AACzC,6EAA6E;AAC7E,oDAAoD;AACpD,8EAA8E;AAC9E,6CAA6C;AAE7C,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAElF,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAChF,wEAAwE;AACxE,oEAAoE;AACpE,0EAA0E;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * @fileoverview Supabase SQL Generation from Schema Definitions
3
+ *
4
+ * Generates complete Supabase SQL (CREATE TABLE, RLS, triggers, indexes,
5
+ * realtime subscriptions) from a declarative {@link SchemaDefinition}.
6
+ * This eliminates the need for consumers to hand-write SQL — the schema
7
+ * in code becomes the single source of truth.
8
+ *
9
+ * The generation flow:
10
+ * 1. Schema string fields → Supabase SQL columns (with inferred types)
11
+ * 2. `sqlColumns` (object form) → Supabase SQL columns (explicit types)
12
+ * 3. System columns (auto) → Both Supabase + Dexie
13
+ *
14
+ * Column types are inferred from field naming conventions:
15
+ * - `*_id` → `uuid` (foreign key)
16
+ * - `*_at` → `timestamptz`
17
+ * - `order` → `double precision default 0`
18
+ * - `*_count`, `*_value`, etc. → `integer default 0`
19
+ * - Boolean patterns (`is_*`, `completed`, etc.) → `boolean default false`
20
+ * - Everything else → `text`
21
+ *
22
+ * @see {@link config.ts#initEngine} for schema-driven initialization
23
+ * @see {@link sw/build/vite-plugin.ts} for the Vite plugin that auto-applies generated SQL
24
+ */
25
+ import type { SchemaDefinition } from './types';
26
+ /**
27
+ * Options for controlling SQL generation output.
28
+ *
29
+ * All fields are optional with sensible defaults. The most common use case
30
+ * is to just call `generateSupabaseSQL(schema)` with no options.
31
+ *
32
+ * @example
33
+ * generateSupabaseSQL(schema, {
34
+ * appName: 'Stellar',
35
+ * includeCRDT: true,
36
+ * includeDeviceVerification: true,
37
+ * });
38
+ */
39
+ export interface SQLGenerationOptions {
40
+ /** Application name for SQL comments. */
41
+ appName?: string;
42
+ /** Include CRDT document storage table. @default false */
43
+ includeCRDT?: boolean;
44
+ /** Include trusted_devices table. @default true */
45
+ includeDeviceVerification?: boolean;
46
+ /** Include helper functions (set_user_id, update_updated_at). @default true */
47
+ includeHelperFunctions?: boolean;
48
+ }
49
+ /**
50
+ * Options for controlling TypeScript interface generation.
51
+ */
52
+ export interface TypeScriptGenerationOptions {
53
+ /** Header comment at the top of the generated file. */
54
+ header?: string;
55
+ /** Whether to include system columns in generated interfaces. @default true */
56
+ includeSystemColumns?: boolean;
57
+ }
58
+ /**
59
+ * Infer a SQL column type from a field name using naming conventions.
60
+ *
61
+ * The engine uses consistent field naming patterns across all apps, so the
62
+ * column type can be reliably determined from the field suffix or exact name.
63
+ * Consumers can override any inference via `sqlColumns` in the schema config.
64
+ *
65
+ * @param fieldName - The snake_case field name (e.g., `'goal_list_id'`, `'order'`).
66
+ * @returns The SQL type with optional default (e.g., `'uuid'`, `'boolean default false'`).
67
+ *
68
+ * @example
69
+ * inferColumnType('goal_list_id'); // → 'uuid'
70
+ * inferColumnType('completed_at'); // → 'timestamptz'
71
+ * inferColumnType('order'); // → 'double precision default 0'
72
+ * inferColumnType('is_active'); // → 'boolean default false'
73
+ * inferColumnType('title'); // → 'text'
74
+ *
75
+ * @see {@link SchemaTableConfig.sqlColumns} for explicit type overrides
76
+ */
77
+ export declare function inferColumnType(fieldName: string): string;
78
+ /**
79
+ * Generate TypeScript interfaces and enum types from a schema definition.
80
+ *
81
+ * Only tables with a `fields` property are included. Tables without `fields`
82
+ * are silently skipped (backward-compatible).
83
+ *
84
+ * @param schema - The declarative schema definition.
85
+ * @param options - Optional generation options.
86
+ * @returns The generated TypeScript source string.
87
+ */
88
+ export declare function generateTypeScript(schema: SchemaDefinition, options?: TypeScriptGenerationOptions): string;
89
+ /**
90
+ * Generate the complete Supabase SQL from a declarative schema definition.
91
+ *
92
+ * This is the main entry point for SQL generation. It produces a single SQL
93
+ * file that can be pasted directly into the Supabase SQL Editor to bootstrap
94
+ * the entire database.
95
+ *
96
+ * The generated SQL includes (in order):
97
+ * 1. Extensions (`uuid-ossp`)
98
+ * 2. Helper functions (`set_user_id`, `update_updated_at_column`)
99
+ * 3. One `CREATE TABLE` block per schema table
100
+ * 4. `trusted_devices` table (unless `includeDeviceVerification` is `false`)
101
+ * 5. `crdt_documents` table (only if `includeCRDT` is `true`)
102
+ *
103
+ * @param schema - The declarative schema definition.
104
+ * @param options - Optional generation options.
105
+ * @returns The complete SQL string ready for execution.
106
+ *
107
+ * @example
108
+ * const sql = generateSupabaseSQL({
109
+ * goals: 'goal_list_id, order',
110
+ * goal_lists: { indexes: 'order', sqlColumns: { name: 'text not null' } },
111
+ * focus_settings: { singleton: true },
112
+ * }, { appName: 'Stellar' });
113
+ *
114
+ * // Write to file or paste into Supabase SQL Editor
115
+ * fs.writeFileSync('supabase-schema.sql', sql);
116
+ *
117
+ * @see {@link SchemaDefinition} for the schema format
118
+ * @see {@link generateMigrationSQL} for incremental schema changes
119
+ */
120
+ export declare function generateSupabaseSQL(schema: SchemaDefinition, options?: SQLGenerationOptions): string;
121
+ /**
122
+ * Generate migration SQL by diffing two schema definitions.
123
+ *
124
+ * Compares the current (deployed) schema against the new (desired) schema
125
+ * and produces `ALTER TABLE` statements for the differences:
126
+ * - **New tables** → full `CREATE TABLE` (via {@link generateTableSQL})
127
+ * - **Removed tables** → commented-out `DROP TABLE` (safety: requires manual review)
128
+ * - **New columns** → `ALTER TABLE ... ADD COLUMN`
129
+ * - **Removed columns** → commented-out `ALTER TABLE ... DROP COLUMN`
130
+ *
131
+ * This function intentionally does NOT handle column type changes — those
132
+ * require careful manual migration (data conversion, backfill, etc.).
133
+ *
134
+ * @param currentSchema - The currently deployed schema definition.
135
+ * @param newSchema - The desired (target) schema definition.
136
+ * @returns The migration SQL string. Empty string if no changes detected.
137
+ *
138
+ * @example
139
+ * const migration = generateMigrationSQL(
140
+ * { goals: 'goal_list_id, order' },
141
+ * {
142
+ * goals: 'goal_list_id, order, priority', // added column
143
+ * tags: 'name', // new table
144
+ * }
145
+ * );
146
+ *
147
+ * @see {@link generateSupabaseSQL} for generating the initial schema
148
+ */
149
+ export declare function generateMigrationSQL(currentSchema: SchemaDefinition, newSchema: SchemaDefinition): string;
150
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAgC,MAAM,SAAS,CAAC;AAM9E;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mDAAmD;IACnD,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAuCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA4CzD;AA0MD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,2BAA2B,GACpC,MAAM,CAkFR;AA8ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAgMR;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,gBAAgB,EAC/B,SAAS,EAAE,gBAAgB,GAC1B,MAAM,CA2MR"}