@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.
Files changed (49) hide show
  1. package/README.md +454 -386
  2. package/dist/auth/resolveAuthState.js +3 -16
  3. package/dist/auth/resolveAuthState.js.map +1 -1
  4. package/dist/auth/singleUser.d.ts.map +1 -1
  5. package/dist/auth/singleUser.js +2 -3
  6. package/dist/auth/singleUser.js.map +1 -1
  7. package/dist/bin/commands.d.ts +14 -0
  8. package/dist/bin/commands.d.ts.map +1 -0
  9. package/dist/bin/commands.js +68 -0
  10. package/dist/bin/commands.js.map +1 -0
  11. package/dist/bin/install-pwa.d.ts +20 -6
  12. package/dist/bin/install-pwa.d.ts.map +1 -1
  13. package/dist/bin/install-pwa.js +111 -234
  14. package/dist/bin/install-pwa.js.map +1 -1
  15. package/dist/config.d.ts +63 -29
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/config.js +265 -37
  18. package/dist/config.js.map +1 -1
  19. package/dist/database.d.ts +64 -14
  20. package/dist/database.d.ts.map +1 -1
  21. package/dist/database.js +104 -16
  22. package/dist/database.js.map +1 -1
  23. package/dist/engine.d.ts.map +1 -1
  24. package/dist/engine.js +8 -11
  25. package/dist/engine.js.map +1 -1
  26. package/dist/entries/types.d.ts +4 -3
  27. package/dist/entries/types.d.ts.map +1 -1
  28. package/dist/entries/utils.d.ts +1 -0
  29. package/dist/entries/utils.d.ts.map +1 -1
  30. package/dist/entries/utils.js +8 -0
  31. package/dist/entries/utils.js.map +1 -1
  32. package/dist/entries/vite.d.ts +1 -1
  33. package/dist/entries/vite.d.ts.map +1 -1
  34. package/dist/index.d.ts +6 -2
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +7 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/schema.d.ts +150 -0
  39. package/dist/schema.d.ts.map +1 -0
  40. package/dist/schema.js +891 -0
  41. package/dist/schema.js.map +1 -0
  42. package/dist/sw/build/vite-plugin.d.ts +93 -18
  43. package/dist/sw/build/vite-plugin.d.ts.map +1 -1
  44. package/dist/sw/build/vite-plugin.js +356 -22
  45. package/dist/sw/build/vite-plugin.js.map +1 -1
  46. package/dist/sw/sw.js +0 -5
  47. package/dist/types.d.ts +139 -0
  48. package/dist/types.d.ts.map +1 -1
  49. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,19 @@
1
1
  /**
2
- * @fileoverview Vite plugin that generates the service worker and asset manifest
3
- * at build time. Projects import this instead of maintaining their own SW logic.
2
+ * @fileoverview Vite plugin that generates the service worker, asset manifest,
3
+ * and (optionally) auto-generates TypeScript types and pushes schema migrations
4
+ * to Supabase.
4
5
  *
5
- * The plugin hooks into two Vite/Rollup lifecycle events:
6
- * - **`buildStart`** — reads the compiled SW template from the stellar-engine
7
- * package, patches in app-specific tokens, and writes `static/sw.js`.
6
+ * The plugin hooks into three Vite/Rollup lifecycle events:
7
+ * - **`buildStart`** — generates `static/sw.js` from the compiled SW template.
8
+ * When `schema` is enabled, also runs a one-shot schema processing pass
9
+ * (types generation + migration push). This ensures CI builds that never
10
+ * run `npm run dev` still auto-migrate Supabase.
8
11
  * - **`closeBundle`** — after Rollup finishes writing chunks, scans the
9
12
  * immutable output directory and writes `asset-manifest.json` listing
10
13
  * all JS/CSS files for the service worker to precache.
14
+ * - **`configureServer`** (dev only) — watches the schema file and
15
+ * auto-generates TypeScript types + auto-pushes Supabase migrations
16
+ * on every save, with 500ms debounce to prevent RPC spam.
11
17
  *
12
18
  * @example
13
19
  * ```ts
@@ -19,14 +25,57 @@
19
25
  * export default defineConfig({
20
26
  * plugins: [
21
27
  * sveltekit(),
22
- * stellarPWA({ prefix: 'myapp', name: 'My App' })
28
+ * stellarPWA({ prefix: 'myapp', name: 'My App', schema: true })
23
29
  * ]
24
30
  * });
25
31
  * ```
26
32
  *
27
33
  * @see {@link stellarPWA} for the main plugin factory
28
34
  * @see {@link SWConfig} for configuration options
35
+ * @see {@link SchemaConfig} for schema auto-generation options
29
36
  */
