@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.
- package/README.md +6 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +49 -6
- package/dist/cli.js.map +1 -1
- package/dist/codemods.d.ts +17 -8
- package/dist/codemods.d.ts.map +1 -1
- package/dist/codemods.js +439 -20
- 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 +6 -0
- package/dist/importer/run-import.d.ts.map +1 -1
- package/dist/importer/run-import.js +72 -20
- 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 +52 -6
- package/src/codemods.ts +537 -35
- 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 +102 -19
- package/src/importer/source.ts +214 -30
- package/src/importer/types.ts +86 -0
- package/src/index.ts +25 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { defaultTargetSlugs, resolveSourceTables, sourceModelNames, } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Manifest lifecycle (issue #50): `verify` checks both sides, `rollback`
|
|
4
5
|
* undoes exactly what the manifest records, and `finalize` marks the
|
|
@@ -22,26 +23,25 @@ export function writeManifest(manifest, path) {
|
|
|
22
23
|
writeFileSync(path, `${JSON.stringify(manifest, null, 2)}\n`);
|
|
23
24
|
}
|
|
24
25
|
/**
|
|
25
|
-
* Verify (
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* every
|
|
29
|
-
*
|
|
26
|
+
* Verify (issues #50, #68, #69): fail closed on the source layout
|
|
27
|
+
* (the probe runs first), per-model counts match EXACTLY (zero never
|
|
28
|
+
* skips; every mapped model is either counted or explicitly
|
|
29
|
+
* null-mapped), every source user has exactly one target row, every
|
|
30
|
+
* imported user resolves through exactly one `better-auth` identity
|
|
31
|
+
* pointing at their ba-users id, every credential account resolves to
|
|
32
|
+
* its user, every API key carries its hash with a resolvable owner,
|
|
33
|
+
* and every member/invitation references an existing org and user.
|
|
34
|
+
* Exits non-zero on any mismatch (the caller maps `ok` to the exit
|
|
35
|
+
* code).
|
|
30
36
|
*/
|
|
31
37
|
export async function verifyImport(options) {
|
|
32
38
|
const { payload, sourceConnectionString } = options;
|
|
33
39
|
const slugs = {
|
|
34
|
-
...
|
|
35
|
-
user: 'ba-users',
|
|
36
|
-
account: 'ba-accounts',
|
|
37
|
-
session: 'ba-sessions',
|
|
38
|
-
apikey: 'ba-apikey',
|
|
39
|
-
organization: 'ba-organization',
|
|
40
|
-
member: 'ba-member',
|
|
41
|
-
invitation: 'ba-invitation',
|
|
42
|
-
},
|
|
40
|
+
...defaultTargetSlugs,
|
|
43
41
|
...(options.slugs ?? {}),
|
|
44
42
|
};
|
|
43
|
+
const sourceTables = resolveSourceTables(options.sourceTables);
|
|
44
|
+
const sessions = options.sessions ?? 'carry';
|
|
45
45
|
const issues = [];
|
|
46
46
|
const checks = [];
|
|
47
47
|
const check = (name, passed, detail) => {
|
|
@@ -55,36 +55,66 @@ export async function verifyImport(options) {
|
|
|
55
55
|
return counted.totalDocs;
|
|
56
56
|
};
|
|
57
57
|
// Source side, read directly.
|
|
58
|
-
const { openSource, readSourceUsers, countTables } = await import('./source.js');
|
|
58
|
+
const { openSource, probeSourceLayout, readSourceUsers, countTables } = await import('./source.js');
|
|
59
59
|
const client = await openSource(sourceConnectionString);
|
|
60
60
|
try {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
//
|
|
61
|
+
// Fail closed (issue #68): a missing mapped table or column aborts
|
|
62
|
+
// the check with an actionable report instead of reading zeros.
|
|
63
|
+
const probe = await probeSourceLayout(client, sourceTables);
|
|
64
|
+
if (probe.length > 0) {
|
|
65
|
+
for (const issue of probe) {
|
|
66
|
+
issues.push({ code: 'source-table-missing', detail: issue.reason });
|
|
67
|
+
}
|
|
68
|
+
return { ok: false, issues, checks };
|
|
69
|
+
}
|
|
70
|
+
const sourceCounts = await countTables(client, sourceModelNames.map((model) => sourceTables[model]).filter((t) => t !== null));
|
|
71
|
+
const users = await readSourceUsers(client, sourceTables);
|
|
72
|
+
// 1. per-model counts match EXACTLY (issue #68) — zero never skips.
|
|
73
|
+
// A null-mapped model is recorded as skipped-by-config, visibly.
|
|
74
74
|
const countPairs = [
|
|
75
|
-
['users', String(slugs['user'])
|
|
76
|
-
['accounts', String(slugs['account'])
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
{ label: 'users', table: sourceTables['users'], collection: String(slugs['user']) },
|
|
76
|
+
{ label: 'accounts', table: sourceTables['accounts'], collection: String(slugs['account']) },
|
|
77
|
+
{
|
|
78
|
+
label: 'sessions',
|
|
79
|
+
table: sessions === 'carry' ? sourceTables['sessions'] : null,
|
|
80
|
+
collection: String(slugs['session']),
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
label: 'verifications',
|
|
84
|
+
table: sourceTables['verifications'],
|
|
85
|
+
collection: String(slugs['verification']),
|
|
86
|
+
},
|
|
87
|
+
{ label: 'api keys', table: sourceTables['api_keys'], collection: String(slugs['apikey']) },
|
|
88
|
+
{ label: 'jwks', table: sourceTables['jwks'], collection: String(slugs['jwks']) },
|
|
89
|
+
{
|
|
90
|
+
label: 'organizations',
|
|
91
|
+
table: sourceTables['organizations'],
|
|
92
|
+
collection: String(slugs['organization']),
|
|
93
|
+
},
|
|
94
|
+
{ label: 'members', table: sourceTables['members'], collection: String(slugs['member']) },
|
|
95
|
+
{
|
|
96
|
+
label: 'invitations',
|
|
97
|
+
table: sourceTables['invitations'],
|
|
98
|
+
collection: String(slugs['invitation']),
|
|
99
|
+
},
|
|
81
100
|
];
|
|
82
|
-
for (const
|
|
83
|
-
if (
|
|
101
|
+
for (const pair of countPairs) {
|
|
102
|
+
if (pair.table === null) {
|
|
103
|
+
checks.push({
|
|
104
|
+
name: `count ${pair.label} (skipped: null-mapped — not installed on the source)`,
|
|
105
|
+
passed: true,
|
|
106
|
+
});
|
|
84
107
|
continue;
|
|
85
108
|
}
|
|
86
|
-
const
|
|
87
|
-
|
|
109
|
+
const expected = sourceCounts[pair.table] ?? 0;
|
|
110
|
+
const actual = await targetCounts(pair.collection);
|
|
111
|
+
check(`count ${pair.label}`, actual === expected, `expected exactly ${expected} ${pair.label} in ${pair.collection}, found ${actual}`);
|
|
112
|
+
}
|
|
113
|
+
if (sessions === 'drop') {
|
|
114
|
+
checks.push({
|
|
115
|
+
name: 'count sessions (skipped: the import dropped them)',
|
|
116
|
+
passed: true,
|
|
117
|
+
});
|
|
88
118
|
}
|
|
89
119
|
// 2. every source user has exactly one target row and its host doc.
|
|
90
120
|
let userMatches = 0;
|
|
@@ -106,6 +136,67 @@ export async function verifyImport(options) {
|
|
|
106
136
|
}
|
|
107
137
|
check('each source user has exactly one target row', userIssues === 0, `${userIssues} user(s) without exactly one ${String(slugs['user'])} row`);
|
|
108
138
|
void userMatches;
|
|
139
|
+
// 2b. every imported user resolves through EXACTLY ONE better-auth
|
|
140
|
+
// identity pointing at their ba-users id (issue #69) — that is the
|
|
141
|
+
// lookup findByProviderIdentity issues on the next provider
|
|
142
|
+
// sign-in. The host docs also carry the stored roles (issue #68's
|
|
143
|
+
// users_role accounting) whenever the host declares the field.
|
|
144
|
+
let identityIssues = 0;
|
|
145
|
+
let roleMismatchDocs = 0;
|
|
146
|
+
let hostDocsWithRoles = 0;
|
|
147
|
+
for (const user of users) {
|
|
148
|
+
const hostId = Number(user.id);
|
|
149
|
+
if (!Number.isSafeInteger(hostId)) {
|
|
150
|
+
identityIssues += 1;
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
let doc;
|
|
154
|
+
try {
|
|
155
|
+
doc = await payload.findByID({
|
|
156
|
+
collection: 'users',
|
|
157
|
+
id: hostId,
|
|
158
|
+
depth: 0,
|
|
159
|
+
overrideAccess: true,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
identityIssues += 1;
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
if (typeof doc !== 'object' || doc === null) {
|
|
167
|
+
identityIssues += 1;
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
const record = doc;
|
|
171
|
+
const identities = Array.isArray(record['identities'])
|
|
172
|
+
? record['identities']
|
|
173
|
+
: [];
|
|
174
|
+
const resolving = identities.filter((entry) => typeof entry === 'object' &&
|
|
175
|
+
entry !== null &&
|
|
176
|
+
entry['providerId'] === 'better-auth' &&
|
|
177
|
+
String(entry['providerUserId']) === String(user.id));
|
|
178
|
+
if (identities.length !== 1 || resolving.length !== 1) {
|
|
179
|
+
identityIssues += 1;
|
|
180
|
+
}
|
|
181
|
+
const roles = record['roles'];
|
|
182
|
+
if (Array.isArray(roles)) {
|
|
183
|
+
hostDocsWithRoles += 1;
|
|
184
|
+
const stored = new Set(roles.map((role) => String(role)));
|
|
185
|
+
if (!user.roles.every((role) => stored.has(role))) {
|
|
186
|
+
roleMismatchDocs += 1;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
check('every imported user resolves through one better-auth identity', identityIssues === 0, `${identityIssues} user(s) without exactly one better-auth identity resolving to their ba-users id`);
|
|
191
|
+
if (hostDocsWithRoles > 0) {
|
|
192
|
+
check('source roles carried onto the host docs', roleMismatchDocs === 0, `${roleMismatchDocs} host doc(s) missing stored role values`);
|
|
193
|
+
}
|
|
194
|
+
else if (sourceTables['users_role'] !== null && users.some((user) => user.roles.length > 0)) {
|
|
195
|
+
checks.push({
|
|
196
|
+
name: 'source roles carried onto the host docs (skipped: the host users carry no roles field)',
|
|
197
|
+
passed: true,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
109
200
|
// 3. every credential account resolves to its user.
|
|
110
201
|
const accounts = await payload.find({
|
|
111
202
|
collection: String(slugs['account']),
|
|
@@ -140,7 +231,8 @@ export async function verifyImport(options) {
|
|
|
140
231
|
}
|
|
141
232
|
}
|
|
142
233
|
check('every account resolves to its user (credential hashes intact)', orphanAccounts === 0, `${orphanAccounts} account(s) with a missing user or empty credential hash`);
|
|
143
|
-
|
|
234
|
+
const sourceAccountsCount = sourceTables['accounts'] === null ? 0 : (sourceCounts[sourceTables['accounts']] ?? 0);
|
|
235
|
+
check('credential accounts carry hashes', sourceAccountsCount === 0 || credentialAccounts > 0, 'no credential account carries a password hash');
|
|
144
236
|
// 4. API keys: hash present, owner resolves, rate-limit state kept.
|
|
145
237
|
const keys = await payload.find({
|
|
146
238
|
collection: String(slugs['apikey']),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/importer/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/importer/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEjE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GAGjB,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,kCAAkC,CAAA;AAErE,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9D,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACd,MAAgC,CAAC,OAAO,KAAK,CAAC,EAC/C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,qCAAqC,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,MAAwB,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAwB,EAAE,IAAY;IAClE,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;AAC/D,CAAC;AAaD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAQlC;IACC,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAA;IACnD,MAAM,KAAK,GAA2B;QACpC,GAAG,kBAAkB;QACrB,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;KACzB,CAAA;IACD,MAAM,YAAY,GAAyB,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACpF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAA;IAC5C,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,MAAM,MAAM,GAAwC,EAAE,CAAA;IACtD,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,MAAe,EAAE,MAAe,EAAQ,EAAE;QACrE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC7B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAA;QAClD,CAAC;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,EAAE,UAAkB,EAAmB,EAAE;QACjE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;QACzE,OAAO,OAAO,CAAC,SAAS,CAAA;IAC1B,CAAC,CAAA;IAED,8BAA8B;IAC9B,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,GACnE,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IAC7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,sBAAsB,CAAC,CAAA;IACvD,IAAI,CAAC;QACH,mEAAmE;QACnE,gEAAgE;QAChE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;YACrE,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;QACtC,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,WAAW,CACpC,MAAM,EACN,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAC5F,CAAA;QACD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAEzD,oEAAoE;QACpE,iEAAiE;QACjE,MAAM,UAAU,GAIV;YACJ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;YACnF,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE;YAC5F;gBACE,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC7D,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aACrC;YACD;gBACE,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC;gBACpC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;aAC1C;YACD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;YAC3F,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE;YACjF;gBACE,KAAK,EAAE,eAAe;gBACtB,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC;gBACpC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;aAC1C;YACD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;YACzF;gBACE,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC;gBAClC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;aACxC;SACF,CAAA;QACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,SAAS,IAAI,CAAC,KAAK,uDAAuD;oBAChF,MAAM,EAAE,IAAI;iBACb,CAAC,CAAA;gBACF,SAAQ;YACV,CAAC;YACD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAClD,KAAK,CACH,SAAS,IAAI,CAAC,KAAK,EAAE,EACrB,MAAM,KAAK,QAAQ,EACnB,oBAAoB,QAAQ,IAAI,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,UAAU,WAAW,MAAM,EAAE,CACpF,CAAA;QACH,CAAC;QACD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,mDAAmD;gBACzD,MAAM,EAAE,IAAI;aACb,CAAC,CAAA;QACJ,CAAC;QAED,oEAAoE;QACpE,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAC/B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;gBACpC,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,KAAK;gBACjB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAA;YACF,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;gBAC1B,UAAU,IAAI,CAAC,CAAA;gBACf,SAAQ;YACV,CAAC;YACD,WAAW,IAAI,CAAC,CAAA;QAClB,CAAC;QACD,KAAK,CACH,6CAA6C,EAC7C,UAAU,KAAK,CAAC,EAChB,GAAG,UAAU,gCAAgC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CACzE,CAAA;QACD,KAAK,WAAW,CAAA;QAEhB,mEAAmE;QACnE,mEAAmE;QACnE,4DAA4D;QAC5D,kEAAkE;QAClE,+DAA+D;QAC/D,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,IAAI,gBAAgB,GAAG,CAAC,CAAA;QACxB,IAAI,iBAAiB,GAAG,CAAC,CAAA;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC9B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,cAAc,IAAI,CAAC,CAAA;gBACnB,SAAQ;YACV,CAAC;YACD,IAAI,GAAY,CAAA;YAChB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC;oBAC3B,UAAU,EAAE,OAAO;oBACnB,EAAE,EAAE,MAAM;oBACV,KAAK,EAAE,CAAC;oBACR,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAA;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc,IAAI,CAAC,CAAA;gBACnB,SAAQ;YACV,CAAC;YACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC5C,cAAc,IAAI,CAAC,CAAA;gBACnB,SAAQ;YACV,CAAC;YACD,MAAM,MAAM,GAAG,GAA8B,CAAA;YAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACpD,CAAC,CAAE,MAAM,CAAC,YAAY,CAAwB;gBAC9C,CAAC,CAAC,EAAE,CAAA;YACN,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CACjC,CAAC,KAAK,EAAE,EAAE,CACR,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,KAAK,IAAI;gBACb,KAAiC,CAAC,YAAY,CAAC,KAAK,aAAa;gBAClE,MAAM,CAAE,KAAiC,CAAC,gBAAgB,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CACnF,CAAA;YACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtD,cAAc,IAAI,CAAC,CAAA;YACrB,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;YAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,iBAAiB,IAAI,CAAC,CAAA;gBACtB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACzD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBAClD,gBAAgB,IAAI,CAAC,CAAA;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,CACH,+DAA+D,EAC/D,cAAc,KAAK,CAAC,EACpB,GAAG,cAAc,kFAAkF,CACpG,CAAA;QACD,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CACH,yCAAyC,EACzC,gBAAgB,KAAK,CAAC,EACtB,GAAG,gBAAgB,yCAAyC,CAC7D,CAAA;QACH,CAAC;aAAM,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9F,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,wFAAwF;gBAC9F,MAAM,EAAE,IAAI;aACb,CAAC,CAAA;QACJ,CAAC;QAED,oDAAoD;QACpD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAClC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACpC,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,KAAK;YACjB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;QACnC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACjC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,KAAK;YACjB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAE,GAA+B,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,IAAI,kBAAkB,GAAG,CAAC,CAAA;QAC1B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,GAA8B,CAAA;YAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC1C,cAAc,IAAI,CAAC,CAAA;YACrB,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;gBACvC,kBAAkB,IAAI,CAAC,CAAA;gBACvB,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;oBAClE,cAAc,IAAI,CAAC,CAAA;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,CACH,+DAA+D,EAC/D,cAAc,KAAK,CAAC,EACpB,GAAG,cAAc,0DAA0D,CAC5E,CAAA;QACD,MAAM,mBAAmB,GACvB,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACvF,KAAK,CACH,kCAAkC,EAClC,mBAAmB,KAAK,CAAC,IAAI,kBAAkB,GAAG,CAAC,EACnD,+CAA+C,CAChD,CAAA;QAED,oEAAoE;QACpE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnC,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,KAAK;YACjB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,GAA8B,CAAA;YAC7C,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;gBACxD,UAAU,IAAI,CAAC,CAAA;gBACf,SAAQ;YACV,CAAC;YACD,kEAAkE;YAClE,0CAA0C;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,CAAA;YACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClC,UAAU,IAAI,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QACD,KAAK,CACH,uDAAuD,EACvD,UAAU,KAAK,CAAC,EAChB,GAAG,UAAU,oCAAoC,CAClD,CAAA;QAED,4DAA4D;QAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;QAChC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC9B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACzC,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,KAAK;YACjB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAE,GAA+B,CAAC,IAAI,CAAC,CAAC,CAAA;QAC3D,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACjC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnC,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,KAAK;YACjB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,GAA8B,CAAA;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACxF,aAAa,IAAI,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;QACD,KAAK,CACH,kDAAkD,EAClD,aAAa,KAAK,CAAC,EACnB,GAAG,aAAa,qCAAqC,CACtD,CAAA;QACD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACrC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACvC,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,KAAK;YACjB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,iBAAiB,GAAG,CAAC,CAAA;QACzB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,GAA8B,CAAA;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;gBAC/C,iBAAiB,IAAI,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QACD,KAAK,CACH,6CAA6C,EAC7C,iBAAiB,KAAK,CAAC,EACvB,GAAG,iBAAiB,yCAAyC,CAC9D,CAAA;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,GAAG,EAAE,CAAA;IACpB,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAIpC;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,OAAO,CAAA;IACrD,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,oEAAoE;QACpE,+CAA+C;QAC/C,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;YACtF,OAAO,IAAI,CAAC,CAAA;QACd,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;YAC9D,qDAAqD;YACrD,GAAG,CAAC,aAAa,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,IAAI,GAA4B;YACpC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAa;SACpF,CAAA;QACD,MAAM,OAAO,CAAC,MAAM,CAAC;YACnB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI;YACJ,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,QAAQ,IAAI,CAAC,CAAA;IACf,CAAC;IACD,GAAG,CAAC,aAAa,OAAO,oBAAoB,QAAQ,0BAA0B,CAAC,CAAA;IAC/E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AAC9B,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,QAAwB,EAAE,IAAY;IACrE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,MAAM,SAAS,GAAmB,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;IAClE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC9B,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -17,6 +17,12 @@ export type ImportCommandOptions = {
|
|
|
17
17
|
readonly sessions: 'carry' | 'drop';
|
|
18
18
|
readonly manifestPath?: string | undefined;
|
|
19
19
|
readonly slugsJson?: string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* The `--source-map` JSON (issue #68): model → source table name, or
|
|
22
|
+
* `null` for "model not installed". Missing mapped tables abort the
|
|
23
|
+
* run before anything is written without it.
|
|
24
|
+
*/
|
|
25
|
+
readonly sourceMapJson?: string | undefined;
|
|
20
26
|
readonly json?: boolean;
|
|
21
27
|
readonly log?: (message: string) => void;
|
|
22
28
|
readonly loadPayload?: (configPath: string) => Promise<import('payload').Payload>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-import.d.ts","sourceRoot":"","sources":["../../src/importer/run-import.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"run-import.d.ts","sourceRoot":"","sources":["../../src/importer/run-import.ts"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAA;AAUvB,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,YAAY,EAGlB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;GASG;AAEH,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,SAAS,EAAE,OAAO,CAAC,CAAA;CAClF,CAAA;AAkFD,8EAA8E;AAC9E,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAC/E,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B,CAAC,CAgGD;AAED,4BAA4B;AAC5B,wBAAsB,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwCpF;AAED,8BAA8B;AAC9B,wBAAsB,WAAW,CAC/B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAahD;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CACzB,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,cAAc,GAAG,KAAK,CAAC,GAC1D,OAAO,CAAC,cAAc,CAAC,CAYzB"}
|
|
@@ -2,8 +2,8 @@ import { isRecord } from '@payload-auth-link/core';
|
|
|
2
2
|
import { pathToFileURL } from 'node:url';
|
|
3
3
|
import { applyImport, summarizePlanRows } from './apply.js';
|
|
4
4
|
import { defaultManifestPath, finalizeManifest, readManifest, rollbackImport, verifyImport, } from './lifecycle.js';
|
|
5
|
-
import { countTables, findOrphans, openSource, unverifiedEmails } from './source.js';
|
|
6
|
-
import { defaultTargetSlugs, } from './types.js';
|
|
5
|
+
import { countTables, findOrphans, openSource, probeSourceLayout, readSourceUsers, unverifiedEmails, } from './source.js';
|
|
6
|
+
import { defaultTargetSlugs, parseSourceMapJson, presentTables, resolveSourceTables, } from './types.js';
|
|
7
7
|
const log_ = (options) => options.log ?? (() => { });
|
|
8
8
|
async function loadPayloadInstance(configPath) {
|
|
9
9
|
// Lazy: `doctor` never needs Payload, and a cold CLI should not pay
|
|
@@ -26,30 +26,41 @@ function slugsOf(options) {
|
|
|
26
26
|
}
|
|
27
27
|
return { ...defaultTargetSlugs, ...parsed };
|
|
28
28
|
}
|
|
29
|
+
/** The resolved source layout (`--source-map` over the default layout). */
|
|
30
|
+
function sourceTablesOf(options) {
|
|
31
|
+
return resolveSourceTables(options.sourceMapJson === undefined ? undefined : parseSourceMapJson(options.sourceMapJson));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Fail-closed probe (issue #68): runs FIRST, before any plan, read, or
|
|
35
|
+
* Payload boot. Findings come back as unmappable rows — the caller's
|
|
36
|
+
* exit-1 path — so nothing is silently read as empty.
|
|
37
|
+
*/
|
|
38
|
+
async function probeOrFail(options, log) {
|
|
39
|
+
const client = await openSource(options.databaseUrl);
|
|
40
|
+
try {
|
|
41
|
+
const issues = await probeSourceLayout(client, sourceTablesOf(options));
|
|
42
|
+
for (const issue of issues) {
|
|
43
|
+
log(` X ${issue.model}: ${issue.reason}`);
|
|
44
|
+
}
|
|
45
|
+
return issues;
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
await client.end();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
29
51
|
/** Plan-only pass: counts, orphans, unverified users, warnings. */
|
|
30
|
-
async function buildPlan(options) {
|
|
52
|
+
async function buildPlan(options, sourceTables) {
|
|
31
53
|
const client = await openSource(options.databaseUrl);
|
|
32
54
|
try {
|
|
33
|
-
const sourceCounts = await countTables(client,
|
|
34
|
-
|
|
35
|
-
'accounts',
|
|
36
|
-
'sessions',
|
|
37
|
-
'verifications',
|
|
38
|
-
'api_keys',
|
|
39
|
-
'jwks',
|
|
40
|
-
'organizations',
|
|
41
|
-
'members',
|
|
42
|
-
'invitations',
|
|
43
|
-
'users_role',
|
|
44
|
-
]);
|
|
45
|
-
const orphans = await findOrphans(client);
|
|
55
|
+
const sourceCounts = await countTables(client, presentTables(sourceTables));
|
|
56
|
+
const { orphans, skipped } = await findOrphans(client, sourceTables);
|
|
46
57
|
return {
|
|
47
58
|
sourceCounts,
|
|
48
59
|
plan: {
|
|
49
60
|
rows: [],
|
|
50
61
|
unmappable: orphans,
|
|
51
62
|
sessions: options.sessions,
|
|
52
|
-
warnings:
|
|
63
|
+
warnings: skipped.map((reason) => `orphan check ${reason}`),
|
|
53
64
|
},
|
|
54
65
|
};
|
|
55
66
|
}
|
|
@@ -61,12 +72,31 @@ async function buildPlan(options) {
|
|
|
61
72
|
export async function runFromPayloadAuth(options) {
|
|
62
73
|
const log = log_(options);
|
|
63
74
|
const slugs = slugsOf(options);
|
|
64
|
-
const
|
|
75
|
+
const sourceTables = sourceTablesOf(options);
|
|
76
|
+
// The probe runs before anything else (issue #68): a missing mapped
|
|
77
|
+
// table or column aborts here — exit 1, nothing planned or written.
|
|
78
|
+
const probeIssues = await probeOrFail(options, log);
|
|
79
|
+
if (probeIssues.length > 0) {
|
|
80
|
+
return {
|
|
81
|
+
exitCode: 1,
|
|
82
|
+
plan: {
|
|
83
|
+
rows: [],
|
|
84
|
+
unmappable: probeIssues.map((issue) => ({
|
|
85
|
+
model: issue.model,
|
|
86
|
+
key: issue.key,
|
|
87
|
+
reason: issue.reason,
|
|
88
|
+
})),
|
|
89
|
+
sessions: options.sessions,
|
|
90
|
+
warnings: [],
|
|
91
|
+
},
|
|
92
|
+
unverified: [],
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const { plan: basePlan, sourceCounts } = await buildPlan(options, sourceTables);
|
|
65
96
|
const unverified = await (async () => {
|
|
66
97
|
const client = await openSource(options.databaseUrl);
|
|
67
98
|
try {
|
|
68
|
-
|
|
69
|
-
return unverifiedEmails(await readSourceUsers(client));
|
|
99
|
+
return unverifiedEmails(await readSourceUsers(client, sourceTables));
|
|
70
100
|
}
|
|
71
101
|
finally {
|
|
72
102
|
await client.end();
|
|
@@ -100,6 +130,7 @@ export async function runFromPayloadAuth(options) {
|
|
|
100
130
|
sourceCounts,
|
|
101
131
|
sourceDatabase: options.databaseUrl.replace(/\/\/[^@]*@/, '//***@'),
|
|
102
132
|
slugs,
|
|
133
|
+
sourceTables,
|
|
103
134
|
log,
|
|
104
135
|
});
|
|
105
136
|
const plan = {
|
|
@@ -130,11 +161,32 @@ export async function runFromPayloadAuth(options) {
|
|
|
130
161
|
/** The `verify` command. */
|
|
131
162
|
export async function runVerify(options) {
|
|
132
163
|
const log = log_(options);
|
|
164
|
+
// The probe runs first (issue #68): a missing mapped table fails the
|
|
165
|
+
// check with a blocker — before any Payload boot or read.
|
|
166
|
+
const probeIssues = await probeOrFail(options, log);
|
|
167
|
+
if (probeIssues.length > 0) {
|
|
168
|
+
const result = {
|
|
169
|
+
ok: false,
|
|
170
|
+
issues: probeIssues.map((issue) => ({
|
|
171
|
+
code: 'source-table-missing',
|
|
172
|
+
detail: issue.reason,
|
|
173
|
+
})),
|
|
174
|
+
checks: [],
|
|
175
|
+
};
|
|
176
|
+
if (!options.json) {
|
|
177
|
+
for (const issue of result.issues) {
|
|
178
|
+
log(` [${issue.code}] ${issue.detail}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
133
183
|
const payload = await (options.loadPayload ?? loadPayloadInstance)(options.configPath);
|
|
134
184
|
const result = await verifyImport({
|
|
135
185
|
payload,
|
|
136
186
|
sourceConnectionString: options.databaseUrl,
|
|
137
187
|
slugs: slugsOf(options),
|
|
188
|
+
sourceTables: sourceTablesOf(options),
|
|
189
|
+
sessions: options.sessions,
|
|
138
190
|
});
|
|
139
191
|
if (!options.json) {
|
|
140
192
|
for (const check of result.checks) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-import.js","sourceRoot":"","sources":["../../src/importer/run-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,YAAY,GAEb,MAAM,gBAAgB,CAAA;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"run-import.js","sourceRoot":"","sources":["../../src/importer/run-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { Client } from 'pg';
|
|
2
|
-
import type
|
|
2
|
+
import { type ResolvedSourceTables, type SourceModel, type Unmappable } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Read side (issue #50): the payload-auth layout, straight from
|
|
5
5
|
* Postgres. Rows are read with plain SELECTs — the source tables are
|
|
6
6
|
* never modified until `finalize` (which only marks the manifest; the
|
|
7
7
|
* drop itself stays the operator's step).
|
|
8
|
+
*
|
|
9
|
+
* Fail closed (issue #68): nothing here tolerates a missing table.
|
|
10
|
+
* `probeSourceLayout` is the gate — the run commands call it first and
|
|
11
|
+
* abort on any finding — so every read below assumes the mapped tables
|
|
12
|
+
* exist and throws if they don't. A customized layout renames tables
|
|
13
|
+
* with `--source-map`, never with silent skips.
|
|
8
14
|
*/
|
|
9
15
|
/** One payload-auth source user with its role rows and accounts. */
|
|
10
16
|
export type SourceUser = {
|
|
@@ -32,18 +38,55 @@ export type SourceAccount = {
|
|
|
32
38
|
readonly refreshTokenExpiresAt: Date | null;
|
|
33
39
|
};
|
|
34
40
|
export type SourceRow = Record<string, unknown>;
|
|
41
|
+
/** One fail-closed finding: a mapped model's table or column is absent. */
|
|
42
|
+
export type SourceLayoutIssue = {
|
|
43
|
+
readonly model: SourceModel;
|
|
44
|
+
/** The table (or `table.column`) the probe looked for. */
|
|
45
|
+
readonly key: string;
|
|
46
|
+
/** Human reason, naming the table and the `--source-map` escape hatch. */
|
|
47
|
+
readonly reason: string;
|
|
48
|
+
};
|
|
35
49
|
export declare function openSource(connectionString: string): Promise<Client>;
|
|
50
|
+
/**
|
|
51
|
+
* Fail-closed probe (issue #68): every mapped model's table must
|
|
52
|
+
* exist (a `null` mapping records "not installed" and is skipped),
|
|
53
|
+
* and every column the reads dereference must be present. The run
|
|
54
|
+
* commands call this FIRST and abort on any finding — nothing is
|
|
55
|
+
* read, planned, or written past a failed probe.
|
|
56
|
+
*/
|
|
57
|
+
export declare function probeSourceLayout(client: Client, tables: ResolvedSourceTables): Promise<readonly SourceLayoutIssue[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Row counts for the given (mapped, existing) tables. A missing table
|
|
60
|
+
* throws — the probe owns the structured "missing table" report, so a
|
|
61
|
+
* throw here means the probe was skipped.
|
|
62
|
+
*/
|
|
36
63
|
export declare function countTables(client: Client, tables: readonly string[]): Promise<Record<string, number>>;
|
|
37
64
|
/** Every source user, with role rows and accounts attached. */
|
|
38
|
-
export declare function readSourceUsers(client: Client): Promise<SourceUser[]>;
|
|
39
|
-
/**
|
|
65
|
+
export declare function readSourceUsers(client: Client, tables?: ResolvedSourceTables): Promise<SourceUser[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Rows of one flat plugin table (sessions, verifications, apiKeys, jwks, …).
|
|
68
|
+
* A missing table throws — a `null` mapping keeps the caller from ever
|
|
69
|
+
* asking for it, and an unmapped missing table aborts at the probe.
|
|
70
|
+
*/
|
|
40
71
|
export declare function readFlatRows(client: Client, table: string, columns: readonly string[]): Promise<SourceRow[]>;
|
|
72
|
+
/** What the orphan sweep found, and which checks could not run (and why). */
|
|
73
|
+
export type OrphanScan = {
|
|
74
|
+
readonly orphans: readonly Unmappable[];
|
|
75
|
+
/** Checks skipped with a reason — reported, never silent (issue #68). */
|
|
76
|
+
readonly skipped: readonly string[];
|
|
77
|
+
};
|
|
41
78
|
/**
|
|
42
79
|
* Members and invitations reference organizations and users by numeric
|
|
43
80
|
* id; the importer remaps to the target's baIds. Orphaned references
|
|
44
81
|
* are unmappable — they abort the run rather than skip silently.
|
|
82
|
+
*
|
|
83
|
+
* Every check is table-mapped (issue #68). The api-key check probes
|
|
84
|
+
* its columns: better-auth names the owner reference `reference_id`
|
|
85
|
+
* (1.7 / payload-auth layouts) or `user_id` (1.6-era layouts); when
|
|
86
|
+
* neither exists the check is reported as skipped-with-reason instead
|
|
87
|
+
* of passing silently.
|
|
45
88
|
*/
|
|
46
|
-
export declare function findOrphans(client: Client): Promise<
|
|
89
|
+
export declare function findOrphans(client: Client, tables?: ResolvedSourceTables): Promise<OrphanScan>;
|
|
47
90
|
/** Users whose email never verified — reported, never granted `linkable`. */
|
|
48
91
|
export declare function unverifiedEmails(users: readonly SourceUser[]): readonly string[];
|
|
49
92
|
//# sourceMappingURL=source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/importer/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAC3B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/importer/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAC3B,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;;;GAWG;AAEH,oEAAoE;AACpE,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,IAAI,GAAG,IAAI,CAAA;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE/C,2EAA2E;AAC3E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAqBD,wBAAsB,UAAU,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI1E;AAoBD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CA4BvC;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAUjC;AAUD,+DAA+D;AAC/D,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,oBAA0C,GACjD,OAAO,CAAC,UAAU,EAAE,CAAC,CAgEvB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,OAAO,CAAC,SAAS,EAAE,CAAC,CAMtB;AAED,6EAA6E;AAC7E,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAA;IACvC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,oBAA0C,GACjD,OAAO,CAAC,UAAU,CAAC,CA+GrB;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,MAAM,EAAE,CAEhF"}
|