neoorm 0.1.2 → 0.1.3

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 (68) hide show
  1. package/README.md +171 -11
  2. package/dist/bin/neoorm.js +11 -2
  3. package/dist/bin/neoorm.js.map +1 -1
  4. package/dist/codegen/generate.d.ts +11 -2
  5. package/dist/codegen/generate.d.ts.map +1 -1
  6. package/dist/codegen/generate.js +42 -5
  7. package/dist/codegen/generate.js.map +1 -1
  8. package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
  9. package/dist/codegen/schema-to-manifest.js +12 -6
  10. package/dist/codegen/schema-to-manifest.js.map +1 -1
  11. package/dist/dialect/postgres.d.ts.map +1 -1
  12. package/dist/dialect/postgres.js +5 -0
  13. package/dist/dialect/postgres.js.map +1 -1
  14. package/dist/dialect/types.d.ts +4 -0
  15. package/dist/dialect/types.d.ts.map +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/introspect/pull.d.ts.map +1 -1
  20. package/dist/introspect/pull.js +33 -2
  21. package/dist/introspect/pull.js.map +1 -1
  22. package/dist/plugins/builtin.d.ts +4 -0
  23. package/dist/plugins/builtin.d.ts.map +1 -1
  24. package/dist/plugins/builtin.js +27 -1
  25. package/dist/plugins/builtin.js.map +1 -1
  26. package/dist/runtime/client.d.ts +1 -1
  27. package/dist/runtime/client.d.ts.map +1 -1
  28. package/dist/runtime/client.js +26 -2
  29. package/dist/runtime/client.js.map +1 -1
  30. package/dist/runtime/executor.d.ts +4 -1
  31. package/dist/runtime/executor.d.ts.map +1 -1
  32. package/dist/runtime/executor.js +20 -3
  33. package/dist/runtime/executor.js.map +1 -1
  34. package/dist/runtime/query/compile.d.ts +3 -1
  35. package/dist/runtime/query/compile.d.ts.map +1 -1
  36. package/dist/runtime/query/compile.js +4 -2
  37. package/dist/runtime/query/compile.js.map +1 -1
  38. package/dist/runtime/query/create.d.ts.map +1 -1
  39. package/dist/runtime/query/create.js +61 -72
  40. package/dist/runtime/query/create.js.map +1 -1
  41. package/dist/runtime/query/primary-key.d.ts +4 -0
  42. package/dist/runtime/query/primary-key.d.ts.map +1 -0
  43. package/dist/runtime/query/primary-key.js +23 -0
  44. package/dist/runtime/query/primary-key.js.map +1 -0
  45. package/dist/runtime/query/update.js +2 -2
  46. package/dist/runtime/query/update.js.map +1 -1
  47. package/dist/runtime/query/upsert.d.ts.map +1 -1
  48. package/dist/runtime/query/upsert.js +2 -12
  49. package/dist/runtime/query/upsert.js.map +1 -1
  50. package/dist/runtime/types.d.ts +10 -0
  51. package/dist/runtime/types.d.ts.map +1 -1
  52. package/dist/schema/column.d.ts +6 -2
  53. package/dist/schema/column.d.ts.map +1 -1
  54. package/dist/schema/column.js +4 -1
  55. package/dist/schema/column.js.map +1 -1
  56. package/dist/schema/index.d.ts +2 -1
  57. package/dist/schema/index.d.ts.map +1 -1
  58. package/dist/schema/index.js +1 -1
  59. package/dist/schema/index.js.map +1 -1
  60. package/dist/schema/relation.d.ts +1 -0
  61. package/dist/schema/relation.d.ts.map +1 -1
  62. package/dist/schema/relation.js +16 -11
  63. package/dist/schema/relation.js.map +1 -1
  64. package/dist/utils/uuid.d.ts +6 -0
  65. package/dist/utils/uuid.d.ts.map +1 -0
  66. package/dist/utils/uuid.js +34 -0
  67. package/dist/utils/uuid.js.map +1 -0
  68. package/package.json +1 -1
