neoorm 0.1.4 → 0.2.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 (173) hide show
  1. package/README.md +423 -27
  2. package/dist/bin/neoorm.js +117 -30
  3. package/dist/bin/neoorm.js.map +1 -1
  4. package/dist/codegen/diff-manifest.d.ts +7 -1
  5. package/dist/codegen/diff-manifest.d.ts.map +1 -1
  6. package/dist/codegen/diff-manifest.js +100 -4
  7. package/dist/codegen/diff-manifest.js.map +1 -1
  8. package/dist/codegen/emit-includes.d.ts.map +1 -1
  9. package/dist/codegen/emit-includes.js +7 -1
  10. package/dist/codegen/emit-includes.js.map +1 -1
  11. package/dist/codegen/emit-models.d.ts.map +1 -1
  12. package/dist/codegen/emit-models.js +28 -6
  13. package/dist/codegen/emit-models.js.map +1 -1
  14. package/dist/codegen/generate-summary.d.ts +21 -0
  15. package/dist/codegen/generate-summary.d.ts.map +1 -0
  16. package/dist/codegen/generate-summary.js +101 -0
  17. package/dist/codegen/generate-summary.js.map +1 -0
  18. package/dist/codegen/generate.d.ts +12 -3
  19. package/dist/codegen/generate.d.ts.map +1 -1
  20. package/dist/codegen/generate.js +36 -13
  21. package/dist/codegen/generate.js.map +1 -1
  22. package/dist/codegen/manifest-relations.d.ts.map +1 -1
  23. package/dist/codegen/manifest-relations.js +9 -2
  24. package/dist/codegen/manifest-relations.js.map +1 -1
  25. package/dist/codegen/schema-to-manifest.d.ts +4 -1
  26. package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
  27. package/dist/codegen/schema-to-manifest.js +69 -12
  28. package/dist/codegen/schema-to-manifest.js.map +1 -1
  29. package/dist/config.d.ts +1 -0
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js.map +1 -1
  32. package/dist/dialect/postgres.d.ts +3 -0
  33. package/dist/dialect/postgres.d.ts.map +1 -1
  34. package/dist/dialect/postgres.js +51 -1
  35. package/dist/dialect/postgres.js.map +1 -1
  36. package/dist/dialect/types.d.ts +13 -1
  37. package/dist/dialect/types.d.ts.map +1 -1
  38. package/dist/index.d.ts +11 -5
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +5 -3
  41. package/dist/index.js.map +1 -1
  42. package/dist/init/scaffold.d.ts +19 -0
  43. package/dist/init/scaffold.d.ts.map +1 -0
  44. package/dist/init/scaffold.js +92 -0
  45. package/dist/init/scaffold.js.map +1 -0
  46. package/dist/init/templates.d.ts +4 -0
  47. package/dist/init/templates.d.ts.map +1 -0
  48. package/dist/init/templates.js +44 -0
  49. package/dist/init/templates.js.map +1 -0
  50. package/dist/introspect/queries.d.ts +5 -0
  51. package/dist/introspect/queries.d.ts.map +1 -1
  52. package/dist/introspect/queries.js +17 -0
  53. package/dist/introspect/queries.js.map +1 -1
  54. package/dist/introspect/to-manifest.d.ts.map +1 -1
  55. package/dist/introspect/to-manifest.js +58 -14
  56. package/dist/introspect/to-manifest.js.map +1 -1
  57. package/dist/migrate/runner.d.ts +26 -0
  58. package/dist/migrate/runner.d.ts.map +1 -1
  59. package/dist/migrate/runner.js +166 -7
  60. package/dist/migrate/runner.js.map +1 -1
  61. package/dist/plugins/builtin.d.ts +35 -2
  62. package/dist/plugins/builtin.d.ts.map +1 -1
  63. package/dist/plugins/builtin.js +318 -1
  64. package/dist/plugins/builtin.js.map +1 -1
  65. package/dist/plugins/json/operators.d.ts +3 -0
  66. package/dist/plugins/json/operators.d.ts.map +1 -0
  67. package/dist/plugins/json/operators.js +65 -0
  68. package/dist/plugins/json/operators.js.map +1 -0
  69. package/dist/plugins/registry.d.ts.map +1 -1
  70. package/dist/plugins/registry.js +3 -1
  71. package/dist/plugins/registry.js.map +1 -1
  72. package/dist/plugins/types.d.ts +1 -0
  73. package/dist/plugins/types.d.ts.map +1 -1
  74. package/dist/runtime/client.d.ts +33 -3
  75. package/dist/runtime/client.d.ts.map +1 -1
  76. package/dist/runtime/client.js +54 -36
  77. package/dist/runtime/client.js.map +1 -1
  78. package/dist/runtime/errors.d.ts +20 -0
  79. package/dist/runtime/errors.d.ts.map +1 -0
  80. package/dist/runtime/errors.js +68 -0
  81. package/dist/runtime/errors.js.map +1 -0
  82. package/dist/runtime/executor.d.ts +1 -0
  83. package/dist/runtime/executor.d.ts.map +1 -1
  84. package/dist/runtime/executor.js +27 -4
  85. package/dist/runtime/executor.js.map +1 -1
  86. package/dist/runtime/pg-error.d.ts +19 -0
  87. package/dist/runtime/pg-error.d.ts.map +1 -0
  88. package/dist/runtime/pg-error.js +110 -0
  89. package/dist/runtime/pg-error.js.map +1 -0
  90. package/dist/runtime/query/aggregate.d.ts +11 -0
  91. package/dist/runtime/query/aggregate.d.ts.map +1 -0
  92. package/dist/runtime/query/aggregate.js +44 -0
  93. package/dist/runtime/query/aggregate.js.map +1 -0
  94. package/dist/runtime/query/compile.d.ts +21 -6
  95. package/dist/runtime/query/compile.d.ts.map +1 -1
  96. package/dist/runtime/query/compile.js +110 -19
  97. package/dist/runtime/query/compile.js.map +1 -1
  98. package/dist/runtime/query/count.d.ts +3 -3
  99. package/dist/runtime/query/count.d.ts.map +1 -1
  100. package/dist/runtime/query/count.js +7 -4
  101. package/dist/runtime/query/count.js.map +1 -1
  102. package/dist/runtime/query/create.d.ts +12 -2
  103. package/dist/runtime/query/create.d.ts.map +1 -1
  104. package/dist/runtime/query/create.js +74 -111
  105. package/dist/runtime/query/create.js.map +1 -1
  106. package/dist/runtime/query/cursor-codec.d.ts +3 -0
  107. package/dist/runtime/query/cursor-codec.d.ts.map +1 -0
  108. package/dist/runtime/query/cursor-codec.js +27 -0
  109. package/dist/runtime/query/cursor-codec.js.map +1 -0
  110. package/dist/runtime/query/cursor.d.ts +22 -0
  111. package/dist/runtime/query/cursor.d.ts.map +1 -0
  112. package/dist/runtime/query/cursor.js +84 -0
  113. package/dist/runtime/query/cursor.js.map +1 -0
  114. package/dist/runtime/query/delete.d.ts +4 -4
  115. package/dist/runtime/query/delete.d.ts.map +1 -1
  116. package/dist/runtime/query/delete.js +18 -8
  117. package/dist/runtime/query/delete.js.map +1 -1
  118. package/dist/runtime/query/execute.d.ts +16 -0
  119. package/dist/runtime/query/execute.d.ts.map +1 -0
  120. package/dist/runtime/query/execute.js +74 -0
  121. package/dist/runtime/query/execute.js.map +1 -0
  122. package/dist/runtime/query/find.d.ts +7 -5
  123. package/dist/runtime/query/find.d.ts.map +1 -1
  124. package/dist/runtime/query/find.js +148 -29
  125. package/dist/runtime/query/find.js.map +1 -1
  126. package/dist/runtime/query/paginate.d.ts +17 -0
  127. package/dist/runtime/query/paginate.d.ts.map +1 -0
  128. package/dist/runtime/query/paginate.js +35 -0
  129. package/dist/runtime/query/paginate.js.map +1 -0
  130. package/dist/runtime/query/primary-key.d.ts +11 -1
  131. package/dist/runtime/query/primary-key.d.ts.map +1 -1
  132. package/dist/runtime/query/primary-key.js +55 -0
  133. package/dist/runtime/query/primary-key.js.map +1 -1
  134. package/dist/runtime/query/relation-writes.d.ts +25 -0
  135. package/dist/runtime/query/relation-writes.d.ts.map +1 -0
  136. package/dist/runtime/query/relation-writes.js +404 -0
  137. package/dist/runtime/query/relation-writes.js.map +1 -0
  138. package/dist/runtime/query/unique.d.ts.map +1 -1
  139. package/dist/runtime/query/unique.js +1 -5
  140. package/dist/runtime/query/unique.js.map +1 -1
  141. package/dist/runtime/query/update.d.ts +4 -4
  142. package/dist/runtime/query/update.d.ts.map +1 -1
  143. package/dist/runtime/query/update.js +97 -38
  144. package/dist/runtime/query/update.js.map +1 -1
  145. package/dist/runtime/query/updated-at.d.ts +6 -0
  146. package/dist/runtime/query/updated-at.d.ts.map +1 -0
  147. package/dist/runtime/query/updated-at.js +21 -0
  148. package/dist/runtime/query/updated-at.js.map +1 -0
  149. package/dist/runtime/query/upsert.d.ts +2 -2
  150. package/dist/runtime/query/upsert.d.ts.map +1 -1
  151. package/dist/runtime/query/upsert.js +12 -8
  152. package/dist/runtime/query/upsert.js.map +1 -1
  153. package/dist/runtime/types.d.ts +21 -11
  154. package/dist/runtime/types.d.ts.map +1 -1
  155. package/dist/schema/column-where.d.ts +30 -14
  156. package/dist/schema/column-where.d.ts.map +1 -1
  157. package/dist/schema/column.d.ts +6 -2
  158. package/dist/schema/column.d.ts.map +1 -1
  159. package/dist/schema/column.js +7 -1
  160. package/dist/schema/column.js.map +1 -1
  161. package/dist/schema/index.d.ts +4 -4
  162. package/dist/schema/index.d.ts.map +1 -1
  163. package/dist/schema/index.js +1 -1
  164. package/dist/schema/index.js.map +1 -1
  165. package/dist/schema/nested-relation-types.d.ts +61 -0
  166. package/dist/schema/nested-relation-types.d.ts.map +1 -0
  167. package/dist/schema/nested-relation-types.js +2 -0
  168. package/dist/schema/nested-relation-types.js.map +1 -0
  169. package/dist/schema/relation-types.d.ts +164 -22
  170. package/dist/schema/relation-types.d.ts.map +1 -1
  171. package/dist/schema/types.d.ts +83 -37
  172. package/dist/schema/types.d.ts.map +1 -1
  173. package/package.json +1 -1
