dsqlbase 0.0.1 → 0.1.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.
Files changed (159) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +86 -0
  3. package/dist/client/create.d.ts +73 -0
  4. package/dist/client/create.d.ts.map +1 -0
  5. package/dist/client/create.js +82 -0
  6. package/dist/client/create.js.map +1 -0
  7. package/dist/client/database/base.d.ts +8 -0
  8. package/dist/client/database/base.d.ts.map +1 -0
  9. package/dist/client/database/base.js +13 -0
  10. package/dist/client/database/base.js.map +1 -0
  11. package/dist/client/database/client.d.ts +5 -0
  12. package/dist/client/database/client.d.ts.map +1 -0
  13. package/dist/client/database/client.js +4 -0
  14. package/dist/client/database/client.js.map +1 -0
  15. package/dist/client/database/index.d.ts +9 -0
  16. package/dist/client/database/index.d.ts.map +1 -0
  17. package/dist/client/database/index.js +3 -0
  18. package/dist/client/database/index.js.map +1 -0
  19. package/dist/client/index.d.ts +6 -0
  20. package/dist/client/index.d.ts.map +1 -0
  21. package/dist/client/index.js +5 -0
  22. package/dist/client/index.js.map +1 -0
  23. package/dist/client/model/base.d.ts +330 -0
  24. package/dist/client/model/base.d.ts.map +1 -0
  25. package/dist/client/model/base.js +7 -0
  26. package/dist/client/model/base.js.map +1 -0
  27. package/dist/client/model/client.d.ts +102 -0
  28. package/dist/client/model/client.d.ts.map +1 -0
  29. package/dist/client/model/client.js +123 -0
  30. package/dist/client/model/client.js.map +1 -0
  31. package/dist/client/model/normalizer.d.ts +19 -0
  32. package/dist/client/model/normalizer.d.ts.map +1 -0
  33. package/dist/client/model/normalizer.js +221 -0
  34. package/dist/client/model/normalizer.js.map +1 -0
  35. package/dist/index.d.ts +3 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +2 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/pg/index.d.ts +9 -0
  40. package/dist/pg/index.d.ts.map +1 -0
  41. package/dist/pg/index.js +14 -0
  42. package/dist/pg/index.js.map +1 -0
  43. package/dist/pglite/index.d.ts +9 -0
  44. package/dist/pglite/index.d.ts.map +1 -0
  45. package/dist/pglite/index.js +14 -0
  46. package/dist/pglite/index.js.map +1 -0
  47. package/dist/schema/columns/array.d.ts +16 -0
  48. package/dist/schema/columns/array.d.ts.map +1 -0
  49. package/dist/schema/columns/array.js +24 -0
  50. package/dist/schema/columns/array.js.map +1 -0
  51. package/dist/schema/columns/bigint.d.ts +11 -0
  52. package/dist/schema/columns/bigint.d.ts.map +1 -0
  53. package/dist/schema/columns/bigint.js +19 -0
  54. package/dist/schema/columns/bigint.js.map +1 -0
  55. package/dist/schema/columns/boolean.d.ts +10 -0
  56. package/dist/schema/columns/boolean.d.ts.map +1 -0
  57. package/dist/schema/columns/boolean.js +18 -0
  58. package/dist/schema/columns/boolean.js.map +1 -0
  59. package/dist/schema/columns/bytea.d.ts +8 -0
  60. package/dist/schema/columns/bytea.d.ts.map +1 -0
  61. package/dist/schema/columns/bytea.js +16 -0
  62. package/dist/schema/columns/bytea.js.map +1 -0
  63. package/dist/schema/columns/char.d.ts +10 -0
  64. package/dist/schema/columns/char.d.ts.map +1 -0
  65. package/dist/schema/columns/char.js +18 -0
  66. package/dist/schema/columns/char.js.map +1 -0
  67. package/dist/schema/columns/date.d.ts +23 -0
  68. package/dist/schema/columns/date.d.ts.map +1 -0
  69. package/dist/schema/columns/date.js +29 -0
  70. package/dist/schema/columns/date.js.map +1 -0
  71. package/dist/schema/columns/double.d.ts +13 -0
  72. package/dist/schema/columns/double.d.ts.map +1 -0
  73. package/dist/schema/columns/double.js +21 -0
  74. package/dist/schema/columns/double.js.map +1 -0
  75. package/dist/schema/columns/identity.d.ts +56 -0
  76. package/dist/schema/columns/identity.d.ts.map +1 -0
  77. package/dist/schema/columns/identity.js +65 -0
  78. package/dist/schema/columns/identity.js.map +1 -0
  79. package/dist/schema/columns/int.d.ts +11 -0
  80. package/dist/schema/columns/int.d.ts.map +1 -0
  81. package/dist/schema/columns/int.js +19 -0
  82. package/dist/schema/columns/int.js.map +1 -0
  83. package/dist/schema/columns/interval.d.ts +23 -0
  84. package/dist/schema/columns/interval.d.ts.map +1 -0
  85. package/dist/schema/columns/interval.js +40 -0
  86. package/dist/schema/columns/interval.js.map +1 -0
  87. package/dist/schema/columns/json.d.ts +9 -0
  88. package/dist/schema/columns/json.d.ts.map +1 -0
  89. package/dist/schema/columns/json.js +18 -0
  90. package/dist/schema/columns/json.js.map +1 -0
  91. package/dist/schema/columns/numeric.d.ts +11 -0
  92. package/dist/schema/columns/numeric.d.ts.map +1 -0
  93. package/dist/schema/columns/numeric.js +19 -0
  94. package/dist/schema/columns/numeric.js.map +1 -0
  95. package/dist/schema/columns/real.d.ts +13 -0
  96. package/dist/schema/columns/real.d.ts.map +1 -0
  97. package/dist/schema/columns/real.js +21 -0
  98. package/dist/schema/columns/real.js.map +1 -0
  99. package/dist/schema/columns/smallint.d.ts +11 -0
  100. package/dist/schema/columns/smallint.d.ts.map +1 -0
  101. package/dist/schema/columns/smallint.js +19 -0
  102. package/dist/schema/columns/smallint.js.map +1 -0
  103. package/dist/schema/columns/text.d.ts +9 -0
  104. package/dist/schema/columns/text.d.ts.map +1 -0
  105. package/dist/schema/columns/text.js +17 -0
  106. package/dist/schema/columns/text.js.map +1 -0
  107. package/dist/schema/columns/time.d.ts +20 -0
  108. package/dist/schema/columns/time.d.ts.map +1 -0
  109. package/dist/schema/columns/time.js +19 -0
  110. package/dist/schema/columns/time.js.map +1 -0
  111. package/dist/schema/columns/timestamp.d.ts +40 -0
  112. package/dist/schema/columns/timestamp.d.ts.map +1 -0
  113. package/dist/schema/columns/timestamp.js +48 -0
  114. package/dist/schema/columns/timestamp.js.map +1 -0
  115. package/dist/schema/columns/uuid.d.ts +17 -0
  116. package/dist/schema/columns/uuid.d.ts.map +1 -0
  117. package/dist/schema/columns/uuid.js +27 -0
  118. package/dist/schema/columns/uuid.js.map +1 -0
  119. package/dist/schema/columns/varchar.d.ts +9 -0
  120. package/dist/schema/columns/varchar.d.ts.map +1 -0
  121. package/dist/schema/columns/varchar.js +17 -0
  122. package/dist/schema/columns/varchar.js.map +1 -0
  123. package/dist/schema/domain.d.ts +19 -0
  124. package/dist/schema/domain.d.ts.map +1 -0
  125. package/dist/schema/domain.js +37 -0
  126. package/dist/schema/domain.js.map +1 -0
  127. package/dist/schema/index.d.ts +27 -0
  128. package/dist/schema/index.d.ts.map +1 -0
  129. package/dist/schema/index.js +25 -0
  130. package/dist/schema/index.js.map +1 -0
  131. package/dist/schema/namespace.d.ts +22 -0
  132. package/dist/schema/namespace.d.ts.map +1 -0
  133. package/dist/schema/namespace.js +24 -0
  134. package/dist/schema/namespace.js.map +1 -0
  135. package/dist/schema/relations.d.ts +12 -0
  136. package/dist/schema/relations.d.ts.map +1 -0
  137. package/dist/schema/relations.js +29 -0
  138. package/dist/schema/relations.js.map +1 -0
  139. package/dist/schema/sequence.d.ts +14 -0
  140. package/dist/schema/sequence.d.ts.map +1 -0
  141. package/dist/schema/sequence.js +16 -0
  142. package/dist/schema/sequence.js.map +1 -0
  143. package/dist/schema/table.d.ts +20 -0
  144. package/dist/schema/table.d.ts.map +1 -0
  145. package/dist/schema/table.js +22 -0
  146. package/dist/schema/table.js.map +1 -0
  147. package/dist/schema/utils/date.d.ts +33 -0
  148. package/dist/schema/utils/date.d.ts.map +1 -0
  149. package/dist/schema/utils/date.js +62 -0
  150. package/dist/schema/utils/date.js.map +1 -0
  151. package/dist/schema/utils/duration.d.ts +66 -0
  152. package/dist/schema/utils/duration.d.ts.map +1 -0
  153. package/dist/schema/utils/duration.js +167 -0
  154. package/dist/schema/utils/duration.js.map +1 -0
  155. package/dist/schema/utils/json.d.ts +2 -0
  156. package/dist/schema/utils/json.d.ts.map +1 -0
  157. package/dist/schema/utils/json.js +12 -0
  158. package/dist/schema/utils/json.js.map +1 -0
  159. package/package.json +34 -5
