@payload-auth-link/migrate 0.3.1 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +6 -3
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +49 -6
  4. package/dist/cli.js.map +1 -1
  5. package/dist/codemods.d.ts +17 -8
  6. package/dist/codemods.d.ts.map +1 -1
  7. package/dist/codemods.js +439 -20
  8. package/dist/codemods.js.map +1 -1
  9. package/dist/doctor/database.d.ts +5 -1
  10. package/dist/doctor/database.d.ts.map +1 -1
  11. package/dist/doctor/database.js +98 -34
  12. package/dist/doctor/database.js.map +1 -1
  13. package/dist/doctor/plugins.d.ts +15 -0
  14. package/dist/doctor/plugins.d.ts.map +1 -1
  15. package/dist/doctor/plugins.js +43 -0
  16. package/dist/doctor/plugins.js.map +1 -1
  17. package/dist/doctor/run-doctor.d.ts +11 -0
  18. package/dist/doctor/run-doctor.d.ts.map +1 -1
  19. package/dist/doctor/run-doctor.js +66 -20
  20. package/dist/doctor/run-doctor.js.map +1 -1
  21. package/dist/doctor/source-scan.d.ts +5 -0
  22. package/dist/doctor/source-scan.d.ts.map +1 -1
  23. package/dist/doctor/source-scan.js +9 -0
  24. package/dist/doctor/source-scan.js.map +1 -1
  25. package/dist/doctor/types.d.ts +12 -0
  26. package/dist/doctor/types.d.ts.map +1 -1
  27. package/dist/exporters.d.ts +7 -0
  28. package/dist/exporters.d.ts.map +1 -1
  29. package/dist/exporters.js +36 -1
  30. package/dist/exporters.js.map +1 -1
  31. package/dist/importer/apply.d.ts +5 -0
  32. package/dist/importer/apply.d.ts.map +1 -1
  33. package/dist/importer/apply.js +61 -33
  34. package/dist/importer/apply.js.map +1 -1
  35. package/dist/importer/lifecycle.d.ts +15 -6
  36. package/dist/importer/lifecycle.d.ts.map +1 -1
  37. package/dist/importer/lifecycle.js +131 -39
  38. package/dist/importer/lifecycle.js.map +1 -1
  39. package/dist/importer/run-import.d.ts +6 -0
  40. package/dist/importer/run-import.d.ts.map +1 -1
  41. package/dist/importer/run-import.js +72 -20
  42. package/dist/importer/run-import.js.map +1 -1
  43. package/dist/importer/source.d.ts +47 -4
  44. package/dist/importer/source.d.ts.map +1 -1
  45. package/dist/importer/source.js +159 -27
  46. package/dist/importer/source.js.map +1 -1
  47. package/dist/importer/types.d.ts +33 -0
  48. package/dist/importer/types.d.ts.map +1 -1
  49. package/dist/importer/types.js +48 -0
  50. package/dist/importer/types.js.map +1 -1
  51. package/dist/index.d.ts +5 -3
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +5 -3
  54. package/dist/index.js.map +1 -1
  55. package/package.json +8 -11
  56. package/src/cli.ts +52 -6
  57. package/src/codemods.ts +537 -35
  58. package/src/doctor/database.ts +129 -46
  59. package/src/doctor/plugins.ts +51 -0
  60. package/src/doctor/run-doctor.ts +90 -25
  61. package/src/doctor/source-scan.ts +10 -0
  62. package/src/doctor/types.ts +9 -0
  63. package/src/exporters.ts +46 -1
  64. package/src/importer/apply.ts +78 -32
  65. package/src/importer/lifecycle.ts +163 -43
  66. package/src/importer/run-import.ts +102 -19
  67. package/src/importer/source.ts +214 -30
  68. package/src/importer/types.ts +86 -0
  69. package/src/index.ts +25 -2
@@ -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
- const counted = await client.query(`SELECT count(*)::int AS n FROM ${table}`);
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 hasRoleTable = await tableExists(client, 'users_role');
39
- const users = await client.query(`SELECT id, email, name, email_verified, image, created_at, updated_at FROM users ORDER BY id`);
40
- const roleRows = hasRoleTable
41
- ? await client.query(`SELECT parent_id, value FROM users_role ORDER BY parent_id, "order"`)
42
- : { rows: [] };
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 = await client.query(`SELECT id, account_id, provider_id, password, access_token, refresh_token, id_token,
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 accounts ORDER BY id`);
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
- /** Rows of one flat plugin table (sessions, verifications, apiKeys, jwks, …). */
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
- return [];
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
- { model: 'member', table: 'members', column: 'organization_id', target: 'organizations' },
107
- { model: 'member', table: 'members', column: 'user_id', target: 'users' },
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 orphan farm.
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
- return orphans;
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":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/importer/source.ts"],"names":[],"mappings":"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"}
@@ -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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"}
@@ -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":"AAoFA,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"}
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
@@ -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;AACrD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACzE,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,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,kBAAkB,EAClB,KAAK,UAAU,EACf,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,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"}
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;AACrD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AACzE,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,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GAGpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,kBAAkB,GAUnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,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.1",
3
+ "version": "0.4.1",
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.5.0",
44
- "pg": "^8.16.3"
43
+ "@payload-auth-link/core": "0.6.1",
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.5.0",
56
- "@payload-auth-link/plugin": "0.9.0",
57
- "@payload-auth-link/provider-better-auth": "0.6.0",
56
+ "@payload-auth-link/core": "0.6.1",
57
+ "@payload-auth-link/plugin": "0.10.1",
58
+ "@payload-auth-link/provider-better-auth": "0.7.1",
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.1",
66
- "better-auth": ">=1.7.6 <1.8.0",
66
+ "@payload-auth-link/next": "^0.3.3",
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
  }