37
+ /**
38
+ * Schema auto-generation configuration.
39
+ *
40
+ * Controls how the Vite plugin watches the schema file, generates TypeScript
41
+ * types, and optionally pushes migrations to Supabase during development.
42
+ *
43
+ * Pass `true` as shorthand for `{}` (all defaults).
44
+ *
45
+ * @example
46
+ * // All defaults:
47
+ * stellarPWA({ prefix: 'myapp', name: 'My App', schema: true })
48
+ *
49
+ * // Custom paths:
50
+ * stellarPWA({
51
+ * prefix: 'myapp',
52
+ * name: 'My App',
53
+ * schema: {
54
+ * path: 'src/lib/schema.ts',
55
+ * typesOutput: 'src/lib/types.generated.ts',
56
+ * autoMigrate: true,
57
+ * }
58
+ * })
59
+ */
60
+ export interface SchemaConfig {
61
+ /**
62
+ * Path to the schema file (relative to project root).
63
+ * @default 'src/lib/schema.ts'
64
+ */
65
+ path?: string;
66
+ /**
67
+ * Path where generated TypeScript types are written (relative to project root).
68
+ * @default 'src/lib/types.generated.ts'
69
+ */
70
+ typesOutput?: string;
71
+ /**
72
+ * Whether to auto-push migration SQL to Supabase via RPC.
73
+ * When `true`, requires `PUBLIC_SUPABASE_URL` and `SUPABASE_SERVICE_ROLE_KEY`
74
+ * in the environment. Falls back to a warning if env vars are missing.
75
+ * @default true
76
+ */
77
+ autoMigrate?: boolean;
78
+ }
30
79
  /**
31
80
  * Configuration options for the stellarPWA Vite plugin.
32
81
  */
@@ -41,34 +90,60 @@ export interface SWConfig {
41
90
  * and any other user-facing SW output.
42
91
  */
43
92
  name: string;
93
+ /**
94
+ * Enable schema-driven auto-generation of TypeScript types and Supabase
95
+ * migration SQL.
96
+ *
97
+ * Pass `true` for all defaults, or a {@link SchemaConfig} object for
98
+ * full control over paths and behavior.
99
+ *
100
+ * When enabled, the plugin:
101
+ * 1. On every build (dev or production): generates types + pushes migrations
102
+ * 2. During dev: also watches for changes with debounced re-processing
103
+ *
104
+ * @default undefined (disabled)
105
+ */
106
+ schema?: boolean | SchemaConfig;
44
107
  }
