@intentius/chant-lexicon-sql 0.122.0 → 0.123.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 +1 -1
- package/dist/clickhouse/entities.d.ts +37 -11
- package/dist/clickhouse/entities.d.ts.map +1 -1
- package/dist/clickhouse/import/generator.d.ts.map +1 -1
- package/dist/clickhouse/plan/commands.d.ts.map +1 -1
- package/dist/clickhouse/row-types.d.ts +30 -0
- package/dist/clickhouse/row-types.d.ts.map +1 -0
- package/dist/clickhouse.d.ts +1 -1
- package/dist/clickhouse.d.ts.map +1 -1
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/typed.d.ts +132 -0
- package/dist/core/typed.d.ts.map +1 -0
- package/dist/integrity.json +7 -3
- package/dist/lint/audit-catalog.d.ts.map +1 -1
- package/dist/lint/post-synth/index.d.ts.map +1 -1
- package/dist/lint/post-synth/postgres-names.d.ts +2 -0
- package/dist/lint/post-synth/postgres-names.d.ts.map +1 -1
- package/dist/lint/post-synth/sql102.d.ts +16 -0
- package/dist/lint/post-synth/sql102.d.ts.map +1 -0
- package/dist/lint/rules/index.d.ts +3 -1
- package/dist/lint/rules/index.d.ts.map +1 -1
- package/dist/lint/rules/sqlch004.d.ts +19 -0
- package/dist/lint/rules/sqlch004.d.ts.map +1 -0
- package/dist/lint/rules/sqlpg005.d.ts +18 -0
- package/dist/lint/rules/sqlpg005.d.ts.map +1 -0
- package/dist/lint/rules/typed-names.d.ts +43 -0
- package/dist/lint/rules/typed-names.d.ts.map +1 -0
- package/dist/manifest.json +1 -1
- package/dist/okf/index.md +3 -0
- package/dist/okf/rules/SQL102.md +11 -0
- package/dist/okf/rules/SQLCH004.md +11 -0
- package/dist/okf/rules/SQLPG005.md +11 -0
- package/dist/postgres/entities.d.ts +38 -9
- package/dist/postgres/entities.d.ts.map +1 -1
- package/dist/postgres/import/generator.d.ts.map +1 -1
- package/dist/postgres/row-types.d.ts +17 -0
- package/dist/postgres/row-types.d.ts.map +1 -0
- package/dist/postgres/testing/migration.d.ts +3 -2
- package/dist/postgres/testing/migration.d.ts.map +1 -1
- package/dist/postgres.d.ts +1 -1
- package/dist/postgres.d.ts.map +1 -1
- package/dist/rules/postgres-names.ts +6 -2
- package/dist/rules/sql102.ts +34 -0
- package/dist/rules/sqlch004.ts +81 -0
- package/dist/rules/sqlpg005.ts +73 -0
- package/dist/rules/typed-names.ts +120 -0
- package/dist/sql-types-command.d.ts +19 -0
- package/dist/sql-types-command.d.ts.map +1 -0
- package/dist/sql-types.d.ts +53 -0
- package/dist/sql-types.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/clickhouse/dictionary.test.ts +1 -1
- package/src/clickhouse/entities.ts +79 -14
- package/src/clickhouse/import/generator.ts +7 -1
- package/src/clickhouse/import/roundtrip.test.ts +1 -1
- package/src/clickhouse/plan/commands.ts +5 -0
- package/src/clickhouse/row-types.ts +158 -0
- package/src/clickhouse.ts +10 -0
- package/src/core/index.ts +4 -0
- package/src/core/typed.ts +143 -0
- package/src/lint/audit-catalog.ts +20 -0
- package/src/lint/post-synth/index.ts +2 -0
- package/src/lint/post-synth/postgres-names.ts +6 -2
- package/src/lint/post-synth/sql102.ts +34 -0
- package/src/lint/rules/index.ts +4 -2
- package/src/lint/rules/sqlch004.ts +81 -0
- package/src/lint/rules/sqlpg005.ts +73 -0
- package/src/lint/rules/typed-names.test.ts +151 -0
- package/src/lint/rules/typed-names.ts +120 -0
- package/src/op/__snapshots__/watch-pipeline.test.ts.snap +3 -3
- package/src/postgres/entities.ts +65 -12
- package/src/postgres/import/generator.ts +7 -1
- package/src/postgres/row-types.ts +111 -0
- package/src/postgres.ts +10 -0
- package/src/sql-types-command.ts +99 -0
- package/src/sql-types-staleness.test.ts +110 -0
- package/src/sql-types.test.ts +132 -0
- package/src/sql-types.ts +352 -0
- package/src/typecheck.test.ts +12 -3
- package/src/typed-columns.test.ts +92 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-names.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/typed-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,wEAAwE;AACxE,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAA;CAAE,GAAG,SAAS,CAK1H;AAED,iHAAiH;AACjH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBrD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAUjF;AAED,+EAA+E;AAC/E,eAAO,MAAM,YAAY,GAAI,UAAU,SAAS,MAAM,EAAE,KAAG,MAAkE,CAAC;AAE9H,qGAAqG;AACrG,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAAyC,CAAC;AAExF,4IAA4I;AAC5I,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAgBzF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUtE;AAED,6HAA6H;AAC7H,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAQ3F"}
|
package/dist/manifest.json
CHANGED
package/dist/okf/index.md
CHANGED
|
@@ -34,9 +34,11 @@ okf_version: '0.2'
|
|
|
34
34
|
# Rules
|
|
35
35
|
|
|
36
36
|
* [SQL101](/rules/SQL101.md) - Two exports declare the same object
|
|
37
|
+
* [SQL102](/rules/SQL102.md) - sql-types.d.ts differs from what the build declares
|
|
37
38
|
* [SQLCH001](/rules/SQLCH001.md) - the DDL in a ClickHouse template (`database`, `table`, `view`, `dictionary`, `func`, `user`, `role`, `policy`, `grant`) does not parse, or holds another stat...
|
|
38
39
|
* [SQLCH002](/rules/SQLCH002.md) - a `Nullable` column in a table's sort key or primary key.
|
|
39
40
|
* [SQLCH003](/rules/SQLCH003.md) - a column written as `${events.kind}` instead of `${events.columns.kind}`.
|
|
41
|
+
* [SQLCH004](/rules/SQLCH004.md) - a typed ClickHouse tag whose type argument does not name the
|
|
40
42
|
* [SQLCH101](/rules/SQLCH101.md) - A ClickHouse object names an engine the pinned server does not have
|
|
41
43
|
* [SQLCH102](/rules/SQLCH102.md) - A PRIMARY KEY is not a prefix of ORDER BY
|
|
42
44
|
* [SQLCH103](/rules/SQLCH103.md) - An engine's version, sign or is_deleted column has an unsupported type
|
|
@@ -68,6 +70,7 @@ okf_version: '0.2'
|
|
|
68
70
|
* [SQLPG002](/rules/SQLPG002.md) - a column written as `${events.kind}` instead of `${events.columns.kind}`.
|
|
69
71
|
* [SQLPG003](/rules/SQLPG003.md) - an object named in a string where Postgres reads a `regclass`:
|
|
70
72
|
* [SQLPG004](/rules/SQLPG004.md) - a declared extension the configured provider does not allow.
|
|
73
|
+
* [SQLPG005](/rules/SQLPG005.md) - a typed Postgres tag whose type argument does not name the object
|
|
71
74
|
* [SQLPG101](/rules/SQLPG101.md) - A table declares no primary key
|
|
72
75
|
* [SQLPG102](/rules/SQLPG102.md) - A foreign key's referencing columns have no index
|
|
73
76
|
* [SQLPG103](/rules/SQLPG103.md) - A serial column where an identity column is preferred
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: SQL102
|
|
4
|
+
description: sql-types.d.ts differs from what the build declares
|
|
5
|
+
id: SQL102
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: sql
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/sql/rules/
|
|
10
|
+
---
|
|
11
|
+
sql-types.d.ts differs from what the build declares
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: lint-rule
|
|
3
|
+
title: SQLCH004
|
|
4
|
+
description: a typed ClickHouse tag whose type argument does not name the
|
|
5
|
+
id: SQLCH004
|
|
6
|
+
severity: error
|
|
7
|
+
category: correctness
|
|
8
|
+
lexicon: sql
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/sql/rules/
|
|
10
|
+
---
|
|
11
|
+
a typed ClickHouse tag whose type argument does not name the
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: lint-rule
|
|
3
|
+
title: SQLPG005
|
|
4
|
+
description: a typed Postgres tag whose type argument does not name the object
|
|
5
|
+
id: SQLPG005
|
|
6
|
+
severity: error
|
|
7
|
+
category: correctness
|
|
8
|
+
lexicon: sql
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/sql/rules/
|
|
10
|
+
---
|
|
11
|
+
a typed Postgres tag whose type argument does not name the object
|
|
@@ -58,10 +58,12 @@ import { type TemplateDialect } from "../core/interpolation.js";
|
|
|
58
58
|
import { SqlObject } from "../core/entity.js";
|
|
59
59
|
import type { LineageEdge } from "../core/references.js";
|
|
60
60
|
import { SqlLiteral } from "../core/template.js";
|
|
61
|
+
import { type ColumnsIn, type Named, type RowIn, type SlotsIn, type Unnamed } from "../core/typed.js";
|
|
61
62
|
export { SQL_LEXICON } from "../core/entity.js";
|
|
62
63
|
export type { LineageEdge } from "../core/references.js";
|
|
63
64
|
export { SqlLiteral, SqlTemplateError } from "../core/template.js";
|
|
64
65
|
export { quoteIdent } from "./keywords.js";
|
|
66
|
+
export type { AnyColumn, Column, ColumnTraits, KeyColumn, Named, NotNullColumn, UncheckedColumn, Unnamed } from "../core/typed.js";
|
|
65
67
|
export { POSTGRES_ENTITY_TYPES, type PostgresEntityType } from "./entity-types.js";
|
|
66
68
|
import { type PostgresEntityType } from "./entity-types.js";
|
|
67
69
|
/** A column as declared. Expressions are the source text with interpolations rendered. */
|
|
@@ -412,16 +414,28 @@ export interface PostgresSchema extends PostgresObject {
|
|
|
412
414
|
readonly entityType: "Postgres::Schema";
|
|
413
415
|
readonly props: SchemaProps;
|
|
414
416
|
}
|
|
415
|
-
/**
|
|
416
|
-
|
|
417
|
+
/**
|
|
418
|
+
* Every Postgres table and view the project declares, keyed by its qualified
|
|
419
|
+
* name (`shop.orders`). Empty here; the `sql-types.d.ts` that `chant sql
|
|
420
|
+
* types` writes augments it, and a tag given the name as its type argument
|
|
421
|
+
* reads its columns from there.
|
|
422
|
+
*/
|
|
423
|
+
export interface SqlSchema {
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* A table or a view: something with columns that SQL can reference. `N` is
|
|
427
|
+
* its qualified name when its tag was given one (`` table<"shop.orders">`...` ``):
|
|
428
|
+
* its columns are then the generated declarations' entry for that name.
|
|
429
|
+
*/
|
|
430
|
+
export interface PostgresRelation<N extends string = string> extends PostgresObject, Named<N> {
|
|
417
431
|
/** One reference per column, by its folded name: `${users.columns.email}`. */
|
|
418
|
-
readonly columns:
|
|
432
|
+
readonly columns: ColumnsIn<SqlSchema, N>;
|
|
419
433
|
}
|
|
420
|
-
export interface PostgresTable extends PostgresRelation {
|
|
434
|
+
export interface PostgresTable<N extends string = string> extends PostgresRelation<N> {
|
|
421
435
|
readonly entityType: "Postgres::Table";
|
|
422
436
|
readonly props: TableProps;
|
|
423
437
|
}
|
|
424
|
-
export interface PostgresView extends PostgresRelation {
|
|
438
|
+
export interface PostgresView<N extends string = string> extends PostgresRelation<N> {
|
|
425
439
|
readonly entityType: "Postgres::View" | "Postgres::MaterializedView";
|
|
426
440
|
readonly props: ViewProps;
|
|
427
441
|
}
|
|
@@ -469,6 +483,12 @@ export interface PostgresGrant extends PostgresObject {
|
|
|
469
483
|
readonly entityType: "Postgres::Grant" | "Postgres::DefaultPrivileges";
|
|
470
484
|
readonly props: GrantProps | DefaultPrivilegesProps;
|
|
471
485
|
}
|
|
486
|
+
/**
|
|
487
|
+
* A declared table's or view's row, for application code: `RowOf<typeof orders>`
|
|
488
|
+
* for a declaration given its name, or `RowOf<"shop.users">` by name, which
|
|
489
|
+
* also covers an object only a `.sql` file declares.
|
|
490
|
+
*/
|
|
491
|
+
export type RowOf<T extends keyof SqlSchema | Named<keyof SqlSchema & string>> = RowIn<SqlSchema, T>;
|
|
472
492
|
export declare function isPostgresObject(value: unknown): value is PostgresObject;
|
|
473
493
|
/** A column reference: an AttrRef whose parent is a Postgres table or view. */
|
|
474
494
|
export declare function isColumnRef(value: unknown): value is AttrRef;
|
|
@@ -488,12 +508,21 @@ export declare function stringValue(s: string | undefined): string | undefined;
|
|
|
488
508
|
export declare function followOnStray(tag: PostgresTag, rest: readonly StatementNode[]): StatementNode | undefined;
|
|
489
509
|
/** `` schema`CREATE SCHEMA ...` ``: one Postgres schema, parsed at build time. */
|
|
490
510
|
export declare function schema(strings: TemplateStringsArray, ...values: unknown[]): PostgresSchema;
|
|
491
|
-
/**
|
|
492
|
-
|
|
511
|
+
/**
|
|
512
|
+
* `` table`CREATE TABLE ...` ``: one Postgres table with its columns and
|
|
513
|
+
* constraints, parsed at build time. Given its qualified name as the type
|
|
514
|
+
* argument (`` table<"shop.orders">`...` ``), its columns are the ones
|
|
515
|
+
* `chant sql types` declared for that name.
|
|
516
|
+
*/
|
|
517
|
+
export declare function table<const N extends string = Unnamed>(strings: TemplateStringsArray, ...values: SlotsIn<SqlSchema, N>): PostgresTable<N>;
|
|
493
518
|
/** `` index`CREATE [UNIQUE] INDEX [CONCURRENTLY] name ON ...` ``: one named index. */
|
|
494
519
|
export declare function index(strings: TemplateStringsArray, ...values: unknown[]): PostgresIndex;
|
|
495
|
-
/**
|
|
496
|
-
|
|
520
|
+
/**
|
|
521
|
+
* `` view`CREATE [MATERIALIZED] VIEW ...` ``: one view or materialized view,
|
|
522
|
+
* with what it reads and its column lineage. Takes its qualified name as the
|
|
523
|
+
* type argument, as {@link table} does.
|
|
524
|
+
*/
|
|
525
|
+
export declare function view<const N extends string = Unnamed>(strings: TemplateStringsArray, ...values: SlotsIn<SqlSchema, N>): PostgresView<N>;
|
|
497
526
|
/** `` sequence`CREATE SEQUENCE ...` ``: one sequence. Reference it as `nextval(${seq})`. */
|
|
498
527
|
export declare function sequence(strings: TemplateStringsArray, ...values: unknown[]): PostgresSequence;
|
|
499
528
|
/** `` type`CREATE TYPE name AS ENUM (...)` ``: one enum type. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/postgres/entities.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/postgres/entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/postgres/import/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/postgres/import/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAKjE,kGAAkG;AAClG,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AACD,KAAK,IAAI,GAAG,cAAc,CAAC;AAE3B,uHAAuH;AACvH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAqBD,wEAAwE;AACxE,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAO,CAAC;AAwHrE,0DAA0D;AAC1D,eAAO,MAAM,QAAQ,GAAI,MAAM,YAAY,KAAG,MAA0F,CAAC;AAEzI;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,GAAE,SAAS,IAAI,EAAU,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAAE,CA6BhJ;AAaD,qBAAa,iBAAkB,YAAW,mBAAmB;IAG/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAFpC,QAAQ,CAAC,UAAU,QAAQ;gBAEE,MAAM,CAAC,EAAE,MAAM,YAAA;IAE5C,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,aAAa,EAAE;CAqB1C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What a Postgres column's value is in TypeScript, for `RowOf` (#3751): the
|
|
3
|
+
* value node-postgres (`pg`, the driver the lexicon itself uses) hands back
|
|
4
|
+
* with its default type parsers. `bigint` and `numeric` are strings, since a
|
|
5
|
+
* JavaScript number cannot hold every value; `integer`, `smallint`, `real`
|
|
6
|
+
* and `double precision` are numbers; dates and timestamps are `Date`s;
|
|
7
|
+
* `json` and `jsonb` are parsed, so their shape is the application's
|
|
8
|
+
* (`unknown`); everything the driver does not parse is its text form.
|
|
9
|
+
*
|
|
10
|
+
* The table names every built-in type of every supported major's catalog
|
|
11
|
+
* (`COLUMN_TYPES`), and a test fails on one it does not, so a type a new
|
|
12
|
+
* catalog adds is a decision rather than a silent `unknown`.
|
|
13
|
+
*/
|
|
14
|
+
import type { TypeSqlName } from "../generated/postgres-types.js";
|
|
15
|
+
/** The TypeScript type of each built-in type's value, by its `format_type()` name. */
|
|
16
|
+
export declare const POSTGRES_ROW_TYPES: Readonly<Record<TypeSqlName, string>>;
|
|
17
|
+
//# sourceMappingURL=row-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-types.d.ts","sourceRoot":"","sources":["../../src/postgres/row-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAM/D,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAyFpE,CAAC"}
|
|
@@ -15,8 +15,9 @@ export declare class ApprovingLedger {
|
|
|
15
15
|
private pending;
|
|
16
16
|
private resolutions;
|
|
17
17
|
port: GateLedgerPort & {
|
|
18
|
-
appended: import("@intentius/chant/
|
|
19
|
-
resolved: import("@intentius/chant/
|
|
18
|
+
appended: import("@intentius/chant/gate-decision").PendingGateRecord[];
|
|
19
|
+
resolved: import("@intentius/chant/gate-decision").GateResolutionRecord[];
|
|
20
|
+
applied: import("@intentius/chant/gate-decision").AppliedGateRecord[];
|
|
20
21
|
};
|
|
21
22
|
approveLast(): void;
|
|
22
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/postgres/testing/migration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAoD,KAAK,UAAU,EAAE,KAAK,cAAc,EAAiB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE9J,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEpF,gGAAgG;AAChG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAO/F;AAED,gFAAgF;AAChF,wBAAsB,cAAc,CAAC,MAAM,EAAE,yBAAyB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAItJ;AAED,uIAAuI;AACvI,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAAiB;IACpC,IAAI
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/postgres/testing/migration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAoD,KAAK,UAAU,EAAE,KAAK,cAAc,EAAiB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE9J,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEpF,gGAAgG;AAChG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAO/F;AAED,gFAAgF;AAChF,wBAAsB,cAAc,CAAC,MAAM,EAAE,yBAAyB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAItJ;AAED,uIAAuI;AACvI,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAAiB;IACpC,IAAI;;;;MAA0B;IAE9B,WAAW,IAAI,IAAI;CAcpB;AAED,2CAA2C;AAC3C,eAAO,MAAM,UAAU,GAAI,GAAG,WAAW,EAAE,MAAM,MAAM,KAAG,OAAyF,CAAC"}
|
package/dist/postgres.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* the statements are Postgres's own DDL, parsed at build time into entities,
|
|
6
6
|
* and the names fold and quote as Postgres folds and quotes them.
|
|
7
7
|
*/
|
|
8
|
-
export { schema, table, index, view, sequence, type, domain, extension, func, procedure, trigger, policy, role, grant, literal, SqlLiteral, SqlTemplateError, PostgresObject, POSTGRES_ENTITY_TYPES, isPostgresObject, isColumnRef, quoteIdent, type PostgresEntityType, type PostgresSchema, type PostgresRelation, type PostgresTable, type PostgresView, type PostgresIndex, type PostgresSequence, type PostgresEnum, type PostgresDomain, type PostgresExtension, type PostgresFunction, type PostgresProcedure, type PostgresTrigger, type PostgresPolicy, type PostgresRole, type PostgresGrant, type ColumnDef, type KeyDef, type CheckDef, type ForeignKeyDef, type ExclusionDef, type SchemaProps, type TableProps, type IndexProps, type ViewProps, type SequenceProps, type EnumProps, type DomainProps, type ExtensionProps, type RoutineProps, type RoutineArgDef, type FunctionProps, type ProcedureProps, type TriggerProps, type PolicyProps, type RoleProps, type GrantProps, type DefaultPrivilegesProps, type PrivilegeDef, type LineageEdge, } from "./postgres/entities.js";
|
|
8
|
+
export { schema, table, index, view, sequence, type, domain, extension, func, procedure, trigger, policy, role, grant, literal, SqlLiteral, SqlTemplateError, PostgresObject, POSTGRES_ENTITY_TYPES, isPostgresObject, isColumnRef, quoteIdent, type PostgresEntityType, type PostgresSchema, type PostgresRelation, type PostgresTable, type PostgresView, type PostgresIndex, type PostgresSequence, type PostgresEnum, type PostgresDomain, type PostgresExtension, type PostgresFunction, type PostgresProcedure, type PostgresTrigger, type PostgresPolicy, type PostgresRole, type PostgresGrant, type ColumnDef, type KeyDef, type CheckDef, type ForeignKeyDef, type ExclusionDef, type SchemaProps, type TableProps, type IndexProps, type ViewProps, type SequenceProps, type EnumProps, type DomainProps, type ExtensionProps, type RoutineProps, type RoutineArgDef, type FunctionProps, type ProcedureProps, type TriggerProps, type PolicyProps, type RoleProps, type GrantProps, type DefaultPrivilegesProps, type PrivilegeDef, type LineageEdge, type SqlSchema, type RowOf, type Column, type ColumnTraits, type AnyColumn, type UncheckedColumn, type KeyColumn, type NotNullColumn, type Named, type Unnamed, } from "./postgres/entities.js";
|
|
9
9
|
export { POSTGRES_PROVIDERS, COMMON_REFUSED, providerData, isPostgresProvider, providerAllowsExtension, isProviderOwned, refusedStatement, normalizeStatement, type PostgresProvider, type ProviderData, type ProviderSource, type RefusedStatement, type LiveObjectRef, } from "./postgres/providers/index.js";
|
|
10
10
|
export { PostgresMigrationOp, type PostgresMigrationOpConfig, type PostgresMigrationOpResources, type PostgresMigrationArgs, } from "./postgres/migrate/op.js";
|
|
11
11
|
export { POSTGRES_RECEIPTS_TABLE } from "./postgres/migrate/receipts.js";
|
package/dist/postgres.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../src/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,SAAS,EACT,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../src/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,SAAS,EACT,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,OAAO,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,cAAc,uBAAuB,CAAC"}
|
|
@@ -120,12 +120,16 @@ export interface PgProject {
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
export function projectOf(ctx: PostSynthContext): PgProject {
|
|
123
|
-
|
|
123
|
+
return projectFromObjects(postgresObjects(ctx), targetMajor(ctx));
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** The project a set of output objects declares, at `major`: for a reader that holds the build output itself (`chant sql types`). */
|
|
127
|
+
export function projectFromObjects(objects: OutputObject[], major: number): PgProject {
|
|
124
128
|
const byExport = new Map(objects.map((o) => [o.export, o]));
|
|
125
129
|
const schemas = new Set(objects.filter((o) => o.type === "Postgres::Schema").map((o) => o.name));
|
|
126
130
|
const exts = objects.filter((o) => o.type === "Postgres::Extension");
|
|
127
131
|
return {
|
|
128
|
-
major
|
|
132
|
+
major,
|
|
129
133
|
objects,
|
|
130
134
|
byExport,
|
|
131
135
|
schemas,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
2
|
+
import { sqlTypesPath, sqlTypesState } from "../../sql-types";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* SQL102: `sql-types.d.ts` no longer matches what the build declares.
|
|
6
|
+
*
|
|
7
|
+
* tsc checks a typed tag's columns, and the foreign-key and sort-key slots,
|
|
8
|
+
* against the generated file, never against the template text, so a stale file
|
|
9
|
+
* keeps checking the old types. The check renders the declarations in memory
|
|
10
|
+
* (the render `chant sql types` writes) and compares them with the file in the
|
|
11
|
+
* project's source directory. Silent when the context carries no project
|
|
12
|
+
* directory (a hand-built one) or the file does not exist, so a project that
|
|
13
|
+
* has not adopted typed columns, or keeps the file elsewhere, sees nothing.
|
|
14
|
+
* `chant sql types --check` is the same comparison without a build, and a
|
|
15
|
+
* workspace `generated` entry runs it under `chant workspace check --generated`.
|
|
16
|
+
*/
|
|
17
|
+
export const sql102: PostSynthCheck = {
|
|
18
|
+
id: "SQL102",
|
|
19
|
+
description: "sql-types.d.ts differs from what the build declares",
|
|
20
|
+
check(ctx) {
|
|
21
|
+
if (!ctx.projectDir) return [];
|
|
22
|
+
const file = sqlTypesPath(ctx.projectDir, ctx.projectConfig);
|
|
23
|
+
const state = sqlTypesState(ctx.entities, file, { projectDir: ctx.projectDir, config: ctx.projectConfig });
|
|
24
|
+
if (state !== "stale") return [];
|
|
25
|
+
return [
|
|
26
|
+
{
|
|
27
|
+
checkId: "SQL102",
|
|
28
|
+
severity: "error",
|
|
29
|
+
message: `${file} differs from what the build declares, so tsc checks columns against out-of-date types; run \`chant sql types\` to rewrite it`,
|
|
30
|
+
lexicon: "sql",
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
},
|
|
34
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { LintContext, LintDiagnostic, LintRule } from "@intentius/chant/lint/rule";
|
|
2
|
+
import { parseCreate, unquote } from "../../clickhouse/parser";
|
|
3
|
+
import { isTrivia, SqlSyntaxError } from "../../clickhouse/tokens";
|
|
4
|
+
import { findTemplates, tokensOf } from "./templates";
|
|
5
|
+
import { declaredText, generatedNamesFor, nameAgrees, normalizedName, SQL_TYPES_FILE, typeArgumentName } from "./typed-names";
|
|
6
|
+
|
|
7
|
+
const MODULE = "@intentius/chant-lexicon-sql/clickhouse";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* SQLCH004: a typed ClickHouse tag whose type argument does not name the
|
|
11
|
+
* object its template declares, or is not in the generated `sql-types.d.ts`.
|
|
12
|
+
*
|
|
13
|
+
* `table<"shop.events">\`CREATE TABLE shop.events ...\``, and the same for
|
|
14
|
+
* `view` and `dictionary`, types `.columns` from the generated file's
|
|
15
|
+
* `SqlSchema["shop.events"]`. tsc does not compare the argument with the
|
|
16
|
+
* template's text, and an argument the file does not list falls back to
|
|
17
|
+
* unchecked columns, so a typo checks nothing and says nothing. The rule reads
|
|
18
|
+
* the declared name from the template (a database supplied by an interpolation
|
|
19
|
+
* is not known to lint, and is left out of the comparison) and the listed
|
|
20
|
+
* names from the nearest `sql-types.d.ts` above the file. With no generated
|
|
21
|
+
* file, only the first check runs. A name missing from the file is a warning,
|
|
22
|
+
* since an object added since the last `chant sql types` is stale and
|
|
23
|
+
* `chant sql types --check` is what fails on it.
|
|
24
|
+
*/
|
|
25
|
+
export const sqlch004: LintRule = {
|
|
26
|
+
id: "SQLCH004",
|
|
27
|
+
severity: "error",
|
|
28
|
+
category: "correctness",
|
|
29
|
+
description: "A ClickHouse tag's type argument does not name the object its template declares, or is not in sql-types.d.ts",
|
|
30
|
+
|
|
31
|
+
check(context: LintContext): LintDiagnostic[] {
|
|
32
|
+
const source = context.sourceFile;
|
|
33
|
+
const out: LintDiagnostic[] = [];
|
|
34
|
+
let listed: Set<string> | undefined | null = null;
|
|
35
|
+
for (const found of findTemplates(source)) {
|
|
36
|
+
if (found.tag !== "table" && found.tag !== "view" && found.tag !== "dictionary") continue;
|
|
37
|
+
const arg = typeArgumentName(found.node);
|
|
38
|
+
if (!arg) continue;
|
|
39
|
+
const at = (() => {
|
|
40
|
+
const { line, character } = source.getLineAndCharacterOfPosition(arg.node.getStart(source));
|
|
41
|
+
return { line: line + 1, column: character + 1 };
|
|
42
|
+
})();
|
|
43
|
+
let declared: string[] | undefined;
|
|
44
|
+
try {
|
|
45
|
+
const tokens = tokensOf(found);
|
|
46
|
+
const node = parseCreate(tokens);
|
|
47
|
+
if (node.statement === found.tag) {
|
|
48
|
+
declared = tokens
|
|
49
|
+
.slice(node.name.from, node.name.to)
|
|
50
|
+
.filter((t) => !isTrivia(t) && !(t.kind === "punct" && t.text === "."))
|
|
51
|
+
.map((t) => (t.kind === "ref" ? "" : unquote(t.text)));
|
|
52
|
+
}
|
|
53
|
+
} catch (err) {
|
|
54
|
+
if (err instanceof SqlSyntaxError) continue; // SQLCH001 reports it
|
|
55
|
+
throw err;
|
|
56
|
+
}
|
|
57
|
+
if (!declared) continue; // SQLCH001: the tag holds another statement
|
|
58
|
+
if (!nameAgrees(declared, arg.name)) {
|
|
59
|
+
out.push({
|
|
60
|
+
ruleId: "SQLCH004",
|
|
61
|
+
severity: "error",
|
|
62
|
+
message: `${found.tag}<"${arg.name}"> names another object than the template declares (${declaredText(declared)}); the type argument is the qualified name the build renders`,
|
|
63
|
+
file: context.filePath,
|
|
64
|
+
...at,
|
|
65
|
+
});
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (listed === null) listed = generatedNamesFor(context.filePath, MODULE);
|
|
69
|
+
if (listed && !listed.has(normalizedName(arg.name))) {
|
|
70
|
+
out.push({
|
|
71
|
+
ruleId: "SQLCH004",
|
|
72
|
+
severity: "warning",
|
|
73
|
+
message: `"${arg.name}" is not in ${SQL_TYPES_FILE}, so its columns are unchecked; run \`chant sql types\` to add it`,
|
|
74
|
+
file: context.filePath,
|
|
75
|
+
...at,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
},
|
|
81
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { LintContext, LintDiagnostic, LintRule } from "@intentius/chant/lint/rule";
|
|
2
|
+
import { parseStatements, SqlSyntaxError } from "../../postgres/parser";
|
|
3
|
+
import { findPostgresTemplates, postgresTokensOf } from "./postgres-templates";
|
|
4
|
+
import { declaredText, generatedNamesFor, nameAgrees, normalizedName, SQL_TYPES_FILE, typeArgumentName } from "./typed-names";
|
|
5
|
+
|
|
6
|
+
const MODULE = "@intentius/chant-lexicon-sql/postgres";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* SQLPG005: a typed Postgres tag whose type argument does not name the object
|
|
10
|
+
* its template declares, or is not in the generated `sql-types.d.ts`.
|
|
11
|
+
*
|
|
12
|
+
* `table<"shop.orders">\`CREATE TABLE shop.orders ...\`` types `.columns` from
|
|
13
|
+
* the generated file's `SqlSchema["shop.orders"]`. tsc does not compare the
|
|
14
|
+
* argument with the template's text, and an argument the file does not list
|
|
15
|
+
* falls back to unchecked columns, so a typo checks nothing and says nothing.
|
|
16
|
+
* The rule reads the declared name from the template (a schema supplied by an
|
|
17
|
+
* interpolation is not known to lint, and is left out of the comparison) and
|
|
18
|
+
* the listed names from the nearest `sql-types.d.ts` above the file. With no
|
|
19
|
+
* generated file, only the first check runs. A name missing from the file is
|
|
20
|
+
* a warning, since a table added since the last `chant sql types` is stale
|
|
21
|
+
* and `chant sql types --check` is what fails on it.
|
|
22
|
+
*/
|
|
23
|
+
export const sqlpg005: LintRule = {
|
|
24
|
+
id: "SQLPG005",
|
|
25
|
+
severity: "error",
|
|
26
|
+
category: "correctness",
|
|
27
|
+
description: "A Postgres tag's type argument does not name the object its template declares, or is not in sql-types.d.ts",
|
|
28
|
+
|
|
29
|
+
check(context: LintContext): LintDiagnostic[] {
|
|
30
|
+
const source = context.sourceFile;
|
|
31
|
+
const out: LintDiagnostic[] = [];
|
|
32
|
+
let listed: Set<string> | undefined | null = null;
|
|
33
|
+
for (const found of findPostgresTemplates(source)) {
|
|
34
|
+
if (found.tag !== "table" && found.tag !== "view") continue;
|
|
35
|
+
const arg = typeArgumentName(found.node);
|
|
36
|
+
if (!arg) continue;
|
|
37
|
+
const at = (() => {
|
|
38
|
+
const { line, character } = source.getLineAndCharacterOfPosition(arg.node.getStart(source));
|
|
39
|
+
return { line: line + 1, column: character + 1 };
|
|
40
|
+
})();
|
|
41
|
+
let declared: string[] | undefined;
|
|
42
|
+
try {
|
|
43
|
+
const node = parseStatements(postgresTokensOf(found))[0];
|
|
44
|
+
if (node && (node.statement === "table" || node.statement === "view")) declared = node.name.pieces;
|
|
45
|
+
} catch (err) {
|
|
46
|
+
if (err instanceof SqlSyntaxError) continue; // SQLPG001 reports it
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
if (!declared) continue; // SQLPG001: the tag holds another statement
|
|
50
|
+
if (!nameAgrees(declared, arg.name)) {
|
|
51
|
+
out.push({
|
|
52
|
+
ruleId: "SQLPG005",
|
|
53
|
+
severity: "error",
|
|
54
|
+
message: `${found.tag}<"${arg.name}"> names another object than the template declares (${declaredText(declared)}); the type argument is the qualified name the build renders`,
|
|
55
|
+
file: context.filePath,
|
|
56
|
+
...at,
|
|
57
|
+
});
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (listed === null) listed = generatedNamesFor(context.filePath, MODULE);
|
|
61
|
+
if (listed && !listed.has(normalizedName(arg.name))) {
|
|
62
|
+
out.push({
|
|
63
|
+
ruleId: "SQLPG005",
|
|
64
|
+
severity: "warning",
|
|
65
|
+
message: `"${arg.name}" is not in ${SQL_TYPES_FILE}, so its columns are unchecked; run \`chant sql types\` to add it`,
|
|
66
|
+
file: context.filePath,
|
|
67
|
+
...at,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return out;
|
|
72
|
+
},
|
|
73
|
+
};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the typed-column rules (SQLPG005, SQLCH004; chant #3751) share: reading
|
|
3
|
+
* a tag's type argument, comparing it with the name the template declares, and
|
|
4
|
+
* reading the names the generated `sql-types.d.ts` lists.
|
|
5
|
+
*
|
|
6
|
+
* The type argument is `table<"shop.orders">\`CREATE TABLE ...\``. tsc checks
|
|
7
|
+
* that it names an entry of the generated file's `SqlSchema` only when the
|
|
8
|
+
* argument is a constraint, and an unlisted name falls back to unchecked
|
|
9
|
+
* columns, so a mistyped argument is silent without these rules.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
13
|
+
import { dirname, join, resolve } from "node:path";
|
|
14
|
+
import * as ts from "typescript";
|
|
15
|
+
|
|
16
|
+
/** The generated file's name, beside the source (`chant sql types`). */
|
|
17
|
+
export const SQL_TYPES_FILE = "sql-types.d.ts";
|
|
18
|
+
|
|
19
|
+
/** A tag's type argument, when it is a string literal: `table<"shop.orders">`. */
|
|
20
|
+
export function typeArgumentName(node: ts.TaggedTemplateExpression): { name: string; node: ts.LiteralTypeNode } | undefined {
|
|
21
|
+
const arg = node.typeArguments?.[0];
|
|
22
|
+
if (!arg || node.typeArguments!.length !== 1) return undefined;
|
|
23
|
+
if (!ts.isLiteralTypeNode(arg) || !ts.isStringLiteral(arg.literal)) return undefined;
|
|
24
|
+
return { name: arg.literal.text, node: arg };
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** Split a dotted name outside quotes and take the quotes off: `shop."Order Items"` is `shop`, `Order Items`. */
|
|
28
|
+
export function splitQualified(name: string): string[] {
|
|
29
|
+
const pieces: string[] = [];
|
|
30
|
+
let cur = "";
|
|
31
|
+
let quote: string | undefined;
|
|
32
|
+
for (let i = 0; i < name.length; i++) {
|
|
33
|
+
const c = name[i]!;
|
|
34
|
+
if (quote) {
|
|
35
|
+
if (c === quote && name[i + 1] === quote) {
|
|
36
|
+
cur += c;
|
|
37
|
+
i++;
|
|
38
|
+
} else if (c === quote) quote = undefined;
|
|
39
|
+
else cur += c;
|
|
40
|
+
} else if (c === '"' || c === "`") quote = c;
|
|
41
|
+
else if (c === ".") {
|
|
42
|
+
pieces.push(cur);
|
|
43
|
+
cur = "";
|
|
44
|
+
} else cur += c;
|
|
45
|
+
}
|
|
46
|
+
pieces.push(cur);
|
|
47
|
+
return pieces;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Whether the declared name (an empty piece is an interpolation, which lint
|
|
52
|
+
* cannot read) can be the type argument's. Compared from the last piece back.
|
|
53
|
+
* A template that does not qualify its name takes the argument's schema, since
|
|
54
|
+
* the build qualifies it with the schema or database the project sets; one
|
|
55
|
+
* that does qualify it must agree with the argument.
|
|
56
|
+
*/
|
|
57
|
+
export function nameAgrees(declared: readonly string[], argument: string): boolean {
|
|
58
|
+
const given = splitQualified(argument);
|
|
59
|
+
if (declared.length === 0) return true;
|
|
60
|
+
if (declared.length > given.length) return false;
|
|
61
|
+
for (let i = 1; i <= declared.length; i++) {
|
|
62
|
+
const d = declared[declared.length - i]!;
|
|
63
|
+
if (d === "") continue;
|
|
64
|
+
if (d !== given[given.length - i]) return false;
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** The text of a declared name for a message; an interpolation is `${...}`. */
|
|
70
|
+
export const declaredText = (declared: readonly string[]): string => declared.map((p) => (p === "" ? "${...}" : p)).join(".");
|
|
71
|
+
|
|
72
|
+
/** A qualified name with quoting taken off, so `"shop"."orders"` and `shop.orders` compare equal. */
|
|
73
|
+
export const normalizedName = (name: string): string => splitQualified(name).join("\0");
|
|
74
|
+
|
|
75
|
+
/** The names (normalized, see {@link normalizedName}) a `declare module "<module>"` block in a generated file augments `SqlSchema` with. */
|
|
76
|
+
export function namesInGenerated(content: string, module: string): Set<string> | undefined {
|
|
77
|
+
const source = ts.createSourceFile(SQL_TYPES_FILE, content, ts.ScriptTarget.Latest, true);
|
|
78
|
+
let names: Set<string> | undefined;
|
|
79
|
+
for (const stmt of source.statements) {
|
|
80
|
+
if (!ts.isModuleDeclaration(stmt) || !ts.isStringLiteral(stmt.name) || stmt.name.text !== module) continue;
|
|
81
|
+
if (!stmt.body || !ts.isModuleBlock(stmt.body)) continue;
|
|
82
|
+
for (const inner of stmt.body.statements) {
|
|
83
|
+
if (!ts.isInterfaceDeclaration(inner) || inner.name.text !== "SqlSchema") continue;
|
|
84
|
+
names ??= new Set();
|
|
85
|
+
for (const member of inner.members) {
|
|
86
|
+
const n = member.name;
|
|
87
|
+
if (n && (ts.isStringLiteral(n) || ts.isIdentifier(n))) names.add(normalizedName(n.text));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return names;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* The generated file nearest above a source file, up to the directory that
|
|
96
|
+
* holds the project's config. `chant sql types` writes it in `sourceDir` (or
|
|
97
|
+
* the project root), so the walk finds it from any file below.
|
|
98
|
+
*/
|
|
99
|
+
export function findGeneratedFile(filePath: string): string | undefined {
|
|
100
|
+
let dir = dirname(resolve(filePath));
|
|
101
|
+
for (;;) {
|
|
102
|
+
const candidate = join(dir, SQL_TYPES_FILE);
|
|
103
|
+
if (existsSync(candidate)) return candidate;
|
|
104
|
+
if (existsSync(join(dir, "chant.config.ts")) || existsSync(join(dir, "chant.config.json"))) return undefined;
|
|
105
|
+
const up = dirname(dir);
|
|
106
|
+
if (up === dir) return undefined;
|
|
107
|
+
dir = up;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/** The names the generated file lists for a dialect's module, or undefined when there is no file or it has no such block. */
|
|
112
|
+
export function generatedNamesFor(filePath: string, module: string): Set<string> | undefined {
|
|
113
|
+
const found = findGeneratedFile(filePath);
|
|
114
|
+
if (!found) return undefined;
|
|
115
|
+
try {
|
|
116
|
+
return namesInGenerated(readFileSync(found, "utf8"), module);
|
|
117
|
+
} catch {
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
}
|