@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.
- package/README.md +446 -373
- 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 +57 -12
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +257 -22
- package/dist/config.js.map +1 -1
- package/dist/database.d.ts +65 -0
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +105 -0
- package/dist/database.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/types.d.ts +139 -0
- package/dist/types.d.ts.map +1 -1
- 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
|
// =============================================================================
|
package/dist/database.js.map
CHANGED
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AA+B1B,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,wDAAwD,CAAC;AAEvF,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,aAAa,GAA2B;IAC5C,SAAS,EAAE,kCAAkC;IAC7C,eAAe,EAAE,uCAAuC;IACxD,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,kBAAkB,GAA2B;IACjD,aAAa,EAAE,oCAAoC;IACnD,kBAAkB,EAAE,6BAA6B;CAClD,CAAC;AAEF,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,kFAAkF;AAClF,IAAI,SAAS,GAAiB,IAAI,CAAC;AAEnC,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAsB,EAAE,WAAW,GAAG,KAAK;IAC9E,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH;;;;WAIG;QACH,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAEhB;;;;;;;WAOG;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAC3B,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACtD,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CACX,mDAAmD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBACvE,eAAe,GAAG,CAAC,OAAO,oBAAoB,EAAE,CAAC,KAAK,8BAA8B,CACvF,CAAC;gBACF,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAChC,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBACrC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX;;;;WAIG;QACH,OAAO,CAAC,KAAK,CAAC,wDAAwD,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;QACnE,CAAC;QACD,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACrC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,SAAS,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,MAAsB,EAAE,WAAW,GAAG,KAAK;IAC7D,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClC;+EACuE;QACvE,MAAM,YAAY,GAAG;YACnB,GAAG,GAAG,CAAC,MAAM;YACb,GAAG,aAAa;YAChB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3C,CAAC;QACF,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,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;GAKG;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;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,EAAS;IACrC,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC;AA2BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,YAAoC;IAEpC,oEAAoE;IACpE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CACjC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;SACtB,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CACzC,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEpC,oCAAoC;IACpC,MAAM,OAAO,GAAG,GAAG,MAAM,cAAc,CAAC;IACxC,MAAM,UAAU,GAAG,GAAG,MAAM,iBAAiB,CAAC;IAC9C,MAAM,SAAS,GAAG,GAAG,MAAM,gBAAgB,CAAC;IAE5C,yDAAyD;IACzD,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACrE,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAE5E,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,gDAAgD;QAChD,OAAO,EAAE,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACtF,CAAC;IAED,sDAAsD;IACtD,MAAM,UAAU,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAE5C,+DAA+D;IAC/D,IAAI,cAAc,GAAkC,IAAI,CAAC;IACzD,MAAM,eAAe,GAAG,aAAa,IAAI,IAAI,CAAC;IAC9C,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IACrD,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,sDAAsD;IACtD,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;IAE9B,yDAAyD;IACzD,SAAS,CAAC,KAAK,EAAE,CAAC;IAClB,SAAS,GAAG,IAAI,CAAC;IAEjB,0BAA0B;IAC1B,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3B;;;;OAIG;IACH,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7F,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/entries/types.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/entries/utils.d.ts
CHANGED
|
@@ -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"}
|
package/dist/entries/utils.js
CHANGED
|
@@ -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"}
|
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"}
|