45
108
  /**
46
- * Vite plugin factory that generates `static/sw.js` and `asset-manifest.json`
47
- * at build time.
109
+ * Vite plugin factory that generates `static/sw.js`, `asset-manifest.json`,
110
+ * and optionally auto-generates types + auto-pushes schema migrations.
48
111
  *
49
- * **`buildStart` hook:**
50
- * - Reads the compiled SW source from stellar-engine's `dist/sw/sw.js`.
51
- * - Replaces placeholder tokens (`__SW_VERSION__`, `__SW_PREFIX__`, `__SW_NAME__`)
52
- * with app-specific values and a unique version stamp (base-36 timestamp).
53
- * - Strips the `export {};` that TypeScript adds (SW runs as a classic script).
54
- * - Writes the final `static/sw.js`.
112
+ * **`buildStart` hook (dev + production builds):**
113
+ * - Generates `static/sw.js` from the compiled SW template.
114
+ * - When `schema` is enabled: loads the schema file via esbuild, generates
115
+ * TypeScript types, diffs against the snapshot, and pushes migration SQL
116
+ * to Supabase. This ensures CI/CD builds that skip `npm run dev` still
117
+ * auto-migrate the database.
55
118
  *
56
119
  * **`closeBundle` hook:**
57
120
  * - Scans SvelteKit's immutable output directory for JS and CSS files.
58
121
  * - Writes `asset-manifest.json` to both `static/` and the build output
59
122
  * directory so the service worker can precache all app chunks.
60
123
  *
61
- * @param config - The {@link SWConfig} with `prefix` and `name` values.
62
- * @returns A Vite plugin object with `name`, `buildStart`, and `closeBundle` hooks.
124
+ * **`configureServer` hook (dev only, when `schema` is enabled):**
125
+ * - On server start, processes the schema file once via Vite's SSR loader.
126
+ * - Watches the schema file for changes with 500ms debounce.
127
+ * - Each change re-generates types and pushes migration SQL.
128
+ *
129
+ * @param config - The {@link SWConfig} with `prefix`, `name`, and optional `schema`.
130
+ * @returns A Vite plugin object with `name`, `buildStart`, `closeBundle`, and
131
+ * optionally `configureServer` hooks.
63
132
  *
64
133
  * @example
65
134
  * ```ts
66
- * stellarPWA({ prefix: 'myapp', name: 'My App' })
135
+ * stellarPWA({ prefix: 'myapp', name: 'My App', schema: true })
67
136
  * ```
68
137
  */
69
138
  export declare function stellarPWA(config: SWConfig): {
70
139
  name: string;
71
- buildStart(): void;
140
+ buildStart(): Promise<void>;
72
141
  closeBundle(): void;
142
+ configureServer(server: {
143
+ ssrLoadModule: (id: string) => Promise<Record<string, unknown>>;
144
+ watcher: {
145
+ on: (event: string, cb: (path: string) => void) => void;
146
+ };
147
+ }): void;
73
148
  };
74
149
  //# sourceMappingURL=vite-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../../../src/sw/build/vite-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAWH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAmED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ;;;;EAyE1C"}
