@zyraxon-ai/effect-drizzle-sqlite 19.0.5

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 (77) hide show
  1. package/dist/effect-sqlite/driver.d.ts +44 -0
  2. package/dist/effect-sqlite/driver.d.ts.map +1 -0
  3. package/dist/effect-sqlite/driver.js +55 -0
  4. package/dist/effect-sqlite/driver.js.map +1 -0
  5. package/dist/effect-sqlite/index.d.ts +4 -0
  6. package/dist/effect-sqlite/index.d.ts.map +1 -0
  7. package/dist/effect-sqlite/index.js +5 -0
  8. package/dist/effect-sqlite/index.js.map +1 -0
  9. package/dist/effect-sqlite/migrator.d.ts +5 -0
  10. package/dist/effect-sqlite/migrator.d.ts.map +1 -0
  11. package/dist/effect-sqlite/migrator.js +7 -0
  12. package/dist/effect-sqlite/migrator.js.map +1 -0
  13. package/dist/effect-sqlite/session.d.ts +48 -0
  14. package/dist/effect-sqlite/session.d.ts.map +1 -0
  15. package/dist/effect-sqlite/session.js +78 -0
  16. package/dist/effect-sqlite/session.js.map +1 -0
  17. package/dist/index.d.ts +6 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +6 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/internal/drizzle-utils.d.ts +21 -0
  22. package/dist/internal/drizzle-utils.d.ts.map +1 -0
  23. package/dist/internal/drizzle-utils.js +96 -0
  24. package/dist/internal/drizzle-utils.js.map +1 -0
  25. package/dist/sqlite-core/effect/count.d.ts +21 -0
  26. package/dist/sqlite-core/effect/count.d.ts.map +1 -0
  27. package/dist/sqlite-core/effect/count.js +31 -0
  28. package/dist/sqlite-core/effect/count.js.map +1 -0
  29. package/dist/sqlite-core/effect/db.d.ts +83 -0
  30. package/dist/sqlite-core/effect/db.d.ts.map +1 -0
  31. package/dist/sqlite-core/effect/db.js +168 -0
  32. package/dist/sqlite-core/effect/db.js.map +1 -0
  33. package/dist/sqlite-core/effect/delete.d.ts +70 -0
  34. package/dist/sqlite-core/effect/delete.d.ts.map +1 -0
  35. package/dist/sqlite-core/effect/delete.js +77 -0
  36. package/dist/sqlite-core/effect/delete.js.map +1 -0
  37. package/dist/sqlite-core/effect/index.d.ts +10 -0
  38. package/dist/sqlite-core/effect/index.d.ts.map +1 -0
  39. package/dist/sqlite-core/effect/index.js +11 -0
  40. package/dist/sqlite-core/effect/index.js.map +1 -0
  41. package/dist/sqlite-core/effect/insert.d.ts +96 -0
  42. package/dist/sqlite-core/effect/insert.d.ts.map +1 -0
  43. package/dist/sqlite-core/effect/insert.js +124 -0
  44. package/dist/sqlite-core/effect/insert.js.map +1 -0
  45. package/dist/sqlite-core/effect/query.d.ts +64 -0
  46. package/dist/sqlite-core/effect/query.d.ts.map +1 -0
  47. package/dist/sqlite-core/effect/query.js +105 -0
  48. package/dist/sqlite-core/effect/query.js.map +1 -0
  49. package/dist/sqlite-core/effect/raw.d.ts +33 -0
  50. package/dist/sqlite-core/effect/raw.d.ts.map +1 -0
  51. package/dist/sqlite-core/effect/raw.js +30 -0
  52. package/dist/sqlite-core/effect/raw.js.map +1 -0
  53. package/dist/sqlite-core/effect/select.d.ts +65 -0
  54. package/dist/sqlite-core/effect/select.d.ts.map +1 -0
  55. package/dist/sqlite-core/effect/select.js +106 -0
  56. package/dist/sqlite-core/effect/select.js.map +1 -0
  57. package/dist/sqlite-core/effect/session.d.ts +89 -0
  58. package/dist/sqlite-core/effect/session.d.ts.map +1 -0
  59. package/dist/sqlite-core/effect/session.js +280 -0
  60. package/dist/sqlite-core/effect/session.js.map +1 -0
  61. package/dist/sqlite-core/effect/update.d.ts +91 -0
  62. package/dist/sqlite-core/effect/update.d.ts.map +1 -0
  63. package/dist/sqlite-core/effect/update.js +125 -0
  64. package/dist/sqlite-core/effect/update.js.map +1 -0
  65. package/dist/up-migrations/effect-sqlite.d.ts +9 -0
  66. package/dist/up-migrations/effect-sqlite.d.ts.map +1 -0
  67. package/dist/up-migrations/effect-sqlite.js +50 -0
  68. package/dist/up-migrations/effect-sqlite.js.map +1 -0
  69. package/dist/up-migrations/sqlite.d.ts +54 -0
  70. package/dist/up-migrations/sqlite.d.ts.map +1 -0
  71. package/dist/up-migrations/sqlite.js +152 -0
  72. package/dist/up-migrations/sqlite.js.map +1 -0
  73. package/dist/up-migrations/utils.d.ts +22 -0
  74. package/dist/up-migrations/utils.d.ts.map +1 -0
  75. package/dist/up-migrations/utils.js +47 -0
  76. package/dist/up-migrations/utils.js.map +1 -0
  77. package/package.json +37 -0
