@atlasauth/cli 0.11.0 → 0.12.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/CHANGELOG.md +9 -0
- package/dist/args.d.ts +106 -0
- package/dist/args.js +38 -0
- package/dist/args.js.map +1 -1
- package/dist/commands/init.js +13 -8
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate.d.ts +6 -2
- package/dist/commands/migrate.js +13 -3
- package/dist/commands/migrate.js.map +1 -1
- package/dist/help.d.ts +1 -1
- package/dist/help.js +38 -0
- package/dist/help.js.map +1 -1
- package/dist/migrate/auth0/plugin.d.ts +2 -0
- package/dist/migrate/auth0/plugin.js +126 -0
- package/dist/migrate/auth0/plugin.js.map +1 -0
- package/dist/migrate/clerk/plugin.d.ts +2 -0
- package/dist/migrate/clerk/plugin.js +76 -0
- package/dist/migrate/clerk/plugin.js.map +1 -0
- package/dist/migrate/descope/plugin.d.ts +2 -0
- package/dist/migrate/descope/plugin.js +83 -0
- package/dist/migrate/descope/plugin.js.map +1 -0
- package/dist/migrate/export/auth0-config.d.ts +29 -0
- package/dist/migrate/export/auth0-config.js +249 -0
- package/dist/migrate/export/auth0-config.js.map +1 -0
- package/dist/migrate/export/auth0.d.ts +62 -0
- package/dist/migrate/export/auth0.js +575 -0
- package/dist/migrate/export/auth0.js.map +1 -0
- package/dist/migrate/export/clerk-config.d.ts +26 -0
- package/dist/migrate/export/clerk-config.js +227 -0
- package/dist/migrate/export/clerk-config.js.map +1 -0
- package/dist/migrate/export/clerk.d.ts +46 -0
- package/dist/migrate/export/clerk.js +486 -0
- package/dist/migrate/export/clerk.js.map +1 -0
- package/dist/migrate/export/descope.d.ts +35 -0
- package/dist/migrate/export/descope.js +208 -0
- package/dist/migrate/export/descope.js.map +1 -0
- package/dist/migrate/export/fake-vendor.test-helper.d.ts +27 -0
- package/dist/migrate/export/fake-vendor.test-helper.js +41 -0
- package/dist/migrate/export/fake-vendor.test-helper.js.map +1 -0
- package/dist/migrate/export/frameworks/app-users.d.ts +42 -0
- package/dist/migrate/export/frameworks/app-users.js +161 -0
- package/dist/migrate/export/frameworks/app-users.js.map +1 -0
- package/dist/migrate/export/frameworks/authjs.d.ts +41 -0
- package/dist/migrate/export/frameworks/authjs.js +146 -0
- package/dist/migrate/export/frameworks/authjs.js.map +1 -0
- package/dist/migrate/export/frameworks/devise.d.ts +39 -0
- package/dist/migrate/export/frameworks/devise.js +218 -0
- package/dist/migrate/export/frameworks/devise.js.map +1 -0
- package/dist/migrate/export/frameworks/django.d.ts +45 -0
- package/dist/migrate/export/frameworks/django.js +315 -0
- package/dist/migrate/export/frameworks/django.js.map +1 -0
- package/dist/migrate/export/frameworks/lucia.d.ts +42 -0
- package/dist/migrate/export/frameworks/lucia.js +263 -0
- package/dist/migrate/export/frameworks/lucia.js.map +1 -0
- package/dist/migrate/export/frameworks/tables.d.ts +90 -0
- package/dist/migrate/export/frameworks/tables.js +325 -0
- package/dist/migrate/export/frameworks/tables.js.map +1 -0
- package/dist/migrate/export/frameworks/webauthn.d.ts +25 -0
- package/dist/migrate/export/frameworks/webauthn.js +130 -0
- package/dist/migrate/export/frameworks/webauthn.js.map +1 -0
- package/dist/migrate/export/kinde-descope-config.d.ts +38 -0
- package/dist/migrate/export/kinde-descope-config.js +172 -0
- package/dist/migrate/export/kinde-descope-config.js.map +1 -0
- package/dist/migrate/export/kinde.d.ts +57 -0
- package/dist/migrate/export/kinde.js +333 -0
- package/dist/migrate/export/kinde.js.map +1 -0
- package/dist/migrate/export/okta-config.d.ts +30 -0
- package/dist/migrate/export/okta-config.js +205 -0
- package/dist/migrate/export/okta-config.js.map +1 -0
- package/dist/migrate/export/okta.d.ts +43 -0
- package/dist/migrate/export/okta.js +337 -0
- package/dist/migrate/export/okta.js.map +1 -0
- package/dist/migrate/export/plugin-kit.d.ts +25 -0
- package/dist/migrate/export/plugin-kit.js +82 -0
- package/dist/migrate/export/plugin-kit.js.map +1 -0
- package/dist/migrate/export/record-set.d.ts +44 -0
- package/dist/migrate/export/record-set.js +98 -0
- package/dist/migrate/export/record-set.js.map +1 -0
- package/dist/migrate/export/translate-kit.d.ts +46 -0
- package/dist/migrate/export/translate-kit.js +148 -0
- package/dist/migrate/export/translate-kit.js.map +1 -0
- package/dist/migrate/export/vendor-http.d.ts +46 -0
- package/dist/migrate/export/vendor-http.js +138 -0
- package/dist/migrate/export/vendor-http.js.map +1 -0
- package/dist/migrate/export/zip.d.ts +8 -0
- package/dist/migrate/export/zip.js +66 -0
- package/dist/migrate/export/zip.js.map +1 -0
- package/dist/migrate/framework/builtins.d.ts +2 -0
- package/dist/migrate/framework/builtins.js +23 -0
- package/dist/migrate/framework/builtins.js.map +1 -0
- package/dist/migrate/framework/commands.d.ts +20 -0
- package/dist/migrate/framework/commands.js +58 -0
- package/dist/migrate/framework/commands.js.map +1 -0
- package/dist/migrate/framework/custom.d.ts +12 -0
- package/dist/migrate/framework/custom.js +96 -0
- package/dist/migrate/framework/custom.js.map +1 -0
- package/dist/migrate/framework/orchestrator.d.ts +113 -0
- package/dist/migrate/framework/orchestrator.js +531 -0
- package/dist/migrate/framework/orchestrator.js.map +1 -0
- package/dist/migrate/framework/plugin.d.ts +165 -0
- package/dist/migrate/framework/plugin.js +3 -0
- package/dist/migrate/framework/plugin.js.map +1 -0
- package/dist/migrate/framework/registry.d.ts +11 -0
- package/dist/migrate/framework/registry.js +44 -0
- package/dist/migrate/framework/registry.js.map +1 -0
- package/dist/migrate/framework/report.d.ts +17 -0
- package/dist/migrate/framework/report.js +103 -0
- package/dist/migrate/framework/report.js.map +1 -0
- package/dist/migrate/frameworks/plugins.d.ts +29 -0
- package/dist/migrate/frameworks/plugins.js +402 -0
- package/dist/migrate/frameworks/plugins.js.map +1 -0
- package/dist/migrate/frameworks/report.d.ts +92 -0
- package/dist/migrate/frameworks/report.js +207 -0
- package/dist/migrate/frameworks/report.js.map +1 -0
- package/dist/migrate/frameworks/translate-js.d.ts +5 -0
- package/dist/migrate/frameworks/translate-js.js +503 -0
- package/dist/migrate/frameworks/translate-js.js.map +1 -0
- package/dist/migrate/frameworks/translate-rails-django.d.ts +3 -0
- package/dist/migrate/frameworks/translate-rails-django.js +1391 -0
- package/dist/migrate/frameworks/translate-rails-django.js.map +1 -0
- package/dist/migrate/kinde/plugin.d.ts +2 -0
- package/dist/migrate/kinde/plugin.js +105 -0
- package/dist/migrate/kinde/plugin.js.map +1 -0
- package/dist/migrate/okta/plugin.d.ts +2 -0
- package/dist/migrate/okta/plugin.js +105 -0
- package/dist/migrate/okta/plugin.js.map +1 -0
- package/package.json +5 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucia.js","sourceRoot":"","sources":["../../../../src/migrate/export/frameworks/lucia.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { type CanonicalModel, type CanonicalRecordData, type MigrationManifest, type Timestamp } from '@atlasauth/migrate';
|
|
2
|
+
/**
|
|
3
|
+
* The self-hosted frameworks (Auth.js, Lucia, Passport, iron-session, Devise,
|
|
4
|
+
* Django) keep users in the APP's own database, so their exporters read table
|
|
5
|
+
* dumps the owner makes with their usual tools — `psql \copy … csv`,
|
|
6
|
+
* `mysqldump --tab`, `sqlite3 -json`, `mongoexport`, Prisma/Drizzle scripts,
|
|
7
|
+
* `manage.py dumpdata`, the Rails runner script — rather than connecting to a
|
|
8
|
+
* database. Nothing leaves the owner's machine unsealed, and no database
|
|
9
|
+
* driver is needed.
|
|
10
|
+
*
|
|
11
|
+
* A dump directory holds one file per table, `<table>.json` (an array, or
|
|
12
|
+
* `{ "rows": [...] }`), `<table>.ndjson` / `.jsonl`, or `<table>.csv`. Table
|
|
13
|
+
* lookups are case-insensitive and accept the names every adapter uses
|
|
14
|
+
* (`User`, `users`, `user`, `auth_user` …), so a mapper names the candidates.
|
|
15
|
+
*/
|
|
16
|
+
export type Row = Record<string, unknown>;
|
|
17
|
+
/** Rows by table name (lowercase). */
|
|
18
|
+
export declare class Tables {
|
|
19
|
+
private readonly byName;
|
|
20
|
+
constructor(tables?: Record<string, Row[]>);
|
|
21
|
+
set(name: string, rows: Row[]): void;
|
|
22
|
+
/** The first table that exists among `names` (case-insensitive), with its name. */
|
|
23
|
+
find(...names: string[]): {
|
|
24
|
+
name: string;
|
|
25
|
+
rows: Row[];
|
|
26
|
+
} | undefined;
|
|
27
|
+
rows(...names: string[]): Row[];
|
|
28
|
+
names(): string[];
|
|
29
|
+
}
|
|
30
|
+
/** Read every table file in a dump directory. */
|
|
31
|
+
export declare function readDumpDir(dir: string): Tables;
|
|
32
|
+
/**
|
|
33
|
+
* Rows streamed as NDJSON `{"table": "<name>", "row": {…}}` lines — what the
|
|
34
|
+
* Rails and Django export scripts print, piped into `--file -`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function tablesFromStream(text: string, into?: Tables): Tables;
|
|
37
|
+
/** Parse one table file's text by its extension. */
|
|
38
|
+
export declare function parseTableText(text: string, ext: string): Row[];
|
|
39
|
+
export declare function isRow(v: unknown): v is Row;
|
|
40
|
+
/** The first present, non-empty column among `names` (exact, then case-insensitive). */
|
|
41
|
+
export declare function col(row: Row, ...names: string[]): unknown;
|
|
42
|
+
export declare function text(v: unknown): string | undefined;
|
|
43
|
+
export declare function bool(v: unknown): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* A timestamp column as the bundle wants it: ISO strings pass, numbers are
|
|
46
|
+
* epoch ms (or seconds when small), SQL `2024-01-02 03:04:05[+00]` strings are
|
|
47
|
+
* made ISO. Undefined when absent or unparseable.
|
|
48
|
+
*/
|
|
49
|
+
export declare function time(v: unknown): Timestamp | undefined;
|
|
50
|
+
export declare function timeMs(v: unknown): number | undefined;
|
|
51
|
+
/** A JSON column (object, or a string holding one). */
|
|
52
|
+
export declare function json(v: unknown): Row | undefined;
|
|
53
|
+
/** Lowercase hex sha256 — the bundle's session `token_hash`. */
|
|
54
|
+
export declare function sha256Hex(value: string): string;
|
|
55
|
+
/** Any base64 / base64url / `\x`-hex bytes column as base64url (passkey fields). */
|
|
56
|
+
export declare function base64url(v: unknown): string | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* The password-hash algorithm a stored digest self-describes, for a column
|
|
59
|
+
* the app filled itself (Auth.js Credentials, Lucia, Passport): bcrypt and
|
|
60
|
+
* Argon2 PHC strings, oslo/Better Auth `salt:key` scrypt, Lucia's own scrypt,
|
|
61
|
+
* Django/passlib PBKDF2. `auto` lets Atlas's registry recognise it; null =
|
|
62
|
+
* not a format Atlas can verify (the user resets or migrates lazily).
|
|
63
|
+
*/
|
|
64
|
+
export declare function selfDescribingHash(digest: string): {
|
|
65
|
+
algorithm: string;
|
|
66
|
+
hash: string;
|
|
67
|
+
} | null;
|
|
68
|
+
/** Records by canonical model, plus what the exporter could not carry. */
|
|
69
|
+
export declare class FrameworkExport {
|
|
70
|
+
private readonly rows;
|
|
71
|
+
readonly warnings: string[];
|
|
72
|
+
readonly omitted: Record<string, {
|
|
73
|
+
count: number;
|
|
74
|
+
reason: string;
|
|
75
|
+
}>;
|
|
76
|
+
manifest: Partial<Pick<MigrationManifest, 'origin' | 'sourceVersion' | 'rpId' | 'providers' | 'settings'>>;
|
|
77
|
+
add<M extends CanonicalModel>(model: M, data: CanonicalRecordData[M]): void;
|
|
78
|
+
list<M extends CanonicalModel>(model: M): Array<CanonicalRecordData[M]>;
|
|
79
|
+
count(model: CanonicalModel): number;
|
|
80
|
+
warn(message: string): void;
|
|
81
|
+
omit(model: string, reason: string, count?: number): void;
|
|
82
|
+
/** Every row as `[model, data]`, in the canonical order the bundle writer requires. */
|
|
83
|
+
entries(): Generator<[CanonicalModel, unknown]>;
|
|
84
|
+
counts(): Record<string, number>;
|
|
85
|
+
}
|
|
86
|
+
/** Split "Ada Lovelace" for exports that only keep a display name. */
|
|
87
|
+
export declare function splitName(name: string | undefined): {
|
|
88
|
+
first_name?: string;
|
|
89
|
+
last_name?: string;
|
|
90
|
+
};
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrameworkExport = exports.Tables = void 0;
|
|
4
|
+
exports.readDumpDir = readDumpDir;
|
|
5
|
+
exports.tablesFromStream = tablesFromStream;
|
|
6
|
+
exports.parseTableText = parseTableText;
|
|
7
|
+
exports.isRow = isRow;
|
|
8
|
+
exports.col = col;
|
|
9
|
+
exports.text = text;
|
|
10
|
+
exports.bool = bool;
|
|
11
|
+
exports.time = time;
|
|
12
|
+
exports.timeMs = timeMs;
|
|
13
|
+
exports.json = json;
|
|
14
|
+
exports.sha256Hex = sha256Hex;
|
|
15
|
+
exports.base64url = base64url;
|
|
16
|
+
exports.selfDescribingHash = selfDescribingHash;
|
|
17
|
+
exports.splitName = splitName;
|
|
18
|
+
const node_crypto_1 = require("node:crypto");
|
|
19
|
+
const node_fs_1 = require("node:fs");
|
|
20
|
+
const node_path_1 = require("node:path");
|
|
21
|
+
const migrate_1 = require("@atlasauth/migrate");
|
|
22
|
+
const csv_1 = require("../../../import/csv");
|
|
23
|
+
/** Rows by table name (lowercase). */
|
|
24
|
+
class Tables {
|
|
25
|
+
byName = new Map();
|
|
26
|
+
constructor(tables = {}) {
|
|
27
|
+
for (const [name, rows] of Object.entries(tables))
|
|
28
|
+
this.set(name, rows);
|
|
29
|
+
}
|
|
30
|
+
set(name, rows) {
|
|
31
|
+
this.byName.set(name.toLowerCase(), rows.map(normalizeRow));
|
|
32
|
+
}
|
|
33
|
+
/** The first table that exists among `names` (case-insensitive), with its name. */
|
|
34
|
+
find(...names) {
|
|
35
|
+
for (const n of names) {
|
|
36
|
+
const rows = this.byName.get(n.toLowerCase());
|
|
37
|
+
if (rows)
|
|
38
|
+
return { name: n, rows };
|
|
39
|
+
}
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
rows(...names) {
|
|
43
|
+
return this.find(...names)?.rows ?? [];
|
|
44
|
+
}
|
|
45
|
+
names() {
|
|
46
|
+
return [...this.byName.keys()];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.Tables = Tables;
|
|
50
|
+
/** Read every table file in a dump directory. */
|
|
51
|
+
function readDumpDir(dir) {
|
|
52
|
+
const tables = new Tables();
|
|
53
|
+
for (const file of (0, node_fs_1.readdirSync)(dir).sort()) {
|
|
54
|
+
const path = (0, node_path_1.join)(dir, file);
|
|
55
|
+
if (!(0, node_fs_1.statSync)(path).isFile())
|
|
56
|
+
continue;
|
|
57
|
+
const ext = (0, node_path_1.extname)(file).toLowerCase();
|
|
58
|
+
if (!['.json', '.ndjson', '.jsonl', '.csv'].includes(ext))
|
|
59
|
+
continue;
|
|
60
|
+
tables.set((0, node_path_1.basename)(file, (0, node_path_1.extname)(file)), parseTableText((0, node_fs_1.readFileSync)(path, 'utf8'), ext));
|
|
61
|
+
}
|
|
62
|
+
return tables;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Rows streamed as NDJSON `{"table": "<name>", "row": {…}}` lines — what the
|
|
66
|
+
* Rails and Django export scripts print, piped into `--file -`.
|
|
67
|
+
*/
|
|
68
|
+
function tablesFromStream(text, into = new Tables()) {
|
|
69
|
+
const grouped = new Map();
|
|
70
|
+
for (const line of text.split(/\r?\n/)) {
|
|
71
|
+
const l = line.trim();
|
|
72
|
+
if (!l.startsWith('{'))
|
|
73
|
+
continue; // framework boot noise on stdout
|
|
74
|
+
let entry;
|
|
75
|
+
try {
|
|
76
|
+
entry = JSON.parse(l);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (!isRow(entry) || typeof entry.table !== 'string' || !isRow(entry.row))
|
|
82
|
+
continue;
|
|
83
|
+
const list = grouped.get(entry.table) ?? [];
|
|
84
|
+
list.push(entry.row);
|
|
85
|
+
grouped.set(entry.table, list);
|
|
86
|
+
}
|
|
87
|
+
for (const [name, rows] of grouped)
|
|
88
|
+
into.set(name, [...(into.find(name)?.rows ?? []), ...rows]);
|
|
89
|
+
return into;
|
|
90
|
+
}
|
|
91
|
+
/** Parse one table file's text by its extension. */
|
|
92
|
+
function parseTableText(text, ext) {
|
|
93
|
+
if (ext === '.csv')
|
|
94
|
+
return (0, csv_1.parseCsv)(text);
|
|
95
|
+
const trimmed = text.trim();
|
|
96
|
+
if (!trimmed)
|
|
97
|
+
return [];
|
|
98
|
+
if (ext === '.json') {
|
|
99
|
+
const doc = JSON.parse(trimmed);
|
|
100
|
+
if (Array.isArray(doc))
|
|
101
|
+
return doc.filter(isRow);
|
|
102
|
+
if (isRow(doc) && Array.isArray(doc.rows))
|
|
103
|
+
return doc.rows.filter(isRow);
|
|
104
|
+
if (isRow(doc))
|
|
105
|
+
return [doc];
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
return trimmed
|
|
109
|
+
.split(/\r?\n/)
|
|
110
|
+
.filter((l) => l.trim())
|
|
111
|
+
.map((l) => JSON.parse(l))
|
|
112
|
+
.filter(isRow);
|
|
113
|
+
}
|
|
114
|
+
function isRow(v) {
|
|
115
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Unwrap MongoDB extended JSON (`{"$oid": …}`, `{"$date": …}`,
|
|
119
|
+
* `{"$numberLong": …}`, `{"$binary": {"base64": …}}`) as mongoexport writes it,
|
|
120
|
+
* so a Mongo dump reads like any other.
|
|
121
|
+
*/
|
|
122
|
+
function normalizeValue(v) {
|
|
123
|
+
if (Array.isArray(v))
|
|
124
|
+
return v.map(normalizeValue);
|
|
125
|
+
if (!isRow(v))
|
|
126
|
+
return v;
|
|
127
|
+
const keys = Object.keys(v);
|
|
128
|
+
if (keys.length === 1) {
|
|
129
|
+
const k = keys[0];
|
|
130
|
+
const inner = v[k];
|
|
131
|
+
if (k === '$oid' && typeof inner === 'string')
|
|
132
|
+
return inner;
|
|
133
|
+
if (k === '$date') {
|
|
134
|
+
if (typeof inner === 'string')
|
|
135
|
+
return inner;
|
|
136
|
+
if (isRow(inner) && typeof inner.$numberLong === 'string')
|
|
137
|
+
return new Date(Number(inner.$numberLong)).toISOString();
|
|
138
|
+
if (typeof inner === 'number')
|
|
139
|
+
return new Date(inner).toISOString();
|
|
140
|
+
}
|
|
141
|
+
if ((k === '$numberLong' || k === '$numberInt' || k === '$numberDouble') && typeof inner === 'string')
|
|
142
|
+
return Number(inner);
|
|
143
|
+
if (k === '$binary' && isRow(inner) && typeof inner.base64 === 'string')
|
|
144
|
+
return inner.base64;
|
|
145
|
+
}
|
|
146
|
+
const out = {};
|
|
147
|
+
for (const [key, value] of Object.entries(v))
|
|
148
|
+
out[key] = normalizeValue(value);
|
|
149
|
+
return out;
|
|
150
|
+
}
|
|
151
|
+
function normalizeRow(row) {
|
|
152
|
+
return normalizeValue(row);
|
|
153
|
+
}
|
|
154
|
+
// ── column helpers ──────────────────────────────────────────────────────────
|
|
155
|
+
/** The first present, non-empty column among `names` (exact, then case-insensitive). */
|
|
156
|
+
function col(row, ...names) {
|
|
157
|
+
for (const n of names) {
|
|
158
|
+
const v = row[n];
|
|
159
|
+
if (v !== undefined && v !== null && v !== '')
|
|
160
|
+
return v;
|
|
161
|
+
}
|
|
162
|
+
const lower = new Map(Object.keys(row).map((k) => [k.toLowerCase(), k]));
|
|
163
|
+
for (const n of names) {
|
|
164
|
+
const k = lower.get(n.toLowerCase());
|
|
165
|
+
if (k !== undefined) {
|
|
166
|
+
const v = row[k];
|
|
167
|
+
if (v !== undefined && v !== null && v !== '')
|
|
168
|
+
return v;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
function text(v) {
|
|
174
|
+
if (typeof v === 'string')
|
|
175
|
+
return v.trim() ? v.trim() : undefined;
|
|
176
|
+
if (typeof v === 'number' && Number.isFinite(v))
|
|
177
|
+
return String(v);
|
|
178
|
+
if (typeof v === 'bigint')
|
|
179
|
+
return v.toString();
|
|
180
|
+
return undefined;
|
|
181
|
+
}
|
|
182
|
+
function bool(v) {
|
|
183
|
+
return v === true || v === 1 || (typeof v === 'string' && ['true', 't', '1', 'yes'].includes(v.trim().toLowerCase()));
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* A timestamp column as the bundle wants it: ISO strings pass, numbers are
|
|
187
|
+
* epoch ms (or seconds when small), SQL `2024-01-02 03:04:05[+00]` strings are
|
|
188
|
+
* made ISO. Undefined when absent or unparseable.
|
|
189
|
+
*/
|
|
190
|
+
function time(v) {
|
|
191
|
+
if (v === undefined || v === null || v === '')
|
|
192
|
+
return undefined;
|
|
193
|
+
if (typeof v === 'number' && Number.isFinite(v))
|
|
194
|
+
return v < 1e11 ? v * 1000 : v;
|
|
195
|
+
if (typeof v === 'string') {
|
|
196
|
+
const s = v.trim();
|
|
197
|
+
if (/^\d+$/.test(s))
|
|
198
|
+
return time(Number(s));
|
|
199
|
+
// SQL dumps write `2024-01-02 03:04:05.123+00` / `+0000`: make it ISO 8601.
|
|
200
|
+
let iso = s.includes('T') ? s : s.replace(' ', 'T');
|
|
201
|
+
if (iso.includes('T'))
|
|
202
|
+
iso = iso.replace(/(T[\d:.]+[+-]\d\d)$/, '$1:00').replace(/(T[\d:.]+[+-]\d\d)(\d\d)$/, '$1:$2');
|
|
203
|
+
const ms = Date.parse(!iso.includes('T') || /[zZ]$|[+-]\d\d:\d\d$/.test(iso) ? iso : `${iso}Z`);
|
|
204
|
+
return Number.isFinite(ms) ? new Date(ms).toISOString() : undefined;
|
|
205
|
+
}
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
function timeMs(v) {
|
|
209
|
+
const t = time(v);
|
|
210
|
+
if (t === undefined)
|
|
211
|
+
return undefined;
|
|
212
|
+
return typeof t === 'number' ? t : Date.parse(t);
|
|
213
|
+
}
|
|
214
|
+
/** A JSON column (object, or a string holding one). */
|
|
215
|
+
function json(v) {
|
|
216
|
+
if (isRow(v))
|
|
217
|
+
return v;
|
|
218
|
+
if (typeof v === 'string' && v.trim().startsWith('{')) {
|
|
219
|
+
try {
|
|
220
|
+
const parsed = JSON.parse(v);
|
|
221
|
+
return isRow(parsed) ? parsed : undefined;
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
return undefined;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
229
|
+
/** Lowercase hex sha256 — the bundle's session `token_hash`. */
|
|
230
|
+
function sha256Hex(value) {
|
|
231
|
+
return (0, node_crypto_1.createHash)('sha256').update(value, 'utf8').digest('hex');
|
|
232
|
+
}
|
|
233
|
+
/** Any base64 / base64url / `\x`-hex bytes column as base64url (passkey fields). */
|
|
234
|
+
function base64url(v) {
|
|
235
|
+
const s = text(v);
|
|
236
|
+
if (!s)
|
|
237
|
+
return undefined;
|
|
238
|
+
if (/^\\x[0-9a-f]+$/i.test(s))
|
|
239
|
+
return Buffer.from(s.slice(2), 'hex').toString('base64url');
|
|
240
|
+
if (!/^[A-Za-z0-9+/_-]+={0,2}$/.test(s))
|
|
241
|
+
return undefined;
|
|
242
|
+
return Buffer.from(s.replace(/-/g, '+').replace(/_/g, '/'), 'base64').toString('base64url');
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* The password-hash algorithm a stored digest self-describes, for a column
|
|
246
|
+
* the app filled itself (Auth.js Credentials, Lucia, Passport): bcrypt and
|
|
247
|
+
* Argon2 PHC strings, oslo/Better Auth `salt:key` scrypt, Lucia's own scrypt,
|
|
248
|
+
* Django/passlib PBKDF2. `auto` lets Atlas's registry recognise it; null =
|
|
249
|
+
* not a format Atlas can verify (the user resets or migrates lazily).
|
|
250
|
+
*/
|
|
251
|
+
function selfDescribingHash(digest) {
|
|
252
|
+
const d = digest.trim();
|
|
253
|
+
if (/^\$2[aby]\$\d{2}\$[./A-Za-z0-9]{53}$/.test(d))
|
|
254
|
+
return { algorithm: 'bcrypt', hash: d };
|
|
255
|
+
if (/^\$argon2(id|i|d)\$/.test(d))
|
|
256
|
+
return { algorithm: 'argon2', hash: d };
|
|
257
|
+
if (/^[0-9a-f]{32}:[0-9a-f]{128}$/.test(d))
|
|
258
|
+
return { algorithm: 'scrypt_better_auth', hash: d };
|
|
259
|
+
if (/^(s2:)?[a-z0-9]{16}:[0-9a-f]{128}$/.test(d))
|
|
260
|
+
return { algorithm: 'scrypt_lucia', hash: d };
|
|
261
|
+
if (/^(pbkdf2_sha(1|256|512)|bcrypt|bcrypt_sha256|argon2|scrypt)\$/.test(d))
|
|
262
|
+
return { algorithm: 'auto', hash: d };
|
|
263
|
+
if (/^\$(pbkdf2-sha(1|256|512)|scrypt)\$/.test(d))
|
|
264
|
+
return { algorithm: 'auto', hash: d };
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
// ── what a framework exporter returns ───────────────────────────────────────
|
|
268
|
+
/** Records by canonical model, plus what the exporter could not carry. */
|
|
269
|
+
class FrameworkExport {
|
|
270
|
+
rows = new Map();
|
|
271
|
+
warnings = [];
|
|
272
|
+
omitted = {};
|
|
273
|
+
manifest = {};
|
|
274
|
+
add(model, data) {
|
|
275
|
+
const list = this.rows.get(model) ?? [];
|
|
276
|
+
list.push(stripUndefined(data));
|
|
277
|
+
this.rows.set(model, list);
|
|
278
|
+
}
|
|
279
|
+
list(model) {
|
|
280
|
+
return (this.rows.get(model) ?? []);
|
|
281
|
+
}
|
|
282
|
+
count(model) {
|
|
283
|
+
return this.rows.get(model)?.length ?? 0;
|
|
284
|
+
}
|
|
285
|
+
warn(message) {
|
|
286
|
+
if (!this.warnings.includes(message))
|
|
287
|
+
this.warnings.push(message);
|
|
288
|
+
}
|
|
289
|
+
omit(model, reason, count = 1) {
|
|
290
|
+
const o = this.omitted[model] ?? { count: 0, reason };
|
|
291
|
+
o.count += count;
|
|
292
|
+
this.omitted[model] = o;
|
|
293
|
+
}
|
|
294
|
+
/** Every row as `[model, data]`, in the canonical order the bundle writer requires. */
|
|
295
|
+
*entries() {
|
|
296
|
+
for (const model of migrate_1.CANONICAL_MODEL_ORDER)
|
|
297
|
+
for (const data of this.rows.get(model) ?? [])
|
|
298
|
+
yield [model, data];
|
|
299
|
+
}
|
|
300
|
+
counts() {
|
|
301
|
+
const out = {};
|
|
302
|
+
for (const [model, list] of this.rows)
|
|
303
|
+
out[model] = list.length;
|
|
304
|
+
return out;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
exports.FrameworkExport = FrameworkExport;
|
|
308
|
+
function stripUndefined(data) {
|
|
309
|
+
if (!isRow(data))
|
|
310
|
+
return data;
|
|
311
|
+
for (const k of Object.keys(data)) {
|
|
312
|
+
const v = data[k];
|
|
313
|
+
if (v === undefined || (Array.isArray(v) && v.length === 0))
|
|
314
|
+
delete data[k];
|
|
315
|
+
}
|
|
316
|
+
return data;
|
|
317
|
+
}
|
|
318
|
+
/** Split "Ada Lovelace" for exports that only keep a display name. */
|
|
319
|
+
function splitName(name) {
|
|
320
|
+
if (!name)
|
|
321
|
+
return {};
|
|
322
|
+
const [first, ...rest] = name.trim().split(/\s+/);
|
|
323
|
+
return { ...(first ? { first_name: first } : {}), ...(rest.length ? { last_name: rest.join(' ') } : {}) };
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/migrate/export/frameworks/tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Just enough CBOR and WebAuthn to pull a passkey's credential id, COSE public
|
|
3
|
+
* key and sign count out of a stored registration response (attestationObject),
|
|
4
|
+
* for sources that keep the response instead of the parsed key (django-allauth's
|
|
5
|
+
* MFA WebAuthn authenticators).
|
|
6
|
+
*/
|
|
7
|
+
interface Decoded {
|
|
8
|
+
value: unknown;
|
|
9
|
+
end: number;
|
|
10
|
+
}
|
|
11
|
+
/** Decode one CBOR item at `offset` (ints, byte/text strings, arrays, maps, simple values). */
|
|
12
|
+
export declare function decodeCbor(buf: Buffer, offset?: number, depth?: number): Decoded;
|
|
13
|
+
export interface ParsedCredential {
|
|
14
|
+
credentialId: Buffer;
|
|
15
|
+
/** The COSE_Key, byte for byte as the authenticator produced it. */
|
|
16
|
+
publicKey: Buffer;
|
|
17
|
+
signCount: number;
|
|
18
|
+
aaguid: string;
|
|
19
|
+
backedUp: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** Parse `authData` with attested credential data (flag AT). */
|
|
22
|
+
export declare function parseAuthData(authData: Buffer): ParsedCredential | null;
|
|
23
|
+
/** The credential inside a base64url attestationObject. */
|
|
24
|
+
export declare function parseAttestationObject(b64url: string): ParsedCredential | null;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Just enough CBOR and WebAuthn to pull a passkey's credential id, COSE public
|
|
4
|
+
* key and sign count out of a stored registration response (attestationObject),
|
|
5
|
+
* for sources that keep the response instead of the parsed key (django-allauth's
|
|
6
|
+
* MFA WebAuthn authenticators).
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.decodeCbor = decodeCbor;
|
|
10
|
+
exports.parseAuthData = parseAuthData;
|
|
11
|
+
exports.parseAttestationObject = parseAttestationObject;
|
|
12
|
+
/** Decode one CBOR item at `offset` (ints, byte/text strings, arrays, maps, simple values). */
|
|
13
|
+
function decodeCbor(buf, offset = 0, depth = 0) {
|
|
14
|
+
if (depth > 16)
|
|
15
|
+
throw new Error('CBOR nesting too deep');
|
|
16
|
+
if (offset >= buf.length)
|
|
17
|
+
throw new Error('CBOR truncated');
|
|
18
|
+
const initial = buf[offset];
|
|
19
|
+
const major = initial >> 5;
|
|
20
|
+
const info = initial & 31;
|
|
21
|
+
let pos = offset + 1;
|
|
22
|
+
const readLength = () => {
|
|
23
|
+
if (info < 24)
|
|
24
|
+
return info;
|
|
25
|
+
if (info === 24)
|
|
26
|
+
return buf.readUInt8(pos++);
|
|
27
|
+
if (info === 25) {
|
|
28
|
+
const v = buf.readUInt16BE(pos);
|
|
29
|
+
pos += 2;
|
|
30
|
+
return v;
|
|
31
|
+
}
|
|
32
|
+
if (info === 26) {
|
|
33
|
+
const v = buf.readUInt32BE(pos);
|
|
34
|
+
pos += 4;
|
|
35
|
+
return v;
|
|
36
|
+
}
|
|
37
|
+
if (info === 27) {
|
|
38
|
+
const v = Number(buf.readBigUInt64BE(pos));
|
|
39
|
+
pos += 8;
|
|
40
|
+
return v;
|
|
41
|
+
}
|
|
42
|
+
throw new Error('CBOR indefinite lengths are not supported');
|
|
43
|
+
};
|
|
44
|
+
switch (major) {
|
|
45
|
+
case 0:
|
|
46
|
+
return { value: readLength(), end: pos };
|
|
47
|
+
case 1:
|
|
48
|
+
return { value: -1 - readLength(), end: pos };
|
|
49
|
+
case 2: {
|
|
50
|
+
const n = readLength();
|
|
51
|
+
if (pos + n > buf.length)
|
|
52
|
+
throw new Error('CBOR truncated');
|
|
53
|
+
return { value: buf.subarray(pos, pos + n), end: pos + n };
|
|
54
|
+
}
|
|
55
|
+
case 3: {
|
|
56
|
+
const n = readLength();
|
|
57
|
+
if (pos + n > buf.length)
|
|
58
|
+
throw new Error('CBOR truncated');
|
|
59
|
+
return { value: buf.toString('utf8', pos, pos + n), end: pos + n };
|
|
60
|
+
}
|
|
61
|
+
case 4: {
|
|
62
|
+
const n = readLength();
|
|
63
|
+
const arr = [];
|
|
64
|
+
for (let i = 0; i < n; i++) {
|
|
65
|
+
const item = decodeCbor(buf, pos, depth + 1);
|
|
66
|
+
arr.push(item.value);
|
|
67
|
+
pos = item.end;
|
|
68
|
+
}
|
|
69
|
+
return { value: arr, end: pos };
|
|
70
|
+
}
|
|
71
|
+
case 5: {
|
|
72
|
+
const n = readLength();
|
|
73
|
+
const map = new Map();
|
|
74
|
+
for (let i = 0; i < n; i++) {
|
|
75
|
+
const k = decodeCbor(buf, pos, depth + 1);
|
|
76
|
+
const v = decodeCbor(buf, k.end, depth + 1);
|
|
77
|
+
map.set(k.value, v.value);
|
|
78
|
+
pos = v.end;
|
|
79
|
+
}
|
|
80
|
+
return { value: map, end: pos };
|
|
81
|
+
}
|
|
82
|
+
case 7:
|
|
83
|
+
if (info === 20)
|
|
84
|
+
return { value: false, end: pos };
|
|
85
|
+
if (info === 21)
|
|
86
|
+
return { value: true, end: pos };
|
|
87
|
+
if (info === 22 || info === 23)
|
|
88
|
+
return { value: null, end: pos };
|
|
89
|
+
throw new Error('CBOR float/simple values are not supported');
|
|
90
|
+
default:
|
|
91
|
+
throw new Error(`CBOR major type ${major} is not supported`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** Parse `authData` with attested credential data (flag AT). */
|
|
95
|
+
function parseAuthData(authData) {
|
|
96
|
+
if (authData.length < 37 + 18)
|
|
97
|
+
return null;
|
|
98
|
+
const flags = authData[32];
|
|
99
|
+
if (!(flags & 0x40))
|
|
100
|
+
return null;
|
|
101
|
+
const signCount = authData.readUInt32BE(33);
|
|
102
|
+
const aaguid = authData.subarray(37, 53).toString('hex');
|
|
103
|
+
const idLength = authData.readUInt16BE(53);
|
|
104
|
+
const idEnd = 55 + idLength;
|
|
105
|
+
if (idEnd > authData.length)
|
|
106
|
+
return null;
|
|
107
|
+
const credentialId = authData.subarray(55, idEnd);
|
|
108
|
+
const key = decodeCbor(authData, idEnd);
|
|
109
|
+
return {
|
|
110
|
+
credentialId,
|
|
111
|
+
publicKey: authData.subarray(idEnd, key.end),
|
|
112
|
+
signCount,
|
|
113
|
+
aaguid: `${aaguid.slice(0, 8)}-${aaguid.slice(8, 12)}-${aaguid.slice(12, 16)}-${aaguid.slice(16, 20)}-${aaguid.slice(20)}`,
|
|
114
|
+
backedUp: Boolean(flags & 0x10),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/** The credential inside a base64url attestationObject. */
|
|
118
|
+
function parseAttestationObject(b64url) {
|
|
119
|
+
try {
|
|
120
|
+
const decoded = decodeCbor(Buffer.from(b64url.replace(/\+/g, '-').replace(/\//g, '_'), 'base64url')).value;
|
|
121
|
+
if (!(decoded instanceof Map))
|
|
122
|
+
return null;
|
|
123
|
+
const authData = decoded.get('authData');
|
|
124
|
+
return Buffer.isBuffer(authData) ? parseAuthData(authData) : null;
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=webauthn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webauthn.js","sourceRoot":"","sources":["../../../../src/migrate/export/frameworks/webauthn.ts"],"names":[],"mappings":"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"}
|