@@ -0,0 +1,221 @@
1
+ import { sql, } from "@dsqlbase/core";
2
+ import { isFilterType, } from "./base.js";
3
+ export class RequestNormalizer {
4
+ _ctx;
5
+ constructor(context) {
6
+ this._ctx = context;
7
+ }
8
+ _getWhereExpression(table, where) {
9
+ if (!where) {
10
+ return undefined;
11
+ }
12
+ const expressions = [];
13
+ for (const [fieldName, condition] of Object.entries(where)) {
14
+ if (fieldName === "and" && Array.isArray(condition)) {
15
+ const exp = sql.and(condition
16
+ .map((expr) => this._getWhereExpression(table, expr))
17
+ .filter(Boolean));
18
+ expressions.push(sql.wrap(exp));
19
+ continue;
20
+ }
21
+ if (fieldName === "or" && Array.isArray(condition)) {
22
+ const exp = sql.or(condition
23
+ .map((expr) => this._getWhereExpression(table, expr))
24
+ .filter(Boolean));
25
+ expressions.push(sql.wrap(exp));
26
+ continue;
27
+ }
28
+ if (fieldName === "not" &&
29
+ typeof condition === "object" &&
30
+ condition !== null &&
31
+ !Array.isArray(condition)) {
32
+ const shouldWrapNot = Object.keys(condition).length > 1;
33
+ const expr = this._getWhereExpression(table, condition);
34
+ if (expr) {
35
+ expressions.push(shouldWrapNot ? sql.wrap(sql.not(expr)) : sql.not(expr));
36
+ }
37
+ continue;
38
+ }
39
+ const column = table.getColumn(fieldName);
40
+ if (!column) {
41
+ throw new Error(`Invalid field "${fieldName}" in where clause for table "${table.name}".`);
42
+ }
43
+ if (isFilterType(condition, "eq")) {
44
+ expressions.push(sql.eq(column, condition.eq));
45
+ continue;
46
+ }
47
+ if (isFilterType(condition, "neq")) {
48
+ expressions.push(sql.ne(column, condition.neq));
49
+ continue;
50
+ }
51
+ if (isFilterType(condition, "gt")) {
52
+ expressions.push(sql.gt(column, condition.gt));
53
+ continue;
54
+ }
55
+ if (isFilterType(condition, "gte")) {
56
+ expressions.push(sql.gte(column, condition.gte));
57
+ continue;
58
+ }
59
+ if (isFilterType(condition, "lt")) {
60
+ expressions.push(sql.lt(column, condition.lt));
61
+ continue;
62
+ }
63
+ if (isFilterType(condition, "lte")) {
64
+ expressions.push(sql.lte(column, condition.lte));
65
+ continue;
66
+ }
67
+ if (isFilterType(condition, "in")) {
68
+ expressions.push(sql.in(column, condition.in));
69
+ continue;
70
+ }
71
+ if (isFilterType(condition, "between")) {
72
+ expressions.push(sql `${column} BETWEEN ${sql.param(condition.between[0])} AND ${sql.param(condition.between[1])}`);
73
+ continue;
74
+ }
75
+ if (isFilterType(condition, "exists")) {
76
+ if (condition.exists) {
77
+ expressions.push(sql.isNotNull(column));
78
+ }
79
+ else {
80
+ expressions.push(sql.isNull(column));
81
+ }
82
+ continue;
83
+ }
84
+ if (isFilterType(condition, "beginsWith")) {
85
+ expressions.push(sql.like(column, `${condition.beginsWith}%`));
86
+ continue;
87
+ }
88
+ if (isFilterType(condition, "endsWith")) {
89
+ expressions.push(sql.like(column, `%${condition.endsWith}`));
90
+ continue;
91
+ }
92
+ if (isFilterType(condition, "contains")) {
93
+ expressions.push(sql.like(column, `%${condition.contains}%`));
94
+ continue;
95
+ }
96
+ expressions.push(sql.eq(column, condition));
97
+ }
98
+ return sql.and(expressions);
99
+ }
100
+ _getSelectionEntries(table, selection) {
101
+ const entries = [];
102
+ if (!selection || typeof selection === "boolean") {
103
+ return entries;
104
+ }
105
+ for (const [fieldName, isSelected] of Object.entries(selection)) {
106
+ if (isSelected) {
107
+ const column = table.getColumn(fieldName);
108
+ if (!column) {
109
+ throw new Error(`Invalid field "${fieldName}" in selection for table "${table.name}".`);
110
+ }
111
+ entries.push([fieldName, column]);
112
+ }
113
+ }
114
+ return entries;
115
+ }
116
+ _getOrderByEntries(table, orderBy) {
117
+ if (!orderBy) {
118
+ return undefined;
119
+ }
120
+ const entries = [];
121
+ for (const [fieldName, direction] of Object.entries(orderBy)) {
122
+ const column = table.getColumn(fieldName);
123
+ if (!column) {
124
+ throw new Error(`Invalid field "${fieldName}" in orderBy for table "${table.name}".`);
125
+ }
126
+ if (direction === "asc") {
127
+ entries.push(sql `${column} ASC`);
128
+ }
129
+ else if (direction === "desc") {
130
+ entries.push(sql `${column} DESC`);
131
+ }
132
+ }
133
+ return entries;
134
+ }
135
+ _getJoinEntries(table, join) {
136
+ const entries = [];
137
+ if (!join || Object.keys(join).length === 0) {
138
+ return undefined;
139
+ }
140
+ for (const [fieldName, query] of Object.entries(join)) {
141
+ if (query === null || query === undefined || (typeof query === "boolean" && !query)) {
142
+ continue;
143
+ }
144
+ const targetTable = this._ctx.schema.getRelationTarget(table.name, fieldName);
145
+ if (!targetTable) {
146
+ throw new Error(`Relation "${fieldName}" in table "${table.name}" does not have a valid target table.`);
147
+ }
148
+ const params = this._getSelectArgs(targetTable, query === true ? {} : query);
149
+ entries.push([fieldName, params]);
150
+ }
151
+ return entries;
152
+ }
153
+ _getMutationEntries(table, values) {
154
+ const entries = [];
155
+ for (const [fieldName, value] of Object.entries(values)) {
156
+ const column = table.getColumn(fieldName);
157
+ if (!column) {
158
+ throw new Error(`Invalid field "${fieldName}" in update values for table "${table.name}".`);
159
+ }
160
+ entries.push([fieldName, value]);
161
+ }
162
+ return entries;
163
+ }
164
+ _getSelectArgs(table, args) {
165
+ const selection = this._getSelectionEntries(table, args.select);
166
+ const where = this._getWhereExpression(table, args.where);
167
+ const join = this._getJoinEntries(table, args.join);
168
+ const orderBy = this._getOrderByEntries(table, args.orderBy);
169
+ return {
170
+ select: selection,
171
+ where,
172
+ join,
173
+ orderBy,
174
+ distinct: args.distinct,
175
+ limit: args.limit,
176
+ offset: args.offset,
177
+ };
178
+ }
179
+ normalizeSelect(table, args, mode) {
180
+ return {
181
+ mode,
182
+ args: this._getSelectArgs(table, args),
183
+ };
184
+ }
185
+ normalizeInsert(table, args, mode) {
186
+ const values = this._getMutationEntries(table, args.data);
187
+ const returning = this._getSelectionEntries(table, args.return);
188
+ return {
189
+ mode,
190
+ args: {
191
+ data: [values],
192
+ return: returning,
193
+ },
194
+ };
195
+ }
196
+ normalizeUpdate(table, args, mode) {
197
+ const values = this._getMutationEntries(table, args.set);
198
+ const where = this._getWhereExpression(table, args.where);
199
+ const returning = this._getSelectionEntries(table, args.return);
200
+ return {
201
+ mode,
202
+ args: {
203
+ set: values,
204
+ where,
205
+ return: returning,
206
+ },
207
+ };
208
+ }
209
+ normalizeDelete(table, args, mode) {
210
+ const where = this._getWhereExpression(table, args.where);
211
+ const returning = this._getSelectionEntries(table, args.return);
212
+ return {
213
+ mode,
214
+ args: {
215
+ where,
216
+ return: returning,
217
+ },
218
+ };
219
+ }
220
+ }
221
+ //# sourceMappingURL=normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../../../src/client/model/normalizer.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
- export {};
1
+ export { sql, SQLQuery } from "@dsqlbase/core";
2
+ export type { Session, SQLStatement } from "@dsqlbase/core";
3
+ export { createClient, type ClientOptions, type QueryClient } from "./client/index.js";
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- export {};
1
+ export { sql, SQLQuery } from "@dsqlbase/core";
2
+ export { createClient } from "./client/index.js";
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAwC,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Session, SQLStatement } from "@dsqlbase/core";
2
+ import { ClientBase } from "pg";
3
+ export declare class PGSession implements Session {
4
+ private _client;
5
+ constructor(client: ClientBase);
6
+ execute<T = unknown>(query: SQLStatement): Promise<T[]>;
7
+ }
8
+ export declare function createPgSession(client: ClientBase): PGSession;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,qBAAa,SAAU,YAAW,OAAO;IACvC,OAAO,CAAC,OAAO,CAAa;gBAEhB,MAAM,EAAE,UAAU;IAIxB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAI9D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAE7D"}
@@ -0,0 +1,14 @@
1
+ export class PGSession {
2
+ _client;
3
+ constructor(client) {
4
+ this._client = client;
5
+ }
6
+ async execute(query) {
7
+ const result = await this._client.query(query.text, query.params);
8
+ return result.rows;
9
+ }
10
+ }
11
+ export function createPgSession(client) {
12
+ return new PGSession(client);
13
+ }
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pg/index.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,SAAS;IACZ,OAAO,CAAa;IAE5B,YAAY,MAAkB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAc,KAAmB;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,IAAW,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,MAAkB;IAChD,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Session, SQLStatement } from "@dsqlbase/core";
2
+ import { PGlite } from "@electric-sql/pglite";
3
+ export declare class PgLiteSession implements Session {
4
+ private _client;
5
+ constructor(client: PGlite);
6
+ execute<T = unknown>(query: SQLStatement): Promise<T[]>;
7
+ }
8
+ export declare function createPgLiteSession(client: PGlite): PgLiteSession;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pglite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,MAAM;IAIpB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAI9D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAEjE"}
@@ -0,0 +1,14 @@
1
+ export class PgLiteSession {
2
+ _client;
3
+ constructor(client) {
4
+ this._client = client;
5
+ }
6
+ async execute(query) {
7
+ const result = await this._client.query(query.text, query.params);
8
+ return result.rows;
9
+ }
10
+ }
11
+ export function createPgLiteSession(client) {
12
+ return new PgLiteSession(client);
13
+ }
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pglite/index.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAa;IAChB,OAAO,CAAS;IAExB,YAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAc,KAAmB;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,IAAW,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core";
2
+ /**
3
+ * Defines an `array` **runtime data type** column.
4
+ * #### Important Notes
5
+ *
6
+ * The column data type will be `text` in the database, and queries will use `string_to_array('1,2', ',')` at query execution time to handle array data.
7
+ *
8
+ * This means that while you can store any array of strings in this column, it will be stored as text and not as a native array type.
9
+ *
10
+ * The encoding and decoding functions will handle the conversion between JavaScript arrays and comma-separated strings.
11
+ *
12
+ * @param name Column name in database
13
+ * @returns Serializable column definition for an array column.
14
+ */
15
+ export declare function array<const TName extends string>(name: TName): ColumnDefinition<TName, ColumnConfig<string[], string>>;
16
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;;;;;;;GAYG;AAEH,wBAAgB,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,2DAQ5D"}
@@ -0,0 +1,24 @@
1
+ import { ColumnDefinition } from "@dsqlbase/core";
2
+ /**
3
+ * Defines an `array` **runtime data type** column.
4
+ * #### Important Notes
5
+ *
6
+ * The column data type will be `text` in the database, and queries will use `string_to_array('1,2', ',')` at query execution time to handle array data.
7
+ *
8
+ * This means that while you can store any array of strings in this column, it will be stored as text and not as a native array type.
9
+ *
10
+ * The encoding and decoding functions will handle the conversion between JavaScript arrays and comma-separated strings.
11
+ *
12
+ * @param name Column name in database
13
+ * @returns Serializable column definition for an array column.
14
+ */
15
+ export function array(name) {
16
+ return new ColumnDefinition(name, {
17
+ dataType: "text",
18
+ codec: {
19
+ encode: (value) => value.join(","),
20
+ decode: (value) => value.split(","),
21
+ },
22
+ });
23
+ }
24
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/schema/columns/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;;;;;;;GAYG;AAEH,MAAM,UAAU,KAAK,CAA6B,IAAW;IAC3D,OAAO,IAAI,gBAAgB,CAAwC,IAAI,EAAE;QACvE,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YAClC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;SACpC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core";
2
+ /**
3
+ * Defines a `bigint` (8 bytes) data type column in the database schema.
4
+ *
5
+ * Range: `-9_223_372_036_854_775_808 to +9_223_372_036_854_775_807`
6
+ * @param name Column name in database
7
+ * @returns Serializable column definition for a bigint column.
8
+ */
9
+ export declare function bigint<const TName extends string>(name: TName): ColumnDefinition<TName, ColumnConfig<bigint, string>>;
10
+ export { bigint as int8 };
11
+ //# sourceMappingURL=bigint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;GAMG;AAEH,wBAAgB,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,yDAQ7D;AAED,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { ColumnDefinition } from "@dsqlbase/core";
2
+ /**
3
+ * Defines a `bigint` (8 bytes) data type column in the database schema.
4
+ *
5
+ * Range: `-9_223_372_036_854_775_808 to +9_223_372_036_854_775_807`
6
+ * @param name Column name in database
7
+ * @returns Serializable column definition for a bigint column.
8
+ */
9
+ export function bigint(name) {
10
+ return new ColumnDefinition(name, {
11
+ dataType: "bigint",
12
+ codec: {
13
+ encode: (value) => value.toString(),
14
+ decode: (value) => BigInt(value),
15
+ },
16
+ });
17
+ }
18
+ export { bigint as int8 };
19
+ //# sourceMappingURL=bigint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../../src/schema/columns/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;GAMG;AAEH,MAAM,UAAU,MAAM,CAA6B,IAAW;IAC5D,OAAO,IAAI,gBAAgB,CAAsC,IAAI,EAAE;QACrE,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core";
2
+ /**
3
+ * Defines a `boolean` type column in the database schema.
4
+ *
5
+ * @param name Column name in database
6
+ * @returns Serializable column definition for a boolean column.
7
+ */
8
+ export declare function boolean<const TName extends string>(name: TName): ColumnDefinition<TName, ColumnConfig<boolean, boolean>>;
9
+ export { boolean as bool };
10
+ //# sourceMappingURL=boolean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/boolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;GAKG;AAEH,wBAAgB,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,2DAQ9D;AAED,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { ColumnDefinition } from "@dsqlbase/core";
2
+ /**
3
+ * Defines a `boolean` type column in the database schema.
4
+ *
5
+ * @param name Column name in database
6
+ * @returns Serializable column definition for a boolean column.
7
+ */
8
+ export function boolean(name) {
9
+ return new ColumnDefinition(name, {
10
+ dataType: "boolean",
11
+ codec: {
12
+ encode: (value) => value,
13
+ decode: (value) => value,
14
+ },
15
+ });
16
+ }
17
+ export { boolean as bool };
18
+ //# sourceMappingURL=boolean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../src/schema/columns/boolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;GAKG;AAEH,MAAM,UAAU,OAAO,CAA6B,IAAW;IAC7D,OAAO,IAAI,gBAAgB,CAAwC,IAAI,EAAE;QACvE,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SACzB;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core";
2
+ /**
3
+ * Defines a `bytea` data type column in the database schema.
4
+ * @param name Column name in database
5
+ * @returns Serializable column definition for a bytea column.
6
+ */
7
+ export declare function bytea<const TName extends string>(name: TName): ColumnDefinition<TName, ColumnConfig<Uint8Array<ArrayBufferLike>, Buffer<ArrayBufferLike>>>;
8
+ //# sourceMappingURL=bytea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytea.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/bytea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;GAIG;AAEH,wBAAgB,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,+FAQ5D"}
@@ -0,0 +1,16 @@
1
+ import { ColumnDefinition } from "@dsqlbase/core";
2
+ /**
3
+ * Defines a `bytea` data type column in the database schema.
4
+ * @param name Column name in database
5
+ * @returns Serializable column definition for a bytea column.
6
+ */
7
+ export function bytea(name) {
8
+ return new ColumnDefinition(name, {
9
+ dataType: "bytea",
10
+ codec: {
11
+ encode: (value) => Buffer.from(value),
12
+ decode: (value) => new Uint8Array(value),
13
+ },
14
+ });
15
+ }
16
+ //# sourceMappingURL=bytea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytea.js","sourceRoot":"","sources":["../../../src/schema/columns/bytea.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;GAIG;AAEH,MAAM,UAAU,KAAK,CAA6B,IAAW;IAC3D,OAAO,IAAI,gBAAgB,CAA0C,IAAI,EAAE;QACzE,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YACrC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC;SACzC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core/definition";
2
+ /**
3
+ * Defines a `char(n)` type column in the database schema.
4
+ *
5
+ * @param name Name of the column in database
6
+ * @param length Fixed length of the char field
7
+ * @returns Serializable column definition for a char column.
8
+ */
9
+ export declare function char<const TName extends string, const TLength extends number>(name: TName, length: TLength): ColumnDefinition<TName, ColumnConfig<string, string>>;
10
+ //# sourceMappingURL=char.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"char.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/char.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE3E;;;;;;GAMG;AAEH,wBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,CAAC,OAAO,SAAS,MAAM,EAC3E,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,yDAShB"}
@@ -0,0 +1,18 @@
1
+ import { ColumnDefinition } from "@dsqlbase/core/definition";
2
+ /**
3
+ * Defines a `char(n)` type column in the database schema.
4
+ *
5
+ * @param name Name of the column in database
6
+ * @param length Fixed length of the char field
7
+ * @returns Serializable column definition for a char column.
8
+ */
9
+ export function char(name, length) {
10
+ return new ColumnDefinition(name, {
11
+ dataType: `char(${length})`,
12
+ codec: {
13
+ encode: (value) => value,
14
+ decode: (value) => value,
15
+ },
16
+ });
17
+ }
18
+ //# sourceMappingURL=char.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"char.js","sourceRoot":"","sources":["../../../src/schema/columns/char.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE3E;;;;;;GAMG;AAEH,MAAM,UAAU,IAAI,CAClB,IAAW,EACX,MAAe;IAEf,OAAO,IAAI,gBAAgB,CAAsC,IAAI,EAAE;QACrE,QAAQ,EAAE,QAAQ,MAAM,GAAG;QAC3B,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SACzB;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core/definition";
2
+ import { DateTimeMode } from "../utils/date.js";
3
+ export interface DateColumnOptions {
4
+ /**
5
+ * Determines how the date is parsed and formatted, at runtime:
6
+ * - `"date"`: The column will handle JavaScript Date objects and store them in 'YYYY-MM-DD' format.
7
+ * - `"iso"`: The column will handle ISO 8601 date strings directly, without converting them to Date objects.
8
+ * - `"string"`: Same as `"iso"`, but explicitly indicates that the value is a string.
9
+ *
10
+ * @default "date"
11
+ */
12
+ mode?: DateTimeMode;
13
+ }
14
+ /**
15
+ * Defines a `date` type column in the database schema.
16
+ *
17
+ * @param name Name of the column in database
18
+ * @param options Optional configuration for date parsing and formatting
19
+ * @returns Serializable column definition for a date column.
20
+ */
21
+ export declare function date<const TName extends string, const TOptions extends DateColumnOptions>(name: TName, options?: TOptions): ColumnDefinition<TName, ColumnConfig<DateValueType<TOptions>, string>>;
22
+ export type DateValueType<TOptions extends DateColumnOptions> = TOptions["mode"] extends "iso" | "string" ? string : Date;
23
+ //# sourceMappingURL=date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAA6B,MAAM,kBAAkB,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED;;;;;;GAMG;AAEH,wBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACvF,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,QAAQ,0EAoBnB;AAED,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,iBAAiB,IAAI,QAAQ,CAAC,MAAM,CAAC,SAC5E,KAAK,GACL,QAAQ,GACR,MAAM,GACN,IAAI,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { ColumnDefinition } from "@dsqlbase/core/definition";
2
+ import { formatDate, safeParseDate } from "../utils/date.js";
3
+ /**
4
+ * Defines a `date` type column in the database schema.
5
+ *
6
+ * @param name Name of the column in database
7
+ * @param options Optional configuration for date parsing and formatting
8
+ * @returns Serializable column definition for a date column.
9
+ */
10
+ export function date(name, options) {
11
+ return new ColumnDefinition(name, {
12
+ dataType: "date",
13
+ codec: {
14
+ encode: (value) => formatDate(safeParseDate(value)),
15
+ decode: (value) => {
16
+ const date = safeParseDate(value);
17
+ switch (options?.mode) {
18
+ case "iso":
19
+ case "string":
20
+ return formatDate(date);
21
+ case "date":
22
+ default:
23
+ return date;
24
+ }
25
+ },
26
+ },
27
+ });
28
+ }
29
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/schema/columns/date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAgB,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAc3E;;;;;;GAMG;AAEH,MAAM,UAAU,IAAI,CAClB,IAAW,EACX,OAAkB;IAElB,OAAO,IAAI,gBAAgB,CAAuD,IAAI,EAAE;QACtF,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBAElC,QAAQ,OAAO,EAAE,IAAI,EAAE,CAAC;oBACtB,KAAK,KAAK,CAAC;oBACX,KAAK,QAAQ;wBACX,OAAO,UAAU,CAAC,IAAI,CAA4B,CAAC;oBACrD,KAAK,MAAM,CAAC;oBACZ;wBACE,OAAO,IAA+B,CAAC;gBAC3C,CAAC;YACH,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core";
2
+ /**
3
+ * Defines a `double precision` (8 bytes) data type column in the database schema.
4
+ *
5
+ * - Precision: 15 decimal digits
6
+ * - Range: `-1.7976931348623157e+308 to +1.7976931348623157e+308`
7
+ *
8
+ * @param name Column name in database
9
+ * @returns Serializable column definition for a double precision column.
10
+ */
11
+ export declare function double<const TName extends string>(name: TName): ColumnDefinition<TName, ColumnConfig<number, string>>;
12
+ export { double as float8 };
13
+ //# sourceMappingURL=double.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"double.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/double.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;;;GAQG;AAEH,wBAAgB,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,yDAQ7D;AAED,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { ColumnDefinition } from "@dsqlbase/core";
2
+ /**
3
+ * Defines a `double precision` (8 bytes) data type column in the database schema.
4
+ *
5
+ * - Precision: 15 decimal digits
6
+ * - Range: `-1.7976931348623157e+308 to +1.7976931348623157e+308`
7
+ *
8
+ * @param name Column name in database
9
+ * @returns Serializable column definition for a double precision column.
10
+ */
11
+ export function double(name) {
12
+ return new ColumnDefinition(name, {
13
+ dataType: "double precision",
14
+ codec: {
15
+ encode: (value) => value.toString(),
16
+ decode: (value) => parseFloat(value),
17
+ },
18
+ });
19
+ }
20
+ export { double as float8 };
21
+ //# sourceMappingURL=double.js.map