@payload-auth-link/migrate 0.3.0 → 0.4.0
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 +6 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +149 -101
- package/dist/cli.js.map +1 -1
- package/dist/codemods.d.ts +19 -8
- package/dist/codemods.d.ts.map +1 -1
- package/dist/codemods.js +440 -21
- package/dist/codemods.js.map +1 -1
- package/dist/doctor/database.d.ts +5 -1
- package/dist/doctor/database.d.ts.map +1 -1
- package/dist/doctor/database.js +98 -34
- package/dist/doctor/database.js.map +1 -1
- package/dist/doctor/plugins.d.ts +15 -0
- package/dist/doctor/plugins.d.ts.map +1 -1
- package/dist/doctor/plugins.js +43 -0
- package/dist/doctor/plugins.js.map +1 -1
- package/dist/doctor/run-doctor.d.ts +11 -0
- package/dist/doctor/run-doctor.d.ts.map +1 -1
- package/dist/doctor/run-doctor.js +66 -20
- package/dist/doctor/run-doctor.js.map +1 -1
- package/dist/doctor/source-scan.d.ts +5 -0
- package/dist/doctor/source-scan.d.ts.map +1 -1
- package/dist/doctor/source-scan.js +9 -0
- package/dist/doctor/source-scan.js.map +1 -1
- package/dist/doctor/types.d.ts +12 -0
- package/dist/doctor/types.d.ts.map +1 -1
- package/dist/exporters.d.ts +7 -0
- package/dist/exporters.d.ts.map +1 -1
- package/dist/exporters.js +36 -1
- package/dist/exporters.js.map +1 -1
- package/dist/importer/apply.d.ts +5 -0
- package/dist/importer/apply.d.ts.map +1 -1
- package/dist/importer/apply.js +61 -33
- package/dist/importer/apply.js.map +1 -1
- package/dist/importer/lifecycle.d.ts +15 -6
- package/dist/importer/lifecycle.d.ts.map +1 -1
- package/dist/importer/lifecycle.js +131 -39
- package/dist/importer/lifecycle.js.map +1 -1
- package/dist/importer/run-import.d.ts +8 -2
- package/dist/importer/run-import.d.ts.map +1 -1
- package/dist/importer/run-import.js +73 -21
- package/dist/importer/run-import.js.map +1 -1
- package/dist/importer/source.d.ts +47 -4
- package/dist/importer/source.d.ts.map +1 -1
- package/dist/importer/source.js +159 -27
- package/dist/importer/source.js.map +1 -1
- package/dist/importer/types.d.ts +33 -0
- package/dist/importer/types.d.ts.map +1 -1
- package/dist/importer/types.js +48 -0
- package/dist/importer/types.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/package.json +8 -11
- package/src/cli.ts +153 -100
- package/src/codemods.ts +540 -36
- package/src/doctor/database.ts +129 -46
- package/src/doctor/plugins.ts +51 -0
- package/src/doctor/run-doctor.ts +90 -25
- package/src/doctor/source-scan.ts +10 -0
- package/src/doctor/types.ts +9 -0
- package/src/exporters.ts +46 -1
- package/src/importer/apply.ts +78 -32
- package/src/importer/lifecycle.ts +163 -43
- package/src/importer/run-import.ts +107 -22
- package/src/importer/source.ts +214 -30
- package/src/importer/types.ts +86 -0
- package/src/index.ts +25 -2
package/dist/importer/source.js
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import { Client } from 'pg';
|
|
2
|
+
import { defaultSourceTables, } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The columns each model's reads dereference (issue #68). A layout
|
|
5
|
+
* missing any of these cannot be imported faithfully — the probe
|
|
6
|
+
* blocks on it instead of letting the SELECT fail mid-run (or worse,
|
|
7
|
+
* silently store `undefined`-derived values).
|
|
8
|
+
*/
|
|
9
|
+
const requiredColumns = {
|
|
10
|
+
users: ['id', 'email', 'email_verified'],
|
|
11
|
+
accounts: ['id', 'account_id', 'provider_id', 'user_id'],
|
|
12
|
+
sessions: ['id', 'user_id', 'token', 'expires_at'],
|
|
13
|
+
verifications: ['id', 'identifier', 'value', 'expires_at'],
|
|
14
|
+
api_keys: ['id', 'key', 'reference_id'],
|
|
15
|
+
jwks: ['id', 'public_key', 'private_key'],
|
|
16
|
+
organizations: ['id', 'name', 'slug'],
|
|
17
|
+
members: ['id', 'organization_id', 'user_id'],
|
|
18
|
+
invitations: ['id', 'organization_id', 'email'],
|
|
19
|
+
users_role: ['parent_id', 'value'],
|
|
20
|
+
};
|
|
2
21
|
export async function openSource(connectionString) {
|
|
3
22
|
const client = new Client({ connectionString });
|
|
4
23
|
await client.connect();
|
|
@@ -14,16 +33,55 @@ async function tableExists(client, table) {
|
|
|
14
33
|
const result = await client.query(`SELECT 1 FROM information_schema.tables WHERE table_schema = 'public' AND table_name = $1`, [table]);
|
|
15
34
|
return result.rows.length > 0;
|
|
16
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Fail-closed probe (issue #68): every mapped model's table must
|
|
38
|
+
* exist (a `null` mapping records "not installed" and is skipped),
|
|
39
|
+
* and every column the reads dereference must be present. The run
|
|
40
|
+
* commands call this FIRST and abort on any finding — nothing is
|
|
41
|
+
* read, planned, or written past a failed probe.
|
|
42
|
+
*/
|
|
43
|
+
export async function probeSourceLayout(client, tables) {
|
|
44
|
+
const issues = [];
|
|
45
|
+
for (const model of Object.keys(defaultSourceTables)) {
|
|
46
|
+
const table = tables[model];
|
|
47
|
+
if (table === null) {
|
|
48
|
+
// Explicitly not installed: skipped by config, never an error.
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (!(await tableExists(client, table))) {
|
|
52
|
+
issues.push({
|
|
53
|
+
model,
|
|
54
|
+
key: table,
|
|
55
|
+
reason: `model '${model}' expects source table '${table}', which does not exist — if your layout renamed it, pass --source-map '{"${model}":"<table>"}', or map it null to record it as not installed`,
|
|
56
|
+
});
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
const columns = await columnsOf(client, table);
|
|
60
|
+
for (const column of requiredColumns[model]) {
|
|
61
|
+
if (!columns.has(column)) {
|
|
62
|
+
issues.push({
|
|
63
|
+
model,
|
|
64
|
+
key: `${table}.${column}`,
|
|
65
|
+
reason: `model '${model}' needs column '${column}' on source table '${table}', which does not exist — --source-map maps tables, not columns, so this layout needs a manual review`,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return issues;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Row counts for the given (mapped, existing) tables. A missing table
|
|
74
|
+
* throws — the probe owns the structured "missing table" report, so a
|
|
75
|
+
* throw here means the probe was skipped.
|
|
76
|
+
*/
|
|
17
77
|
export async function countTables(client, tables) {
|
|
18
78
|
const counts = {};
|
|
19
79
|
for (const table of tables) {
|
|
20
|
-
if (await tableExists(client, table)) {
|
|
21
|
-
|
|
22
|
-
counts[table] = counted.rows[0]?.n ?? 0;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
counts[table] = 0;
|
|
80
|
+
if (!(await tableExists(client, table))) {
|
|
81
|
+
throw new Error(`source table '${table}' is missing — run probeSourceLayout first`);
|
|
26
82
|
}
|
|
83
|
+
const counted = await client.query(`SELECT count(*)::int AS n FROM ${table}`);
|
|
84
|
+
counts[table] = counted.rows[0]?.n ?? 0;
|
|
27
85
|
}
|
|
28
86
|
return counts;
|
|
29
87
|
}
|
|
@@ -34,21 +92,29 @@ function text(value) {
|
|
|
34
92
|
return typeof value === 'string' && value !== '' ? value : null;
|
|
35
93
|
}
|
|
36
94
|
/** Every source user, with role rows and accounts attached. */
|
|
37
|
-
export async function readSourceUsers(client) {
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
95
|
+
export async function readSourceUsers(client, tables = defaultSourceTables) {
|
|
96
|
+
const usersTable = tables['users'];
|
|
97
|
+
const accountsTable = tables['accounts'];
|
|
98
|
+
// A null-mapped model is "not installed" by config: no rows, no read.
|
|
99
|
+
if (usersTable === null) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
const users = await client.query(`SELECT id, email, name, email_verified, image, created_at, updated_at FROM ${usersTable} ORDER BY id`);
|
|
103
|
+
const rolesTable = tables['users_role'];
|
|
104
|
+
const roleRows = rolesTable === null
|
|
105
|
+
? { rows: [] }
|
|
106
|
+
: await client.query(`SELECT parent_id, value FROM ${rolesTable} ORDER BY parent_id, "order"`);
|
|
43
107
|
const rolesByUser = new Map();
|
|
44
108
|
for (const row of roleRows.rows) {
|
|
45
109
|
const list = rolesByUser.get(String(row.parent_id)) ?? [];
|
|
46
110
|
list.push(row.value);
|
|
47
111
|
rolesByUser.set(String(row.parent_id), list);
|
|
48
112
|
}
|
|
49
|
-
const accounts =
|
|
113
|
+
const accounts = accountsTable === null
|
|
114
|
+
? { rows: [] }
|
|
115
|
+
: await client.query(`SELECT id, account_id, provider_id, password, access_token, refresh_token, id_token,
|
|
50
116
|
scope, access_token_expires_at, refresh_token_expires_at, user_id
|
|
51
|
-
FROM
|
|
117
|
+
FROM ${accountsTable} ORDER BY id`);
|
|
52
118
|
const accountsByUser = new Map();
|
|
53
119
|
for (const row of accounts.rows) {
|
|
54
120
|
const userId = String(row.user_id);
|
|
@@ -85,10 +151,14 @@ export async function readSourceUsers(client) {
|
|
|
85
151
|
}
|
|
86
152
|
return out;
|
|
87
153
|
}
|
|
88
|
-
/**
|
|
154
|
+
/**
|
|
155
|
+
* Rows of one flat plugin table (sessions, verifications, apiKeys, jwks, …).
|
|
156
|
+
* A missing table throws — a `null` mapping keeps the caller from ever
|
|
157
|
+
* asking for it, and an unmapped missing table aborts at the probe.
|
|
158
|
+
*/
|
|
89
159
|
export async function readFlatRows(client, table, columns) {
|
|
90
160
|
if (!(await tableExists(client, table))) {
|
|
91
|
-
|
|
161
|
+
throw new Error(`source table '${table}' is missing — run probeSourceLayout first`);
|
|
92
162
|
}
|
|
93
163
|
const result = await client.query(`SELECT ${columns.join(', ')} FROM ${table} ORDER BY id`);
|
|
94
164
|
return result.rows;
|
|
@@ -97,34 +167,58 @@ export async function readFlatRows(client, table, columns) {
|
|
|
97
167
|
* Members and invitations reference organizations and users by numeric
|
|
98
168
|
* id; the importer remaps to the target's baIds. Orphaned references
|
|
99
169
|
* are unmappable — they abort the run rather than skip silently.
|
|
170
|
+
*
|
|
171
|
+
* Every check is table-mapped (issue #68). The api-key check probes
|
|
172
|
+
* its columns: better-auth names the owner reference `reference_id`
|
|
173
|
+
* (1.7 / payload-auth layouts) or `user_id` (1.6-era layouts); when
|
|
174
|
+
* neither exists the check is reported as skipped-with-reason instead
|
|
175
|
+
* of passing silently.
|
|
100
176
|
*/
|
|
101
|
-
export async function findOrphans(client) {
|
|
177
|
+
export async function findOrphans(client, tables = defaultSourceTables) {
|
|
102
178
|
const orphans = [];
|
|
179
|
+
const skipped = [];
|
|
103
180
|
const checks = [
|
|
104
|
-
{ model: 'account', table: 'accounts', column: 'user_id', target: 'users' },
|
|
105
|
-
{ model: 'session', table: 'sessions', column: 'user_id', target: 'users' },
|
|
106
|
-
{
|
|
107
|
-
|
|
181
|
+
{ model: 'account', table: tables['accounts'], column: 'user_id', target: tables['users'] },
|
|
182
|
+
{ model: 'session', table: tables['sessions'], column: 'user_id', target: tables['users'] },
|
|
183
|
+
{
|
|
184
|
+
model: 'member',
|
|
185
|
+
table: tables['members'],
|
|
186
|
+
column: 'organization_id',
|
|
187
|
+
target: tables['organizations'],
|
|
188
|
+
},
|
|
189
|
+
{ model: 'member', table: tables['members'], column: 'user_id', target: tables['users'] },
|
|
108
190
|
{
|
|
109
191
|
model: 'invitation',
|
|
110
|
-
table: 'invitations',
|
|
192
|
+
table: tables['invitations'],
|
|
111
193
|
column: 'organization_id',
|
|
112
|
-
target: 'organizations',
|
|
194
|
+
target: tables['organizations'],
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
model: 'invitation',
|
|
198
|
+
table: tables['invitations'],
|
|
199
|
+
column: 'inviter_id',
|
|
200
|
+
target: tables['users'],
|
|
113
201
|
},
|
|
114
|
-
{ model: 'invitation', table: 'invitations', column: 'inviter_id', target: 'users' },
|
|
115
|
-
{ model: 'apikey', table: 'api_keys', column: 'user_id', target: 'users' },
|
|
116
202
|
];
|
|
117
203
|
for (const check of checks) {
|
|
204
|
+
if (check.table === null || check.target === null) {
|
|
205
|
+
// Null-mapped model: not installed by config — an expected skip,
|
|
206
|
+
// recorded so the report says why nothing was checked.
|
|
207
|
+
skipped.push(`${check.model}: skipped — ${check.table === null ? 'the model is null-mapped (not installed)' : `its target '${String(check.target)}' is null-mapped (not installed)`}`);
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
118
210
|
const exists = await Promise.all([
|
|
119
211
|
tableExists(client, check.table),
|
|
120
212
|
tableExists(client, check.target),
|
|
121
213
|
]);
|
|
122
214
|
if (!exists[0] || !exists[1]) {
|
|
215
|
+
skipped.push(`${check.model}: skipped — table '${!exists[0] ? check.table : String(check.target)}' is absent`);
|
|
123
216
|
continue;
|
|
124
217
|
}
|
|
125
218
|
// Customized layouts drop columns; a missing reference column is
|
|
126
|
-
// not an
|
|
219
|
+
// reported, not treated as an all-clear.
|
|
127
220
|
if (!(await columnsOf(client, check.table)).has(check.column)) {
|
|
221
|
+
skipped.push(`${check.model}: skipped — column '${check.column}' is absent on '${check.table}'`);
|
|
128
222
|
continue;
|
|
129
223
|
}
|
|
130
224
|
const result = await client.query(`SELECT t.id FROM ${check.table} t
|
|
@@ -138,7 +232,45 @@ export async function findOrphans(client) {
|
|
|
138
232
|
});
|
|
139
233
|
}
|
|
140
234
|
}
|
|
141
|
-
|
|
235
|
+
// api_keys: the owner column is named per layout — probe it.
|
|
236
|
+
const apiKeysTable = tables['api_keys'];
|
|
237
|
+
if (apiKeysTable === null) {
|
|
238
|
+
skipped.push('apikey: skipped — the model is null-mapped (not installed)');
|
|
239
|
+
}
|
|
240
|
+
else if (!(await tableExists(client, apiKeysTable))) {
|
|
241
|
+
skipped.push(`apikey: skipped — table '${apiKeysTable}' is absent`);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
const columns = await columnsOf(client, apiKeysTable);
|
|
245
|
+
const column = columns.has('reference_id')
|
|
246
|
+
? 'reference_id'
|
|
247
|
+
: columns.has('user_id')
|
|
248
|
+
? 'user_id'
|
|
249
|
+
: null;
|
|
250
|
+
const usersTable = tables['users'];
|
|
251
|
+
if (column === null) {
|
|
252
|
+
skipped.push(`apikey: skipped — neither 'reference_id' nor 'user_id' exists on '${apiKeysTable}'; the owner check cannot run`);
|
|
253
|
+
}
|
|
254
|
+
else if (usersTable === null) {
|
|
255
|
+
skipped.push('apikey: skipped — its target is null-mapped (not installed)');
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
// The owner column can be varchar (reference_id) or integer
|
|
259
|
+
// (1.6-era user_id): compare through text on both sides so the
|
|
260
|
+
// check runs on either layout.
|
|
261
|
+
const result = await client.query(`SELECT t.id FROM ${apiKeysTable} t
|
|
262
|
+
WHERE t.${column} IS NOT NULL
|
|
263
|
+
AND NOT EXISTS (SELECT 1 FROM ${usersTable} s WHERE s.id::text = t.${column}::text)`);
|
|
264
|
+
for (const row of result.rows) {
|
|
265
|
+
orphans.push({
|
|
266
|
+
model: 'apikey',
|
|
267
|
+
key: String(row.id),
|
|
268
|
+
reason: `${apiKeysTable}.${column} references a missing ${usersTable} row`,
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return { orphans, skipped };
|
|
142
274
|
}
|
|
143
275
|
/** Users whose email never verified — reported, never granted `linkable`. */
|
|
144
276
|
export function unverifiedEmails(users) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/importer/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/importer/source.ts"],"names":[],"mappings":"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"}
|
package/dist/importer/types.d.ts
CHANGED
|
@@ -60,6 +60,39 @@ export type ImportResult = {
|
|
|
60
60
|
readonly fieldWrites: number;
|
|
61
61
|
readonly plan: ImportPlan;
|
|
62
62
|
};
|
|
63
|
+
/**
|
|
64
|
+
* The models the source side names (issue #68). One entry per
|
|
65
|
+
* payload-auth table the importer/doctor reads — the keys are stable
|
|
66
|
+
* model names; the values are whatever the source database actually
|
|
67
|
+
* called the table.
|
|
68
|
+
*/
|
|
69
|
+
export type SourceModel = 'users' | 'accounts' | 'sessions' | 'verifications' | 'api_keys' | 'jwks' | 'organizations' | 'members' | 'invitations' | 'users_role';
|
|
70
|
+
/**
|
|
71
|
+
* A model → source-table override for custom layouts (`--source-map`):
|
|
72
|
+
* `{"accounts":"user_accounts","sessions":"user_sessions"}`. A `null`
|
|
73
|
+
* value means the model is explicitly NOT installed on the source
|
|
74
|
+
* (recorded as skipped-by-config, never probed as an error).
|
|
75
|
+
*/
|
|
76
|
+
export type SourceTableMap = {
|
|
77
|
+
readonly [M in SourceModel]?: string | null;
|
|
78
|
+
};
|
|
79
|
+
/** Every model resolved to its source table (`null` = not installed). */
|
|
80
|
+
export type ResolvedSourceTables = Readonly<Record<SourceModel, string | null>>;
|
|
81
|
+
/** payload-auth's default Postgres layout. */
|
|
82
|
+
export declare const defaultSourceTables: Readonly<Record<SourceModel, string>>;
|
|
83
|
+
/** All known source models — the error message names them. */
|
|
84
|
+
export declare const sourceModelNames: readonly SourceModel[];
|
|
85
|
+
/**
|
|
86
|
+
* Parse the `--source-map` JSON (same boundary style as `--slugs`):
|
|
87
|
+
* keys must be known source models, values a table name or `null`
|
|
88
|
+
* ("model not installed"). Unknown keys throw — a typo would
|
|
89
|
+
* otherwise silently skip the model it meant to map.
|
|
90
|
+
*/
|
|
91
|
+
export declare function parseSourceMapJson(json: string): SourceTableMap;
|
|
92
|
+
/** Merge `--source-map` overrides onto the default layout. */
|
|
93
|
+
export declare function resolveSourceTables(map: SourceTableMap | undefined): ResolvedSourceTables;
|
|
94
|
+
/** The tables to read (the mapped ones — `null` entries are skipped). */
|
|
95
|
+
export declare function presentTables(tables: ResolvedSourceTables): readonly string[];
|
|
63
96
|
/** The models the importer copies. */
|
|
64
97
|
export type TargetModel = 'user' | 'session' | 'account' | 'verification' | 'apikey' | 'jwks' | 'organization' | 'member' | 'invitation';
|
|
65
98
|
/** Target slugs with the known models always present (index-safe). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/importer/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/importer/types.ts"],"names":[],"mappings":"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"}
|
package/dist/importer/types.js
CHANGED
|
@@ -1,3 +1,51 @@
|
|
|
1
|
+
/** payload-auth's default Postgres layout. */
|
|
2
|
+
export const defaultSourceTables = {
|
|
3
|
+
users: 'users',
|
|
4
|
+
accounts: 'accounts',
|
|
5
|
+
sessions: 'sessions',
|
|
6
|
+
verifications: 'verifications',
|
|
7
|
+
api_keys: 'api_keys',
|
|
8
|
+
jwks: 'jwks',
|
|
9
|
+
organizations: 'organizations',
|
|
10
|
+
members: 'members',
|
|
11
|
+
invitations: 'invitations',
|
|
12
|
+
users_role: 'users_role',
|
|
13
|
+
};
|
|
14
|
+
/** All known source models — the error message names them. */
|
|
15
|
+
export const sourceModelNames = Object.keys(defaultSourceTables);
|
|
16
|
+
/**
|
|
17
|
+
* Parse the `--source-map` JSON (same boundary style as `--slugs`):
|
|
18
|
+
* keys must be known source models, values a table name or `null`
|
|
19
|
+
* ("model not installed"). Unknown keys throw — a typo would
|
|
20
|
+
* otherwise silently skip the model it meant to map.
|
|
21
|
+
*/
|
|
22
|
+
export function parseSourceMapJson(json) {
|
|
23
|
+
const parsed = JSON.parse(json);
|
|
24
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
25
|
+
throw new Error('--source-map must be a JSON object of model -> table name (or null)');
|
|
26
|
+
}
|
|
27
|
+
const map = {};
|
|
28
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
29
|
+
if (!sourceModelNames.includes(key)) {
|
|
30
|
+
throw new Error(`--source-map has an unknown model '${key}'; the known models are: ${sourceModelNames.join(', ')}`);
|
|
31
|
+
}
|
|
32
|
+
if (value !== null && (typeof value !== 'string' || value.trim() === '')) {
|
|
33
|
+
throw new Error(`--source-map['${key}'] must be a table name or null`);
|
|
34
|
+
}
|
|
35
|
+
map[key] = value === null ? null : value.trim();
|
|
36
|
+
}
|
|
37
|
+
return map;
|
|
38
|
+
}
|
|
39
|
+
/** Merge `--source-map` overrides onto the default layout. */
|
|
40
|
+
export function resolveSourceTables(map) {
|
|
41
|
+
return { ...defaultSourceTables, ...(map ?? {}) };
|
|
42
|
+
}
|
|
43
|
+
/** The tables to read (the mapped ones — `null` entries are skipped). */
|
|
44
|
+
export function presentTables(tables) {
|
|
45
|
+
return sourceModelNames
|
|
46
|
+
.map((model) => tables[model])
|
|
47
|
+
.filter((table) => table !== null);
|
|
48
|
+
}
|
|
1
49
|
/** Default target slugs; must match the app's engine wiring. */
|
|
2
50
|
export const defaultTargetSlugs = {
|
|
3
51
|
user: 'ba-users',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/importer/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/importer/types.ts"],"names":[],"mappings":"AAkGA,8CAA8C;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAA0C;IACxE,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;CACzB,CAAA;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAA2B,MAAM,CAAC,IAAI,CACjE,mBAAmB,CACH,CAAA;AAElB;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;IACxF,CAAC;IACD,MAAM,GAAG,GAAkC,EAAE,CAAA;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,EAAE,CAAC;QAC7E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAkB,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,sCAAsC,GAAG,4BAA4B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnG,CAAA;QACH,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,iCAAiC,CAAC,CAAA;QACxE,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACjD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB,CAAC,GAA+B;IACjE,OAAO,EAAE,GAAG,mBAAmB,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAA;AACnD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,MAA4B;IACxD,OAAO,gBAAgB;SACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC7B,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;AACvD,CAAC;AAiBD,gEAAgE;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAkB;IAC/C,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,aAAa;IACtB,YAAY,EAAE,kBAAkB;IAChC,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,iBAAiB;IAC/B,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,eAAe;CAC5B,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,14 +6,16 @@
|
|
|
6
6
|
export { runDoctor, behaviourChanges, findPayloadAuthPlugin, betterAuthPluginIds, usersSlugOf, } from './doctor/run-doctor.js';
|
|
7
7
|
export type { DoctorOptions } from './doctor/run-doctor.js';
|
|
8
8
|
export { checkVersions, payloadBand, betterAuthBand, nextBand } from './doctor/bands.js';
|
|
9
|
-
export { classifyPlugins } from './doctor/plugins.js';
|
|
10
|
-
export { scanSource, projectedUserFields } from './doctor/source-scan.js';
|
|
9
|
+
export { classifyPlugins, pluginsFromSourceTree } from './doctor/plugins.js';
|
|
10
|
+
export { scanSource, projectedUserFields, listSourceFiles } from './doctor/source-scan.js';
|
|
11
11
|
export { analyzeUsersCollection, findUsersCollection, localStrategyOn } from './doctor/users.js';
|
|
12
12
|
export { introspectDatabase } from './doctor/database.js';
|
|
13
13
|
export { runFromPayloadAuth, runVerify, runRollback, runFinalize } from './importer/run-import.js';
|
|
14
14
|
export { applyImport, summarizePlanRows } from './importer/apply.js';
|
|
15
|
+
export { countTables, findOrphans, openSource, probeSourceLayout, readFlatRows, readSourceUsers, unverifiedEmails, type OrphanScan, type SourceLayoutIssue, type SourceAccount, type SourceRow, type SourceUser, } from './importer/source.js';
|
|
15
16
|
export { readManifest, writeManifest, verifyImport, rollbackImport, finalizeManifest, defaultManifestPath, type VerifyIssue, type VerifyResult, } from './importer/lifecycle.js';
|
|
16
|
-
export { defaultTargetSlugs, type CreatedRow, type TargetModel, type TargetSlugMap, type FieldWrite, type ImportManifest, type ImportPlan, type ImportResult, type PlanRow, type Unmappable, } from './importer/types.js';
|
|
17
|
+
export { defaultSourceTables, defaultTargetSlugs, parseSourceMapJson, presentTables, resolveSourceTables, sourceModelNames, type CreatedRow, type ResolvedSourceTables, type SourceModel, type SourceTableMap, type TargetModel, type TargetSlugMap, type FieldWrite, type ImportManifest, type ImportPlan, type ImportResult, type PlanRow, type Unmappable, } from './importer/types.js';
|
|
18
|
+
export { exportToJsonl, parseExportTables, exportTables } from './exporters.js';
|
|
17
19
|
export { cliMain } from './cli.js';
|
|
18
20
|
export type { BehaviourChange, DatabaseFinding, DoctorIssue, DoctorReport, PluginFinding, SourceFinding, UsersFinding, VersionFinding, } from './doctor/types.js';
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAClG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,YAAY,EACV,eAAe,EACf,eAAe,EACf,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,mBAAmB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -5,13 +5,15 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { runDoctor, behaviourChanges, findPayloadAuthPlugin, betterAuthPluginIds, usersSlugOf, } from './doctor/run-doctor.js';
|
|
7
7
|
export { checkVersions, payloadBand, betterAuthBand, nextBand } from './doctor/bands.js';
|
|
8
|
-
export { classifyPlugins } from './doctor/plugins.js';
|
|
9
|
-
export { scanSource, projectedUserFields } from './doctor/source-scan.js';
|
|
8
|
+
export { classifyPlugins, pluginsFromSourceTree } from './doctor/plugins.js';
|
|
9
|
+
export { scanSource, projectedUserFields, listSourceFiles } from './doctor/source-scan.js';
|
|
10
10
|
export { analyzeUsersCollection, findUsersCollection, localStrategyOn } from './doctor/users.js';
|
|
11
11
|
export { introspectDatabase } from './doctor/database.js';
|
|
12
12
|
export { runFromPayloadAuth, runVerify, runRollback, runFinalize } from './importer/run-import.js';
|
|
13
13
|
export { applyImport, summarizePlanRows } from './importer/apply.js';
|
|
14
|
+
export { countTables, findOrphans, openSource, probeSourceLayout, readFlatRows, readSourceUsers, unverifiedEmails, } from './importer/source.js';
|
|
14
15
|
export { readManifest, writeManifest, verifyImport, rollbackImport, finalizeManifest, defaultManifestPath, } from './importer/lifecycle.js';
|
|
15
|
-
export { defaultTargetSlugs, } from './importer/types.js';
|
|
16
|
+
export { defaultSourceTables, defaultTargetSlugs, parseSourceMapJson, presentTables, resolveSourceTables, sourceModelNames, } from './importer/types.js';
|
|
17
|
+
export { exportToJsonl, parseExportTables, exportTables } from './exporters.js';
|
|
16
18
|
export { cliMain } from './cli.js';
|
|
17
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAClG,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,gBAAgB,GAMjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GAGpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,GAajB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payload-auth-link/migrate",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "payload-auth-link migration kit: read-only doctor/preflight, the payload-auth importer, and exporters.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -40,8 +40,9 @@
|
|
|
40
40
|
"clean": "rm -rf dist *.tsbuildinfo"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@payload-auth-link/core": "0.
|
|
44
|
-
"pg": "^8.16.3"
|
|
43
|
+
"@payload-auth-link/core": "0.6.0",
|
|
44
|
+
"pg": "^8.16.3",
|
|
45
|
+
"typescript": "^6.0.3"
|
|
45
46
|
},
|
|
46
47
|
"publishConfig": {
|
|
47
48
|
"access": "public",
|
|
@@ -52,9 +53,9 @@
|
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
54
55
|
"@better-auth/api-key": "1.7.7",
|
|
55
|
-
"@payload-auth-link/core": "0.
|
|
56
|
-
"@payload-auth-link/plugin": "0.
|
|
57
|
-
"@payload-auth-link/provider-better-auth": "0.
|
|
56
|
+
"@payload-auth-link/core": "0.6.0",
|
|
57
|
+
"@payload-auth-link/plugin": "0.10.0",
|
|
58
|
+
"@payload-auth-link/provider-better-auth": "0.7.0",
|
|
58
59
|
"@payloadcms/db-postgres": "3.90.2",
|
|
59
60
|
"@types/node": "^22",
|
|
60
61
|
"@types/pg": "^8.15.4",
|
|
@@ -62,17 +63,13 @@
|
|
|
62
63
|
"payload": "3.90.2"
|
|
63
64
|
},
|
|
64
65
|
"peerDependencies": {
|
|
65
|
-
"@payload-auth-link/next": "^0.3.
|
|
66
|
-
"better-auth": ">=1.7.6 <1.8.0",
|
|
66
|
+
"@payload-auth-link/next": "^0.3.2",
|
|
67
67
|
"payload": "^3.83.0 || 4.0.0-beta.0"
|
|
68
68
|
},
|
|
69
69
|
"peerDependenciesMeta": {
|
|
70
70
|
"@payload-auth-link/next": {
|
|
71
71
|
"optional": true
|
|
72
72
|
},
|
|
73
|
-
"better-auth": {
|
|
74
|
-
"optional": true
|
|
75
|
-
},
|
|
76
73
|
"payload": {
|
|
77
74
|
"optional": false
|
|
78
75
|
}
|