@typed-sql/postgres 1.0.0-rc.0 → 2.0.0-rc.1
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 +130 -0
- package/README.md +57 -65
- package/dist/packages/postgres/src/bulk.d.ts +30 -0
- package/dist/packages/postgres/src/bulk.d.ts.map +1 -0
- package/dist/packages/postgres/src/bulk.js +228 -0
- package/dist/packages/postgres/src/bulk.js.map +1 -0
- package/dist/packages/postgres/src/index.d.ts +5 -1
- package/dist/packages/postgres/src/index.d.ts.map +1 -1
- package/dist/packages/postgres/src/index.js +17 -4
- package/dist/packages/postgres/src/index.js.map +1 -1
- package/dist/packages/postgres/src/pg.d.ts +68 -4
- package/dist/packages/postgres/src/pg.d.ts.map +1 -1
- package/dist/packages/postgres/src/pg.js +458 -14
- package/dist/packages/postgres/src/pg.js.map +1 -1
- package/dist/packages/postgres/src/prepared.d.ts +20 -0
- package/dist/packages/postgres/src/prepared.d.ts.map +1 -0
- package/dist/packages/postgres/src/prepared.js +47 -0
- package/dist/packages/postgres/src/prepared.js.map +1 -0
- package/dist/packages/postgres/src/provider.d.ts +2 -1
- package/dist/packages/postgres/src/provider.d.ts.map +1 -1
- package/dist/packages/postgres/src/provider.js +3 -1
- package/dist/packages/postgres/src/provider.js.map +1 -1
- package/dist/packages/postgres/src/resolver.d.ts.map +1 -1
- package/dist/packages/postgres/src/resolver.js +11 -1
- package/dist/packages/postgres/src/resolver.js.map +1 -1
- package/dist/packages/postgres/src/routing.d.ts +22 -0
- package/dist/packages/postgres/src/routing.d.ts.map +1 -0
- package/dist/packages/postgres/src/routing.js +70 -0
- package/dist/packages/postgres/src/routing.js.map +1 -0
- package/dist/packages/postgres/src/runtime.d.ts +34 -3
- package/dist/packages/postgres/src/runtime.d.ts.map +1 -1
- package/dist/packages/postgres/src/runtime.js +923 -22
- package/dist/packages/postgres/src/runtime.js.map +1 -1
- package/dist/packages/postgres/src/semantics.d.ts +5 -0
- package/dist/packages/postgres/src/semantics.d.ts.map +1 -0
- package/dist/packages/postgres/src/semantics.js +211 -0
- package/dist/packages/postgres/src/semantics.js.map +1 -0
- package/dist/packages/postgres/src/stream.d.ts +34 -0
- package/dist/packages/postgres/src/stream.d.ts.map +1 -0
- package/dist/packages/postgres/src/stream.js +124 -0
- package/dist/packages/postgres/src/stream.js.map +1 -0
- package/dist/packages/postgres/src/version.d.ts +2 -0
- package/dist/packages/postgres/src/version.d.ts.map +1 -0
- package/dist/packages/postgres/src/version.js +2 -0
- package/dist/packages/postgres/src/version.js.map +1 -0
- package/package.json +4 -4
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { parseStatement, SqlParseError } from "@typed-sql/ast";
|
|
2
|
-
import { DIALECT_CONTRACT_VERSION } from "@typed-sql/core";
|
|
2
|
+
import { DIALECT_CONTRACT_VERSION, unknownQuerySemantics } from "@typed-sql/core";
|
|
3
3
|
import { parseSchemaSnapshot } from "@typed-sql/schema";
|
|
4
4
|
import { resolveStatement } from "./resolver.js";
|
|
5
|
+
import { analyzePostgresSemantics } from "./semantics.js";
|
|
5
6
|
import { defaultPostgresTypePolicy } from "./type-policy.js";
|
|
6
|
-
|
|
7
|
+
import { POSTGRES_DIALECT_VERSION } from "./version.js";
|
|
8
|
+
export { postgresCopy } from "./bulk.js";
|
|
9
|
+
export { POSTGRES_DIALECT_VERSION } from "./version.js";
|
|
7
10
|
const capabilities = Object.freeze({
|
|
8
11
|
aggregateFilter: true,
|
|
9
12
|
arrays: true,
|
|
10
13
|
distinctOn: true,
|
|
11
14
|
fullJoins: true,
|
|
12
|
-
|
|
15
|
+
lockingReads: true,
|
|
16
|
+
recursiveCtes: false,
|
|
13
17
|
returning: true,
|
|
14
18
|
setOperations: false,
|
|
15
19
|
});
|
|
@@ -42,7 +46,14 @@ export function postgres(options = {}) {
|
|
|
42
46
|
},
|
|
43
47
|
analyze(sql, snapshot, policy = defaultTypePolicy) {
|
|
44
48
|
try {
|
|
45
|
-
|
|
49
|
+
const statement = parseStatement(sql);
|
|
50
|
+
const resolved = resolveStatement(statement, snapshot, { typePolicy: policy });
|
|
51
|
+
return {
|
|
52
|
+
...resolved,
|
|
53
|
+
semantics: resolved.diagnostics.some(({ severity }) => severity === "error")
|
|
54
|
+
? unknownQuerySemantics(statement.range, "PostgreSQL semantic analysis reported an error.")
|
|
55
|
+
: analyzePostgresSemantics(statement, snapshot),
|
|
56
|
+
};
|
|
46
57
|
}
|
|
47
58
|
catch (error) {
|
|
48
59
|
if (!(error instanceof SqlParseError))
|
|
@@ -51,6 +62,7 @@ export function postgres(options = {}) {
|
|
|
51
62
|
columns: [],
|
|
52
63
|
parameters: [],
|
|
53
64
|
diagnostics: [{ code: error.code, message: error.message, severity: "error", range: error.range }],
|
|
65
|
+
semantics: unknownQuerySemantics(error.range, "The SQL could not be parsed by the PostgreSQL grammar."),
|
|
54
66
|
};
|
|
55
67
|
}
|
|
56
68
|
},
|
|
@@ -60,5 +72,6 @@ export function postgres(options = {}) {
|
|
|
60
72
|
export { sql } from "@typed-sql/core";
|
|
61
73
|
export { parseSchemaSnapshot } from "@typed-sql/schema";
|
|
62
74
|
export { introspectPostgres, loadPostgresDriver, PostgresSchemaProvider, postgresCatalogQueries } from "./provider.js";
|
|
75
|
+
export { createPostgresQuerySemanticResolver, createPostgresRoutedDatabase, isPostgresRetryableTransactionError, } from "./routing.js";
|
|
63
76
|
export { defaultPostgresTypePolicy, defaultPostgresTypePolicy as typePolicy, isKnownPostgresType, mapPostgresType, } from "./type-policy.js";
|
|
64
77
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAsB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,32 @@
|
|
|
1
|
+
import type { DatabaseObserver, LiveQueryVerifier, QueryPlanInspector } from "@typed-sql/core";
|
|
1
2
|
import type { Pool as PgPool, PoolConfig } from "pg";
|
|
2
|
-
import type { PostgresSchemaSnapshot
|
|
3
|
+
import type { PostgresSchemaSnapshot } from "./index.js";
|
|
3
4
|
import { type PostgresQueryable } from "./provider.js";
|
|
4
|
-
import { type PostgresDatabase, type PostgresPoolLike } from "./runtime.js";
|
|
5
|
+
import { type PostgresDatabase, type PostgresPoolLike, type PostgresQueryConfig } from "./runtime.js";
|
|
6
|
+
import { type PostgresTypePolicy } from "./type-policy.js";
|
|
7
|
+
export interface PgCursorConstructor {
|
|
8
|
+
new (text: string, values?: readonly unknown[], config?: {
|
|
9
|
+
readonly types?: PostgresQueryConfig["types"];
|
|
10
|
+
}): unknown;
|
|
11
|
+
}
|
|
12
|
+
export type PgCursorImporter = () => Promise<unknown>;
|
|
13
|
+
export interface PgCopyStreamsModule {
|
|
14
|
+
readonly from: (statement: string) => unknown;
|
|
15
|
+
readonly to: (statement: string) => unknown;
|
|
16
|
+
}
|
|
17
|
+
export type PgCopyStreamsImporter = () => Promise<unknown>;
|
|
18
|
+
export declare function loadPgCursorDriver(importer?: PgCursorImporter): Promise<PgCursorConstructor>;
|
|
19
|
+
export declare function loadPgCopyStreams(importer?: PgCopyStreamsImporter): Promise<PgCopyStreamsModule>;
|
|
5
20
|
export interface PgOptions {
|
|
6
21
|
readonly connectionString: string | (() => string | Promise<string>);
|
|
7
|
-
readonly poolConfig?: Omit<PoolConfig, "connectionString" | "types">;
|
|
22
|
+
readonly poolConfig?: Omit<PoolConfig, "connectionString" | "query_timeout" | "types">;
|
|
8
23
|
readonly typePolicy?: PostgresTypePolicy;
|
|
9
24
|
readonly decimal?: (value: string) => unknown;
|
|
25
|
+
/** Host-injected loader for workspaces or runtimes with nonstandard package resolution. */
|
|
26
|
+
readonly cursorImporter?: PgCursorImporter;
|
|
27
|
+
/** Host-injected loader for the optional pg-copy-streams bulk protocol package. */
|
|
28
|
+
readonly copyStreamsImporter?: PgCopyStreamsImporter;
|
|
29
|
+
readonly observer?: DatabaseObserver;
|
|
10
30
|
}
|
|
11
31
|
export interface PgSchemaProviderOptions {
|
|
12
32
|
readonly connectionString?: string | (() => string | Promise<string>);
|
|
@@ -14,8 +34,52 @@ export interface PgSchemaProviderOptions {
|
|
|
14
34
|
readonly schemas?: readonly string[];
|
|
15
35
|
readonly typePolicy?: PostgresTypePolicy;
|
|
16
36
|
}
|
|
37
|
+
export interface PgLiveVerifierClient {
|
|
38
|
+
query<Row extends Record<string, unknown>>(sql: string, values?: readonly unknown[]): Promise<{
|
|
39
|
+
readonly rows: readonly Row[];
|
|
40
|
+
}>;
|
|
41
|
+
release(error?: Error | boolean): void;
|
|
42
|
+
}
|
|
43
|
+
export interface PgLiveVerifierPool {
|
|
44
|
+
query<Row extends Record<string, unknown>>(sql: string, values?: readonly unknown[]): Promise<{
|
|
45
|
+
readonly rows: readonly Row[];
|
|
46
|
+
}>;
|
|
47
|
+
connect(): Promise<PgLiveVerifierClient>;
|
|
48
|
+
end(): Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
export interface PgLiveVerifierOptions {
|
|
51
|
+
readonly connectionString?: string | (() => string | Promise<string>);
|
|
52
|
+
readonly pool?: PgLiveVerifierPool;
|
|
53
|
+
readonly poolConfig?: Omit<PoolConfig, "connectionString">;
|
|
54
|
+
readonly typePolicy?: PostgresTypePolicy;
|
|
55
|
+
readonly schema?: PostgresSchemaSnapshot;
|
|
56
|
+
readonly driverImporter?: () => Promise<typeof import("pg")>;
|
|
57
|
+
}
|
|
58
|
+
export interface PgPlanInspectorOptions {
|
|
59
|
+
readonly connectionString?: string | (() => string | Promise<string>);
|
|
60
|
+
readonly pool?: PgPlanInspectorPool;
|
|
61
|
+
readonly poolConfig?: Omit<PoolConfig, "connectionString">;
|
|
62
|
+
readonly driverImporter?: () => Promise<typeof import("pg")>;
|
|
63
|
+
}
|
|
64
|
+
export interface PgPlanInspectorClient {
|
|
65
|
+
query<Row extends Record<string, unknown>>(sql: string, values?: readonly unknown[]): Promise<{
|
|
66
|
+
readonly rows: readonly Row[];
|
|
67
|
+
}>;
|
|
68
|
+
release(error?: Error | boolean): void;
|
|
69
|
+
}
|
|
70
|
+
export interface PgPlanInspectorPool {
|
|
71
|
+
query<Row extends Record<string, unknown>>(sql: string, values?: readonly unknown[]): Promise<{
|
|
72
|
+
readonly rows: readonly Row[];
|
|
73
|
+
}>;
|
|
74
|
+
connect(): Promise<PgPlanInspectorClient>;
|
|
75
|
+
end(): Promise<void>;
|
|
76
|
+
}
|
|
17
77
|
export declare function loadPgDriver(importer?: () => Promise<typeof import("pg")>): Promise<typeof import("pg")>;
|
|
18
|
-
|
|
78
|
+
/** Creates a lazy adapter over PostgreSQL PREPARE and pg_prepared_statements. */
|
|
79
|
+
export declare function createPgLiveVerifier(options: PgLiveVerifierOptions): LiveQueryVerifier;
|
|
80
|
+
/** Creates a lazy, non-executing adapter over PostgreSQL structured EXPLAIN. */
|
|
81
|
+
export declare function createPgPlanInspector(options: PgPlanInspectorOptions): QueryPlanInspector;
|
|
82
|
+
export declare function adaptPgPool(pool: PgPool, cursorImporter?: PgCursorImporter, copyStreamsImporter?: PgCopyStreamsImporter): PostgresPoolLike;
|
|
19
83
|
export declare function createPgDatabase(options: PgOptions): Promise<PostgresDatabase>;
|
|
20
84
|
export declare function pg(options: PgSchemaProviderOptions): {
|
|
21
85
|
introspect(): Promise<PostgresSchemaSnapshot>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../../../src/pg.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../../../src/pg.ts"],"names":[],"mappings":"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"}
|