@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
|
@@ -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
|
|
3
|
-
*
|
|
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
|
|
6
|
-
* - **`buildStart`** —
|
|
7
|
-
*
|
|
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
|
|
47
|
-
*
|
|
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
|
-
* -
|
|
51
|
-
* -
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
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
|
-
*
|
|
62
|
-
*
|
|
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
|
|
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
|
|
3
|
-
*
|
|
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
|
|
6
|
-
* - **`buildStart`** —
|
|
7
|
-
*
|
|
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
|
|
99
|
-
*
|
|
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
|
-
* -
|
|
103
|
-
* -
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
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
|
-
*
|
|
114
|
-
*
|
|
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
|
|
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
|
}
|