1
+ {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../../../src/sw/build/vite-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAmBH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;CACjC;AAuVD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,QAAQ;;;;4BA2Gf;QACtB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,OAAO,EAAE;YAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,CAAA;SAAE,CAAC;KACtE;EAmDJ"}
@@ -1,13 +1,19 @@
1
1
  /**
2
- * @fileoverview Vite plugin that generates the service worker and asset manifest
3
- * at build time. Projects import this instead of maintaining their own SW logic.
2
+ * @fileoverview Vite plugin that generates the service worker, asset manifest,
3
+ * and (optionally) auto-generates TypeScript types and pushes schema migrations
4
+ * to Supabase.
4
5
  *
5
- * The plugin hooks into two Vite/Rollup lifecycle events:
6
- * - **`buildStart`** — reads the compiled SW template from the stellar-engine
7
- * package, patches in app-specific tokens, and writes `static/sw.js`.
6
+ * The plugin hooks into three Vite/Rollup lifecycle events:
7
+ * - **`buildStart`** — generates `static/sw.js` from the compiled SW template.
8
+ * When `schema` is enabled, also runs a one-shot schema processing pass
9
+ * (types generation + migration push). This ensures CI builds that never
10
+ * run `npm run dev` still auto-migrate Supabase.
8
11
  * - **`closeBundle`** — after Rollup finishes writing chunks, scans the
9
12
  * immutable output directory and writes `asset-manifest.json` listing
10
13
  * all JS/CSS files for the service worker to precache.
14
+ * - **`configureServer`** (dev only) — watches the schema file and
15
+ * auto-generates TypeScript types + auto-pushes Supabase migrations
16
+ * on every save, with 500ms debounce to prevent RPC spam.
11
17
  *
12
18
  * @example
13
19
  * ```ts
@@ -19,19 +25,40 @@
19
25
  * export default defineConfig({
20
26
  * plugins: [
21
27
  * sveltekit(),
22
- * stellarPWA({ prefix: 'myapp', name: 'My App' })
28
+ * stellarPWA({ prefix: 'myapp', name: 'My App', schema: true })
23
29
  * ]
24
30
  * });
25
31
  * ```
26
32
  *
27
33
  * @see {@link stellarPWA} for the main plugin factory
28
34
  * @see {@link SWConfig} for configuration options
35
+ * @see {@link SchemaConfig} for schema auto-generation options
29
36
  */
30
- import { readFileSync, writeFileSync, readdirSync, statSync, existsSync, mkdirSync } from 'fs';
31
- import { resolve, join, dirname } from 'path';
32
- import { fileURLToPath } from 'url';
37
+ import { readFileSync, writeFileSync, readdirSync, statSync, existsSync, mkdirSync, unlinkSync } from 'fs';
38
+ import { resolve, join, dirname, relative } from 'path';
39
+ import { fileURLToPath, pathToFileURL } from 'url';
33
40
  import { createRequire } from 'module';
34
41
  // =============================================================================
42
+ // CONSTANTS
43
+ // =============================================================================
44
+ /**
45
+ * Debounce delay (ms) for schema change processing.
46
+ *
47
+ * Prevents Supabase RPC spam when the user saves rapidly (e.g., holding
48
+ * Ctrl+S or using auto-save). Only the last save within the window triggers
49
+ * processing.
50
+ */
51
+ const SCHEMA_DEBOUNCE_MS = 500;
52
+ /**
53
+ * Directory name for storing schema snapshots (relative to project root).
54
+ * The snapshot file tracks the last-known schema state for migration diffing.
55
+ */
56
+ const SNAPSHOT_DIR = '.stellar';
57
+ /**
58
+ * Filename for the schema snapshot within {@link SNAPSHOT_DIR}.
59
+ */
60
+ const SNAPSHOT_FILE = 'schema-snapshot.json';
61
+ // =============================================================================
35
62
  // FILESYSTEM HELPERS
36
63
  // =============================================================================
37
64
  /**
@@ -92,37 +119,276 @@ function findSwSource() {
92
119
  return join(pkgDir, 'dist', 'sw', 'sw.js');
93
120
  }
94
121
  // =============================================================================
122
+ // SCHEMA HELPERS
123
+ // =============================================================================
124
+ /**
125
+ * Resolve the boolean-or-object `schema` config into a fully-resolved
126
+ * options object with all defaults applied.
127
+ *
128
+ * @param schema - The raw schema config from {@link SWConfig}.
129
+ * @returns A fully-resolved schema options object.
130
+ */
131
+ function resolveSchemaOpts(schema) {
132
+ if (typeof schema === 'object') {
133
+ return {
134
+ path: schema.path || 'src/lib/schema.ts',
135
+ typesOutput: schema.typesOutput || 'src/lib/types.generated.ts',
136
+ autoMigrate: schema.autoMigrate !== false
137
+ };
138
+ }
139
+ return {
140
+ path: 'src/lib/schema.ts',
141
+ typesOutput: 'src/lib/types.generated.ts',
142
+ autoMigrate: true
143
+ };
144
+ }
145
+ /**
146
+ * Strip non-serializable values (functions) from a schema object before
147
+ * saving it as a JSON snapshot.
148
+ *
149
+ * Function values (e.g., `onRemoteChange` callbacks) cannot be serialized
150
+ * and would cause JSON.stringify to drop them silently. This function
151
+ * recursively strips them to produce a clean, deterministic snapshot.
152
+ *
153
+ * @param obj - The schema object to clean.
154
+ * @returns A new object with all function values removed.
155
+ */
156
+ function stripFunctions(obj) {
157
+ const result = {};
158
+ for (const [key, value] of Object.entries(obj)) {
159
+ if (typeof value === 'function')
160
+ continue;
161
+ if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
162
+ result[key] = stripFunctions(value);
163
+ }
164
+ else {
165
+ result[key] = value;
166
+ }
167
+ }
168
+ return result;
169
+ }
170
+ /**
171
+ * Load the schema snapshot from disk.
172
+ *
173
+ * @param projectRoot - The project root directory.
174
+ * @returns The parsed snapshot, or `null` if no snapshot exists.
175
+ */
176
+ function loadSnapshot(projectRoot) {
177
+ const snapshotPath = join(projectRoot, SNAPSHOT_DIR, SNAPSHOT_FILE);
178
+ if (!existsSync(snapshotPath))
179
+ return null;
180
+ try {
181
+ return JSON.parse(readFileSync(snapshotPath, 'utf-8'));
182
+ }
183
+ catch {
184
+ return null;
185
+ }
186
+ }
187
+ /**
188
+ * Save a schema snapshot to disk.
189
+ *
190
+ * Creates the `.stellar/` directory if it doesn't exist.
191
+ *
192
+ * @param projectRoot - The project root directory.
193
+ * @param schema - The schema object to snapshot (functions will be stripped).
194
+ */
195
+ function saveSnapshot(projectRoot, schema) {
196
+ const dir = join(projectRoot, SNAPSHOT_DIR);
197
+ if (!existsSync(dir)) {
198
+ mkdirSync(dir, { recursive: true });
199
+ }
200
+ const cleaned = stripFunctions(schema);
201
+ writeFileSync(join(dir, SNAPSHOT_FILE), JSON.stringify(cleaned, null, 2) + '\n', 'utf-8');
202
+ }
203
+ /**
204
+ * Load a TypeScript schema file by transpiling it with esbuild and
205
+ * dynamically importing the result.
206
+ *
207
+ * Used during `buildStart` where Vite's `ssrLoadModule` is not available.
208
+ * Esbuild is always present in the consumer's `node_modules` because Vite
209
+ * depends on it. The schema file typically only contains type-only imports
210
+ * (which esbuild strips) and a plain object export, so bundling is not needed.
211
+ *
212
+ * @param schemaPath - Absolute path to the `.ts` schema file.
213
+ * @returns The exported `schema` object, or `null` if not found.
214
+ */
215
+ async function loadSchemaFromFile(schemaPath) {
216
+ if (!existsSync(schemaPath))
217
+ return null;
218
+ const source = readFileSync(schemaPath, 'utf-8');
219
+ const { transform } = await import('esbuild');
220
+ const { code } = await transform(source, { loader: 'ts', format: 'esm' });
221
+ /* Write transpiled JS to a temp file for dynamic import.
222
+ * Use a unique name to avoid Node's module cache returning stale data. */
223
+ const tmpPath = join(dirname(schemaPath), `.schema.tmp.${Date.now()}.mjs`);
224
+ writeFileSync(tmpPath, code, 'utf-8');
225
+ try {
226
+ const mod = await import(pathToFileURL(tmpPath).href);
227
+ return mod.schema || null;
228
+ }
229
+ finally {
230
+ try {
231
+ unlinkSync(tmpPath);
232
+ }
233
+ catch {
234
+ /* Best-effort cleanup — temp file in src/lib/ is harmless if left behind. */
235
+ }
236
+ }
237
+ }
238
+ /**
239
+ * Core schema processing: generate types, diff against snapshot, push migration.
240
+ *
241
+ * Shared by both `buildStart` (one-shot during builds) and `configureServer`
242
+ * (on each schema file change during dev). The only difference is how the
243
+ * schema module is loaded — the caller provides the loaded schema object.
244
+ *
245
+ * @param schema - The loaded schema object (from `ssrLoadModule` or `loadSchemaFromFile`).
246
+ * @param appName - The application name (for SQL generation headers).
247
+ * @param schemaOpts - Resolved schema options (paths, autoMigrate flag).
248
+ * @param projectRoot - Absolute path to the project root.
249
+ */
250
+ async function processLoadedSchema(schema, appName, schemaOpts, projectRoot) {
251
+ const typesAbsPath = resolve(schemaOpts.typesOutput);
252
+ /* 1. Generate TypeScript types (only write if content changed). */
253
+ const { generateTypeScript } = await import('../../schema.js');
254
+ const tsContent = generateTypeScript(schema);
255
+ let existingContent = '';
256
+ if (existsSync(typesAbsPath)) {
257
+ existingContent = readFileSync(typesAbsPath, 'utf-8');
258
+ }
259
+ if (tsContent !== existingContent) {
260
+ const typesDir = dirname(typesAbsPath);
261
+ if (!existsSync(typesDir)) {
262
+ mkdirSync(typesDir, { recursive: true });
263
+ }
264
+ writeFileSync(typesAbsPath, tsContent, 'utf-8');
265
+ const relPath = relative(projectRoot, typesAbsPath);
266
+ console.log(`[stellar] Types generated at ${relPath}`);
267
+ }
268
+ /* 2. Load the previous schema snapshot for migration diffing. */
269
+ const snapshot = loadSnapshot(projectRoot);
270
+ if (snapshot && schemaOpts.autoMigrate) {
271
+ /* Diff the old and new schemas. */
272
+ const { generateMigrationSQL } = await import('../../schema.js');
273
+ const cleanedSchema = stripFunctions(schema);
274
+ /* Only diff if the schema actually changed. */
275
+ const oldJson = JSON.stringify(snapshot);
276
+ const newJson = JSON.stringify(cleanedSchema);
277
+ if (oldJson !== newJson) {
278
+ const migrationSQL = generateMigrationSQL(snapshot, cleanedSchema);
279
+ if (migrationSQL) {
280
+ await pushMigration(migrationSQL, schemaOpts, projectRoot);
281
+ }
282
+ }
283
+ }
284
+ else if (!snapshot && schemaOpts.autoMigrate) {
285
+ /*
286
+ * First run with no snapshot — generate the FULL initial SQL
287
+ * and push it to Supabase. This replaces the old `stellar-engine setup`
288
+ * command entirely.
289
+ */
290
+ const { generateSupabaseSQL } = await import('../../schema.js');
291
+ const cleanedSchema = stripFunctions(schema);
292
+ const hasAnyTables = Object.keys(cleanedSchema).length > 0;
293
+ if (hasAnyTables) {
294
+ const fullSQL = generateSupabaseSQL(cleanedSchema, {
295
+ appName,
296
+ includeHelperFunctions: true
297
+ });
298
+ await pushMigration(fullSQL, schemaOpts, projectRoot);
299
+ }
300
+ }
301
+ /* 3. Save the new snapshot (strip functions before serialization). */
302
+ saveSnapshot(projectRoot, schema);
303
+ }
304
+ /**
305
+ * Push migration SQL to Supabase via the `stellar_engine_migrate` RPC function.
306
+ *
307
+ * Checks for required env vars before attempting the RPC call. If env vars
308
+ * are missing, logs a clear warning with the exact variable names and skips
309
+ * the migration (types are still generated).
310
+ *
311
+ * @param sql - The migration SQL to execute.
312
+ * @param opts - The resolved schema options.
313
+ * @param root - The project root directory.
314
+ */
315
+ async function pushMigration(sql, opts, root) {
316
+ const supabaseUrl = process.env.PUBLIC_SUPABASE_URL;
317
+ const serviceRoleKey = process.env.SUPABASE_SERVICE_ROLE_KEY;
318
+ if (!supabaseUrl || !serviceRoleKey) {
319
+ const missing = [];
320
+ if (!supabaseUrl)
321
+ missing.push('PUBLIC_SUPABASE_URL');
322
+ if (!serviceRoleKey)
323
+ missing.push('SUPABASE_SERVICE_ROLE_KEY');
324
+ const relTypes = relative(root, resolve(opts.typesOutput));
325
+ console.warn(`[stellar] \u26a0 Supabase auto-migration skipped \u2014 missing env vars:\n` +
326
+ missing.map((v) => ` ${v}`).join('\n') +
327
+ `\n Set these in .env to enable automatic schema sync.\n` +
328
+ ` Types were still generated at ${relTypes}`);
329
+ return;
330
+ }
331
+ try {
332
+ const { createClient } = await import('@supabase/supabase-js');
333
+ const supabase = createClient(supabaseUrl, serviceRoleKey);
334
+ const { error } = await supabase.rpc('stellar_engine_migrate', { sql_text: sql });
335
+ if (error) {
336
+ console.error(`[stellar] \u274c Migration failed: ${error.message}`);
337
+ }
338
+ else {
339
+ console.log('[stellar] \u2705 Schema migrated successfully');
340
+ }
341
+ }
342
+ catch (err) {
343
+ console.error('[stellar] \u274c Migration RPC error:', err);
344
+ }
345
+ }
346
+ // =============================================================================
95
347
  // VITE PLUGIN
