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
package/CHANGELOG.md ADDED
@@ -0,0 +1,27 @@
1
+ # dsqlbase
2
+
3
+ ## 0.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 57c5e9e: connector session factories
8
+ - 4f4ecdd: internal packages restructure
9
+ - @dsqlbase/core@0.1.1
10
+
11
+ ## 0.1.0
12
+
13
+ ### Minor Changes
14
+
15
+ - 66d5d93: **Query client and schema migration runner:**
16
+
17
+ Added:
18
+ - schema objects definition support for `namespace`, `table`, `domain`, and `sequence`;
19
+ - schema migrations runner via introspection -> reconcile;
20
+ - model client with crud operations factories for `create`, `findOne`, `findMany`, `update`, `delete`;
21
+ - sql tag with filter expressions, `sql.in, sql.eq, ...`;
22
+
23
+ ### Patch Changes
24
+
25
+ - @dsqlbase/client@0.1.0
26
+ - @dsqlbase/core@0.1.0
27
+ - @dsqlbase/schema@0.1.0
package/README.md CHANGED
@@ -0,0 +1,86 @@
1
+ <div align="center">
2
+ <h3><strong>dsqlbase</strong></h3>
3
+ <p>Schema, query, and migration toolkit for AWS Aurora DSQL.</p>
4
+ </div>
5
+
6
+ ---
7
+
8
+ > [!CAUTION]
9
+ > dsqlbase is in early-stage development and not suited for production environments.
10
+ > Features may change at any time, without prior notice.
11
+
12
+ dsqlbase is an ORM and migration toolkit purpose-built for [Aurora DSQL](https://aws.amazon.com/rds/aurora/dsql/). It treats DSQL's distributed-database constraints (no foreign keys, no in-place column changes, async-only index builds, etc.) as first-class — refusing unsupported DDL up front and emitting DSQL-shaped SQL by default. See the [project README](https://github.com/slsdotdev/dsqlbase#readme) for the longer motivation.
13
+
14
+ ## Install
15
+
16
+ ```bash
17
+ npm install dsqlbase
18
+ ```
19
+
20
+ ## Quickstart
21
+
22
+ ```ts
23
+ // schema.ts
24
+ import { table, uuid, text, datetime, relations, hasMany, belongsTo } from "dsqlbase/schema";
25
+
26
+ export const teams = table("teams", {
27
+ id: uuid("id").primaryKey().defaultRandom(),
28
+ name: text("name").notNull(),
29
+ createdAt: datetime("created_at").notNull().defaultNow(),
30
+ });
31
+
32
+ export const projects = table("projects", {
33
+ id: uuid("id").primaryKey().defaultRandom(),
34
+ teamId: uuid("team_id").notNull(),
35
+ name: text("name").notNull(),
36
+ });
37
+
38
+ export const teamRelations = relations(teams, {
39
+ projects: hasMany(projects, {
40
+ from: [teams.columns.id],
41
+ to: [projects.columns.teamId],
42
+ }),
43
+ });
44
+
45
+ export const projectRelations = relations(projects, {
46
+ team: belongsTo(teams, {
47
+ from: [projects.columns.teamId],
48
+ to: [teams.columns.id],
49
+ }),
50
+ });
51
+ ```
52
+
53
+ ```ts
54
+ // client.ts
55
+ import { createClient, type Session, type SQLStatement } from "dsqlbase";
56
+ import * as schema from "./schema";
57
+ import { Pool } from "pg";
58
+
59
+ const pool = new Pool({ connectionString: process.env.DATABASE_URL });
60
+
61
+ const session: Session = {
62
+ async execute<T = unknown>(query: SQLStatement): Promise<T[]> {
63
+ const result = await pool.query(query.text, [...query.params]);
64
+ return result.rows as T[];
65
+ },
66
+ };
67
+
68
+ export const dsql = createClient({ schema, session });
69
+
70
+ // Use it
71
+ const recent = await dsql.projects.findMany({
72
+ orderBy: { name: "asc" },
73
+ limit: 10,
74
+ join: { team: true },
75
+ });
76
+ ```
77
+
78
+ ## Links
79
+
80
+ - [Repository & full docs](https://github.com/slsdotdev/dsqlbase#readme)
81
+ - [Issues](https://github.com/slsdotdev/dsqlbase/issues)
82
+ - [Contributing](https://github.com/slsdotdev/dsqlbase/blob/main/CONTRIBUTING.md)
83
+
84
+ ## License
85
+
86
+ MIT.
@@ -0,0 +1,73 @@
1
+ import { DefinitionSchema, Session } from "@dsqlbase/core";
2
+ import { QueryClient } from "./database/index.js";
3
+ export interface ClientOptions<TSchema extends DefinitionSchema> {
4
+ /**
5
+ * Definition schema for the database, including relations configuration.
6
+ */
7
+ schema: TSchema;
8
+ /**
9
+ * Session object for managing database connections and transactions.
10
+ */
11
+ session: Session;
12
+ }
13
+ /**
14
+ * Creates a new client instance for interacting with the database using the provided schema definition.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * // schema.ts
19
+ * import { table, text, uuid } from "@dsqlbase/schema";
20
+ *
21
+ * export const users = table("users", {
22
+ * id: uuid("id").primaryKey().defaultRandom(),
23
+ * firstName: text("first_name").notNull(),
24
+ * lastName: text("last_name").notNull(),
25
+ * emailAddress: text("email_address").notNull().unique(),
26
+ * });
27
+ *
28
+ * export const posts = table("posts", {
29
+ * id: uuid("id").primaryKey().defaultRandom(),
30
+ * title: text("title").notNull(),
31
+ * description: text("description"),
32
+ * content: text("content").notNull(),
33
+ * });
34
+ *
35
+ * export const userRelations = relations(users, {
36
+ * posts: hasMany(posts, {
37
+ * from: [users.columns.id],
38
+ * to: [posts.columns.userId],
39
+ * }),
40
+ * });
41
+ *
42
+ * export const postRelations = relations(posts, {
43
+ * owner: belongsTo(users, {
44
+ * from: [posts.columns.userId],
45
+ * to: [users.columns.id],
46
+ * }),
47
+ * });
48
+ *
49
+ * // client.ts
50
+ * import { createClient } from "dsqlbase";
51
+ * import * as schema from "./schema";
52
+ *
53
+ * export const dsql = createClient({ schema });
54
+ *
55
+ * // Example usage
56
+ * import { dsql } from "./client";
57
+ *
58
+ * const newUser = await dsql.users.create({
59
+ * data: {
60
+ * firstName: "John",
61
+ * lastName: "Doe",
62
+ * emailAddress: "john.doe@example.com",
63
+ * },
64
+ * });
65
+ * ```
66
+ * @param options - Configuration options for the client, including the schema definition.
67
+ * @returns A new instance of the DSQL client configured with the provided schema.
68
+ * @throws Will throw an error if the schema definition is invalid or if there are issues initializing the client.
69
+ * @see {@link ClientOptions} for more details on the configuration options.
70
+ * @see {@link ModelClient} for information on the methods available for interacting with the database tables.
71
+ */
72
+ export declare function createClient<TSchema extends DefinitionSchema>(options: ClientOptions<TSchema>): QueryClient<TSchema>;
73
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/client/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAIhB,OAAO,EACR,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAkB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,gBAAgB;IAC7D;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH,wBAAgB,YAAY,CAAC,OAAO,SAAS,gBAAgB,EAC3D,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAC9B,WAAW,CAAC,OAAO,CAAC,CAuBtB"}
@@ -0,0 +1,82 @@
1
+ import { ExecutionContext, QueryBuilder, SchemaRegistry, } from "@dsqlbase/core";
2
+ import { ModelClient } from "./model/client.js";
3
+ import { DatabaseClient } from "./database/index.js";
4
+ /**
5
+ * Creates a new client instance for interacting with the database using the provided schema definition.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * // schema.ts
10
+ * import { table, text, uuid } from "@dsqlbase/schema";
11
+ *
12
+ * export const users = table("users", {
13
+ * id: uuid("id").primaryKey().defaultRandom(),
14
+ * firstName: text("first_name").notNull(),
15
+ * lastName: text("last_name").notNull(),
16
+ * emailAddress: text("email_address").notNull().unique(),
17
+ * });
18
+ *
19
+ * export const posts = table("posts", {
20
+ * id: uuid("id").primaryKey().defaultRandom(),
21
+ * title: text("title").notNull(),
22
+ * description: text("description"),
23
+ * content: text("content").notNull(),
24
+ * });
25
+ *
26
+ * export const userRelations = relations(users, {
27
+ * posts: hasMany(posts, {
28
+ * from: [users.columns.id],
29
+ * to: [posts.columns.userId],
30
+ * }),
31
+ * });
32
+ *
33
+ * export const postRelations = relations(posts, {
34
+ * owner: belongsTo(users, {
35
+ * from: [posts.columns.userId],
36
+ * to: [users.columns.id],
37
+ * }),
38
+ * });
39
+ *
40
+ * // client.ts
41
+ * import { createClient } from "dsqlbase";
42
+ * import * as schema from "./schema";
43
+ *
44
+ * export const dsql = createClient({ schema });
45
+ *
46
+ * // Example usage
47
+ * import { dsql } from "./client";
48
+ *
49
+ * const newUser = await dsql.users.create({
50
+ * data: {
51
+ * firstName: "John",
52
+ * lastName: "Doe",
53
+ * emailAddress: "john.doe@example.com",
54
+ * },
55
+ * });
56
+ * ```
57
+ * @param options - Configuration options for the client, including the schema definition.
58
+ * @returns A new instance of the DSQL client configured with the provided schema.
59
+ * @throws Will throw an error if the schema definition is invalid or if there are issues initializing the client.
60
+ * @see {@link ClientOptions} for more details on the configuration options.
61
+ * @see {@link ModelClient} for information on the methods available for interacting with the database tables.
62
+ */
63
+ export function createClient(options) {
64
+ const schema = new SchemaRegistry(options.schema);
65
+ const dialect = new QueryBuilder();
66
+ const context = new ExecutionContext({
67
+ schema,
68
+ dialect,
69
+ session: options.session,
70
+ });
71
+ const dbClient = new DatabaseClient(context);
72
+ for (const [tableName, table] of Object.entries(schema.getTables())) {
73
+ const modelClient = new ModelClient(context, table);
74
+ Object.defineProperty(dbClient, tableName, {
75
+ value: modelClient,
76
+ writable: false,
77
+ enumerable: true,
78
+ });
79
+ }
80
+ return dbClient;
81
+ }
82
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/client/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAChB,YAAY,EACZ,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAe,MAAM,qBAAqB,CAAC;AAclE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAEH,MAAM,UAAU,YAAY,CAC1B,OAA+B;IAE/B,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;QACnC,MAAM;QACN,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IAE7C,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAW,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEpD,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE;YACzC,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAgC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { DefinitionSchema, ExecutionContext, SQLQuery, SQLStatement } from "@dsqlbase/core";
2
+ export declare abstract class BaseClient<T extends DefinitionSchema> {
3
+ private readonly _ctx;
4
+ constructor(ctx: ExecutionContext<T>);
5
+ $query<T = unknown>(sql: SQLQuery): Promise<T[]>;
6
+ $execute<T = unknown>(query: SQLStatement): Promise<T[]>;
7
+ }
8
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/client/database/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE5F,8BAAsB,UAAU,CAAC,CAAC,SAAS,gBAAgB;IACzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;gBAE/B,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAI9B,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAIhD,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAG/D"}
@@ -0,0 +1,13 @@
1
+ export class BaseClient {
2
+ _ctx;
3
+ constructor(ctx) {
4
+ this._ctx = ctx;
5
+ }
6
+ async $query(sql) {
7
+ return this.$execute(sql.toQuery());
8
+ }
9
+ async $execute(query) {
10
+ return this._ctx.session.execute(query);
11
+ }
12
+ }
13
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/client/database/base.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,UAAU;IACb,IAAI,CAAsB;IAE3C,YAAY,GAAwB;QAClC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAM,CAAc,GAAa;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAc,KAAmB;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAI,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import { DefinitionSchema } from "@dsqlbase/core";
2
+ import { BaseClient } from "./base.js";
3
+ export declare class DatabaseClient<TDefinition extends DefinitionSchema> extends BaseClient<TDefinition> {
4
+ }
5
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client/database/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,qBAAa,cAAc,CAAC,WAAW,SAAS,gBAAgB,CAAE,SAAQ,UAAU,CAAC,WAAW,CAAC;CAAG"}
@@ -0,0 +1,4 @@
1
+ import { BaseClient } from "./base.js";
2
+ export class DatabaseClient extends BaseClient {
3
+ }
4
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client/database/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,OAAO,cAAqD,SAAQ,UAAuB;CAAG"}
@@ -0,0 +1,9 @@
1
+ import { AnyTable, DefinitionSchema, RuntimeTables, Schema } from "@dsqlbase/core";
2
+ import { ModelClient } from "../model/client.js";
3
+ import { DatabaseClient } from "./client.js";
4
+ export type Models<T extends DefinitionSchema> = {
5
+ readonly [K in keyof RuntimeTables<Schema<T>>]: RuntimeTables<Schema<T>>[K] extends infer TTable ? TTable extends AnyTable ? ModelClient<TTable, T> : never : never;
6
+ };
7
+ export type QueryClient<T extends DefinitionSchema> = DatabaseClient<T> & Models<T>;
8
+ export { DatabaseClient };
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/database/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,gBAAgB,IAAI;IAC/C,QAAQ,EAAE,CAAC,IAAI,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,MAAM,GAC5F,MAAM,SAAS,QAAQ,GACrB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GACtB,KAAK,GACP,KAAK;CACV,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,gBAAgB,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAEpF,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DatabaseClient } from "./client.js";
2
+ export { DatabaseClient };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/database/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAY7C,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type * from "./model/base.js";
2
+ export { isFilterType } from "./model/base.js";
3
+ export { ModelClient } from "./model/client.js";
4
+ export { DatabaseClient, type QueryClient, type Models } from "./database/index.js";
5
+ export { createClient, type ClientOptions } from "./create.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,iBAAiB,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { isFilterType } from "./model/base.js";
2
+ export { ModelClient } from "./model/client.js";
3
+ export { DatabaseClient } from "./database/index.js";
4
+ export { createClient } from "./create.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAiC,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC"}