@@ -3,12 +3,17 @@ import type { Manifest } from "../dialect/types.js";
3
3
  import type { TableDef } from "../schema/table.js";
4
4
  import type { WithInput } from "./query/find.js";
5
5
  import type { TypedNeoOrmClient, DefaultWithMap, DefaultRowPayloadMap } from "./types.js";
6
+ export type NeoOrmClientOptions = {
7
+ connectionString?: string;
8
+ migrationsDir?: string;
9
+ };
6
10
  export type TableRepository = {
7
11
  findMany(args?: {
8
12
  where?: Record<string, unknown>;
9
13
  orderBy?: Record<string, string>;
10
14
  limit?: number;
11
15
  offset?: number;
16
+ distinct?: readonly string[] | Record<string, boolean | undefined>;
12
17
  with?: Record<string, WithInput>;
13
18
  }): Promise<Record<string, unknown>[]>;
14
19
  findFirst(args?: {
@@ -27,6 +32,12 @@ export type TableRepository = {
27
32
  data: Record<string, unknown>;
28
33
  with?: Record<string, WithInput>;
29
34
  }): Promise<Record<string, unknown>>;
35
+ createMany(args: {
36
+ data: Record<string, unknown>[];
37
+ }): Promise<number>;
38
+ createManyAndReturn(args: {
39
+ data: Record<string, unknown>[];
40
+ }): Promise<Record<string, unknown>[]>;
30
41
  upsert(args: {
31
42
  where: Record<string, unknown>;
32
43
  create: Record<string, unknown>;
@@ -56,7 +67,26 @@ export type TableRepository = {
56
67
  count(args?: {
57
68
  where?: Record<string, unknown>;
58
69
  }): Promise<number>;
70
+ aggregate(args: {
71
+ where?: Record<string, unknown>;
72
+ _count?: true;
73
+ _avg?: Record<string, true>;
74
+ _sum?: Record<string, true>;
75
+ _min?: Record<string, true>;
76
+ _max?: Record<string, true>;
77
+ }): Promise<Record<string, unknown>>;
59
78
  deleteById(id: string): Promise<Record<string, unknown> | null>;
79
+ paginate(args: {
80
+ where?: Record<string, unknown>;
81
+ orderBy: Record<string, string>;
82
+ take: number;
83
+ after?: Record<string, unknown>;
84
+ with?: Record<string, WithInput>;
85
+ }): Promise<{
86
+ items: Record<string, unknown>[];
87
+ nextCursor: Record<string, unknown> | null;
88
+ hasMore: boolean;
89
+ }>;
60
90
  };
61
91
  /** @deprecated Use TypedNeoOrmClient with createNeoOrmClient generic instead */
62
92
  export interface NeoOrmClient {
@@ -68,7 +98,7 @@ export interface NeoOrmClient {
68
98
  $disconnect(): Promise<void>;
69
99
  [tableAccessor: string]: TableRepository | NeoOrmClient["sql"] | NeoOrmClient["execute"] | NeoOrmClient["$disconnect"];
70
100
  }
71
- export declare function createNeoOrmClient<TTables extends Record<string, TableDef>, TIncludes extends Record<keyof TTables & string, unknown> = DefaultWithMap<TTables>, TRowPayloads extends Record<keyof TTables & string, Record<string, unknown>> = DefaultRowPayloadMap<TTables>>(manifest: Manifest, connectionString?: string): TypedNeoOrmClient<TTables, TIncludes, TRowPayloads>;
72
- export declare function createNeoOrmClientFromPool<TTables extends Record<string, TableDef>, TIncludes extends Record<keyof TTables & string, unknown> = DefaultWithMap<TTables>, TRowPayloads extends Record<keyof TTables & string, Record<string, unknown>> = DefaultRowPayloadMap<TTables>>(manifest: Manifest, pool: Pool): TypedNeoOrmClient<TTables, TIncludes, TRowPayloads>;
73
- export type { TypedNeoOrmClient, TypedTableRepository, DefaultWithMap, DefaultRowPayloadMap, TransactionClient, TransactionOptions, TransactionIsolationLevel, } from "./types.js";
101
+ export declare function createNeoOrmClient<TTables extends Record<string, TableDef>, TIncludes extends Record<keyof TTables & string, unknown> = DefaultWithMap<TTables>, TRowPayloads extends Record<keyof TTables & string, Record<string, unknown>> = DefaultRowPayloadMap<TTables>>(manifest: Manifest, connectionStringOrOptions?: string | NeoOrmClientOptions): TypedNeoOrmClient<TTables, TIncludes, TRowPayloads>;
102
+ export declare function createNeoOrmClientFromPool<TTables extends Record<string, TableDef>, TIncludes extends Record<keyof TTables & string, unknown> = DefaultWithMap<TTables>, TRowPayloads extends Record<keyof TTables & string, Record<string, unknown>> = DefaultRowPayloadMap<TTables>>(manifest: Manifest, pool: Pool, options?: Pick<NeoOrmClientOptions, "migrationsDir">): TypedNeoOrmClient<TTables, TIncludes, TRowPayloads>;
103
+ export type { TypedNeoOrmClient, TypedTableRepository, DefaultWithMap, DefaultRowPayloadMap, TransactionClient, TransactionOptions, TransactionIsolationLevel, PaginateCursor, } from "./types.js";
74
104
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
@@ -3,36 +3,43 @@ import { ensurePlugins } from "../plugins/ensure-plugins.js";
3
3
  import { createExecutor, compileQuery } from "./executor.js";
4
4
  import { findMany, findFirst, findById } from "./query/find.js";
5
5
  import { countRecords, findUnique } from "./query/count.js";
6
- import { createRecord } from "./query/create.js";
6
+ import { createRecord, createManyRecords, createManyAndReturnRecords } from "./query/create.js";
7
+ import { aggregateRecords } from "./query/aggregate.js";
7
8
  import { upsertRecord } from "./query/upsert.js";
8
9
  import { updateRecord, updateManyRecords, updateById } from "./query/update.js";
9
10
  import { deleteRecord, deleteManyRecords, deleteById } from "./query/delete.js";
10
- function createTableRepository(executor, manifest, accessor) {
11
+ import { paginateRecords } from "./query/paginate.js";
12
+ import { runQuery } from "./query/execute.js";
13
+ function createTableRepository(executor, runtime, accessor) {
11
14
  return {
12
- findMany: (args) => findMany(executor, manifest, accessor, args),
13
- findFirst: (args) => findFirst(executor, manifest, accessor, args),
14
- findUnique: (args) => findUnique(executor, manifest, accessor, args),
15
- findById: (id, args) => findById(executor, manifest, accessor, id, args),
16
- create: (args) => createRecord(executor, manifest, accessor, args),
17
- upsert: (args) => upsertRecord(executor, manifest, accessor, args),
18
- update: (args) => updateRecord(executor, manifest, accessor, args),
19
- updateMany: (args) => updateManyRecords(executor, manifest, accessor, args),
20
- updateById: (id, args) => updateById(executor, manifest, accessor, id, args),
21
- delete: (args) => deleteRecord(executor, manifest, accessor, args),
22
- deleteMany: (args) => deleteManyRecords(executor, manifest, accessor, args),
23
- count: (args) => countRecords(executor, manifest, accessor, args),
24
- deleteById: (id) => deleteById(executor, manifest, accessor, id),
15
+ findMany: (args) => findMany(executor, runtime, accessor, args),
16
+ findFirst: (args) => findFirst(executor, runtime, accessor, args),
17
+ findUnique: (args) => findUnique(executor, runtime, accessor, args),
18
+ findById: (id, args) => findById(executor, runtime, accessor, id, args),
19
+ create: (args) => createRecord(executor, runtime, accessor, args),
20
+ createMany: (args) => createManyRecords(executor, runtime, accessor, args),
21
+ createManyAndReturn: (args) => createManyAndReturnRecords(executor, runtime, accessor, args),
22
+ upsert: (args) => upsertRecord(executor, runtime, accessor, args),
23
+ update: (args) => updateRecord(executor, runtime, accessor, args),
24
+ updateMany: (args) => updateManyRecords(executor, runtime, accessor, args),
25
+ updateById: (id, args) => updateById(executor, runtime, accessor, id, args),
26
+ delete: (args) => deleteRecord(executor, runtime, accessor, args),
27
+ deleteMany: (args) => deleteManyRecords(executor, runtime, accessor, args),
28
+ count: (args) => countRecords(executor, runtime, accessor, args),
29
+ aggregate: (args) => aggregateRecords(executor, runtime, accessor, args),
30
+ deleteById: (id) => deleteById(executor, runtime, accessor, id),
31
+ paginate: (args) => paginateRecords(executor, runtime, accessor, args),
25
32
  };
26
33
  }
27
- function buildClient(executor, manifest, disconnect, options) {
34
+ function buildClient(executor, runtime, disconnect, options) {
28
35
  const transactional = options?.transactional ?? false;
29
36
  const client = {
30
37
  sql(strings, ...values) {
31
38
  const { text, params } = compileQuery(strings, values);
32
- return executor.query(text, params);
39
+ return runQuery(executor, runtime, { operation: "raw" }, text, params);
33
40
  },
34
41
  execute(query) {
35
- return executor.query(query.text, query.params);
42
+ return runQuery(executor, runtime, { operation: "raw" }, query.text, query.params);
36
43
  },
37
44
  $disconnect: transactional
38
45
  ? async () => {
@@ -40,46 +47,57 @@ function buildClient(executor, manifest, disconnect, options) {
40
47
  }
41
48
  : disconnect,
42
49
  $transaction(fnOrSteps, txOptions) {
43
- if (transactional) {
44
- throw new Error("Nested transactions are not supported");
45
- }
46
- if (typeof fnOrSteps === "function") {
47
- return executor.transaction(async (txExecutor) => {
48
- const tx = buildClient(txExecutor, manifest, disconnect, { transactional: true });
50
+ const runWithExecutor = async (txExecutor) => {
51
+ const tx = buildClient(txExecutor, runtime, disconnect, { transactional: true });
52
+ if (typeof fnOrSteps === "function") {
49
53
  return fnOrSteps(tx);
50
- }, txOptions);
51
- }
52
- return executor.transaction(async (txExecutor) => {
53
- const tx = buildClient(txExecutor, manifest, disconnect, { transactional: true });
54
+ }
54
55
  const results = [];
55
56
  for (const step of fnOrSteps) {
56
57
  results.push(await step(tx));
57
58
  }
58
59
  return results;
59
- }, txOptions);
60
+ };
61
+ if (transactional) {
62
+ return executor.transaction(runWithExecutor);
63
+ }
64
+ return executor.transaction(runWithExecutor, txOptions);
60
65
  },
61
66
  };
62
- for (const accessor of Object.keys(manifest.tables)) {
63
- client[accessor] = createTableRepository(executor, manifest, accessor);
67
+ for (const accessor of Object.keys(runtime.manifest.tables)) {
68
+ client[accessor] = createTableRepository(executor, runtime, accessor);
64
69
  }
65
70
  return client;
66
71
  }
67
- export function createNeoOrmClient(manifest, connectionString) {
72
+ export function createNeoOrmClient(manifest, connectionStringOrOptions) {
68
73
  ensurePlugins(manifest);
69
- const url = connectionString ?? process.env["DATABASE_URL"];
74
+ const options = typeof connectionStringOrOptions === "string"
75
+ ? { connectionString: connectionStringOrOptions }
76
+ : (connectionStringOrOptions ?? {});
77
+ const url = options.connectionString ?? process.env["DATABASE_URL"];
70
78
  if (!url) {
71
79
  throw new Error("DATABASE_URL is required");
72
80
  }
73
81
  const pool = new Pool({ connectionString: url });
74
82
  const executor = createExecutor(pool);
75
- return buildClient(executor, manifest, async () => {
83
+ const runtime = {
84
+ manifest,
85
+ pool,
86
+ ...(options.migrationsDir !== undefined ? { migrationsDir: options.migrationsDir } : {}),
87
+ };
88
+ return buildClient(executor, runtime, async () => {
76
89
  await pool.end();
77
90
  });
78
91
  }
79
- export function createNeoOrmClientFromPool(manifest, pool) {
92
+ export function createNeoOrmClientFromPool(manifest, pool, options) {
80
93
  ensurePlugins(manifest);
81
94
  const executor = createExecutor(pool);
82
- return buildClient(executor, manifest, async () => {
95
+ const runtime = {
96
+ manifest,
97
+ pool,
98
+ ...(options?.migrationsDir !== undefined ? { migrationsDir: options.migrationsDir } : {}),
99
+ };
100
+ return buildClient(executor, runtime, async () => {
83
101
  await pool.end();
84
102
  });
85
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export type QueryOperation = "select" | "insert" | "update" | "delete" | "upsert" | "raw";
2
+ export type QueryErrorContext = {
3
+ operation: QueryOperation;
4
+ tableAccessor?: string;
5
+ tableSqlName?: string;
6
+ columnTsName?: string;
7
+ columnSqlName?: string;
8
+ sql: string;
9
+ pgCode?: string;
10
+ constraint?: string;
11
+ detail?: string;
12
+ migrationHint?: string;
13
+ };
14
+ export declare function formatQueryError(context: QueryErrorContext): string;
15
+ export declare class NeoOrmQueryError extends Error {
16
+ readonly context: QueryErrorContext;
17
+ readonly cause: unknown;
18
+ constructor(context: QueryErrorContext, cause?: unknown);
19
+ }
20
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,KAAK,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAqBF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA4CnE;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,SAAkB,KAAK,EAAE,OAAO,CAAC;gBAErB,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,OAAO;CAMxD"}
@@ -0,0 +1,68 @@
1
+ const OPERATION_LABEL = {
2
+ select: "Select",
3
+ insert: "Insert",
4
+ update: "Update",
5
+ delete: "Delete",
6
+ upsert: "Upsert",
7
+ raw: "Query",
8
+ };
9
+ function operationTarget(context) {
10
+ if (context.tableAccessor) {
11
+ return `"${context.tableAccessor}"`;
12
+ }
13
+ if (context.tableSqlName) {
14
+ return `"${context.tableSqlName}"`;
15
+ }
16
+ return "query";
17
+ }
18
+ export function formatQueryError(context) {
19
+ const label = OPERATION_LABEL[context.operation];
20
+ const target = operationTarget(context);
21
+ const reason = context.detail ?? "database error";
22
+ const lines = [`${label} on ${target} failed: ${reason}`];
23
+ if (context.tableAccessor || context.tableSqlName) {
24
+ const parts = [];
25
+ if (context.tableAccessor)
26
+ parts.push(`accessor: ${context.tableAccessor}`);
27
+ if (context.tableSqlName)
28
+ parts.push(`SQL: "${context.tableSqlName}"`);
29
+ lines.push(` Table: ${parts.join(", ")}`);
30
+ }
31
+ if (context.columnTsName || context.columnSqlName) {
32
+ if (context.columnTsName &&
33
+ context.columnSqlName &&
34
+ context.columnTsName !== context.columnSqlName) {
35
+ lines.push(` Column: ${context.columnTsName} (SQL: "${context.columnSqlName}")`);
36
+ }
37
+ else if (context.columnTsName) {
38
+ lines.push(` Column: ${context.columnTsName}`);
39
+ }
40
+ else if (context.columnSqlName) {
41
+ lines.push(` Column: SQL: "${context.columnSqlName}"`);
42
+ }
43
+ }
44
+ if (context.constraint) {
45
+ lines.push(` Constraint: ${context.constraint}`);
46
+ }
47
+ if (context.pgCode) {
48
+ lines.push(` PostgreSQL code: ${context.pgCode}`);
49
+ }
50
+ if (context.sql) {
51
+ lines.push(` SQL: ${context.sql}`);
52
+ }
53
+ if (context.migrationHint) {
54
+ lines.push(` Migration: ${context.migrationHint}`);
55
+ }
56
+ return lines.join("\n");
57
+ }
58
+ export class NeoOrmQueryError extends Error {
59
+ context;
60
+ cause;
61
+ constructor(context, cause) {
62
+ super(formatQueryError(context));
63
+ this.name = "NeoOrmQueryError";
64
+ this.context = context;
65
+ this.cause = cause;
66
+ }
67
+ }
68
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export type Executor = {
8
8
  transaction<T>(fn: (tx: Executor) => Promise<T>, options?: TransactionOptions): Promise<T>;
9
9
  };
10
10
  export declare function buildBeginSql(options?: TransactionOptions): string;
11
+ export declare function buildSavepointName(id: number): string;
11
12
  export declare function createExecutor(pool: Pool): Executor;
12
13
  export declare function compileQuery(parts: TemplateStringsArray, values: unknown[]): CompiledQuery;
13
14
  //# sourceMappingURL=executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,IAAI,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,WAAW,CAAC,CAAC,EACX,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;CACf,CAAC;AAYF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAYlE;AAMD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAsCnD;AAgCD,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAa1F"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,IAAI,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,WAAW,CAAC,CAAC,EACX,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;CACf,CAAC;AAYF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAYlE;AAWD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAErD;AAUD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAuCnD;AAgDD,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAa1F"}
@@ -17,6 +17,14 @@ export function buildBeginSql(options) {
17
17
  function rowsFromResult(result) {
18
18
  return result.rows;
19
19
  }
20
+ export function buildSavepointName(id) {
21
+ return `neoorm_sp_${id}`;
22
+ }
23
+ function assertNoSavepointOptions(options) {
24
+ if (options?.readOnly !== undefined || options?.isolationLevel !== undefined) {
25
+ throw new Error("Transaction options (readOnly, isolationLevel) cannot be used with nested transactions");
26
+ }
27
+ }
20
28
  export function createExecutor(pool) {
21
29
  return {
22
30
  async query(text, params = []) {
@@ -32,7 +40,8 @@ export function createExecutor(pool) {
32
40
  const client = await pool.connect();
33
41
  try {
34
42
  await client.query(buildBeginSql(options));
35
- const tx = createClientExecutor(client);
43
+ const state = { client, savepointCounter: 0 };
44
+ const tx = createClientExecutor(state);
36
45
  const result = await fn(tx);
37
46
  await client.query("COMMIT");
38
47
  return result;
@@ -47,7 +56,8 @@ export function createExecutor(pool) {
47
56
  },
48
57
  };
49
58
  }
50
- function createClientExecutor(client) {
59
+ function createClientExecutor(state) {
60
+ const { client } = state;
51
61
  return {
52
62
  inTransaction: true,
53
63
  async query(text, params = []) {
@@ -59,8 +69,21 @@ function createClientExecutor(client) {
59
69
  const rows = rowsFromResult(result);
60
70
  return rows[0] ?? null;
61
71
  },
62
- transaction(_fn, _options) {
63
- throw new Error("Nested transactions are not supported");
72
+ async transaction(fn, options) {
73
+ assertNoSavepointOptions(options);
74
+ const savepointId = ++state.savepointCounter;
75
+ const savepointName = buildSavepointName(savepointId);
76
+ await client.query(`SAVEPOINT ${savepointName}`);
77
+ try {
78
+ const result = await fn(createClientExecutor(state));
79
+ await client.query(`RELEASE SAVEPOINT ${savepointName}`);
80
+ return result;
81
+ }
82
+ catch (err) {
83
+ await client.query(`ROLLBACK TO SAVEPOINT ${savepointName}`);
84
+ await client.query(`RELEASE SAVEPOINT ${savepointName}`);
85
+ throw err;
86
+ }
64
87
  },
65
88
  };
66
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Manifest } from "../dialect/types.js";
2
+ import type { QueryErrorContext, QueryOperation } from "./errors.js";
3
+ export type PgErrorLike = {
4
+ code?: string;
5
+ message?: string;
6
+ detail?: string;
7
+ table?: string;
8
+ column?: string;
9
+ constraint?: string;
10
+ schema?: string;
11
+ };
12
+ export declare function isPgError(err: unknown): err is PgErrorLike;
13
+ export declare function truncateSql(sql: string, maxLen?: number): string;
14
+ export declare function isSchemaDriftPgCode(code: string | undefined): boolean;
15
+ export declare function enrichPgError(err: PgErrorLike, manifest: Manifest, base: Pick<QueryErrorContext, "operation" | "sql"> & {
16
+ tableAccessor?: string;
17
+ }): QueryErrorContext;
18
+ export declare function emptyReturningContext(operation: Extract<QueryOperation, "insert" | "upsert">, manifest: Manifest, tableAccessor: string, sql: string): QueryErrorContext;
19
+ //# sourceMappingURL=pg-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-error.d.ts","sourceRoot":"","sources":["../../src/runtime/pg-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAO1D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,MAAM,CAM7D;AAyDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9E,iBAAiB,CAwCnB;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC,EACvD,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,GACV,iBAAiB,CAYnB"}
@@ -0,0 +1,110 @@
1
+ export function isPgError(err) {
2
+ return (typeof err === "object" &&
3
+ err !== null &&
4
+ "code" in err &&
5
+ typeof err.code === "string");
6
+ }
7
+ export function truncateSql(sql, maxLen = 240) {
8
+ const collapsed = sql.replace(/\s+/g, " ").trim();
9
+ if (collapsed.length <= maxLen) {
10
+ return collapsed;
11
+ }
12
+ return `${collapsed.slice(0, maxLen - 1)}…`;
13
+ }
14
+ function findTableBySqlName(manifest, sqlName) {
15
+ if (!sqlName)
16
+ return undefined;
17
+ return Object.values(manifest.tables).find((table) => table.sqlName === sqlName);
18
+ }
19
+ function findTableByAccessor(manifest, accessor) {
20
+ if (!accessor)
21
+ return undefined;
22
+ return manifest.tables[accessor];
23
+ }
24
+ function resolveColumnNames(table, sqlColumn) {
25
+ if (!sqlColumn) {
26
+ return {};
27
+ }
28
+ const col = table?.columns.find((c) => c.sqlName === sqlColumn);
29
+ return {
30
+ columnSqlName: sqlColumn,
31
+ columnTsName: col?.tsName ?? sqlColumn,
32
+ };
33
+ }
34
+ function headlineForPgCode(err) {
35
+ switch (err.code) {
36
+ case "23502":
37
+ return err.column
38
+ ? `null value in column "${err.column}" violates not-null constraint`
39
+ : "null value violates not-null constraint";
40
+ case "23505":
41
+ return err.constraint
42
+ ? `duplicate key value violates unique constraint "${err.constraint}"`
43
+ : "duplicate key value violates unique constraint";
44
+ case "23503":
45
+ return err.constraint
46
+ ? `foreign key violation on constraint "${err.constraint}"`
47
+ : "foreign key violation";
48
+ case "23514":
49
+ return err.constraint
50
+ ? `check constraint "${err.constraint}" violated`
51
+ : "check constraint violated";
52
+ case "42P01":
53
+ return err.message ?? "relation does not exist";
54
+ case "42703":
55
+ return err.column
56
+ ? `column "${err.column}" does not exist`
57
+ : (err.message ?? "column does not exist");
58
+ default:
59
+ return err.message ?? "database error";
60
+ }
61
+ }
62
+ const SCHEMA_DRIFT_CODES = new Set(["42P01", "42703", "23503"]);
63
+ export function isSchemaDriftPgCode(code) {
64
+ return code !== undefined && SCHEMA_DRIFT_CODES.has(code);
65
+ }
66
+ export function enrichPgError(err, manifest, base) {
67
+ const table = findTableByAccessor(manifest, base.tableAccessor) ??
68
+ findTableBySqlName(manifest, err.table);
69
+ const { columnTsName, columnSqlName } = resolveColumnNames(table, err.column);
70
+ const context = {
71
+ operation: base.operation,
72
+ sql: truncateSql(base.sql),
73
+ detail: err.detail ? `${headlineForPgCode(err)} (${err.detail})` : headlineForPgCode(err),
74
+ };
75
+ const tableAccessor = base.tableAccessor ?? table?.accessor;
76
+ if (tableAccessor !== undefined) {
77
+ context.tableAccessor = tableAccessor;
78
+ }
79
+ const tableSqlName = table?.sqlName ?? err.table;
80
+ if (tableSqlName !== undefined) {
81
+ context.tableSqlName = tableSqlName;
82
+ }
83
+ if (columnTsName !== undefined) {
84
+ context.columnTsName = columnTsName;
85
+ }
86
+ if (columnSqlName !== undefined) {
87
+ context.columnSqlName = columnSqlName;
88
+ }
89
+ if (err.code !== undefined) {
90
+ context.pgCode = err.code;
91
+ }
92
+ if (err.constraint !== undefined) {
93
+ context.constraint = err.constraint;
94
+ }
95
+ return context;
96
+ }
97
+ export function emptyReturningContext(operation, manifest, tableAccessor, sql) {
98
+ const table = manifest.tables[tableAccessor];
99
+ const context = {
100
+ operation,
101
+ tableAccessor,
102
+ sql: truncateSql(sql),
103
+ detail: `${operation === "insert" ? "INSERT" : "UPSERT"} … RETURNING returned no row`,
104
+ };
105
+ if (table?.sqlName !== undefined) {
106
+ context.tableSqlName = table.sqlName;
107
+ }
108
+ return context;
109
+ }
110
+ //# sourceMappingURL=pg-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg-error.js","sourceRoot":"","sources":["../../src/runtime/pg-error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Executor } from "../executor.js";
2
+ import { type QueryRuntime } from "./execute.js";
3
+ export declare function aggregateRecords(executor: Executor, runtime: QueryRuntime, tableAccessor: string, args: {
4
+ where?: Record<string, unknown>;
5
+ _count?: true;
6
+ _avg?: Record<string, true>;
7
+ _sum?: Record<string, true>;
8
+ _min?: Record<string, true>;
9
+ _max?: Record<string, true>;
10
+ }): Promise<Record<string, unknown>>;
11
+ //# sourceMappingURL=aggregate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO/C,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,cAAc,CAAC;AA2B9D,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,EACrB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC7B,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4BlC"}