@@ -1,11 +1,7 @@
1
- import { randomUUID } from "node:crypto";
2
1
  import { quoteIdentifier } from "../../dialect/postgres.js";
3
2
  import { buildInsertQuery, dataToSqlValues, rowToTs, } from "./compile.js";
4
3
  import { loadRelations } from "./find.js";
5
- function generateId(tableAccessor) {
6
- const prefix = tableAccessor.replace(/s$/, "").slice(0, 4);
7
- return `${prefix}_${randomUUID().slice(0, 8)}`;
8
- }
4
+ import { fillMissingPrimaryKeys } from "./primary-key.js";
9
5
  async function resolveConnectOrCreate(executor, manifest, targetAccessor, items) {
10
6
  const ids = [];
11
7
  const targetTable = manifest.tables[targetAccessor];
@@ -24,14 +20,8 @@ async function resolveConnectOrCreate(executor, manifest, targetAccessor, items)
24
20
  }
25
21
  }
26
22
  const createData = { ...item.create };
27
- if (!createData["id"]) {
28
- createData["id"] = generateId(targetAccessor);
29
- }
23
+ fillMissingPrimaryKeys(targetTable, createData);
30
24
  const { keys, values } = dataToSqlValues(targetTable, createData);
31
- if (!keys.includes("id")) {
32
- keys.unshift("id");
33
- values.unshift(createData["id"]);
34
- }
35
25
  const sql = buildInsertQuery(targetTable, keys);
36
26
  const row = await executor.queryOne(sql, values);
37
27
  if (row)
@@ -60,80 +50,79 @@ async function insertJunctionRows(executor, manifest, throughAccessor, leftFkCol
60
50
  data[col.tsName] = new Date();
61
51
  }
62
52
  }
53
+ fillMissingPrimaryKeys(throughTable, data);
63
54
  const { keys, values } = dataToSqlValues(throughTable, data);
64
55
  const sql = buildInsertQuery(throughTable, keys);
65
56
  await executor.query(sql, values);
66
57
  }
67
58
  }
