@typesql/core 0.7.5 → 0.8.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/CHANGELOG.md +18 -0
- package/README.md +10 -12
- package/dist/adapter.d.ts +0 -4
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +0 -4
- package/dist/adapter.js.map +1 -1
- package/dist/cache/dialect.d.ts +17 -0
- package/dist/cache/dialect.d.ts.map +1 -0
- package/dist/cache/dialect.js +2 -0
- package/dist/cache/dialect.js.map +1 -0
- package/dist/cache/dialects.d.ts +4 -0
- package/dist/cache/dialects.d.ts.map +1 -0
- package/dist/cache/dialects.js +4 -0
- package/dist/cache/dialects.js.map +1 -0
- package/dist/cache/discover.d.ts +2 -13
- package/dist/cache/discover.d.ts.map +1 -1
- package/dist/cache/discover.js +13 -42
- package/dist/cache/discover.js.map +1 -1
- package/dist/cache/evaluate.d.ts +4 -9
- package/dist/cache/evaluate.d.ts.map +1 -1
- package/dist/cache/evaluate.js +7 -17
- package/dist/cache/evaluate.js.map +1 -1
- package/dist/cache/format.d.ts +5 -31
- package/dist/cache/format.d.ts.map +1 -1
- package/dist/cache/format.js +11 -23
- package/dist/cache/format.js.map +1 -1
- package/dist/cache/job.d.ts +2 -20
- package/dist/cache/job.d.ts.map +1 -1
- package/dist/cache/job.js +22 -74
- package/dist/cache/job.js.map +1 -1
- package/dist/cache/mapper.d.ts +3 -7
- package/dist/cache/mapper.d.ts.map +1 -1
- package/dist/cache/mapper.js +23 -26
- package/dist/cache/mapper.js.map +1 -1
- package/dist/cache/print.d.ts +1 -30
- package/dist/cache/print.d.ts.map +1 -1
- package/dist/cache/print.js +1 -36
- package/dist/cache/print.js.map +1 -1
- package/dist/cache/rpc.d.ts +0 -7
- package/dist/cache/rpc.d.ts.map +1 -1
- package/dist/cache/rpc.js +0 -8
- package/dist/cache/rpc.js.map +1 -1
- package/dist/cache/scan.d.ts +0 -8
- package/dist/cache/scan.d.ts.map +1 -1
- package/dist/cache/scan.js +0 -3
- package/dist/cache/scan.js.map +1 -1
- package/dist/cache/store.d.ts +1 -10
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +9 -30
- package/dist/cache/store.js.map +1 -1
- package/dist/create-sql.d.ts +12 -358
- package/dist/create-sql.d.ts.map +1 -1
- package/dist/create-sql.js +5 -58
- package/dist/create-sql.js.map +1 -1
- package/dist/dialect.d.ts +31 -0
- package/dist/dialect.d.ts.map +1 -0
- package/dist/dialect.js +2 -0
- package/dist/dialect.js.map +1 -0
- package/dist/errors.d.ts +14 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +8 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/memo.d.ts +2 -0
- package/dist/memo.d.ts.map +1 -0
- package/dist/memo.js +14 -0
- package/dist/memo.js.map +1 -0
- package/dist/migrations.d.ts +8 -53
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +1 -36
- package/dist/migrations.js.map +1 -1
- package/dist/postgres/cache-dialect.d.ts +3 -0
- package/dist/postgres/cache-dialect.d.ts.map +1 -0
- package/dist/postgres/cache-dialect.js +26 -0
- package/dist/postgres/cache-dialect.js.map +1 -0
- package/dist/postgres/dialect.d.ts +32 -0
- package/dist/postgres/dialect.d.ts.map +1 -0
- package/dist/postgres/dialect.js +4 -0
- package/dist/postgres/dialect.js.map +1 -0
- package/dist/{engine → postgres/engine}/ast.d.ts +5 -160
- package/dist/postgres/engine/ast.d.ts.map +1 -0
- package/dist/postgres/engine/ast.js +2 -0
- package/dist/postgres/engine/ast.js.map +1 -0
- package/dist/{engine → postgres/engine}/binder/clauses.d.ts +1 -64
- package/dist/postgres/engine/binder/clauses.d.ts.map +1 -0
- package/dist/postgres/engine/binder/clauses.js.map +1 -0
- package/dist/{engine → postgres/engine}/binder/from.d.ts +1 -75
- package/dist/postgres/engine/binder/from.d.ts.map +1 -0
- package/dist/postgres/engine/binder/from.js.map +1 -0
- package/dist/{engine → postgres/engine}/binder/narrow.d.ts +0 -29
- package/dist/postgres/engine/binder/narrow.d.ts.map +1 -0
- package/dist/postgres/engine/binder/narrow.js.map +1 -0
- package/dist/{engine → postgres/engine}/binder/resolve.d.ts +2 -31
- package/dist/postgres/engine/binder/resolve.d.ts.map +1 -0
- package/dist/postgres/engine/binder/resolve.js.map +1 -0
- package/dist/postgres/engine/cache.d.ts +156 -0
- package/dist/postgres/engine/cache.d.ts.map +1 -0
- package/dist/{engine → postgres/engine}/cache.js.map +1 -1
- package/dist/postgres/engine/carried.d.ts +39 -0
- package/dist/postgres/engine/carried.d.ts.map +1 -0
- package/dist/postgres/engine/carried.js +2 -0
- package/dist/postgres/engine/carried.js.map +1 -0
- package/dist/postgres/engine/ddl/alter-table.d.ts +85 -0
- package/dist/postgres/engine/ddl/alter-table.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/alter-table.js +2 -0
- package/dist/postgres/engine/ddl/alter-table.js.map +1 -0
- package/dist/postgres/engine/ddl/apply.d.ts +90 -0
- package/dist/postgres/engine/ddl/apply.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/apply.js.map +1 -0
- package/dist/postgres/engine/ddl/column.d.ts +38 -0
- package/dist/postgres/engine/ddl/column.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/column.js.map +1 -0
- package/dist/postgres/engine/ddl/create-table.d.ts +61 -0
- package/dist/postgres/engine/ddl/create-table.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/create-table.js +2 -0
- package/dist/postgres/engine/ddl/create-table.js.map +1 -0
- package/dist/postgres/engine/ddl/object.d.ts +28 -0
- package/dist/postgres/engine/ddl/object.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/object.js +2 -0
- package/dist/postgres/engine/ddl/object.js.map +1 -0
- package/dist/postgres/engine/ddl/query.d.ts +32 -0
- package/dist/postgres/engine/ddl/query.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/query.js +2 -0
- package/dist/postgres/engine/ddl/query.js.map +1 -0
- package/dist/postgres/engine/ddl/registry.d.ts +66 -0
- package/dist/postgres/engine/ddl/registry.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/registry.js +2 -0
- package/dist/postgres/engine/ddl/registry.js.map +1 -0
- package/dist/postgres/engine/ddl/relation.d.ts +35 -0
- package/dist/postgres/engine/ddl/relation.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/relation.js +2 -0
- package/dist/postgres/engine/ddl/relation.js.map +1 -0
- package/dist/postgres/engine/ddl/schema.d.ts +56 -0
- package/dist/postgres/engine/ddl/schema.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/schema.js +2 -0
- package/dist/postgres/engine/ddl/schema.js.map +1 -0
- package/dist/postgres/engine/ddl/script.d.ts +25 -0
- package/dist/postgres/engine/ddl/script.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/script.js +2 -0
- package/dist/postgres/engine/ddl/script.js.map +1 -0
- package/dist/postgres/engine/ddl/view.d.ts +12 -0
- package/dist/postgres/engine/ddl/view.d.ts.map +1 -0
- package/dist/postgres/engine/ddl/view.js +2 -0
- package/dist/postgres/engine/ddl/view.js.map +1 -0
- package/dist/postgres/engine/diagnostics.d.ts +29 -0
- package/dist/postgres/engine/diagnostics.d.ts.map +1 -0
- package/dist/postgres/engine/diagnostics.js +2 -0
- package/dist/postgres/engine/diagnostics.js.map +1 -0
- package/dist/{engine → postgres/engine}/index.d.ts +8 -16
- package/dist/postgres/engine/index.d.ts.map +1 -0
- package/dist/{schema → postgres/engine}/index.js.map +1 -1
- package/dist/postgres/engine/infer.d.ts +93 -0
- package/dist/postgres/engine/infer.d.ts.map +1 -0
- package/dist/{engine → postgres/engine}/infer.js.map +1 -1
- package/dist/{engine → postgres/engine}/json.d.ts +3 -83
- package/dist/postgres/engine/json.d.ts.map +1 -0
- package/dist/{engine → postgres/engine}/json.js.map +1 -1
- package/dist/{engine → postgres/engine}/lexer/chars.d.ts +0 -7
- package/dist/postgres/engine/lexer/chars.d.ts.map +1 -0
- package/dist/postgres/engine/lexer/chars.js.map +1 -0
- package/dist/{engine → postgres/engine}/lexer/lex.d.ts +2 -90
- package/dist/postgres/engine/lexer/lex.d.ts.map +1 -0
- package/dist/postgres/engine/lexer/lex.js.map +1 -0
- package/dist/postgres/engine/lexer/tokens.d.ts +30 -0
- package/dist/postgres/engine/lexer/tokens.d.ts.map +1 -0
- package/dist/postgres/engine/lexer/tokens.js.map +1 -0
- package/dist/{engine → postgres/engine}/lexer/unicode.d.ts +0 -46
- package/dist/postgres/engine/lexer/unicode.d.ts.map +1 -0
- package/dist/postgres/engine/lexer/unicode.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/ddl.d.ts +0 -149
- package/dist/postgres/engine/parser/ddl.d.ts.map +1 -0
- package/dist/postgres/engine/parser/ddl.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/dml.d.ts +0 -54
- package/dist/postgres/engine/parser/dml.d.ts.map +1 -0
- package/dist/postgres/engine/parser/dml.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/expr.d.ts +0 -157
- package/dist/postgres/engine/parser/expr.d.ts.map +1 -0
- package/dist/postgres/engine/parser/expr.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/fast.d.ts +0 -6
- package/dist/postgres/engine/parser/fast.d.ts.map +1 -0
- package/dist/postgres/engine/parser/fast.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/json.d.ts +0 -72
- package/dist/postgres/engine/parser/json.d.ts.map +1 -0
- package/dist/postgres/engine/parser/json.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/keywords.d.ts +0 -15
- package/dist/postgres/engine/parser/keywords.d.ts.map +1 -0
- package/dist/postgres/engine/parser/keywords.js +2 -0
- package/dist/postgres/engine/parser/keywords.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/merge.d.ts +0 -22
- package/dist/postgres/engine/parser/merge.d.ts.map +1 -0
- package/dist/postgres/engine/parser/merge.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/select.d.ts +0 -138
- package/dist/postgres/engine/parser/select.d.ts.map +1 -0
- package/dist/postgres/engine/parser/select.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/stmt.d.ts +0 -15
- package/dist/postgres/engine/parser/stmt.d.ts.map +1 -0
- package/dist/postgres/engine/parser/stmt.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/typename.d.ts +0 -37
- package/dist/postgres/engine/parser/typename.d.ts.map +1 -0
- package/dist/postgres/engine/parser/typename.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/util.d.ts +2 -42
- package/dist/postgres/engine/parser/util.d.ts.map +1 -0
- package/dist/postgres/engine/parser/util.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/utility.d.ts +1 -25
- package/dist/postgres/engine/parser/utility.d.ts.map +1 -0
- package/dist/postgres/engine/parser/utility.js.map +1 -0
- package/dist/{engine → postgres/engine}/parser/xml.d.ts +0 -42
- package/dist/postgres/engine/parser/xml.d.ts.map +1 -0
- package/dist/postgres/engine/parser/xml.js.map +1 -0
- package/dist/{engine → postgres/engine}/project/dml.d.ts +2 -134
- package/dist/postgres/engine/project/dml.d.ts.map +1 -0
- package/dist/postgres/engine/project/dml.js.map +1 -0
- package/dist/{engine → postgres/engine}/project/merge.d.ts +2 -35
- package/dist/postgres/engine/project/merge.d.ts.map +1 -0
- package/dist/postgres/engine/project/merge.js.map +1 -0
- package/dist/{engine → postgres/engine}/project/naming.d.ts +0 -28
- package/dist/postgres/engine/project/naming.d.ts.map +1 -0
- package/dist/postgres/engine/project/naming.js.map +1 -0
- package/dist/{engine → postgres/engine}/project/select.d.ts +1 -86
- package/dist/postgres/engine/project/select.d.ts.map +1 -0
- package/dist/postgres/engine/project/select.js.map +1 -0
- package/dist/{engine → postgres/engine}/project/stmt.d.ts +1 -8
- package/dist/postgres/engine/project/stmt.d.ts.map +1 -0
- package/dist/postgres/engine/project/stmt.js.map +1 -0
- package/dist/postgres/engine/shape.d.ts +22 -0
- package/dist/postgres/engine/shape.d.ts.map +1 -0
- package/dist/{engine → postgres/engine}/shape.js.map +1 -1
- package/dist/{engine → postgres/engine}/suggest.d.ts +0 -19
- package/dist/postgres/engine/suggest.d.ts.map +1 -0
- package/dist/{engine → postgres/engine}/suggest.js.map +1 -1
- package/dist/{engine → postgres/engine}/typer/catalog.d.ts +1 -126
- package/dist/postgres/engine/typer/catalog.d.ts.map +1 -0
- package/dist/postgres/engine/typer/catalog.js.map +1 -0
- package/dist/{engine → postgres/engine}/typer/operators.d.ts +0 -107
- package/dist/postgres/engine/typer/operators.d.ts.map +1 -0
- package/dist/postgres/engine/typer/operators.js.map +1 -0
- package/dist/{engine → postgres/engine}/typer/params.d.ts +0 -78
- package/dist/postgres/engine/typer/params.d.ts.map +1 -0
- package/dist/postgres/engine/typer/params.js.map +1 -0
- package/dist/{engine → postgres/engine}/typer/pg-functions.d.ts +0 -9
- package/dist/postgres/engine/typer/pg-functions.d.ts.map +1 -0
- package/dist/postgres/engine/typer/pg-functions.js.map +1 -0
- package/dist/{engine → postgres/engine}/typer/sqljson.d.ts +1 -44
- package/dist/postgres/engine/typer/sqljson.d.ts.map +1 -0
- package/dist/postgres/engine/typer/sqljson.js.map +1 -0
- package/dist/{engine → postgres/engine}/typer/typeof.d.ts +2 -108
- package/dist/postgres/engine/typer/typeof.d.ts.map +1 -0
- package/dist/postgres/engine/typer/typeof.js.map +1 -0
- package/dist/{engine → postgres/engine}/typer/xml.d.ts +1 -30
- package/dist/postgres/engine/typer/xml.d.ts.map +1 -0
- package/dist/postgres/engine/typer/xml.js.map +1 -0
- package/dist/{engine → postgres/engine}/types.d.ts +0 -36
- package/dist/postgres/engine/types.d.ts.map +1 -0
- package/dist/postgres/engine/types.js +2 -0
- package/dist/postgres/engine/types.js.map +1 -0
- package/dist/postgres/engine/write.d.ts +36 -0
- package/dist/postgres/engine/write.d.ts.map +1 -0
- package/dist/postgres/engine/write.js.map +1 -0
- package/dist/postgres/index.d.ts +9 -0
- package/dist/postgres/index.d.ts.map +1 -0
- package/dist/postgres/index.js +3 -0
- package/dist/postgres/index.js.map +1 -0
- package/dist/postgres/migrations.d.ts +8 -0
- package/dist/postgres/migrations.d.ts.map +1 -0
- package/dist/postgres/migrations.js +5 -0
- package/dist/postgres/migrations.js.map +1 -0
- package/dist/postgres/schema/column.d.ts +10 -0
- package/dist/postgres/schema/column.d.ts.map +1 -0
- package/dist/postgres/schema/column.js +2 -0
- package/dist/{schema → postgres/schema}/column.js.map +1 -1
- package/dist/postgres/schema/index.d.ts +6 -0
- package/dist/postgres/schema/index.d.ts.map +1 -0
- package/dist/{type-map → postgres/schema}/index.js.map +1 -1
- package/dist/{schema → postgres/schema}/normalize.d.ts +0 -9
- package/dist/postgres/schema/normalize.d.ts.map +1 -0
- package/dist/postgres/schema/normalize.js.map +1 -0
- package/dist/{schema → postgres/schema}/pg-catalog.d.ts +1 -70
- package/dist/postgres/schema/pg-catalog.d.ts.map +1 -0
- package/dist/postgres/schema/pg-catalog.js.map +1 -0
- package/dist/postgres/schema/pg-types.d.ts +8 -0
- package/dist/postgres/schema/pg-types.d.ts.map +1 -0
- package/dist/postgres/schema/pg-types.js.map +1 -0
- package/dist/postgres/sql/call.d.ts +78 -0
- package/dist/postgres/sql/call.d.ts.map +1 -0
- package/dist/postgres/sql/call.js +2 -0
- package/dist/postgres/sql/call.js.map +1 -0
- package/dist/postgres/sql/types.d.ts +38 -0
- package/dist/postgres/sql/types.d.ts.map +1 -0
- package/dist/postgres/sql/types.js +2 -0
- package/dist/{engine → postgres/sql}/types.js.map +1 -1
- package/dist/{type-map → postgres/type-map}/index.d.ts +1 -40
- package/dist/postgres/type-map/index.d.ts.map +1 -0
- package/dist/postgres/type-map/index.js +2 -0
- package/dist/{engine → postgres/type-map}/index.js.map +1 -1
- package/dist/query.d.ts +0 -47
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +0 -23
- package/dist/query.js.map +1 -1
- package/dist/row-keys.d.ts +0 -22
- package/dist/row-keys.d.ts.map +1 -1
- package/dist/row-keys.js +1 -9
- package/dist/row-keys.js.map +1 -1
- package/dist/runtime/build.d.ts +6 -0
- package/dist/runtime/build.d.ts.map +1 -0
- package/dist/runtime/build.js +55 -0
- package/dist/runtime/build.js.map +1 -0
- package/dist/runtime/inline.d.ts +1 -14
- package/dist/runtime/inline.d.ts.map +1 -1
- package/dist/runtime/inline.js +0 -29
- package/dist/runtime/inline.js.map +1 -1
- package/dist/runtime/json.d.ts +1 -13
- package/dist/runtime/json.d.ts.map +1 -1
- package/dist/runtime/json.js +0 -12
- package/dist/runtime/json.js.map +1 -1
- package/dist/runtime/splice.d.ts +0 -32
- package/dist/runtime/splice.d.ts.map +1 -1
- package/dist/runtime/splice.js +1 -56
- package/dist/runtime/splice.js.map +1 -1
- package/dist/runtime/write.d.ts +0 -6
- package/dist/runtime/write.d.ts.map +1 -1
- package/dist/runtime/write.js +0 -11
- package/dist/runtime/write.js.map +1 -1
- package/dist/schema.d.ts +49 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +2 -0
- package/dist/schema.js.map +1 -0
- package/dist/sql/fragment.d.ts +74 -0
- package/dist/sql/fragment.d.ts.map +1 -0
- package/dist/sql/fragment.js +2 -0
- package/dist/sql/fragment.js.map +1 -0
- package/dist/sql/inline.d.ts +60 -0
- package/dist/sql/inline.d.ts.map +1 -0
- package/dist/{engine → sql}/inline.js.map +1 -1
- package/dist/{engine → sql}/named.d.ts +1 -32
- package/dist/sql/named.d.ts.map +1 -0
- package/dist/{engine → sql}/named.js.map +1 -1
- package/dist/{engine/lexer → sql}/next.d.ts +0 -12
- package/dist/sql/next.d.ts.map +1 -0
- package/dist/{engine/lexer → sql}/next.js.map +1 -1
- package/dist/sql/slots.d.ts +22 -0
- package/dist/sql/slots.d.ts.map +1 -0
- package/dist/sql/slots.js +2 -0
- package/dist/sql/slots.js.map +1 -0
- package/dist/{engine → sql}/splice.d.ts +1 -32
- package/dist/sql/splice.d.ts.map +1 -0
- package/dist/{engine → sql}/splice.js.map +1 -1
- package/dist/sql/text.d.ts +15 -0
- package/dist/sql/text.d.ts.map +1 -0
- package/dist/sql/text.js +2 -0
- package/dist/sql/text.js.map +1 -0
- package/dist/sql/write.d.ts +28 -0
- package/dist/sql/write.d.ts.map +1 -0
- package/dist/sql/write.js +2 -0
- package/dist/{engine → sql}/write.js.map +1 -1
- package/dist/transaction.d.ts +4 -31
- package/dist/transaction.d.ts.map +1 -1
- package/dist/transaction.js +4 -19
- package/dist/transaction.js.map +1 -1
- package/package.json +9 -6
- package/src/adapter.ts +0 -5
- package/src/cache/dialect.ts +12 -0
- package/src/cache/dialects.ts +7 -0
- package/src/cache/discover.ts +15 -49
- package/src/cache/evaluate.ts +9 -17
- package/src/cache/format.ts +17 -41
- package/src/cache/job.ts +33 -78
- package/src/cache/mapper.ts +25 -36
- package/src/cache/print.ts +2 -39
- package/src/cache/rpc.ts +0 -9
- package/src/cache/scan.ts +0 -10
- package/src/cache/store.ts +13 -31
- package/src/create-sql.ts +25 -829
- package/src/dialect.ts +46 -0
- package/src/errors.ts +14 -0
- package/src/index.ts +32 -24
- package/src/memo.ts +15 -0
- package/src/migrations.ts +12 -72
- package/src/postgres/cache-dialect.ts +28 -0
- package/src/postgres/dialect.ts +47 -0
- package/src/{engine → postgres/engine}/ast.ts +0 -163
- package/src/{engine → postgres/engine}/binder/clauses.ts +3 -75
- package/src/{engine → postgres/engine}/binder/from.ts +1 -84
- package/src/{engine → postgres/engine}/binder/narrow.ts +0 -31
- package/src/{engine → postgres/engine}/binder/resolve.ts +3 -35
- package/src/postgres/engine/cache.ts +297 -0
- package/src/postgres/engine/carried.ts +104 -0
- package/src/postgres/engine/ddl/alter-table.ts +252 -0
- package/src/postgres/engine/ddl/apply.ts +149 -0
- package/src/postgres/engine/ddl/column.ts +71 -0
- package/src/postgres/engine/ddl/create-table.ts +249 -0
- package/src/postgres/engine/ddl/object.ts +47 -0
- package/src/postgres/engine/ddl/query.ts +67 -0
- package/src/postgres/engine/ddl/registry.ts +182 -0
- package/src/postgres/engine/ddl/relation.ts +139 -0
- package/src/postgres/engine/ddl/schema.ts +125 -0
- package/src/postgres/engine/ddl/script.ts +89 -0
- package/src/postgres/engine/ddl/view.ts +71 -0
- package/src/postgres/engine/diagnostics.ts +124 -0
- package/src/{engine → postgres/engine}/index.ts +26 -42
- package/src/postgres/engine/infer.ts +210 -0
- package/src/{engine → postgres/engine}/json.ts +4 -87
- package/src/{engine → postgres/engine}/lexer/chars.ts +0 -7
- package/src/{engine → postgres/engine}/lexer/lex.ts +8 -96
- package/src/postgres/engine/lexer/tokens.ts +30 -0
- package/src/{engine → postgres/engine}/lexer/unicode.ts +4 -51
- package/src/{engine → postgres/engine}/parser/ddl.ts +9 -179
- package/src/{engine → postgres/engine}/parser/dml.ts +0 -67
- package/src/{engine → postgres/engine}/parser/expr.ts +5 -172
- package/src/{engine → postgres/engine}/parser/fast.ts +0 -7
- package/src/{engine → postgres/engine}/parser/json.ts +7 -96
- package/src/{engine → postgres/engine}/parser/keywords.ts +0 -16
- package/src/{engine → postgres/engine}/parser/merge.ts +0 -22
- package/src/{engine → postgres/engine}/parser/select.ts +2 -151
- package/src/{engine → postgres/engine}/parser/stmt.ts +0 -15
- package/src/{engine → postgres/engine}/parser/typename.ts +1 -39
- package/src/{engine → postgres/engine}/parser/util.ts +2 -49
- package/src/{engine → postgres/engine}/parser/utility.ts +1 -31
- package/src/{engine → postgres/engine}/parser/xml.ts +0 -48
- package/src/{engine → postgres/engine}/project/dml.ts +5 -153
- package/src/{engine → postgres/engine}/project/merge.ts +2 -37
- package/src/{engine → postgres/engine}/project/naming.ts +0 -28
- package/src/{engine → postgres/engine}/project/select.ts +1 -98
- package/src/{engine → postgres/engine}/project/stmt.ts +1 -8
- package/src/postgres/engine/shape.ts +42 -0
- package/src/{engine → postgres/engine}/suggest.ts +0 -25
- package/src/{engine → postgres/engine}/typer/catalog.ts +2 -153
- package/src/{engine → postgres/engine}/typer/operators.ts +1 -110
- package/src/{engine → postgres/engine}/typer/params.ts +4 -95
- package/src/{engine → postgres/engine}/typer/pg-functions.ts +0 -9
- package/src/{engine → postgres/engine}/typer/sqljson.ts +1 -48
- package/src/{engine → postgres/engine}/typer/typeof.ts +4 -117
- package/src/{engine → postgres/engine}/typer/xml.ts +1 -34
- package/src/{engine → postgres/engine}/types.ts +0 -38
- package/src/postgres/engine/write.ts +76 -0
- package/src/postgres/index.ts +39 -0
- package/src/postgres/migrations.ts +21 -0
- package/src/postgres/schema/column.ts +28 -0
- package/src/{schema → postgres/schema}/index.ts +2 -4
- package/src/{schema → postgres/schema}/normalize.ts +0 -9
- package/src/{schema → postgres/schema}/pg-catalog.ts +1 -71
- package/src/postgres/schema/pg-types.ts +9 -0
- package/src/postgres/sql/call.ts +251 -0
- package/src/postgres/sql/types.ts +136 -0
- package/src/{type-map → postgres/type-map}/index.ts +1 -40
- package/src/query.ts +0 -50
- package/src/row-keys.ts +1 -24
- package/src/runtime/build.ts +68 -0
- package/src/runtime/inline.ts +1 -30
- package/src/runtime/json.ts +1 -13
- package/src/runtime/splice.ts +1 -59
- package/src/runtime/write.ts +0 -12
- package/src/schema.ts +44 -0
- package/src/sql/fragment.ts +180 -0
- package/src/sql/inline.ts +265 -0
- package/src/{engine → sql}/named.ts +2 -35
- package/src/sql/next.ts +4101 -0
- package/src/sql/slots.ts +27 -0
- package/src/{engine → sql}/splice.ts +1 -32
- package/src/sql/text.ts +44 -0
- package/src/sql/write.ts +73 -0
- package/src/transaction.ts +23 -42
- package/dist/engine/ast.d.ts.map +0 -1
- package/dist/engine/ast.js +0 -12
- package/dist/engine/ast.js.map +0 -1
- package/dist/engine/binder/clauses.d.ts.map +0 -1
- package/dist/engine/binder/clauses.js.map +0 -1
- package/dist/engine/binder/from.d.ts.map +0 -1
- package/dist/engine/binder/from.js.map +0 -1
- package/dist/engine/binder/narrow.d.ts.map +0 -1
- package/dist/engine/binder/narrow.js.map +0 -1
- package/dist/engine/binder/resolve.d.ts.map +0 -1
- package/dist/engine/binder/resolve.js.map +0 -1
- package/dist/engine/cache.d.ts +0 -278
- package/dist/engine/cache.d.ts.map +0 -1
- package/dist/engine/ddl/apply.d.ts +0 -564
- package/dist/engine/ddl/apply.d.ts.map +0 -1
- package/dist/engine/ddl/apply.js.map +0 -1
- package/dist/engine/errors.d.ts +0 -31
- package/dist/engine/errors.d.ts.map +0 -1
- package/dist/engine/errors.js.map +0 -1
- package/dist/engine/index.d.ts.map +0 -1
- package/dist/engine/index.js +0 -8
- package/dist/engine/infer.d.ts +0 -198
- package/dist/engine/infer.d.ts.map +0 -1
- package/dist/engine/inline.d.ts +0 -170
- package/dist/engine/inline.d.ts.map +0 -1
- package/dist/engine/json.d.ts.map +0 -1
- package/dist/engine/lexer/chars.d.ts.map +0 -1
- package/dist/engine/lexer/chars.js.map +0 -1
- package/dist/engine/lexer/lex.d.ts.map +0 -1
- package/dist/engine/lexer/lex.js.map +0 -1
- package/dist/engine/lexer/next.d.ts.map +0 -1
- package/dist/engine/lexer/tokens.d.ts +0 -45
- package/dist/engine/lexer/tokens.d.ts.map +0 -1
- package/dist/engine/lexer/tokens.js.map +0 -1
- package/dist/engine/lexer/unicode.d.ts.map +0 -1
- package/dist/engine/lexer/unicode.js.map +0 -1
- package/dist/engine/named.d.ts.map +0 -1
- package/dist/engine/parser/ddl.d.ts.map +0 -1
- package/dist/engine/parser/ddl.js.map +0 -1
- package/dist/engine/parser/dml.d.ts.map +0 -1
- package/dist/engine/parser/dml.js.map +0 -1
- package/dist/engine/parser/expr.d.ts.map +0 -1
- package/dist/engine/parser/expr.js.map +0 -1
- package/dist/engine/parser/fast.d.ts.map +0 -1
- package/dist/engine/parser/fast.js.map +0 -1
- package/dist/engine/parser/json.d.ts.map +0 -1
- package/dist/engine/parser/json.js.map +0 -1
- package/dist/engine/parser/keywords.d.ts.map +0 -1
- package/dist/engine/parser/keywords.js +0 -7
- package/dist/engine/parser/keywords.js.map +0 -1
- package/dist/engine/parser/merge.d.ts.map +0 -1
- package/dist/engine/parser/merge.js.map +0 -1
- package/dist/engine/parser/select.d.ts.map +0 -1
- package/dist/engine/parser/select.js.map +0 -1
- package/dist/engine/parser/stmt.d.ts.map +0 -1
- package/dist/engine/parser/stmt.js.map +0 -1
- package/dist/engine/parser/typename.d.ts.map +0 -1
- package/dist/engine/parser/typename.js.map +0 -1
- package/dist/engine/parser/util.d.ts.map +0 -1
- package/dist/engine/parser/util.js.map +0 -1
- package/dist/engine/parser/utility.d.ts.map +0 -1
- package/dist/engine/parser/utility.js.map +0 -1
- package/dist/engine/parser/xml.d.ts.map +0 -1
- package/dist/engine/parser/xml.js.map +0 -1
- package/dist/engine/project/dml.d.ts.map +0 -1
- package/dist/engine/project/dml.js.map +0 -1
- package/dist/engine/project/merge.d.ts.map +0 -1
- package/dist/engine/project/merge.js.map +0 -1
- package/dist/engine/project/naming.d.ts.map +0 -1
- package/dist/engine/project/naming.js.map +0 -1
- package/dist/engine/project/select.d.ts.map +0 -1
- package/dist/engine/project/select.js.map +0 -1
- package/dist/engine/project/stmt.d.ts.map +0 -1
- package/dist/engine/project/stmt.js.map +0 -1
- package/dist/engine/shape.d.ts +0 -50
- package/dist/engine/shape.d.ts.map +0 -1
- package/dist/engine/splice.d.ts.map +0 -1
- package/dist/engine/suggest.d.ts.map +0 -1
- package/dist/engine/typer/catalog.d.ts.map +0 -1
- package/dist/engine/typer/catalog.js.map +0 -1
- package/dist/engine/typer/operators.d.ts.map +0 -1
- package/dist/engine/typer/operators.js.map +0 -1
- package/dist/engine/typer/params.d.ts.map +0 -1
- package/dist/engine/typer/params.js.map +0 -1
- package/dist/engine/typer/pg-functions.d.ts.map +0 -1
- package/dist/engine/typer/pg-functions.js.map +0 -1
- package/dist/engine/typer/sqljson.d.ts.map +0 -1
- package/dist/engine/typer/sqljson.js.map +0 -1
- package/dist/engine/typer/typeof.d.ts.map +0 -1
- package/dist/engine/typer/typeof.js.map +0 -1
- package/dist/engine/typer/xml.d.ts.map +0 -1
- package/dist/engine/typer/xml.js.map +0 -1
- package/dist/engine/types.d.ts.map +0 -1
- package/dist/engine/types.js +0 -5
- package/dist/engine/write.d.ts +0 -93
- package/dist/engine/write.d.ts.map +0 -1
- package/dist/schema/column.d.ts +0 -76
- package/dist/schema/column.d.ts.map +0 -1
- package/dist/schema/index.d.ts +0 -5
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/normalize.d.ts.map +0 -1
- package/dist/schema/normalize.js.map +0 -1
- package/dist/schema/pg-catalog.d.ts.map +0 -1
- package/dist/schema/pg-catalog.js.map +0 -1
- package/dist/schema/pg-types.d.ts +0 -11
- package/dist/schema/pg-types.d.ts.map +0 -1
- package/dist/schema/pg-types.js.map +0 -1
- package/dist/type-map/index.d.ts.map +0 -1
- package/src/engine/cache.ts +0 -426
- package/src/engine/ddl/apply.ts +0 -1373
- package/src/engine/errors.ts +0 -31
- package/src/engine/infer.ts +0 -398
- package/src/engine/inline.ts +0 -450
- package/src/engine/lexer/next.ts +0 -4113
- package/src/engine/lexer/tokens.ts +0 -45
- package/src/engine/shape.ts +0 -67
- package/src/engine/write.ts +0 -181
- package/src/schema/column.ts +0 -90
- package/src/schema/pg-types.ts +0 -12
- /package/dist/{engine/errors.js → errors.js} +0 -0
- /package/dist/{engine → postgres/engine}/binder/clauses.js +0 -0
- /package/dist/{engine → postgres/engine}/binder/from.js +0 -0
- /package/dist/{engine → postgres/engine}/binder/narrow.js +0 -0
- /package/dist/{engine → postgres/engine}/binder/resolve.js +0 -0
- /package/dist/{engine → postgres/engine}/cache.js +0 -0
- /package/dist/{engine → postgres/engine}/ddl/apply.js +0 -0
- /package/dist/{schema → postgres/engine/ddl}/column.js +0 -0
- /package/dist/{schema → postgres/engine}/index.js +0 -0
- /package/dist/{engine → postgres/engine}/infer.js +0 -0
- /package/dist/{engine → postgres/engine}/json.js +0 -0
- /package/dist/{engine → postgres/engine}/lexer/chars.js +0 -0
- /package/dist/{engine → postgres/engine}/lexer/lex.js +0 -0
- /package/dist/{engine → postgres/engine}/lexer/tokens.js +0 -0
- /package/dist/{engine → postgres/engine}/lexer/unicode.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/ddl.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/dml.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/expr.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/fast.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/json.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/merge.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/select.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/stmt.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/typename.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/util.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/utility.js +0 -0
- /package/dist/{engine → postgres/engine}/parser/xml.js +0 -0
- /package/dist/{engine → postgres/engine}/project/dml.js +0 -0
- /package/dist/{engine → postgres/engine}/project/merge.js +0 -0
- /package/dist/{engine → postgres/engine}/project/naming.js +0 -0
- /package/dist/{engine → postgres/engine}/project/select.js +0 -0
- /package/dist/{engine → postgres/engine}/project/stmt.js +0 -0
- /package/dist/{engine → postgres/engine}/shape.js +0 -0
- /package/dist/{engine → postgres/engine}/suggest.js +0 -0
- /package/dist/{engine → postgres/engine}/typer/catalog.js +0 -0
- /package/dist/{engine → postgres/engine}/typer/operators.js +0 -0
- /package/dist/{engine → postgres/engine}/typer/params.js +0 -0
- /package/dist/{engine → postgres/engine}/typer/pg-functions.js +0 -0
- /package/dist/{engine → postgres/engine}/typer/sqljson.js +0 -0
- /package/dist/{engine → postgres/engine}/typer/typeof.js +0 -0
- /package/dist/{engine → postgres/engine}/typer/xml.js +0 -0
- /package/dist/{engine → postgres/engine}/write.js +0 -0
- /package/dist/{type-map → postgres/schema}/index.js +0 -0
- /package/dist/{schema → postgres/schema}/normalize.js +0 -0
- /package/dist/{schema → postgres/schema}/pg-catalog.js +0 -0
- /package/dist/{schema → postgres/schema}/pg-types.js +0 -0
- /package/dist/{engine → sql}/inline.js +0 -0
- /package/dist/{engine → sql}/named.js +0 -0
- /package/dist/{engine/lexer → sql}/next.js +0 -0
- /package/dist/{engine → sql}/splice.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @typesql/core
|
|
2
2
|
|
|
3
|
+
## 0.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Breaking: TypeSQL is split into a dialect-neutral core and a PostgreSQL dialect. `@typesql/core` keeps what dialects share (`createSql`, queries, fragments, executors, row keys, transactions, migrations, the schema markers `Col`, `Nullable`, `Generated`, `View`, … and the type cache) and adds a dialect contract. PostgreSQL moves to `@typesql/core/postgres`: create a `sql` with `createSql<DB>(postgres, executor?)`, import `Json`, `PgCatalog`, `migrations()`, type maps and the function catalog from `@typesql/core/postgres` (which also re-exports the schema markers), and the engine types from `@typesql/core/postgres/engine` (was `@typesql/core/engine`). The Kysely, Drizzle and Prisma packages take the dialect the same way and read the schema from the client's type: `createSql(postgres, db)` (`createSql<DB>(postgres, db)` still picks a schema explicitly). `typesql introspect` and the Prisma generator import the column helpers from `@typesql/core/postgres` by default.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- The README describes TypeSQL as a SQL library rather than a PostgreSQL-only one.
|
|
12
|
+
|
|
13
|
+
## 0.7.6
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Validate packages against PostgreSQL behavior and built outputs instead of hand-written test suites.
|
|
18
|
+
|
|
19
|
+
- Reorganize core internals and remove source comments and inline API documentation without changing SQL behavior.
|
|
20
|
+
|
|
3
21
|
## 0.7.5
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @typesql/core
|
|
2
2
|
|
|
3
|
-
Write
|
|
3
|
+
Write SQL in TypeScript and get exact types for rows and parameters. TypeSQL parses your SQL inside the type checker: no codegen, no database connection, no build step.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -12,16 +12,17 @@ Requires TypeScript 7.1 or later.
|
|
|
12
12
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
|
-
Describe your tables with
|
|
15
|
+
Describe your tables with your database's type names, then write queries:
|
|
16
16
|
|
|
17
17
|
```ts
|
|
18
|
-
import { createSql
|
|
18
|
+
import { createSql } from "@typesql/core";
|
|
19
|
+
import { type Col, type Generated, type Nullable, postgres } from "@typesql/core/postgres";
|
|
19
20
|
|
|
20
21
|
interface DB {
|
|
21
22
|
users: {
|
|
22
|
-
id: Generated<"int4">;
|
|
23
|
-
email: Col<"text">;
|
|
24
|
-
display_name: Nullable<"text">;
|
|
23
|
+
id: Generated<"int4">;
|
|
24
|
+
email: Col<"text">;
|
|
25
|
+
display_name: Nullable<"text">;
|
|
25
26
|
};
|
|
26
27
|
posts: {
|
|
27
28
|
id: Generated<"int8">;
|
|
@@ -30,7 +31,7 @@ interface DB {
|
|
|
30
31
|
};
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
const sql = createSql<DB>();
|
|
34
|
+
const sql = createSql<DB>(postgres);
|
|
34
35
|
|
|
35
36
|
const query = sql(
|
|
36
37
|
`SELECT u.email, p.title
|
|
@@ -38,14 +39,11 @@ const query = sql(
|
|
|
38
39
|
WHERE u.id = $1`,
|
|
39
40
|
7,
|
|
40
41
|
);
|
|
41
|
-
// row: { email: string; title: string | null }
|
|
42
|
-
// params: [number | null]
|
|
43
42
|
|
|
44
43
|
sql("SELECT emial FROM users");
|
|
45
|
-
// error: column "emial" does not exist. Perhaps you meant the column "email"?
|
|
46
44
|
```
|
|
47
45
|
|
|
48
|
-
[Open the example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/
|
|
46
|
+
[Open the example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/JYWwDg9gTgLgBAbzgYygUwIYzQZQI4A2ANHDAJ5hpwAKGUGIAzgCoVonmVwBKEA7qy4BfOADMoEEHABEAAU5pGhAPTJoaaQG4AUKEixE2gJAK4AYQjFjpgOJoAdmnrYAJkWts4AOQCuBAhgARgTsxpCMMADm6IzuIuKSMvJsSgSq6srhUTFa2rr22FCiGMhUACIAQoZGPoxOjABc1UbALk12js5oLgA80sAFACzSAHw6RkZoIBjABE0WBH3YAB4wo+NGLsCMYAFkAPr2DGhNvv5BIUtoq+vGRqiYrvtY7Q5OWN1LoIowDGAwAC9bkYhOMso1mq1Xp0Pr1+gUABzAowYHwwAAW0H2UPMlj6AxgwzGdxgwBgIXmeOkKzWxImgQgLjIpz8AWCaCuNzpoO0QjyansETgqTgAF4UOgPvhFpURgAKLLRRQASh02gFQrwYuFhDlxgABjgAKIAGSNZmYcB8ADpWiQbVMZsQ4GBraTyWhtHBvT7fX6AGLcADyAFkrXUoIwrXAzf7LQApIMASS8LogESjYDgQdTrtRGKxrW1NtaXr95Z9AHUABJG7hGq22lzagAkAEZ9e4jAB2dyq7SmXh8bVDwQchQQURwPDE0y0ehMbXzhgsNg9CdTmdqjXwCJYKPi1J6oyG03my35zFQbFuFAQHwFOUAKmVJGmyzl7pCyrgAEEcHAATYEKgahmmGZwDYwYAKrUHAFQAJpwJehYuJ22j9qYOC-DAB48PwY7rmwk7CjhjDEuqECCvAjqzNq0gYC4GCyNcfwhNaaggLkO4So83TakeBopsa3CWimzBBuG9RwHKtEED+ABqv4mtBRoAXKLYIKk1pgHQDCydMszKkIP71sw0HcF4KY2HAdq8bCzwwOhmGeGYkquCOBFrhu9muBRR6nmaFpwPYIBUKBYa1PU+r9gFwl1mJXgSeBuEyV+aCKcpqnqe2yqdjI1ZoP4EDSP2QA) <span data-playground="core"></span>: edit the SQL and hover the types, with nothing to install. The Playground runs TypeScript 6, so treat it as a demo.
|
|
49
47
|
|
|
50
48
|
## Run queries
|
|
51
49
|
|
|
@@ -65,7 +63,7 @@ Compile a query once and bind different values with the same inferred types:
|
|
|
65
63
|
|
|
66
64
|
```ts
|
|
67
65
|
const findUser = sql.prepare("SELECT id, email FROM users WHERE id = $1");
|
|
68
|
-
const query = findUser(7);
|
|
66
|
+
const query = findUser(7);
|
|
69
67
|
```
|
|
70
68
|
|
|
71
69
|
Named parameters and fixed fragments work too. The `pg` and `postgres` adapters also request server-side preparation when these queries execute. See the [prepared query API](https://typesql.karsli.net/reference/api#sql-prepare-text-slots).
|
package/dist/adapter.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `@typesql/core/adapter`: what driver adapters and custom executors build on. Applications
|
|
3
|
-
* import `@typesql/core` or an adapter package instead.
|
|
4
|
-
*/
|
|
5
1
|
export { mapRows, rowKeysOf } from "./query.js";
|
|
6
2
|
export { camelCase } from "./row-keys.js";
|
|
7
3
|
export { JsonParam } from "./runtime/json.js";
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACN,sBAAsB,EACtB,cAAc,EACd,KAAK,SAAS,GACd,MAAM,kBAAkB,CAAC"}
|
package/dist/adapter.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `@typesql/core/adapter`: what driver adapters and custom executors build on. Applications
|
|
3
|
-
* import `@typesql/core` or an adapter package instead.
|
|
4
|
-
*/
|
|
5
1
|
export { mapRows, rowKeysOf } from "./query.js";
|
|
6
2
|
export { camelCase } from "./row-keys.js";
|
|
7
3
|
export { JsonParam } from "./runtime/json.js";
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACN,sBAAsB,EACtB,cAAc,GAEd,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface CacheDialect {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly engine: string;
|
|
4
|
+
readonly specifiers: readonly string[];
|
|
5
|
+
readonly versionFile: string;
|
|
6
|
+
readonly sqlTypes: readonly string[];
|
|
7
|
+
readonly queryAliases: {
|
|
8
|
+
readonly [alias: string]: number;
|
|
9
|
+
};
|
|
10
|
+
readonly ddlAliases: {
|
|
11
|
+
readonly [alias: string]: number;
|
|
12
|
+
};
|
|
13
|
+
readonly looksLikeQuery: RegExp;
|
|
14
|
+
readonly looksLikeDdl: RegExp;
|
|
15
|
+
touchesAllTables(text: string): boolean;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=dialect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../src/cache/dialect.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5D,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC1D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../src/cache/dialect.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialects.d.ts","sourceRoot":"","sources":["../../src/cache/dialects.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,QAAQ,EAAE,SAAS,YAAY,EAAoB,CAAC;AAEjE,eAAO,MAAM,YAAY,SAAU,MAAM,GAAG,SAAS,KAAG,YACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialects.js","sourceRoot":"","sources":["../../src/cache/dialects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,aAAa,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAwB,EAAgB,EAAE,CACtE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC"}
|
package/dist/cache/discover.d.ts
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Finds the statements of a program: `sql(…)` calls (the callee is core's `Sql` or
|
|
3
|
-
* `TransactionalSql`, whatever it is named locally) and `migrations().add(…)` steps. Only the
|
|
4
|
-
* callee, the receiver and the first arguments are typed, not the call: discovering 500
|
|
5
|
-
* queries takes milliseconds and analyses none of them.
|
|
6
|
-
*/
|
|
7
1
|
import type { Checker, Program, Type } from "typescript/async";
|
|
8
|
-
|
|
2
|
+
import type { CacheDialect } from "./dialect.js";
|
|
9
3
|
export interface Kinds {
|
|
10
4
|
readonly CallExpression: number;
|
|
11
5
|
readonly PropertyAccessExpression: number;
|
|
@@ -15,16 +9,13 @@ export interface Kinds {
|
|
|
15
9
|
readonly TypeAliasDeclaration: number;
|
|
16
10
|
}
|
|
17
11
|
export interface SqlSite {
|
|
18
|
-
/** The query literal (with `:name` and `${sql.param()}` markers as written). */
|
|
19
12
|
readonly key: string;
|
|
20
13
|
readonly file: string;
|
|
21
14
|
readonly db: Type;
|
|
22
15
|
readonly tm: Type;
|
|
23
16
|
readonly keys: Type;
|
|
24
|
-
/** The slot object's type for `sql("… {slot} …", { slot })`, else null. */
|
|
25
17
|
readonly slots: Type | null;
|
|
26
18
|
}
|
|
27
|
-
/** A statement written as a type: `RowOf<DB, TM, "SELECT …">`, or a literal argument of the project's own alias. */
|
|
28
19
|
export interface TypeSite {
|
|
29
20
|
readonly key: string;
|
|
30
21
|
readonly file: string;
|
|
@@ -33,14 +24,12 @@ export interface TypeSite {
|
|
|
33
24
|
export interface DdlSite {
|
|
34
25
|
readonly key: string;
|
|
35
26
|
readonly file: string;
|
|
36
|
-
/** The schema before the step (`Migrations<DB>`'s `DB`). */
|
|
37
27
|
readonly db: Type;
|
|
38
28
|
}
|
|
39
|
-
export declare function discover(program: Program, checker: Checker, kinds: Kinds, isCorePath: (path: string) => boolean, include: (fileName: string) => boolean): Promise<{
|
|
29
|
+
export declare function discover(program: Program, checker: Checker, kinds: Kinds, isCorePath: (path: string) => boolean, include: (fileName: string) => boolean, dialect: CacheDialect): Promise<{
|
|
40
30
|
sql: SqlSite[];
|
|
41
31
|
types: TypeSite[];
|
|
42
32
|
ddl: DdlSite[];
|
|
43
33
|
}>;
|
|
44
|
-
/** Whether `type` is a reference to one of core's `names` (`Sql`, `Migrations`, …). */
|
|
45
34
|
export declare function isCoreRef(type: Type, names: readonly string[], isCorePath: (path: string) => boolean): Promise<boolean>;
|
|
46
35
|
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACX,OAAO,EACP,OAAO,EAEP,IAAI,EACJ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,KAAK;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CAClB;AAGD,wBAAsB,QAAQ,CAC7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACrC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,EACtC,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC;IAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAoJhE;AAoFD,wBAAsB,SAAS,CAC9B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACnC,OAAO,CAAC,OAAO,CAAC,CAQlB"}
|
package/dist/cache/discover.js
CHANGED
|
@@ -1,28 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Finds the statements of a program: `sql(…)` calls (the callee is core's `Sql` or
|
|
3
|
-
* `TransactionalSql`, whatever it is named locally) and `migrations().add(…)` steps. Only the
|
|
4
|
-
* callee, the receiver and the first arguments are typed, not the call: discovering 500
|
|
5
|
-
* queries takes milliseconds and analyses none of them.
|
|
6
|
-
*/
|
|
7
1
|
const SLOT = /\{[A-Za-z_][A-Za-z0-9_]*\}/;
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
RowOf: 2,
|
|
11
|
-
ParamsOf: 2,
|
|
12
|
-
ArgsOf: 2,
|
|
13
|
-
ParamsArgs: 2,
|
|
14
|
-
Validate: 1,
|
|
15
|
-
KindOf: 1,
|
|
16
|
-
NamesOf: 1,
|
|
17
|
-
Analysis: 1,
|
|
18
|
-
};
|
|
19
|
-
const DDL_ALIASES = {
|
|
20
|
-
ApplyDdl: 1,
|
|
21
|
-
ValidateDdl: 1,
|
|
22
|
-
};
|
|
23
|
-
const LOOKS_LIKE_QUERY = /^\s*(\(\s*)*(select|with|insert|update|delete|values|table)\b/i;
|
|
24
|
-
const LOOKS_LIKE_DDL = /^\s*(create|alter|drop|comment)\b/i;
|
|
25
|
-
export async function discover(program, checker, kinds, isCorePath, include) {
|
|
2
|
+
export async function discover(program, checker, kinds, isCorePath, include, dialect) {
|
|
3
|
+
const { queryAliases, ddlAliases, looksLikeQuery, looksLikeDdl } = dialect;
|
|
26
4
|
const sql = [];
|
|
27
5
|
const types = [];
|
|
28
6
|
const ddl = [];
|
|
@@ -36,21 +14,19 @@ export async function discover(program, checker, kinds, isCorePath, include) {
|
|
|
36
14
|
const { calls, refs } = nodesIn(sf, kinds);
|
|
37
15
|
if (!calls.length && !refs.length)
|
|
38
16
|
continue;
|
|
39
|
-
/** `DB` types this file uses, for literals passed to the project's own aliases. */
|
|
40
17
|
const fileDbs = new Map();
|
|
41
18
|
const loose = [];
|
|
42
|
-
// statements written as types
|
|
43
19
|
const syms = refs.length
|
|
44
20
|
? await checker.getSymbolAtLocation(refs.map((r) => r.typeName))
|
|
45
21
|
: [];
|
|
46
22
|
await Promise.all(refs.map(async (r, i) => {
|
|
47
23
|
let sym = syms[i];
|
|
48
|
-
if (sym && sym.flags & 2097152
|
|
24
|
+
if (sym && sym.flags & 2097152)
|
|
49
25
|
sym = await checker.getAliasedSymbol(sym);
|
|
50
26
|
const args = r.typeArguments ?? [];
|
|
51
27
|
const isCore = !!sym && sym.declarations.some((d) => isCorePath(d.path));
|
|
52
28
|
const qAt = isCore
|
|
53
|
-
? (
|
|
29
|
+
? (queryAliases[sym.name] ?? ddlAliases[sym.name])
|
|
54
30
|
: undefined;
|
|
55
31
|
if (qAt !== undefined && args[0] && args[qAt]) {
|
|
56
32
|
const db = await checker.getTypeFromTypeNode(args[0]);
|
|
@@ -58,16 +34,15 @@ export async function discover(program, checker, kinds, isCorePath, include) {
|
|
|
58
34
|
const key = literalOf(args[qAt], kinds);
|
|
59
35
|
if (key === null)
|
|
60
36
|
return;
|
|
61
|
-
(sym.name in
|
|
37
|
+
(sym.name in ddlAliases ? ddl : types).push({
|
|
62
38
|
key,
|
|
63
39
|
db,
|
|
64
40
|
file: fileName,
|
|
65
41
|
});
|
|
66
42
|
return;
|
|
67
43
|
}
|
|
68
|
-
// the project's own alias of a core one: `type Row<Q extends string> = RowOf<DB, TM, Q>`
|
|
69
44
|
const wrapped = sym && !isCore
|
|
70
|
-
? await wrappedCoreAlias(sym, program, checker, kinds, isCorePath, aliasMemo)
|
|
45
|
+
? await wrappedCoreAlias(sym, program, checker, kinds, isCorePath, aliasMemo, dialect)
|
|
71
46
|
: null;
|
|
72
47
|
if (wrapped) {
|
|
73
48
|
const key = args[wrapped.param]
|
|
@@ -84,12 +59,11 @@ export async function discover(program, checker, kinds, isCorePath, include) {
|
|
|
84
59
|
for (const a of args) {
|
|
85
60
|
const key = literalOf(a, kinds);
|
|
86
61
|
if (key !== null &&
|
|
87
|
-
(
|
|
62
|
+
(looksLikeQuery.test(key) || looksLikeDdl.test(key)))
|
|
88
63
|
loose.push(key);
|
|
89
64
|
}
|
|
90
65
|
}
|
|
91
66
|
}));
|
|
92
|
-
// migration steps: the receiver is core's Migrations<DB>
|
|
93
67
|
const adds = calls.filter((c) => c.expression.kind === kinds.PropertyAccessExpression &&
|
|
94
68
|
c.expression.name.text === "add");
|
|
95
69
|
if (adds.length) {
|
|
@@ -101,17 +75,16 @@ export async function discover(program, checker, kinds, isCorePath, include) {
|
|
|
101
75
|
if (!a.isStringLiteralType() ||
|
|
102
76
|
!(await isCoreRef(r, ["Migrations"], isCorePath)))
|
|
103
77
|
return;
|
|
104
|
-
const [db] = await checker.getTypeArguments(r);
|
|
78
|
+
const [, db] = await checker.getTypeArguments(r);
|
|
105
79
|
if (db)
|
|
106
80
|
ddl.push({ key: a.value, db, file: fileName });
|
|
107
81
|
}));
|
|
108
82
|
}
|
|
109
|
-
// sql(…) calls: the callee is core's Sql or TransactionalSql
|
|
110
83
|
const others = calls.filter((c) => !adds.includes(c));
|
|
111
84
|
const callees = others.length
|
|
112
85
|
? await checker.getTypeAtLocation(others.map((c) => c.expression))
|
|
113
86
|
: [];
|
|
114
|
-
const hits = (await Promise.all(others.map((_, i) => isCoreRef(callees[i],
|
|
87
|
+
const hits = (await Promise.all(others.map((_, i) => isCoreRef(callees[i], dialect.sqlTypes, isCorePath).then((ok) => ok ? i : -1)))).filter((i) => i >= 0);
|
|
115
88
|
const firstArgs = hits.length
|
|
116
89
|
? await checker.getTypeAtLocation(hits.map((i) => others[i].arguments[0]))
|
|
117
90
|
: [];
|
|
@@ -131,7 +104,7 @@ export async function discover(program, checker, kinds, isCorePath, include) {
|
|
|
131
104
|
}));
|
|
132
105
|
for (const key of loose)
|
|
133
106
|
for (const db of fileDbs.values())
|
|
134
|
-
(
|
|
107
|
+
(looksLikeDdl.test(key) ? ddl : types).push({
|
|
135
108
|
key,
|
|
136
109
|
db,
|
|
137
110
|
file: fileName,
|
|
@@ -139,8 +112,7 @@ export async function discover(program, checker, kinds, isCorePath, include) {
|
|
|
139
112
|
}
|
|
140
113
|
return { sql, types, ddl };
|
|
141
114
|
}
|
|
142
|
-
|
|
143
|
-
function wrappedCoreAlias(sym, program, checker, kinds, isCorePath, memo) {
|
|
115
|
+
function wrappedCoreAlias(sym, program, checker, kinds, isCorePath, memo, { queryAliases, ddlAliases }) {
|
|
144
116
|
let found = memo.get(sym.id);
|
|
145
117
|
if (!found) {
|
|
146
118
|
found = (async () => {
|
|
@@ -157,7 +129,7 @@ function wrappedCoreAlias(sym, program, checker, kinds, isCorePath, memo) {
|
|
|
157
129
|
target = await checker.getAliasedSymbol(target);
|
|
158
130
|
if (!target || !target.declarations.some((d) => isCorePath(d.path)))
|
|
159
131
|
return null;
|
|
160
|
-
const qAt =
|
|
132
|
+
const qAt = queryAliases[target.name] ?? ddlAliases[target.name];
|
|
161
133
|
const qArg = qAt === undefined ? undefined : ref.typeArguments?.[qAt];
|
|
162
134
|
const dbArg = ref.typeArguments?.[0];
|
|
163
135
|
if (!qArg || !dbArg || qArg.kind !== kinds.TypeReference)
|
|
@@ -170,7 +142,7 @@ function wrappedCoreAlias(sym, program, checker, kinds, isCorePath, memo) {
|
|
|
170
142
|
return {
|
|
171
143
|
param,
|
|
172
144
|
db: await checker.getTypeFromTypeNode(dbArg),
|
|
173
|
-
ddl: target.name in
|
|
145
|
+
ddl: target.name in ddlAliases,
|
|
174
146
|
};
|
|
175
147
|
})();
|
|
176
148
|
memo.set(sym.id, found);
|
|
@@ -198,7 +170,6 @@ function nodesIn(sf, kinds) {
|
|
|
198
170
|
walk(sf);
|
|
199
171
|
return { calls, refs };
|
|
200
172
|
}
|
|
201
|
-
/** Whether `type` is a reference to one of core's `names` (`Sql`, `Migrations`, …). */
|
|
202
173
|
export async function isCoreRef(type, names, isCorePath) {
|
|
203
174
|
if (!type.isTypeReference())
|
|
204
175
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/cache/discover.ts"],"names":[],"mappings":"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"}
|
package/dist/cache/evaluate.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Node, SourceFile } from "typescript/ast";
|
|
2
2
|
import type { API as AsyncAPI, Checker, Program, Type } from "typescript/async";
|
|
3
|
+
import type { CacheDialect } from "./dialect.js";
|
|
3
4
|
import type { Kinds } from "./discover.js";
|
|
4
|
-
/** The project's `typescript` package: its async API, fs helpers and syntax kinds. */
|
|
5
5
|
export interface TypeScript {
|
|
6
6
|
readonly API: typeof AsyncAPI;
|
|
7
7
|
readonly createFileSystemLayer: (files: readonly (readonly [string, string])[]) => unknown;
|
|
@@ -10,7 +10,7 @@ export interface TypeScript {
|
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
export declare function loadTypeScript(configFile: string): Promise<TypeScript>;
|
|
13
|
-
export declare const
|
|
13
|
+
export declare const probeHead: (dialect: CacheDialect) => string;
|
|
14
14
|
export interface ProbeProgram {
|
|
15
15
|
readonly program: Program;
|
|
16
16
|
readonly checker: Checker;
|
|
@@ -28,7 +28,6 @@ export declare class ProbeSession {
|
|
|
28
28
|
typescript(): Promise<TypeScript>;
|
|
29
29
|
markChanged(files: Iterable<string>): void;
|
|
30
30
|
close(): Promise<void>;
|
|
31
|
-
/** Close for good: a request in progress fails at its next program instead of reopening. */
|
|
32
31
|
dispose(): Promise<void>;
|
|
33
32
|
withProbe(text: string): Promise<ProbeProgram>;
|
|
34
33
|
}
|
|
@@ -37,15 +36,13 @@ export type Evaluated = {
|
|
|
37
36
|
} | {
|
|
38
37
|
readonly error: string;
|
|
39
38
|
};
|
|
40
|
-
export declare function evaluateTypes(session: ProbeSession, base: string, exprs: readonly string[], isCorePath: (path: string) => boolean): Promise<Evaluated[]>;
|
|
39
|
+
export declare function evaluateTypes(session: ProbeSession, base: string, exprs: readonly string[], isCorePath: (path: string) => boolean, dialect: CacheDialect): Promise<Evaluated[]>;
|
|
41
40
|
export declare function evaluateAnalyses(session: ProbeSession, base: string, items: readonly {
|
|
42
41
|
readonly db: string;
|
|
43
42
|
readonly text: string;
|
|
44
|
-
}[], isCorePath: (path: string) => boolean): Promise<Evaluated[]>;
|
|
45
|
-
/** `export declare const name: …` declarations of the probe, by name. */
|
|
43
|
+
}[], isCorePath: (path: string) => boolean, dialect: CacheDialect): Promise<Evaluated[]>;
|
|
46
44
|
export declare function declarations(sf: SourceFile, kinds: TypeScript["kinds"]): Map<string, Node>;
|
|
47
45
|
export declare function declTypes(checker: Checker, sf: SourceFile, kinds: TypeScript["kinds"]): Promise<Map<string, Type>>;
|
|
48
|
-
/** Probe declarations whose line has a compile error (an alias the probe could not resolve, …), with the first message. */
|
|
49
46
|
export declare function badDeclarations(program: Program, sf: SourceFile): Promise<Map<string, string>>;
|
|
50
47
|
export declare const lineOf: (text: string, offset: number) => number;
|
|
51
48
|
export type TypeValue = string | number | boolean | null | readonly TypeValue[] | TypeRecord | {
|
|
@@ -66,12 +63,10 @@ export interface AnalysisType {
|
|
|
66
63
|
}
|
|
67
64
|
export interface Analysis {
|
|
68
65
|
readonly kind: string;
|
|
69
|
-
/** Columns of a `*` expansion are marked `star`: their order is the object type's, not the statement's. */
|
|
70
66
|
readonly cols: readonly ({
|
|
71
67
|
readonly name: string;
|
|
72
68
|
readonly star?: true;
|
|
73
69
|
} & AnalysisType)[];
|
|
74
|
-
/** By parameter number (1-based). */
|
|
75
70
|
readonly params: {
|
|
76
71
|
readonly [n: number]: AnalysisType;
|
|
77
72
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/cache/evaluate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAqB,MAAM,gBAAgB,CAAC;AAC1E,OAAO,KAAK,EACX,GAAG,IAAI,QAAQ,EACf,OAAO,EACP,OAAO,EAEP,IAAI,EACJ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/cache/evaluate.ts"],"names":[],"mappings":"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"}
|
package/dist/cache/evaluate.js
CHANGED
|
@@ -25,7 +25,7 @@ export async function loadTypeScript(configFile) {
|
|
|
25
25
|
},
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
-
export const
|
|
28
|
+
export const probeHead = (dialect) => `import type * as __T from ${JSON.stringify(dialect.engine)};\nexport declare const __v: __T.CacheVersion;\nexport declare const __fc: __T.FunctionCatalog;\n`;
|
|
29
29
|
export class ProbeSession {
|
|
30
30
|
ts;
|
|
31
31
|
api;
|
|
@@ -52,7 +52,6 @@ export class ProbeSession {
|
|
|
52
52
|
this.snapshot = undefined;
|
|
53
53
|
await api?.close();
|
|
54
54
|
}
|
|
55
|
-
/** Close for good: a request in progress fails at its next program instead of reopening. */
|
|
56
55
|
async dispose() {
|
|
57
56
|
this.disposed = true;
|
|
58
57
|
await this.close();
|
|
@@ -90,7 +89,7 @@ export class ProbeSession {
|
|
|
90
89
|
return { program: project.program, checker: project.checker, sf };
|
|
91
90
|
}
|
|
92
91
|
}
|
|
93
|
-
export async function evaluateTypes(session, base, exprs, isCorePath) {
|
|
92
|
+
export async function evaluateTypes(session, base, exprs, isCorePath, dialect) {
|
|
94
93
|
let probe = base;
|
|
95
94
|
exprs.forEach((e, i) => {
|
|
96
95
|
probe += `export declare const __x_${i}: ${e};\n`;
|
|
@@ -108,13 +107,12 @@ export async function evaluateTypes(session, base, exprs, isCorePath) {
|
|
|
108
107
|
const t = types.get(name);
|
|
109
108
|
if (!t)
|
|
110
109
|
return { error: "no declaration" };
|
|
111
|
-
return { text: coreNames(await printer.print(t)) };
|
|
110
|
+
return { text: coreNames(await printer.print(t), dialect.specifiers) };
|
|
112
111
|
}));
|
|
113
112
|
}
|
|
114
|
-
export function evaluateAnalyses(session, base, items, isCorePath) {
|
|
115
|
-
return evaluateTypes(session, base, items.map((a) => `__T.CacheAnalysis<${a.db}, ${JSON.stringify(a.text)}>`), isCorePath);
|
|
113
|
+
export function evaluateAnalyses(session, base, items, isCorePath, dialect) {
|
|
114
|
+
return evaluateTypes(session, base, items.map((a) => `__T.CacheAnalysis<${a.db}, ${JSON.stringify(a.text)}>`), isCorePath, dialect);
|
|
116
115
|
}
|
|
117
|
-
/** `export declare const name: …` declarations of the probe, by name. */
|
|
118
116
|
export function declarations(sf, kinds) {
|
|
119
117
|
const out = new Map();
|
|
120
118
|
for (const st of sf.statements) {
|
|
@@ -134,7 +132,6 @@ export async function declTypes(checker, sf, kinds) {
|
|
|
134
132
|
: [];
|
|
135
133
|
return new Map(names.map((n, i) => [n, types[i]]));
|
|
136
134
|
}
|
|
137
|
-
/** Probe declarations whose line has a compile error (an alias the probe could not resolve, …), with the first message. */
|
|
138
135
|
export async function badDeclarations(program, sf) {
|
|
139
136
|
const errors = (await program.getSemanticDiagnostics(sf.fileName)).filter((d) => d.category === 1);
|
|
140
137
|
const badLines = new Map();
|
|
@@ -143,7 +140,6 @@ export async function badDeclarations(program, sf) {
|
|
|
143
140
|
if (!badLines.has(line))
|
|
144
141
|
badLines.set(line, `TS${d.code}: ${d.text}`);
|
|
145
142
|
}
|
|
146
|
-
// an alias line (`type X = …`) poisons the declarations that use it: drop by alias name
|
|
147
143
|
const lines = sf.text.split("\n");
|
|
148
144
|
const badAliases = new Map();
|
|
149
145
|
lines.forEach((l, i) => {
|
|
@@ -179,7 +175,7 @@ export const lineOf = (text, offset) => {
|
|
|
179
175
|
};
|
|
180
176
|
export function parseTypeText(text) {
|
|
181
177
|
const p = new TypeTextParser(text);
|
|
182
|
-
const v = p.type();
|
|
178
|
+
const v = p.type();
|
|
183
179
|
if (p.i !== text.length)
|
|
184
180
|
throw new Error(`unexpected ${JSON.stringify(text.slice(p.i, p.i + 20))} at ${p.i} in printed type`);
|
|
185
181
|
return v;
|
|
@@ -311,7 +307,6 @@ class TypeTextParser {
|
|
|
311
307
|
}
|
|
312
308
|
if (c === open)
|
|
313
309
|
depth++;
|
|
314
|
-
// the `>` of `=>` (a function type in type arguments) does not close; in a printed type no other closing bracket follows `=`
|
|
315
310
|
else if (c === close && this.s[this.i - 1] !== "=")
|
|
316
311
|
depth--;
|
|
317
312
|
this.i++;
|
|
@@ -330,7 +325,6 @@ class TypeTextParser {
|
|
|
330
325
|
: JSON.parse(`"${raw.slice(1, -1).replace(/\\'/g, "'").replace(/"/g, '\\"')}"`);
|
|
331
326
|
}
|
|
332
327
|
key() {
|
|
333
|
-
// object() peeked past any whitespace
|
|
334
328
|
const c = this.s[this.i];
|
|
335
329
|
if (c === '"' || c === "'")
|
|
336
330
|
return this.string();
|
|
@@ -388,9 +382,7 @@ export function readAnalysis(text) {
|
|
|
388
382
|
try {
|
|
389
383
|
error = JSON.parse(error);
|
|
390
384
|
}
|
|
391
|
-
catch {
|
|
392
|
-
// not a plain literal
|
|
393
|
-
}
|
|
385
|
+
catch { }
|
|
394
386
|
return {
|
|
395
387
|
error,
|
|
396
388
|
pos: err[2] === "null" || err[2] === "number" ? null : Number(err[2]),
|
|
@@ -436,7 +428,6 @@ export const asRecord = (v) => typeof v === "object" &&
|
|
|
436
428
|
? v
|
|
437
429
|
: null;
|
|
438
430
|
function typeOf(v) {
|
|
439
|
-
// a parameter used in several places is a union; a use that gives no type (`$1 IS NULL`) is `unknown`
|
|
440
431
|
if (typeof v === "object" && v !== null && "union" in v) {
|
|
441
432
|
const all = v.union.map(typeOf);
|
|
442
433
|
const typed = all.filter((x) => x.type !== "unknown");
|
|
@@ -455,7 +446,6 @@ function typeOf(v) {
|
|
|
455
446
|
return { type: ty, nullable };
|
|
456
447
|
if (ty === null)
|
|
457
448
|
return { type: "null", nullable };
|
|
458
|
-
// an array of a shaped type prints as a template literal: `${Shaped<"json", …>}[]`
|
|
459
449
|
if (typeof ty === "object" && "ref" in ty) {
|
|
460
450
|
const m = /^`\$\{.*?\bShaped<"(\w+)",.*\}((?:\[\])+)`$/s.exec(ty.ref);
|
|
461
451
|
if (m)
|