@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.
Files changed (81) hide show
  1. package/README.md +1 -1
  2. package/dist/clickhouse/entities.d.ts +37 -11
  3. package/dist/clickhouse/entities.d.ts.map +1 -1
  4. package/dist/clickhouse/import/generator.d.ts.map +1 -1
  5. package/dist/clickhouse/plan/commands.d.ts.map +1 -1
  6. package/dist/clickhouse/row-types.d.ts +30 -0
  7. package/dist/clickhouse/row-types.d.ts.map +1 -0
  8. package/dist/clickhouse.d.ts +1 -1
  9. package/dist/clickhouse.d.ts.map +1 -1
  10. package/dist/core/index.d.ts +4 -0
  11. package/dist/core/index.d.ts.map +1 -1
  12. package/dist/core/typed.d.ts +132 -0
  13. package/dist/core/typed.d.ts.map +1 -0
  14. package/dist/integrity.json +7 -3
  15. package/dist/lint/audit-catalog.d.ts.map +1 -1
  16. package/dist/lint/post-synth/index.d.ts.map +1 -1
  17. package/dist/lint/post-synth/postgres-names.d.ts +2 -0
  18. package/dist/lint/post-synth/postgres-names.d.ts.map +1 -1
  19. package/dist/lint/post-synth/sql102.d.ts +16 -0
  20. package/dist/lint/post-synth/sql102.d.ts.map +1 -0
  21. package/dist/lint/rules/index.d.ts +3 -1
  22. package/dist/lint/rules/index.d.ts.map +1 -1
  23. package/dist/lint/rules/sqlch004.d.ts +19 -0
  24. package/dist/lint/rules/sqlch004.d.ts.map +1 -0
  25. package/dist/lint/rules/sqlpg005.d.ts +18 -0
  26. package/dist/lint/rules/sqlpg005.d.ts.map +1 -0
  27. package/dist/lint/rules/typed-names.d.ts +43 -0
  28. package/dist/lint/rules/typed-names.d.ts.map +1 -0
  29. package/dist/manifest.json +1 -1
  30. package/dist/okf/index.md +3 -0
  31. package/dist/okf/rules/SQL102.md +11 -0
  32. package/dist/okf/rules/SQLCH004.md +11 -0
  33. package/dist/okf/rules/SQLPG005.md +11 -0
  34. package/dist/postgres/entities.d.ts +38 -9
  35. package/dist/postgres/entities.d.ts.map +1 -1
  36. package/dist/postgres/import/generator.d.ts.map +1 -1
  37. package/dist/postgres/row-types.d.ts +17 -0
  38. package/dist/postgres/row-types.d.ts.map +1 -0
  39. package/dist/postgres/testing/migration.d.ts +3 -2
  40. package/dist/postgres/testing/migration.d.ts.map +1 -1
  41. package/dist/postgres.d.ts +1 -1
  42. package/dist/postgres.d.ts.map +1 -1
  43. package/dist/rules/postgres-names.ts +6 -2
  44. package/dist/rules/sql102.ts +34 -0
  45. package/dist/rules/sqlch004.ts +81 -0
  46. package/dist/rules/sqlpg005.ts +73 -0
  47. package/dist/rules/typed-names.ts +120 -0
  48. package/dist/sql-types-command.d.ts +19 -0
  49. package/dist/sql-types-command.d.ts.map +1 -0
  50. package/dist/sql-types.d.ts +53 -0
  51. package/dist/sql-types.d.ts.map +1 -0
  52. package/package.json +2 -2
  53. package/src/clickhouse/dictionary.test.ts +1 -1
  54. package/src/clickhouse/entities.ts +79 -14
  55. package/src/clickhouse/import/generator.ts +7 -1
  56. package/src/clickhouse/import/roundtrip.test.ts +1 -1
  57. package/src/clickhouse/plan/commands.ts +5 -0
  58. package/src/clickhouse/row-types.ts +158 -0
  59. package/src/clickhouse.ts +10 -0
  60. package/src/core/index.ts +4 -0
  61. package/src/core/typed.ts +143 -0
  62. package/src/lint/audit-catalog.ts +20 -0
  63. package/src/lint/post-synth/index.ts +2 -0
  64. package/src/lint/post-synth/postgres-names.ts +6 -2
  65. package/src/lint/post-synth/sql102.ts +34 -0
  66. package/src/lint/rules/index.ts +4 -2
  67. package/src/lint/rules/sqlch004.ts +81 -0
  68. package/src/lint/rules/sqlpg005.ts +73 -0
  69. package/src/lint/rules/typed-names.test.ts +151 -0
  70. package/src/lint/rules/typed-names.ts +120 -0
  71. package/src/op/__snapshots__/watch-pipeline.test.ts.snap +3 -3
  72. package/src/postgres/entities.ts +65 -12
  73. package/src/postgres/import/generator.ts +7 -1
  74. package/src/postgres/row-types.ts +111 -0
  75. package/src/postgres.ts +10 -0
  76. package/src/sql-types-command.ts +99 -0
  77. package/src/sql-types-staleness.test.ts +110 -0
  78. package/src/sql-types.test.ts +132 -0
  79. package/src/sql-types.ts +352 -0
  80. package/src/typecheck.test.ts +12 -3
  81. 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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sql",
3
- "version": "0.122.0",
3
+ "version": "0.123.0",
4
4
  "chantVersion": ">=0.1.0",
5
5
  "namespace": "SQL",
6
6
  "intrinsics": [],
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
- /** A table or a view: something with columns that SQL can reference. */
416
- export interface PostgresRelation extends PostgresObject {
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: Readonly<Record<string, AttrRef>>;
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
- /** `` table`CREATE TABLE ...` ``: one Postgres table with its columns and constraints, parsed at build time. */
492
- export declare function table(strings: TemplateStringsArray, ...values: unknown[]): PostgresTable;
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
- /** `` view`CREATE [MATERIALIZED] VIEW ...` ``: one view or materialized view, with what it reads and its column lineage. */
496
- export declare function view(strings: TemplateStringsArray, ...values: unknown[]): PostgresView;
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;AAEH,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;AAQD,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"}
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/lifecycle/gate-ledger").PendingGateRecord[];
19
- resolved: import("@intentius/chant/lifecycle/gate-ledger").GateResolutionRecord[];
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;;;MAA0B;IAE9B,WAAW,IAAI,IAAI;CAcpB;AAED,2CAA2C;AAC3C,eAAO,MAAM,UAAU,GAAI,GAAG,WAAW,EAAE,MAAM,MAAM,KAAG,OAAyF,CAAC"}
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"}
@@ -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";
@@ -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,GACjB,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"}
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
- const objects = postgresObjects(ctx);
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: targetMajor(ctx),
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
+ }