96
348
  // =============================================================================
97
349
  /**
98
- * Vite plugin factory that generates `static/sw.js` and `asset-manifest.json`
99
- * at build time.
350
+ * Vite plugin factory that generates `static/sw.js`, `asset-manifest.json`,
351
+ * and optionally auto-generates types + auto-pushes schema migrations.
100
352
  *
101
- * **`buildStart` hook:**
102
- * - Reads the compiled SW source from stellar-engine's `dist/sw/sw.js`.
103
- * - Replaces placeholder tokens (`__SW_VERSION__`, `__SW_PREFIX__`, `__SW_NAME__`)
104
- * with app-specific values and a unique version stamp (base-36 timestamp).
105
- * - Strips the `export {};` that TypeScript adds (SW runs as a classic script).
106
- * - Writes the final `static/sw.js`.
353
+ * **`buildStart` hook (dev + production builds):**
354
+ * - Generates `static/sw.js` from the compiled SW template.
355
+ * - When `schema` is enabled: loads the schema file via esbuild, generates
356
+ * TypeScript types, diffs against the snapshot, and pushes migration SQL
357
+ * to Supabase. This ensures CI/CD builds that skip `npm run dev` still
358
+ * auto-migrate the database.
107
359
  *
108
360
  * **`closeBundle` hook:**
109
361
  * - Scans SvelteKit's immutable output directory for JS and CSS files.
110
362
  * - Writes `asset-manifest.json` to both `static/` and the build output
111
363
  * directory so the service worker can precache all app chunks.
112
364
  *
113
- * @param config - The {@link SWConfig} with `prefix` and `name` values.
114
- * @returns A Vite plugin object with `name`, `buildStart`, and `closeBundle` hooks.
365
+ * **`configureServer` hook (dev only, when `schema` is enabled):**
366
+ * - On server start, processes the schema file once via Vite's SSR loader.
367
+ * - Watches the schema file for changes with 500ms debounce.
368
+ * - Each change re-generates types and pushes migration SQL.
369
+ *
370
+ * @param config - The {@link SWConfig} with `prefix`, `name`, and optional `schema`.
371
+ * @returns A Vite plugin object with `name`, `buildStart`, `closeBundle`, and
372
+ * optionally `configureServer` hooks.
115
373
  *
116
374
  * @example
117
375
  * ```ts
118
- * stellarPWA({ prefix: 'myapp', name: 'My App' })
376
+ * stellarPWA({ prefix: 'myapp', name: 'My App', schema: true })
119
377
  * ```
120
378
  */
