@prabhask5/stellar-engine 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +454 -386
- package/dist/auth/resolveAuthState.js +3 -16
- package/dist/auth/resolveAuthState.js.map +1 -1
- package/dist/auth/singleUser.d.ts.map +1 -1
- package/dist/auth/singleUser.js +2 -3
- package/dist/auth/singleUser.js.map +1 -1
- package/dist/bin/commands.d.ts +14 -0
- package/dist/bin/commands.d.ts.map +1 -0
- package/dist/bin/commands.js +68 -0
- package/dist/bin/commands.js.map +1 -0
- package/dist/bin/install-pwa.d.ts +20 -6
- package/dist/bin/install-pwa.d.ts.map +1 -1
- package/dist/bin/install-pwa.js +111 -234
- package/dist/bin/install-pwa.js.map +1 -1
- package/dist/config.d.ts +63 -29
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +265 -37
- package/dist/config.js.map +1 -1
- package/dist/database.d.ts +64 -14
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +104 -16
- package/dist/database.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +8 -11
- package/dist/engine.js.map +1 -1
- package/dist/entries/types.d.ts +4 -3
- package/dist/entries/types.d.ts.map +1 -1
- package/dist/entries/utils.d.ts +1 -0
- package/dist/entries/utils.d.ts.map +1 -1
- package/dist/entries/utils.js +8 -0
- package/dist/entries/utils.js.map +1 -1
- package/dist/entries/vite.d.ts +1 -1
- package/dist/entries/vite.d.ts.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +150 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +891 -0
- package/dist/schema.js.map +1 -0
- package/dist/sw/build/vite-plugin.d.ts +93 -18
- package/dist/sw/build/vite-plugin.d.ts.map +1 -1
- package/dist/sw/build/vite-plugin.js +356 -22
- package/dist/sw/build/vite-plugin.js.map +1 -1
- package/dist/sw/sw.js +0 -5
- package/dist/types.d.ts +139 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/entries/vite.d.ts
CHANGED
|
@@ -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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AASH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts
ADDED
|
@@ -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"}
|