@fougere/adapter-sql 0.17.3-alpha.0 → 0.18.0-alpha.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/dist/ddl/SqlSink.d.ts +4 -7
- package/dist/ddl/SqlSink.d.ts.map +1 -1
- package/dist/ddl/SqlSink.js +5 -8
- package/dist/ddl/SqlSink.js.map +1 -1
- package/dist/diff/Change.d.ts +6 -6
- package/dist/diff/Change.d.ts.map +1 -1
- package/dist/diff/Change.js +9 -9
- package/dist/diff/Change.js.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/source/SqlSource.d.ts +1 -1
- package/dist/source/SqlSource.js.map +1 -1
- package/dist/sqlite/SqliteSource.js.map +1 -1
- package/dist/table/EntityEntry.d.ts +3 -6
- package/dist/table/EntityEntry.d.ts.map +1 -1
- package/dist/table/HostedNames.d.ts +1 -1
- package/dist/table/HostedNames.d.ts.map +1 -1
- package/dist/table/TableDef.d.ts +2 -2
- package/dist/table/TableDef.d.ts.map +1 -1
- package/dist/table/TableDef.js +10 -11
- package/dist/table/TableDef.js.map +1 -1
- package/package.json +4 -4
- package/src/ddl/SqlSink.ts +6 -9
- package/src/diff/Change.ts +10 -10
- package/src/index.ts +0 -2
- package/src/source/SqlSource.ts +4 -4
- package/src/sqlite/SqliteSource.ts +3 -3
- package/src/table/EntityEntry.ts +3 -6
- package/src/table/HostedNames.ts +1 -1
- package/src/table/TableDef.ts +10 -11
- package/dist/table/AppLike.d.ts +0 -12
- package/dist/table/AppLike.d.ts.map +0 -1
- package/dist/table/AppLike.js +0 -2
- package/dist/table/AppLike.js.map +0 -1
- package/dist/table/FrondLike.d.ts +0 -6
- package/dist/table/FrondLike.d.ts.map +0 -1
- package/dist/table/FrondLike.js +0 -2
- package/dist/table/FrondLike.js.map +0 -1
- package/src/table/AppLike.ts +0 -10
- package/src/table/FrondLike.ts +0 -6
package/dist/ddl/SqlSink.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Kysely } from 'kysely';
|
|
2
|
-
import {
|
|
2
|
+
import type { SourceView } from '@fougere/core';
|
|
3
3
|
import { type ColumnDef } from '../table/ColumnDef.js';
|
|
4
4
|
import { type TableDef } from '../table/TableDef.js';
|
|
5
5
|
import { type DialectName } from '../dialect/DialectName.js';
|
|
@@ -22,11 +22,8 @@ export declare function createIndexSQL(table: TableDef, dialectName: DialectName
|
|
|
22
22
|
* every table in it exists.
|
|
23
23
|
*/
|
|
24
24
|
export declare function addForeignKeyConstraintSQL(table: TableDef, column: ColumnDef, dialectName: DialectName): string;
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
* entities when present.
|
|
28
|
-
*/
|
|
29
|
-
export declare function generateSQL(app: AppLike, options?: GenerateOptions): string[];
|
|
25
|
+
/** `CREATE TABLE` for every entity a source holds. */
|
|
26
|
+
export declare function generateSQL(view: SourceView, options?: GenerateOptions): string[];
|
|
30
27
|
/**
|
|
31
28
|
* Anything that can run a statement. `exec` is accepted alongside `execute` so a
|
|
32
29
|
* raw better-sqlite3 handle drops in unchanged.
|
|
@@ -37,5 +34,5 @@ export type SqlSink = {
|
|
|
37
34
|
exec(sql: string): unknown;
|
|
38
35
|
};
|
|
39
36
|
/** Create every missing table. */
|
|
40
|
-
export declare function autoMigrate(
|
|
37
|
+
export declare function autoMigrate(view: SourceView, sink: SqlSink, options?: GenerateOptions): void | Promise<void>;
|
|
41
38
|
//# sourceMappingURL=SqlSink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlSink.d.ts","sourceRoot":"","sources":["../../src/ddl/SqlSink.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAQP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SqlSink.d.ts","sourceRoot":"","sources":["../../src/ddl/SqlSink.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAQP,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAW5D,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAevD;AAID,qDAAqD;AACrD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,GACzC,MAAM,CA+BR;AAED,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAK7F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CAKlF;AAkBD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAS/G;AAID,sDAAsD;AACtD,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,EAAE,CA6BjF;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GACf;IAAE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GACjC;IAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAMnC,kCAAkC;AAClC,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5G"}
|
package/dist/ddl/SqlSink.js
CHANGED
|
@@ -101,14 +101,11 @@ export function addForeignKeyConstraintSQL(table, column, dialectName) {
|
|
|
101
101
|
return builder.compile().sql;
|
|
102
102
|
}
|
|
103
103
|
// ─── App-wide generation ───────────────────────────
|
|
104
|
-
/**
|
|
105
|
-
|
|
106
|
-
* entities when present.
|
|
107
|
-
*/
|
|
108
|
-
export function generateSQL(app, options) {
|
|
104
|
+
/** `CREATE TABLE` for every entity a source holds. */
|
|
105
|
+
export function generateSQL(view, options) {
|
|
109
106
|
const resolve = options?.tableName ?? toTableName;
|
|
110
107
|
const dialect = options?.dialect ?? 'sqlite';
|
|
111
|
-
const tables = toTables(
|
|
108
|
+
const tables = toTables(view, resolve);
|
|
112
109
|
if (dialect === 'sqlite') {
|
|
113
110
|
return [
|
|
114
111
|
...tables.map((table) => createTableSQL(table, dialect)),
|
|
@@ -133,8 +130,8 @@ function runOn(sink, statement) {
|
|
|
133
130
|
return 'execute' in sink ? sink.execute(statement) : sink.exec(statement);
|
|
134
131
|
}
|
|
135
132
|
/** Create every missing table. */
|
|
136
|
-
export function autoMigrate(
|
|
137
|
-
const pending = generateSQL(
|
|
133
|
+
export function autoMigrate(view, sink, options) {
|
|
134
|
+
const pending = generateSQL(view, options)
|
|
138
135
|
.map((statement) => runOn(sink, statement))
|
|
139
136
|
.filter((result) => typeof result?.then === 'function');
|
|
140
137
|
return pending.length ? Promise.all(pending).then(() => undefined) : undefined;
|
package/dist/ddl/SqlSink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlSink.js","sourceRoot":"","sources":["../../src/ddl/SqlSink.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SqlSink.js","sourceRoot":"","sources":["../../src/ddl/SqlSink.ts"],"names":[],"mappings":"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"}
|
package/dist/diff/Change.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { type Kysely } from 'kysely';
|
|
2
2
|
import { type GenerateOptions } from '../ddl/GenerateOptions.js';
|
|
3
3
|
import { type DialectName } from '../dialect/DialectName.js';
|
|
4
|
-
import {
|
|
4
|
+
import type { SourceView } from '@fougere/core';
|
|
5
5
|
import { type ColumnDef } from '../table/ColumnDef.js';
|
|
6
6
|
import { type TableDef } from '../table/TableDef.js';
|
|
7
7
|
import type { SchemaState } from './SchemaState.js';
|
|
8
8
|
/** Read the live schema. Only names are needed — an additive pass never inspects types. */
|
|
9
9
|
export declare function actualState(db: Kysely<any>): Promise<SchemaState>;
|
|
10
|
-
/** Project
|
|
11
|
-
export declare function desiredTables(
|
|
10
|
+
/** Project a source's entities into the tables they ask for. */
|
|
11
|
+
export declare function desiredTables(view: SourceView, options?: GenerateOptions): TableDef[];
|
|
12
12
|
export type Change = {
|
|
13
13
|
kind: 'createTable';
|
|
14
14
|
table: TableDef;
|
|
@@ -36,12 +36,12 @@ export declare function orderChanges(changes: Change[], dialectName: DialectName
|
|
|
36
36
|
/** Render one change. */
|
|
37
37
|
export declare function changeSQL(change: Change, dialectName: DialectName): string;
|
|
38
38
|
/** Everything the database is missing, as statements ready to run. */
|
|
39
|
-
export declare function planMigration(
|
|
39
|
+
export declare function planMigration(view: SourceView, db: Kysely<any>, options?: GenerateOptions): Promise<{
|
|
40
40
|
changes: Change[];
|
|
41
41
|
statements: string[];
|
|
42
42
|
}>;
|
|
43
43
|
/** Bring the database up to what the entities describe — additively. */
|
|
44
|
-
export declare function migrate(
|
|
44
|
+
export declare function migrate(view: SourceView, target: Kysely<any> | {
|
|
45
45
|
db: Kysely<any>;
|
|
46
46
|
}, options?: GenerateOptions): Promise<Change[]>;
|
|
47
47
|
/**
|
|
@@ -49,7 +49,7 @@ export declare function migrate(app: AppLike, target: Kysely<any> | {
|
|
|
49
49
|
* column. Indexes are left out: this pass reads names, and `CREATE INDEX IF NOT EXISTS` is
|
|
50
50
|
* what `migrate` proposes every time precisely because nothing here can see one.
|
|
51
51
|
*/
|
|
52
|
-
export declare function pendingOf(
|
|
52
|
+
export declare function pendingOf(view: SourceView, db: Kysely<any>, options?: GenerateOptions): Promise<string[]>;
|
|
53
53
|
/**
|
|
54
54
|
* The columns a live table keeps that no field declares, for the tables that also GAIN one —
|
|
55
55
|
* which is what an undeclared rename looks like: the data stays in a column nothing reads.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Change.d.ts","sourceRoot":"","sources":["../../src/diff/Change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Change.d.ts","sourceRoot":"","sources":["../../src/diff/Change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,2FAA2F;AAC3F,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAQvE;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,QAAQ,EAAE,CAErF;AAED,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAEhE,kFAAkF;AAClF,wBAAgB,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CA2BxE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,EAAE,CAwBlF;AAED,yBAAyB;AACzB,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CA0C1E;AAED,sEAAsE;AACtE,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAKtD;AAED,wEAAwE;AACxE,wBAAsB,OAAO,CAC3B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;CAAE,EACzC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC,CAQnB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAY/G;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,EAAE,CAUnI"}
|
package/dist/diff/Change.js
CHANGED
|
@@ -14,9 +14,9 @@ export async function actualState(db) {
|
|
|
14
14
|
}
|
|
15
15
|
return state;
|
|
16
16
|
}
|
|
17
|
-
/** Project
|
|
18
|
-
export function desiredTables(
|
|
19
|
-
return toTables(
|
|
17
|
+
/** Project a source's entities into the tables they ask for. */
|
|
18
|
+
export function desiredTables(view, options) {
|
|
19
|
+
return toTables(view, options?.tableName ?? toTableName);
|
|
20
20
|
}
|
|
21
21
|
/** Compare the two states. Pure — the only place that decides what is missing. */
|
|
22
22
|
export function delta(desired, actual) {
|
|
@@ -119,15 +119,15 @@ export function changeSQL(change, dialectName) {
|
|
|
119
119
|
.compile().sql;
|
|
120
120
|
}
|
|
121
121
|
/** Everything the database is missing, as statements ready to run. */
|
|
122
|
-
export async function planMigration(
|
|
122
|
+
export async function planMigration(view, db, options) {
|
|
123
123
|
const dialect = options?.dialect ?? 'sqlite';
|
|
124
|
-
const changes = orderChanges(delta(desiredTables(
|
|
124
|
+
const changes = orderChanges(delta(desiredTables(view, options), await actualState(db)), dialect);
|
|
125
125
|
return { changes, statements: changes.map((change) => changeSQL(change, dialect)) };
|
|
126
126
|
}
|
|
127
127
|
/** Bring the database up to what the entities describe — additively. */
|
|
128
|
-
export async function migrate(
|
|
128
|
+
export async function migrate(view, target, options) {
|
|
129
129
|
const db = target.db ?? target;
|
|
130
|
-
const { changes, statements } = await planMigration(
|
|
130
|
+
const { changes, statements } = await planMigration(view, db, options);
|
|
131
131
|
for (const statement of statements) {
|
|
132
132
|
await sql.raw(statement).execute(db);
|
|
133
133
|
}
|
|
@@ -138,11 +138,11 @@ export async function migrate(app, target, options) {
|
|
|
138
138
|
* column. Indexes are left out: this pass reads names, and `CREATE INDEX IF NOT EXISTS` is
|
|
139
139
|
* what `migrate` proposes every time precisely because nothing here can see one.
|
|
140
140
|
*/
|
|
141
|
-
export async function pendingOf(
|
|
141
|
+
export async function pendingOf(view, db, options) {
|
|
142
142
|
// Names only, so `elsewhere` is left out: it decides which relations get a foreign key, and
|
|
143
143
|
// a process carrying only its own frond refers to entities it has never seen — which a
|
|
144
144
|
// question about names has no reason to refuse.
|
|
145
|
-
const desired = desiredTables({
|
|
145
|
+
const desired = desiredTables({ entities: view.entities }, options);
|
|
146
146
|
return delta(desired, await actualState(db)).flatMap((change) => {
|
|
147
147
|
if (change.kind === 'createTable')
|
|
148
148
|
return [`${change.table.name} — no table`];
|
package/dist/diff/Change.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Change.js","sourceRoot":"","sources":["../../src/diff/Change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAe,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAItE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAiB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAe;IAC/C,MAAM,KAAK,GAAgB,IAAI,GAAG,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,MAAM;YAAE,SAAS;QAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"Change.js","sourceRoot":"","sources":["../../src/diff/Change.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,9 +4,7 @@ export type { QueryEvent } from './query/QueryEvent.js';
|
|
|
4
4
|
export type { QuerySink } from './query/QuerySink.js';
|
|
5
5
|
export { toSnakeCase, toTable, toTableName, toTables } from './table/TableDef.js';
|
|
6
6
|
export { orderTables } from './order/TableOrder.js';
|
|
7
|
-
export type { AppLike } from './table/AppLike.js';
|
|
8
7
|
export type { EntityEntry } from './table/EntityEntry.js';
|
|
9
|
-
export type { FrondLike } from './table/FrondLike.js';
|
|
10
8
|
export { columnTypeFor, dialects } from './dialect/Dialect.js';
|
|
11
9
|
export type { Dialect } from './dialect/Dialect.js';
|
|
12
10
|
export type { SqlField } from './fields/SqlField.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1G,YAAY,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAI/D,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,0FAA0F;AAC1F,wFAAwF;AACxF,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1G,wEAAwE;AACxE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -11,7 +11,7 @@ export interface SqlSource extends Source {
|
|
|
11
11
|
/** Runs raw statements — what `autoMigrate` writes through. */
|
|
12
12
|
sink: SqlSink;
|
|
13
13
|
/**
|
|
14
|
-
* The Kysely instance, for what precedes any entity: `migrate(
|
|
14
|
+
* The Kysely instance, for what precedes any entity: `migrate(view, setup)` writes the schema
|
|
15
15
|
* through it, and a script may need it before a container exists.
|
|
16
16
|
*/
|
|
17
17
|
db: Kysely<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlSource.js","sourceRoot":"","sources":["../../src/source/SqlSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAiC,MAAM,QAAQ,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAoBnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AAE3D,+EAA+E;AAC/E,SAAS,SAAS,CAAC,EAAe,EAAE,OAAoB,EAAE,IAAsB;IAC9E,OAAO,KAAK,EAAE,IAAgB,EAA0B,EAAE;QACxD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,CAAC;QAC7F,MAAM,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"SqlSource.js","sourceRoot":"","sources":["../../src/source/SqlSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAiC,MAAM,QAAQ,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAoBnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AAE3D,+EAA+E;AAC/E,SAAS,SAAS,CAAC,EAAe,EAAE,OAAoB,EAAE,IAAsB;IAC9E,OAAO,KAAK,EAAE,IAAgB,EAA0B,EAAE;QACxD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,CAAC;QAC7F,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAE5D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,OAAO,CAAC,EAAe;IACrC,OAAO,EAAE,OAAO,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,kBAAkB,CAChC,aAA4B,EAC5B,OAAoB,EACpB,IAAI,GAAqB,EAAE;IAE3B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IAE9F,OAAO;QACL,EAAE;QACF,OAAO;QACP,cAAc,EAAE,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC;QAC7E,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;QACrC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,CAAC;QACpH,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO;QAC1B,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC;KAC1H,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqliteSource.js","sourceRoot":"","sources":["../../src/sqlite/SqliteSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAmD,MAAM,eAAe,CAAC;AAQzF,MAAM,UAAU,kBAAkB,CAAC,IAAI,GAAwB,EAAE;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IACvC,iEAAiE;IACjE,IAAI,IAAI,KAAK,UAAU;QAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAM,EAAE,OAAO,EAAE,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IAErH,OAAO;QACL,EAAE;QACF,MAAM;QACN,OAAO,EAAE,QAAQ;QACjB,cAAc,EAAE,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC;QAC9E,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,QAAiB,EAAE,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,IAAI,WAAW,EAAE,CAAC;YAChH,MAAM,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"SqliteSource.js","sourceRoot":"","sources":["../../src/sqlite/SqliteSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
/** A live class in-process, or one rebuilt from the card of a frond that never crossed. */
|
|
5
|
-
entityClass: SchemaView;
|
|
6
|
-
}
|
|
1
|
+
import type { EntityEntry as ScannedEntity } from '@fougere/core';
|
|
2
|
+
/** A live class in-process, or one rebuilt from the card of a frond that never crossed. */
|
|
3
|
+
export type EntityEntry = Pick<ScannedEntity, 'name' | 'entityClass'>;
|
|
7
4
|
//# sourceMappingURL=EntityEntry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityEntry.d.ts","sourceRoot":"","sources":["../../src/table/EntityEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"EntityEntry.d.ts","sourceRoot":"","sources":["../../src/table/EntityEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAElE,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export interface HostedNames {
|
|
3
3
|
/** Registration names in THIS batch. */
|
|
4
4
|
here: ReadonlySet<string>;
|
|
5
|
-
/** Registration names the app hosts in another source — see
|
|
5
|
+
/** Registration names the app hosts in another source — see `SourceView.elsewhere`. */
|
|
6
6
|
elsewhere: ReadonlySet<string>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=HostedNames.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HostedNames.d.ts","sourceRoot":"","sources":["../../src/table/HostedNames.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"HostedNames.d.ts","sourceRoot":"","sources":["../../src/table/HostedNames.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,uFAAuF;IACvF,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChC"}
|
package/dist/table/TableDef.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type SchemaView } from '@fougere/schema';
|
|
2
2
|
import type { ColumnDef } from './ColumnDef.js';
|
|
3
3
|
import type { RelationResolve } from './RelationResolve.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { SourceView } from '@fougere/core';
|
|
5
5
|
export interface TableDef {
|
|
6
6
|
name: string;
|
|
7
7
|
columns: ColumnDef[];
|
|
@@ -27,5 +27,5 @@ export declare function toTableName(name: string): string;
|
|
|
27
27
|
* Every entity an app hosts, as FK-aware tables — the shared middle step behind `generateSQL` (a
|
|
28
28
|
* from-scratch create pass) and `desiredTables` (the diff's target state).
|
|
29
29
|
*/
|
|
30
|
-
export declare function toTables(
|
|
30
|
+
export declare function toTables(view: SourceView, resolve: (name: string) => string): TableDef[];
|
|
31
31
|
//# sourceMappingURL=TableDef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableDef.d.ts","sourceRoot":"","sources":["../../src/table/TableDef.ts"],"names":[],"mappings":"AACA,OAAO,EAAuD,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIvG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"TableDef.d.ts","sourceRoot":"","sources":["../../src/table/TableDef.ts"],"names":[],"mappings":"AACA,OAAO,EAAuD,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIvG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,0EAA0E;IAC1E,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,+EAA+E;IAC/E,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IACzB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;CACzB;AAED,6BAA6B;AAC7B,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAiGD,sEAAsE;AACtE,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,QAAQ,CAiCpG;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAOnE;AAID,sCAAsC;AACtC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AA2BD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,QAAQ,EAAE,CAQxF"}
|
package/dist/table/TableDef.js
CHANGED
|
@@ -148,8 +148,8 @@ function verdictOn(entry) {
|
|
|
148
148
|
const { entityClass } = entry;
|
|
149
149
|
return !entityClass.derivation || entityClass.anchored ? 'table' : 'answer';
|
|
150
150
|
}
|
|
151
|
-
/** Every entity this
|
|
152
|
-
function collectEntities(
|
|
151
|
+
/** Every entity this source holds, once each. */
|
|
152
|
+
function collectEntities(view) {
|
|
153
153
|
const entries = [];
|
|
154
154
|
const seen = new Set();
|
|
155
155
|
const hold = (entry) => {
|
|
@@ -158,11 +158,10 @@ function collectEntities(app) {
|
|
|
158
158
|
seen.add(lowerFirst(entry.name));
|
|
159
159
|
entries.push(entry);
|
|
160
160
|
};
|
|
161
|
-
for (const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
161
|
+
for (const [name, entityClass] of view.entities) {
|
|
162
|
+
const entry = { name, entityClass };
|
|
163
|
+
if (verdictOn(entry) === 'table')
|
|
164
|
+
hold(entry);
|
|
166
165
|
}
|
|
167
166
|
return entries;
|
|
168
167
|
}
|
|
@@ -170,11 +169,11 @@ function collectEntities(app) {
|
|
|
170
169
|
* Every entity an app hosts, as FK-aware tables — the shared middle step behind `generateSQL` (a
|
|
171
170
|
* from-scratch create pass) and `desiredTables` (the diff's target state).
|
|
172
171
|
*/
|
|
173
|
-
export function toTables(
|
|
174
|
-
const entries = collectEntities(
|
|
172
|
+
export function toTables(view, resolve) {
|
|
173
|
+
const entries = collectEntities(view);
|
|
175
174
|
const tableNameOf = new Map(entries.map((entry) => [entry.entityClass, resolve(entry.name)]));
|
|
176
|
-
const hosted =
|
|
177
|
-
? { here: new Set(entries.map((entry) => lowerFirst(entry.name))), elsewhere: new Set(
|
|
175
|
+
const hosted = view.elsewhere
|
|
176
|
+
? { here: new Set(entries.map((entry) => lowerFirst(entry.name))), elsewhere: new Set(view.elsewhere.map(lowerFirst)) }
|
|
178
177
|
: undefined;
|
|
179
178
|
return entries.map((entry) => toTable(resolve(entry.name), entry.entityClass, { resolve, tableNameOf, hosted }));
|
|
180
179
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableDef.js","sourceRoot":"","sources":["../../src/table/TableDef.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TableDef.js","sourceRoot":"","sources":["../../src/table/TableDef.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fougere/adapter-sql",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0-alpha.0",
|
|
4
4
|
"description": "Entity → SQL tables through Kysely (SQLite, PostgreSQL, MySQL, SQL Server).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fougere",
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
"src"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@fougere/core": "0.
|
|
41
|
-
"@fougere/schema": "0.
|
|
40
|
+
"@fougere/core": "0.18.0-alpha.0",
|
|
41
|
+
"@fougere/schema": "0.18.0-alpha.0",
|
|
42
42
|
"dequal": "^2.0.3"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"kysely": ">=0.28.17"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@fougere/core": "0.
|
|
48
|
+
"@fougere/core": "0.18.0-alpha.0",
|
|
49
49
|
"better-sqlite3": "^13.0.3",
|
|
50
50
|
"@types/better-sqlite3": "^7.6.13",
|
|
51
51
|
"@types/node": "^22.0.0",
|
package/src/ddl/SqlSink.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
MssqlAdapter, MssqlQueryCompiler, MssqlIntrospector,
|
|
9
9
|
type ColumnDefinitionBuilder,
|
|
10
10
|
} from 'kysely';
|
|
11
|
-
import {
|
|
11
|
+
import type { SourceView } from '@fougere/core';
|
|
12
12
|
import { type ColumnDef } from '../table/ColumnDef.js';
|
|
13
13
|
import { isKeyed, toTableName, toTables, type TableDef } from '../table/TableDef.js';
|
|
14
14
|
import { orderTables } from '../order/TableOrder.js';
|
|
@@ -136,14 +136,11 @@ export function addForeignKeyConstraintSQL(table: TableDef, column: ColumnDef, d
|
|
|
136
136
|
|
|
137
137
|
// ─── App-wide generation ───────────────────────────
|
|
138
138
|
|
|
139
|
-
/**
|
|
140
|
-
|
|
141
|
-
* entities when present.
|
|
142
|
-
*/
|
|
143
|
-
export function generateSQL(app: AppLike, options?: GenerateOptions): string[] {
|
|
139
|
+
/** `CREATE TABLE` for every entity a source holds. */
|
|
140
|
+
export function generateSQL(view: SourceView, options?: GenerateOptions): string[] {
|
|
144
141
|
const resolve = options?.tableName ?? toTableName;
|
|
145
142
|
const dialect = options?.dialect ?? 'sqlite';
|
|
146
|
-
const tables = toTables(
|
|
143
|
+
const tables = toTables(view, resolve);
|
|
147
144
|
|
|
148
145
|
if (dialect === 'sqlite') {
|
|
149
146
|
return [
|
|
@@ -184,8 +181,8 @@ function runOn(sink: SqlSink, statement: string): unknown {
|
|
|
184
181
|
}
|
|
185
182
|
|
|
186
183
|
/** Create every missing table. */
|
|
187
|
-
export function autoMigrate(
|
|
188
|
-
const pending = generateSQL(
|
|
184
|
+
export function autoMigrate(view: SourceView, sink: SqlSink, options?: GenerateOptions): void | Promise<void> {
|
|
185
|
+
const pending = generateSQL(view, options)
|
|
189
186
|
.map((statement) => runOn(sink, statement))
|
|
190
187
|
.filter((result): result is Promise<unknown> => typeof (result as any)?.then === 'function');
|
|
191
188
|
|
package/src/diff/Change.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { addForeignKeyConstraintSQL, compiler, createTableSQL, indexSQL } from '
|
|
|
4
4
|
import { checkFor } from '../check.js';
|
|
5
5
|
import { columnTypeFor, resolveDialect } from '../dialect/Dialect.js';
|
|
6
6
|
import { type DialectName } from '../dialect/DialectName.js';
|
|
7
|
-
import {
|
|
7
|
+
import type { SourceView } from '@fougere/core';
|
|
8
8
|
import { type ColumnDef } from '../table/ColumnDef.js';
|
|
9
9
|
import { isKeyed, toTableName, toTables, type TableDef } from '../table/TableDef.js';
|
|
10
10
|
import { orderTables } from '../order/TableOrder.js';
|
|
@@ -21,9 +21,9 @@ export async function actualState(db: Kysely<any>): Promise<SchemaState> {
|
|
|
21
21
|
return state;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
/** Project
|
|
25
|
-
export function desiredTables(
|
|
26
|
-
return toTables(
|
|
24
|
+
/** Project a source's entities into the tables they ask for. */
|
|
25
|
+
export function desiredTables(view: SourceView, options?: GenerateOptions): TableDef[] {
|
|
26
|
+
return toTables(view, options?.tableName ?? toTableName);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export type Change =
|
|
@@ -139,24 +139,24 @@ export function changeSQL(change: Change, dialectName: DialectName): string {
|
|
|
139
139
|
|
|
140
140
|
/** Everything the database is missing, as statements ready to run. */
|
|
141
141
|
export async function planMigration(
|
|
142
|
-
|
|
142
|
+
view: SourceView,
|
|
143
143
|
db: Kysely<any>,
|
|
144
144
|
options?: GenerateOptions,
|
|
145
145
|
): Promise<{ changes: Change[]; statements: string[] }> {
|
|
146
146
|
const dialect = options?.dialect ?? 'sqlite';
|
|
147
|
-
const changes = orderChanges(delta(desiredTables(
|
|
147
|
+
const changes = orderChanges(delta(desiredTables(view, options), await actualState(db)), dialect);
|
|
148
148
|
|
|
149
149
|
return { changes, statements: changes.map((change) => changeSQL(change, dialect)) };
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
/** Bring the database up to what the entities describe — additively. */
|
|
153
153
|
export async function migrate(
|
|
154
|
-
|
|
154
|
+
view: SourceView,
|
|
155
155
|
target: Kysely<any> | { db: Kysely<any> },
|
|
156
156
|
options?: GenerateOptions,
|
|
157
157
|
): Promise<Change[]> {
|
|
158
158
|
const db = (target as { db?: Kysely<any> }).db ?? (target as Kysely<any>);
|
|
159
|
-
const { changes, statements } = await planMigration(
|
|
159
|
+
const { changes, statements } = await planMigration(view, db, options);
|
|
160
160
|
for (const statement of statements) {
|
|
161
161
|
await sql.raw(statement).execute(db);
|
|
162
162
|
}
|
|
@@ -169,11 +169,11 @@ export async function migrate(
|
|
|
169
169
|
* column. Indexes are left out: this pass reads names, and `CREATE INDEX IF NOT EXISTS` is
|
|
170
170
|
* what `migrate` proposes every time precisely because nothing here can see one.
|
|
171
171
|
*/
|
|
172
|
-
export async function pendingOf(
|
|
172
|
+
export async function pendingOf(view: SourceView, db: Kysely<any>, options?: GenerateOptions): Promise<string[]> {
|
|
173
173
|
// Names only, so `elsewhere` is left out: it decides which relations get a foreign key, and
|
|
174
174
|
// a process carrying only its own frond refers to entities it has never seen — which a
|
|
175
175
|
// question about names has no reason to refuse.
|
|
176
|
-
const desired = desiredTables({
|
|
176
|
+
const desired = desiredTables({ entities: view.entities }, options);
|
|
177
177
|
|
|
178
178
|
return delta(desired, await actualState(db)).flatMap((change) => {
|
|
179
179
|
if (change.kind === 'createTable') return [`${change.table.name} — no table`];
|
package/src/index.ts
CHANGED
|
@@ -4,9 +4,7 @@ export type { QueryEvent } from './query/QueryEvent.js';
|
|
|
4
4
|
export type { QuerySink } from './query/QuerySink.js';
|
|
5
5
|
export { toSnakeCase, toTable, toTableName, toTables } from './table/TableDef.js';
|
|
6
6
|
export { orderTables } from './order/TableOrder.js';
|
|
7
|
-
export type { AppLike } from './table/AppLike.js';
|
|
8
7
|
export type { EntityEntry } from './table/EntityEntry.js';
|
|
9
|
-
export type { FrondLike } from './table/FrondLike.js';
|
|
10
8
|
export { columnTypeFor, dialects } from './dialect/Dialect.js';
|
|
11
9
|
export type { Dialect } from './dialect/Dialect.js';
|
|
12
10
|
export type { SqlField } from './fields/SqlField.js';
|
package/src/source/SqlSource.ts
CHANGED
|
@@ -16,7 +16,7 @@ export interface SqlSource extends Source {
|
|
|
16
16
|
/** Runs raw statements — what `autoMigrate` writes through. */
|
|
17
17
|
sink: SqlSink;
|
|
18
18
|
/**
|
|
19
|
-
* The Kysely instance, for what precedes any entity: `migrate(
|
|
19
|
+
* The Kysely instance, for what precedes any entity: `migrate(view, setup)` writes the schema
|
|
20
20
|
* through it, and a script may need it before a container exists.
|
|
21
21
|
*/
|
|
22
22
|
db: Kysely<any>;
|
|
@@ -35,8 +35,8 @@ export const sqlEnforces = ['unique', 'relation'] as const;
|
|
|
35
35
|
function migrating(db: Kysely<any>, dialect: DialectName, opts: SqlSourceOptions) {
|
|
36
36
|
return async (view: SourceView): Promise<void | string> => {
|
|
37
37
|
const options = { dialect, tableName: opts.storageFactoryOptions?.tableName ?? toTableName };
|
|
38
|
-
await migrate(view
|
|
39
|
-
const found = await drift(db, desiredTables(view
|
|
38
|
+
await migrate(view, db, options);
|
|
39
|
+
const found = await drift(db, desiredTables(view, options));
|
|
40
40
|
|
|
41
41
|
return found.length ? driftReport(found) : undefined;
|
|
42
42
|
};
|
|
@@ -61,7 +61,7 @@ export function createKyselySource(
|
|
|
61
61
|
storageFactory: createStorageFactory(db, opts.storageFactoryOptions, dialect),
|
|
62
62
|
sink: sqlSink(db),
|
|
63
63
|
migrate: migrating(db, dialect, opts),
|
|
64
|
-
pending: (view) => pendingOf(view
|
|
64
|
+
pending: (view) => pendingOf(view, db, { dialect, tableName: opts.storageFactoryOptions?.tableName ?? toTableName }),
|
|
65
65
|
close: () => db.destroy(),
|
|
66
66
|
name: opts.name ?? dialect,
|
|
67
67
|
enforces: sqlEnforces,
|
|
@@ -35,15 +35,15 @@ export function createSqliteSource(opts: SqliteSourceOptions = {}): SqliteSource
|
|
|
35
35
|
sink: sqlSink(db),
|
|
36
36
|
migrate: async (view: SourceView) => {
|
|
37
37
|
const options = { dialect: 'sqlite' as const, tableName: opts.storageFactoryOptions?.tableName ?? toTableName };
|
|
38
|
-
await migrate(view
|
|
38
|
+
await migrate(view, db, options);
|
|
39
39
|
// What the additive pass left alone and the entity no longer agrees with. Asked
|
|
40
40
|
// AFTER, so a column it just created is judged against what it just wrote.
|
|
41
|
-
const found = await drift(db, desiredTables(view
|
|
41
|
+
const found = await drift(db, desiredTables(view, options));
|
|
42
42
|
|
|
43
43
|
return found.length ? driftReport(found) : undefined;
|
|
44
44
|
},
|
|
45
45
|
pending: (view: SourceView) =>
|
|
46
|
-
pendingOf(view
|
|
46
|
+
pendingOf(view, db, { dialect: 'sqlite', tableName: opts.storageFactoryOptions?.tableName ?? toTableName }),
|
|
47
47
|
close: () => db.destroy(),
|
|
48
48
|
name: opts.name ?? path,
|
|
49
49
|
enforces: sqlEnforces,
|
package/src/table/EntityEntry.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { EntityEntry as ScannedEntity } from '@fougere/core';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/** A live class in-process, or one rebuilt from the card of a frond that never crossed. */
|
|
6
|
-
entityClass: SchemaView;
|
|
7
|
-
}
|
|
3
|
+
/** A live class in-process, or one rebuilt from the card of a frond that never crossed. */
|
|
4
|
+
export type EntityEntry = Pick<ScannedEntity, 'name' | 'entityClass'>;
|
package/src/table/HostedNames.ts
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
export interface HostedNames {
|
|
3
3
|
/** Registration names in THIS batch. */
|
|
4
4
|
here: ReadonlySet<string>;
|
|
5
|
-
/** Registration names the app hosts in another source — see
|
|
5
|
+
/** Registration names the app hosts in another source — see `SourceView.elsewhere`. */
|
|
6
6
|
elsewhere: ReadonlySet<string>;
|
|
7
7
|
}
|
package/src/table/TableDef.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { ColumnReference } from './ColumnReference.js';
|
|
|
8
8
|
import type { RelationResolve } from './RelationResolve.js';
|
|
9
9
|
import type { HostedNames } from './HostedNames.js';
|
|
10
10
|
import type { EntityEntry } from './EntityEntry.js';
|
|
11
|
-
import type {
|
|
11
|
+
import type { SourceView } from '@fougere/core';
|
|
12
12
|
|
|
13
13
|
export interface TableDef {
|
|
14
14
|
name: string;
|
|
@@ -184,8 +184,8 @@ function verdictOn(entry: EntityEntry): 'table' | 'answer' {
|
|
|
184
184
|
return !entityClass.derivation || entityClass.anchored ? 'table' : 'answer';
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
/** Every entity this
|
|
188
|
-
function collectEntities(
|
|
187
|
+
/** Every entity this source holds, once each. */
|
|
188
|
+
function collectEntities(view: SourceView): EntityEntry[] {
|
|
189
189
|
const entries: EntityEntry[] = [];
|
|
190
190
|
const seen = new Set<string>();
|
|
191
191
|
const hold = (entry: EntityEntry) => {
|
|
@@ -194,10 +194,9 @@ function collectEntities(app: AppLike): EntityEntry[] {
|
|
|
194
194
|
entries.push(entry);
|
|
195
195
|
};
|
|
196
196
|
|
|
197
|
-
for (const
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
197
|
+
for (const [name, entityClass] of view.entities) {
|
|
198
|
+
const entry = { name, entityClass };
|
|
199
|
+
if (verdictOn(entry) === 'table') hold(entry);
|
|
201
200
|
}
|
|
202
201
|
|
|
203
202
|
return entries;
|
|
@@ -207,11 +206,11 @@ function collectEntities(app: AppLike): EntityEntry[] {
|
|
|
207
206
|
* Every entity an app hosts, as FK-aware tables — the shared middle step behind `generateSQL` (a
|
|
208
207
|
* from-scratch create pass) and `desiredTables` (the diff's target state).
|
|
209
208
|
*/
|
|
210
|
-
export function toTables(
|
|
211
|
-
const entries = collectEntities(
|
|
209
|
+
export function toTables(view: SourceView, resolve: (name: string) => string): TableDef[] {
|
|
210
|
+
const entries = collectEntities(view);
|
|
212
211
|
const tableNameOf = new Map<SchemaView, string>(entries.map((entry) => [entry.entityClass, resolve(entry.name)]));
|
|
213
|
-
const hosted =
|
|
214
|
-
? { here: new Set(entries.map((entry) => lowerFirst(entry.name))), elsewhere: new Set(
|
|
212
|
+
const hosted = view.elsewhere
|
|
213
|
+
? { here: new Set(entries.map((entry) => lowerFirst(entry.name))), elsewhere: new Set(view.elsewhere.map(lowerFirst)) }
|
|
215
214
|
: undefined;
|
|
216
215
|
|
|
217
216
|
return entries.map((entry) => toTable(resolve(entry.name), entry.entityClass, { resolve, tableNameOf, hosted }));
|
package/dist/table/AppLike.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type SchemaView } from '@fougere/schema';
|
|
2
|
-
import type { FrondLike } from './FrondLike.js';
|
|
3
|
-
export interface AppLike {
|
|
4
|
-
fronds: FrondLike[];
|
|
5
|
-
/** Auth runtime entities are migrated alongside scanned fronds when present. */
|
|
6
|
-
auth?: {
|
|
7
|
-
entities: Record<string, SchemaView>;
|
|
8
|
-
};
|
|
9
|
-
/** Entities this app hosts in ANOTHER source — named so a miss can be read. */
|
|
10
|
-
elsewhere?: string[];
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=AppLike.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppLike.d.ts","sourceRoot":"","sources":["../../src/table/AppLike.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,gFAAgF;IAChF,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;KAAE,CAAC;IAChD,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB"}
|
package/dist/table/AppLike.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AppLike.js","sourceRoot":"","sources":["../../src/table/AppLike.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FrondLike.d.ts","sourceRoot":"","sources":["../../src/table/FrondLike.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB"}
|
package/dist/table/FrondLike.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FrondLike.js","sourceRoot":"","sources":["../../src/table/FrondLike.ts"],"names":[],"mappings":""}
|
package/src/table/AppLike.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type SchemaView } from '@fougere/schema';
|
|
2
|
-
import type { FrondLike } from './FrondLike.js';
|
|
3
|
-
|
|
4
|
-
export interface AppLike {
|
|
5
|
-
fronds: FrondLike[];
|
|
6
|
-
/** Auth runtime entities are migrated alongside scanned fronds when present. */
|
|
7
|
-
auth?: { entities: Record<string, SchemaView> };
|
|
8
|
-
/** Entities this app hosts in ANOTHER source — named so a miss can be read. */
|
|
9
|
-
elsewhere?: string[];
|
|
10
|
-
}
|