121
379
  export function stellarPWA(config) {
380
+ /*
381
+ * Track whether `configureServer` has run. If it has, skip the schema
382
+ * processing in `buildStart` to avoid running it twice during dev.
383
+ * During production builds, `configureServer` never fires, so `buildStart`
384
+ * handles schema processing.
385
+ */
386
+ let isDevServer = false;
122
387
  return {
123
388
  name: 'stellar-pwa',
124
- /* ── buildStart — generate sw.js from compiled source ────────── */
125
- buildStart() {
389
+ /* ── buildStart — generate sw.js + one-shot schema processing ── */
390
+ async buildStart() {
391
+ /* ---- Service Worker Generation ---- */
126
392
  /* Generate a unique version stamp using base-36 timestamp */
127
393
  const version = Date.now().toString(36);
128
394
  const swSourcePath = findSwSource();
@@ -142,6 +408,27 @@ export function stellarPWA(config) {
142
408
  const swPath = resolve('static/sw.js');
143
409
  writeFileSync(swPath, swContent);
144
410
  console.log(`[stellar-pwa] Generated sw.js (version: ${version})`);
411
+ /* ---- Schema Processing (production builds only) ---- */
412
+ /*
413
+ * Skip if schema is not enabled, or if configureServer already ran
414
+ * (dev mode handles schema via ssrLoadModule + file watcher instead).
415
+ */
416
+ if (!config.schema || isDevServer)
417
+ return;
418
+ const schemaOpts = resolveSchemaOpts(config.schema);
419
+ const projectRoot = resolve('.');
420
+ const schemaAbsPath = resolve(schemaOpts.path);
421
+ try {
422
+ const schema = await loadSchemaFromFile(schemaAbsPath);
423
+ if (!schema || typeof schema !== 'object') {
424
+ console.warn('[stellar] Schema file does not export a `schema` object — skipping.');
425
+ return;
426
+ }
427
+ await processLoadedSchema(schema, config.name, schemaOpts, projectRoot);
428
+ }
429
+ catch (err) {
430
+ console.error('[stellar] Error processing schema during build:', err);
431
+ }
145
432
  },
146
433
  /* ── closeBundle — generate asset manifest ───────────────────── */
147
434
  closeBundle() {
@@ -177,6 +464,53 @@ export function stellarPWA(config) {
177
464
  catch (e) {
178
465
  console.warn('[stellar-pwa] Could not generate asset manifest:', e);
179
466
  }
467
+ },
468
+ /* ── configureServer — schema watching + auto-migration ──────── */
469
+ configureServer(server) {
470
+ /* Mark as dev server so buildStart skips schema processing. */
471
+ isDevServer = true;
472
+ if (!config.schema)
473
+ return;
474
+ const schemaOpts = resolveSchemaOpts(config.schema);
475
+ const projectRoot = resolve('.');
476
+ const schemaAbsPath = resolve(schemaOpts.path);
477
+ /**
478
+ * Process the schema file using Vite's SSR module loader.
479
+ * This gives us the live, transpiled module without needing
480
+ * esbuild or any external transpiler.
481
+ */
482
+ async function processSchema() {
483
+ try {
484
+ const mod = await server.ssrLoadModule(schemaAbsPath);
485
+ const schema = mod.schema;
486
+ if (!schema || typeof schema !== 'object') {
487
+ console.warn('[stellar] Schema file does not export a `schema` object — skipping.');
488
+ return;
489
+ }
490
+ await processLoadedSchema(schema, config.name, schemaOpts, projectRoot);
491
+ }
492
+ catch (err) {
493
+ console.error('[stellar] Error processing schema:', err);
494
+ }
495
+ }
496
+ /* Run processSchema() once on dev server start. */
497
+ processSchema();
498
+ /* Watch the schema file with debounced handler.
499
+ * The 500ms debounce prevents Supabase RPC spam when the user saves
500
+ * rapidly (e.g., auto-save or holding Ctrl+S). */
501
+ let debounceTimer = null;
502
+ server.watcher.on('change', (changedPath) => {
503
+ /* Normalize path comparison — Vite's watcher may use different separators. */
504
+ if (!changedPath.endsWith(schemaOpts.path.replace(/\//g, '/')))
505
+ return;
506
+ if (resolve(changedPath) !== schemaAbsPath && changedPath !== schemaAbsPath)
507
+ return;
508
+ if (debounceTimer)
509
+ clearTimeout(debounceTimer);
510
+ debounceTimer = setTimeout(() => {
511
+ processSchema();
512
+ }, SCHEMA_DEBOUNCE_MS);
513
+ });
180
514
  }
181
515
  };
182
516
  }