covara 0.9.2 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -13
- package/dist/auth/api-keys.d.ts +17 -0
- package/dist/auth/api-keys.d.ts.map +1 -1
- package/dist/auth/api-keys.js +75 -0
- package/dist/auth/api-keys.js.map +1 -1
- package/dist/auth/config.d.ts +7 -3
- package/dist/auth/config.d.ts.map +1 -1
- package/dist/auth/config.js +8 -5
- package/dist/auth/config.js.map +1 -1
- package/dist/auth/index.d.ts +4 -4
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +3 -3
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/stores/drizzle.d.ts +6 -2
- package/dist/auth/stores/drizzle.d.ts.map +1 -1
- package/dist/auth/stores/drizzle.js +68 -70
- package/dist/auth/stores/drizzle.js.map +1 -1
- package/dist/auth/stores/index.d.ts +4 -2
- package/dist/auth/stores/index.d.ts.map +1 -1
- package/dist/auth/stores/index.js +3 -1
- package/dist/auth/stores/index.js.map +1 -1
- package/dist/auth/stores/kv.d.ts +31 -0
- package/dist/auth/stores/kv.d.ts.map +1 -0
- package/dist/auth/stores/{redis.js → kv.js} +8 -4
- package/dist/auth/stores/kv.js.map +1 -0
- package/dist/auth/verification.d.ts +12 -0
- package/dist/auth/verification.d.ts.map +1 -1
- package/dist/auth/verification.js +0 -0
- package/dist/auth/verification.js.map +1 -1
- package/dist/cli/commands/env.d.ts.map +1 -1
- package/dist/cli/commands/env.js +1 -13
- package/dist/cli/commands/env.js.map +1 -1
- package/dist/cli/dotenv.d.ts +3 -0
- package/dist/cli/dotenv.d.ts.map +1 -0
- package/dist/cli/dotenv.js +34 -0
- package/dist/cli/dotenv.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +13 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/options.d.ts +3 -0
- package/dist/cli/options.d.ts.map +1 -1
- package/dist/cli/options.js +1 -0
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/templates/configs.d.ts.map +1 -1
- package/dist/cli/templates/configs.js +15 -1
- package/dist/cli/templates/configs.js.map +1 -1
- package/dist/cli/templates/deploy.d.ts +1 -1
- package/dist/cli/templates/deploy.d.ts.map +1 -1
- package/dist/cli/templates/deploy.js +10 -2
- package/dist/cli/templates/deploy.js.map +1 -1
- package/dist/cli/templates/frontend.d.ts +11 -0
- package/dist/cli/templates/frontend.d.ts.map +1 -0
- package/dist/cli/templates/frontend.js +254 -0
- package/dist/cli/templates/frontend.js.map +1 -0
- package/dist/cli/templates/index.d.ts +1 -0
- package/dist/cli/templates/index.d.ts.map +1 -1
- package/dist/cli/templates/index.js +6 -1
- package/dist/cli/templates/index.js.map +1 -1
- package/dist/cli/templates/package-json.d.ts.map +1 -1
- package/dist/cli/templates/package-json.js +66 -64
- package/dist/cli/templates/package-json.js.map +1 -1
- package/dist/cli/templates/source.d.ts.map +1 -1
- package/dist/cli/templates/source.js +79 -1
- package/dist/cli/templates/source.js.map +1 -1
- package/dist/cli/templates/versions.d.ts +24 -0
- package/dist/cli/templates/versions.d.ts.map +1 -0
- package/dist/cli/templates/versions.js +53 -0
- package/dist/cli/templates/versions.js.map +1 -0
- package/dist/db/index.d.ts +2 -2
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/internal-schema.d.ts +39 -0
- package/dist/db/internal-schema.d.ts.map +1 -1
- package/dist/db/internal-schema.js +97 -0
- package/dist/db/internal-schema.js.map +1 -1
- package/dist/db/migrate.d.ts +11 -2
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +166 -31
- package/dist/db/migrate.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/kv/index.d.ts +1 -1
- package/dist/kv/index.d.ts.map +1 -1
- package/dist/kv/index.js +1 -1
- package/dist/kv/index.js.map +1 -1
- package/dist/kv/types.d.ts +1 -0
- package/dist/kv/types.d.ts.map +1 -1
- package/dist/kv/types.js +3 -0
- package/dist/kv/types.js.map +1 -1
- package/dist/middleware/observability.d.ts +1 -0
- package/dist/middleware/observability.d.ts.map +1 -1
- package/dist/middleware/observability.js +41 -27
- package/dist/middleware/observability.js.map +1 -1
- package/dist/observability/index.d.ts +3 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +2 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/log-adapter.d.ts +50 -0
- package/dist/observability/log-adapter.d.ts.map +1 -0
- package/dist/observability/log-adapter.js +174 -0
- package/dist/observability/log-adapter.js.map +1 -0
- package/dist/server/app.d.ts +3 -0
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +1 -0
- package/dist/server/app.js.map +1 -1
- package/dist/ui/admin-auth.d.ts +3 -0
- package/dist/ui/admin-auth.d.ts.map +1 -1
- package/dist/ui/admin-auth.js +56 -26
- package/dist/ui/admin-auth.js.map +1 -1
- package/dist/ui/index.d.ts +2 -2
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +2 -2
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/middleware.d.ts +9 -1
- package/dist/ui/middleware.d.ts.map +1 -1
- package/dist/ui/middleware.js +44 -24
- package/dist/ui/middleware.js.map +1 -1
- package/package.json +1 -1
- package/dist/auth/stores/redis.d.ts +0 -25
- package/dist/auth/stores/redis.d.ts.map +0 -1
- package/dist/auth/stores/redis.js.map +0 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
// Pin the generated `covara` dependency to the version of the CLI doing the
|
|
5
|
+
// scaffolding — that version is, by definition, published (it's the same package
|
|
6
|
+
// the user invoked), so `npm install` always resolves. Falls back to the literal
|
|
7
|
+
// below only if the CLI's own package.json can't be located.
|
|
8
|
+
const FALLBACK_COVARA_VERSION = "^0.9.0";
|
|
9
|
+
export const resolveCovaraVersion = () => {
|
|
10
|
+
try {
|
|
11
|
+
let dir = path.dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
for (let i = 0; i < 10; i++) {
|
|
13
|
+
const candidate = path.join(dir, "package.json");
|
|
14
|
+
if (fs.existsSync(candidate)) {
|
|
15
|
+
const pkg = JSON.parse(fs.readFileSync(candidate, "utf8"));
|
|
16
|
+
if (pkg.name === "covara" && pkg.version) {
|
|
17
|
+
return `^${pkg.version}`;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const parent = path.dirname(dir);
|
|
21
|
+
if (parent === dir)
|
|
22
|
+
break;
|
|
23
|
+
dir = parent;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// fall through to the fallback
|
|
28
|
+
}
|
|
29
|
+
return FALLBACK_COVARA_VERSION;
|
|
30
|
+
};
|
|
31
|
+
export const VERSIONS = {
|
|
32
|
+
covara: resolveCovaraVersion(),
|
|
33
|
+
hono: "^4.12.25",
|
|
34
|
+
honoNodeServer: "^1.13.7",
|
|
35
|
+
drizzleOrm: "^0.45.1",
|
|
36
|
+
zod: "^4.3.5",
|
|
37
|
+
libsql: "^0.17.0",
|
|
38
|
+
postgres: "^3.4.7",
|
|
39
|
+
typescript: "^5.9.3",
|
|
40
|
+
tsx: "^4.21.0",
|
|
41
|
+
drizzleKit: "^0.31.8",
|
|
42
|
+
typesNode: "^25.0.8",
|
|
43
|
+
wrangler: "^4.0.0",
|
|
44
|
+
workersTypes: "^4.0.0",
|
|
45
|
+
vitest: "^3.0.0",
|
|
46
|
+
react: "^18.3.1",
|
|
47
|
+
reactDom: "^18.3.1",
|
|
48
|
+
typesReact: "^18.3.12",
|
|
49
|
+
typesReactDom: "^18.3.1",
|
|
50
|
+
viteReactPlugin: "^4.3.4",
|
|
51
|
+
vite: "^6.0.5",
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/cli/templates/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,4EAA4E;AAC5E,iFAAiF;AACjF,iFAAiF;AACjF,6DAA6D;AAC7D,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AAEzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAW,EAAE;IAC/C,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACjD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAGxD,CAAC;gBACF,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBACzC,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM;YAC1B,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,EAAE,oBAAoB,EAAE;IAC9B,IAAI,EAAE,UAAU;IAChB,cAAc,EAAE,SAAS;IACzB,UAAU,EAAE,SAAS;IACrB,GAAG,EAAE,QAAQ;IACb,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,SAAS;IACd,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,QAAQ;IAClB,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,QAAQ;IACzB,IAAI,EAAE,QAAQ;CACN,CAAC"}
|
package/dist/db/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { authSessions, authAccounts, authApiKeys, authVerificationTokens, authSessionsSqlite, authAccountsSqlite, authApiKeysSqlite, authVerificationTokensSqlite, authSessionsPg, authAccountsPg, authApiKeysPg, authVerificationTokensPg, internalSchema, internalSchemaSqlite, internalSchemaPg, INTERNAL_TABLE_NAMES, } from "./internal-schema.js";
|
|
2
|
-
export type { InternalTableName } from "./internal-schema.js";
|
|
1
|
+
export { authSessions, authAccounts, authApiKeys, authVerificationTokens, authSessionsSqlite, authAccountsSqlite, authApiKeysSqlite, authVerificationTokensSqlite, authSessionsPg, authAccountsPg, authApiKeysPg, authVerificationTokensPg, internalSchema, internalSchemaSqlite, internalSchemaPg, INTERNAL_TABLE_NAMES, SESSION_KEYS, ACCOUNT_KEYS, API_KEY_KEYS, VERIFICATION_KEYS, defineInternalSchema, makeIdentityResolver, } from "./internal-schema.js";
|
|
2
|
+
export type { InternalTableName, SessionKey, AccountKey, ApiKeyKey, VerificationKey, TableResolver, InternalTableOverride, InternalSchemaInput, InternalSchemaBundle, } from "./internal-schema.js";
|
|
3
3
|
export { migrateInternal, autoMigrate, detectDialect } from "./migrate.js";
|
|
4
4
|
export type { Dialect, MigrateOptions, MigrationSummary } from "./migrate.js";
|
|
5
5
|
export { seed, createSeed, SeedBuilder } from "./seed.js";
|
package/dist/db/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,cAAc,EACd,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,cAAc,EACd,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACxE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE3E,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACvD,YAAY,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/db/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { authSessions, authAccounts, authApiKeys, authVerificationTokens, authSessionsSqlite, authAccountsSqlite, authApiKeysSqlite, authVerificationTokensSqlite, authSessionsPg, authAccountsPg, authApiKeysPg, authVerificationTokensPg, internalSchema, internalSchemaSqlite, internalSchemaPg, INTERNAL_TABLE_NAMES, } from "./internal-schema.js";
|
|
1
|
+
export { authSessions, authAccounts, authApiKeys, authVerificationTokens, authSessionsSqlite, authAccountsSqlite, authApiKeysSqlite, authVerificationTokensSqlite, authSessionsPg, authAccountsPg, authApiKeysPg, authVerificationTokensPg, internalSchema, internalSchemaSqlite, internalSchemaPg, INTERNAL_TABLE_NAMES, SESSION_KEYS, ACCOUNT_KEYS, API_KEY_KEYS, VERIFICATION_KEYS, defineInternalSchema, makeIdentityResolver, } from "./internal-schema.js";
|
|
2
2
|
export { migrateInternal, autoMigrate, detectDialect } from "./migrate.js";
|
|
3
3
|
export { seed, createSeed, SeedBuilder } from "./seed.js";
|
|
4
4
|
export { recommendedPoolConfig } from "./pooling.js";
|
package/dist/db/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,cAAc,EACd,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,cAAc,EACd,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAa3B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGxE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAQvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -3828,4 +3828,43 @@ export declare const authVerificationTokens: import("drizzle-orm/sqlite-core").S
|
|
|
3828
3828
|
};
|
|
3829
3829
|
dialect: "sqlite";
|
|
3830
3830
|
}>;
|
|
3831
|
+
export declare const SESSION_KEYS: readonly ["id", "userId", "createdAt", "expiresAt", "data"];
|
|
3832
|
+
export type SessionKey = (typeof SESSION_KEYS)[number];
|
|
3833
|
+
export declare const ACCOUNT_KEYS: readonly ["userId", "type", "provider", "providerAccountId", "refresh_token", "access_token", "expires_at", "token_type", "scope", "id_token", "session_state"];
|
|
3834
|
+
export type AccountKey = (typeof ACCOUNT_KEYS)[number];
|
|
3835
|
+
export declare const API_KEY_KEYS: readonly ["id", "userId", "name", "keyHash", "keyPrefix", "scopes", "createdAt", "expiresAt", "lastUsedAt", "revokedAt"];
|
|
3836
|
+
export type ApiKeyKey = (typeof API_KEY_KEYS)[number];
|
|
3837
|
+
export declare const VERIFICATION_KEYS: readonly ["identifier", "token", "expires"];
|
|
3838
|
+
export type VerificationKey = (typeof VERIFICATION_KEYS)[number];
|
|
3839
|
+
type AnyTable = Record<string, unknown>;
|
|
3840
|
+
export interface TableResolver<K extends string> {
|
|
3841
|
+
table: AnyTable;
|
|
3842
|
+
col(key: K): unknown;
|
|
3843
|
+
prop(key: K): string;
|
|
3844
|
+
dbName(key: K): string;
|
|
3845
|
+
has(key: K): boolean;
|
|
3846
|
+
}
|
|
3847
|
+
export interface InternalTableOverride<K extends string> {
|
|
3848
|
+
table: AnyTable;
|
|
3849
|
+
fieldMap?: Partial<Record<K, string>>;
|
|
3850
|
+
}
|
|
3851
|
+
export declare const makeIdentityResolver: <K extends string>(table: AnyTable, required: readonly K[], label?: string) => TableResolver<K>;
|
|
3852
|
+
export interface InternalSchemaInput {
|
|
3853
|
+
dialect?: "sqlite" | "postgresql";
|
|
3854
|
+
sessions?: InternalTableOverride<SessionKey>;
|
|
3855
|
+
accounts?: InternalTableOverride<AccountKey>;
|
|
3856
|
+
apiKeys?: InternalTableOverride<ApiKeyKey>;
|
|
3857
|
+
verificationTokens?: InternalTableOverride<VerificationKey>;
|
|
3858
|
+
managedExternally?: boolean;
|
|
3859
|
+
}
|
|
3860
|
+
export interface InternalSchemaBundle {
|
|
3861
|
+
dialect: "sqlite" | "postgresql";
|
|
3862
|
+
managedExternally: boolean;
|
|
3863
|
+
sessions: TableResolver<SessionKey>;
|
|
3864
|
+
accounts: TableResolver<AccountKey>;
|
|
3865
|
+
apiKeys: TableResolver<ApiKeyKey>;
|
|
3866
|
+
verificationTokens: TableResolver<VerificationKey>;
|
|
3867
|
+
}
|
|
3868
|
+
export declare const defineInternalSchema: (input?: InternalSchemaInput) => InternalSchemaBundle;
|
|
3869
|
+
export {};
|
|
3831
3870
|
//# sourceMappingURL=internal-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-schema.d.ts","sourceRoot":"","sources":["../../src/db/internal-schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"internal-schema.d.ts","sourceRoot":"","sources":["../../src/db/internal-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { sqliteTable, text as sqliteText, integer as sqliteInteger, primaryKey as sqlitePrimaryKey, index as sqliteIndex, } from "drizzle-orm/sqlite-core";
|
|
2
2
|
import { pgTable, text as pgText, timestamp as pgTimestamp, jsonb as pgJsonb, primaryKey as pgPrimaryKey, index as pgIndex, } from "drizzle-orm/pg-core";
|
|
3
|
+
import { getTableColumns } from "drizzle-orm";
|
|
3
4
|
export const INTERNAL_TABLE_NAMES = [
|
|
4
5
|
"auth_sessions",
|
|
5
6
|
"auth_accounts",
|
|
@@ -127,4 +128,100 @@ export const authSessions = authSessionsSqlite;
|
|
|
127
128
|
export const authAccounts = authAccountsSqlite;
|
|
128
129
|
export const authApiKeys = authApiKeysSqlite;
|
|
129
130
|
export const authVerificationTokens = authVerificationTokensSqlite;
|
|
131
|
+
export const SESSION_KEYS = [
|
|
132
|
+
"id",
|
|
133
|
+
"userId",
|
|
134
|
+
"createdAt",
|
|
135
|
+
"expiresAt",
|
|
136
|
+
"data",
|
|
137
|
+
];
|
|
138
|
+
const SESSION_REQUIRED = [
|
|
139
|
+
"id",
|
|
140
|
+
"userId",
|
|
141
|
+
"createdAt",
|
|
142
|
+
"expiresAt",
|
|
143
|
+
];
|
|
144
|
+
export const ACCOUNT_KEYS = [
|
|
145
|
+
"userId",
|
|
146
|
+
"type",
|
|
147
|
+
"provider",
|
|
148
|
+
"providerAccountId",
|
|
149
|
+
"refresh_token",
|
|
150
|
+
"access_token",
|
|
151
|
+
"expires_at",
|
|
152
|
+
"token_type",
|
|
153
|
+
"scope",
|
|
154
|
+
"id_token",
|
|
155
|
+
"session_state",
|
|
156
|
+
];
|
|
157
|
+
const ACCOUNT_REQUIRED = [
|
|
158
|
+
"userId",
|
|
159
|
+
"type",
|
|
160
|
+
"provider",
|
|
161
|
+
"providerAccountId",
|
|
162
|
+
];
|
|
163
|
+
export const API_KEY_KEYS = [
|
|
164
|
+
"id",
|
|
165
|
+
"userId",
|
|
166
|
+
"name",
|
|
167
|
+
"keyHash",
|
|
168
|
+
"keyPrefix",
|
|
169
|
+
"scopes",
|
|
170
|
+
"createdAt",
|
|
171
|
+
"expiresAt",
|
|
172
|
+
"lastUsedAt",
|
|
173
|
+
"revokedAt",
|
|
174
|
+
];
|
|
175
|
+
const API_KEY_REQUIRED = [
|
|
176
|
+
"id",
|
|
177
|
+
"userId",
|
|
178
|
+
"name",
|
|
179
|
+
"keyHash",
|
|
180
|
+
"keyPrefix",
|
|
181
|
+
"createdAt",
|
|
182
|
+
];
|
|
183
|
+
export const VERIFICATION_KEYS = ["identifier", "token", "expires"];
|
|
184
|
+
const VERIFICATION_REQUIRED = [
|
|
185
|
+
"identifier",
|
|
186
|
+
"token",
|
|
187
|
+
"expires",
|
|
188
|
+
];
|
|
189
|
+
const makeResolver = (table, required, label, fieldMap) => {
|
|
190
|
+
let columns = {};
|
|
191
|
+
try {
|
|
192
|
+
columns = getTableColumns(table);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
columns = {};
|
|
196
|
+
}
|
|
197
|
+
const propOf = (key) => (fieldMap?.[key] ?? key);
|
|
198
|
+
const hasProp = (p) => columns[p] != null || table[p] != null;
|
|
199
|
+
for (const key of required) {
|
|
200
|
+
const p = propOf(key);
|
|
201
|
+
if (!hasProp(p)) {
|
|
202
|
+
throw new Error(`internalSchema.${label}.${key}: required column not found on the supplied table (looked for property "${p}"). Map it via fieldMap.`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
table,
|
|
207
|
+
col: (key) => columns[propOf(key)] ?? table[propOf(key)],
|
|
208
|
+
prop: (key) => propOf(key),
|
|
209
|
+
dbName: (key) => columns[propOf(key)]?.name ?? propOf(key),
|
|
210
|
+
has: (key) => hasProp(propOf(key)),
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
export const makeIdentityResolver = (table, required, label = "table") => makeResolver(table, required, label);
|
|
214
|
+
export const defineInternalSchema = (input = {}) => {
|
|
215
|
+
const dialect = input.dialect ?? "sqlite";
|
|
216
|
+
const builtins = internalSchema(dialect);
|
|
217
|
+
const resolve = (override, builtin, required, label) => makeResolver(override?.table ?? builtin, required, label, override?.fieldMap);
|
|
218
|
+
return {
|
|
219
|
+
dialect,
|
|
220
|
+
managedExternally: input.managedExternally ?? false,
|
|
221
|
+
sessions: resolve(input.sessions, builtins.authSessions, SESSION_REQUIRED, "sessions"),
|
|
222
|
+
accounts: resolve(input.accounts, builtins.authAccounts, ACCOUNT_REQUIRED, "accounts"),
|
|
223
|
+
apiKeys: resolve(input.apiKeys, builtins.authApiKeys, API_KEY_REQUIRED, "apiKeys"),
|
|
224
|
+
verificationTokens: resolve(input.verificationTokens, builtins.authVerificationTokens, VERIFICATION_REQUIRED, "verificationTokens"),
|
|
225
|
+
};
|
|
226
|
+
};
|
|
130
227
|
//# sourceMappingURL=internal-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-schema.js","sourceRoot":"","sources":["../../src/db/internal-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,IAAI,IAAI,UAAU,EAClB,OAAO,IAAI,aAAa,EACxB,UAAU,IAAI,gBAAgB,EAC9B,KAAK,IAAI,WAAW,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,OAAO,EACP,IAAI,IAAI,MAAM,EACd,SAAS,IAAI,WAAW,EACxB,KAAK,IAAI,OAAO,EAChB,UAAU,IAAI,YAAY,EAC1B,KAAK,IAAI,OAAO,GACjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"internal-schema.js","sourceRoot":"","sources":["../../src/db/internal-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/db/migrate.d.ts
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import type { DrizzleDatabase } from "../resource/types.js";
|
|
2
|
-
import { type
|
|
2
|
+
import { type InternalSchemaBundle } from "./internal-schema.js";
|
|
3
3
|
export type Dialect = "sqlite" | "postgresql";
|
|
4
4
|
export interface MigrateOptions {
|
|
5
5
|
dialect?: Dialect;
|
|
6
|
+
/**
|
|
7
|
+
* A bundle from `defineInternalSchema`. When supplied, migration is driven by
|
|
8
|
+
* the bundle: `managedExternally: true` makes this a no-op (you run your own
|
|
9
|
+
* migrations, e.g. drizzle-kit); otherwise DDL is generated from the supplied
|
|
10
|
+
* tables (single-primary-key tables only — compound-PK customizations must use
|
|
11
|
+
* `managedExternally: true`).
|
|
12
|
+
*/
|
|
13
|
+
schema?: InternalSchemaBundle;
|
|
6
14
|
}
|
|
7
15
|
export interface MigrationSummary {
|
|
8
16
|
dialect: Dialect;
|
|
9
|
-
tables:
|
|
17
|
+
tables: string[];
|
|
10
18
|
statements: number;
|
|
19
|
+
skipped?: boolean;
|
|
11
20
|
}
|
|
12
21
|
export declare const detectDialect: (db: DrizzleDatabase) => Dialect;
|
|
13
22
|
export declare const migrateInternal: (db: DrizzleDatabase, options?: MigrateOptions) => Promise<MigrationSummary>;
|
package/dist/db/migrate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAIL,KAAK,oBAAoB,EAE1B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,GAAI,IAAI,eAAe,KAAG,OAMnD,CAAC;AAyMF,eAAO,MAAM,eAAe,GAC1B,IAAI,eAAe,EACnB,UAAS,cAAmB,KAC3B,OAAO,CAAC,gBAAgB,CAuF1B,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,IAAI,eAAe,EACnB,UAAS,cAAmB,KAC3B,OAAO,CAAC,gBAAgB,CAAiC,CAAC"}
|
package/dist/db/migrate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { sql } from "drizzle-orm";
|
|
2
|
-
import { INTERNAL_TABLE_NAMES } from "./internal-schema.js";
|
|
1
|
+
import { sql, getTableColumns, getTableName } from "drizzle-orm";
|
|
2
|
+
import { INTERNAL_TABLE_NAMES, internalSchema, } from "./internal-schema.js";
|
|
3
3
|
export const detectDialect = (db) => {
|
|
4
4
|
const name = db.dialect
|
|
5
5
|
?.constructor?.name ?? "";
|
|
@@ -19,17 +19,20 @@ const runDDL = async (db, statement) => {
|
|
|
19
19
|
}
|
|
20
20
|
throw new Error("Drizzle db exposes neither run() nor execute()");
|
|
21
21
|
};
|
|
22
|
-
const
|
|
23
|
-
|
|
22
|
+
const sqliteDDLByTable = {
|
|
23
|
+
auth_sessions: [
|
|
24
|
+
`CREATE TABLE IF NOT EXISTS auth_sessions (
|
|
24
25
|
id TEXT PRIMARY KEY NOT NULL,
|
|
25
26
|
userId TEXT NOT NULL,
|
|
26
27
|
createdAt INTEGER NOT NULL,
|
|
27
28
|
expiresAt INTEGER NOT NULL,
|
|
28
29
|
data TEXT
|
|
29
30
|
)`,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
`CREATE INDEX IF NOT EXISTS auth_session_userId_idx ON auth_sessions (userId)`,
|
|
32
|
+
`CREATE INDEX IF NOT EXISTS auth_session_expiresAt_idx ON auth_sessions (expiresAt)`,
|
|
33
|
+
],
|
|
34
|
+
auth_accounts: [
|
|
35
|
+
`CREATE TABLE IF NOT EXISTS auth_accounts (
|
|
33
36
|
userId TEXT NOT NULL,
|
|
34
37
|
type TEXT NOT NULL,
|
|
35
38
|
provider TEXT NOT NULL,
|
|
@@ -43,8 +46,10 @@ const sqliteDDL = [
|
|
|
43
46
|
session_state TEXT,
|
|
44
47
|
PRIMARY KEY (provider, providerAccountId)
|
|
45
48
|
)`,
|
|
46
|
-
|
|
47
|
-
|
|
49
|
+
`CREATE INDEX IF NOT EXISTS auth_account_userId_idx ON auth_accounts (userId)`,
|
|
50
|
+
],
|
|
51
|
+
auth_api_keys: [
|
|
52
|
+
`CREATE TABLE IF NOT EXISTS auth_api_keys (
|
|
48
53
|
id TEXT PRIMARY KEY NOT NULL,
|
|
49
54
|
userId TEXT NOT NULL,
|
|
50
55
|
name TEXT NOT NULL,
|
|
@@ -56,26 +61,32 @@ const sqliteDDL = [
|
|
|
56
61
|
lastUsedAt INTEGER,
|
|
57
62
|
revokedAt INTEGER
|
|
58
63
|
)`,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
`CREATE INDEX IF NOT EXISTS auth_api_key_userId_idx ON auth_api_keys (userId)`,
|
|
65
|
+
`CREATE INDEX IF NOT EXISTS auth_api_key_prefix_idx ON auth_api_keys (keyPrefix)`,
|
|
66
|
+
],
|
|
67
|
+
auth_verification_tokens: [
|
|
68
|
+
`CREATE TABLE IF NOT EXISTS auth_verification_tokens (
|
|
62
69
|
identifier TEXT NOT NULL,
|
|
63
70
|
token TEXT NOT NULL,
|
|
64
71
|
expires INTEGER NOT NULL,
|
|
65
72
|
PRIMARY KEY (identifier, token)
|
|
66
73
|
)`,
|
|
67
|
-
]
|
|
68
|
-
|
|
69
|
-
|
|
74
|
+
],
|
|
75
|
+
};
|
|
76
|
+
const postgresDDLByTable = {
|
|
77
|
+
auth_sessions: [
|
|
78
|
+
`CREATE TABLE IF NOT EXISTS auth_sessions (
|
|
70
79
|
"id" TEXT PRIMARY KEY NOT NULL,
|
|
71
80
|
"userId" TEXT NOT NULL,
|
|
72
81
|
"createdAt" TIMESTAMP NOT NULL,
|
|
73
82
|
"expiresAt" TIMESTAMP NOT NULL,
|
|
74
83
|
"data" TEXT
|
|
75
84
|
)`,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
85
|
+
`CREATE INDEX IF NOT EXISTS auth_session_userId_idx ON auth_sessions ("userId")`,
|
|
86
|
+
`CREATE INDEX IF NOT EXISTS auth_session_expiresAt_idx ON auth_sessions ("expiresAt")`,
|
|
87
|
+
],
|
|
88
|
+
auth_accounts: [
|
|
89
|
+
`CREATE TABLE IF NOT EXISTS auth_accounts (
|
|
79
90
|
"userId" TEXT NOT NULL,
|
|
80
91
|
"type" TEXT NOT NULL,
|
|
81
92
|
"provider" TEXT NOT NULL,
|
|
@@ -89,8 +100,10 @@ const postgresDDL = [
|
|
|
89
100
|
"session_state" TEXT,
|
|
90
101
|
PRIMARY KEY ("provider", "providerAccountId")
|
|
91
102
|
)`,
|
|
92
|
-
|
|
93
|
-
|
|
103
|
+
`CREATE INDEX IF NOT EXISTS auth_account_userId_idx ON auth_accounts ("userId")`,
|
|
104
|
+
],
|
|
105
|
+
auth_api_keys: [
|
|
106
|
+
`CREATE TABLE IF NOT EXISTS auth_api_keys (
|
|
94
107
|
"id" TEXT PRIMARY KEY NOT NULL,
|
|
95
108
|
"userId" TEXT NOT NULL,
|
|
96
109
|
"name" TEXT NOT NULL,
|
|
@@ -102,26 +115,148 @@ const postgresDDL = [
|
|
|
102
115
|
"lastUsedAt" TIMESTAMP,
|
|
103
116
|
"revokedAt" TIMESTAMP
|
|
104
117
|
)`,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
118
|
+
`CREATE INDEX IF NOT EXISTS auth_api_key_userId_idx ON auth_api_keys ("userId")`,
|
|
119
|
+
`CREATE INDEX IF NOT EXISTS auth_api_key_prefix_idx ON auth_api_keys ("keyPrefix")`,
|
|
120
|
+
],
|
|
121
|
+
auth_verification_tokens: [
|
|
122
|
+
`CREATE TABLE IF NOT EXISTS auth_verification_tokens (
|
|
108
123
|
"identifier" TEXT NOT NULL,
|
|
109
124
|
"token" TEXT NOT NULL,
|
|
110
125
|
"expires" TIMESTAMP NOT NULL,
|
|
111
126
|
PRIMARY KEY ("identifier", "token")
|
|
112
127
|
)`,
|
|
113
|
-
]
|
|
128
|
+
],
|
|
129
|
+
};
|
|
130
|
+
const builtinDDL = (dialect) => {
|
|
131
|
+
const byTable = dialect === "postgresql" ? postgresDDLByTable : sqliteDDLByTable;
|
|
132
|
+
return INTERNAL_TABLE_NAMES.flatMap((name) => byTable[name]);
|
|
133
|
+
};
|
|
134
|
+
const sqlType = (column, dialect) => {
|
|
135
|
+
const dataType = column.dataType ?? "string";
|
|
136
|
+
if (dialect === "postgresql") {
|
|
137
|
+
switch (dataType) {
|
|
138
|
+
case "number":
|
|
139
|
+
return "INTEGER";
|
|
140
|
+
case "boolean":
|
|
141
|
+
return "BOOLEAN";
|
|
142
|
+
case "date":
|
|
143
|
+
return "TIMESTAMP";
|
|
144
|
+
case "json":
|
|
145
|
+
return "JSONB";
|
|
146
|
+
default:
|
|
147
|
+
return "TEXT";
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
switch (dataType) {
|
|
151
|
+
case "number":
|
|
152
|
+
case "boolean":
|
|
153
|
+
case "date":
|
|
154
|
+
return "INTEGER";
|
|
155
|
+
default:
|
|
156
|
+
return "TEXT";
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
const quote = (name, dialect) => dialect === "postgresql" ? `"${name}"` : name;
|
|
160
|
+
// Generate a CREATE TABLE for a user-supplied (overridden) internal table.
|
|
161
|
+
// Only single-primary-key tables are supported; compound-PK customizations must
|
|
162
|
+
// use `managedExternally: true` + their own migration tool (indexes are not
|
|
163
|
+
// reconstructed here either).
|
|
164
|
+
const generateTableDDL = (resolver, label, dialect) => {
|
|
165
|
+
const table = resolver.table;
|
|
166
|
+
const tableName = getTableName(table);
|
|
167
|
+
const columns = getTableColumns(table);
|
|
168
|
+
const cols = Object.values(columns);
|
|
169
|
+
const primaryCols = cols.filter((c) => c.primary);
|
|
170
|
+
if (primaryCols.length !== 1) {
|
|
171
|
+
throw new Error(`internalSchema.${label} ("${tableName}") has a compound or missing primary key, which generated migrations cannot reconstruct. Set internalSchema.managedExternally = true and create the table with your own migration tool (e.g. drizzle-kit).`);
|
|
172
|
+
}
|
|
173
|
+
const defs = cols.map((c) => {
|
|
174
|
+
const parts = [quote(c.name, dialect), sqlType(c, dialect)];
|
|
175
|
+
if (c.notNull)
|
|
176
|
+
parts.push("NOT NULL");
|
|
177
|
+
if (c.primary)
|
|
178
|
+
parts.push("PRIMARY KEY");
|
|
179
|
+
return parts.join(" ");
|
|
180
|
+
});
|
|
181
|
+
return `CREATE TABLE IF NOT EXISTS ${quote(tableName, dialect)} (\n ${defs.join(",\n ")}\n )`;
|
|
182
|
+
};
|
|
183
|
+
const isBuiltin = (resolver, builtin) => resolver.table === builtin;
|
|
114
184
|
export const migrateInternal = async (db, options = {}) => {
|
|
115
|
-
const
|
|
116
|
-
const
|
|
185
|
+
const schema = options.schema;
|
|
186
|
+
const dialect = options.dialect ?? schema?.dialect ?? detectDialect(db);
|
|
187
|
+
// Mode (b): user manages migrations themselves.
|
|
188
|
+
if (schema?.managedExternally) {
|
|
189
|
+
return {
|
|
190
|
+
dialect,
|
|
191
|
+
tables: [
|
|
192
|
+
getTableName(schema.sessions.table),
|
|
193
|
+
getTableName(schema.accounts.table),
|
|
194
|
+
getTableName(schema.apiKeys.table),
|
|
195
|
+
getTableName(schema.verificationTokens.table),
|
|
196
|
+
],
|
|
197
|
+
statements: 0,
|
|
198
|
+
skipped: true,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
// Mode (a): no custom schema — run the built-in hardcoded DDL byte-for-byte.
|
|
202
|
+
if (!schema) {
|
|
203
|
+
const statements = builtinDDL(dialect);
|
|
204
|
+
for (const statement of statements) {
|
|
205
|
+
await runDDL(db, statement);
|
|
206
|
+
}
|
|
207
|
+
return {
|
|
208
|
+
dialect,
|
|
209
|
+
tables: [...INTERNAL_TABLE_NAMES],
|
|
210
|
+
statements: statements.length,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
// Mode (c): generate DDL from the bundle. Built-in (non-overridden) tables
|
|
214
|
+
// reuse their canonical DDL (with indexes/compound PKs); overrides are
|
|
215
|
+
// generated from the table object.
|
|
216
|
+
const builtins = internalSchema(dialect);
|
|
217
|
+
const byTable = dialect === "postgresql" ? postgresDDLByTable : sqliteDDLByTable;
|
|
218
|
+
const entries = [
|
|
219
|
+
{
|
|
220
|
+
resolver: schema.sessions,
|
|
221
|
+
builtin: builtins.authSessions,
|
|
222
|
+
canonical: "auth_sessions",
|
|
223
|
+
label: "sessions",
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
resolver: schema.accounts,
|
|
227
|
+
builtin: builtins.authAccounts,
|
|
228
|
+
canonical: "auth_accounts",
|
|
229
|
+
label: "accounts",
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
resolver: schema.apiKeys,
|
|
233
|
+
builtin: builtins.authApiKeys,
|
|
234
|
+
canonical: "auth_api_keys",
|
|
235
|
+
label: "apiKeys",
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
resolver: schema.verificationTokens,
|
|
239
|
+
builtin: builtins.authVerificationTokens,
|
|
240
|
+
canonical: "auth_verification_tokens",
|
|
241
|
+
label: "verificationTokens",
|
|
242
|
+
},
|
|
243
|
+
];
|
|
244
|
+
const statements = [];
|
|
245
|
+
const tables = [];
|
|
246
|
+
for (const entry of entries) {
|
|
247
|
+
if (isBuiltin(entry.resolver, entry.builtin)) {
|
|
248
|
+
statements.push(...byTable[entry.canonical]);
|
|
249
|
+
tables.push(entry.canonical);
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
statements.push(generateTableDDL(entry.resolver, entry.label, dialect));
|
|
253
|
+
tables.push(getTableName(entry.resolver.table));
|
|
254
|
+
}
|
|
255
|
+
}
|
|
117
256
|
for (const statement of statements) {
|
|
118
257
|
await runDDL(db, statement);
|
|
119
258
|
}
|
|
120
|
-
return {
|
|
121
|
-
dialect,
|
|
122
|
-
tables: [...INTERNAL_TABLE_NAMES],
|
|
123
|
-
statements: statements.length,
|
|
124
|
-
};
|
|
259
|
+
return { dialect, tables, statements: statements.length };
|
|
125
260
|
};
|
|
126
261
|
export const autoMigrate = async (db, options = {}) => migrateInternal(db, options);
|
|
127
262
|
//# sourceMappingURL=migrate.js.map
|
package/dist/db/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"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"}
|