drizzle-kit 0.20.16 → 0.20.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. package/bin.cjs +192 -35
  2. package/package.json +1 -1
package/bin.cjs CHANGED
@@ -22453,23 +22453,23 @@ var require_isexe = __commonJS({
22453
22453
  throw new TypeError("callback not provided");
22454
22454
  }
22455
22455
  return new Promise(function(resolve2, reject) {
22456
- isexe(path5, options || {}, function(er, is8) {
22456
+ isexe(path5, options || {}, function(er, is9) {
22457
22457
  if (er) {
22458
22458
  reject(er);
22459
22459
  } else {
22460
- resolve2(is8);
22460
+ resolve2(is9);
22461
22461
  }
22462
22462
  });
22463
22463
  });
22464
22464
  }
22465
- core(path5, options || {}, function(er, is8) {
22465
+ core(path5, options || {}, function(er, is9) {
22466
22466
  if (er) {
22467
22467
  if (er.code === "EACCES" || options && options.ignoreErrors) {
22468
22468
  er = null;
22469
- is8 = false;
22469
+ is9 = false;
22470
22470
  }
22471
22471
  }
22472
- cb(er, is8);
22472
+ cb(er, is9);
22473
22473
  });
22474
22474
  }
22475
22475
  function sync2(path5, options) {
@@ -22532,8 +22532,8 @@ var require_lib = __commonJS({
22532
22532
  const p2 = getPathPart(envPart, cmd);
22533
22533
  for (const ext2 of pathExt) {
22534
22534
  const withExt = p2 + ext2;
22535
- const is8 = await isexe(withExt, { pathExt: pathExtExe, ignoreErrors: true });
22536
- if (is8) {
22535
+ const is9 = await isexe(withExt, { pathExt: pathExtExe, ignoreErrors: true });
22536
+ if (is9) {
22537
22537
  if (!opt.all) {
22538
22538
  return withExt;
22539
22539
  }
@@ -22556,8 +22556,8 @@ var require_lib = __commonJS({
22556
22556
  const p2 = getPathPart(pathEnvPart, cmd);
22557
22557
  for (const ext2 of pathExt) {
22558
22558
  const withExt = p2 + ext2;
22559
- const is8 = isexe.sync(withExt, { pathExt: pathExtExe, ignoreErrors: true });
22560
- if (is8) {
22559
+ const is9 = isexe.sync(withExt, { pathExt: pathExtExe, ignoreErrors: true });
22560
+ if (is9) {
22561
22561
  if (!opt.all) {
22562
22562
  return withExt;
22563
22563
  }
@@ -60336,9 +60336,12 @@ __export(studio_exports, {
60336
60336
  drizzleForMySQL: () => drizzleForMySQL,
60337
60337
  drizzleForPostgres: () => drizzleForPostgres,
60338
60338
  drizzleForSQLite: () => drizzleForSQLite,
60339
+ prepareMySqlSchema: () => prepareMySqlSchema,
60340
+ preparePgSchema: () => preparePgSchema,
60341
+ prepareSQLiteSchema: () => prepareSQLiteSchema,
60339
60342
  prepareServer: () => prepareServer
60340
60343
  });
60341
- var import_node_https, drizzleForPostgres, drizzleForMySQL, prepareParams, drizzleForSQLite, init, proxySchema, schema4, jsonStringify, prepareServer;
60344
+ var import_node_https, import_pg_core4, import_drizzle_orm8, import_mysql_core4, import_sqlite_core3, preparePgSchema, prepareMySqlSchema, prepareSQLiteSchema, getCustomDefaults, drizzleForPostgres, drizzleForMySQL, prepareParams, drizzleForSQLite, init, proxySchema, defaultsSchema, schema4, jsonStringify, prepareServer;
60342
60345
  var init_studio = __esm({
60343
60346
  "src/serializer/studio.ts"() {
60344
60347
  init_dist();
@@ -60350,7 +60353,110 @@ var init_studio = __esm({
60350
60353
  init_lib();
60351
60354
  init_utils3();
60352
60355
  init_global();
60353
- drizzleForPostgres = async (connectionConfig) => {
60356
+ init_serializer();
60357
+ import_pg_core4 = require("drizzle-orm/pg-core");
60358
+ import_drizzle_orm8 = require("drizzle-orm");
60359
+ init_utils();
60360
+ import_mysql_core4 = require("drizzle-orm/mysql-core");
60361
+ import_sqlite_core3 = require("drizzle-orm/sqlite-core");
60362
+ preparePgSchema = async (path5) => {
60363
+ const imports = prepareFilenames(path5);
60364
+ const pgSchema3 = {};
60365
+ const relations4 = {};
60366
+ const { unregister } = await safeRegister();
60367
+ for (let i = 0; i < imports.length; i++) {
60368
+ const it = imports[i];
60369
+ const i0 = require(`${it}`);
60370
+ const i0values = Object.entries(i0);
60371
+ i0values.forEach(([k, t]) => {
60372
+ if ((0, import_drizzle_orm8.is)(t, import_pg_core4.PgTable)) {
60373
+ const schema5 = (0, import_pg_core4.getTableConfig)(t).schema || "public";
60374
+ pgSchema3[schema5] = pgSchema3[schema5] || {};
60375
+ pgSchema3[schema5][k] = t;
60376
+ }
60377
+ if ((0, import_drizzle_orm8.is)(t, import_drizzle_orm8.Relations)) {
60378
+ relations4[k] = t;
60379
+ }
60380
+ });
60381
+ }
60382
+ unregister();
60383
+ return { schema: pgSchema3, relations: relations4 };
60384
+ };
60385
+ prepareMySqlSchema = async (path5) => {
60386
+ const imports = prepareFilenames(path5);
60387
+ const mysqlSchema5 = {
60388
+ public: {}
60389
+ };
60390
+ const relations4 = {};
60391
+ const { unregister } = await safeRegister();
60392
+ for (let i = 0; i < imports.length; i++) {
60393
+ const it = imports[i];
60394
+ const i0 = require(`${it}`);
60395
+ const i0values = Object.entries(i0);
60396
+ i0values.forEach(([k, t]) => {
60397
+ if ((0, import_drizzle_orm8.is)(t, import_mysql_core4.MySqlTable)) {
60398
+ const schema5 = (0, import_mysql_core4.getTableConfig)(t).schema || "public";
60399
+ mysqlSchema5[schema5][k] = t;
60400
+ }
60401
+ if ((0, import_drizzle_orm8.is)(t, import_drizzle_orm8.Relations)) {
60402
+ relations4[k] = t;
60403
+ }
60404
+ });
60405
+ }
60406
+ unregister();
60407
+ return { schema: mysqlSchema5, relations: relations4 };
60408
+ };
60409
+ prepareSQLiteSchema = async (path5) => {
60410
+ const imports = prepareFilenames(path5);
60411
+ const sqliteSchema3 = {
60412
+ public: {}
60413
+ };
60414
+ const relations4 = {};
60415
+ const { unregister } = await safeRegister();
60416
+ for (let i = 0; i < imports.length; i++) {
60417
+ const it = imports[i];
60418
+ const i0 = require(`${it}`);
60419
+ const i0values = Object.entries(i0);
60420
+ i0values.forEach(([k, t]) => {
60421
+ if ((0, import_drizzle_orm8.is)(t, import_sqlite_core3.SQLiteTable)) {
60422
+ const schema5 = "public";
60423
+ sqliteSchema3[schema5][k] = t;
60424
+ }
60425
+ if ((0, import_drizzle_orm8.is)(t, import_drizzle_orm8.Relations)) {
60426
+ relations4[k] = t;
60427
+ }
60428
+ });
60429
+ }
60430
+ unregister();
60431
+ return { schema: sqliteSchema3, relations: relations4 };
60432
+ };
60433
+ getCustomDefaults = (schema5) => {
60434
+ const customDefaults = [];
60435
+ Object.entries(schema5).map(([schema6, tables]) => {
60436
+ Object.entries(tables).map(([, table4]) => {
60437
+ let tableConfig;
60438
+ if ((0, import_drizzle_orm8.is)(table4, import_pg_core4.PgTable)) {
60439
+ tableConfig = (0, import_pg_core4.getTableConfig)(table4);
60440
+ } else if ((0, import_drizzle_orm8.is)(table4, import_mysql_core4.MySqlTable)) {
60441
+ tableConfig = (0, import_mysql_core4.getTableConfig)(table4);
60442
+ } else {
60443
+ tableConfig = (0, import_sqlite_core3.getTableConfig)(table4);
60444
+ }
60445
+ tableConfig.columns.map((column7) => {
60446
+ if (column7.defaultFn) {
60447
+ customDefaults.push({
60448
+ schema: schema6,
60449
+ table: tableConfig.name,
60450
+ column: column7.name,
60451
+ func: column7.defaultFn
60452
+ });
60453
+ }
60454
+ });
60455
+ });
60456
+ });
60457
+ return customDefaults;
60458
+ };
60459
+ drizzleForPostgres = async (connectionConfig, pgSchema3, relations4) => {
60354
60460
  assertPackages("pg");
60355
60461
  const pg = await Promise.resolve().then(() => __toESM(require_lib3()));
60356
60462
  const client = new pg.default.Pool(connectionConfig.dbCredentials);
@@ -60362,12 +60468,14 @@ var init_studio = __esm({
60362
60468
  });
60363
60469
  return result.rows;
60364
60470
  };
60471
+ const customDefaults = getCustomDefaults(pgSchema3);
60365
60472
  return {
60366
60473
  dialect: "pg",
60367
- proxy
60474
+ proxy,
60475
+ customDefaults
60368
60476
  };
60369
60477
  };
60370
- drizzleForMySQL = async (config) => {
60478
+ drizzleForMySQL = async (config, mysqlSchema5, relations4) => {
60371
60479
  assertPackages("mysql2");
60372
60480
  const { createPool } = await Promise.resolve().then(() => __toESM(require_promise()));
60373
60481
  const client = createPool({ ...config.dbCredentials, connectionLimit: 1 });
@@ -60379,9 +60487,11 @@ var init_studio = __esm({
60379
60487
  });
60380
60488
  return result[0];
60381
60489
  };
60490
+ const customDefaults = getCustomDefaults(mysqlSchema5);
60382
60491
  return {
60383
60492
  dialect: "mysql",
60384
- proxy
60493
+ proxy,
60494
+ customDefaults
60385
60495
  };
60386
60496
  };
60387
60497
  prepareParams = (params) => {
@@ -60392,15 +60502,17 @@ var init_studio = __esm({
60392
60502
  return param;
60393
60503
  });
60394
60504
  };
60395
- drizzleForSQLite = async (config) => {
60505
+ drizzleForSQLite = async (config, sqliteSchema3, relations4) => {
60396
60506
  const { driver: driver2, dbCredentials } = config;
60507
+ const customDefaults = getCustomDefaults(sqliteSchema3);
60397
60508
  if (driver2 === "d1") {
60398
60509
  const proxy = async (params) => {
60399
60510
  throw new Error("Proxy is not implemented for D1");
60400
60511
  };
60401
60512
  return {
60402
60513
  dialect: "sqlite",
60403
- proxy
60514
+ proxy,
60515
+ customDefaults
60404
60516
  };
60405
60517
  }
60406
60518
  if (driver2 === "better-sqlite") {
@@ -60416,7 +60528,8 @@ var init_studio = __esm({
60416
60528
  };
60417
60529
  return {
60418
60530
  dialect: "sqlite",
60419
- proxy
60531
+ proxy,
60532
+ customDefaults
60420
60533
  };
60421
60534
  }
60422
60535
  if (driver2 === "libsql" || driver2 === "turso") {
@@ -60437,7 +60550,8 @@ var init_studio = __esm({
60437
60550
  };
60438
60551
  return {
60439
60552
  dialect: "sqlite",
60440
- proxy
60553
+ proxy,
60554
+ customDefaults
60441
60555
  };
60442
60556
  }
60443
60557
  assertUnreachable(driver2);
@@ -60454,9 +60568,18 @@ var init_studio = __esm({
60454
60568
  method: mod.union([mod.literal("values"), mod.literal("get"), mod.literal("all"), mod.literal("run"), mod.literal("execute")])
60455
60569
  })
60456
60570
  });
60571
+ defaultsSchema = mod.object({
60572
+ type: mod.literal("defaults"),
60573
+ data: mod.array(mod.object({
60574
+ schema: mod.string(),
60575
+ table: mod.string(),
60576
+ column: mod.string()
60577
+ })).min(1)
60578
+ });
60457
60579
  schema4 = mod.union([
60458
60580
  init,
60459
- proxySchema
60581
+ proxySchema,
60582
+ defaultsSchema
60460
60583
  ]);
60461
60584
  SuperJSON.registerCustom(
60462
60585
  {
@@ -60479,7 +60602,7 @@ var init_studio = __esm({
60479
60602
  return value;
60480
60603
  });
60481
60604
  };
60482
- prepareServer = async ({ dialect: dialect6, proxy }, app) => {
60605
+ prepareServer = async ({ dialect: dialect6, proxy, customDefaults }, app) => {
60483
60606
  app = app !== void 0 ? app : new Hono2();
60484
60607
  app.use(cors());
60485
60608
  app.onError((err2, ctx) => {
@@ -60493,7 +60616,12 @@ var init_studio = __esm({
60493
60616
  const body = c.req.valid("json");
60494
60617
  const { type } = body;
60495
60618
  if (type === "init") {
60496
- return c.json({ version: "4", dialect: dialect6 });
60619
+ const preparedDefaults = customDefaults.map((d) => ({
60620
+ schema: d.schema,
60621
+ table: d.table,
60622
+ column: d.column
60623
+ }));
60624
+ return c.json({ version: "5", dialect: dialect6, customDefaults: preparedDefaults });
60497
60625
  }
60498
60626
  if (type === "proxy") {
60499
60627
  const { sql: sql2, params, mode, method } = body.data;
@@ -60505,6 +60633,23 @@ var init_studio = __esm({
60505
60633
  });
60506
60634
  return c.json(JSON.parse(jsonStringify(result)));
60507
60635
  }
60636
+ if (type === "defaults") {
60637
+ const columns = body.data;
60638
+ const result = columns.map((column7) => {
60639
+ const found = customDefaults.find((d) => {
60640
+ return d.schema === column7.schema && d.table === column7.table && d.column === column7.column;
60641
+ });
60642
+ if (!found) {
60643
+ throw new Error(`Custom default not found for ${column7.schema}.${column7.table}.${column7.column}`);
60644
+ }
60645
+ const value = found.func();
60646
+ return {
60647
+ ...column7,
60648
+ value
60649
+ };
60650
+ });
60651
+ return c.json(JSON.parse(jsonStringify(result)));
60652
+ }
60508
60653
  throw new Error(`Unknown type: ${type}`);
60509
60654
  });
60510
60655
  return {
@@ -62371,10 +62516,10 @@ __export(drivers_exports, {
62371
62516
  PgPostgres: () => PgPostgres,
62372
62517
  TursoSqlite: () => TursoSqlite
62373
62518
  });
62374
- var import_drizzle_orm8, DrizzleDbClient, DrizzleORMPgClient, DrizzleORMMySQLClient, DrizzleORMSQLiteClient, BetterSqlite, MySQL2Client, TursoSqlite, PgPostgres;
62519
+ var import_drizzle_orm9, DrizzleDbClient, DrizzleORMPgClient, DrizzleORMMySQLClient, DrizzleORMSQLiteClient, BetterSqlite, MySQL2Client, TursoSqlite, PgPostgres;
62375
62520
  var init_drivers = __esm({
62376
62521
  "src/drivers/index.ts"() {
62377
- import_drizzle_orm8 = require("drizzle-orm");
62522
+ import_drizzle_orm9 = require("drizzle-orm");
62378
62523
  DrizzleDbClient = class {
62379
62524
  constructor(db) {
62380
62525
  this.db = db;
@@ -62382,30 +62527,30 @@ var init_drivers = __esm({
62382
62527
  };
62383
62528
  DrizzleORMPgClient = class extends DrizzleDbClient {
62384
62529
  async query(query, values) {
62385
- const res = await this.db.execute(import_drizzle_orm8.sql.raw(query));
62530
+ const res = await this.db.execute(import_drizzle_orm9.sql.raw(query));
62386
62531
  return res.rows;
62387
62532
  }
62388
62533
  async run(query) {
62389
- const res = await this.db.execute(import_drizzle_orm8.sql.raw(query));
62534
+ const res = await this.db.execute(import_drizzle_orm9.sql.raw(query));
62390
62535
  return res.rows;
62391
62536
  }
62392
62537
  };
62393
62538
  DrizzleORMMySQLClient = class extends DrizzleDbClient {
62394
62539
  async query(query, values) {
62395
- const res = await this.db.execute(import_drizzle_orm8.sql.raw(query));
62540
+ const res = await this.db.execute(import_drizzle_orm9.sql.raw(query));
62396
62541
  return res[0];
62397
62542
  }
62398
62543
  async run(query) {
62399
- await this.db.execute(import_drizzle_orm8.sql.raw(query));
62544
+ await this.db.execute(import_drizzle_orm9.sql.raw(query));
62400
62545
  }
62401
62546
  };
62402
62547
  DrizzleORMSQLiteClient = class extends DrizzleDbClient {
62403
62548
  async query(query, values) {
62404
- const res = this.db.all(import_drizzle_orm8.sql.raw(query));
62549
+ const res = this.db.all(import_drizzle_orm9.sql.raw(query));
62405
62550
  return res;
62406
62551
  }
62407
62552
  async run(query) {
62408
- this.db.run(import_drizzle_orm8.sql.raw(query));
62553
+ this.db.run(import_drizzle_orm9.sql.raw(query));
62409
62554
  }
62410
62555
  };
62411
62556
  BetterSqlite = class extends DrizzleDbClient {
@@ -62560,10 +62705,10 @@ var init_pgConnect = __esm({
62560
62705
  });
62561
62706
 
62562
62707
  // src/introspect-pg.ts
62563
- var import_drizzle_orm9, import_relations, pgImportsList, objToStatement22, timeConfig2, possibleIntervals, intervalStrToObj, intervalConfig, importsPatch2, relations2, withCasing, schemaToTypeScript2, isCyclic2, isSelf2, column5, dimensionsInArray, createTableColumns2, createTableIndexes2, createTablePKs2, createTableUniques2, createTableFKs2;
62708
+ var import_drizzle_orm10, import_relations, pgImportsList, objToStatement22, timeConfig2, possibleIntervals, intervalStrToObj, intervalConfig, importsPatch2, relations2, withCasing, schemaToTypeScript2, isCyclic2, isSelf2, column5, dimensionsInArray, createTableColumns2, createTableIndexes2, createTablePKs2, createTableUniques2, createTableFKs2;
62564
62709
  var init_introspect_pg = __esm({
62565
62710
  "src/introspect-pg.ts"() {
62566
- import_drizzle_orm9 = require("drizzle-orm");
62711
+ import_drizzle_orm10 = require("drizzle-orm");
62567
62712
  import_relations = require("drizzle-orm/relations");
62568
62713
  init_utils4();
62569
62714
  init_pgSerializer();
@@ -63745,7 +63890,7 @@ init_source();
63745
63890
  // package.json
63746
63891
  var package_default = {
63747
63892
  name: "drizzle-kit",
63748
- version: "0.20.16",
63893
+ version: "0.20.17",
63749
63894
  repository: "https://github.com/drizzle-team/drizzle-kit-mirror",
63750
63895
  author: "Drizzle Team",
63751
63896
  license: "MIT",
@@ -66550,22 +66695,34 @@ var studioCommand = new import_commander.Command("studio").option("--port <port>
66550
66695
  const drizzleConfig = await validateStudio2(options);
66551
66696
  const {
66552
66697
  drizzleForPostgres: drizzleForPostgres2,
66698
+ preparePgSchema: preparePgSchema2,
66699
+ prepareMySqlSchema: prepareMySqlSchema2,
66553
66700
  drizzleForMySQL: drizzleForMySQL2,
66701
+ prepareSQLiteSchema: prepareSQLiteSchema2,
66554
66702
  drizzleForSQLite: drizzleForSQLite2
66555
66703
  } = await Promise.resolve().then(() => (init_studio(), studio_exports));
66556
66704
  const { driver: driver2, schema: schemaPath } = drizzleConfig;
66557
66705
  let setup;
66558
66706
  if (driver2 === "pg") {
66707
+ const { schema: schema5, relations: relations4 } = await preparePgSchema2(schemaPath);
66559
66708
  setup = await drizzleForPostgres2(
66560
- drizzleConfig
66709
+ drizzleConfig,
66710
+ schema5,
66711
+ relations4
66561
66712
  );
66562
66713
  } else if (driver2 === "mysql2") {
66714
+ const { schema: schema5, relations: relations4 } = await prepareMySqlSchema2(schemaPath);
66563
66715
  setup = await drizzleForMySQL2(
66564
- drizzleConfig
66716
+ drizzleConfig,
66717
+ schema5,
66718
+ relations4
66565
66719
  );
66566
66720
  } else if (driver2 === "better-sqlite" || driver2 === "d1" || driver2 === "libsql" || driver2 === "turso") {
66721
+ const { schema: schema5, relations: relations4 } = await prepareSQLiteSchema2(schemaPath);
66567
66722
  setup = await drizzleForSQLite2(
66568
- drizzleConfig
66723
+ drizzleConfig,
66724
+ schema5,
66725
+ relations4
66569
66726
  );
66570
66727
  } else {
66571
66728
  assertUnreachable(driver2);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-kit",
3
- "version": "0.20.16",
3
+ "version": "0.20.17",
4
4
  "repository": "https://github.com/drizzle-team/drizzle-kit-mirror",
5
5
  "author": "Drizzle Team",
6
6
  "license": "MIT",