68
- export async function createRecord(executor, manifest, tableAccessor, args) {
59
+ async function runCreate(executor, manifest, tableAccessor, args) {
69
60
  const table = manifest.tables[tableAccessor];
70
61
  if (!table)
71
62
  throw new Error(`Unknown table: ${tableAccessor}`);
72
- return executor.transaction(async (tx) => {
73
- const scalarData = {};
74
- const relationWrites = [];
75
- for (const [key, value] of Object.entries(args.data)) {
76
- const col = table.columns.find((c) => c.tsName === key);
77
- if (col) {
78
- scalarData[key] = value;
79
- continue;
63
+ const scalarData = {};
64
+ const relationWrites = [];
65
+ for (const [key, value] of Object.entries(args.data)) {
66
+ const col = table.columns.find((c) => c.tsName === key);
67
+ if (col) {
68
+ scalarData[key] = value;
69
+ continue;
70
+ }
71
+ const rel = table.relations.find((r) => r.name === key);
72
+ if (rel && value && typeof value === "object") {
73
+ const relValue = value;
74
+ if ("connect" in relValue) {
75
+ relationWrites.push({ relationName: key, type: "connect", value: relValue["connect"] });
80
76
  }
81
- const rel = table.relations.find((r) => r.name === key);
82
- if (rel && value && typeof value === "object") {
83
- const relValue = value;
84
- if ("connect" in relValue) {
85
- relationWrites.push({ relationName: key, type: "connect", value: relValue["connect"] });
86
- }
87
- else if ("connectOrCreate" in relValue) {
88
- relationWrites.push({
89
- relationName: key,
90
- type: "connectOrCreate",
91
- value: relValue["connectOrCreate"],
92
- });
93
- }
77
+ else if ("connectOrCreate" in relValue) {
78
+ relationWrites.push({
79
+ relationName: key,
80
+ type: "connectOrCreate",
81
+ value: relValue["connectOrCreate"],
82
+ });
94
83
  }
95
84
  }
96
- if (!scalarData["id"]) {
97
- scalarData["id"] = generateId(tableAccessor);
98
- }
99
- for (const write of relationWrites) {
100
- if (write.type === "connect") {
101
- const connect = write.value;
102
- const rel = table.relations.find((r) => r.name === write.relationName);
103
- if (rel && rel.cardinality === "one") {
104
- scalarData[rel.fkColumn] = connect.id;
105
- }
85
+ }
86
+ fillMissingPrimaryKeys(table, scalarData);
87
+ for (const write of relationWrites) {
88
+ if (write.type === "connect") {
89
+ const connect = write.value;
90
+ const rel = table.relations.find((r) => r.name === write.relationName);
91
+ if (rel && rel.cardinality === "one") {
92
+ scalarData[rel.fkColumn] = connect.id;
106
93
  }
107
94
  }
108
- const { keys, values } = dataToSqlValues(table, scalarData);
109
- if (!keys.includes("id")) {
110
- keys.unshift("id");
111
- values.unshift(scalarData["id"]);
112
- }
113
- const insertSql = buildInsertQuery(table, keys);
114
- const row = await tx.queryOne(insertSql, values);
115
- if (!row)
116
- throw new Error("Insert failed");
117
- const result = rowToTs(table, row);
118
- const recordId = String(result["id"]);
119
- for (const write of relationWrites) {
120
- if (write.type === "connectOrCreate") {
121
- const m2m = manifest.manyToMany.find((m) => (m.leftAccessor === tableAccessor && m.as === write.relationName) ||
122
- (m.rightAccessor === tableAccessor && m.inverse === write.relationName));
123
- if (m2m) {
124
- const isLeft = m2m.leftAccessor === tableAccessor;
125
- const targetAccessor = isLeft ? m2m.rightAccessor : m2m.leftAccessor;
126
- const items = write.value;
127
- const ids = await resolveConnectOrCreate(tx, manifest, targetAccessor, items);
128
- await insertJunctionRows(tx, manifest, m2m.throughAccessor, m2m.leftFkColumn, m2m.rightFkColumn, recordId, ids);
129
- }
95
+ }
96
+ const { keys, values } = dataToSqlValues(table, scalarData);
97
+ const insertSql = buildInsertQuery(table, keys);
98
+ const row = await executor.queryOne(insertSql, values);
99
+ if (!row)
100
+ throw new Error("Insert failed");
101
+ const result = rowToTs(table, row);
102
+ const recordId = String(result["id"]);
103
+ for (const write of relationWrites) {
104
+ if (write.type === "connectOrCreate") {
105
+ const m2m = manifest.manyToMany.find((m) => (m.leftAccessor === tableAccessor && m.as === write.relationName) ||
106
+ (m.rightAccessor === tableAccessor && m.inverse === write.relationName));
107
+ if (m2m) {
108
+ const isLeft = m2m.leftAccessor === tableAccessor;
109
+ const targetAccessor = isLeft ? m2m.rightAccessor : m2m.leftAccessor;
110
+ const items = write.value;
111
+ const ids = await resolveConnectOrCreate(executor, manifest, targetAccessor, items);
112
+ await insertJunctionRows(executor, manifest, m2m.throughAccessor, m2m.leftFkColumn, m2m.rightFkColumn, recordId, ids);
130
113
  }
131
114
  }
132
- if (args.with) {
133
- const [withLoaded] = await loadRelations(tx, manifest, table, [result], args.with);
134
- return withLoaded ?? result;
135
- }
136
- return result;
137
- });
115
+ }
116
+ if (args.with) {
117
+ const [withLoaded] = await loadRelations(executor, manifest, table, [result], args.with);
118
+ return withLoaded ?? result;
119
+ }
120
+ return result;
121
+ }
122
+ export async function createRecord(executor, manifest, tableAccessor, args) {
123
+ if (executor.inTransaction) {
124
+ return runCreate(executor, manifest, tableAccessor, args);
125
+ }
126
+ return executor.transaction((tx) => runCreate(tx, manifest, tableAccessor, args));
138
127
  }
139
128
  //# sourceMappingURL=create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/runtime/query/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/runtime/query/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ManifestColumn, ManifestTable } from "../../dialect/types.js";
2
+ export declare function defaultPrimaryKeyValue(table: ManifestTable, col: ManifestColumn): string;
3
+ export declare function fillMissingPrimaryKeys(table: ManifestTable, data: Record<string, unknown>): void;
4
+ //# sourceMappingURL=primary-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primary-key.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/primary-key.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAQ5E,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,cAAc,GAClB,MAAM,CAKR;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAON"}
@@ -0,0 +1,23 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { generateUuid, resolveUuidVersion } from "../../utils/uuid.js";
3
+ function generateTextId(tableAccessor) {
4
+ const prefix = tableAccessor.replace(/s$/, "").slice(0, 4);
5
+ return `${prefix}_${randomUUID().slice(0, 8)}`;
6
+ }
7
+ export function defaultPrimaryKeyValue(table, col) {
8
+ if (col.kind === "uuid") {
9
+ return generateUuid(resolveUuidVersion(col));
10
+ }
11
+ return generateTextId(table.accessor);
12
+ }
13
+ export function fillMissingPrimaryKeys(table, data) {
14
+ for (const col of table.columns) {
15
+ if (!col.primary)
16
+ continue;
17
+ const current = data[col.tsName];
18
+ if (current !== undefined && current !== null)
19
+ continue;
20
+ data[col.tsName] = defaultPrimaryKeyValue(table, col);
21
+ }
22
+ }
23
+ //# sourceMappingURL=primary-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primary-key.js","sourceRoot":"","sources":["../../../src/runtime/query/primary-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,SAAS,cAAc,CAAC,aAAqB;IAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAoB,EACpB,GAAmB;IAEnB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAoB,EACpB,IAA6B;IAE7B,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,SAAS;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;YAAE,SAAS;QACxD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
@@ -21,7 +21,7 @@ export async function updateRecord(executor, manifest, tableAccessor, args) {
21
21
  }
22
22
  }
23
23
  }
24
- const { keys, values } = dataToSqlValues(table, scalarData);
24
+ const { keys, values } = dataToSqlValues(table, scalarData, { excludePrimary: true });
25
25
  if (keys.length === 0) {
26
26
  throw new Error("Update requires at least one scalar field");
27
27
  }
@@ -44,7 +44,7 @@ export async function updateManyRecords(executor, manifest, tableAccessor, args)
44
44
  const table = manifest.tables[tableAccessor];
45
45
  if (!table)
46
46
  throw new Error(`Unknown table: ${tableAccessor}`);
47
- const { keys, values } = dataToSqlValues(table, args.data);
47
+ const { keys, values } = dataToSqlValues(table, args.data, { excludePrimary: true });
48
48
  if (keys.length === 0) {
49
49
  throw new Error("Update requires at least one scalar field");
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/runtime/query/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/runtime/query/update.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upsert.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/upsert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO/C,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAO1D,wBAAsB,YAAY,CAChC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAuClC"}
1
+ {"version":3,"file":"upsert.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/upsert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO/C,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAG1D,wBAAsB,YAAY,CAChC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiClC"}
@@ -1,25 +1,15 @@
1
- import { randomUUID } from "node:crypto";
2
1
  import { buildUpsertQuery, dataToSqlValues, rowToTs, } from "./compile.js";
3
2
  import { assertUniqueWhere } from "./unique.js";
4
3
  import { loadRelations } from "./find.js";
5
- function generateId(tableAccessor) {
6
- const prefix = tableAccessor.replace(/s$/, "").slice(0, 4);
7
- return `${prefix}_${randomUUID().slice(0, 8)}`;
8
- }
4
+ import { fillMissingPrimaryKeys } from "./primary-key.js";
9
5
  export async function upsertRecord(executor, manifest, tableAccessor, args) {
10
6
  const table = manifest.tables[tableAccessor];
11
7
  if (!table)
12
8
  throw new Error(`Unknown table: ${tableAccessor}`);
13
9
  const constraint = assertUniqueWhere(table, args.where, "upsert");
14
10
  const createData = { ...args.create, ...args.where };
15
- if (!createData["id"]) {
16
- createData["id"] = generateId(tableAccessor);
17
- }
11
+ fillMissingPrimaryKeys(table, createData);
18
12
  const { keys: insertKeys, values: insertValues } = dataToSqlValues(table, createData);
19
- if (!insertKeys.includes("id") && createData["id"] !== undefined) {
20
- insertKeys.unshift("id");
21
- insertValues.unshift(createData["id"]);
22
- }
23
13
  const updateKeys = Object.keys(args.update).filter((key) => {
24
14
  const col = table.columns.find((c) => c.tsName === key);
25
15
  return col !== undefined && !col.primary && args.update[key] !== undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"upsert.js","sourceRoot":"","sources":["../../../src/runtime/query/upsert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upsert.js","sourceRoot":"","sources":["../../../src/runtime/query/upsert.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAkB,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAkB,EAClB,QAAkB,EAClB,aAAqB,EACrB,IAKC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,aAAa,EAAE,CAAC,CAAC;IAE/D,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACrD,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAE1C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAEtF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACzD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;QACxD,OAAO,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,gBAAgB,CAChC,KAAK,EACL,UAAU,EACV,UAAU,EACV,UAAU,CAAC,UAAU,CACtB,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC7D,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACzF,OAAO,UAAU,IAAI,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -30,6 +30,12 @@ export type DefaultWithMap<TTables extends Record<string, TableDef>> = {
30
30
  export type DefaultRowPayloadMap<TTables extends Record<string, TableDef>> = {
31
31
  [K in keyof TTables & string]: Record<string, unknown>;
32
32
  };
33
+ export type TransactionIsolationLevel = "ReadUncommitted" | "ReadCommitted" | "RepeatableRead" | "Serializable";
34
+ export type TransactionOptions = {
35
+ isolationLevel?: TransactionIsolationLevel;
36
+ readOnly?: boolean;
37
+ };
38
+ export type TransactionClient<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>> = TypedNeoOrmClient<TTables, TIncludes, TRowPayloads>;
33
39
  export type TypedTableRepository<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TWith = WithInputMap<TSchema, TAccessor>, TRowPayload extends Record<string, unknown> = DefaultRowPayloadMap<TSchema>[TAccessor]> = {
34
40
  findMany<W extends TWith | undefined = undefined>(args?: FindManyArgsWith<TSchema, TAccessor, W>): Promise<Array<TRowPayload>>;
35
41
  findFirst<W extends TWith | undefined = undefined>(args?: FindFirstArgsWith<TSchema, TAccessor, W>): Promise<TRowPayload | null>;
@@ -55,6 +61,10 @@ export type TypedNeoOrmClient<TTables extends Record<string, TableDef>, TInclude
55
61
  params: unknown[];
56
62
  }): Promise<Record<string, unknown>[]>;
57
63
  $disconnect(): Promise<void>;
64
+ $transaction<T>(fn: (tx: TransactionClient<TTables, TIncludes, TRowPayloads>) => Promise<T>, options?: TransactionOptions): Promise<T>;
65
+ $transaction<T extends readonly unknown[]>(steps: {
66
+ [K in keyof T]: (tx: TransactionClient<TTables, TIncludes, TRowPayloads>) => Promise<T[K]>;
67
+ } & readonly unknown[], options?: TransactionOptions): Promise<T>;
58
68
  } & {
59
69
  [K in keyof TTables & string]: TypedTableRepository<TTables, K, TIncludes[K], TRowPayloads[K]>;
60
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type CoreColumnKind = "id" | "text" | "bool" | "int" | "timestamp" | "fk";
1
+ export type CoreColumnKind = "id" | "text" | "bool" | "int" | "timestamp" | "uuid" | "fk";
2
2
  export type ColumnKind = CoreColumnKind | (string & {});
3
3
  export type ColumnMeta = {
4
4
  kind: ColumnKind;
@@ -8,6 +8,7 @@ export type ColumnMeta = {
8
8
  defaultValue?: unknown;
9
9
  defaultNow: boolean;
10
10
  typeOptions?: Record<string, unknown> | undefined;
11
+ mapName?: string | undefined;
11
12
  };
12
13
  export type ColumnBuilder<TValue, TMeta extends ColumnMeta = ColumnMeta> = {
13
14
  readonly _type: TValue;
@@ -27,7 +28,10 @@ export type ColumnBuilder<TValue, TMeta extends ColumnMeta = ColumnMeta> = {
27
28
  primary(): ColumnBuilder<TValue, Omit<TMeta, "primary"> & {
28
29
  primary: true;
29
30
  }>;
31
+ map(name: string): ColumnBuilder<TValue, Omit<TMeta, "mapName"> & {
32
+ mapName: string;
33
+ }>;
30
34
  };
31
35
  export declare function createColumnBuilder<TValue, TMeta extends ColumnMeta>(meta: TMeta): ColumnBuilder<TValue, TMeta>;
32
- export { id, text, bool, int, timestamp } from "../plugins/builtin.js";
36
+ export { id, text, bool, int, timestamp, uuid } from "../plugins/builtin.js";
33
37
  //# sourceMappingURL=column.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../src/schema/column.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,IAAI,CAAC;AACjF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,MAAM,EAAE,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAChF,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtG,UAAU,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG;QAAE,UAAU,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IACtF,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,KAAK,SAAS,UAAU,EAClE,IAAI,EAAE,KAAK,GACV,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CA+B9B;AAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"column.d.ts","sourceRoot":"","sources":["../../src/schema/column.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,IAAI,GACJ,MAAM,GACN,MAAM,GACN,KAAK,GACL,WAAW,GACX,MAAM,GACN,IAAI,CAAC;AACT,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,MAAM,EAAE,KAAK,SAAS,UAAU,GAAG,UAAU,IAAI;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAChF,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;QAAE,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtG,UAAU,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG;QAAE,UAAU,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IACtF,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAC7E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxF,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,KAAK,SAAS,UAAU,EAClE,IAAI,EAAE,KAAK,GACV,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAoC9B;AAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC"}
@@ -17,8 +17,11 @@ export function createColumnBuilder(meta) {
17
17
  primary() {
18
18
  return createColumnBuilder({ ...meta, primary: true });
19
19
  },
20
+ map(name) {
21
+ return createColumnBuilder({ ...meta, mapName: name });
22
+ },
20
23
  };
21
24
  return builder;
22
25
  }
23
- export { id, text, bool, int, timestamp } from "../plugins/builtin.js";
26
+ export { id, text, bool, int, timestamp, uuid } from "../plugins/builtin.js";
24
27
  //# sourceMappingURL=column.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/schema/column.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,mBAAmB,CACjC,IAAW;IAEX,MAAM,OAAO,GAAiC;QAC5C,KAAK,EAAE,SAA8B;QACrC,KAAK,EAAE,IAAI;QACX,OAAO;YACL,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAmD,CAC9E,CAAC;QACJ,CAAC;QACD,MAAM;YACJ,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAA8C,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,KAAa;YACnB,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAA4D,CAC3F,CAAC;QACJ,CAAC;QACD,UAAU;YACR,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,EAAsD,CAClF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAgD,CACzE,CAAC;QACJ,CAAC;KACF,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"column.js","sourceRoot":"","sources":["../../src/schema/column.ts"],"names":[],"mappings":"AAgCA,MAAM,UAAU,mBAAmB,CACjC,IAAW;IAEX,MAAM,OAAO,GAAiC;QAC5C,KAAK,EAAE,SAA8B;QACrC,KAAK,EAAE,IAAI;QACX,OAAO;YACL,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAmD,CAC9E,CAAC;QACJ,CAAC;QACD,MAAM;YACJ,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAA8C,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,KAAa;YACnB,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,KAAK,EAA4D,CAC3F,CAAC;QACJ,CAAC;QACD,UAAU;YACR,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,EAAsD,CAClF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAgD,CACzE,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,IAAY;YACd,OAAO,mBAAmB,CACxB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAkD,CAC3E,CAAC;QACJ,CAAC;KACF,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,4 +1,5 @@
1
- export { id, text, bool, int, timestamp } from "./column.js";
1
+ export { id, text, bool, int, timestamp, uuid } from "./column.js";
2
+ export type { UuidOptions } from "../plugins/builtin.js";
2
3
  export type { ColumnBuilder, ColumnKind, ColumnMeta } from "./column.js";
3
4
  export { fk } from "./relation.js";
4
5
  export type { FkBuilder, FkMeta, FkOptions, OnDeleteAction } from "./relation.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9D,YAAY,EACV,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9D,YAAY,EACV,SAAS,EACT,UAAU,EACV,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC"}
@@ -1,4 +1,4 @@
1
- export { id, text, bool, int, timestamp } from "./column.js";
1
+ export { id, text, bool, int, timestamp, uuid } from "./column.js";
2
2
  export { fk } from "./relation.js";
3
3
  export { table, index, unique, primaryKey } from "./table.js";
4
4
  export { defineSchema } from "./define-schema.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7D,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAGnC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAU9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAInE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAGnC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAU9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -12,6 +12,7 @@ export type FkBuilder = {
12
12
  readonly _meta: FkMeta;
13
13
  notNull(): FkBuilder;
14
14
  unique(): FkBuilder;
15
+ map(name: string): FkBuilder;
15
16
  };
16
17
  export type FkOptions = {
17
18
  as: string;
@@ -1 +1 @@
1
- {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/schema/relation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAE/E,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,IAAI,SAAS,CAAC;IACrB,MAAM,IAAI,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,wBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,SAAS,CAyBhE"}
1
+ {"version":3,"file":"relation.d.ts","sourceRoot":"","sources":["../../src/schema/relation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAE/E,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,IAAI,SAAS,CAAC;IACrB,MAAM,IAAI,SAAS,CAAC;IACpB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEF,wBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,SAAS,CA8BhE"}
@@ -10,16 +10,21 @@ export function fk(target, options) {
10
10
  inverse: options.inverse,
11
11
  ...(options.onDelete !== undefined ? { onDelete: options.onDelete } : {}),
12
12
  };
13
- const builder = {
14
- _type: null,
15
- _meta: meta,
16
- notNull() {
17
- return fk(target, { ...options, nullable: false });
18
- },
19
- unique() {
20
- return fk(target, { ...options, unique: true });
21
- },
22
- };
23
- return builder;
13
+ function withMeta(next) {
14
+ return {
15
+ _type: null,
16
+ _meta: next,
17
+ notNull() {
18
+ return withMeta({ ...next, nullable: false });
19
+ },
20
+ unique() {
21
+ return withMeta({ ...next, unique: true });
22
+ },
23
+ map(name) {
24
+ return withMeta({ ...next, mapName: name });
25
+ },
26
+ };
27
+ }
28
+ return withMeta(meta);
24
29
  }
25
30
  //# sourceMappingURL=relation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/schema/relation.ts"],"names":[],"mappings":"AA2BA,MAAM,UAAU,EAAE,CAAC,MAAc,EAAE,OAAkB;IACnD,MAAM,IAAI,GAAW;QACnB,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,KAAK;QACjB,MAAM;QACN,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;IAEF,MAAM,OAAO,GAAc;QACzB,KAAK,EAAE,IAAqB;QAC5B,KAAK,EAAE,IAAI;QACX,OAAO;YACL,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM;YACJ,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"relation.js","sourceRoot":"","sources":["../../src/schema/relation.ts"],"names":[],"mappings":"AA4BA,MAAM,UAAU,EAAE,CAAC,MAAc,EAAE,OAAkB;IACnD,MAAM,IAAI,GAAW;QACnB,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,KAAK;QACjB,MAAM;QACN,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;IAEF,SAAS,QAAQ,CAAC,IAAY;QAC5B,OAAO;YACL,KAAK,EAAE,IAAqB;YAC5B,KAAK,EAAE,IAAI;YACX,OAAO;gBACL,OAAO,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,MAAM;gBACJ,OAAO,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,GAAG,CAAC,IAAY;gBACd,OAAO,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;SACF,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ManifestColumn } from "../dialect/types.js";
2
+ export type UuidVersion = 4 | 7;
3
+ export declare function parseUuidVersion(value: string): UuidVersion;
4
+ export declare function resolveUuidVersion(col: ManifestColumn): UuidVersion;
5
+ export declare function generateUuid(version?: UuidVersion): string;
6
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/utils/uuid.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;AAMhC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAG3D;AAoBD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,WAAW,CAEnE;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,WAAe,GAAG,MAAM,CAQ7D"}
@@ -0,0 +1,34 @@
1
+ import { randomBytes, randomUUID } from "node:crypto";
2
+ import * as crypto from "node:crypto";
3
+ const randomUUIDv7 = crypto.randomUUIDv7;
4
+ export function parseUuidVersion(value) {
5
+ const versionNibble = Number.parseInt(value[14] ?? "0", 16);
6
+ return versionNibble === 4 ? 4 : 7;
7
+ }
8
+ function generateUuidV7Fallback() {
9
+ const bytes = randomBytes(16);
10
+ const timestamp = BigInt(Date.now());
11
+ bytes[0] = Number((timestamp >> 40n) & 0xffn);
12
+ bytes[1] = Number((timestamp >> 32n) & 0xffn);
13
+ bytes[2] = Number((timestamp >> 24n) & 0xffn);
14
+ bytes[3] = Number((timestamp >> 16n) & 0xffn);
15
+ bytes[4] = Number((timestamp >> 8n) & 0xffn);
16
+ bytes[5] = Number(timestamp & 0xffn);
17
+ bytes[6] = (bytes[6] & 0x0f) | 0x70;
18
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
19
+ const hex = [...bytes].map((byte) => byte.toString(16).padStart(2, "0")).join("");
20
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
21
+ }
22
+ export function resolveUuidVersion(col) {
23
+ return col.typeOptions?.version === 4 ? 4 : 7;
24
+ }
25
+ export function generateUuid(version = 7) {
26
+ if (version === 4) {
27
+ return randomUUID();
28
+ }
29
+ if (randomUUIDv7) {
30
+ return randomUUIDv7();
31
+ }
32
+ return generateUuidV7Fallback();
33
+ }
34
+ //# sourceMappingURL=uuid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/utils/uuid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAKtC,MAAM,YAAY,GAAI,MAEpB,CAAC,YAAY,CAAC;AAEhB,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5D,OAAO,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAErC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC9C,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC9C,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC9C,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC9C,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;IAErC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAErC,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClF,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAmB;IACpD,OAAO,GAAG,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAuB,CAAC;IACnD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC;IACD,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neoorm",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "TypeScript-first PostgreSQL ORM with schema DSL, codegen, and typed relations",
5
5
  "license": "MIT",
6
6
  "repository": {