@@ -0,0 +1,44 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import { SqlClient } from "effect/unstable/sql/SqlClient";
4
+ import { EffectCache } from "drizzle-orm/cache/core/cache-effect";
5
+ import { EffectLogger } from "drizzle-orm/effect-core";
6
+ import { entityKind } from "drizzle-orm/entity";
7
+ import type { AnyRelations, EmptyRelations } from "drizzle-orm/relations";
8
+ import { SQLiteEffectDatabase } from "../sqlite-core/effect/db";
9
+ import type { DrizzleConfig } from "drizzle-orm/utils";
10
+ import { type EffectSQLiteQueryEffectHKT, type EffectSQLiteRunResult } from "./session";
11
+ export declare class EffectSQLiteDatabase<TRelations extends AnyRelations = EmptyRelations> extends SQLiteEffectDatabase<EffectSQLiteQueryEffectHKT, EffectSQLiteRunResult, TRelations> {
12
+ static readonly [entityKind]: string;
13
+ }
14
+ export type EffectDrizzleSQLiteConfig<TRelations extends AnyRelations = EmptyRelations> = Omit<DrizzleConfig<Record<string, never>, TRelations>, "cache" | "logger" | "schema">;
15
+ export declare const DefaultServices: Layer.Layer<EffectCache | EffectLogger, never, never>;
16
+ /**
17
+ * Creates an EffectSQLiteDatabase instance.
18
+ *
19
+ * Requires a generic Effect `SqlClient`, `EffectLogger`, and `EffectCache` services to be provided.
20
+ * Drizzle only depends on the generic `SqlClient`; install and provide a compatible SQLite provider such as
21
+ * `@effect/sql-sqlite-node`, `@effect/sql-sqlite-bun`, or another package that exposes `SqlClient`.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import { SqliteClient } from '@effect/sql-sqlite-node';
26
+ * import * as SQLiteDrizzle from 'drizzle-orm/effect-sqlite';
27
+ * import * as Effect from 'effect/Effect';
28
+ *
29
+ * const db = yield* SQLiteDrizzle.make({ relations }).pipe(
30
+ * Effect.provide(SQLiteDrizzle.DefaultServices),
31
+ * Effect.provide(SqliteClient.layer({ filename: 'sqlite.db' })),
32
+ * );
33
+ * ```
34
+ */
35
+ export declare const make: <TRelations extends AnyRelations = EmptyRelations>(config?: EffectDrizzleSQLiteConfig<TRelations>) => Effect.Effect<EffectSQLiteDatabase<TRelations> & {
36
+ $client: SqlClient;
37
+ }, never, EffectCache | EffectLogger | SqlClient>;
38
+ /**
39
+ * Convenience function that creates an EffectSQLiteDatabase with `DefaultServices` already provided.
40
+ */
41
+ export declare const makeWithDefaults: <TRelations extends AnyRelations = EmptyRelations>(config?: EffectDrizzleSQLiteConfig<TRelations>) => Effect.Effect<EffectSQLiteDatabase<TRelations> & {
42
+ $client: SqlClient;
43
+ }, never, SqlClient>;
44
+ //# sourceMappingURL=driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/effect-sqlite/driver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,KAAK,0BAA0B,EAAE,KAAK,qBAAqB,EAAuB,MAAM,WAAW,CAAA;AAE5G,qBAAa,oBAAoB,CAAC,UAAU,SAAS,YAAY,GAAG,cAAc,CAAE,SAAQ,oBAAoB,CAC9G,0BAA0B,EAC1B,qBAAqB,EACrB,UAAU,CACX;IACC,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAyB;CACvE;AAED,MAAM,MAAM,yBAAyB,CAAC,UAAU,SAAS,YAAY,GAAG,cAAc,IAAI,IAAI,CAC5F,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,EAChD,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAC9B,CAAA;AAED,eAAO,MAAM,eAAe,uDAAyD,CAAA;AAErF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI,GAA8C,UAAU,SAAS,YAAY;aAejF,SAAS;iDAMpB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,SAAS,YAAY,GAAG,cAAc,EAC/E,SAAQ,yBAAyB,CAAC,UAAU,CAAM;aAZvC,SAAS;oBAaiC,CAAA"}
@@ -0,0 +1,55 @@
1
+ /* oxlint-disable */
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import { SqlClient } from "effect/unstable/sql/SqlClient";
5
+ import { EffectCache } from "drizzle-orm/cache/core/cache-effect";
6
+ import { EffectLogger } from "drizzle-orm/effect-core";
7
+ import { entityKind } from "drizzle-orm/entity";
8
+ import { SQLiteAsyncDialect } from "drizzle-orm/sqlite-core/dialect";
9
+ import { SQLiteEffectDatabase } from "../sqlite-core/effect/db";
10
+ import { jitCompatCheck } from "../internal/drizzle-utils";
11
+ import { EffectSQLiteSession } from "./session";
12
+ export class EffectSQLiteDatabase extends SQLiteEffectDatabase {
13
+ static [entityKind] = "EffectSQLiteDatabase";
14
+ }
15
+ export const DefaultServices = Layer.merge(EffectCache.Default, EffectLogger.Default);
16
+ /**
17
+ * Creates an EffectSQLiteDatabase instance.
18
+ *
19
+ * Requires a generic Effect `SqlClient`, `EffectLogger`, and `EffectCache` services to be provided.
20
+ * Drizzle only depends on the generic `SqlClient`; install and provide a compatible SQLite provider such as
21
+ * `@effect/sql-sqlite-node`, `@effect/sql-sqlite-bun`, or another package that exposes `SqlClient`.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import { SqliteClient } from '@effect/sql-sqlite-node';
26
+ * import * as SQLiteDrizzle from 'drizzle-orm/effect-sqlite';
27
+ * import * as Effect from 'effect/Effect';
28
+ *
29
+ * const db = yield* SQLiteDrizzle.make({ relations }).pipe(
30
+ * Effect.provide(SQLiteDrizzle.DefaultServices),
31
+ * Effect.provide(SqliteClient.layer({ filename: 'sqlite.db' })),
32
+ * );
33
+ * ```
34
+ */
35
+ export const make = Effect.fn("SQLiteDrizzle.make")(function* (config = {}) {
36
+ const client = yield* SqlClient;
37
+ const cache = yield* EffectCache;
38
+ const logger = yield* EffectLogger;
39
+ const dialect = new SQLiteAsyncDialect();
40
+ const relations = config.relations ?? {};
41
+ const session = new EffectSQLiteSession(client, dialect, relations, {
42
+ logger,
43
+ cache,
44
+ useJitMappers: jitCompatCheck(config.jit),
45
+ });
46
+ const db = new EffectSQLiteDatabase(dialect, session, relations);
47
+ db.$client = client;
48
+ db.$cache.invalidate = cache.onMutate;
49
+ return db;
50
+ });
51
+ /**
52
+ * Convenience function that creates an EffectSQLiteDatabase with `DefaultServices` already provided.
53
+ */
54
+ export const makeWithDefaults = (config = {}) => make(config).pipe(Effect.provide(DefaultServices));
55
+ //# sourceMappingURL=driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/effect-sqlite/driver.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAA+D,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAE5G,MAAM,OAAO,oBAAuE,SAAQ,oBAI3F;IACC,MAAM,CAAmB,CAAC,UAAU,CAAC,GAAW,sBAAsB,CAAA;;AAQxE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;AAErF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,EAC3D,SAAgD,EAAE;IAElD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,SAAS,CAAA;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,CAAA;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IAElC,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAA;IACxC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAK,EAAiB,CAAA;IACxD,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAClE,MAAM;QACN,KAAK;QACL,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC;KAC1C,CAAC,CAAA;IACF,MAAM,EAAE,GAAG,IAAI,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAE9D,CAAA;IACD,EAAE,CAAC,OAAO,GAAG,MAAM,CAAA;IACnB,EAAE,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAA;IAErC,OAAO,EAAE,CAAA;AACX,CAAC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,SAAgD,EAAE,EAClD,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { EffectLogger } from "drizzle-orm/effect-core";
2
+ export * from "./driver";
3
+ export * from "./session";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/effect-sqlite/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,5 @@
1
+ /* oxlint-disable */
2
+ export { EffectLogger } from "drizzle-orm/effect-core";
3
+ export * from "./driver";
4
+ export * from "./session";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/effect-sqlite/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { MigrationConfig } from "drizzle-orm/migrator";
2
+ import type { AnyRelations } from "drizzle-orm/relations";
3
+ import type { EffectSQLiteDatabase } from "./driver";
4
+ export declare function migrate<TRelations extends AnyRelations>(db: EffectSQLiteDatabase<TRelations>, config: MigrationConfig): import("effect/Effect").Effect<never, import("drizzle-orm/effect-core").MigratorInitError | import("drizzle-orm/effect-core").EffectDrizzleError | import("effect/unstable/sql/SqlError").SqlError | import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
5
+ //# sourceMappingURL=migrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/effect-sqlite/migrator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEpD,wBAAgB,OAAO,CAAC,UAAU,SAAS,YAAY,EACrD,EAAE,EAAE,oBAAoB,CAAC,UAAU,CAAC,EACpC,MAAM,EAAE,eAAe,0QAIxB"}
@@ -0,0 +1,7 @@
1
+ import { readMigrationFiles } from "drizzle-orm/migrator";
2
+ import { migrate as coreMigrate } from "../sqlite-core/effect/session";
3
+ export function migrate(db, config) {
4
+ const migrations = readMigrationFiles(config);
5
+ return coreMigrate(migrations, db.session, config);
6
+ }
7
+ //# sourceMappingURL=migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../src/effect-sqlite/migrator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAGtE,MAAM,UAAU,OAAO,CACrB,EAAoC,EACpC,MAAuB;IAEvB,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC7C,OAAO,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AACpD,CAAC"}
@@ -0,0 +1,48 @@
1
+ import * as Effect from "effect/Effect";
2
+ import type { SqlClient } from "effect/unstable/sql/SqlClient";
3
+ import type { SqlError } from "effect/unstable/sql/SqlError";
4
+ import type { EffectCacheShape } from "drizzle-orm/cache/core/cache-effect";
5
+ import type { WithCacheConfig } from "drizzle-orm/cache/core/types";
6
+ import type { EffectDrizzleQueryError } from "drizzle-orm/effect-core/errors";
7
+ import type { EffectLoggerShape } from "drizzle-orm/effect-core/logger";
8
+ import type { QueryEffectHKTBase } from "drizzle-orm/effect-core/query-effect";
9
+ import { entityKind } from "drizzle-orm/entity";
10
+ import type { AnyRelations } from "drizzle-orm/relations";
11
+ import type { RelationalQueryMapperConfig } from "drizzle-orm/relations";
12
+ import type { Query } from "drizzle-orm/sql/sql";
13
+ import type { SQLiteAsyncDialect } from "drizzle-orm/sqlite-core/dialect";
14
+ import { SQLiteEffectPreparedQuery, SQLiteEffectSession, SQLiteEffectTransaction } from "../sqlite-core/effect/session";
15
+ import type { SelectedFieldsOrdered } from "drizzle-orm/sqlite-core/query-builders/select.types";
16
+ import type { PreparedQueryConfig, SQLiteExecuteMethod, SQLiteTransactionConfig } from "drizzle-orm/sqlite-core/session";
17
+ export interface EffectSQLiteQueryEffectHKT extends QueryEffectHKTBase {
18
+ readonly error: EffectDrizzleQueryError;
19
+ readonly context: never;
20
+ }
21
+ export type EffectSQLiteRunResult = readonly never[];
22
+ export interface EffectSQLiteSessionOptions {
23
+ logger: EffectLoggerShape;
24
+ cache: EffectCacheShape;
25
+ useJitMappers?: boolean;
26
+ }
27
+ export declare class EffectSQLiteSession<TRelations extends AnyRelations> extends SQLiteEffectSession<EffectSQLiteQueryEffectHKT, EffectSQLiteRunResult, TRelations> {
28
+ private client;
29
+ protected relations: TRelations;
30
+ private options;
31
+ static readonly [entityKind]: string;
32
+ constructor(client: SqlClient, dialect: SQLiteAsyncDialect, relations: TRelations, options: EffectSQLiteSessionOptions);
33
+ prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown, queryMetadata?: {
34
+ type: "select" | "update" | "delete" | "insert";
35
+ tables: string[];
36
+ }, cacheConfig?: WithCacheConfig): SQLiteEffectPreparedQuery<T, EffectSQLiteQueryEffectHKT>;
37
+ prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, fields: SelectedFieldsOrdered | undefined, executeMethod: SQLiteExecuteMethod, customResultMapper: (rows: Record<string, unknown>[], mapColumnValue?: (value: unknown) => unknown) => unknown, config: RelationalQueryMapperConfig): SQLiteEffectPreparedQuery<T, EffectSQLiteQueryEffectHKT, true>;
38
+ private execute;
39
+ private isInTransaction;
40
+ private executeTransactionStatement;
41
+ private withTransaction;
42
+ transaction<A, E, R>(transaction: (tx: EffectSQLiteTransaction<TRelations>) => Effect.Effect<A, E, R>, config?: SQLiteTransactionConfig): Effect.Effect<A, E | SqlError, R>;
43
+ }
44
+ export declare class EffectSQLiteTransaction<TRelations extends AnyRelations> extends SQLiteEffectTransaction<EffectSQLiteQueryEffectHKT, EffectSQLiteRunResult, TRelations> {
45
+ static readonly [entityKind]: string;
46
+ transaction: <A, E, R>(transaction: (tx: SQLiteEffectTransaction<EffectSQLiteQueryEffectHKT, EffectSQLiteRunResult, TRelations>) => Effect.Effect<A, E, R>) => Effect.Effect<A, SqlError | E, R>;
47
+ }
48
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/effect-sqlite/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /* oxlint-disable */
2
+ import * as Context from "effect/Context";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Exit from "effect/Exit";
5
+ import * as Scope from "effect/Scope";
6
+ import { entityKind } from "drizzle-orm/entity";
7
+ import { SQLiteEffectPreparedQuery, SQLiteEffectSession, SQLiteEffectTransaction } from "../sqlite-core/effect/session";
8
+ export class EffectSQLiteSession extends SQLiteEffectSession {
9
+ client;
10
+ relations;
11
+ options;
12
+ static [entityKind] = "EffectSQLiteSession";
13
+ constructor(client, dialect, relations, options) {
14
+ super(dialect);
15
+ this.client = client;
16
+ this.relations = relations;
17
+ this.options = options;
18
+ }
19
+ prepareQuery(query, fields, executeMethod, customResultMapper, queryMetadata, cacheConfig) {
20
+ return new SQLiteEffectPreparedQuery((params, method) => this.execute(query, params, method), query, this.options.logger, this.options.cache, queryMetadata, cacheConfig, fields, executeMethod, this.options.useJitMappers, customResultMapper, undefined, undefined, this.isInTransaction());
21
+ }
22
+ prepareRelationalQuery(query, fields, executeMethod, customResultMapper, config) {
23
+ return new SQLiteEffectPreparedQuery((params, method) => this.execute(query, params, method), query, this.options.logger, this.options.cache, undefined, undefined, fields, executeMethod, this.options.useJitMappers, customResultMapper, true, config, this.isInTransaction());
24
+ }
25
+ execute(query, params, method) {
26
+ const statement = this.client.unsafe(query.sql, params);
27
+ if (method === "values")
28
+ return statement.values;
29
+ if (method === "get")
30
+ return statement.withoutTransform.pipe(Effect.map((rows) => rows[0]));
31
+ return statement.withoutTransform;
32
+ }
33
+ isInTransaction() {
34
+ return Effect.serviceOption(this.client.transactionService).pipe(Effect.map((option) => option._tag === "Some"));
35
+ }
36
+ executeTransactionStatement(connection, query) {
37
+ return connection.executeUnprepared(query, [], undefined).pipe(Effect.asVoid);
38
+ }
39
+ withTransaction(effect, config) {
40
+ return Effect.uninterruptibleMask((restore) => Effect.withFiber((fiber) => {
41
+ const services = fiber.context;
42
+ const connectionOption = Context.getOption(services, this.client.transactionService);
43
+ const connection = connectionOption._tag === "Some"
44
+ ? Effect.succeed([undefined, connectionOption.value[0]])
45
+ : Scope.make().pipe(Effect.flatMap((scope) => Scope.provide(this.client.reserve, scope).pipe(Effect.map((connection) => [scope, connection]), Effect.catch((error) => Scope.close(scope, Exit.fail(error)).pipe(Effect.andThen(Effect.fail(error)))))));
46
+ const id = connectionOption._tag === "Some" ? connectionOption.value[1] + 1 : 0;
47
+ return connection.pipe(Effect.flatMap(([scope, connection]) => {
48
+ const transaction = this.executeTransactionStatement(connection, id === 0 ? `begin ${config?.behavior ?? "deferred"}` : `savepoint effect_sql_${id}`).pipe(Effect.flatMap(() => Effect.provideContext(restore(effect), Context.add(services, this.client.transactionService, [connection, id])).pipe(Effect.exit, Effect.flatMap((exit) => {
49
+ const finalize = Exit.isSuccess(exit)
50
+ ? id === 0
51
+ ? this.executeTransactionStatement(connection, "commit").pipe(
52
+ // SQLite keeps the transaction open after deferred constraint commit failures.
53
+ Effect.catch((error) => this.executeTransactionStatement(connection, "rollback").pipe(Effect.catch(() => Effect.void), Effect.andThen(Effect.fail(error)))))
54
+ : this.executeTransactionStatement(connection, `release savepoint effect_sql_${id}`)
55
+ : id === 0
56
+ ? this.executeTransactionStatement(connection, "rollback")
57
+ : this.executeTransactionStatement(connection, `rollback to savepoint effect_sql_${id}`).pipe(Effect.andThen(this.executeTransactionStatement(connection, `release savepoint effect_sql_${id}`)));
58
+ return finalize.pipe(Effect.flatMap(() => exit));
59
+ }))));
60
+ return scope === undefined
61
+ ? transaction
62
+ : transaction.pipe(Effect.onExit((exit) => Scope.close(scope, exit)));
63
+ }));
64
+ }));
65
+ }
66
+ transaction(transaction, config) {
67
+ const { dialect, relations } = this;
68
+ return this.withTransaction(Effect.gen({ self: this }, function* () {
69
+ const tx = new EffectSQLiteTransaction(dialect, this, relations);
70
+ return yield* transaction(tx);
71
+ }), config);
72
+ }
73
+ }
74
+ export class EffectSQLiteTransaction extends SQLiteEffectTransaction {
75
+ static [entityKind] = "EffectSQLiteTransaction";
76
+ transaction = (tx) => this.session.transaction(tx);
77
+ }
78
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/effect-sqlite/session.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAQrC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAK/C,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAiBvH,MAAM,OAAO,mBAAqD,SAAQ,mBAIzE;IAIW;IAEE;IACF;IANV,MAAM,CAAmB,CAAC,UAAU,CAAC,GAAW,qBAAqB,CAAA;IAErE,YACU,MAAiB,EACzB,OAA2B,EACjB,SAAqB,EACvB,OAAmC;QAE3C,KAAK,CAAC,OAAO,CAAC,CAAA;QALN,WAAM,GAAN,MAAM,CAAW;QAEf,cAAS,GAAT,SAAS,CAAY;QACvB,YAAO,GAAP,OAAO,CAA4B;IAG7C,CAAC;IAEQ,YAAY,CACnB,KAAY,EACZ,MAAyC,EACzC,aAAkC,EAClC,kBAAiG,EACjG,aAGC,EACD,WAA6B;QAE7B,OAAO,IAAI,yBAAyB,CAClC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EACvD,KAAK,EACL,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,aAAa,EACb,WAAW,EACX,MAAM,EACN,aAAa,EACb,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,IAAI,CAAC,eAAe,EAAE,CACvB,CAAA;IACH,CAAC;IAEQ,sBAAsB,CAC7B,KAAY,EACZ,MAAyC,EACzC,aAAkC,EAClC,kBAA8G,EAC9G,MAAmC;QAEnC,OAAO,IAAI,yBAAyB,CAClC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EACvD,KAAK,EACL,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,SAAS,EACT,SAAS,EACT,MAAM,EACN,aAAa,EACb,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,kBAAkB,EAClB,IAAI,EACJ,MAAM,EACN,IAAI,CAAC,eAAe,EAAE,CACvB,CAAA;IACH,CAAC;IAEO,OAAO,CAAC,KAAY,EAAE,MAAiB,EAAE,MAAsC;QACrF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACvD,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,MAAM,CAAA;QAChD,IAAI,MAAM,KAAK,KAAK;YAAE,OAAO,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3F,OAAO,SAAS,CAAC,gBAAgB,CAAA;IACnC,CAAC;IAEO,eAAe;QACrB,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAA;IAClH,CAAC;IAEO,2BAA2B,CAAC,UAAgD,EAAE,KAAa;QACjG,OAAO,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC/E,CAAC;IAEO,eAAe,CAAU,MAA8B,EAAE,MAA2C;QAC1G,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5C,MAAM,CAAC,SAAS,CAAqB,CAAC,KAAK,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAA;YAC9B,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;YACpF,MAAM,UAAU,GAId,gBAAgB,CAAC,IAAI,KAAK,MAAM;gBAC9B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAU,CAAC;gBACjE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CACf,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,CAAU,CAAC,EACxD,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAC9E,CACF,CACF,CACF,CAAA;YACP,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAE/E,OAAO,UAAU,CAAC,IAAI,CACpB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE;gBACrC,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAClD,UAAU,EACV,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,CACpF,CAAC,IAAI,CACJ,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAClB,MAAM,CAAC,cAAc,CACnB,OAAO,CAAC,MAAM,CAAC,EACf,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CACxE,CAAC,IAAI,CACJ,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;wBACnC,CAAC,CAAC,EAAE,KAAK,CAAC;4BACR,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI;4BACzD,+EAA+E;4BAC/E,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAC3D,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAC/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACnC,CACF,CACF;4BACH,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,gCAAgC,EAAE,EAAE,CAAC;wBACtF,CAAC,CAAC,EAAE,KAAK,CAAC;4BACR,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,UAAU,CAAC;4BAC1D,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,oCAAoC,EAAE,EAAE,CAAC,CAAC,IAAI,CACzF,MAAM,CAAC,OAAO,CACZ,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,gCAAgC,EAAE,EAAE,CAAC,CACnF,CACF,CAAA;oBAEP,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;gBAClD,CAAC,CAAC,CACH,CACF,CACF,CAAA;gBAED,OAAO,KAAK,KAAK,SAAS;oBACxB,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YACzE,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAEQ,WAAW,CAClB,WAAgF,EAChF,MAAgC;QAEhC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAEnC,OAAO,IAAI,CAAC,eAAe,CACzB,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,uBAAuB,CAAa,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;YAE5E,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAC/B,CAAC,CAAC,EACF,MAAM,CACP,CAAA;IACH,CAAC;;AAGH,MAAM,OAAO,uBAAyD,SAAQ,uBAI7E;IACC,MAAM,CAAmB,CAAC,UAAU,CAAC,GAAW,yBAAyB,CAAA;IAEhE,WAAW,GAIqB,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { EffectLogger } from "drizzle-orm/effect-core";
2
+ export * from "./effect-sqlite/driver";
3
+ export * from "./effect-sqlite/session";
4
+ export { migrate } from "./effect-sqlite/migrator";
5
+ export * as EffectDrizzleSqlite from ".";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAElD,OAAO,KAAK,mBAAmB,MAAM,GAAG,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export { EffectLogger } from "drizzle-orm/effect-core";
2
+ export * from "./effect-sqlite/driver";
3
+ export * from "./effect-sqlite/session";
4
+ export { migrate } from "./effect-sqlite/migrator";
5
+ export * as EffectDrizzleSqlite from ".";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAElD,OAAO,KAAK,mBAAmB,MAAM,GAAG,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { Column } from "drizzle-orm/column";
2
+ import type { JoinNullability } from "drizzle-orm/query-builders/select.types";
3
+ import { SQL } from "drizzle-orm/sql/sql";
4
+ import type { SelectedFieldsOrdered } from "drizzle-orm/sqlite-core/query-builders/select.types";
5
+ import type { SQLiteUpdateSetSource } from "drizzle-orm/sqlite-core/query-builders/update";
6
+ import type { SQLiteTable } from "drizzle-orm/sqlite-core/table";
7
+ import { SQLiteViewBase } from "drizzle-orm/sqlite-core/view-base";
8
+ import { Subquery } from "drizzle-orm/subquery";
9
+ import type { UpdateSet } from "drizzle-orm/utils";
10
+ export declare function getTableColumnsRuntime(table: SQLiteTable): Record<string, Column<import("drizzle-orm").ColumnBaseConfig<import("drizzle-orm").ColumnType>, object>>;
11
+ export declare function getViewSelectedFieldsRuntime(view: SQLiteViewBase): {
12
+ selectedFields: Record<string, unknown>;
13
+ name: string;
14
+ };
15
+ export declare function jitCompatCheck(isEnabled: boolean | undefined): boolean;
16
+ export declare function orderSelectedFields<TColumn extends Column>(fields: Record<string, unknown>, pathPrefix?: string[]): SelectedFieldsOrdered;
17
+ export declare function mapUpdateSet<TTable extends SQLiteTable>(table: TTable, values: SQLiteUpdateSetSource<TTable>): UpdateSet;
18
+ export declare function mapResultRow(columns: SelectedFieldsOrdered, row: unknown[], joinsNotNullableMap: Record<string, boolean> | undefined): Record<string, unknown>;
19
+ export declare function getTableLikeName(table: SQLiteTable | Subquery | SQLiteViewBase | SQL): string;
20
+ export type { JoinNullability };
21
+ //# sourceMappingURL=drizzle-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle-utils.d.ts","sourceRoot":"","sources":["../../src/internal/drizzle-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAkB,MAAM,oBAAoB,CAAA;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAC9E,OAAO,EAAS,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAA;AAChG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAA;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AASlD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,4GAExD;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,cAAc;oBACH,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;UAAQ,MAAM;EAClG;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,WAO5D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,SAAS,MAAM,EACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,qBAAqB,CASvB;AAED,wBAAgB,YAAY,CAAC,MAAM,SAAS,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAStG,SAAS,CACf;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,qBAAqB,EAC9B,GAAG,EAAE,OAAO,EAAE,EACd,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,2BA+CzD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,GAAG,UASpF;AAED,YAAY,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,96 @@
1
+ /* oxlint-disable */
2
+ import { Column, getColumnTable } from "drizzle-orm/column";
3
+ import { is } from "drizzle-orm/entity";
4
+ import { Param, SQL } from "drizzle-orm/sql/sql";
5
+ import { SQLiteViewBase } from "drizzle-orm/sqlite-core/view-base";
6
+ import { Subquery } from "drizzle-orm/subquery";
7
+ import { Table, getTableName } from "drizzle-orm/table";
8
+ import { ViewBaseConfig } from "drizzle-orm/view-common";
9
+ const TableSymbol = Table.Symbol;
10
+ export function getTableColumnsRuntime(table) {
11
+ return table[TableSymbol.Columns];
12
+ }
13
+ export function getViewSelectedFieldsRuntime(view) {
14
+ return view[ViewBaseConfig];
15
+ }
16
+ export function jitCompatCheck(isEnabled) {
17
+ if (!isEnabled)
18
+ return false;
19
+ try {
20
+ return new Function("input", '"use strict"; return input;')(true) === true;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ }
26
+ export function orderSelectedFields(fields, pathPrefix) {
27
+ return Object.entries(fields).flatMap(([name, field]) => {
28
+ const path = pathPrefix ? [...pathPrefix, name] : [name];
29
+ if (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased) || is(field, Subquery)) {
30
+ return [{ path, field }];
31
+ }
32
+ if (is(field, Table))
33
+ return orderSelectedFields(getTableColumnsRuntime(field), path);
34
+ return orderSelectedFields(field, path);
35
+ });
36
+ }
37
+ export function mapUpdateSet(table, values) {
38
+ const entries = Object.entries(values).filter(([, value]) => value !== undefined);
39
+ if (entries.length === 0)
40
+ throw new Error("No values to set");
41
+ return Object.fromEntries(entries.map(([key, value]) => [
42
+ key,
43
+ is(value, SQL) || is(value, Column) ? value : new Param(value, getTableColumnsRuntime(table)[key]),
44
+ ]));
45
+ }
46
+ export function mapResultRow(columns, row, joinsNotNullableMap) {
47
+ const nullifyMap = {};
48
+ const result = {};
49
+ columns.forEach((column, columnIndex) => {
50
+ const decoder = (is(column.field, Column)
51
+ ? column.field
52
+ : is(column.field, SQL)
53
+ ? column.field.decoder
54
+ : is(column.field, Subquery)
55
+ ? column.field._.sql.decoder
56
+ : column.field.sql.decoder);
57
+ const rawValue = row[columnIndex];
58
+ const value = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);
59
+ const objectName = column.path[0];
60
+ let node = result;
61
+ column.path.forEach((pathChunk, pathChunkIndex) => {
62
+ if (pathChunkIndex === column.path.length - 1) {
63
+ node[pathChunk] = value;
64
+ return;
65
+ }
66
+ node[pathChunk] = (node[pathChunk] ?? {});
67
+ node = node[pathChunk];
68
+ });
69
+ if (joinsNotNullableMap && is(column.field, Column) && column.path.length === 2 && objectName) {
70
+ const tableName = getTableName(getColumnTable(column.field));
71
+ nullifyMap[objectName] =
72
+ !(objectName in nullifyMap) && value === null
73
+ ? tableName
74
+ : typeof nullifyMap[objectName] === "string" && nullifyMap[objectName] !== tableName
75
+ ? false
76
+ : nullifyMap[objectName];
77
+ }
78
+ });
79
+ Object.entries(nullifyMap).forEach(([objectName, tableName]) => {
80
+ if (typeof tableName === "string" && !joinsNotNullableMap?.[tableName])
81
+ result[objectName] = null;
82
+ });
83
+ return result;
84
+ }
85
+ export function getTableLikeName(table) {
86
+ if (is(table, Subquery))
87
+ return table._.alias;
88
+ if (is(table, SQLiteViewBase))
89
+ return getViewSelectedFieldsRuntime(table).name;
90
+ if (is(table, SQL))
91
+ return undefined;
92
+ return table[table[TableSymbol.IsAlias]
93
+ ? TableSymbol.Name
94
+ : TableSymbol.BaseName];
95
+ }
96
+ //# sourceMappingURL=drizzle-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle-utils.js","sourceRoot":"","sources":["../../src/internal/drizzle-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type * as Effect from "effect/Effect";
2
+ import { type QueryEffectHKTBase } from "drizzle-orm/effect-core/query-effect";
3
+ import { entityKind } from "drizzle-orm/entity";
4
+ import { SQL, type SQLWrapper } from "drizzle-orm/sql/sql";
5
+ import type { SQLiteTable } from "drizzle-orm/sqlite-core/table";
6
+ import type { SQLiteView } from "drizzle-orm/sqlite-core/view";
7
+ import type { SQLiteEffectSession } from "./session";
8
+ export interface SQLiteEffectCountBuilder<TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> extends SQL<number>, SQLWrapper<number>, Effect.Effect<number, TEffectHKT["error"], TEffectHKT["context"]> {
9
+ }
10
+ export declare class SQLiteEffectCountBuilder<TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> extends SQL<number> {
11
+ static readonly [entityKind]: string;
12
+ private sql;
13
+ private session;
14
+ constructor(params: {
15
+ source: SQLiteTable | SQLiteView | SQL | SQLWrapper;
16
+ filters?: SQL<unknown>;
17
+ session: SQLiteEffectSession<TEffectHKT, any, any>;
18
+ });
19
+ execute(placeholderValues?: Record<string, unknown>): import("drizzle-orm/effect-core").QueryEffectKind<TEffectHKT, number>;
20
+ }
21
+ //# sourceMappingURL=count.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../src/sqlite-core/effect/count.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,GAAG,EAAO,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAUpD,MAAM,WAAW,wBAAwB,CAAC,UAAU,SAAS,kBAAkB,GAAG,kBAAkB,CAClG,SAAQ,GAAG,CAAC,MAAM,CAAC,EACjB,UAAU,CAAC,MAAM,CAAC,EAClB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;CAAG;AAExE,qBAAa,wBAAwB,CAAC,UAAU,SAAS,kBAAkB,GAAG,kBAAkB,CAAE,SAAQ,GAAG,CAAC,MAAM,CAAC;IACnH,gBAAyB,CAAC,UAAU,CAAC,EAAE,MAAM,CAA6B;IAE1E,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAA2C;gBAE9C,MAAM,EAAE;QAClB,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,GAAG,GAAG,UAAU,CAAA;QACnD,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;QACtB,OAAO,EAAE,mBAAmB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;KACnD;IAOD,OAAO,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAgBpD"}
@@ -0,0 +1,31 @@
1
+ import { applyEffectWrapper } from "drizzle-orm/effect-core/query-effect";
2
+ import { entityKind } from "drizzle-orm/entity";
3
+ import { SQL, sql } from "drizzle-orm/sql/sql";
4
+ function buildSQLiteEmbeddedCount(source, filters) {
5
+ return sql `(select count(*) from ${source}${sql.raw(" where ").if(filters)}${filters})`;
6
+ }
7
+ function buildSQLiteCount(source, filters) {
8
+ return sql `select count(*) from ${source}${sql.raw(" where ").if(filters)}${filters}`;
9
+ }
10
+ export class SQLiteEffectCountBuilder extends SQL {
11
+ static [entityKind] = "SQLiteEffectCountBuilder";
12
+ sql;
13
+ session;
14
+ constructor(params) {
15
+ super(buildSQLiteEmbeddedCount(params.source, params.filters).queryChunks);
16
+ this.session = params.session;
17
+ this.sql = buildSQLiteCount(params.source, params.filters);
18
+ }
19
+ execute(placeholderValues) {
20
+ return this.session
21
+ .prepareQuery(this.session.dialect.sqlToQuery(this.sql), undefined, "all", (rows) => {
22
+ const v = rows[0]?.[0];
23
+ if (typeof v === "number")
24
+ return v;
25
+ return v ? Number(v) : 0;
26
+ })
27
+ .execute(placeholderValues);
28
+ }
29
+ }
30
+ applyEffectWrapper(SQLiteEffectCountBuilder);
31
+ //# sourceMappingURL=count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../src/sqlite-core/effect/count.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAA2B,MAAM,sCAAsC,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAmB,MAAM,qBAAqB,CAAA;AAK/D,SAAS,wBAAwB,CAAC,MAAmD,EAAE,OAAsB;IAC3G,OAAO,GAAG,CAAQ,yBAAyB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAA;AACjG,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAmD,EAAE,OAAsB;IACnG,OAAO,GAAG,CAAQ,wBAAwB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE,CAAA;AAC/F,CAAC;AAOD,MAAM,OAAO,wBAAqF,SAAQ,GAAW;IACnH,MAAM,CAAmB,CAAC,UAAU,CAAC,GAAW,0BAA0B,CAAA;IAElE,GAAG,CAAa;IAChB,OAAO,CAA2C;IAE1D,YAAY,MAIX;QACC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAA;QAE1E,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7B,IAAI,CAAC,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAC5D,CAAC;IAED,OAAO,CAAC,iBAA2C;QACjD,OAAO,IAAI,CAAC,OAAO;aAChB,YAAY,CAOV,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACvE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAA;YACnC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC,CAAC;aACD,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC/B,CAAC;;AAGH,kBAAkB,CAAC,wBAAwB,CAAC,CAAA"}
@@ -0,0 +1,83 @@
1
+ import { Effect } from "effect";
2
+ import type { SqlError } from "effect/unstable/sql/SqlError";
3
+ import type { EffectCacheShape } from "drizzle-orm/cache/core/cache-effect";
4
+ import type { QueryEffectHKTBase } from "drizzle-orm/effect-core/query-effect";
5
+ import { entityKind } from "drizzle-orm/entity";
6
+ import type { AnyRelations, EmptyRelations } from "drizzle-orm/relations";
7
+ import { type SQL, type SQLWrapper } from "drizzle-orm/sql/sql";
8
+ import type { SQLiteAsyncDialect } from "drizzle-orm/sqlite-core/dialect";
9
+ import type { SelectedFields } from "drizzle-orm/sqlite-core/query-builders/select.types";
10
+ import type { SQLiteTransactionConfig } from "drizzle-orm/sqlite-core/session";
11
+ import type { SQLiteTable } from "drizzle-orm/sqlite-core/table";
12
+ import type { SQLiteViewBase } from "drizzle-orm/sqlite-core/view-base";
13
+ import { WithSubquery } from "drizzle-orm/subquery";
14
+ import type { WithBuilder } from "drizzle-orm/sqlite-core/subquery";
15
+ import { SQLiteEffectCountBuilder } from "./count";
16
+ import { SQLiteEffectDeleteBase } from "./delete";
17
+ import { SQLiteEffectInsertBuilder } from "./insert";
18
+ import { SQLiteEffectRelationalQueryBuilder } from "./query";
19
+ import { SQLiteEffectRaw } from "./raw";
20
+ import { SQLiteEffectSelectBuilder } from "./select";
21
+ import type { SQLiteEffectSelectBase } from "./select";
22
+ import type { SQLiteEffectSession, SQLiteEffectTransaction } from "./session";
23
+ import { SQLiteEffectUpdateBuilder } from "./update";
24
+ export declare class SQLiteEffectDatabase<TEffectHKT extends QueryEffectHKTBase, TRunResult, TRelations extends AnyRelations = EmptyRelations> {
25
+ /** @internal */
26
+ readonly dialect: SQLiteAsyncDialect;
27
+ /** @internal */
28
+ readonly session: SQLiteEffectSession<TEffectHKT, TRunResult, TRelations>;
29
+ readonly rowModeRQB?: boolean;
30
+ readonly forbidJsonb?: boolean;
31
+ static readonly [entityKind]: string;
32
+ readonly _: {
33
+ readonly relations: TRelations;
34
+ readonly session: SQLiteEffectSession<TEffectHKT, TRunResult, TRelations>;
35
+ };
36
+ query: {
37
+ [K in keyof TRelations]: SQLiteEffectRelationalQueryBuilder<TRelations, TRelations[K], TEffectHKT>;
38
+ };
39
+ constructor(
40
+ /** @internal */
41
+ dialect: SQLiteAsyncDialect,
42
+ /** @internal */
43
+ session: SQLiteEffectSession<TEffectHKT, TRunResult, TRelations>, relations: TRelations, rowModeRQB?: boolean, forbidJsonb?: boolean);
44
+ $with: WithBuilder;
45
+ $cache: {
46
+ invalidate: EffectCacheShape["onMutate"];
47
+ };
48
+ $count(source: SQLiteTable | SQLiteViewBase | SQL | SQLWrapper, filters?: SQL<unknown>): SQLiteEffectCountBuilder<TEffectHKT>;
49
+ with(...queries: WithSubquery[]): {
50
+ select: {
51
+ (): SQLiteEffectSelectBuilder<undefined, TRunResult, TEffectHKT>;
52
+ <TSelection extends SelectedFields>(fields: TSelection): SQLiteEffectSelectBuilder<TSelection, TRunResult, TEffectHKT>;
53
+ };
54
+ selectDistinct: {
55
+ (): SQLiteEffectSelectBuilder<undefined, TRunResult, TEffectHKT>;
56
+ <TSelection extends SelectedFields>(fields: TSelection): SQLiteEffectSelectBuilder<TSelection, TRunResult, TEffectHKT>;
57
+ };
58
+ update: <TTable extends SQLiteTable>(table: TTable) => SQLiteEffectUpdateBuilder<TTable, TRunResult, TEffectHKT>;
59
+ insert: <TTable extends SQLiteTable>(into: TTable) => SQLiteEffectInsertBuilder<TTable, TRunResult, TEffectHKT>;
60
+ delete: <TTable extends SQLiteTable>(from: TTable) => SQLiteEffectDeleteBase<TTable, TRunResult, undefined, false, never, TEffectHKT>;
61
+ };
62
+ select(): SQLiteEffectSelectBuilder<undefined, TRunResult, TEffectHKT>;
63
+ select<TSelection extends SelectedFields>(fields: TSelection): SQLiteEffectSelectBuilder<TSelection, TRunResult, TEffectHKT>;
64
+ selectDistinct(): SQLiteEffectSelectBuilder<undefined, TRunResult, TEffectHKT>;
65
+ selectDistinct<TSelection extends SelectedFields>(fields: TSelection): SQLiteEffectSelectBuilder<TSelection, TRunResult, TEffectHKT>;
66
+ update<TTable extends SQLiteTable>(table: TTable): SQLiteEffectUpdateBuilder<TTable, TRunResult, TEffectHKT>;
67
+ insert<TTable extends SQLiteTable>(into: TTable): SQLiteEffectInsertBuilder<TTable, TRunResult, TEffectHKT>;
68
+ delete<TTable extends SQLiteTable>(from: TTable): SQLiteEffectDeleteBase<TTable, TRunResult, undefined, false, never, TEffectHKT>;
69
+ private raw;
70
+ run(query: SQLWrapper | string): SQLiteEffectRaw<TRunResult, TEffectHKT>;
71
+ all<T = unknown>(query: SQLWrapper | string): SQLiteEffectRaw<T[], TEffectHKT>;
72
+ get<T = unknown>(query: SQLWrapper | string): SQLiteEffectRaw<T | undefined, TEffectHKT>;
73
+ values<T extends unknown[] = unknown[]>(query: SQLWrapper | string): SQLiteEffectRaw<T[], TEffectHKT>;
74
+ transaction: <A, E, R>(transaction: (tx: SQLiteEffectTransaction<TEffectHKT, TRunResult, TRelations>) => Effect.Effect<A, E, R>, config?: SQLiteTransactionConfig) => Effect.Effect<A, E | SqlError, R>;
75
+ }
76
+ export type SQLiteEffectWithReplicas<Q> = Q & {
77
+ $primary: Q;
78
+ $replicas: Q[];
79
+ };
80
+ export declare const withReplicas: <TEffectHKT extends QueryEffectHKTBase, TRunResult, TRelations extends AnyRelations, Q extends SQLiteEffectDatabase<TEffectHKT, TRunResult, TRelations>>(primary: Q, replicas: [Q, ...Q[]], getReplica?: (replicas: Q[]) => Q) => SQLiteEffectWithReplicas<Q>;
81
+ export type AnySQLiteEffectDatabase = SQLiteEffectDatabase<any, any, any>;
82
+ export type AnySQLiteEffectSelectBase = SQLiteEffectSelectBase<any, any, any, any, any, any, any, any, any, any>;
83
+ //# sourceMappingURL=db.d.ts.map