drizzle-orm 1.0.0-beta.23-0bbcaa2 → 1.0.0-beta.24
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.
- package/aws-data-api/common/index.d.cts +1 -1
- package/aws-data-api/common/index.d.ts +1 -1
- package/aws-data-api/pg/driver.cjs +1 -1
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.js +1 -1
- package/aws-data-api/pg/driver.js.map +1 -1
- package/better-sqlite3/driver.cjs +1 -1
- package/better-sqlite3/driver.cjs.map +1 -1
- package/better-sqlite3/driver.js +1 -1
- package/better-sqlite3/driver.js.map +1 -1
- package/bun-sql/mysql/driver.cjs +1 -1
- package/bun-sql/mysql/driver.cjs.map +1 -1
- package/bun-sql/mysql/driver.js +1 -1
- package/bun-sql/mysql/driver.js.map +1 -1
- package/bun-sql/postgres/driver.cjs +1 -1
- package/bun-sql/postgres/driver.cjs.map +1 -1
- package/bun-sql/postgres/driver.js +1 -1
- package/bun-sql/postgres/driver.js.map +1 -1
- package/bun-sql/sqlite/driver.cjs +1 -1
- package/bun-sql/sqlite/driver.cjs.map +1 -1
- package/bun-sql/sqlite/driver.js +1 -1
- package/bun-sql/sqlite/driver.js.map +1 -1
- package/bun-sqlite/driver.cjs +1 -1
- package/bun-sqlite/driver.cjs.map +1 -1
- package/bun-sqlite/driver.js +1 -1
- package/bun-sqlite/driver.js.map +1 -1
- package/cockroach/driver.cjs +1 -1
- package/cockroach/driver.cjs.map +1 -1
- package/cockroach/driver.js +1 -1
- package/cockroach/driver.js.map +1 -1
- package/d1/driver.cjs.map +1 -1
- package/d1/driver.d.cts +1 -1
- package/d1/driver.d.ts +1 -1
- package/d1/driver.js.map +1 -1
- package/durable-sqlite/driver.cjs +1 -1
- package/durable-sqlite/driver.cjs.map +1 -1
- package/durable-sqlite/driver.js +1 -1
- package/durable-sqlite/driver.js.map +1 -1
- package/effect-postgres/driver.cjs +2 -2
- package/effect-postgres/driver.cjs.map +1 -1
- package/effect-postgres/driver.d.cts +2 -2
- package/effect-postgres/driver.d.ts +2 -2
- package/effect-postgres/driver.js +2 -2
- package/effect-postgres/driver.js.map +1 -1
- package/effect-postgres/migrator.d.cts +1 -1
- package/effect-postgres/migrator.d.ts +1 -1
- package/expo-sqlite/driver.cjs +1 -1
- package/expo-sqlite/driver.cjs.map +1 -1
- package/expo-sqlite/driver.js +1 -1
- package/expo-sqlite/driver.js.map +1 -1
- package/libsql/driver-core.cjs +1 -1
- package/libsql/driver-core.cjs.map +1 -1
- package/libsql/driver-core.js +1 -1
- package/libsql/driver-core.js.map +1 -1
- package/mysql-proxy/driver.cjs +1 -1
- package/mysql-proxy/driver.cjs.map +1 -1
- package/mysql-proxy/driver.js +1 -1
- package/mysql-proxy/driver.js.map +1 -1
- package/mysql2/driver.cjs +1 -1
- package/mysql2/driver.cjs.map +1 -1
- package/mysql2/driver.js +1 -1
- package/mysql2/driver.js.map +1 -1
- package/neon-http/driver.cjs +1 -1
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.js +1 -1
- package/neon-http/driver.js.map +1 -1
- package/neon-serverless/driver.cjs +1 -1
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.js +1 -1
- package/neon-serverless/driver.js.map +1 -1
- package/netlify-db/driver.cjs +1 -1
- package/netlify-db/driver.cjs.map +1 -1
- package/netlify-db/driver.js +1 -1
- package/netlify-db/driver.js.map +1 -1
- package/node-mssql/driver.cjs +1 -1
- package/node-mssql/driver.cjs.map +1 -1
- package/node-mssql/driver.js +1 -1
- package/node-mssql/driver.js.map +1 -1
- package/node-postgres/driver.cjs +1 -1
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.js +1 -1
- package/node-postgres/driver.js.map +1 -1
- package/node-sqlite/driver.cjs +1 -1
- package/node-sqlite/driver.cjs.map +1 -1
- package/node-sqlite/driver.js +1 -1
- package/node-sqlite/driver.js.map +1 -1
- package/op-sqlite/driver.cjs +1 -1
- package/op-sqlite/driver.cjs.map +1 -1
- package/op-sqlite/driver.js +1 -1
- package/op-sqlite/driver.js.map +1 -1
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +1 -1
- package/pg-core/effect/session.d.cts +1 -1
- package/pg-core/effect/session.d.ts +1 -1
- package/pg-proxy/driver.cjs +1 -1
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.js +1 -1
- package/pg-proxy/driver.js.map +1 -1
- package/pglite/driver.cjs +1 -1
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.js +1 -1
- package/pglite/driver.js.map +1 -1
- package/planetscale-serverless/driver.cjs +1 -1
- package/planetscale-serverless/driver.cjs.map +1 -1
- package/planetscale-serverless/driver.js +1 -1
- package/planetscale-serverless/driver.js.map +1 -1
- package/postgres-js/driver.cjs +1 -1
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.js +1 -1
- package/postgres-js/driver.js.map +1 -1
- package/singlestore/driver.cjs +1 -1
- package/singlestore/driver.cjs.map +1 -1
- package/singlestore/driver.js +1 -1
- package/singlestore/driver.js.map +1 -1
- package/singlestore-proxy/driver.cjs +1 -1
- package/singlestore-proxy/driver.cjs.map +1 -1
- package/singlestore-proxy/driver.js +1 -1
- package/singlestore-proxy/driver.js.map +1 -1
- package/sql-js/driver.cjs +1 -1
- package/sql-js/driver.cjs.map +1 -1
- package/sql-js/driver.js +1 -1
- package/sql-js/driver.js.map +1 -1
- package/sqlite-cloud/driver.cjs +1 -1
- package/sqlite-cloud/driver.cjs.map +1 -1
- package/sqlite-cloud/driver.js +1 -1
- package/sqlite-cloud/driver.js.map +1 -1
- package/sqlite-proxy/driver.cjs +1 -1
- package/sqlite-proxy/driver.cjs.map +1 -1
- package/sqlite-proxy/driver.js +1 -1
- package/sqlite-proxy/driver.js.map +1 -1
- package/tidb-serverless/driver.cjs +1 -1
- package/tidb-serverless/driver.cjs.map +1 -1
- package/tidb-serverless/driver.js +1 -1
- package/tidb-serverless/driver.js.map +1 -1
- package/tursodatabase/driver-core.cjs +1 -1
- package/tursodatabase/driver-core.cjs.map +1 -1
- package/tursodatabase/driver-core.js +1 -1
- package/tursodatabase/driver-core.js.map +1 -1
- package/utils.cjs +2 -2
- package/utils.cjs.map +1 -1
- package/utils.d.cts +1 -1
- package/utils.d.ts +1 -1
- package/utils.js +2 -2
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +1 -1
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.js +1 -1
- package/vercel-postgres/driver.js.map +1 -1
- package/xata-http/driver.cjs +1 -1
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.js +1 -1
- package/xata-http/driver.js.map +1 -1
|
@@ -27,7 +27,7 @@ function drizzle(callback, config = {}) {
|
|
|
27
27
|
const relations = config.relations ?? {};
|
|
28
28
|
return new SingleStoreRemoteDatabase(dialect, new SingleStoreRemoteSession(callback, dialect, relations, schema, {
|
|
29
29
|
logger,
|
|
30
|
-
useJitMappers: jitCompatCheck(config.
|
|
30
|
+
useJitMappers: jitCompatCheck(config.jit)
|
|
31
31
|
}), relations, schema);
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","names":[],"sources":["../../src/singlestore-proxy/driver.ts"],"sourcesContent":["import {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport {\n\ttype SingleStoreRemotePreparedQueryHKT,\n\ttype SingleStoreRemoteQueryResultHKT,\n\tSingleStoreRemoteSession,\n} from './session.ts';\n\nexport class SingleStoreRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRemoteDatabase';\n}\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n) => Promise<{ rows: any[]; insertId?: number; affectedRows?: number }>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SingleStoreDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SingleStoreRemoteSession(callback, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.
|
|
1
|
+
{"version":3,"file":"driver.js","names":[],"sources":["../../src/singlestore-proxy/driver.ts"],"sourcesContent":["import {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { SingleStoreDatabase } from '~/singlestore-core/db.ts';\nimport { SingleStoreDialect } from '~/singlestore-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport {\n\ttype SingleStoreRemotePreparedQueryHKT,\n\ttype SingleStoreRemoteQueryResultHKT,\n\tSingleStoreRemoteSession,\n} from './session.ts';\n\nexport class SingleStoreRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends SingleStoreDatabase<SingleStoreRemoteQueryResultHKT, SingleStoreRemotePreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SingleStoreRemoteDatabase';\n}\n\nexport type RemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'all' | 'execute',\n) => Promise<{ rows: any[]; insertId?: number; affectedRows?: number }>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SingleStoreRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SingleStoreDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig<TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SingleStoreRemoteSession(callback, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t});\n\treturn new SingleStoreRemoteDatabase(dialect, session, relations, schema as any) as SingleStoreRemoteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":";;;;;;;;;AAkBA,IAAa,4BAAb,cAGU,oBAA6G;CACtH,QAA0B,cAAsB;;AASjD,SAAgB,QAIf,UACA,SAA6C,EAAE,EACE;CACjD,MAAM,UAAU,IAAI,oBAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,8BACpB,OAAO,QACP,4BACA;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;AAKxC,QAAO,IAAI,0BAA0B,SAJrB,IAAI,yBAAyB,UAAU,SAAS,WAAW,QAAQ;EAClF;EACA,eAAe,eAAe,OAAO,IAAI;EACzC,CAAC,EACqD,WAAW,OAAc"}
|
package/sql-js/driver.cjs
CHANGED
|
@@ -26,7 +26,7 @@ function drizzle(client, config = {}) {
|
|
|
26
26
|
const relations = config.relations ?? {};
|
|
27
27
|
return new __sqlite_core_db_ts.BaseSQLiteDatabase("sync", dialect, new require_sql_js_session.SQLJsSession(client, dialect, relations, schema, {
|
|
28
28
|
logger,
|
|
29
|
-
useJitMappers: (0, __utils_ts.jitCompatCheck)(config.
|
|
29
|
+
useJitMappers: (0, __utils_ts.jitCompatCheck)(config.jit)
|
|
30
30
|
}), relations, schema);
|
|
31
31
|
}
|
|
32
32
|
|
package/sql-js/driver.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.cjs","names":["SQLiteSyncDialect","DefaultLogger","V1","BaseSQLiteDatabase","SQLJsSession"],"sources":["../../src/sql-js/driver.ts"],"sourcesContent":["import type { Database } from 'sql.js';\nimport * as V1 from '~/_relations.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLJsSession } from './session.ts';\n\nexport type SQLJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> = BaseSQLiteDatabase<'sync', void, TSchema, TRelations>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SQLJsDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteSyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLJsSession(client, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.
|
|
1
|
+
{"version":3,"file":"driver.cjs","names":["SQLiteSyncDialect","DefaultLogger","V1","BaseSQLiteDatabase","SQLJsSession"],"sources":["../../src/sql-js/driver.ts"],"sourcesContent":["import type { Database } from 'sql.js';\nimport * as V1 from '~/_relations.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLJsSession } from './session.ts';\n\nexport type SQLJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> = BaseSQLiteDatabase<'sync', void, TSchema, TRelations>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SQLJsDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteSyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLJsSession(client, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t});\n\treturn new BaseSQLiteDatabase('sync', dialect, session, relations, schema) as SQLJsDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":";;;;;;;;;;;AAcA,SAAgB,QAIf,QACA,SAA6C,EAAE,EACV;CACrC,MAAM,UAAU,IAAIA,4CAAmB;CACvC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;AAKxC,QAAO,IAAIC,uCAAmB,QAAQ,SAJtB,IAAIC,oCAAa,QAAQ,SAAS,WAAW,QAAQ;EACpE;EACA,8CAA8B,OAAO,IAAI;EACzC,CAAC,EACsD,WAAW,OAAO"}
|
package/sql-js/driver.js
CHANGED
|
@@ -23,7 +23,7 @@ function drizzle(client, config = {}) {
|
|
|
23
23
|
const relations = config.relations ?? {};
|
|
24
24
|
return new BaseSQLiteDatabase("sync", dialect, new SQLJsSession(client, dialect, relations, schema, {
|
|
25
25
|
logger,
|
|
26
|
-
useJitMappers: jitCompatCheck(config.
|
|
26
|
+
useJitMappers: jitCompatCheck(config.jit)
|
|
27
27
|
}), relations, schema);
|
|
28
28
|
}
|
|
29
29
|
|
package/sql-js/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","names":[],"sources":["../../src/sql-js/driver.ts"],"sourcesContent":["import type { Database } from 'sql.js';\nimport * as V1 from '~/_relations.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLJsSession } from './session.ts';\n\nexport type SQLJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> = BaseSQLiteDatabase<'sync', void, TSchema, TRelations>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SQLJsDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteSyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLJsSession(client, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.
|
|
1
|
+
{"version":3,"file":"driver.js","names":[],"sources":["../../src/sql-js/driver.ts"],"sourcesContent":["import type { Database } from 'sql.js';\nimport * as V1 from '~/_relations.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLJsSession } from './session.ts';\n\nexport type SQLJsDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> = BaseSQLiteDatabase<'sync', void, TSchema, TRelations>;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SQLJsDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteSyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLJsSession(client, dialect, relations, schema, {\n\t\tlogger,\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t});\n\treturn new BaseSQLiteDatabase('sync', dialect, session, relations, schema) as SQLJsDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n}\n"],"mappings":";;;;;;;;AAcA,SAAgB,QAIf,QACA,SAA6C,EAAE,EACV;CACrC,MAAM,UAAU,IAAI,mBAAmB;CACvC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,GAAG,8BACvB,OAAO,QACP,GAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;AAKxC,QAAO,IAAI,mBAAmB,QAAQ,SAJtB,IAAI,aAAa,QAAQ,SAAS,WAAW,QAAQ;EACpE;EACA,eAAe,eAAe,OAAO,IAAI;EACzC,CAAC,EACsD,WAAW,OAAO"}
|
package/sqlite-cloud/driver.cjs
CHANGED
|
@@ -33,7 +33,7 @@ function construct(client, config = {}) {
|
|
|
33
33
|
const db = new SQLiteCloudDatabase("async", dialect, new require_sqlite_cloud_session.SQLiteCloudSession(client, dialect, relations, schema, {
|
|
34
34
|
logger,
|
|
35
35
|
cache: config.cache,
|
|
36
|
-
useJitMappers: (0, __utils_ts.jitCompatCheck)(config.
|
|
36
|
+
useJitMappers: (0, __utils_ts.jitCompatCheck)(config.jit)
|
|
37
37
|
}), relations, schema);
|
|
38
38
|
db.$client = client;
|
|
39
39
|
db.$cache = config.cache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.cjs","names":["BaseSQLiteDatabase","entityKind","SQLiteAsyncDialect","DefaultLogger","V1","SQLiteCloudSession","Database"],"sources":["../../src/sqlite-cloud/driver.ts"],"sourcesContent":["import { Database } from '@sqlitecloud/drivers';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLiteCloudSession } from './session.ts';\n\nexport type SQLiteCloudRunResult = unknown;\n\nexport class SQLiteCloudDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', SQLiteCloudRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SQLiteCloudDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteCloudSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SQLiteCloudDatabase<TSchema, TRelations> & {\n\t$client: Database;\n} {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLiteCloudSession(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\tschema,\n\t\t{ logger, cache: config.cache, useJitMappers: jitCompatCheck(config.
|
|
1
|
+
{"version":3,"file":"driver.cjs","names":["BaseSQLiteDatabase","entityKind","SQLiteAsyncDialect","DefaultLogger","V1","SQLiteCloudSession","Database"],"sources":["../../src/sqlite-cloud/driver.ts"],"sourcesContent":["import { Database } from '@sqlitecloud/drivers';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLiteCloudSession } from './session.ts';\n\nexport type SQLiteCloudRunResult = unknown;\n\nexport class SQLiteCloudDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', SQLiteCloudRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SQLiteCloudDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteCloudSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SQLiteCloudDatabase<TSchema, TRelations> & {\n\t$client: Database;\n} {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLiteCloudSession(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\tschema,\n\t\t{ logger, cache: config.cache, useJitMappers: jitCompatCheck(config.jit) },\n\t);\n\tconst db = new SQLiteCloudDatabase(\n\t\t'async',\n\t\tdialect,\n\t\tsession as SQLiteCloudSession<\n\t\t\tTSchema,\n\t\t\tTRelations,\n\t\t\tV1.ExtractTablesWithRelations<TSchema>\n\t\t>,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as SQLiteCloudDatabase<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\treturn db as any;\n}\n\nexport type DatabaseOpts = (Database extends { new(path: string, opts: infer D): any } ? D : any) & {\n\tpath: string;\n};\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Database = Database,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | DatabaseOpts;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): SQLiteCloudDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new Database(params[0]);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: DatabaseOpts; client?: TClient }\n\t\t& DrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tconst instance = typeof connection === 'string'\n\t\t? new Database(connection)\n\t\t: new Database(connection.path, connection);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): SQLiteCloudDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAYA,IAAa,sBAAb,cAGUA,uCAAuE;CAChF,QAA0BC,0BAAsB;;;AAWjD,SAAgB,UAIf,QACA,SAA6C,EAAE,EAG9C;CACD,MAAM,UAAU,IAAIC,6CAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAQxC,MAAM,KAAK,IAAI,oBACd,SACA,SATe,IAAIC,gDACnB,QACA,SACA,WACA,QACA;EAAE;EAAQ,OAAO,OAAO;EAAO,8CAA8B,OAAO,IAAI;EAAE,CAC1E,EASA,WACA,OACA;AACD,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAEjD,QAAO;;AAOR,SAAgB,QAKf,GAAG,QAiBF;AACD,KAAI,OAAO,OAAO,OAAO,SAGxB,QAAO,UAFU,IAAIC,8BAAS,OAAO,GAAG,EAEb,OAAO,GAAG;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAMnD,QAAO,UAJU,OAAO,eAAe,WACpC,IAAIA,8BAAS,WAAW,GACxB,IAAIA,8BAAS,WAAW,MAAM,WAAW,EAEjB,cAAc;;;CAIlC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
|
package/sqlite-cloud/driver.js
CHANGED
|
@@ -30,7 +30,7 @@ function construct(client, config = {}) {
|
|
|
30
30
|
const db = new SQLiteCloudDatabase("async", dialect, new SQLiteCloudSession(client, dialect, relations, schema, {
|
|
31
31
|
logger,
|
|
32
32
|
cache: config.cache,
|
|
33
|
-
useJitMappers: jitCompatCheck(config.
|
|
33
|
+
useJitMappers: jitCompatCheck(config.jit)
|
|
34
34
|
}), relations, schema);
|
|
35
35
|
db.$client = client;
|
|
36
36
|
db.$cache = config.cache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","names":[],"sources":["../../src/sqlite-cloud/driver.ts"],"sourcesContent":["import { Database } from '@sqlitecloud/drivers';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLiteCloudSession } from './session.ts';\n\nexport type SQLiteCloudRunResult = unknown;\n\nexport class SQLiteCloudDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', SQLiteCloudRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SQLiteCloudDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteCloudSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SQLiteCloudDatabase<TSchema, TRelations> & {\n\t$client: Database;\n} {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLiteCloudSession(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\tschema,\n\t\t{ logger, cache: config.cache, useJitMappers: jitCompatCheck(config.
|
|
1
|
+
{"version":3,"file":"driver.js","names":[],"sources":["../../src/sqlite-cloud/driver.ts"],"sourcesContent":["import { Database } from '@sqlitecloud/drivers';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLiteCloudSession } from './session.ts';\n\nexport type SQLiteCloudRunResult = unknown;\n\nexport class SQLiteCloudDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', SQLiteCloudRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SQLiteCloudDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteCloudSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Database,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): SQLiteCloudDatabase<TSchema, TRelations> & {\n\t$client: Database;\n} {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new SQLiteCloudSession(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\tschema,\n\t\t{ logger, cache: config.cache, useJitMappers: jitCompatCheck(config.jit) },\n\t);\n\tconst db = new SQLiteCloudDatabase(\n\t\t'async',\n\t\tdialect,\n\t\tsession as SQLiteCloudSession<\n\t\t\tTSchema,\n\t\t\tTRelations,\n\t\t\tV1.ExtractTablesWithRelations<TSchema>\n\t\t>,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as SQLiteCloudDatabase<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\treturn db as any;\n}\n\nexport type DatabaseOpts = (Database extends { new(path: string, opts: infer D): any } ? D : any) & {\n\tpath: string;\n};\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Database = Database,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t(\n\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t& ({\n\t\t\t\tconnection: string | DatabaseOpts;\n\t\t\t} | {\n\t\t\t\tclient: TClient;\n\t\t\t})\n\t\t),\n\t]\n): SQLiteCloudDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = new Database(params[0]);\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: DatabaseOpts; client?: TClient }\n\t\t& DrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tconst instance = typeof connection === 'string'\n\t\t? new Database(connection)\n\t\t: new Database(connection.path, connection);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): SQLiteCloudDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;AAYA,IAAa,sBAAb,cAGU,mBAAuE;CAChF,QAA0B,cAAsB;;;AAWjD,SAAgB,UAIf,QACA,SAA6C,EAAE,EAG9C;CACD,MAAM,UAAU,IAAI,oBAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,GAAG,8BACvB,OAAO,QACP,GAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAQxC,MAAM,KAAK,IAAI,oBACd,SACA,SATe,IAAI,mBACnB,QACA,SACA,WACA,QACA;EAAE;EAAQ,OAAO,OAAO;EAAO,eAAe,eAAe,OAAO,IAAI;EAAE,CAC1E,EASA,WACA,OACA;AACD,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAEjD,QAAO;;AAOR,SAAgB,QAKf,GAAG,QAiBF;AACD,KAAI,OAAO,OAAO,OAAO,SAGxB,QAAO,UAFU,IAAI,SAAS,OAAO,GAAG,EAEb,OAAO,GAAG;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAMnD,QAAO,UAJU,OAAO,eAAe,WACpC,IAAI,SAAS,WAAW,GACxB,IAAI,SAAS,WAAW,MAAM,WAAW,EAEjB,cAAc;;;CAIlC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
|
package/sqlite-proxy/driver.cjs
CHANGED
|
@@ -49,7 +49,7 @@ function drizzle(callback, batchCallback, config) {
|
|
|
49
49
|
const db = new SqliteRemoteDatabase("async", dialect, new require_sqlite_proxy_session.SQLiteRemoteSession(callback, dialect, relations, schema, _batchCallback, {
|
|
50
50
|
logger,
|
|
51
51
|
cache,
|
|
52
|
-
useJitMappers: (0, __utils_ts.jitCompatCheck)(_config.
|
|
52
|
+
useJitMappers: (0, __utils_ts.jitCompatCheck)(_config.jit)
|
|
53
53
|
}), relations, schema, true);
|
|
54
54
|
db.$cache = cache;
|
|
55
55
|
if (db.$cache) db.$cache["invalidate"] = cache?.onMutate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.cjs","names":["BaseSQLiteDatabase","entityKind","SQLiteAsyncDialect","DefaultLogger","V1","SQLiteRemoteSession"],"sources":["../../src/sqlite-proxy/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLiteRemoteSession } from './session.ts';\n\nexport interface SqliteRemoteResult<T = unknown> {\n\trows?: T[];\n}\n\nexport class SqliteRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SqliteRemoteDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteRemoteSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport type AsyncRemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'run' | 'all' | 'values' | 'get',\n) => Promise<{ rows: any[] }>;\n\nexport type AsyncBatchRemoteCallback = (batch: {\n\tsql: string;\n\tparams: any[];\n\tmethod: 'run' | 'all' | 'values' | 'get';\n}[]) => Promise<{ rows: any[] }[]>;\n\nexport type RemoteCallback = AsyncRemoteCallback;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema, TRelations>,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tlet cache;\n\tlet _batchCallback: AsyncBatchRemoteCallback | undefined;\n\tlet _config: DrizzleConfig<TSchema, TRelations> = {};\n\n\tif (batchCallback) {\n\t\tif (typeof batchCallback === 'function') {\n\t\t\t_batchCallback = batchCallback as AsyncBatchRemoteCallback;\n\t\t\t_config = config ?? {};\n\t\t} else {\n\t\t\t_batchCallback = undefined;\n\t\t\t_config = batchCallback as DrizzleConfig<TSchema, TRelations>;\n\t\t}\n\n\t\tif (_config.logger === true) {\n\t\t\tlogger = new DefaultLogger();\n\t\t} else if (_config.logger !== false) {\n\t\t\tlogger = _config.logger;\n\t\t\tcache = _config.cache;\n\t\t}\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (_config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\t_config.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: _config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = _config.relations ?? {} as TRelations;\n\tconst session = new SQLiteRemoteSession(callback, dialect, relations, schema, _batchCallback, {\n\t\tlogger,\n\t\tcache,\n\t\tuseJitMappers: jitCompatCheck(_config.
|
|
1
|
+
{"version":3,"file":"driver.cjs","names":["BaseSQLiteDatabase","entityKind","SQLiteAsyncDialect","DefaultLogger","V1","SQLiteRemoteSession"],"sources":["../../src/sqlite-proxy/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLiteRemoteSession } from './session.ts';\n\nexport interface SqliteRemoteResult<T = unknown> {\n\trows?: T[];\n}\n\nexport class SqliteRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SqliteRemoteDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteRemoteSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport type AsyncRemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'run' | 'all' | 'values' | 'get',\n) => Promise<{ rows: any[] }>;\n\nexport type AsyncBatchRemoteCallback = (batch: {\n\tsql: string;\n\tparams: any[];\n\tmethod: 'run' | 'all' | 'values' | 'get';\n}[]) => Promise<{ rows: any[] }[]>;\n\nexport type RemoteCallback = AsyncRemoteCallback;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema, TRelations>,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tlet cache;\n\tlet _batchCallback: AsyncBatchRemoteCallback | undefined;\n\tlet _config: DrizzleConfig<TSchema, TRelations> = {};\n\n\tif (batchCallback) {\n\t\tif (typeof batchCallback === 'function') {\n\t\t\t_batchCallback = batchCallback as AsyncBatchRemoteCallback;\n\t\t\t_config = config ?? {};\n\t\t} else {\n\t\t\t_batchCallback = undefined;\n\t\t\t_config = batchCallback as DrizzleConfig<TSchema, TRelations>;\n\t\t}\n\n\t\tif (_config.logger === true) {\n\t\t\tlogger = new DefaultLogger();\n\t\t} else if (_config.logger !== false) {\n\t\t\tlogger = _config.logger;\n\t\t\tcache = _config.cache;\n\t\t}\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (_config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\t_config.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: _config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = _config.relations ?? {} as TRelations;\n\tconst session = new SQLiteRemoteSession(callback, dialect, relations, schema, _batchCallback, {\n\t\tlogger,\n\t\tcache,\n\t\tuseJitMappers: jitCompatCheck(_config.jit),\n\t});\n\tconst db = new SqliteRemoteDatabase(\n\t\t'async',\n\t\tdialect,\n\t\tsession as SqliteRemoteDatabase<TSchema, TRelations>['session'],\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t\ttrue,\n\t) as SqliteRemoteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n\t(<any> db).$cache = cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = cache?.onMutate;\n\t}\n\treturn db;\n}\n"],"mappings":";;;;;;;;;;;;AAcA,IAAa,uBAAb,cAGUA,uCAAqE;CAC9E,QAA0BC,0BAAsB;CAShD,MAAM,MACL,OAC4B;AAC5B,SAAO,KAAK,QAAQ,MAAM,MAAM;;;AAiClC,SAAgB,QAIf,UACA,eACA,QAC4C;CAC5C,MAAM,UAAU,IAAIC,6CAAoB;CACxC,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI,UAA8C,EAAE;AAEpD,KAAI,eAAe;AAClB,MAAI,OAAO,kBAAkB,YAAY;AACxC,oBAAiB;AACjB,aAAU,UAAU,EAAE;SAChB;AACN,oBAAiB;AACjB,aAAU;;AAGX,MAAI,QAAQ,WAAW,KACtB,UAAS,IAAIC,2BAAe;WAClB,QAAQ,WAAW,OAAO;AACpC,YAAS,QAAQ;AACjB,WAAQ,QAAQ;;;CAIlB,IAAI;AACJ,KAAI,QAAQ,QAAQ;EACnB,MAAM,eAAeC,gBAAG,8BACvB,QAAQ,QACRA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,QAAQ;GACpB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,QAAQ,aAAa,EAAE;CAMzC,MAAM,KAAK,IAAI,qBACd,SACA,SAPe,IAAIC,iDAAoB,UAAU,SAAS,WAAW,QAAQ,gBAAgB;EAC7F;EACA;EACA,8CAA8B,QAAQ,IAAI;EAC1C,CAAC,EAKD,WACA,QACA,KACA;AAID,CAAO,GAAI,SAAS;AACpB,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO;AAE1C,QAAO"}
|
package/sqlite-proxy/driver.js
CHANGED
|
@@ -46,7 +46,7 @@ function drizzle(callback, batchCallback, config) {
|
|
|
46
46
|
const db = new SqliteRemoteDatabase("async", dialect, new SQLiteRemoteSession(callback, dialect, relations, schema, _batchCallback, {
|
|
47
47
|
logger,
|
|
48
48
|
cache,
|
|
49
|
-
useJitMappers: jitCompatCheck(_config.
|
|
49
|
+
useJitMappers: jitCompatCheck(_config.jit)
|
|
50
50
|
}), relations, schema, true);
|
|
51
51
|
db.$cache = cache;
|
|
52
52
|
if (db.$cache) db.$cache["invalidate"] = cache?.onMutate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","names":[],"sources":["../../src/sqlite-proxy/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLiteRemoteSession } from './session.ts';\n\nexport interface SqliteRemoteResult<T = unknown> {\n\trows?: T[];\n}\n\nexport class SqliteRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SqliteRemoteDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteRemoteSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport type AsyncRemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'run' | 'all' | 'values' | 'get',\n) => Promise<{ rows: any[] }>;\n\nexport type AsyncBatchRemoteCallback = (batch: {\n\tsql: string;\n\tparams: any[];\n\tmethod: 'run' | 'all' | 'values' | 'get';\n}[]) => Promise<{ rows: any[] }[]>;\n\nexport type RemoteCallback = AsyncRemoteCallback;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema, TRelations>,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tlet cache;\n\tlet _batchCallback: AsyncBatchRemoteCallback | undefined;\n\tlet _config: DrizzleConfig<TSchema, TRelations> = {};\n\n\tif (batchCallback) {\n\t\tif (typeof batchCallback === 'function') {\n\t\t\t_batchCallback = batchCallback as AsyncBatchRemoteCallback;\n\t\t\t_config = config ?? {};\n\t\t} else {\n\t\t\t_batchCallback = undefined;\n\t\t\t_config = batchCallback as DrizzleConfig<TSchema, TRelations>;\n\t\t}\n\n\t\tif (_config.logger === true) {\n\t\t\tlogger = new DefaultLogger();\n\t\t} else if (_config.logger !== false) {\n\t\t\tlogger = _config.logger;\n\t\t\tcache = _config.cache;\n\t\t}\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (_config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\t_config.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: _config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = _config.relations ?? {} as TRelations;\n\tconst session = new SQLiteRemoteSession(callback, dialect, relations, schema, _batchCallback, {\n\t\tlogger,\n\t\tcache,\n\t\tuseJitMappers: jitCompatCheck(_config.
|
|
1
|
+
{"version":3,"file":"driver.js","names":[],"sources":["../../src/sqlite-proxy/driver.ts"],"sourcesContent":["import * as V1 from '~/_relations.ts';\nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { SQLiteRemoteSession } from './session.ts';\n\nexport interface SqliteRemoteResult<T = unknown> {\n\trows?: T[];\n}\n\nexport class SqliteRemoteDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', SqliteRemoteResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'SqliteRemoteDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteRemoteSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n\n\tasync batch<U extends BatchItem<'sqlite'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch) as Promise<BatchResponse<T>>;\n\t}\n}\n\nexport type AsyncRemoteCallback = (\n\tsql: string,\n\tparams: any[],\n\tmethod: 'run' | 'all' | 'values' | 'get',\n) => Promise<{ rows: any[] }>;\n\nexport type AsyncBatchRemoteCallback = (batch: {\n\tsql: string;\n\tparams: any[];\n\tmethod: 'run' | 'all' | 'values' | 'get';\n}[]) => Promise<{ rows: any[] }[]>;\n\nexport type RemoteCallback = AsyncRemoteCallback;\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations>;\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tcallback: RemoteCallback,\n\tbatchCallback?: AsyncBatchRemoteCallback | DrizzleConfig<TSchema, TRelations>,\n\tconfig?: DrizzleConfig<TSchema, TRelations>,\n): SqliteRemoteDatabase<TSchema, TRelations> {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tlet cache;\n\tlet _batchCallback: AsyncBatchRemoteCallback | undefined;\n\tlet _config: DrizzleConfig<TSchema, TRelations> = {};\n\n\tif (batchCallback) {\n\t\tif (typeof batchCallback === 'function') {\n\t\t\t_batchCallback = batchCallback as AsyncBatchRemoteCallback;\n\t\t\t_config = config ?? {};\n\t\t} else {\n\t\t\t_batchCallback = undefined;\n\t\t\t_config = batchCallback as DrizzleConfig<TSchema, TRelations>;\n\t\t}\n\n\t\tif (_config.logger === true) {\n\t\t\tlogger = new DefaultLogger();\n\t\t} else if (_config.logger !== false) {\n\t\t\tlogger = _config.logger;\n\t\t\tcache = _config.cache;\n\t\t}\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (_config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\t_config.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: _config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = _config.relations ?? {} as TRelations;\n\tconst session = new SQLiteRemoteSession(callback, dialect, relations, schema, _batchCallback, {\n\t\tlogger,\n\t\tcache,\n\t\tuseJitMappers: jitCompatCheck(_config.jit),\n\t});\n\tconst db = new SqliteRemoteDatabase(\n\t\t'async',\n\t\tdialect,\n\t\tsession as SqliteRemoteDatabase<TSchema, TRelations>['session'],\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t\ttrue,\n\t) as SqliteRemoteDatabase<\n\t\tTSchema,\n\t\tTRelations\n\t>;\n\t(<any> db).$cache = cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = cache?.onMutate;\n\t}\n\treturn db;\n}\n"],"mappings":";;;;;;;;;AAcA,IAAa,uBAAb,cAGU,mBAAqE;CAC9E,QAA0B,cAAsB;CAShD,MAAM,MACL,OAC4B;AAC5B,SAAO,KAAK,QAAQ,MAAM,MAAM;;;AAiClC,SAAgB,QAIf,UACA,eACA,QAC4C;CAC5C,MAAM,UAAU,IAAI,oBAAoB;CACxC,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI,UAA8C,EAAE;AAEpD,KAAI,eAAe;AAClB,MAAI,OAAO,kBAAkB,YAAY;AACxC,oBAAiB;AACjB,aAAU,UAAU,EAAE;SAChB;AACN,oBAAiB;AACjB,aAAU;;AAGX,MAAI,QAAQ,WAAW,KACtB,UAAS,IAAI,eAAe;WAClB,QAAQ,WAAW,OAAO;AACpC,YAAS,QAAQ;AACjB,WAAQ,QAAQ;;;CAIlB,IAAI;AACJ,KAAI,QAAQ,QAAQ;EACnB,MAAM,eAAe,GAAG,8BACvB,QAAQ,QACR,GAAG,4BACH;AACD,WAAS;GACR,YAAY,QAAQ;GACpB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,QAAQ,aAAa,EAAE;CAMzC,MAAM,KAAK,IAAI,qBACd,SACA,SAPe,IAAI,oBAAoB,UAAU,SAAS,WAAW,QAAQ,gBAAgB;EAC7F;EACA;EACA,eAAe,eAAe,QAAQ,IAAI;EAC1C,CAAC,EAKD,WACA,QACA,KACA;AAID,CAAO,GAAI,SAAS;AACpB,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO;AAE1C,QAAO"}
|
|
@@ -32,7 +32,7 @@ function construct(client, config = {}) {
|
|
|
32
32
|
const db = new TiDBServerlessDatabase(dialect, new require_tidb_serverless_session.TiDBServerlessSession(client, dialect, void 0, relations, schema, {
|
|
33
33
|
logger,
|
|
34
34
|
cache: config.cache,
|
|
35
|
-
useJitMappers: (0, __utils_ts.jitCompatCheck)(config.
|
|
35
|
+
useJitMappers: (0, __utils_ts.jitCompatCheck)(config.jit)
|
|
36
36
|
}), relations, schema, "default");
|
|
37
37
|
db.$client = client;
|
|
38
38
|
db.$cache = config.cache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.cjs","names":["MySqlDatabase","entityKind","MySqlDialect","DefaultLogger","V1","TiDBServerlessSession"],"sources":["../../src/tidb-serverless/driver.ts"],"sourcesContent":["import { type Config, connect, type Connection } from '@tidbcloud/serverless';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport type { TiDBServerlessPreparedQueryHKT, TiDBServerlessQueryResultHKT } from './session.ts';\nimport { TiDBServerlessSession } from './session.ts';\n\nexport interface TiDBServerlessSDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMappers?: boolean;\n}\n\nexport class TiDBServerlessDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'TiDBServerlessDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Connection,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): TiDBServerlessDatabase<TSchema, TRelations> & {\n\t$client: Connection;\n} {\n\tconst dialect = new MySqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new TiDBServerlessSession(client, dialect, undefined, relations, schema, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t\tuseJitMappers: jitCompatCheck(config.
|
|
1
|
+
{"version":3,"file":"driver.cjs","names":["MySqlDatabase","entityKind","MySqlDialect","DefaultLogger","V1","TiDBServerlessSession"],"sources":["../../src/tidb-serverless/driver.ts"],"sourcesContent":["import { type Config, connect, type Connection } from '@tidbcloud/serverless';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport type { TiDBServerlessPreparedQueryHKT, TiDBServerlessQueryResultHKT } from './session.ts';\nimport { TiDBServerlessSession } from './session.ts';\n\nexport interface TiDBServerlessSDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMappers?: boolean;\n}\n\nexport class TiDBServerlessDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'TiDBServerlessDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Connection,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): TiDBServerlessDatabase<TSchema, TRelations> & {\n\t$client: Connection;\n} {\n\tconst dialect = new MySqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new TiDBServerlessSession(client, dialect, undefined, relations, schema, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t});\n\tconst db = new TiDBServerlessDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t\t'default',\n\t) as TiDBServerlessDatabase<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Connection = Connection,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t& ({\n\t\t\tconnection: string | Config;\n\t\t} | {\n\t\t\tclient: TClient;\n\t\t})\n\t\t& DrizzleConfig<TSchema, TRelations>,\n\t]\n): TiDBServerlessDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = connect({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: Config | string; client?: TClient }\n\t\t& DrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tconst instance = typeof connection === 'string'\n\t\t? connect({\n\t\t\turl: connection,\n\t\t})\n\t\t: connect(connection!);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): TiDBServerlessDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;AAkBA,IAAa,yBAAb,cAGUA,iCAAiG;CAC1G,QAA0BC,0BAAsB;;AAGjD,SAAS,UAIR,QACA,SAA6C,EAAE,EAG9C;CACD,MAAM,UAAU,IAAIC,sCAAc;CAClC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAMxC,MAAM,KAAK,IAAI,uBACd,SANe,IAAIC,sDAAsB,QAAQ,SAAS,QAAW,WAAW,QAAQ;EACxF;EACA,OAAO,OAAO;EACd,8CAA8B,OAAO,IAAI;EACzC,CAAC,EAID,WACA,QACA,UACA;AACD,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO;;AAGR,SAAgB,QAKf,GAAG,QAeF;AACD,KAAI,OAAO,OAAO,OAAO,SAKxB,QAAO,6CAJkB,EACxB,KAAK,OAAO,IACZ,CAAC,EAEyB,OAAO,GAAG;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAQnD,QAAO,UANU,OAAO,eAAe,8CAC5B,EACT,KAAK,YACL,CAAC,sCACQ,WAAY,EAEI,cAAc;;;CAIlC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
|
|
@@ -29,7 +29,7 @@ function construct(client, config = {}) {
|
|
|
29
29
|
const db = new TiDBServerlessDatabase(dialect, new TiDBServerlessSession(client, dialect, void 0, relations, schema, {
|
|
30
30
|
logger,
|
|
31
31
|
cache: config.cache,
|
|
32
|
-
useJitMappers: jitCompatCheck(config.
|
|
32
|
+
useJitMappers: jitCompatCheck(config.jit)
|
|
33
33
|
}), relations, schema, "default");
|
|
34
34
|
db.$client = client;
|
|
35
35
|
db.$cache = config.cache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","names":[],"sources":["../../src/tidb-serverless/driver.ts"],"sourcesContent":["import { type Config, connect, type Connection } from '@tidbcloud/serverless';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport type { TiDBServerlessPreparedQueryHKT, TiDBServerlessQueryResultHKT } from './session.ts';\nimport { TiDBServerlessSession } from './session.ts';\n\nexport interface TiDBServerlessSDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMappers?: boolean;\n}\n\nexport class TiDBServerlessDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'TiDBServerlessDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Connection,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): TiDBServerlessDatabase<TSchema, TRelations> & {\n\t$client: Connection;\n} {\n\tconst dialect = new MySqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new TiDBServerlessSession(client, dialect, undefined, relations, schema, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t\tuseJitMappers: jitCompatCheck(config.
|
|
1
|
+
{"version":3,"file":"driver.js","names":[],"sources":["../../src/tidb-serverless/driver.ts"],"sourcesContent":["import { type Config, connect, type Connection } from '@tidbcloud/serverless';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { MySqlDatabase } from '~/mysql-core/db.ts';\nimport { MySqlDialect } from '~/mysql-core/dialect.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport type { TiDBServerlessPreparedQueryHKT, TiDBServerlessQueryResultHKT } from './session.ts';\nimport { TiDBServerlessSession } from './session.ts';\n\nexport interface TiDBServerlessSDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tuseJitMappers?: boolean;\n}\n\nexport class TiDBServerlessDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends MySqlDatabase<TiDBServerlessQueryResultHKT, TiDBServerlessPreparedQueryHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'TiDBServerlessDatabase';\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: Connection,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): TiDBServerlessDatabase<TSchema, TRelations> & {\n\t$client: Connection;\n} {\n\tconst dialect = new MySqlDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new TiDBServerlessSession(client, dialect, undefined, relations, schema, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t});\n\tconst db = new TiDBServerlessDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t\t'default',\n\t) as TiDBServerlessDatabase<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends Connection = Connection,\n>(\n\t...params: [\n\t\tstring,\n\t] | [\n\t\tstring,\n\t\tDrizzleConfig<TSchema, TRelations>,\n\t] | [\n\t\t& ({\n\t\t\tconnection: string | Config;\n\t\t} | {\n\t\t\tclient: TClient;\n\t\t})\n\t\t& DrizzleConfig<TSchema, TRelations>,\n\t]\n): TiDBServerlessDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif (typeof params[0] === 'string') {\n\t\tconst instance = connect({\n\t\t\turl: params[0],\n\t\t});\n\n\t\treturn construct(instance, params[1]) as any;\n\t}\n\n\tconst { connection, client, ...drizzleConfig } = params[0] as\n\t\t& { connection?: Config | string; client?: TClient }\n\t\t& DrizzleConfig<TSchema, TRelations>;\n\n\tif (client) return construct(client, drizzleConfig) as any;\n\n\tconst instance = typeof connection === 'string'\n\t\t? connect({\n\t\t\turl: connection,\n\t\t})\n\t\t: connect(connection!);\n\n\treturn construct(instance, drizzleConfig) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig?: DrizzleConfig<TSchema, TRelations>,\n\t): TiDBServerlessDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;AAkBA,IAAa,yBAAb,cAGU,cAAiG;CAC1G,QAA0B,cAAsB;;AAGjD,SAAS,UAIR,QACA,SAA6C,EAAE,EAG9C;CACD,MAAM,UAAU,IAAI,cAAc;CAClC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,GAAG,8BACvB,OAAO,QACP,GAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAMxC,MAAM,KAAK,IAAI,uBACd,SANe,IAAI,sBAAsB,QAAQ,SAAS,QAAW,WAAW,QAAQ;EACxF;EACA,OAAO,OAAO;EACd,eAAe,eAAe,OAAO,IAAI;EACzC,CAAC,EAID,WACA,QACA,UACA;AACD,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO;;AAGR,SAAgB,QAKf,GAAG,QAeF;AACD,KAAI,OAAO,OAAO,OAAO,SAKxB,QAAO,UAJU,QAAQ,EACxB,KAAK,OAAO,IACZ,CAAC,EAEyB,OAAO,GAAG;CAGtC,MAAM,EAAE,YAAY,QAAQ,GAAG,kBAAkB,OAAO;AAIxD,KAAI,OAAQ,QAAO,UAAU,QAAQ,cAAc;AAQnD,QAAO,UANU,OAAO,eAAe,WACpC,QAAQ,EACT,KAAK,YACL,CAAC,GACA,QAAQ,WAAY,EAEI,cAAc;;;CAIlC,SAAS,KAIf,QAGC;AACD,SAAO,UAAU,EAAE,EAAS,OAAO"}
|
|
@@ -32,7 +32,7 @@ function construct(client, config = {}) {
|
|
|
32
32
|
const db = new TursoDatabaseDatabase("async", dialect, new require_tursodatabase_session.TursoDatabaseSession(client, dialect, relations, schema, {
|
|
33
33
|
logger,
|
|
34
34
|
cache: config.cache,
|
|
35
|
-
useJitMappers: (0, __utils_ts.jitCompatCheck)(config.
|
|
35
|
+
useJitMappers: (0, __utils_ts.jitCompatCheck)(config.jit)
|
|
36
36
|
}), relations, schema);
|
|
37
37
|
db.$client = client;
|
|
38
38
|
db.$cache = config.cache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver-core.cjs","names":["BaseSQLiteDatabase","entityKind","SQLiteAsyncDialect","DefaultLogger","V1","TursoDatabaseSession"],"sources":["../../src/tursodatabase/driver-core.ts"],"sourcesContent":["import type { DatabasePromise } from '@tursodatabase/database-common';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { TursoDatabaseSession } from './session.ts';\n\nexport type TursoDatabaseRunResult = Awaited<ReturnType<ReturnType<DatabasePromise['prepare']>['run']>>;\n\nexport class TursoDatabaseDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', TursoDatabaseRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'TursoDatabaseDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: TursoDatabaseSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: DatabasePromise,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): TursoDatabaseDatabase<TSchema, TRelations> & {\n\t$client: DatabasePromise;\n} {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new TursoDatabaseSession(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\tschema,\n\t\t{ logger, cache: config.cache, useJitMappers: jitCompatCheck(config.
|
|
1
|
+
{"version":3,"file":"driver-core.cjs","names":["BaseSQLiteDatabase","entityKind","SQLiteAsyncDialect","DefaultLogger","V1","TursoDatabaseSession"],"sources":["../../src/tursodatabase/driver-core.ts"],"sourcesContent":["import type { DatabasePromise } from '@tursodatabase/database-common';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { TursoDatabaseSession } from './session.ts';\n\nexport type TursoDatabaseRunResult = Awaited<ReturnType<ReturnType<DatabasePromise['prepare']>['run']>>;\n\nexport class TursoDatabaseDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', TursoDatabaseRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'TursoDatabaseDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: TursoDatabaseSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: DatabasePromise,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): TursoDatabaseDatabase<TSchema, TRelations> & {\n\t$client: DatabasePromise;\n} {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new TursoDatabaseSession(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\tschema,\n\t\t{ logger, cache: config.cache, useJitMappers: jitCompatCheck(config.jit) },\n\t);\n\tconst db = new TursoDatabaseDatabase(\n\t\t'async',\n\t\tdialect,\n\t\tsession as TursoDatabaseSession<\n\t\t\tTSchema,\n\t\t\tTRelations,\n\t\t\tV1.ExtractTablesWithRelations<TSchema>\n\t\t>,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as TursoDatabaseDatabase<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;AAYA,IAAa,wBAAb,cAGUA,uCAAyE;CAClF,QAA0BC,0BAAsB;;;AAWjD,SAAgB,UAIf,QACA,SAA6C,EAAE,EAG9C;CACD,MAAM,UAAU,IAAIC,6CAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAeC,gBAAG,8BACvB,OAAO,QACPA,gBAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAQxC,MAAM,KAAK,IAAI,sBACd,SACA,SATe,IAAIC,mDACnB,QACA,SACA,WACA,QACA;EAAE;EAAQ,OAAO,OAAO;EAAO,8CAA8B,OAAO,IAAI;EAAE,CAC1E,EASA,WACA,OACA;AACD,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAEjD,QAAO"}
|
|
@@ -29,7 +29,7 @@ function construct(client, config = {}) {
|
|
|
29
29
|
const db = new TursoDatabaseDatabase("async", dialect, new TursoDatabaseSession(client, dialect, relations, schema, {
|
|
30
30
|
logger,
|
|
31
31
|
cache: config.cache,
|
|
32
|
-
useJitMappers: jitCompatCheck(config.
|
|
32
|
+
useJitMappers: jitCompatCheck(config.jit)
|
|
33
33
|
}), relations, schema);
|
|
34
34
|
db.$client = client;
|
|
35
35
|
db.$cache = config.cache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver-core.js","names":[],"sources":["../../src/tursodatabase/driver-core.ts"],"sourcesContent":["import type { DatabasePromise } from '@tursodatabase/database-common';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { TursoDatabaseSession } from './session.ts';\n\nexport type TursoDatabaseRunResult = Awaited<ReturnType<ReturnType<DatabasePromise['prepare']>['run']>>;\n\nexport class TursoDatabaseDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', TursoDatabaseRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'TursoDatabaseDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: TursoDatabaseSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: DatabasePromise,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): TursoDatabaseDatabase<TSchema, TRelations> & {\n\t$client: DatabasePromise;\n} {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new TursoDatabaseSession(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\tschema,\n\t\t{ logger, cache: config.cache, useJitMappers: jitCompatCheck(config.
|
|
1
|
+
{"version":3,"file":"driver-core.js","names":[],"sources":["../../src/tursodatabase/driver-core.ts"],"sourcesContent":["import type { DatabasePromise } from '@tursodatabase/database-common';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { type DrizzleConfig, jitCompatCheck } from '~/utils.ts';\nimport { TursoDatabaseSession } from './session.ts';\n\nexport type TursoDatabaseRunResult = Awaited<ReturnType<ReturnType<DatabasePromise['prepare']>['run']>>;\n\nexport class TursoDatabaseDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends BaseSQLiteDatabase<'async', TursoDatabaseRunResult, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'TursoDatabaseDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: TursoDatabaseSession<\n\t\tTSchema,\n\t\tTRelations,\n\t\tV1.ExtractTablesWithRelations<TSchema>\n\t>;\n}\n\n/** @internal */\nexport function construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: DatabasePromise,\n\tconfig: DrizzleConfig<TSchema, TRelations> = {},\n): TursoDatabaseDatabase<TSchema, TRelations> & {\n\t$client: DatabasePromise;\n} {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new TursoDatabaseSession(\n\t\tclient,\n\t\tdialect,\n\t\trelations,\n\t\tschema,\n\t\t{ logger, cache: config.cache, useJitMappers: jitCompatCheck(config.jit) },\n\t);\n\tconst db = new TursoDatabaseDatabase(\n\t\t'async',\n\t\tdialect,\n\t\tsession as TursoDatabaseSession<\n\t\t\tTSchema,\n\t\t\tTRelations,\n\t\t\tV1.ExtractTablesWithRelations<TSchema>\n\t\t>,\n\t\trelations,\n\t\tschema as V1.RelationalSchemaConfig<any>,\n\t) as TursoDatabaseDatabase<TSchema, TRelations>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;AAYA,IAAa,wBAAb,cAGU,mBAAyE;CAClF,QAA0B,cAAsB;;;AAWjD,SAAgB,UAIf,QACA,SAA6C,EAAE,EAG9C;CACD,MAAM,UAAU,IAAI,oBAAoB;CACxC,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAI,eAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,IAAI;AACJ,KAAI,OAAO,QAAQ;EAClB,MAAM,eAAe,GAAG,8BACvB,OAAO,QACP,GAAG,4BACH;AACD,WAAS;GACR,YAAY,OAAO;GACnB,QAAQ,aAAa;GACrB,eAAe,aAAa;GAC5B;;CAGF,MAAM,YAAY,OAAO,aAAa,EAAE;CAQxC,MAAM,KAAK,IAAI,sBACd,SACA,SATe,IAAI,qBACnB,QACA,SACA,WACA,QACA;EAAE;EAAQ,OAAO,OAAO;EAAO,eAAe,eAAe,OAAO,IAAI;EAAE,CAC1E,EASA,WACA,OACA;AACD,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAEjD,QAAO"}
|
package/utils.cjs
CHANGED
|
@@ -269,8 +269,8 @@ function isConfig(data) {
|
|
|
269
269
|
if (type !== "object" && type !== "function" && type !== "undefined") return false;
|
|
270
270
|
return true;
|
|
271
271
|
}
|
|
272
|
-
if ("
|
|
273
|
-
const type = typeof data["
|
|
272
|
+
if ("jit" in data) {
|
|
273
|
+
const type = typeof data["jit"];
|
|
274
274
|
if (type !== "boolean" && type !== "undefined") return false;
|
|
275
275
|
return true;
|
|
276
276
|
}
|
package/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","names":["is","Column","SQL","Subquery","getTableName","Table","Param","ViewBaseConfig","View"],"sources":["../src/utils.ts"],"sourcesContent":["import type { Cache } from './cache/core/cache.ts';\nimport type { CodecsCollection } from './codecs.ts';\nimport type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { is } from './entity.ts';\nimport type { Logger } from './logger.ts';\nimport type { SelectedFieldsFlat, SelectedFieldsOrdered } from './operations.ts';\nimport type { TableLike } from './query-builders/select.types.ts';\nimport type { AnyRelations, EmptyRelations } from './relations.ts';\nimport { Param, SQL, View } from './sql/sql.ts';\nimport type { DriverValueDecoder } from './sql/sql.ts';\nimport { Subquery } from './subquery.ts';\nimport { getTableName, Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\n/** @internal */\nexport function mapResultRow<TResult>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\trow: unknown[] | (readonly unknown[]),\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n): TResult {\n\t// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n\tconst nullifyMap: Record<string, string | false> = {};\n\n\tconst result = columns.reduce<Record<string, any>>(\n\t\t(result, { path, field, codec, arrayDimensions }, columnIndex) => {\n\t\t\tlet decoder: DriverValueDecoder<unknown, unknown>;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else if (is(field, Subquery)) {\n\t\t\t\tdecoder = field._.sql.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tlet node = result;\n\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) {\n\t\t\t\tif (pathChunkIndex < path.length - 1) {\n\t\t\t\t\tif (!(pathChunk in node)) {\n\t\t\t\t\t\tnode[pathChunk] = {};\n\t\t\t\t\t}\n\t\t\t\t\tnode = node[pathChunk];\n\t\t\t\t} else {\n\t\t\t\t\tconst rawValue = row[columnIndex]!;\n\t\t\t\t\tconst value = node[pathChunk] = rawValue === null\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: decoder.mapFromDriverValue(codec ? codec(rawValue, arrayDimensions!) : rawValue);\n\n\t\t\t\t\tif (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n\t\t\t\t\t\tconst objectName = path[0]!;\n\t\t\t\t\t\tif (!(objectName in nullifyMap)) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\ttypeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\t{},\n\t);\n\n\t// Nullify all nested objects from nullifyMap that are nullable\n\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) {\n\t\t\tif (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n\t\t\t\tresult[objectName] = null;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result as TResult;\n}\n\n/** @internal bypass bundle-time filtering */\nexport const FnConstructor = Object.getPrototypeOf(() => null).constructor as typeof Function;\n\n/** @internal */\nfunction makeJitQueryMapperInner(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\tjoinsNotNullableMap: Record<string, boolean> = {},\n): string {\n\tconst preFn = [] as string[];\n\tconst fn = [] as string[];\n\tfn.push(`const [ ${columns.map((_, i) => `c${i}`).join(', ')} ] = rows[i];`);\n\n\tconst nullifyMap: Record<string, string | false> = {};\n\tconst objectIds: Record<string, string[]> = {};\n\tconst decodes = Array.from<string>({ length: columns.length });\n\n\tfor (let idx = 0; idx < columns.length; ++idx) {\n\t\tconst { field, path, codec, arrayDimensions } = columns[idx]!;\n\t\tlet decoder: DriverValueDecoder<unknown, unknown>;\n\t\tlet decoderStr: string;\n\t\tlet decoderFieldDestructure: string;\n\t\tlet isColumn = false;\n\t\tif (is(field, Column)) {\n\t\t\tisColumn = true;\n\t\t\tdecoder = field;\n\t\t\tdecoderFieldDestructure = `field: decoder${idx}`;\n\t\t} else if (is(field, SQL)) {\n\t\t\tdecoder = field.decoder;\n\t\t\tdecoderFieldDestructure = `field: { decoder: decoder${idx} }`;\n\t\t} else if (is(field, Subquery)) {\n\t\t\tdecoder = field._.sql.decoder;\n\t\t\tdecoderFieldDestructure = `field: { _: { sql: { decoder: decoder${idx} } } }`;\n\t\t} else {\n\t\t\tdecoder = field.sql.decoder;\n\t\t\tdecoderFieldDestructure = `field: { sql: { decoder: decoder${idx} } }`;\n\t\t}\n\t\tdecoderStr = `decoder${idx}.mapFromDriverValue`;\n\t\tif (decoder.mapFromDriverValue.isNoop) decoderStr = '';\n\t\tif (decoderStr) {\n\t\t\tpreFn.push(`const { ${decoderFieldDestructure}${codec ? `, codec: codec${idx}` : ''} } = columns[${idx}];`);\n\t\t} else if (codec) {\n\t\t\tpreFn.push(`const { codec: codec${idx} } = columns[${idx}];`);\n\t\t}\n\n\t\tconst colStr = `c${idx}`;\n\t\tlet decodedValue = colStr;\n\t\tif (codec) decodedValue = `codec${idx}(${decodedValue}, ${arrayDimensions})`;\n\t\tif (decoderStr) decodedValue = `${decoderStr}(${decodedValue})`;\n\t\tdecodes[idx] = colStr === decodedValue\n\t\t\t? `${colStr}`\n\t\t\t: `${colStr} === null ? ${colStr} : ${decodedValue}`;\n\n\t\tif (path.length !== 2 || !isColumn) continue;\n\t\tif (objectIds[path[0]!] === undefined) objectIds[path[0]!] = [`c${idx}`];\n\t\telse objectIds[path[0]!]?.push(`c${idx}`);\n\t\tconst [objectName] = path as [string];\n\t\tconst tableName = getTableName((<Column> field).table);\n\t\tnullifyMap[objectName] = joinsNotNullableMap[tableName] ? false : typeof nullifyMap[objectName] === 'string'\n\t\t\t? nullifyMap[objectName] === tableName ? tableName : false\n\t\t\t: tableName;\n\t}\n\n\tfn.push(`mapped[i] = {`);\n\tlet currentObjectPath: string[] = [];\n\tfor (let idx = 0; idx < columns.length; ++idx) {\n\t\tconst { path } = columns[idx]!;\n\t\tconst jsonPath = path.map((e) => JSON.stringify(e));\n\t\tconst decodedValue = decodes[idx]!;\n\n\t\tconst objectPath = path.slice(0, -1);\n\t\tlet commonLen = 0;\n\t\twhile (\n\t\t\tcommonLen < currentObjectPath.length\n\t\t\t&& commonLen < objectPath.length\n\t\t\t&& currentObjectPath[commonLen] === objectPath[commonLen]\n\t\t) commonLen++;\n\n\t\tfor (let d = currentObjectPath.length - 1; d >= commonLen; --d) {\n\t\t\tfn.push(`${'\\t'.repeat(d + 1)}},`);\n\t\t}\n\n\t\tfor (let d = commonLen; d < objectPath.length; ++d) {\n\t\t\tfn.push(\n\t\t\t\t`${'\\t'.repeat(d + 1)}${jsonPath[d]}: ${\n\t\t\t\t\td === 0 && objectPath.length === 1 && typeof nullifyMap[path[0]!] === 'string'\n\t\t\t\t\t\t? `${objectIds[path[0]!]?.map((c) => `${c} === null`).join(' && ')} ? null : {`\n\t\t\t\t\t\t: '{'\n\t\t\t\t}`,\n\t\t\t);\n\t\t}\n\n\t\tcurrentObjectPath = objectPath;\n\t\tfn.push(`${'\\t'.repeat(path.length)}${jsonPath[path.length - 1]}: ${decodedValue},`);\n\t}\n\n\tfor (let d = currentObjectPath.length - 1; d >= 0; --d) {\n\t\tfn.push(`${'\\t'.repeat(d + 1)}},`);\n\t}\n\tfn.push(`};`);\n\n\treturn `${preFn.length ? `${preFn.join('\\n\\t')}\\n\\t` : ''}for (let i = 0; i < length; ++i) {\n\t\t${fn.join('\\n\\t\\t')}\n\t}`;\n}\n\nexport type RowsMapperGenerator = <TResult = any>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n) => RowsMapper<TResult>;\nexport interface RowsMapper<TResult = Record<string, unknown>[]> {\n\t(rows: unknown[][]): TResult;\n\t/** @internal jit mapper's function body for debugging */\n\tbody?: string;\n}\n\nexport function makeJitQueryMapper<TResult>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n): RowsMapper<TResult> {\n\tconst internals = `\\t\"use strict\";\n\tconst { columns } = this;\n\tconst { length } = rows;\n\tconst mapped = Array.from({ length });\n\t${makeJitQueryMapperInner(columns, joinsNotNullableMap)}\n\treturn mapped;\n\t//# sourceURL=drizzle:jit-query-mapper`;\n\n\tconst fn = Object.assign(\n\t\tnew FnConstructor(\n\t\t\t'rows',\n\t\t\tinternals,\n\t\t).bind({\n\t\t\tcolumns,\n\t\t}),\n\t\t{ body: `function jitQueryMapper (rows) {\\n${internals}\\n}` },\n\t) as RowsMapper<TResult>;\n\n\treturn fn;\n}\n\n/** @internal */\nexport function jitCompatCheck(isEnabled?: boolean): boolean {\n\tif (!isEnabled) return false;\n\n\ttry {\n\t\tconst res = new FnConstructor('input', '\"use strict\"; return input;')(true);\n\t\tif (res !== true) {\n\t\t\t// In case it's broken in runtime but not forbidden\n\t\t\tconsole.warn(\n\t\t\t\t'Unable to use jit mappers due to incompatibility: corrupted jit function output.\\nFalling back to premade mappers.\\nError details:',\n\t\t\t);\n\t\t\tconsole.error(`Expected to receive \\`true\\`, got: ${res}`);\n\t\t}\n\t\treturn true;\n\t} catch (e) {\n\t\tconsole.warn(\n\t\t\t'Unable to use jit mappers due to incompatibility.\\nFalling back to premade mappers.\\nError details:',\n\t\t);\n\t\tconsole.error(e);\n\t\treturn false;\n\t}\n}\n\nexport function makeDefaultQueryMapper<TResult>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n): RowsMapper<TResult> {\n\tconst interpretedData = columns.map(({ field, codec, arrayDimensions, path }) => {\n\t\tlet processNullifyMap: ((nullifyMap: Record<string, string | false>, value: any) => void) | undefined;\n\t\tlet decoderSrc: DriverValueDecoder<unknown, unknown>;\n\t\tif (is(field, Column)) {\n\t\t\tdecoderSrc = field;\n\n\t\t\tif (joinsNotNullableMap && path.length === 2) {\n\t\t\t\tconst objectName = path[0]!;\n\t\t\t\tprocessNullifyMap = (nullifyMap, value) => {\n\t\t\t\t\tif (!(objectName in nullifyMap)) {\n\t\t\t\t\t\tnullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\ttypeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)\n\t\t\t\t\t) {\n\t\t\t\t\t\tnullifyMap[objectName] = false;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (is(field, SQL)) {\n\t\t\tdecoderSrc = field.decoder;\n\t\t} else if (is(field, Subquery)) {\n\t\t\tdecoderSrc = field._.sql.decoder;\n\t\t} else {\n\t\t\tdecoderSrc = field.sql.decoder;\n\t\t}\n\n\t\tlet decoder: ((v: any) => any) | undefined;\n\t\tif (decoderSrc.mapFromDriverValue.isNoop) {\n\t\t\tdecoder = codec ? (v: any) => codec(v, arrayDimensions!) : undefined;\n\t\t} else {\n\t\t\tdecoder = codec\n\t\t\t\t? (v: any) => decoderSrc.mapFromDriverValue(codec(v, arrayDimensions!))\n\t\t\t\t: (v: any) => decoderSrc.mapFromDriverValue(v);\n\t\t}\n\n\t\treturn [decoder, processNullifyMap] as const;\n\t});\n\n\treturn ((rows) =>\n\t\trows.map((row) => {\n\t\t\t// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n\t\t\tconst nullifyMap: Record<string, string | false> = {};\n\n\t\t\tconst result = columns.reduce<Record<string, any>>(\n\t\t\t\t(result, { path }, columnIndex) => {\n\t\t\t\t\tlet node = result;\n\t\t\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) {\n\t\t\t\t\t\tif (pathChunkIndex < path.length - 1) {\n\t\t\t\t\t\t\tif (!(pathChunk in node)) {\n\t\t\t\t\t\t\t\tnode[pathChunk] = {};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tnode = node[pathChunk];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst [decoder, processNullifyMap] = interpretedData[columnIndex]!;\n\n\t\t\t\t\t\t\tconst rawValue = row[columnIndex]!;\n\t\t\t\t\t\t\tconst value = node[pathChunk] = rawValue === null\n\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t: decoder\n\t\t\t\t\t\t\t\t? decoder(rawValue)\n\t\t\t\t\t\t\t\t: rawValue;\n\n\t\t\t\t\t\t\tprocessNullifyMap?.(nullifyMap, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn result;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t);\n\n\t\t\t// Nullify all nested objects from nullifyMap that are nullable\n\t\t\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\t\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) {\n\t\t\t\t\tif (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n\t\t\t\t\t\tresult[objectName] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result as TResult;\n\t\t})) as RowsMapper<TResult>;\n}\n/** @internal */\nexport function orderSelectedFields<TColumn extends AnyColumn>(\n\tfields: Record<string, unknown>,\n\tpathPrefix?: string[],\n\tcodecs?: CodecsCollection,\n): SelectedFieldsOrdered<TColumn> {\n\treturn Object.entries(fields).reduce<SelectedFieldsOrdered<AnyColumn>>((result, [name, field]) => {\n\t\tif (typeof name !== 'string') {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst newPath = pathPrefix ? [...pathPrefix, name] : [name];\n\t\tif (is(field, Column)) {\n\t\t\tresult.push({\n\t\t\t\tpath: newPath,\n\t\t\t\tfield,\n\t\t\t\tcodec: codecs?.get(field, 'normalize'),\n\t\t\t\tarrayDimensions: (<any> field).dimensions,\n\t\t\t});\n\t\t} else if (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased) || is(field, Subquery)) {\n\t\t\tresult.push({ path: newPath, field });\n\t\t} else if (is(field, Table)) {\n\t\t\tresult.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath, codecs));\n\t\t} else {\n\t\t\tresult.push(...orderSelectedFields(field as Record<string, unknown>, newPath, codecs));\n\t\t}\n\t\treturn result;\n\t}, []) as SelectedFieldsOrdered<TColumn>;\n}\n\nexport function haveSameKeys(left: Record<string, unknown>, right: Record<string, unknown>) {\n\tconst leftKeys = Object.keys(left);\n\tconst rightKeys = Object.keys(right);\n\n\tif (leftKeys.length !== rightKeys.length) {\n\t\treturn false;\n\t}\n\n\tfor (const [index, key] of leftKeys.entries()) {\n\t\tif (key !== rightKeys[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/** @internal */\nexport function mapUpdateSet(table: Table, values: Record<string, unknown>): UpdateSet {\n\tconst entries: [string, UpdateSet[string]][] = Object.entries(values)\n\t\t.filter(([, value]) => value !== undefined)\n\t\t.map(([key, value]) => {\n\t\t\t// eslint-disable-next-line unicorn/prefer-ternary\n\t\t\tif (is(value, SQL) || is(value, Column)) {\n\t\t\t\treturn [key, value];\n\t\t\t} else {\n\t\t\t\treturn [key, new Param(value, table[Table.Symbol.Columns][key])];\n\t\t\t}\n\t\t});\n\n\tif (entries.length === 0) {\n\t\tthrow new Error('No values to set');\n\t}\n\n\treturn Object.fromEntries(entries);\n}\n\nexport type UpdateSet = Record<string, SQL | Param | AnyColumn | null | undefined>;\n\nexport type OneOrMany<T> = T | T[];\n\nexport type Update<T, TUpdate> =\n\t& {\n\t\t[K in Exclude<keyof T, keyof TUpdate>]: T[K];\n\t}\n\t& TUpdate;\n\nexport type Simplify<T> =\n\t& {\n\t\t// @ts-ignore - \"Type parameter 'K' has a circular constraint\", not sure why\n\t\t[K in keyof T]: T[K];\n\t}\n\t& {};\n\nexport type Not<T extends boolean> = T extends true ? false : true;\n\nexport type IsNever<T> = [T] extends [never] ? true : false;\n\nexport type IsUnion<T, U extends T = T> = (T extends any ? (U extends T ? false : true) : never) extends false ? false\n\t: true;\n\nexport type SingleKeyObject<T, TError extends string, K = keyof T> = IsNever<K> extends true ? never\n\t: IsUnion<K> extends true ? DrizzleTypeError<TError>\n\t: T;\n\nexport type FromSingleKeyObject<T, Result, TError extends string, K = keyof T> = IsNever<K> extends true ? never\n\t: IsUnion<K> extends true ? DrizzleTypeError<TError>\n\t: Result;\n\nexport type SimplifyMappedType<T> = [T] extends [unknown] ? T : never;\n\nexport type ShallowRecord<K extends keyof any, T> = SimplifyMappedType<{ [P in K]: T }>;\n\nexport type Assume<T, U> = T extends U ? T : U;\n\nexport type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;\n\nexport interface DrizzleTypeError<T extends string> {\n\t$drizzleTypeError: T;\n}\n\nexport type ValueOrArray<T> = T | T[];\n\n/** @internal */\nexport function applyMixins(baseClass: any, extendedClasses: any[]) {\n\tfor (const extendedClass of extendedClasses) {\n\t\tfor (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n\t\t\tif (name === 'constructor') continue;\n\n\t\t\tObject.defineProperty(\n\t\t\t\tbaseClass.prototype,\n\t\t\t\tname,\n\t\t\t\tObject.getOwnPropertyDescriptor(extendedClass.prototype, name) || Object.create(null),\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport type Or<T1, T2> = T1 extends true ? true : T2 extends true ? true : false;\n\nexport type IfThenElse<If, Then, Else> = If extends true ? Then : Else;\n\nexport type PromiseOf<T> = T extends Promise<infer U> ? U : T;\n\nexport type Writable<T> = {\n\t-readonly [P in keyof T]: T[P];\n};\n\nexport type NonArray<T> = T extends any[] ? never : T;\n\n/**\n * @deprecated\n * Use `getColumns` instead\n */\nexport function getTableColumns<T extends Table>(table: T): T['_']['columns'] {\n\treturn table[Table.Symbol.Columns];\n}\n\nexport function getViewSelectedFields<T extends View>(view: T): T['_']['selectedFields'] {\n\treturn view[ViewBaseConfig].selectedFields;\n}\n\nexport function getColumns<T extends Table | View | Subquery>(\n\ttable: T,\n): T extends Table ? T['_']['columns']\n\t: T extends View ? T['_']['selectedFields']\n\t: T extends Subquery ? T['_']['selectedFields']\n\t: never\n{\n\treturn (is(table, Table)\n\t\t? table[Table.Symbol.Columns]\n\t\t: is(table, View)\n\t\t? table[ViewBaseConfig].selectedFields\n\t\t: table._.selectedFields) as any;\n}\n\n/** @internal */\nexport function getTableLikeName(table: TableLike): string | undefined {\n\treturn is(table, Subquery)\n\t\t? table._.alias\n\t\t: is(table, View)\n\t\t? table[ViewBaseConfig].name\n\t\t: is(table, SQL)\n\t\t? undefined\n\t\t: table[Table.Symbol.IsAlias]\n\t\t? table[Table.Symbol.Name]\n\t\t: table[Table.Symbol.BaseName];\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyColumn<{ tableName: TForeignTableName }> };\n\nexport interface DrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelationConfigs extends AnyRelations = EmptyRelations,\n> {\n\tlogger?: boolean | Logger | undefined;\n\tschema?: TSchema | undefined;\n\trelations?: TRelationConfigs | undefined;\n\tcache?: Cache | undefined;\n\tuseJitMappers?: boolean | undefined;\n}\nexport type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape\n\t? Exclude<keyof T, keyof ValidShape> extends never ? TResult\n\t: DrizzleTypeError<\n\t\t`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`\n\t>\n\t: never;\n\nexport type KnownKeysOnly<T, U> = {\n\t[K in keyof T]: K extends keyof U ? T[K] : never;\n};\n\nexport type IsAny<T> = 0 extends (1 & T) ? true : false;\n\n/** @internal */\nexport function getColumnNameAndConfig<\n\tTConfig extends Record<string, any> | undefined,\n>(a: string | TConfig | undefined, b: TConfig | undefined) {\n\treturn {\n\t\tname: typeof a === 'string' && a.length > 0 ? a : '' as string,\n\t\tconfig: typeof a === 'object' ? a : b as TConfig,\n\t};\n}\n\nexport type IfNotImported<T, Y, N> = unknown extends T ? Y : N;\n\nexport type ImportTypeError<TPackageName extends string> =\n\t`Please install \\`${TPackageName}\\` to allow Drizzle ORM to connect to the database`;\n\nexport type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends any\n\t? Required<Pick<T, Keys>> & Partial<Omit<T, Keys>>\n\t: never;\n\ntype ExpectedConfigShape = {\n\tlogger?: boolean | {\n\t\tlogQuery(query: string, params: unknown[]): void;\n\t} | undefined;\n\tschema?: Record<string, never> | undefined;\n\trelations?: AnyRelations | undefined;\n};\n\n// If this errors, you must update config shape checker function with new config specs\nconst _: DrizzleConfig<any, any> = {} as ExpectedConfigShape;\nconst __: ExpectedConfigShape = {} as DrizzleConfig;\n\nexport function isConfig(data: any): boolean {\n\tif (typeof data !== 'object' || data === null) return false;\n\n\tif (data.constructor.name !== 'Object') return false;\n\n\tif ('logger' in data) {\n\t\tconst type = typeof data['logger'];\n\t\tif (\n\t\t\ttype !== 'boolean' && (type !== 'object' || typeof data['logger']['logQuery'] !== 'function')\n\t\t\t&& type !== 'undefined'\n\t\t) return false;\n\n\t\treturn true;\n\t}\n\n\tif ('schema' in data) {\n\t\tconst type = typeof data['schema'];\n\t\tif (type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('relations' in data) {\n\t\tconst type = typeof data['relations'];\n\t\tif (type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('mode' in data) {\n\t\tif (data['mode'] !== 'default' && data['mode'] !== 'planetscale' && data['mode'] !== undefined) return false;\n\n\t\treturn true;\n\t}\n\n\tif ('connection' in data) {\n\t\tconst type = typeof data['connection'];\n\t\tif (type !== 'string' && type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('client' in data) {\n\t\tconst type = typeof data['client'];\n\t\tif (type !== 'object' && type !== 'function' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('useJitMappers' in data) {\n\t\tconst type = typeof data['useJitMappers'];\n\t\tif (type !== 'boolean' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('codecs' in data) {\n\t\tconst type = typeof data['connection'];\n\t\tif (type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif (Object.keys(data).length === 0) return true;\n\n\treturn false;\n}\n\nexport type NeonAuthToken = string | (() => string | Promise<string>);\n\nexport const textDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder();\n\nexport function assertUnreachable(_x: never | undefined): never {\n\tthrow new Error(\"Didn't expect to get here\");\n}\n\nexport function isWithEnum(column: Column<any>): column is typeof column & { enumValues: [string, ...string[]] };\nexport function isWithEnum(value: unknown): value is { enumValues: [string, ...string[]] };\nexport function isWithEnum(value: unknown): boolean {\n\treturn ((typeof value === 'object' && value !== null) || typeof value === 'function') && 'enumValues' in value\n\t\t&& Array.isArray(value.enumValues)\n\t\t&& value.enumValues.length > 0;\n}\n\nexport type Literal = string | number | boolean | null;\nexport type Json = Literal | { [key: string]: any } | any[];\n\nexport type ColumnIsGeneratedAlwaysAs<TColumn> = TColumn extends Column<any>\n\t? TColumn['_']['identity'] extends 'always' ? true\n\t: TColumn['_'] extends { generated: undefined } ? false\n\t: TColumn['_']['generated'] extends { type: 'byDefault' } ? false\n\t: true\n\t: false;\n\nexport type GetSelection<T extends SelectedFieldsFlat<Column<any>> | Table<any> | View> = T extends Table<any>\n\t? T['_']['columns']\n\t: T extends View ? T['_']['selectedFields']\n\t: T;\n\nexport type RemoveNeverElements<T extends any[]> = T extends [infer First, ...infer Rest]\n\t? IsNever<First> extends true ? RemoveNeverElements<Rest>\n\t: [First, ...RemoveNeverElements<Rest>]\n\t: [];\n\nexport type HasBaseColumn<TColumn> = TColumn extends { _: { baseColumn: Column | undefined } }\n\t? IsNever<TColumn['_']['baseColumn']> extends false ? true\n\t: false\n\t: false;\n\nexport type EnumValuesToEnum<TEnumValues extends [string, ...string[]]> = { [K in TEnumValues[number]]: K };\n\nexport type EnumValuesToReadonlyEnum<TEnumValues extends [string, ...string[]]> = {\n\treadonly [K in TEnumValues[number]]: K;\n};\n\nexport const CONSTANTS = {\n\tINT8_MIN: -128,\n\tINT8_MAX: 127,\n\tINT8_UNSIGNED_MAX: 255,\n\tINT16_MIN: -32768,\n\tINT16_MAX: 32767,\n\tINT16_UNSIGNED_MAX: 65535,\n\tINT24_MIN: -8388608,\n\tINT24_MAX: 8388607,\n\tINT24_UNSIGNED_MAX: 16777215,\n\tINT32_MIN: -2147483648,\n\tINT32_MAX: 2147483647,\n\tINT32_UNSIGNED_MAX: 4294967295,\n\tINT48_MIN: -140737488355328,\n\tINT48_MAX: 140737488355327,\n\tINT48_UNSIGNED_MAX: 281474976710655,\n\tINT64_MIN: -9223372036854775808n,\n\tINT64_MAX: 9223372036854775807n,\n\tINT64_UNSIGNED_MAX: 18446744073709551615n,\n};\n\nexport function base64ToUint8Array(base64: string): Uint8Array {\n\tif (!base64) return new Uint8Array(0);\n\tconst binary = atob(base64);\n\tconst len = binary.length;\n\tconst bytes = new Uint8Array(len);\n\n\tfor (let i = 0; i < len; ++i) {\n\t\tbytes[i] = binary.charCodeAt(i);\n\t}\n\n\treturn bytes;\n}\n\nexport type PartialWithUndefined<T> = {\n\t[K in keyof T]?: T[K] | undefined;\n};\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,aACf,SACA,KACA,qBACU;CAEV,MAAM,aAA6C,EAAE;CAErD,MAAM,SAAS,QAAQ,QACrB,QAAQ,EAAE,MAAM,OAAO,OAAO,mBAAmB,gBAAgB;EACjE,IAAI;AACJ,MAAIA,kBAAG,OAAOC,sBAAO,CACpB,WAAU;WACAD,kBAAG,OAAOE,oBAAI,CACxB,WAAU,MAAM;WACNF,kBAAG,OAAOG,0BAAS,CAC7B,WAAU,MAAM,EAAE,IAAI;MAEtB,WAAU,MAAM,IAAI;EAErB,IAAI,OAAO;AACX,OAAK,MAAM,CAAC,gBAAgB,cAAc,KAAK,SAAS,CACvD,KAAI,iBAAiB,KAAK,SAAS,GAAG;AACrC,OAAI,EAAE,aAAa,MAClB,MAAK,aAAa,EAAE;AAErB,UAAO,KAAK;SACN;GACN,MAAM,WAAW,IAAI;GACrB,MAAM,QAAQ,KAAK,aAAa,aAAa,OAC1C,OACA,QAAQ,mBAAmB,QAAQ,MAAM,UAAU,gBAAiB,GAAG,SAAS;AAEnF,OAAI,uBAAuBH,kBAAG,OAAOC,sBAAO,IAAI,KAAK,WAAW,GAAG;IAClE,MAAM,aAAa,KAAK;AACxB,QAAI,EAAE,cAAc,YACnB,YAAW,cAAc,UAAU,OAAOG,2BAAa,MAAM,MAAM,GAAG;aAEtE,OAAO,WAAW,gBAAgB,YAAY,WAAW,gBAAgBA,2BAAa,MAAM,MAAM,CAElG,YAAW,cAAc;;;AAK7B,SAAO;IAER,EAAE,CACF;AAGD,KAAI,uBAAuB,OAAO,KAAK,WAAW,CAAC,SAAS,GAC3D;OAAK,MAAM,CAAC,YAAY,cAAc,OAAO,QAAQ,WAAW,CAC/D,KAAI,OAAO,cAAc,YAAY,CAAC,oBAAoB,WACzD,QAAO,cAAc;;AAKxB,QAAO;;;AAIR,MAAa,gBAAgB,OAAO,qBAAqB,KAAK,CAAC;;AAG/D,SAAS,wBACR,SACA,sBAA+C,EAAE,EACxC;CACT,MAAM,QAAQ,EAAE;CAChB,MAAM,KAAK,EAAE;AACb,IAAG,KAAK,WAAW,QAAQ,KAAK,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,eAAe;CAE5E,MAAM,aAA6C,EAAE;CACrD,MAAM,YAAsC,EAAE;CAC9C,MAAM,UAAU,MAAM,KAAa,EAAE,QAAQ,QAAQ,QAAQ,CAAC;AAE9D,MAAK,IAAI,MAAM,GAAG,MAAM,QAAQ,QAAQ,EAAE,KAAK;EAC9C,MAAM,EAAE,OAAO,MAAM,OAAO,oBAAoB,QAAQ;EACxD,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI,WAAW;AACf,MAAIJ,kBAAG,OAAOC,sBAAO,EAAE;AACtB,cAAW;AACX,aAAU;AACV,6BAA0B,iBAAiB;aACjCD,kBAAG,OAAOE,oBAAI,EAAE;AAC1B,aAAU,MAAM;AAChB,6BAA0B,4BAA4B,IAAI;aAChDF,kBAAG,OAAOG,0BAAS,EAAE;AAC/B,aAAU,MAAM,EAAE,IAAI;AACtB,6BAA0B,wCAAwC,IAAI;SAChE;AACN,aAAU,MAAM,IAAI;AACpB,6BAA0B,mCAAmC,IAAI;;AAElE,eAAa,UAAU,IAAI;AAC3B,MAAI,QAAQ,mBAAmB,OAAQ,cAAa;AACpD,MAAI,WACH,OAAM,KAAK,WAAW,0BAA0B,QAAQ,iBAAiB,QAAQ,GAAG,eAAe,IAAI,IAAI;WACjG,MACV,OAAM,KAAK,uBAAuB,IAAI,eAAe,IAAI,IAAI;EAG9D,MAAM,SAAS,IAAI;EACnB,IAAI,eAAe;AACnB,MAAI,MAAO,gBAAe,QAAQ,IAAI,GAAG,aAAa,IAAI,gBAAgB;AAC1E,MAAI,WAAY,gBAAe,GAAG,WAAW,GAAG,aAAa;AAC7D,UAAQ,OAAO,WAAW,eACvB,GAAG,WACH,GAAG,OAAO,cAAc,OAAO,KAAK;AAEvC,MAAI,KAAK,WAAW,KAAK,CAAC,SAAU;AACpC,MAAI,UAAU,KAAK,QAAS,OAAW,WAAU,KAAK,MAAO,CAAC,IAAI,MAAM;MACnE,WAAU,KAAK,KAAM,KAAK,IAAI,MAAM;EACzC,MAAM,CAAC,cAAc;EACrB,MAAM,YAAYC,2BAAuB,MAAO,MAAM;AACtD,aAAW,cAAc,oBAAoB,aAAa,QAAQ,OAAO,WAAW,gBAAgB,WACjG,WAAW,gBAAgB,YAAY,YAAY,QACnD;;AAGJ,IAAG,KAAK,gBAAgB;CACxB,IAAI,oBAA8B,EAAE;AACpC,MAAK,IAAI,MAAM,GAAG,MAAM,QAAQ,QAAQ,EAAE,KAAK;EAC9C,MAAM,EAAE,SAAS,QAAQ;EACzB,MAAM,WAAW,KAAK,KAAK,MAAM,KAAK,UAAU,EAAE,CAAC;EACnD,MAAM,eAAe,QAAQ;EAE7B,MAAM,aAAa,KAAK,MAAM,GAAG,GAAG;EACpC,IAAI,YAAY;AAChB,SACC,YAAY,kBAAkB,UAC3B,YAAY,WAAW,UACvB,kBAAkB,eAAe,WAAW,WAC9C;AAEF,OAAK,IAAI,IAAI,kBAAkB,SAAS,GAAG,KAAK,WAAW,EAAE,EAC5D,IAAG,KAAK,GAAG,IAAK,OAAO,IAAI,EAAE,CAAC,IAAI;AAGnC,OAAK,IAAI,IAAI,WAAW,IAAI,WAAW,QAAQ,EAAE,EAChD,IAAG,KACF,GAAG,IAAK,OAAO,IAAI,EAAE,GAAG,SAAS,GAAG,IACnC,MAAM,KAAK,WAAW,WAAW,KAAK,OAAO,WAAW,KAAK,QAAS,WACnE,GAAG,UAAU,KAAK,KAAM,KAAK,MAAM,GAAG,EAAE,WAAW,CAAC,KAAK,OAAO,CAAC,eACjE,MAEJ;AAGF,sBAAoB;AACpB,KAAG,KAAK,GAAG,IAAK,OAAO,KAAK,OAAO,GAAG,SAAS,KAAK,SAAS,GAAG,IAAI,aAAa,GAAG;;AAGrF,MAAK,IAAI,IAAI,kBAAkB,SAAS,GAAG,KAAK,GAAG,EAAE,EACpD,IAAG,KAAK,GAAG,IAAK,OAAO,IAAI,EAAE,CAAC,IAAI;AAEnC,IAAG,KAAK,KAAK;AAEb,QAAO,GAAG,MAAM,SAAS,GAAG,MAAM,KAAK,MAAO,CAAC,QAAQ,GAAG;IACvD,GAAG,KAAK,OAAS,CAAC;;;AActB,SAAgB,mBACf,SACA,qBACsB;CACtB,MAAM,YAAY;;;;GAIhB,wBAAwB,SAAS,oBAAoB,CAAC;;;AAcxD,QAVW,OAAO,OACjB,IAAI,cACH,QACA,UACA,CAAC,KAAK,EACN,SACA,CAAC,EACF,EAAE,MAAM,qCAAqC,UAAU,MAAM,CAC7D;;;AAMF,SAAgB,eAAe,WAA8B;AAC5D,KAAI,CAAC,UAAW,QAAO;AAEvB,KAAI;EACH,MAAM,MAAM,IAAI,cAAc,SAAS,gCAA8B,CAAC,KAAK;AAC3E,MAAI,QAAQ,MAAM;AAEjB,WAAQ,KACP,qIACA;AACD,WAAQ,MAAM,sCAAsC,MAAM;;AAE3D,SAAO;UACC,GAAG;AACX,UAAQ,KACP,sGACA;AACD,UAAQ,MAAM,EAAE;AAChB,SAAO;;;AAIT,SAAgB,uBACf,SACA,qBACsB;CACtB,MAAM,kBAAkB,QAAQ,KAAK,EAAE,OAAO,OAAO,iBAAiB,WAAW;EAChF,IAAI;EACJ,IAAI;AACJ,MAAIJ,kBAAG,OAAOC,sBAAO,EAAE;AACtB,gBAAa;AAEb,OAAI,uBAAuB,KAAK,WAAW,GAAG;IAC7C,MAAM,aAAa,KAAK;AACxB,yBAAqB,YAAY,UAAU;AAC1C,SAAI,EAAE,cAAc,YACnB,YAAW,cAAc,UAAU,OAAOG,2BAAa,MAAM,MAAM,GAAG;cAEtE,OAAO,WAAW,gBAAgB,YAAY,WAAW,gBAAgBA,2BAAa,MAAM,MAAM,CAElG,YAAW,cAAc;;;aAIlBJ,kBAAG,OAAOE,oBAAI,CACxB,cAAa,MAAM;WACTF,kBAAG,OAAOG,0BAAS,CAC7B,cAAa,MAAM,EAAE,IAAI;MAEzB,cAAa,MAAM,IAAI;EAGxB,IAAI;AACJ,MAAI,WAAW,mBAAmB,OACjC,WAAU,SAAS,MAAW,MAAM,GAAG,gBAAiB,GAAG;MAE3D,WAAU,SACN,MAAW,WAAW,mBAAmB,MAAM,GAAG,gBAAiB,CAAC,IACpE,MAAW,WAAW,mBAAmB,EAAE;AAGhD,SAAO,CAAC,SAAS,kBAAkB;GAClC;AAEF,UAAS,SACR,KAAK,KAAK,QAAQ;EAEjB,MAAM,aAA6C,EAAE;EAErD,MAAM,SAAS,QAAQ,QACrB,QAAQ,EAAE,QAAQ,gBAAgB;GAClC,IAAI,OAAO;AACX,QAAK,MAAM,CAAC,gBAAgB,cAAc,KAAK,SAAS,CACvD,KAAI,iBAAiB,KAAK,SAAS,GAAG;AACrC,QAAI,EAAE,aAAa,MAClB,MAAK,aAAa,EAAE;AAErB,WAAO,KAAK;UACN;IACN,MAAM,CAAC,SAAS,qBAAqB,gBAAgB;IAErD,MAAM,WAAW,IAAI;IACrB,MAAM,QAAQ,KAAK,aAAa,aAAa,OAC1C,OACA,UACA,QAAQ,SAAS,GACjB;AAEH,wBAAoB,YAAY,MAAM;;AAGxC,UAAO;KAER,EAAE,CACF;AAGD,MAAI,uBAAuB,OAAO,KAAK,WAAW,CAAC,SAAS,GAC3D;QAAK,MAAM,CAAC,YAAY,cAAc,OAAO,QAAQ,WAAW,CAC/D,KAAI,OAAO,cAAc,YAAY,CAAC,oBAAoB,WACzD,QAAO,cAAc;;AAKxB,SAAO;GACN;;;AAGJ,SAAgB,oBACf,QACA,YACA,QACiC;AACjC,QAAO,OAAO,QAAQ,OAAO,CAAC,QAA0C,QAAQ,CAAC,MAAM,WAAW;AACjG,MAAI,OAAO,SAAS,SACnB,QAAO;EAGR,MAAM,UAAU,aAAa,CAAC,GAAG,YAAY,KAAK,GAAG,CAAC,KAAK;AAC3D,MAAIH,kBAAG,OAAOC,sBAAO,CACpB,QAAO,KAAK;GACX,MAAM;GACN;GACA,OAAO,QAAQ,IAAI,OAAO,YAAY;GACtC,iBAAwB,MAAO;GAC/B,CAAC;WACQD,kBAAG,OAAOC,sBAAO,IAAID,kBAAG,OAAOE,oBAAI,IAAIF,kBAAG,OAAOE,oBAAI,QAAQ,IAAIF,kBAAG,OAAOG,0BAAS,CAC9F,QAAO,KAAK;GAAE,MAAM;GAAS;GAAO,CAAC;WAC3BH,kBAAG,OAAOK,oBAAM,CAC1B,QAAO,KAAK,GAAG,oBAAoB,MAAMA,oBAAM,OAAO,UAAU,SAAS,OAAO,CAAC;MAEjF,QAAO,KAAK,GAAG,oBAAoB,OAAkC,SAAS,OAAO,CAAC;AAEvF,SAAO;IACL,EAAE,CAAC;;AAGP,SAAgB,aAAa,MAA+B,OAAgC;CAC3F,MAAM,WAAW,OAAO,KAAK,KAAK;CAClC,MAAM,YAAY,OAAO,KAAK,MAAM;AAEpC,KAAI,SAAS,WAAW,UAAU,OACjC,QAAO;AAGR,MAAK,MAAM,CAAC,OAAO,QAAQ,SAAS,SAAS,CAC5C,KAAI,QAAQ,UAAU,OACrB,QAAO;AAIT,QAAO;;;AAIR,SAAgB,aAAa,OAAc,QAA4C;CACtF,MAAM,UAAyC,OAAO,QAAQ,OAAO,CACnE,QAAQ,GAAG,WAAW,UAAU,OAAU,CAC1C,KAAK,CAAC,KAAK,WAAW;AAEtB,MAAIL,kBAAG,OAAOE,oBAAI,IAAIF,kBAAG,OAAOC,sBAAO,CACtC,QAAO,CAAC,KAAK,MAAM;MAEnB,QAAO,CAAC,KAAK,IAAIK,sBAAM,OAAO,MAAMD,oBAAM,OAAO,SAAS,KAAK,CAAC;GAEhE;AAEH,KAAI,QAAQ,WAAW,EACtB,OAAM,IAAI,MAAM,mBAAmB;AAGpC,QAAO,OAAO,YAAY,QAAQ;;;AAkDnC,SAAgB,YAAY,WAAgB,iBAAwB;AACnE,MAAK,MAAM,iBAAiB,gBAC3B,MAAK,MAAM,QAAQ,OAAO,oBAAoB,cAAc,UAAU,EAAE;AACvE,MAAI,SAAS,cAAe;AAE5B,SAAO,eACN,UAAU,WACV,MACA,OAAO,yBAAyB,cAAc,WAAW,KAAK,IAAI,OAAO,OAAO,KAAK,CACrF;;;;;;;AAqBJ,SAAgB,gBAAiC,OAA6B;AAC7E,QAAO,MAAMA,oBAAM,OAAO;;AAG3B,SAAgB,sBAAsC,MAAmC;AACxF,QAAO,KAAKE,oCAAgB;;AAG7B,SAAgB,WACf,OAKD;AACC,QAAQP,kBAAG,OAAOK,oBAAM,GACrB,MAAMA,oBAAM,OAAO,WACnBL,kBAAG,OAAOQ,qBAAK,GACf,MAAMD,oCAAgB,iBACtB,MAAM,EAAE;;;AAIZ,SAAgB,iBAAiB,OAAsC;AACtE,QAAOP,kBAAG,OAAOG,0BAAS,GACvB,MAAM,EAAE,QACRH,kBAAG,OAAOQ,qBAAK,GACf,MAAMD,oCAAgB,OACtBP,kBAAG,OAAOE,oBAAI,GACd,SACA,MAAMG,oBAAM,OAAO,WACnB,MAAMA,oBAAM,OAAO,QACnB,MAAMA,oBAAM,OAAO;;;AAiCvB,SAAgB,uBAEd,GAAiC,GAAwB;AAC1D,QAAO;EACN,MAAM,OAAO,MAAM,YAAY,EAAE,SAAS,IAAI,IAAI;EAClD,QAAQ,OAAO,MAAM,WAAW,IAAI;EACpC;;AAwBF,SAAgB,SAAS,MAAoB;AAC5C,KAAI,OAAO,SAAS,YAAY,SAAS,KAAM,QAAO;AAEtD,KAAI,KAAK,YAAY,SAAS,SAAU,QAAO;AAE/C,KAAI,YAAY,MAAM;EACrB,MAAM,OAAO,OAAO,KAAK;AACzB,MACC,SAAS,cAAc,SAAS,YAAY,OAAO,KAAK,UAAU,gBAAgB,eAC/E,SAAS,YACX,QAAO;AAET,SAAO;;AAGR,KAAI,YAAY,MAAM;EACrB,MAAM,OAAO,OAAO,KAAK;AACzB,MAAI,SAAS,YAAY,SAAS,YAAa,QAAO;AAEtD,SAAO;;AAGR,KAAI,eAAe,MAAM;EACxB,MAAM,OAAO,OAAO,KAAK;AACzB,MAAI,SAAS,YAAY,SAAS,YAAa,QAAO;AAEtD,SAAO;;AAGR,KAAI,UAAU,MAAM;AACnB,MAAI,KAAK,YAAY,aAAa,KAAK,YAAY,iBAAiB,KAAK,YAAY,OAAW,QAAO;AAEvG,SAAO;;AAGR,KAAI,gBAAgB,MAAM;EACzB,MAAM,OAAO,OAAO,KAAK;AACzB,MAAI,SAAS,YAAY,SAAS,YAAY,SAAS,YAAa,QAAO;AAE3E,SAAO;;AAGR,KAAI,YAAY,MAAM;EACrB,MAAM,OAAO,OAAO,KAAK;AACzB,MAAI,SAAS,YAAY,SAAS,cAAc,SAAS,YAAa,QAAO;AAE7E,SAAO;;AAGR,KAAI,mBAAmB,MAAM;EAC5B,MAAM,OAAO,OAAO,KAAK;AACzB,MAAI,SAAS,aAAa,SAAS,YAAa,QAAO;AAEvD,SAAO;;AAGR,KAAI,YAAY,MAAM;EACrB,MAAM,OAAO,OAAO,KAAK;AACzB,MAAI,SAAS,YAAY,SAAS,YAAa,QAAO;AAEtD,SAAO;;AAGR,KAAI,OAAO,KAAK,KAAK,CAAC,WAAW,EAAG,QAAO;AAE3C,QAAO;;AAKR,MAAa,cAAc,OAAO,gBAAgB,cAAc,OAAO,IAAI,aAAa;AAExF,SAAgB,kBAAkB,IAA8B;AAC/D,OAAM,IAAI,MAAM,4BAA4B;;AAK7C,SAAgB,WAAW,OAAyB;AACnD,SAAS,OAAO,UAAU,YAAY,UAAU,QAAS,OAAO,UAAU,eAAe,gBAAgB,SACrG,MAAM,QAAQ,MAAM,WAAW,IAC/B,MAAM,WAAW,SAAS;;AAkC/B,MAAa,YAAY;CACxB,UAAU;CACV,UAAU;CACV,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX,oBAAoB;CACpB,WAAW;CACX,WAAW;CACX,oBAAoB;CACpB,WAAW;CACX,WAAW;CACX,oBAAoB;CACpB,WAAW;CACX,WAAW;CACX,oBAAoB;CACpB,WAAW,CAAC;CACZ,WAAW;CACX,oBAAoB;CACpB;AAED,SAAgB,mBAAmB,QAA4B;AAC9D,KAAI,CAAC,OAAQ,QAAO,IAAI,WAAW,EAAE;CACrC,MAAM,SAAS,KAAK,OAAO;CAC3B,MAAM,MAAM,OAAO;CACnB,MAAM,QAAQ,IAAI,WAAW,IAAI;AAEjC,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE,EAC1B,OAAM,KAAK,OAAO,WAAW,EAAE;AAGhC,QAAO"}
|
|
1
|
+
{"version":3,"file":"utils.cjs","names":["is","Column","SQL","Subquery","getTableName","Table","Param","ViewBaseConfig","View"],"sources":["../src/utils.ts"],"sourcesContent":["import type { Cache } from './cache/core/cache.ts';\nimport type { CodecsCollection } from './codecs.ts';\nimport type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { is } from './entity.ts';\nimport type { Logger } from './logger.ts';\nimport type { SelectedFieldsFlat, SelectedFieldsOrdered } from './operations.ts';\nimport type { TableLike } from './query-builders/select.types.ts';\nimport type { AnyRelations, EmptyRelations } from './relations.ts';\nimport { Param, SQL, View } from './sql/sql.ts';\nimport type { DriverValueDecoder } from './sql/sql.ts';\nimport { Subquery } from './subquery.ts';\nimport { getTableName, Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\n/** @internal */\nexport function mapResultRow<TResult>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\trow: unknown[] | (readonly unknown[]),\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n): TResult {\n\t// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n\tconst nullifyMap: Record<string, string | false> = {};\n\n\tconst result = columns.reduce<Record<string, any>>(\n\t\t(result, { path, field, codec, arrayDimensions }, columnIndex) => {\n\t\t\tlet decoder: DriverValueDecoder<unknown, unknown>;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else if (is(field, Subquery)) {\n\t\t\t\tdecoder = field._.sql.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tlet node = result;\n\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) {\n\t\t\t\tif (pathChunkIndex < path.length - 1) {\n\t\t\t\t\tif (!(pathChunk in node)) {\n\t\t\t\t\t\tnode[pathChunk] = {};\n\t\t\t\t\t}\n\t\t\t\t\tnode = node[pathChunk];\n\t\t\t\t} else {\n\t\t\t\t\tconst rawValue = row[columnIndex]!;\n\t\t\t\t\tconst value = node[pathChunk] = rawValue === null\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: decoder.mapFromDriverValue(codec ? codec(rawValue, arrayDimensions!) : rawValue);\n\n\t\t\t\t\tif (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n\t\t\t\t\t\tconst objectName = path[0]!;\n\t\t\t\t\t\tif (!(objectName in nullifyMap)) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\ttypeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\t{},\n\t);\n\n\t// Nullify all nested objects from nullifyMap that are nullable\n\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) {\n\t\t\tif (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n\t\t\t\tresult[objectName] = null;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result as TResult;\n}\n\n/** @internal bypass bundle-time filtering */\nexport const FnConstructor = Object.getPrototypeOf(() => null).constructor as typeof Function;\n\n/** @internal */\nfunction makeJitQueryMapperInner(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\tjoinsNotNullableMap: Record<string, boolean> = {},\n): string {\n\tconst preFn = [] as string[];\n\tconst fn = [] as string[];\n\tfn.push(`const [ ${columns.map((_, i) => `c${i}`).join(', ')} ] = rows[i];`);\n\n\tconst nullifyMap: Record<string, string | false> = {};\n\tconst objectIds: Record<string, string[]> = {};\n\tconst decodes = Array.from<string>({ length: columns.length });\n\n\tfor (let idx = 0; idx < columns.length; ++idx) {\n\t\tconst { field, path, codec, arrayDimensions } = columns[idx]!;\n\t\tlet decoder: DriverValueDecoder<unknown, unknown>;\n\t\tlet decoderStr: string;\n\t\tlet decoderFieldDestructure: string;\n\t\tlet isColumn = false;\n\t\tif (is(field, Column)) {\n\t\t\tisColumn = true;\n\t\t\tdecoder = field;\n\t\t\tdecoderFieldDestructure = `field: decoder${idx}`;\n\t\t} else if (is(field, SQL)) {\n\t\t\tdecoder = field.decoder;\n\t\t\tdecoderFieldDestructure = `field: { decoder: decoder${idx} }`;\n\t\t} else if (is(field, Subquery)) {\n\t\t\tdecoder = field._.sql.decoder;\n\t\t\tdecoderFieldDestructure = `field: { _: { sql: { decoder: decoder${idx} } } }`;\n\t\t} else {\n\t\t\tdecoder = field.sql.decoder;\n\t\t\tdecoderFieldDestructure = `field: { sql: { decoder: decoder${idx} } }`;\n\t\t}\n\t\tdecoderStr = `decoder${idx}.mapFromDriverValue`;\n\t\tif (decoder.mapFromDriverValue.isNoop) decoderStr = '';\n\t\tif (decoderStr) {\n\t\t\tpreFn.push(`const { ${decoderFieldDestructure}${codec ? `, codec: codec${idx}` : ''} } = columns[${idx}];`);\n\t\t} else if (codec) {\n\t\t\tpreFn.push(`const { codec: codec${idx} } = columns[${idx}];`);\n\t\t}\n\n\t\tconst colStr = `c${idx}`;\n\t\tlet decodedValue = colStr;\n\t\tif (codec) decodedValue = `codec${idx}(${decodedValue}, ${arrayDimensions})`;\n\t\tif (decoderStr) decodedValue = `${decoderStr}(${decodedValue})`;\n\t\tdecodes[idx] = colStr === decodedValue\n\t\t\t? `${colStr}`\n\t\t\t: `${colStr} === null ? ${colStr} : ${decodedValue}`;\n\n\t\tif (path.length !== 2 || !isColumn) continue;\n\t\tif (objectIds[path[0]!] === undefined) objectIds[path[0]!] = [`c${idx}`];\n\t\telse objectIds[path[0]!]?.push(`c${idx}`);\n\t\tconst [objectName] = path as [string];\n\t\tconst tableName = getTableName((<Column> field).table);\n\t\tnullifyMap[objectName] = joinsNotNullableMap[tableName] ? false : typeof nullifyMap[objectName] === 'string'\n\t\t\t? nullifyMap[objectName] === tableName ? tableName : false\n\t\t\t: tableName;\n\t}\n\n\tfn.push(`mapped[i] = {`);\n\tlet currentObjectPath: string[] = [];\n\tfor (let idx = 0; idx < columns.length; ++idx) {\n\t\tconst { path } = columns[idx]!;\n\t\tconst jsonPath = path.map((e) => JSON.stringify(e));\n\t\tconst decodedValue = decodes[idx]!;\n\n\t\tconst objectPath = path.slice(0, -1);\n\t\tlet commonLen = 0;\n\t\twhile (\n\t\t\tcommonLen < currentObjectPath.length\n\t\t\t&& commonLen < objectPath.length\n\t\t\t&& currentObjectPath[commonLen] === objectPath[commonLen]\n\t\t) commonLen++;\n\n\t\tfor (let d = currentObjectPath.length - 1; d >= commonLen; --d) {\n\t\t\tfn.push(`${'\\t'.repeat(d + 1)}},`);\n\t\t}\n\n\t\tfor (let d = commonLen; d < objectPath.length; ++d) {\n\t\t\tfn.push(\n\t\t\t\t`${'\\t'.repeat(d + 1)}${jsonPath[d]}: ${\n\t\t\t\t\td === 0 && objectPath.length === 1 && typeof nullifyMap[path[0]!] === 'string'\n\t\t\t\t\t\t? `${objectIds[path[0]!]?.map((c) => `${c} === null`).join(' && ')} ? null : {`\n\t\t\t\t\t\t: '{'\n\t\t\t\t}`,\n\t\t\t);\n\t\t}\n\n\t\tcurrentObjectPath = objectPath;\n\t\tfn.push(`${'\\t'.repeat(path.length)}${jsonPath[path.length - 1]}: ${decodedValue},`);\n\t}\n\n\tfor (let d = currentObjectPath.length - 1; d >= 0; --d) {\n\t\tfn.push(`${'\\t'.repeat(d + 1)}},`);\n\t}\n\tfn.push(`};`);\n\n\treturn `${preFn.length ? `${preFn.join('\\n\\t')}\\n\\t` : ''}for (let i = 0; i < length; ++i) {\n\t\t${fn.join('\\n\\t\\t')}\n\t}`;\n}\n\nexport type RowsMapperGenerator = <TResult = any>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n) => RowsMapper<TResult>;\nexport interface RowsMapper<TResult = Record<string, unknown>[]> {\n\t(rows: unknown[][]): TResult;\n\t/** @internal jit mapper's function body for debugging */\n\tbody?: string;\n}\n\nexport function makeJitQueryMapper<TResult>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n): RowsMapper<TResult> {\n\tconst internals = `\\t\"use strict\";\n\tconst { columns } = this;\n\tconst { length } = rows;\n\tconst mapped = Array.from({ length });\n\t${makeJitQueryMapperInner(columns, joinsNotNullableMap)}\n\treturn mapped;\n\t//# sourceURL=drizzle:jit-query-mapper`;\n\n\tconst fn = Object.assign(\n\t\tnew FnConstructor(\n\t\t\t'rows',\n\t\t\tinternals,\n\t\t).bind({\n\t\t\tcolumns,\n\t\t}),\n\t\t{ body: `function jitQueryMapper (rows) {\\n${internals}\\n}` },\n\t) as RowsMapper<TResult>;\n\n\treturn fn;\n}\n\n/** @internal */\nexport function jitCompatCheck(isEnabled?: boolean): boolean {\n\tif (!isEnabled) return false;\n\n\ttry {\n\t\tconst res = new FnConstructor('input', '\"use strict\"; return input;')(true);\n\t\tif (res !== true) {\n\t\t\t// In case it's broken in runtime but not forbidden\n\t\t\tconsole.warn(\n\t\t\t\t'Unable to use jit mappers due to incompatibility: corrupted jit function output.\\nFalling back to premade mappers.\\nError details:',\n\t\t\t);\n\t\t\tconsole.error(`Expected to receive \\`true\\`, got: ${res}`);\n\t\t}\n\t\treturn true;\n\t} catch (e) {\n\t\tconsole.warn(\n\t\t\t'Unable to use jit mappers due to incompatibility.\\nFalling back to premade mappers.\\nError details:',\n\t\t);\n\t\tconsole.error(e);\n\t\treturn false;\n\t}\n}\n\nexport function makeDefaultQueryMapper<TResult>(\n\tcolumns: SelectedFieldsOrdered<AnyColumn>,\n\tjoinsNotNullableMap: Record<string, boolean> | undefined,\n): RowsMapper<TResult> {\n\tconst interpretedData = columns.map(({ field, codec, arrayDimensions, path }) => {\n\t\tlet processNullifyMap: ((nullifyMap: Record<string, string | false>, value: any) => void) | undefined;\n\t\tlet decoderSrc: DriverValueDecoder<unknown, unknown>;\n\t\tif (is(field, Column)) {\n\t\t\tdecoderSrc = field;\n\n\t\t\tif (joinsNotNullableMap && path.length === 2) {\n\t\t\t\tconst objectName = path[0]!;\n\t\t\t\tprocessNullifyMap = (nullifyMap, value) => {\n\t\t\t\t\tif (!(objectName in nullifyMap)) {\n\t\t\t\t\t\tnullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\ttypeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)\n\t\t\t\t\t) {\n\t\t\t\t\t\tnullifyMap[objectName] = false;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (is(field, SQL)) {\n\t\t\tdecoderSrc = field.decoder;\n\t\t} else if (is(field, Subquery)) {\n\t\t\tdecoderSrc = field._.sql.decoder;\n\t\t} else {\n\t\t\tdecoderSrc = field.sql.decoder;\n\t\t}\n\n\t\tlet decoder: ((v: any) => any) | undefined;\n\t\tif (decoderSrc.mapFromDriverValue.isNoop) {\n\t\t\tdecoder = codec ? (v: any) => codec(v, arrayDimensions!) : undefined;\n\t\t} else {\n\t\t\tdecoder = codec\n\t\t\t\t? (v: any) => decoderSrc.mapFromDriverValue(codec(v, arrayDimensions!))\n\t\t\t\t: (v: any) => decoderSrc.mapFromDriverValue(v);\n\t\t}\n\n\t\treturn [decoder, processNullifyMap] as const;\n\t});\n\n\treturn ((rows) =>\n\t\trows.map((row) => {\n\t\t\t// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n\t\t\tconst nullifyMap: Record<string, string | false> = {};\n\n\t\t\tconst result = columns.reduce<Record<string, any>>(\n\t\t\t\t(result, { path }, columnIndex) => {\n\t\t\t\t\tlet node = result;\n\t\t\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) {\n\t\t\t\t\t\tif (pathChunkIndex < path.length - 1) {\n\t\t\t\t\t\t\tif (!(pathChunk in node)) {\n\t\t\t\t\t\t\t\tnode[pathChunk] = {};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tnode = node[pathChunk];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst [decoder, processNullifyMap] = interpretedData[columnIndex]!;\n\n\t\t\t\t\t\t\tconst rawValue = row[columnIndex]!;\n\t\t\t\t\t\t\tconst value = node[pathChunk] = rawValue === null\n\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t: decoder\n\t\t\t\t\t\t\t\t? decoder(rawValue)\n\t\t\t\t\t\t\t\t: rawValue;\n\n\t\t\t\t\t\t\tprocessNullifyMap?.(nullifyMap, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn result;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t);\n\n\t\t\t// Nullify all nested objects from nullifyMap that are nullable\n\t\t\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\t\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) {\n\t\t\t\t\tif (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n\t\t\t\t\t\tresult[objectName] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result as TResult;\n\t\t})) as RowsMapper<TResult>;\n}\n/** @internal */\nexport function orderSelectedFields<TColumn extends AnyColumn>(\n\tfields: Record<string, unknown>,\n\tpathPrefix?: string[],\n\tcodecs?: CodecsCollection,\n): SelectedFieldsOrdered<TColumn> {\n\treturn Object.entries(fields).reduce<SelectedFieldsOrdered<AnyColumn>>((result, [name, field]) => {\n\t\tif (typeof name !== 'string') {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst newPath = pathPrefix ? [...pathPrefix, name] : [name];\n\t\tif (is(field, Column)) {\n\t\t\tresult.push({\n\t\t\t\tpath: newPath,\n\t\t\t\tfield,\n\t\t\t\tcodec: codecs?.get(field, 'normalize'),\n\t\t\t\tarrayDimensions: (<any> field).dimensions,\n\t\t\t});\n\t\t} else if (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased) || is(field, Subquery)) {\n\t\t\tresult.push({ path: newPath, field });\n\t\t} else if (is(field, Table)) {\n\t\t\tresult.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath, codecs));\n\t\t} else {\n\t\t\tresult.push(...orderSelectedFields(field as Record<string, unknown>, newPath, codecs));\n\t\t}\n\t\treturn result;\n\t}, []) as SelectedFieldsOrdered<TColumn>;\n}\n\nexport function haveSameKeys(left: Record<string, unknown>, right: Record<string, unknown>) {\n\tconst leftKeys = Object.keys(left);\n\tconst rightKeys = Object.keys(right);\n\n\tif (leftKeys.length !== rightKeys.length) {\n\t\treturn false;\n\t}\n\n\tfor (const [index, key] of leftKeys.entries()) {\n\t\tif (key !== rightKeys[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/** @internal */\nexport function mapUpdateSet(table: Table, values: Record<string, unknown>): UpdateSet {\n\tconst entries: [string, UpdateSet[string]][] = Object.entries(values)\n\t\t.filter(([, value]) => value !== undefined)\n\t\t.map(([key, value]) => {\n\t\t\t// eslint-disable-next-line unicorn/prefer-ternary\n\t\t\tif (is(value, SQL) || is(value, Column)) {\n\t\t\t\treturn [key, value];\n\t\t\t} else {\n\t\t\t\treturn [key, new Param(value, table[Table.Symbol.Columns][key])];\n\t\t\t}\n\t\t});\n\n\tif (entries.length === 0) {\n\t\tthrow new Error('No values to set');\n\t}\n\n\treturn Object.fromEntries(entries);\n}\n\nexport type UpdateSet = Record<string, SQL | Param | AnyColumn | null | undefined>;\n\nexport type OneOrMany<T> = T | T[];\n\nexport type Update<T, TUpdate> =\n\t& {\n\t\t[K in Exclude<keyof T, keyof TUpdate>]: T[K];\n\t}\n\t& TUpdate;\n\nexport type Simplify<T> =\n\t& {\n\t\t// @ts-ignore - \"Type parameter 'K' has a circular constraint\", not sure why\n\t\t[K in keyof T]: T[K];\n\t}\n\t& {};\n\nexport type Not<T extends boolean> = T extends true ? false : true;\n\nexport type IsNever<T> = [T] extends [never] ? true : false;\n\nexport type IsUnion<T, U extends T = T> = (T extends any ? (U extends T ? false : true) : never) extends false ? false\n\t: true;\n\nexport type SingleKeyObject<T, TError extends string, K = keyof T> = IsNever<K> extends true ? never\n\t: IsUnion<K> extends true ? DrizzleTypeError<TError>\n\t: T;\n\nexport type FromSingleKeyObject<T, Result, TError extends string, K = keyof T> = IsNever<K> extends true ? never\n\t: IsUnion<K> extends true ? DrizzleTypeError<TError>\n\t: Result;\n\nexport type SimplifyMappedType<T> = [T] extends [unknown] ? T : never;\n\nexport type ShallowRecord<K extends keyof any, T> = SimplifyMappedType<{ [P in K]: T }>;\n\nexport type Assume<T, U> = T extends U ? T : U;\n\nexport type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;\n\nexport interface DrizzleTypeError<T extends string> {\n\t$drizzleTypeError: T;\n}\n\nexport type ValueOrArray<T> = T | T[];\n\n/** @internal */\nexport function applyMixins(baseClass: any, extendedClasses: any[]) {\n\tfor (const extendedClass of extendedClasses) {\n\t\tfor (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n\t\t\tif (name === 'constructor') continue;\n\n\t\t\tObject.defineProperty(\n\t\t\t\tbaseClass.prototype,\n\t\t\t\tname,\n\t\t\t\tObject.getOwnPropertyDescriptor(extendedClass.prototype, name) || Object.create(null),\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport type Or<T1, T2> = T1 extends true ? true : T2 extends true ? true : false;\n\nexport type IfThenElse<If, Then, Else> = If extends true ? Then : Else;\n\nexport type PromiseOf<T> = T extends Promise<infer U> ? U : T;\n\nexport type Writable<T> = {\n\t-readonly [P in keyof T]: T[P];\n};\n\nexport type NonArray<T> = T extends any[] ? never : T;\n\n/**\n * @deprecated\n * Use `getColumns` instead\n */\nexport function getTableColumns<T extends Table>(table: T): T['_']['columns'] {\n\treturn table[Table.Symbol.Columns];\n}\n\nexport function getViewSelectedFields<T extends View>(view: T): T['_']['selectedFields'] {\n\treturn view[ViewBaseConfig].selectedFields;\n}\n\nexport function getColumns<T extends Table | View | Subquery>(\n\ttable: T,\n): T extends Table ? T['_']['columns']\n\t: T extends View ? T['_']['selectedFields']\n\t: T extends Subquery ? T['_']['selectedFields']\n\t: never\n{\n\treturn (is(table, Table)\n\t\t? table[Table.Symbol.Columns]\n\t\t: is(table, View)\n\t\t? table[ViewBaseConfig].selectedFields\n\t\t: table._.selectedFields) as any;\n}\n\n/** @internal */\nexport function getTableLikeName(table: TableLike): string | undefined {\n\treturn is(table, Subquery)\n\t\t? table._.alias\n\t\t: is(table, View)\n\t\t? table[ViewBaseConfig].name\n\t\t: is(table, SQL)\n\t\t? undefined\n\t\t: table[Table.Symbol.IsAlias]\n\t\t? table[Table.Symbol.Name]\n\t\t: table[Table.Symbol.BaseName];\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyColumn<{ tableName: TForeignTableName }> };\n\nexport interface DrizzleConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelationConfigs extends AnyRelations = EmptyRelations,\n> {\n\tlogger?: boolean | Logger | undefined;\n\tschema?: TSchema | undefined;\n\trelations?: TRelationConfigs | undefined;\n\tcache?: Cache | undefined;\n\tjit?: boolean | undefined;\n}\nexport type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape\n\t? Exclude<keyof T, keyof ValidShape> extends never ? TResult\n\t: DrizzleTypeError<\n\t\t`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`\n\t>\n\t: never;\n\nexport type KnownKeysOnly<T, U> = {\n\t[K in keyof T]: K extends keyof U ? T[K] : never;\n};\n\nexport type IsAny<T> = 0 extends (1 & T) ? true : false;\n\n/** @internal */\nexport function getColumnNameAndConfig<\n\tTConfig extends Record<string, any> | undefined,\n>(a: string | TConfig | undefined, b: TConfig | undefined) {\n\treturn {\n\t\tname: typeof a === 'string' && a.length > 0 ? a : '' as string,\n\t\tconfig: typeof a === 'object' ? a : b as TConfig,\n\t};\n}\n\nexport type IfNotImported<T, Y, N> = unknown extends T ? Y : N;\n\nexport type ImportTypeError<TPackageName extends string> =\n\t`Please install \\`${TPackageName}\\` to allow Drizzle ORM to connect to the database`;\n\nexport type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends any\n\t? Required<Pick<T, Keys>> & Partial<Omit<T, Keys>>\n\t: never;\n\ntype ExpectedConfigShape = {\n\tlogger?: boolean | {\n\t\tlogQuery(query: string, params: unknown[]): void;\n\t} | undefined;\n\tschema?: Record<string, never> | undefined;\n\trelations?: AnyRelations | undefined;\n};\n\n// If this errors, you must update config shape checker function with new config specs\nconst _: DrizzleConfig<any, any> = {} as ExpectedConfigShape;\nconst __: ExpectedConfigShape = {} as DrizzleConfig;\n\nexport function isConfig(data: any): boolean {\n\tif (typeof data !== 'object' || data === null) return false;\n\n\tif (data.constructor.name !== 'Object') return false;\n\n\tif ('logger' in data) {\n\t\tconst type = typeof data['logger'];\n\t\tif (\n\t\t\ttype !== 'boolean' && (type !== 'object' || typeof data['logger']['logQuery'] !== 'function')\n\t\t\t&& type !== 'undefined'\n\t\t) return false;\n\n\t\treturn true;\n\t}\n\n\tif ('schema' in data) {\n\t\tconst type = typeof data['schema'];\n\t\tif (type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('relations' in data) {\n\t\tconst type = typeof data['relations'];\n\t\tif (type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('mode' in data) {\n\t\tif (data['mode'] !== 'default' && data['mode'] !== 'planetscale' && data['mode'] !== undefined) return false;\n\n\t\treturn true;\n\t}\n\n\tif ('connection' in data) {\n\t\tconst type = typeof data['connection'];\n\t\tif (type !== 'string' && type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('client' in data) {\n\t\tconst type = typeof data['client'];\n\t\tif (type !== 'object' && type !== 'function' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('jit' in data) {\n\t\tconst type = typeof data['jit'];\n\t\tif (type !== 'boolean' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif ('codecs' in data) {\n\t\tconst type = typeof data['connection'];\n\t\tif (type !== 'object' && type !== 'undefined') return false;\n\n\t\treturn true;\n\t}\n\n\tif (Object.keys(data).length === 0) return true;\n\n\treturn false;\n}\n\nexport type NeonAuthToken = string | (() => string | Promise<string>);\n\nexport const textDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder();\n\nexport function assertUnreachable(_x: never | undefined): never {\n\tthrow new Error(\"Didn't expect to get here\");\n}\n\nexport function isWithEnum(column: Column<any>): column is typeof column & { enumValues: [string, ...string[]] };\nexport function isWithEnum(value: unknown): value is { enumValues: [string, ...string[]] };\nexport function isWithEnum(value: unknown): boolean {\n\treturn ((typeof value === 'object' && value !== null) || typeof value === 'function') && 'enumValues' in value\n\t\t&& Array.isArray(value.enumValues)\n\t\t&& value.enumValues.length > 0;\n}\n\nexport type Literal = string | number | boolean | null;\nexport type Json = Literal | { [key: string]: any } | any[];\n\nexport type ColumnIsGeneratedAlwaysAs<TColumn> = TColumn extends Column<any>\n\t? TColumn['_']['identity'] extends 'always' ? true\n\t: TColumn['_'] extends { generated: undefined } ? false\n\t: TColumn['_']['generated'] extends { type: 'byDefault' } ? false\n\t: true\n\t: false;\n\nexport type GetSelection<T extends SelectedFieldsFlat<Column<any>> | Table<any> | View> = T extends Table<any>\n\t? T['_']['columns']\n\t: T extends View ? T['_']['selectedFields']\n\t: T;\n\nexport type RemoveNeverElements<T extends any[]> = T extends [infer First, ...infer Rest]\n\t? IsNever<First> extends true ? RemoveNeverElements<Rest>\n\t: [First, ...RemoveNeverElements<Rest>]\n\t: [];\n\nexport type HasBaseColumn<TColumn> = TColumn extends { _: { baseColumn: Column | undefined } }\n\t? IsNever<TColumn['_']['baseColumn']> extends false ? true\n\t: false\n\t: false;\n\nexport type EnumValuesToEnum<TEnumValues extends [string, ...string[]]> = { [K in TEnumValues[number]]: K };\n\nexport type EnumValuesToReadonlyEnum<TEnumValues extends [string, ...string[]]> = {\n\treadonly [K in TEnumValues[number]]: K;\n};\n\nexport const CONSTANTS = {\n\tINT8_MIN: -128,\n\tINT8_MAX: 127,\n\tINT8_UNSIGNED_MAX: 255,\n\tINT16_MIN: -32768,\n\tINT16_MAX: 32767,\n\tINT16_UNSIGNED_MAX: 65535,\n\tINT24_MIN: -8388608,\n\tINT24_MAX: 8388607,\n\tINT24_UNSIGNED_MAX: 16777215,\n\tINT32_MIN: -2147483648,\n\tINT32_MAX: 2147483647,\n\tINT32_UNSIGNED_MAX: 4294967295,\n\tINT48_MIN: -140737488355328,\n\tINT48_MAX: 140737488355327,\n\tINT48_UNSIGNED_MAX: 281474976710655,\n\tINT64_MIN: -9223372036854775808n,\n\tINT64_MAX: 9223372036854775807n,\n\tINT64_UNSIGNED_MAX: 18446744073709551615n,\n};\n\nexport function base64ToUint8Array(base64: string): Uint8Array {\n\tif (!base64) return new Uint8Array(0);\n\tconst binary = atob(base64);\n\tconst len = binary.length;\n\tconst bytes = new Uint8Array(len);\n\n\tfor (let i = 0; i < len; ++i) {\n\t\tbytes[i] = binary.charCodeAt(i);\n\t}\n\n\treturn bytes;\n}\n\nexport type PartialWithUndefined<T> = {\n\t[K in keyof T]?: T[K] | undefined;\n};\n"],"mappings":"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"}
|
package/utils.d.cts
CHANGED
|
@@ -54,7 +54,7 @@ interface DrizzleConfig<TSchema extends Record<string, unknown> = Record<string,
|
|
|
54
54
|
schema?: TSchema | undefined;
|
|
55
55
|
relations?: TRelationConfigs | undefined;
|
|
56
56
|
cache?: Cache | undefined;
|
|
57
|
-
|
|
57
|
+
jit?: boolean | undefined;
|
|
58
58
|
}
|
|
59
59
|
type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape ? Exclude<keyof T, keyof ValidShape> extends never ? TResult : DrizzleTypeError<`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`> : never;
|
|
60
60
|
type KnownKeysOnly<T, U> = { [K in keyof T]: K extends keyof U ? T[K] : never };
|