bunderstack 0.24.0 → 0.24.2
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 +21 -0
- package/README.md +1 -0
- package/dist/auth.d.ts +20 -9
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +3 -8
- package/dist/auth.js.map +1 -1
- package/dist/backend.d.ts +4 -4
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js.map +1 -1
- package/dist/config.d.ts +10 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/provision-internals.d.ts +1 -1
- package/dist/provision-internals.js +1 -1
- package/dist/provision-internals.js.map +1 -1
- package/dist/provision-runtime.d.ts +7 -0
- package/dist/provision-runtime.d.ts.map +1 -0
- package/dist/provision-runtime.js +50 -0
- package/dist/provision-runtime.js.map +1 -0
- package/dist/provision-schema.d.ts +16 -0
- package/dist/provision-schema.d.ts.map +1 -0
- package/dist/provision-schema.js +63 -0
- package/dist/provision-schema.js.map +1 -0
- package/dist/provision.d.ts +4 -21
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +10 -111
- package/dist/provision.js.map +1 -1
- package/dist/runtime.d.ts +9 -7
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +2 -3
- package/dist/runtime.js.map +1 -1
- package/dist/testing/fixture.d.ts +1 -1
- package/dist/testing/fixture.d.ts.map +1 -1
- package/dist/testing/fixture.js +1 -1
- package/dist/testing/fixture.js.map +1 -1
- package/llms-full.txt +416 -226
- package/llms.txt +4 -3
- package/package.json +5 -1
- package/skills/creating-bunderstack-apps/references/verification.md +7 -6
- package/skills/migrating-to-bunderstack/SKILL.md +22 -20
- package/skills/migrating-to-bunderstack/references/runtime-replacements.md +4 -3
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { detectDialect } from './dialect.js';
|
|
2
|
+
import { applyCommittedMigrations, ensureLocalDataDir, getProvisionInternals, } from './provision-runtime.js';
|
|
3
|
+
const DRIZZLE_KIT_HINT = '[bunderstack] Schema push requires drizzle-kit, which is not installed.\n' +
|
|
4
|
+
' Development: run `bun add -d drizzle-kit` and import provision from `bunderstack/provision-schema`.\n' +
|
|
5
|
+
' Production: generate migrations with `bunx drizzle-kit generate`, commit them, and use `bunderstack/provision`.';
|
|
6
|
+
/** Push the merged schema to the database via drizzle-kit/api. */
|
|
7
|
+
export async function provisionSchema(db, schema, options) {
|
|
8
|
+
const dialect = detectDialect(schema);
|
|
9
|
+
if (options?.databaseUrl) {
|
|
10
|
+
await ensureLocalDataDir(options.databaseUrl, dialect);
|
|
11
|
+
}
|
|
12
|
+
let kit;
|
|
13
|
+
try {
|
|
14
|
+
kit = await import('drizzle-kit/api');
|
|
15
|
+
}
|
|
16
|
+
catch (cause) {
|
|
17
|
+
throw new Error(DRIZZLE_KIT_HINT, { cause });
|
|
18
|
+
}
|
|
19
|
+
const result = dialect === 'pg'
|
|
20
|
+
? await kit.pushSchema(schema, db)
|
|
21
|
+
: await kit.pushSQLiteSchema(schema, db);
|
|
22
|
+
if (result.hasDataLoss && !options?.force) {
|
|
23
|
+
throw new Error('[bunderstack] Schema push would cause data loss. Run `bunx drizzle-kit push` or call provision(app, { force: true }).');
|
|
24
|
+
}
|
|
25
|
+
for (const warning of result.warnings) {
|
|
26
|
+
console.warn(`[bunderstack] ${warning}`);
|
|
27
|
+
}
|
|
28
|
+
if (result.statementsToExecute.length === 0)
|
|
29
|
+
return;
|
|
30
|
+
await result.apply();
|
|
31
|
+
console.log(`[bunderstack] provisioned ${result.statementsToExecute.length} schema change(s)`);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Development provisioning: apply committed migrations when present,
|
|
35
|
+
* otherwise push the current schema through Drizzle Kit.
|
|
36
|
+
*/
|
|
37
|
+
export async function provision(app, options) {
|
|
38
|
+
if (await applyCommittedMigrations(app))
|
|
39
|
+
return;
|
|
40
|
+
const internals = getProvisionInternals(app);
|
|
41
|
+
await provisionSchema(internals.db, internals.schema, {
|
|
42
|
+
force: options?.force,
|
|
43
|
+
databaseUrl: internals.databaseUrl,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
export async function provisionForTest(app, mode) {
|
|
47
|
+
if (mode === 'auto') {
|
|
48
|
+
await provision(app, { force: true });
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const internals = getProvisionInternals(app);
|
|
52
|
+
if (mode === 'push') {
|
|
53
|
+
await provisionSchema(internals.db, internals.schema, {
|
|
54
|
+
force: true,
|
|
55
|
+
databaseUrl: internals.databaseUrl,
|
|
56
|
+
});
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (!(await applyCommittedMigrations(app))) {
|
|
60
|
+
throw new Error('[bunderstack] committed migrations journal not found');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=provision-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provision-schema.js","sourceRoot":"","sources":["../src/provision-schema.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AnyDb } from './dialect'\n\nimport { detectDialect } from './dialect'\nimport {\n applyCommittedMigrations,\n ensureLocalDataDir,\n getProvisionInternals,\n} from './provision-runtime'\n\nconst DRIZZLE_KIT_HINT =\n '[bunderstack] Schema push requires drizzle-kit, which is not installed.\\n' +\n ' Development: run `bun add -d drizzle-kit` and import provision from `bunderstack/provision-schema`.\\n' +\n ' Production: generate migrations with `bunx drizzle-kit generate`, commit them, and use `bunderstack/provision`.'\n\n/** Push the merged schema to the database via drizzle-kit/api. */\nexport async function provisionSchema<TSchema extends Record<string, unknown>>(\n db: AnyDb,\n schema: TSchema,\n options?: { force?: boolean; databaseUrl?: string },\n): Promise<void> {\n const dialect = detectDialect(schema)\n if (options?.databaseUrl) {\n await ensureLocalDataDir(options.databaseUrl, dialect)\n }\n\n let kit: typeof import('drizzle-kit/api')\n try {\n kit = await import('drizzle-kit/api')\n } catch (cause) {\n throw new Error(DRIZZLE_KIT_HINT, { cause })\n }\n\n const result =\n dialect === 'pg'\n ? await kit.pushSchema(schema, db as never)\n : await kit.pushSQLiteSchema(schema, db as never)\n\n if (result.hasDataLoss && !options?.force) {\n throw new Error(\n '[bunderstack] Schema push would cause data loss. Run `bunx drizzle-kit push` or call provision(app, { force: true }).',\n )\n }\n for (const warning of result.warnings) {\n console.warn(`[bunderstack] ${warning}`)\n }\n if (result.statementsToExecute.length === 0) return\n\n await result.apply()\n console.log(\n `[bunderstack] provisioned ${result.statementsToExecute.length} schema change(s)`,\n )\n}\n\n/**\n * Development provisioning: apply committed migrations when present,\n * otherwise push the current schema through Drizzle Kit.\n */\nexport async function provision(\n app: object,\n options?: { force?: boolean },\n): Promise<void> {\n if (await applyCommittedMigrations(app)) return\n const internals = getProvisionInternals(app)\n await provisionSchema(internals.db, internals.schema, {\n force: options?.force,\n databaseUrl: internals.databaseUrl,\n })\n}\n\nexport type TestSchemaMode = 'auto' | 'push' | 'migrations'\n\nexport async function provisionForTest(\n app: object,\n mode: TestSchemaMode,\n): Promise<void> {\n if (mode === 'auto') {\n await provision(app, { force: true })\n return\n }\n\n const internals = getProvisionInternals(app)\n if (mode === 'push') {\n await provisionSchema(internals.db, internals.schema, {\n force: true,\n databaseUrl: internals.databaseUrl,\n })\n return\n }\n\n if (!(await applyCommittedMigrations(app))) {\n throw new Error('[bunderstack] committed migrations journal not found')\n }\n}\n"]}
|
package/dist/provision.d.ts
CHANGED
|
@@ -1,25 +1,8 @@
|
|
|
1
|
-
import type { AnyDb } from './dialect.js';
|
|
2
|
-
/** Push the merged schema to the database via drizzle-kit/api. */
|
|
3
|
-
export declare function provisionSchema<TSchema extends Record<string, unknown>>(db: AnyDb, schema: TSchema, options?: {
|
|
4
|
-
force?: boolean;
|
|
5
|
-
databaseUrl?: string;
|
|
6
|
-
}): Promise<void>;
|
|
7
1
|
/**
|
|
8
|
-
*
|
|
2
|
+
* Apply committed migrations for a Bunderstack app.
|
|
9
3
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* drizzle-orm's migrator. Pure runtime; drizzle-kit is never imported, so a
|
|
13
|
-
* fresh clone deploys with `bun install --production`.
|
|
14
|
-
* - No migrations → development: push the schema straight to the database via
|
|
15
|
-
* drizzle-kit (install it with `bun add -d drizzle-kit`).
|
|
16
|
-
*
|
|
17
|
-
* Once you run `bunx drizzle-kit generate` for the first time, provision stops
|
|
18
|
-
* pushing and every schema change goes through an explicit `generate`.
|
|
4
|
+
* This production entrypoint has no Drizzle Kit dependency. Development
|
|
5
|
+
* schema push is deliberately isolated in `bunderstack/provision-schema`.
|
|
19
6
|
*/
|
|
20
|
-
export declare function provision(app: object
|
|
21
|
-
force?: boolean;
|
|
22
|
-
}): Promise<void>;
|
|
23
|
-
export type TestSchemaMode = 'auto' | 'push' | 'migrations';
|
|
24
|
-
export declare function provisionForTest(app: object, mode: TestSchemaMode): Promise<void>;
|
|
7
|
+
export declare function provision(app: object): Promise<void>;
|
|
25
8
|
//# sourceMappingURL=provision.d.ts.map
|
package/dist/provision.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../src/provision.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../src/provision.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1D"}
|
package/dist/provision.js
CHANGED
|
@@ -1,117 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { PROVISION_INTERNALS, } from './provision-internals.js';
|
|
6
|
-
/** Create the local backing directory for file-based urls, per dialect. */
|
|
7
|
-
async function ensureLocalDataDir(url, dialect) {
|
|
8
|
-
if (dialect === 'pg') {
|
|
9
|
-
// PGlite data dir: `file:<dir>` or a bare path; server/memory urls need nothing.
|
|
10
|
-
if (/^postgres(ql)?:\/\//.test(url))
|
|
11
|
-
return;
|
|
12
|
-
const raw = url.startsWith('file:') ? url.slice('file:'.length) : url;
|
|
13
|
-
if (raw === ':memory:' || raw.startsWith('memory://'))
|
|
14
|
-
return;
|
|
15
|
-
await mkdir(raw, { recursive: true });
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
const match = /^file:(.+)$/.exec(url);
|
|
19
|
-
if (!match)
|
|
20
|
-
return;
|
|
21
|
-
const filePath = match[1];
|
|
22
|
-
if (filePath === ':memory:')
|
|
23
|
-
return;
|
|
24
|
-
await mkdir(dirname(filePath), { recursive: true });
|
|
25
|
-
}
|
|
26
|
-
async function exists(path) {
|
|
27
|
-
try {
|
|
28
|
-
await access(path);
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
const DRIZZLE_KIT_HINT = '[bunderstack] Schema push requires drizzle-kit, which is not installed.\n' +
|
|
36
|
-
' Development: run `bun add -d drizzle-kit` — provision() will push schema changes to the database on startup.\n' +
|
|
37
|
-
' Production: generate migrations locally with `bunx drizzle-kit generate` and commit the folder — provision() applies them without drizzle-kit.';
|
|
38
|
-
/** Push the merged schema to the database via drizzle-kit/api. */
|
|
39
|
-
export async function provisionSchema(db, schema, options) {
|
|
40
|
-
const dialect = detectDialect(schema);
|
|
41
|
-
if (options?.databaseUrl) {
|
|
42
|
-
await ensureLocalDataDir(options.databaseUrl, dialect);
|
|
43
|
-
}
|
|
44
|
-
let kit;
|
|
45
|
-
try {
|
|
46
|
-
kit = await import('drizzle-kit/api');
|
|
47
|
-
}
|
|
48
|
-
catch (cause) {
|
|
49
|
-
throw new Error(DRIZZLE_KIT_HINT, { cause });
|
|
50
|
-
}
|
|
51
|
-
const result = dialect === 'pg'
|
|
52
|
-
? await kit.pushSchema(schema, db)
|
|
53
|
-
: await kit.pushSQLiteSchema(schema, db);
|
|
54
|
-
if (result.hasDataLoss && !options?.force) {
|
|
55
|
-
throw new Error('[bunderstack] Schema push would cause data loss. Run `bunx drizzle-kit push` or call provision(app, { force: true }).');
|
|
56
|
-
}
|
|
57
|
-
if (result.warnings.length > 0) {
|
|
58
|
-
for (const warning of result.warnings) {
|
|
59
|
-
console.warn(`[bunderstack] ${warning}`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (result.statementsToExecute.length === 0)
|
|
63
|
-
return;
|
|
64
|
-
await result.apply();
|
|
65
|
-
console.log(`[bunderstack] provisioned ${result.statementsToExecute.length} schema change(s)`);
|
|
66
|
-
}
|
|
1
|
+
import { applyCommittedMigrations } from './provision-runtime.js';
|
|
2
|
+
const MIGRATIONS_REQUIRED = '[bunderstack] No committed migrations journal was found.\n' +
|
|
3
|
+
' Production: generate migrations with `bunx drizzle-kit generate`, commit them, and keep using `bunderstack/provision`.\n' +
|
|
4
|
+
' Development schema push: import provision from `bunderstack/provision-schema`.';
|
|
67
5
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* The migrations folder is the mode switch:
|
|
71
|
-
* - `<migrations>/meta/_journal.json` exists → apply committed migrations via
|
|
72
|
-
* drizzle-orm's migrator. Pure runtime; drizzle-kit is never imported, so a
|
|
73
|
-
* fresh clone deploys with `bun install --production`.
|
|
74
|
-
* - No migrations → development: push the schema straight to the database via
|
|
75
|
-
* drizzle-kit (install it with `bun add -d drizzle-kit`).
|
|
6
|
+
* Apply committed migrations for a Bunderstack app.
|
|
76
7
|
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
8
|
+
* This production entrypoint has no Drizzle Kit dependency. Development
|
|
9
|
+
* schema push is deliberately isolated in `bunderstack/provision-schema`.
|
|
79
10
|
*/
|
|
80
|
-
export async function provision(app
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
throw new Error('[bunderstack] provision() expects the app returned by bunderstack().');
|
|
84
|
-
}
|
|
85
|
-
const { db, schema, databaseUrl, migrationsFolder, dialect, adapter } = internals;
|
|
86
|
-
const journal = join(migrationsFolder, 'meta', '_journal.json');
|
|
87
|
-
if (await exists(journal)) {
|
|
88
|
-
await ensureLocalDataDir(databaseUrl, dialect);
|
|
89
|
-
await adapter.migrate(db, migrationsFolder);
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
await provisionSchema(db, schema, { force: options?.force, databaseUrl });
|
|
93
|
-
}
|
|
94
|
-
export async function provisionForTest(app, mode) {
|
|
95
|
-
if (mode === 'auto') {
|
|
96
|
-
await provision(app, { force: true });
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
const internals = app[PROVISION_INTERNALS];
|
|
100
|
-
if (!internals) {
|
|
101
|
-
throw new Error('[bunderstack] test provisioning expects a Bunderstack runtime');
|
|
102
|
-
}
|
|
103
|
-
if (mode === 'push') {
|
|
104
|
-
await provisionSchema(internals.db, internals.schema, {
|
|
105
|
-
force: true,
|
|
106
|
-
databaseUrl: internals.databaseUrl,
|
|
107
|
-
});
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
const journal = join(internals.migrationsFolder, 'meta', '_journal.json');
|
|
111
|
-
if (!(await exists(journal))) {
|
|
112
|
-
throw new Error('[bunderstack] committed migrations journal not found');
|
|
11
|
+
export async function provision(app) {
|
|
12
|
+
if (!(await applyCommittedMigrations(app))) {
|
|
13
|
+
throw new Error(MIGRATIONS_REQUIRED);
|
|
113
14
|
}
|
|
114
|
-
await ensureLocalDataDir(internals.databaseUrl, internals.dialect);
|
|
115
|
-
await internals.adapter.migrate(internals.db, internals.migrationsFolder);
|
|
116
15
|
}
|
|
117
16
|
//# sourceMappingURL=provision.js.map
|
package/dist/provision.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../src/provision.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../src/provision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,MAAM,mBAAmB,GACvB,4DAA4D;IAC5D,4HAA4H;IAC5H,kFAAkF,CAAA;AAEpF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,IAAI,CAAC,CAAC,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;AACH,CAAC","sourcesContent":["import { applyCommittedMigrations } from './provision-runtime'\n\nconst MIGRATIONS_REQUIRED =\n '[bunderstack] No committed migrations journal was found.\\n' +\n ' Production: generate migrations with `bunx drizzle-kit generate`, commit them, and keep using `bunderstack/provision`.\\n' +\n ' Development schema push: import provision from `bunderstack/provision-schema`.'\n\n/**\n * Apply committed migrations for a Bunderstack app.\n *\n * This production entrypoint has no Drizzle Kit dependency. Development\n * schema push is deliberately isolated in `bunderstack/provision-schema`.\n */\nexport async function provision(app: object): Promise<void> {\n if (!(await applyCommittedMigrations(app))) {\n throw new Error(MIGRATIONS_REQUIRED)\n }\n}\n"]}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AnyRouter as AnyORPCRouter } from '@orpc/server';
|
|
2
|
+
import type { Auth } from 'better-auth';
|
|
2
3
|
import type { TableAccessInput } from './access.js';
|
|
3
4
|
import type { AuthSessionResolver } from './access.js';
|
|
4
5
|
import type { RealtimeApiRouter } from './api/realtime-router.js';
|
|
@@ -11,13 +12,14 @@ import type { MessagingConfig, MessagingFacadesFor } from './messaging/index.js'
|
|
|
11
12
|
import type { MessagingAdapter } from './messaging/runtime.js';
|
|
12
13
|
import type { ResolvedStorageBuckets, StorageConfigInput } from './storage/buckets.js';
|
|
13
14
|
import type { StorageAdapter } from './storage/index.js';
|
|
14
|
-
import {
|
|
15
|
-
import { type BunderstackConfig } from './config.js';
|
|
15
|
+
import { type BunderstackAuth } from './auth.js';
|
|
16
|
+
import { type BetterAuthConfig, type BunderstackConfig } from './config.js';
|
|
16
17
|
import { type EnvConfigInput, type ValidatedEnv } from './env.js';
|
|
17
18
|
import { type LifecycleStatus } from './lifecycle.js';
|
|
18
19
|
import { type BunderstackLogger } from './logging.js';
|
|
19
20
|
import { type RealtimeFacade } from './realtime/facade.js';
|
|
20
|
-
|
|
21
|
+
/** Base Better Auth contract used by framework internals and API context. */
|
|
22
|
+
export type AuthInstance = Auth;
|
|
21
23
|
export type RuntimeOverrides = {
|
|
22
24
|
database?: DatabaseConnection;
|
|
23
25
|
resolvedStorage?: ResolvedStorageBuckets;
|
|
@@ -77,10 +79,10 @@ export type AppRunWorkerOptions = AppStartWorkerOptions & {
|
|
|
77
79
|
export type BucketNamesOf<TStorage> = TStorage extends {
|
|
78
80
|
buckets: infer B extends Record<string, unknown>;
|
|
79
81
|
} ? keyof B & string : string;
|
|
80
|
-
export type BunderstackApp<TSchema extends Record<string, unknown>, TAccess extends Record<string, TableAccessInput> | undefined = undefined, TBuckets extends string = string, TEnv extends EnvConfigInput | undefined = undefined, TJobsDefs extends JobsDefs | undefined = undefined, TCustomApiRouter extends AnyORPCRouter | undefined = undefined, TRealtime = undefined, TMessaging extends MessagingConfig | undefined = undefined> = {
|
|
82
|
+
export type BunderstackApp<TSchema extends Record<string, unknown>, TAccess extends Record<string, TableAccessInput> | undefined = undefined, TBuckets extends string = string, TEnv extends EnvConfigInput | undefined = undefined, TJobsDefs extends JobsDefs | undefined = undefined, TCustomApiRouter extends AnyORPCRouter | undefined = undefined, TRealtime = undefined, TMessaging extends MessagingConfig | undefined = undefined, TAuthConfig extends BetterAuthConfig = BetterAuthConfig> = {
|
|
81
83
|
handler: (req: Request) => Promise<Response>;
|
|
82
84
|
db: DbFor<TSchema>;
|
|
83
|
-
auth:
|
|
85
|
+
auth: BunderstackAuth<TAuthConfig>;
|
|
84
86
|
storage: StorageFacade;
|
|
85
87
|
/** Validated env: bunderstack's base vars plus the config's `env` extension. */
|
|
86
88
|
env: ValidatedEnv<TEnv>;
|
|
@@ -113,11 +115,11 @@ export type BunderstackApp<TSchema extends Record<string, unknown>, TAccess exte
|
|
|
113
115
|
] extends [false | undefined] ? {} : RealtimeApiRouter>;
|
|
114
116
|
};
|
|
115
117
|
};
|
|
116
|
-
export declare function materializeBunderstack<TSchema extends Record<string, unknown>, const TAccess extends Record<string, TableAccessInput> | undefined = undefined, const TStorage extends StorageConfigInput | undefined = undefined, const TEnv extends EnvConfigInput | undefined = undefined, const TJobsDefs extends JobsDefs | undefined = undefined, TCustomApiRouter extends AnyORPCRouter | undefined = undefined, const TRealtime extends BunderstackConfig<TSchema, TAccess, TStorage, TEnv, TCustomApiRouter>['realtime'] = undefined, const TMessaging extends MessagingConfig | undefined = undefined>(options: BunderstackConfig<TSchema, TAccess, TStorage, TEnv, TCustomApiRouter> & {
|
|
118
|
+
export declare function materializeBunderstack<TSchema extends Record<string, unknown>, const TAccess extends Record<string, TableAccessInput> | undefined = undefined, const TStorage extends StorageConfigInput | undefined = undefined, const TEnv extends EnvConfigInput | undefined = undefined, const TJobsDefs extends JobsDefs | undefined = undefined, TCustomApiRouter extends AnyORPCRouter | undefined = undefined, const TRealtime extends BunderstackConfig<TSchema, TAccess, TStorage, TEnv, TCustomApiRouter>['realtime'] = undefined, const TMessaging extends MessagingConfig | undefined = undefined, const TAuthConfig extends BetterAuthConfig = BetterAuthConfig>(options: BunderstackConfig<TSchema, TAccess, TStorage, TEnv, TCustomApiRouter, TAuthConfig> & {
|
|
117
119
|
realtime?: TRealtime;
|
|
118
120
|
messaging?: TMessaging;
|
|
119
121
|
jobs?: TJobsDefs | ((j: BunderstackJobsBuilder<TSchema, ValidatedEnv<TEnv>, TMessaging>) => TJobsDefs);
|
|
120
|
-
}, source: Record<string, string | undefined>, overrides?: RuntimeOverrides, env?: ValidatedEnv<TEnv>): Promise<BunderstackApp<TSchema, TAccess, BucketNamesOf<TStorage>, TEnv, TJobsDefs, TCustomApiRouter, TRealtime, TMessaging>>;
|
|
122
|
+
}, source: Record<string, string | undefined>, overrides?: RuntimeOverrides, env?: ValidatedEnv<TEnv>): Promise<BunderstackApp<TSchema, TAccess, BucketNamesOf<TStorage>, TEnv, TJobsDefs, TCustomApiRouter, TRealtime, TMessaging, TAuthConfig>>;
|
|
121
123
|
export { listSpec } from './api/list-spec.js';
|
|
122
124
|
export type { ListSpecOptions } from './api/list-spec.js';
|
|
123
125
|
export type { BunderstackDb, BunderstackTx } from './db.js';
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// src/runtime.ts
|
|
2
1
|
import { SmartCoercionHandlerPlugin } from '@orpc/json-schema';
|
|
3
2
|
import { OpenAPIGenerator, OpenAPIGeneratorError } from '@orpc/openapi';
|
|
4
3
|
import { OpenAPIHandler } from '@orpc/openapi/fetch';
|
|
@@ -13,7 +12,7 @@ import { buildApiRegistry, normalizeForeignOpenAPISpec } from './api/registry.js
|
|
|
13
12
|
import { buildApiRouter } from './api/router.js';
|
|
14
13
|
import { buildStorageApiRouter } from './api/storage-router.js';
|
|
15
14
|
import { createAuth, missingAuthModels, toAuthSessionResolver, withEmailAuthDefaults, } from './auth.js';
|
|
16
|
-
import { resolveConfig } from './config.js';
|
|
15
|
+
import { resolveConfig, } from './config.js';
|
|
17
16
|
import { resolveAuthConfig, resolveRealtimeRedisUrl } from './config.js';
|
|
18
17
|
import { createDb } from './db.js';
|
|
19
18
|
import { detectDialect } from './dialect.js';
|
|
@@ -442,7 +441,7 @@ export async function materializeBunderstack(options, source, overrides = {}, in
|
|
|
442
441
|
messaging,
|
|
443
442
|
jobs,
|
|
444
443
|
realtime,
|
|
445
|
-
auth,
|
|
444
|
+
auth: auth,
|
|
446
445
|
authResolver,
|
|
447
446
|
logger,
|
|
448
447
|
}, req);
|