@percher/core 0.4.10 → 0.4.12
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/dist/ai-files-manifest.d.ts +1 -1
- package/dist/appstore-artifacts.d.ts +44 -0
- package/dist/appstore-artifacts.d.ts.map +1 -0
- package/dist/appstore-artifacts.js +142 -0
- package/dist/appstore-artifacts.js.map +1 -0
- package/dist/commands/account.d.ts +1 -1
- package/dist/commands/account.js +2 -2
- package/dist/commands/admin-reconcile-routes.d.ts +1 -1
- package/dist/commands/ai-files.d.ts +2 -2
- package/dist/commands/ai-files.js +2 -2
- package/dist/commands/alerts.d.ts +1 -1
- package/dist/commands/app-resources.d.ts +1 -1
- package/dist/commands/app-resources.js +2 -2
- package/dist/commands/app-topology.d.ts +1 -1
- package/dist/commands/app-topology.js +2 -2
- package/dist/commands/appstore-kit.d.ts +36 -0
- package/dist/commands/appstore-kit.d.ts.map +1 -0
- package/dist/commands/appstore-kit.js +93 -0
- package/dist/commands/appstore-kit.js.map +1 -0
- package/dist/commands/billing.d.ts +1 -1
- package/dist/commands/billing.js +1 -1
- package/dist/commands/cache.d.ts +1 -1
- package/dist/commands/cache.js +2 -2
- package/dist/commands/capabilities.d.ts +1 -1
- package/dist/commands/claim.d.ts +1 -1
- package/dist/commands/claim.js +1 -1
- package/dist/commands/create.d.ts +2 -2
- package/dist/commands/create.js +2 -2
- package/dist/commands/dashboard.d.ts +1 -1
- package/dist/commands/dashboard.js +2 -2
- package/dist/commands/data-export.d.ts +1 -1
- package/dist/commands/data-export.js +3 -3
- package/dist/commands/data.d.ts +1 -1
- package/dist/commands/data.js +2 -2
- package/dist/commands/delete.d.ts +1 -1
- package/dist/commands/delete.js +2 -2
- package/dist/commands/deploys.d.ts +1 -1
- package/dist/commands/deploys.js +2 -2
- package/dist/commands/dev.d.ts +1 -1
- package/dist/commands/dev.js +3 -3
- package/dist/commands/diagnose.d.ts +1 -1
- package/dist/commands/diagnose.js +2 -2
- package/dist/commands/diff.d.ts +1 -1
- package/dist/commands/diff.js +2 -2
- package/dist/commands/doctor.d.ts +3 -3
- package/dist/commands/doctor.js +4 -4
- package/dist/commands/domains.d.ts +1 -1
- package/dist/commands/domains.js +2 -2
- package/dist/commands/env.d.ts +1 -1
- package/dist/commands/env.js +2 -2
- package/dist/commands/export.d.ts +1 -1
- package/dist/commands/export.js +2 -2
- package/dist/commands/forgejo.d.ts +1 -1
- package/dist/commands/forgejo.js +2 -2
- package/dist/commands/generate.d.ts +1 -1
- package/dist/commands/generate.js +1 -1
- package/dist/commands/github.d.ts +1 -1
- package/dist/commands/github.js +2 -2
- package/dist/commands/import-project.d.ts +1 -1
- package/dist/commands/import-project.js +2 -2
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.js +3 -3
- package/dist/commands/insights.d.ts +1 -1
- package/dist/commands/insights.js +2 -2
- package/dist/commands/inspect-link.d.ts +1 -1
- package/dist/commands/inspect-link.js +2 -2
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.js +1 -1
- package/dist/commands/logs.d.ts +1 -1
- package/dist/commands/logs.js +2 -2
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/migrate-supabase-map.d.ts +1 -1
- package/dist/commands/migrate-supabase-recipes.d.ts +28 -0
- package/dist/commands/migrate-supabase-recipes.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-recipes.js +92 -0
- package/dist/commands/migrate-supabase-recipes.js.map +1 -0
- package/dist/commands/migrate-supabase-rewrite.d.ts +8 -3
- package/dist/commands/migrate-supabase-rewrite.d.ts.map +1 -1
- package/dist/commands/migrate-supabase-rewrite.js +155 -11
- package/dist/commands/migrate-supabase-rewrite.js.map +1 -1
- package/dist/commands/migrate-supabase-scaffold.d.ts +25 -0
- package/dist/commands/migrate-supabase-scaffold.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-scaffold.js +234 -0
- package/dist/commands/migrate-supabase-scaffold.js.map +1 -0
- package/dist/commands/migrate-supabase-schema.d.ts +4 -4
- package/dist/commands/migrate-supabase-schema.js +4 -4
- package/dist/commands/migrate-supabase-scripts.d.ts +1 -1
- package/dist/commands/migrate-supabase-sdk.d.ts +34 -0
- package/dist/commands/migrate-supabase-sdk.d.ts.map +1 -1
- package/dist/commands/migrate-supabase-sdk.js +169 -0
- package/dist/commands/migrate-supabase-sdk.js.map +1 -1
- package/dist/commands/migrate-supabase-status.d.ts +92 -0
- package/dist/commands/migrate-supabase-status.d.ts.map +1 -0
- package/dist/commands/migrate-supabase-status.js +470 -0
- package/dist/commands/migrate-supabase-status.js.map +1 -0
- package/dist/commands/migrate-supabase-walker.d.ts +15 -1
- package/dist/commands/migrate-supabase-walker.d.ts.map +1 -1
- package/dist/commands/migrate-supabase-walker.js +49 -5
- package/dist/commands/migrate-supabase-walker.js.map +1 -1
- package/dist/commands/migrate-supabase.d.ts +2 -2
- package/dist/commands/migrate-supabase.js +1 -1
- package/dist/commands/open.d.ts +1 -1
- package/dist/commands/open.js +2 -2
- package/dist/commands/preview-branch.d.ts +1 -1
- package/dist/commands/preview-branch.js +2 -2
- package/dist/commands/publish-api-error.d.ts +1 -1
- package/dist/commands/publish-api-error.js +1 -1
- package/dist/commands/publish-failure.d.ts +3 -3
- package/dist/commands/publish-failure.js +3 -3
- package/dist/commands/publish.d.ts +3 -3
- package/dist/commands/publish.js +13 -13
- package/dist/commands/push.d.ts +2 -2
- package/dist/commands/push.js +8 -8
- package/dist/commands/redeploy.d.ts +2 -2
- package/dist/commands/redeploy.js +4 -4
- package/dist/commands/rename.d.ts +1 -1
- package/dist/commands/rename.js +2 -2
- package/dist/commands/reproduce.d.ts +1 -1
- package/dist/commands/reproduce.js +1 -1
- package/dist/commands/reset-superuser.d.ts +1 -1
- package/dist/commands/reset-superuser.js +2 -2
- package/dist/commands/restore.d.ts +1 -1
- package/dist/commands/restore.js +2 -2
- package/dist/commands/resume.d.ts +1 -1
- package/dist/commands/resume.js +2 -2
- package/dist/commands/rollback.d.ts +1 -1
- package/dist/commands/rollback.js +2 -2
- package/dist/commands/sharing.d.ts +1 -1
- package/dist/commands/sharing.js +2 -2
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/transfers.d.ts +1 -1
- package/dist/commands/transfers.js +2 -2
- package/dist/commands/unsuspend.d.ts +1 -1
- package/dist/commands/versions.d.ts +1 -1
- package/dist/commands/versions.js +2 -2
- package/dist/commands/wait-deploy.d.ts +3 -3
- package/dist/commands/wait-deploy.js +3 -3
- package/dist/commands/whoami.d.ts +1 -1
- package/dist/detect.js +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +78 -75
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -74
- package/dist/index.js.map +1 -1
- package/dist/plans.d.ts +0 -1
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +0 -6
- package/dist/plans.js.map +1 -1
- package/dist/poll-deployment.d.ts +1 -1
- package/dist/recovery.d.ts +1 -1
- package/dist/structured-error-codes.d.ts +1 -1
- package/dist/templates/ai-files/index.js +2 -2
- package/package.json +11 -3
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
-
import { dirname, join, relative, resolve } from "node:path";
|
|
2
|
+
import { dirname, join, relative, resolve, sep } from "node:path";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import { recoveryAsk, recoveryNone } from "../recovery";
|
|
5
|
-
import {
|
|
4
|
+
import { recoveryAsk, recoveryNone } from "../recovery.js";
|
|
5
|
+
import { renderRecipesSection } from "./migrate-supabase-recipes.js";
|
|
6
|
+
import { scaffoldPocketBaseClient } from "./migrate-supabase-scaffold.js";
|
|
7
|
+
import { analyzeMigration, renderMigrationChecklist } from "./migrate-supabase-status.js";
|
|
8
|
+
import { walkSupabaseProject, writeWalkResult, } from "./migrate-supabase-walker.js";
|
|
6
9
|
/**
|
|
7
10
|
* FUTURE9 Phase D chunk 3.3 — user-facing client-rewrite wiring.
|
|
8
11
|
*
|
|
@@ -54,6 +57,10 @@ export const rewriteSupabaseClientInputSchema = z.object({
|
|
|
54
57
|
.array(z.string())
|
|
55
58
|
.optional()
|
|
56
59
|
.describe("Extra Supabase client variable names to recognise (beyond `supabase`)."),
|
|
60
|
+
scaffoldClient: z
|
|
61
|
+
.boolean()
|
|
62
|
+
.optional()
|
|
63
|
+
.describe("Generate a PocketBase client module (src/lib/pocketbase.<ext>) and insert `import { pb }` into rewritten files. Default true when there are rewrites; pass false to opt out. Skips silently if a pb client already exists."),
|
|
57
64
|
});
|
|
58
65
|
export async function rewriteSupabaseClient(ctx, input) {
|
|
59
66
|
const rootAbs = input.rootDir ? resolve(ctx.cwd, input.rootDir) : resolve(ctx.cwd);
|
|
@@ -90,13 +97,40 @@ export async function rewriteSupabaseClient(ctx, input) {
|
|
|
90
97
|
flagsByPattern: {},
|
|
91
98
|
packageJsonChanged: false,
|
|
92
99
|
envFilesChanged: 0,
|
|
100
|
+
clientModule: null,
|
|
93
101
|
skipped: [],
|
|
94
102
|
recovery: recoveryNone(),
|
|
95
103
|
summary: "No Supabase SDK calls found to rewrite. If you intend to keep Supabase as your backend, " +
|
|
96
104
|
'set `[data] mode = "supabase"` in percher.toml instead.',
|
|
97
105
|
};
|
|
98
106
|
}
|
|
99
|
-
|
|
107
|
+
// Any rewrite means the call sites now reference a `pb` client this
|
|
108
|
+
// tool does NOT create — so a report is always due when we rewrote
|
|
109
|
+
// something, to carry the "wire your PocketBase client" step, even
|
|
110
|
+
// with zero manual-review flags.
|
|
111
|
+
const hadRewrites = changed.length > 0;
|
|
112
|
+
// Phase C — scaffold a PocketBase client + insert imports so the rewritten
|
|
113
|
+
// files don't reference an undefined `pb`. Default on; skip when there were
|
|
114
|
+
// no rewrites (nothing references pb) or `scaffoldClient: false`. Insertions
|
|
115
|
+
// mutate walk.files in place BEFORE the report embed, so the embedded
|
|
116
|
+
// checklist reflects pb-now-wired. Backup still uses `source` (untouched).
|
|
117
|
+
const scaffoldEnabled = input.scaffoldClient !== false && hadRewrites;
|
|
118
|
+
const scaffold = scaffoldEnabled
|
|
119
|
+
? scaffoldPocketBaseClient({
|
|
120
|
+
files: walk.files,
|
|
121
|
+
changedRelPaths: changed.map((f) => f.relativePath),
|
|
122
|
+
pbIdentifier: input.pbIdentifier,
|
|
123
|
+
})
|
|
124
|
+
: null;
|
|
125
|
+
if (scaffold) {
|
|
126
|
+
for (const [rel, content] of scaffold.importInsertions) {
|
|
127
|
+
const file = walk.files.find((f) => f.relativePath === rel);
|
|
128
|
+
if (file)
|
|
129
|
+
file.rewritten = content;
|
|
130
|
+
}
|
|
131
|
+
flags.push(...scaffold.flags);
|
|
132
|
+
}
|
|
133
|
+
const reportNeeded = hadRewrites || flags.length > 0 || walk.skipped.length > 0;
|
|
100
134
|
const backupDir = apply && changed.length > 0 ? join(rootAbs, "migration-preview", "backup") : null;
|
|
101
135
|
const rewriteTarget = apply
|
|
102
136
|
? rootAbs
|
|
@@ -104,6 +138,7 @@ export async function rewriteSupabaseClient(ctx, input) {
|
|
|
104
138
|
? resolve(ctx.cwd, input.outputDir)
|
|
105
139
|
: join(rootAbs, "migration-preview", "rewritten");
|
|
106
140
|
const filesWritten = [];
|
|
141
|
+
let clientModuleWritten = null;
|
|
107
142
|
try {
|
|
108
143
|
if (changed.length > 0) {
|
|
109
144
|
// Apply mode: copy originals to the backup tree BEFORE overwriting,
|
|
@@ -129,6 +164,15 @@ export async function rewriteSupabaseClient(ctx, input) {
|
|
|
129
164
|
for (const rel of out.written) {
|
|
130
165
|
filesWritten.push(relative(ctx.cwd, join(rewriteTarget, rel)));
|
|
131
166
|
}
|
|
167
|
+
// Write the scaffolded client module (a NEW file — not backed up).
|
|
168
|
+
if (scaffold?.clientModule) {
|
|
169
|
+
const moduleAbs = join(rewriteTarget, scaffold.clientModule.relativePath);
|
|
170
|
+
await mkdir(dirname(moduleAbs), { recursive: true });
|
|
171
|
+
await writeFile(moduleAbs, scaffold.clientModule.content, "utf8");
|
|
172
|
+
// Forward-slash-normalised — a stable cross-platform value for callers.
|
|
173
|
+
clientModuleWritten = relative(ctx.cwd, moduleAbs).split(sep).join("/");
|
|
174
|
+
filesWritten.push(clientModuleWritten);
|
|
175
|
+
}
|
|
132
176
|
}
|
|
133
177
|
// Durable report for everything the rewriter wouldn't touch. This
|
|
134
178
|
// is the artifact a flag-only project gets instead of rewritten
|
|
@@ -136,7 +180,23 @@ export async function rewriteSupabaseClient(ctx, input) {
|
|
|
136
180
|
if (reportNeeded) {
|
|
137
181
|
const reportAbs = join(rootAbs, "migration-preview", "REWRITE_NOTES.md");
|
|
138
182
|
await mkdir(dirname(reportAbs), { recursive: true });
|
|
139
|
-
|
|
183
|
+
// Embed the same checklist the status doctor renders, computed from
|
|
184
|
+
// the POST-rewrite files, so the artifact and `--status` agree.
|
|
185
|
+
const analysis = analyzeMigration(walk.files.map((f) => ({
|
|
186
|
+
relativePath: f.relativePath,
|
|
187
|
+
kind: f.kind,
|
|
188
|
+
source: f.rewritten,
|
|
189
|
+
})), { supabaseIdentifiers: input.supabaseIdentifiers, pbIdentifier: input.pbIdentifier });
|
|
190
|
+
await writeFile(reportAbs, renderReport({
|
|
191
|
+
flags,
|
|
192
|
+
skipped: walk.skipped,
|
|
193
|
+
hadRewrites,
|
|
194
|
+
migrationComplete: walk.summary.migrationComplete,
|
|
195
|
+
supabaseUsageRemaining: walk.summary.supabaseUsageRemaining,
|
|
196
|
+
checklist: renderMigrationChecklist(analysis.checks),
|
|
197
|
+
scaffoldedClient: scaffold?.clientModule?.relativePath ?? null,
|
|
198
|
+
scaffoldSkippedExisting: scaffold?.skippedReason === "pb_client_exists",
|
|
199
|
+
}), "utf8");
|
|
140
200
|
filesWritten.push(relative(ctx.cwd, reportAbs));
|
|
141
201
|
}
|
|
142
202
|
}
|
|
@@ -150,7 +210,10 @@ export async function rewriteSupabaseClient(ctx, input) {
|
|
|
150
210
|
flagsByPattern[flag.pattern] = (flagsByPattern[flag.pattern] ?? 0) + 1;
|
|
151
211
|
}
|
|
152
212
|
const recovery = reportNeeded
|
|
153
|
-
? recoveryAsk({
|
|
213
|
+
? recoveryAsk({
|
|
214
|
+
prompt: buildPrompt(flags, walk.skipped.length, hadRewrites, clientModuleWritten),
|
|
215
|
+
reasonCode: "unknown",
|
|
216
|
+
})
|
|
154
217
|
: recoveryNone();
|
|
155
218
|
return {
|
|
156
219
|
status: "ok",
|
|
@@ -164,11 +227,26 @@ export async function rewriteSupabaseClient(ctx, input) {
|
|
|
164
227
|
flagsByPattern,
|
|
165
228
|
packageJsonChanged: walk.summary.packageJsonChanged,
|
|
166
229
|
envFilesChanged: walk.summary.envFilesChanged,
|
|
230
|
+
clientModule: clientModuleWritten,
|
|
167
231
|
skipped: walk.skipped,
|
|
168
232
|
recovery,
|
|
169
|
-
summary: renderSummary({
|
|
233
|
+
summary: renderSummary({
|
|
234
|
+
mode,
|
|
235
|
+
changed: changed.length,
|
|
236
|
+
walk,
|
|
237
|
+
flagCount: flags.length,
|
|
238
|
+
clientModule: clientModuleWritten,
|
|
239
|
+
}),
|
|
170
240
|
};
|
|
171
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* Whether the project is fully migrated (dep/env safe to drop) or still
|
|
244
|
+
* hybrid. Mirrors the walker's `migrationComplete` so callers don't reach
|
|
245
|
+
* into `summary`.
|
|
246
|
+
*/
|
|
247
|
+
function isHybrid(walk) {
|
|
248
|
+
return !walk.summary.migrationComplete && walk.summary.supabaseUsageRemaining > 0;
|
|
249
|
+
}
|
|
172
250
|
/** Collect the manual-review / unsupported flags across the project, with file + line. */
|
|
173
251
|
function collectManualFlags(walk) {
|
|
174
252
|
const out = [];
|
|
@@ -188,10 +266,16 @@ function collectManualFlags(walk) {
|
|
|
188
266
|
}
|
|
189
267
|
return out;
|
|
190
268
|
}
|
|
191
|
-
function buildPrompt(flags, skippedCount) {
|
|
269
|
+
function buildPrompt(flags, skippedCount, hadRewrites, clientModule) {
|
|
192
270
|
const rewritten = flags.filter((f) => f.kind === "manual_review").length;
|
|
193
271
|
const untouched = flags.filter((f) => f.kind === "unsupported").length;
|
|
194
272
|
const bits = [];
|
|
273
|
+
if (clientModule) {
|
|
274
|
+
bits.push(`review the scaffolded PocketBase client at \`${clientModule}\``);
|
|
275
|
+
}
|
|
276
|
+
else if (hadRewrites) {
|
|
277
|
+
bits.push("create the `pb` PocketBase client the rewritten code now uses (it isn't created for you)");
|
|
278
|
+
}
|
|
195
279
|
if (rewritten > 0) {
|
|
196
280
|
bits.push(`${rewritten} rewritten to PocketBase but with semantics that differ from Supabase`);
|
|
197
281
|
}
|
|
@@ -201,7 +285,7 @@ function buildPrompt(flags, skippedCount) {
|
|
|
201
285
|
if (skippedCount > 0) {
|
|
202
286
|
bits.push(`${skippedCount} file${skippedCount === 1 ? "" : "s"} couldn't be parsed`);
|
|
203
287
|
}
|
|
204
|
-
return `
|
|
288
|
+
return `Before deploying, work through migration-preview/REWRITE_NOTES.md: ${bits.join("; ")}.`;
|
|
205
289
|
}
|
|
206
290
|
function renderSummary(args) {
|
|
207
291
|
const parts = [];
|
|
@@ -214,12 +298,21 @@ function renderSummary(args) {
|
|
|
214
298
|
else {
|
|
215
299
|
parts.push("No files needed automatic rewriting.");
|
|
216
300
|
}
|
|
301
|
+
if (args.clientModule) {
|
|
302
|
+
parts.push(`Scaffolded a PocketBase client at \`${args.clientModule}\` and imported it.`);
|
|
303
|
+
}
|
|
217
304
|
if (args.walk.summary.packageJsonChanged) {
|
|
218
305
|
parts.push("`package.json` swapped `@supabase/supabase-js` → `pocketbase`.");
|
|
219
306
|
}
|
|
220
307
|
if (args.walk.summary.envFilesChanged > 0) {
|
|
221
308
|
parts.push(`${args.walk.summary.envFilesChanged} .env file${args.walk.summary.envFilesChanged === 1 ? "" : "s"} stubbed with PocketBase keys.`);
|
|
222
309
|
}
|
|
310
|
+
if (isHybrid(args.walk)) {
|
|
311
|
+
// Hybrid: some Supabase calls were left untouched on purpose, so the
|
|
312
|
+
// dep + env are kept (dropping them would break the app). Say so —
|
|
313
|
+
// silently keeping them reads like the rewrite missed a step.
|
|
314
|
+
parts.push(`Hybrid migration — ${args.walk.summary.supabaseUsageRemaining} Supabase reference${args.walk.summary.supabaseUsageRemaining === 1 ? "" : "s"} still need${args.walk.summary.supabaseUsageRemaining === 1 ? "s" : ""} \`@supabase/supabase-js\`, so the dependency + Supabase env were kept. Drop them once the rest is migrated.`);
|
|
315
|
+
}
|
|
223
316
|
if (args.flagCount > 0) {
|
|
224
317
|
parts.push(`${args.flagCount} pattern${args.flagCount === 1 ? "" : "s"} need manual review — see \`migration-preview/REWRITE_NOTES.md\`.`);
|
|
225
318
|
}
|
|
@@ -228,13 +321,59 @@ function renderSummary(args) {
|
|
|
228
321
|
}
|
|
229
322
|
return parts.join(" ");
|
|
230
323
|
}
|
|
231
|
-
/** The migration-preview/REWRITE_NOTES.md report: every flagged location + unparseable file. */
|
|
324
|
+
/** The migration-preview/REWRITE_NOTES.md report: pb-client setup + every flagged location + unparseable file. */
|
|
232
325
|
function renderReport(args) {
|
|
233
326
|
const lines = [];
|
|
234
327
|
lines.push("# Supabase → PocketBase — review notes");
|
|
235
328
|
lines.push("");
|
|
236
|
-
lines.push("The automated rewrite
|
|
329
|
+
lines.push("The automated rewrite converted the high-confidence auth and CRUD call sites. It does NOT create your PocketBase client, and the items below still need a human. There are no inline markers — work from this list.");
|
|
237
330
|
lines.push("");
|
|
331
|
+
if (args.checklist) {
|
|
332
|
+
lines.push("## Status checklist");
|
|
333
|
+
lines.push("");
|
|
334
|
+
lines.push("Same scoreboard as `percher migrate-from-supabase --status`:");
|
|
335
|
+
lines.push("");
|
|
336
|
+
lines.push("```");
|
|
337
|
+
lines.push(args.checklist);
|
|
338
|
+
lines.push("```");
|
|
339
|
+
lines.push("");
|
|
340
|
+
}
|
|
341
|
+
if (!args.migrationComplete && args.supabaseUsageRemaining > 0) {
|
|
342
|
+
lines.push("## Hybrid state — Supabase kept on purpose");
|
|
343
|
+
lines.push("");
|
|
344
|
+
lines.push(`${args.supabaseUsageRemaining} Supabase reference${args.supabaseUsageRemaining === 1 ? "" : "s"} (storage / realtime / rpc / edge functions / un-mapped auth, or files still importing \`@supabase/*\`) ${args.supabaseUsageRemaining === 1 ? "was" : "were"} left in place because ${args.supabaseUsageRemaining === 1 ? "it has" : "they have"} no clean PocketBase equivalent. While they remain, your app needs **both** SDKs:`);
|
|
345
|
+
lines.push("");
|
|
346
|
+
lines.push("- `package.json` still depends on `@supabase/supabase-js` (and `pocketbase` once you add it) — **this is correct**, don't remove the Supabase dep yet.");
|
|
347
|
+
lines.push("- your Supabase env vars (`SUPABASE_*` / `VITE_SUPABASE_*` / …) were **kept** — they're still needed by the calls below.");
|
|
348
|
+
lines.push("");
|
|
349
|
+
lines.push("Once you've migrated every item in this report, drop `@supabase/supabase-js` and the Supabase env keys. Run `percher migrate-from-supabase --status` to check what's left.");
|
|
350
|
+
lines.push("");
|
|
351
|
+
}
|
|
352
|
+
if (args.scaffoldedClient) {
|
|
353
|
+
lines.push("## PocketBase client (scaffolded for you)");
|
|
354
|
+
lines.push("");
|
|
355
|
+
lines.push(`A PocketBase client was generated at \`${args.scaffoldedClient}\` and \`import { pb } from "…"\` was inserted into the rewritten files. Review the URL accessor — it's a working default, adjust it to match your framework if needed.`);
|
|
356
|
+
lines.push("");
|
|
357
|
+
}
|
|
358
|
+
else if (args.hadRewrites) {
|
|
359
|
+
lines.push("## Wire the PocketBase client (required first)");
|
|
360
|
+
lines.push("");
|
|
361
|
+
lines.push(args.scaffoldSkippedExisting
|
|
362
|
+
? "The rewritten call sites use a `pb` client. Your project already exports one, so no module was generated — make sure each rewritten file imports `pb` from it."
|
|
363
|
+
: "The rewritten call sites now use a `pb` client this tool did not create — until you add it, they reference an undefined `pb` and the app won't run.");
|
|
364
|
+
lines.push("");
|
|
365
|
+
lines.push("1. Replace your Supabase client setup with a PocketBase one, exported under the same name the rewrites use (`pb`):");
|
|
366
|
+
lines.push("");
|
|
367
|
+
lines.push("```js");
|
|
368
|
+
lines.push('import PocketBase from "pocketbase";');
|
|
369
|
+
lines.push("// Percher injects POCKETBASE_URL / VITE_POCKETBASE_URL at deploy time.");
|
|
370
|
+
lines.push("export const pb = new PocketBase(import.meta.env.VITE_POCKETBASE_URL ?? process.env.POCKETBASE_URL);");
|
|
371
|
+
lines.push("```");
|
|
372
|
+
lines.push("");
|
|
373
|
+
lines.push("2. Import `pb` in the rewritten files from wherever you export it.");
|
|
374
|
+
lines.push("3. Remove the leftover `@supabase/*` imports (the `createClient(...)` setup, `@supabase/ssr` helpers, etc.) once nothing else needs them.");
|
|
375
|
+
lines.push("");
|
|
376
|
+
}
|
|
238
377
|
const rewritten = args.flags.filter((f) => f.kind === "manual_review");
|
|
239
378
|
const untouched = args.flags.filter((f) => f.kind === "unsupported");
|
|
240
379
|
if (rewritten.length > 0) {
|
|
@@ -251,6 +390,10 @@ function renderReport(args) {
|
|
|
251
390
|
lines.push("");
|
|
252
391
|
appendFlagsByFile(lines, untouched);
|
|
253
392
|
}
|
|
393
|
+
// Concrete PB recipes for the divergent auth patterns present.
|
|
394
|
+
const recipeLines = renderRecipesSection(args.flags.map((f) => f.pattern));
|
|
395
|
+
for (const line of recipeLines)
|
|
396
|
+
lines.push(line);
|
|
254
397
|
if (args.skipped.length > 0) {
|
|
255
398
|
lines.push("## Files that couldn't be parsed");
|
|
256
399
|
lines.push("");
|
|
@@ -297,6 +440,7 @@ function failure(rootAbs, mode, err, suggestion) {
|
|
|
297
440
|
flagsByPattern: {},
|
|
298
441
|
packageJsonChanged: false,
|
|
299
442
|
envFilesChanged: 0,
|
|
443
|
+
clientModule: null,
|
|
300
444
|
skipped: [],
|
|
301
445
|
recovery: recoveryAsk({
|
|
302
446
|
prompt: `${suggestion} (${message})`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate-supabase-rewrite.js","sourceRoot":"","sources":["../../src/commands/migrate-supabase-rewrite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migrate-supabase-rewrite.js","sourceRoot":"","sources":["../../src/commands/migrate-supabase-rewrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAA2C,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAGL,mBAAmB,EACnB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,uFAAuF,CACxF;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,+HAA+H,CAChI;IACH,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,uIAAuI,CACxI;IACH,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4DAA4D,CAAC;IACzE,mBAAmB,EAAE,CAAC;SACnB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CAAC,wEAAwE,CAAC;IACrF,cAAc,EAAE,CAAC;SACd,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,4NAA4N,CAC7N;CACJ,CAAC,CAAC;AA6DH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAY,EACZ,KAAiC;IAEjC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;IACnC,MAAM,IAAI,GAAwB,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9D,GAAG,CAAC,MAAM,CAAC,YAAY,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC,CAAC;IAEtF,IAAI,IAA+B,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,mBAAmB,CAAC;YAC/B,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;SAC/C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,OAAO,CACZ,OAAO,EACP,IAAI,EACJ,GAAG,EACH,iBAAiB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,GAAG,uDAAuD,CAC1G,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEvC,mEAAmE;IACnE,iEAAiE;IACjE,qEAAqE;IACrE,yDAAyD;IACzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5E,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,IAAI;YACJ,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,OAAO;YAClB,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,CAAC;YACf,KAAK,EAAE,EAAE;YACT,cAAc,EAAE,EAAE;YAClB,kBAAkB,EAAE,KAAK;YACzB,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,YAAY,EAAE;YACxB,OAAO,EACL,0FAA0F;gBAC1F,yDAAyD;SAC5D,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,mEAAmE;IACnE,mEAAmE;IACnE,iCAAiC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAEvC,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,sEAAsE;IACtE,2EAA2E;IAC3E,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,KAAK,KAAK,IAAI,WAAW,CAAC;IACtE,MAAM,QAAQ,GAAG,eAAe;QAC9B,CAAC,CAAC,wBAAwB,CAAC;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;YACnD,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC;YAC5D,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACrC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,YAAY,GAAG,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAChF,MAAM,SAAS,GACb,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpF,MAAM,aAAa,GAAG,KAAK;QACzB,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,KAAK,CAAC,SAAS;YACf,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;YACnC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,mBAAmB,GAAkB,IAAI,CAAC;IAC9C,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,oEAAoE;YACpE,oEAAoE;YACpE,gEAAgE;YAChE,6CAA6C;YAC7C,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;gBACvB,GAAG,CAAC,MAAM,CAAC,cAAc,OAAO,CAAC,MAAM,mDAAmD,CAAC,CAAC;gBAC5F,MAAM,eAAe,CAAC;oBACpB,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;oBAC/E,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,GAAG,CAAC,MAAM,CACR,KAAK;gBACH,CAAC,CAAC,aAAa,OAAO,CAAC,MAAM,sBAAsB;gBACnD,CAAC,CAAC,WAAW,OAAO,CAAC,MAAM,uDAAuD,CACrF,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC;gBAChC,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,aAAa;gBACxB,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC9B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC;YAED,mEAAmE;YACnE,IAAI,QAAQ,EAAE,YAAY,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC1E,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,MAAM,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAClE,wEAAwE;gBACxE,mBAAmB,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxE,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,gEAAgE;QAChE,kDAAkD;QAClD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;YACzE,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,oEAAoE;YACpE,gEAAgE;YAChE,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrB,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,SAAS;aACpB,CAAC,CAAC,EACH,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CACrF,CAAC;YACF,MAAM,SAAS,CACb,SAAS,EACT,YAAY,CAAC;gBACX,KAAK;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW;gBACX,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;gBACjD,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB;gBAC3D,SAAS,EAAE,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpD,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,IAAI,IAAI;gBAC9D,uBAAuB,EAAE,QAAQ,EAAE,aAAa,KAAK,kBAAkB;aACxE,CAAC,EACF,MAAM,CACP,CAAC;YACF,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,OAAO,CACZ,OAAO,EACP,IAAI,EACJ,GAAG,EACH,KAAK;YACH,CAAC,CAAC,qHAAqH;YACvH,CAAC,CAAC,2FAA2F,CAChG,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY;QAC3B,CAAC,CAAC,WAAW,CAAC;YACV,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,CAAC;YACjF,UAAU,EAAE,SAAS;SACtB,CAAC;QACJ,CAAC,CAAC,YAAY,EAAE,CAAC;IAEnB,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO;QACvD,SAAS;QACT,YAAY;QACZ,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,KAAK;QACL,cAAc;QACd,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;QACnD,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;QAC7C,YAAY,EAAE,mBAAmB;QACjC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ;QACR,OAAO,EAAE,aAAa,CAAC;YACrB,IAAI;YACJ,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,IAAI;YACJ,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,YAAY,EAAE,mBAAmB;SAClC,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,IAA+B;IAC/C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,GAAG,CAAC,CAAC;AACpF,CAAC;AAED,0FAA0F;AAC1F,SAAS,kBAAkB,CAAC,IAA+B;IACzD,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACjE,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,IAAI,CAAC,YAAY;oBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAClB,KAA0B,EAC1B,YAAoB,EACpB,WAAoB,EACpB,YAA2B;IAE3B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,MAAM,CAAC;IACzE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,gDAAgD,YAAY,IAAI,CAAC,CAAC;IAC9E,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CACP,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,uEAAuE,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CACP,GAAG,SAAS,wFAAwF,CACrG,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,sEAAsE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClG,CAAC;AAED,SAAS,aAAa,CAAC,IAMtB;IACC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK,OAAO;YACnB,CAAC,CAAC,+DAA+D;YACjE,CAAC,CAAC,sDAAsD,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,QAAQ,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,YAAY,qBAAqB,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gCAAgC,CACpI,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,qEAAqE;QACrE,mEAAmE;QACnE,8DAA8D;QAC9D,KAAK,CAAC,IAAI,CACR,sBAAsB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,sBAAsB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,8GAA8G,CACnU,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,mEAAmE,CAC/H,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,uDAAuD,CACpI,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,kHAAkH;AAClH,SAAS,YAAY,CAAC,IASrB;IACC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CACR,qNAAqN,CACtN,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,CAAC,sBAAsB,sBAAsB,IAAI,CAAC,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,2GAA2G,IAAI,CAAC,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,0BAA0B,IAAI,CAAC,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,mFAAmF,CACra,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,wJAAwJ,CACzJ,CAAC;QACF,KAAK,CAAC,IAAI,CACR,0HAA0H,CAC3H,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,4KAA4K,CAC7K,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,0CAA0C,IAAI,CAAC,gBAAgB,yKAAyK,CACzO,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;SAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,uBAAuB;YAC1B,CAAC,CAAC,gKAAgK;YAClK,CAAC,CAAC,qJAAqJ,CAC1J,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,oHAAoH,CACrH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QACtF,KAAK,CAAC,IAAI,CACR,sGAAsG,CACvG,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CACR,2IAA2I,CAC5I,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAErE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,mKAAmK,CACpK,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,wHAAwH,CACzH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,+DAA+D;IAC/D,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,KAAK,MAAM,IAAI,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;QAChG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CACR,OAAO,IAAI,CAAC,YAAY,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACtF,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,0FAA0F;AAC1F,SAAS,iBAAiB,CAAC,KAAe,EAAE,KAA0B;IACpE,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,GAAG,GACP,IAAI,CAAC,IAAI,KAAK,SAAS;gBACrB,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBACtE,CAAC,CAAC,oBAAoB,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CACd,OAAe,EACf,IAAyB,EACzB,GAAY,EACZ,UAAkB;IAElB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,EAAE;QACT,cAAc,EAAE,EAAE;QAClB,kBAAkB,EAAE,KAAK;QACzB,eAAe,EAAE,CAAC;QAClB,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,WAAW,CAAC;YACpB,MAAM,EAAE,GAAG,UAAU,KAAK,OAAO,GAAG;YACpC,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,OAAO,EAAE,0BAA0B,OAAO,EAAE;QAC5C,KAAK,EAAE;YACL,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,gCAAgC;YACvC,WAAW,EAAE,OAAO;YACpB,UAAU;SACX;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { RewriteClientFlag } from "./migrate-supabase-rewrite.js";
|
|
2
|
+
import type { WalkedFile } from "./migrate-supabase-walker.js";
|
|
3
|
+
export interface ScaffoldClientInput {
|
|
4
|
+
/** The walk's files — used to detect an existing pb client + path collisions. */
|
|
5
|
+
files: WalkedFile[];
|
|
6
|
+
/** Project root relative paths (forward-slash) of files the rewriter changed. */
|
|
7
|
+
changedRelPaths: string[];
|
|
8
|
+
/** PocketBase identifier the rewrites emit. Defaults to `pb`. */
|
|
9
|
+
pbIdentifier?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ScaffoldClientResult {
|
|
12
|
+
/** The new client module to write, or null when one already exists / couldn't be placed. */
|
|
13
|
+
clientModule: {
|
|
14
|
+
relativePath: string;
|
|
15
|
+
content: string;
|
|
16
|
+
} | null;
|
|
17
|
+
/** relPath → rewritten content with the `pb` import inserted. */
|
|
18
|
+
importInsertions: Map<string, string>;
|
|
19
|
+
/** manual_review flags (e.g. "delete the old Supabase client module"). */
|
|
20
|
+
flags: RewriteClientFlag[];
|
|
21
|
+
/** Why no module was generated, when applicable. */
|
|
22
|
+
skippedReason?: "pb_client_exists" | "target_path_taken";
|
|
23
|
+
}
|
|
24
|
+
export declare function scaffoldPocketBaseClient(input: ScaffoldClientInput): ScaffoldClientResult;
|
|
25
|
+
//# sourceMappingURL=migrate-supabase-scaffold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-supabase-scaffold.d.ts","sourceRoot":"","sources":["../../src/commands/migrate-supabase-scaffold.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AA4B5D,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,iFAAiF;IACjF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,4FAA4F;IAC5F,YAAY,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/D,iEAAiE;IACjE,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,0EAA0E;IAC1E,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,oDAAoD;IACpD,aAAa,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,CAAC;CAC1D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CA8DzF"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { posix } from "node:path";
|
|
2
|
+
import jscodeshift, {} from "jscodeshift";
|
|
3
|
+
/**
|
|
4
|
+
* Phase C — auto PocketBase client + import insertion.
|
|
5
|
+
*
|
|
6
|
+
* After the rewriter converts call sites to `pb.*`, those files reference a
|
|
7
|
+
* `pb` client that doesn't exist yet (the dangling-pb FAIL the status doctor
|
|
8
|
+
* reports). This closes that gap mechanically:
|
|
9
|
+
*
|
|
10
|
+
* 1. Generate a PARALLEL client module (`src/lib/pocketbase.<ext>`) — a
|
|
11
|
+
* NEW file, never a rewrite of the existing Supabase client. Other files
|
|
12
|
+
* (untouched storage/rpc/realtime call sites) may still import the old
|
|
13
|
+
* `supabase` client; clobbering it would break them and contradicts the
|
|
14
|
+
* hybrid model. The old module is left intact and flagged "delete once
|
|
15
|
+
* everything's migrated".
|
|
16
|
+
* 2. Insert `import { pb } from "<relative path>"` into each rewritten file
|
|
17
|
+
* that references `pb` without a binding.
|
|
18
|
+
*
|
|
19
|
+
* Skips creating a module silently when the project already exports a `pb`
|
|
20
|
+
* client (imports point at the existing one instead). Everything here is a
|
|
21
|
+
* "working default" — boilerplate the user may tweak — not a guess at their
|
|
22
|
+
* exact config.
|
|
23
|
+
*/
|
|
24
|
+
const tsx = jscodeshift.withParser("tsx");
|
|
25
|
+
const CLIENT_FACTORIES = new Set(["createClient", "createBrowserClient", "createServerClient"]);
|
|
26
|
+
export function scaffoldPocketBaseClient(input) {
|
|
27
|
+
const pbName = input.pbIdentifier ?? "pb";
|
|
28
|
+
const codeFiles = input.files.filter((f) => f.kind === "code");
|
|
29
|
+
const flags = [];
|
|
30
|
+
// Flag the existing Supabase client module(s) for eventual deletion.
|
|
31
|
+
for (const file of codeFiles) {
|
|
32
|
+
if (isSupabaseClientModule(file.source)) {
|
|
33
|
+
flags.push({
|
|
34
|
+
file: file.relativePath,
|
|
35
|
+
kind: "manual_review",
|
|
36
|
+
pattern: "supabase.client_module",
|
|
37
|
+
note: "This module sets up the Supabase client. It's kept while any Supabase call remains; once everything is migrated to PocketBase, delete it and the imports that reference it.",
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// If a pb client already exists, import from it instead of generating one.
|
|
42
|
+
const existing = codeFiles.find((f) => exportsBinding(f.rewritten, pbName));
|
|
43
|
+
let targetRelNoExt;
|
|
44
|
+
let clientModule = null;
|
|
45
|
+
let skippedReason;
|
|
46
|
+
if (existing) {
|
|
47
|
+
targetRelNoExt = stripExt(existing.relativePath);
|
|
48
|
+
skippedReason = "pb_client_exists";
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const ext = pickExtension(codeFiles);
|
|
52
|
+
const baseNoExt = pickModuleBase(codeFiles);
|
|
53
|
+
const targetRel = `${baseNoExt}.${ext}`;
|
|
54
|
+
// Collision with a non-pb-client file at the exact path → don't clobber.
|
|
55
|
+
if (input.files.some((f) => f.relativePath === targetRel)) {
|
|
56
|
+
flags.push({
|
|
57
|
+
file: targetRel,
|
|
58
|
+
kind: "manual_review",
|
|
59
|
+
pattern: "scaffold.path_taken",
|
|
60
|
+
note: `Couldn't auto-create a PocketBase client — \`${targetRel}\` already exists. Create one that exports \`${pbName}\` and import it in the rewritten files.`,
|
|
61
|
+
});
|
|
62
|
+
return {
|
|
63
|
+
clientModule: null,
|
|
64
|
+
importInsertions: new Map(),
|
|
65
|
+
flags,
|
|
66
|
+
skippedReason: "target_path_taken",
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
targetRelNoExt = baseNoExt;
|
|
70
|
+
clientModule = { relativePath: targetRel, content: renderClientModule(pbName, codeFiles) };
|
|
71
|
+
}
|
|
72
|
+
// Insert the import into every changed file that references pb without a binding.
|
|
73
|
+
const importInsertions = new Map();
|
|
74
|
+
const changed = new Set(input.changedRelPaths);
|
|
75
|
+
for (const file of codeFiles) {
|
|
76
|
+
if (!changed.has(file.relativePath))
|
|
77
|
+
continue;
|
|
78
|
+
if (file.relativePath === clientModule?.relativePath)
|
|
79
|
+
continue; // never self-import
|
|
80
|
+
if (!referencesUnboundIdentifier(file.rewritten, pbName))
|
|
81
|
+
continue;
|
|
82
|
+
const importPath = computeImportPath(file.relativePath, targetRelNoExt);
|
|
83
|
+
const next = insertNamedImport(file.rewritten, pbName, importPath);
|
|
84
|
+
if (next !== null)
|
|
85
|
+
importInsertions.set(file.relativePath, next);
|
|
86
|
+
}
|
|
87
|
+
return { clientModule, importInsertions, flags, ...(skippedReason ? { skippedReason } : {}) };
|
|
88
|
+
}
|
|
89
|
+
/** PocketBase client module body. Accessor matches the project shape. */
|
|
90
|
+
function renderClientModule(pbName, codeFiles) {
|
|
91
|
+
const usesViteEnv = codeFiles.some((f) => f.source.includes("import.meta.env"));
|
|
92
|
+
const accessor = usesViteEnv
|
|
93
|
+
? "import.meta.env.VITE_POCKETBASE_URL"
|
|
94
|
+
: "process.env.POCKETBASE_URL";
|
|
95
|
+
return [
|
|
96
|
+
'import PocketBase from "pocketbase";',
|
|
97
|
+
"",
|
|
98
|
+
"// Percher injects the PocketBase URL at deploy time. This is a working",
|
|
99
|
+
"// default — adjust the URL accessor to match your framework if needed.",
|
|
100
|
+
`export const ${pbName} = new PocketBase(${accessor});`,
|
|
101
|
+
"",
|
|
102
|
+
].join("\n");
|
|
103
|
+
}
|
|
104
|
+
/** `ts` if the project has any TS file, else `js`. */
|
|
105
|
+
function pickExtension(codeFiles) {
|
|
106
|
+
return codeFiles.some((f) => f.relativePath.endsWith(".ts") || f.relativePath.endsWith(".tsx"))
|
|
107
|
+
? "ts"
|
|
108
|
+
: "js";
|
|
109
|
+
}
|
|
110
|
+
/** Where to place the generated module — under src/ when the project uses it. */
|
|
111
|
+
function pickModuleBase(codeFiles) {
|
|
112
|
+
const hasSrc = codeFiles.some((f) => f.relativePath.startsWith("src/"));
|
|
113
|
+
return hasSrc ? "src/lib/pocketbase" : "lib/pocketbase";
|
|
114
|
+
}
|
|
115
|
+
function stripExt(relPath) {
|
|
116
|
+
const dot = relPath.lastIndexOf(".");
|
|
117
|
+
return dot > relPath.lastIndexOf("/") ? relPath.slice(0, dot) : relPath;
|
|
118
|
+
}
|
|
119
|
+
/** Relative, extensionless import specifier from one file to the module. */
|
|
120
|
+
function computeImportPath(fromFileRel, targetRelNoExt) {
|
|
121
|
+
let rel = posix.relative(posix.dirname(fromFileRel), targetRelNoExt);
|
|
122
|
+
if (!rel.startsWith("."))
|
|
123
|
+
rel = `./${rel}`;
|
|
124
|
+
return rel;
|
|
125
|
+
}
|
|
126
|
+
/** Insert `import { name } from "spec"` at the top of the file. Returns the
|
|
127
|
+
* new source, or null if it couldn't parse (caller leaves the file as-is). */
|
|
128
|
+
function insertNamedImport(source, name, spec) {
|
|
129
|
+
let root;
|
|
130
|
+
try {
|
|
131
|
+
root = tsx(source);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
const decl = jscodeshift.importDeclaration([jscodeshift.importSpecifier(jscodeshift.identifier(name))], jscodeshift.literal(spec));
|
|
137
|
+
const program = root.get().node.program;
|
|
138
|
+
program.body.unshift(decl);
|
|
139
|
+
return root.toSource({ quote: "double" });
|
|
140
|
+
}
|
|
141
|
+
/** True when `name` is read as a member object (`name.x`) but never bound. */
|
|
142
|
+
function referencesUnboundIdentifier(source, name) {
|
|
143
|
+
let root;
|
|
144
|
+
try {
|
|
145
|
+
root = tsx(source);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
let declared = false;
|
|
151
|
+
root.find(jscodeshift.ImportDeclaration).forEach((p) => {
|
|
152
|
+
for (const spec of p.node.specifiers ?? []) {
|
|
153
|
+
if (spec.local?.name === name)
|
|
154
|
+
declared = true;
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
root.find(jscodeshift.VariableDeclarator).forEach((p) => {
|
|
158
|
+
if (p.node.id.type === "Identifier" && p.node.id.name === name) {
|
|
159
|
+
declared = true;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
let used = false;
|
|
163
|
+
root.find(jscodeshift.MemberExpression).forEach((p) => {
|
|
164
|
+
const obj = p.node.object;
|
|
165
|
+
if (obj.type === "Identifier" && obj.name === name)
|
|
166
|
+
used = true;
|
|
167
|
+
});
|
|
168
|
+
return used && !declared;
|
|
169
|
+
}
|
|
170
|
+
/** True when the module exports a binding named `name` (the existing pb client). */
|
|
171
|
+
function exportsBinding(source, name) {
|
|
172
|
+
if (!source.includes(`export`) || !source.includes(name))
|
|
173
|
+
return false;
|
|
174
|
+
let root;
|
|
175
|
+
try {
|
|
176
|
+
root = tsx(source);
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
let found = false;
|
|
182
|
+
root.find(jscodeshift.ExportNamedDeclaration).forEach((p) => {
|
|
183
|
+
const node = p.node;
|
|
184
|
+
// export const name = ...
|
|
185
|
+
if (node.declaration?.type === "VariableDeclaration") {
|
|
186
|
+
for (const d of node.declaration.declarations) {
|
|
187
|
+
if (d.type === "VariableDeclarator" &&
|
|
188
|
+
d.id.type === "Identifier" &&
|
|
189
|
+
d.id.name === name) {
|
|
190
|
+
found = true;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// export { name } / export { x as name }
|
|
195
|
+
for (const spec of node.specifiers ?? []) {
|
|
196
|
+
const exported = spec.exported;
|
|
197
|
+
if (exported?.type === "Identifier" && exported.name === name) {
|
|
198
|
+
found = true;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
return found;
|
|
203
|
+
}
|
|
204
|
+
/** True when the file imports `@supabase/*` AND calls a client factory — i.e.
|
|
205
|
+
* it's a Supabase client-setup module, not just a consumer. */
|
|
206
|
+
function isSupabaseClientModule(source) {
|
|
207
|
+
if (!source.includes("@supabase/"))
|
|
208
|
+
return false;
|
|
209
|
+
let root;
|
|
210
|
+
try {
|
|
211
|
+
root = tsx(source);
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
let importsSupabase = false;
|
|
217
|
+
root.find(jscodeshift.ImportDeclaration).forEach((p) => {
|
|
218
|
+
const src = p.node.source.value;
|
|
219
|
+
if (typeof src === "string" && src.startsWith("@supabase/"))
|
|
220
|
+
importsSupabase = true;
|
|
221
|
+
});
|
|
222
|
+
if (!importsSupabase)
|
|
223
|
+
return false;
|
|
224
|
+
let callsFactory = false;
|
|
225
|
+
root.find(jscodeshift.CallExpression).forEach((p) => {
|
|
226
|
+
const callee = p.node.callee;
|
|
227
|
+
if (callee.type === "Identifier" &&
|
|
228
|
+
CLIENT_FACTORIES.has(callee.name)) {
|
|
229
|
+
callsFactory = true;
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
return callsFactory;
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=migrate-supabase-scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-supabase-scaffold.js","sourceRoot":"","sources":["../../src/commands/migrate-supabase-scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { Context } from "../context";
|
|
3
|
-
import { type AskUserRecovery, type NoneRecovery, type ToolRecovery } from "../recovery";
|
|
4
|
-
import { type InspectSupabaseError } from "./migrate-supabase";
|
|
5
|
-
import { type MigrationPreview } from "./migrate-supabase-map";
|
|
2
|
+
import type { Context } from "../context.js";
|
|
3
|
+
import { type AskUserRecovery, type NoneRecovery, type ToolRecovery } from "../recovery.js";
|
|
4
|
+
import { type InspectSupabaseError } from "./migrate-supabase.js";
|
|
5
|
+
import { type MigrationPreview } from "./migrate-supabase-map.js";
|
|
6
6
|
/**
|
|
7
7
|
* FUTURE9 Phase B chunk 2 — schema migration write step.
|
|
8
8
|
*
|