gummy-cli 0.0.81 → 0.0.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/actions-IJZcI83n.mjs +2 -0
  2. package/dist/actions-IJZcI83n.mjs.map +1 -0
  3. package/dist/actions-hNkAFJIH.cjs +2 -0
  4. package/dist/actions-hNkAFJIH.cjs.map +1 -0
  5. package/dist/api-BlPtKSJ4.mjs +2 -0
  6. package/dist/api-BlPtKSJ4.mjs.map +1 -0
  7. package/dist/api-CUDbTgyj.mjs +2 -0
  8. package/dist/api-CUDbTgyj.mjs.map +1 -0
  9. package/dist/api-DW-cLEvI.cjs +2 -0
  10. package/dist/api-DW-cLEvI.cjs.map +1 -0
  11. package/dist/api-sEy5qKXe.cjs +2 -0
  12. package/dist/api-sEy5qKXe.cjs.map +1 -0
  13. package/dist/bin.cjs +7 -7
  14. package/dist/bin.cjs.map +1 -1
  15. package/dist/bin.d.cts +1 -1
  16. package/dist/bin.d.mts +1 -0
  17. package/dist/bin.mjs +42 -0
  18. package/dist/bin.mjs.map +1 -0
  19. package/dist/index.cjs +1 -2
  20. package/dist/index.d.cts +128 -124
  21. package/dist/index.d.cts.map +1 -0
  22. package/dist/index.d.mts +170 -0
  23. package/dist/index.d.mts.map +1 -0
  24. package/dist/index.mjs +1 -0
  25. package/dist/lexer-DQCqS3nf-BnPK06fE.mjs +4 -0
  26. package/dist/lexer-DQCqS3nf-BnPK06fE.mjs.map +1 -0
  27. package/dist/lexer-DQCqS3nf-VrdI7vJk.cjs +4 -0
  28. package/dist/lexer-DQCqS3nf-VrdI7vJk.cjs.map +1 -0
  29. package/dist/require-DQxpCAr4-BGIlzMGx.mjs +92 -0
  30. package/dist/require-DQxpCAr4-BGIlzMGx.mjs.map +1 -0
  31. package/dist/require-DQxpCAr4-eA6ylxL0.cjs +92 -0
  32. package/dist/require-DQxpCAr4-eA6ylxL0.cjs.map +1 -0
  33. package/package.json +25 -15
  34. package/dist/bin.d.ts +0 -1
  35. package/dist/bin.js +0 -42
  36. package/dist/bin.js.map +0 -1
  37. package/dist/index.cjs.map +0 -1
  38. package/dist/index.d.ts +0 -166
  39. package/dist/index.js +0 -2
  40. package/dist/index.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import{loadConfig as e}from"c12";import{sql as t}from"kysely";const n=async()=>(await e({name:`gummy`,rcFile:!1,globalRc:!1,dotenv:!1,packageJson:!1})).config,r=e=>e;function i(e,t){if(e.length!==t.length)return!1;let n=[...e].sort(),r=[...t].sort();return n.every((e,t)=>e===r[t])}var a=class{};function o(e){switch(e.dataType){case`BigInteger`:return`bigint`;case`BigSerial`:return`bigserial`;case`Boolean`:return`boolean`;case`Date`:return`date`;case`Decimal`:return`decimal`;case`Email`:case`Varchar`:return e.length?`varchar(${e.length})`:`varchar`;case`Integer`:return`integer`;case`Serial`:return`serial`;case`Text`:return`text`;case`Timestamp`:return`timestamp`;case`UUID`:return`uuid`;case`Json`:return`json`;default:throw Error(`Unsupported ColumnType: ${e.dataType}`)}}function s(e,t){return t.isPrimaryKey&&(e=e.primaryKey()),t.notNull&&(e=e.notNull()),t.isUnique&&(e=e.unique()),t.hasDbDefault&&t.dbDefault!==void 0&&(e=e.defaultTo(t.dbDefault)),e}function c(e){return[...e].sort()}function l(e,t){return`${e}_${t}_fk`}function u(e,t){return`${e}_${c(t).join(`_`)}_unique`}function d(e,t){return`${e}_${c(t).join(`_`)}_idx`}async function f(e,t){for(let n of e)await n.execute(t)}var p=class extends a{constructor(e,t,n){super(),this.table=e,this.columns=t,this.ifNotExists=n?.ifNotExists??!1,this.indexes=n?.indexes,this.uniqueConstraints=n?.uniqueConstraints}applyToState(e){e.tables[this.table]||(e.tables[this.table]={columns:{}});for(let t of this.columns)e.tables[this.table].columns[t.name]={...t};this.indexes&&(e.tables[this.table].indexes=this.indexes),this.uniqueConstraints&&(e.tables[this.table].uniqueConstraints=this.uniqueConstraints)}async execute(e){let t=e.schema.createTable(this.table);this.ifNotExists&&(t=t.ifNotExists());for(let e of this.columns){let n=o(e);t=t.addColumn(e.name,n,t=>s(t,e))}if(this.uniqueConstraints)for(let e of this.uniqueConstraints){let n=u(this.table,e);t=t.addUniqueConstraint(n,e)}if(await t.execute(),this.indexes)for(let t of this.indexes)await new b(t.table,t.columns).execute(e)}toCode(){return`new CreateTableAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)}, ${JSON.stringify({ifNotExists:this.ifNotExists,indexes:this.indexes,uniqueConstraints:this.uniqueConstraints})})`}},m=class extends a{constructor(e,t=!1){super(),this.table=e,this.ifExists=t}applyToState(e){delete e.tables[this.table]}async execute(e){let t=e.schema.dropTable(this.table);this.ifExists&&(t=t.ifExists()),await t.execute()}toCode(){return`new DropTableAction(${JSON.stringify(this.table)}, ${this.ifExists})`}},h=class extends a{constructor(e,t){super(),this.table=e,this.column=t}applyToState(e){e.tables[this.table]||(e.tables[this.table]={columns:{}}),e.tables[this.table].columns[this.column.name]={...this.column}}async execute(e){let t=o(this.column);await e.schema.alterTable(this.table).addColumn(this.column.name,t,e=>s(e,this.column)).execute()}toCode(){return`new AddColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.column)})`}},g=class extends a{constructor(e,t){super(),this.table=e,this.columnName=t}applyToState(e){e.tables[this.table]&&delete e.tables[this.table].columns[this.columnName]}async execute(e){await e.schema.alterTable(this.table).dropColumn(this.columnName).execute()}toCode(){return`new DropColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)})`}},_=class extends a{constructor(e,t,n){super(),this.table=e,this.columnName=t,this.changes=n}applyToState(e){if(e.tables[this.table]&&e.tables[this.table].columns[this.columnName]){let t=e.tables[this.table].columns[this.columnName];this.changes.dataType!==void 0&&(t.dataType=this.changes.dataType),this.changes.length!==void 0&&(t.length=this.changes.length),this.changes.isPrimaryKey!==void 0&&(t.isPrimaryKey=this.changes.isPrimaryKey),this.changes.notNull!==void 0&&(t.notNull=this.changes.notNull),this.changes.hasDbDefault!==void 0&&(t.hasDbDefault=this.changes.hasDbDefault,t.dbDefault=this.changes.dbDefault),this.changes.isUnique!==void 0&&(t.isUnique=this.changes.isUnique)}}async execute(e){if((this.changes.dataType!==void 0||this.changes.length!==void 0)&&await e.schema.alterTable(this.table).alterColumn(this.columnName,e=>e.setDataType(o({dataType:this.changes.dataType,length:this.changes.length}))).execute(),this.changes.notNull!==void 0&&await e.schema.alterTable(this.table).alterColumn(this.columnName,e=>this.changes.notNull?e.setNotNull():e.dropNotNull()).execute(),this.changes.hasDbDefault!==void 0&&await e.schema.alterTable(this.table).alterColumn(this.columnName,e=>this.changes.hasDbDefault&&this.changes.dbDefault!==void 0?typeof this.changes.dbDefault==`string`&&this.changes.dbDefault.startsWith("sql`")?e.setDefault(t`${this.changes.dbDefault}`):e.setDefault(this.changes.dbDefault):e.dropDefault()).execute(),this.changes.isUnique!==void 0){let t=u(this.table,[this.columnName]);this.changes.isUnique?await e.schema.alterTable(this.table).addUniqueConstraint(t,[this.columnName]).execute():await e.schema.alterTable(this.table).dropConstraint(t).execute()}}toCode(){return`new AlterColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)}, ${JSON.stringify(this.changes)})`}},v=class extends a{constructor(e,t,n,r,i){super(),this.table=e,this.columnName=t,this.referencedTable=n,this.referencedColumn=r,this.constraintName=l(e,t),this.onDelete=i?.onDelete,this.onUpdate=i?.onUpdate}applyToState(e){e.tables[this.table]&&e.tables[this.table].columns[this.columnName]&&(e.tables[this.table].columns[this.columnName].references=`${this.referencedTable}.${this.referencedColumn}`,e.tables[this.table].columns[this.columnName].onDelete=this.onDelete,e.tables[this.table].columns[this.columnName].onUpdate=this.onUpdate)}async execute(e){let t=e.schema.alterTable(this.table).addForeignKeyConstraint(this.constraintName,[this.columnName],this.referencedTable,[this.referencedColumn]);this.onDelete&&(t=t.onDelete(this.onDelete)),this.onUpdate&&(t=t.onUpdate(this.onUpdate)),await t.execute()}toCode(){return`new AddForeignKeyConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)}, ${JSON.stringify(this.referencedTable)}, ${JSON.stringify(this.referencedColumn)}, ${JSON.stringify({onDelete:this.onDelete,onUpdate:this.onUpdate})})`}},y=class extends a{constructor(e,t){super(),this.table=e,this.columnName=t,this.constraintName=l(e,t)}applyToState(e){if(e.tables[this.table]){let t=e.tables[this.table].columns[this.columnName];t?.references&&(t.references=void 0,t.onDelete=void 0,t.onUpdate=void 0)}}async execute(e){await e.schema.alterTable(this.table).dropConstraint(this.constraintName).execute()}toCode(){return`new DropForeignKeyConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)})`}},b=class extends a{constructor(e,t){super(),this.table=e,this.columns=t,this.indexName=d(e,t)}applyToState(e){e.tables[this.table].indexes||(e.tables[this.table].indexes=[]),e.tables[this.table].indexes?.push({table:this.table,columns:this.columns})}async execute(e){await e.schema.createIndex(this.indexName).on(this.table).columns(this.columns).execute()}toCode(){return`new CreateIndexAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}},x=class extends a{constructor(e,t){super(),this.table=e,this.columns=t,this.indexName=d(e,t)}applyToState(e){e.tables[this.table].indexes&&(e.tables[this.table].indexes=e.tables[this.table].indexes?.filter(e=>!i(e.columns,this.columns)))}async execute(e){await e.schema.dropIndex(this.indexName).execute()}toCode(){return`new DropIndexAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}},S=class extends a{constructor(e,t){super(),this.table=e,this.columns=t,this.constraintName=u(e,t)}applyToState(e){e.tables[this.table].uniqueConstraints||(e.tables[this.table].uniqueConstraints=[]),e.tables[this.table].uniqueConstraints?.push(this.columns)}async execute(e){await e.schema.alterTable(this.table).addUniqueConstraint(this.constraintName,this.columns).execute()}toCode(){return`new AddUniqueConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}},C=class extends a{constructor(e,t){super(),this.table=e,this.columns=t,this.constraintName=u(e,t)}applyToState(e){e.tables[this.table].uniqueConstraints&&(e.tables[this.table].uniqueConstraints=e.tables[this.table].uniqueConstraints?.filter(e=>u(this.table,e)!==this.constraintName))}async execute(e){await e.schema.alterTable(this.table).dropConstraint(this.constraintName).execute()}toCode(){return`new DropUniqueConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}};export{b as a,y as c,C as d,a as f,n as g,r as h,_ as i,x as l,i as m,v as n,p as o,f as p,S as r,g as s,h as t,m as u};
2
+ //# sourceMappingURL=actions-IJZcI83n.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions-IJZcI83n.mjs","names":[],"sources":["../src/config.ts","../src/utils.ts","../src/migrate/actions.ts"],"sourcesContent":["import { loadConfig } from 'c12'\n\nexport type Config = {\n modelsDir?: string\n migrationsDir?: string\n}\n\nexport const getConfig = async () => {\n const loadedConfig = await loadConfig<Config>({\n name: 'gummy',\n rcFile: false,\n globalRc: false,\n dotenv: false,\n packageJson: false,\n })\n\n return loadedConfig.config\n}\n\nexport const defineConfig = (input: Config): Config => input\n","export function areArrayEqual(a: string[], b: string[]): boolean {\n if (a.length !== b.length) return false\n const sortedA = [...a].sort()\n const sortedB = [...b].sort()\n return sortedA.every((value, index) => value === sortedB[index])\n}\n","import { type ColumnDefinitionBuilder, type Kysely, sql } from 'kysely'\nimport { areArrayEqual } from '../utils.js'\nimport type { ColumnDefinition, ColumnDefinitionDiff, DatabaseState, IndexDefinition } from './types.js'\n\nexport abstract class MigrationAction {\n abstract applyToState(state: DatabaseState): void\n abstract execute(db: Kysely<any>): Promise<void>\n abstract toCode(): string\n}\n\n// Helper functions\nfunction mapColumnTypeToDataType(columnDef: ColumnDefinition): any {\n switch (columnDef.dataType) {\n case 'BigInteger':\n return 'bigint'\n case 'BigSerial':\n return 'bigserial'\n case 'Boolean':\n return 'boolean'\n case 'Date':\n return 'date'\n case 'Decimal':\n return 'decimal'\n case 'Email':\n case 'Varchar':\n return columnDef.length ? `varchar(${columnDef.length})` : 'varchar'\n case 'Integer':\n return 'integer'\n case 'Serial':\n return 'serial'\n case 'Text':\n return 'text'\n case 'Timestamp':\n return 'timestamp'\n case 'UUID':\n return 'uuid'\n case 'Json':\n return 'json'\n default:\n throw new Error(`Unsupported ColumnType: ${columnDef.dataType}`)\n }\n}\n\nfunction buildCol(col: ColumnDefinitionBuilder, columnDef: ColumnDefinition): ColumnDefinitionBuilder {\n if (columnDef.isPrimaryKey) {\n col = col.primaryKey()\n }\n if (columnDef.notNull) {\n col = col.notNull()\n }\n if (columnDef.isUnique) {\n col = col.unique()\n }\n if (columnDef.hasDbDefault && columnDef.dbDefault !== undefined) {\n col = col.defaultTo(columnDef.dbDefault)\n }\n // Foreign key handling is done separately\n return col\n}\n\n// Helper functions for constraint names\n\nfunction sortColumns(columns: string[]): string[] {\n return [...columns].sort()\n}\n\nexport function generateForeignKeyConstraintName(tableName: string, columnName: string): string {\n return `${tableName}_${columnName}_fk`\n}\n\nexport function generateUniqueConstraintName(tableName: string, columns: string[]): string {\n const sortedColumns = sortColumns(columns)\n return `${tableName}_${sortedColumns.join('_')}_unique`\n}\n\nexport function generateIndexName(tableName: string, columns: string[]): string {\n const sortedColumns = sortColumns(columns)\n return `${tableName}_${sortedColumns.join('_')}_idx`\n}\n\n// executeActions function\nexport async function executeActions(actions: MigrationAction[], db: Kysely<any>): Promise<void> {\n for (const action of actions) {\n await action.execute(db)\n }\n}\n\n// MigrationAction subclasses\n\nexport class CreateTableAction extends MigrationAction {\n table: string\n columns: ColumnDefinition[]\n ifNotExists: boolean\n indexes?: IndexDefinition[]\n uniqueConstraints?: string[][] // Array of column name arrays\n\n constructor(\n tableName: string,\n columns: ColumnDefinition[],\n options?: {\n ifNotExists?: boolean\n indexes?: IndexDefinition[]\n uniqueConstraints?: string[][]\n },\n ) {\n super()\n this.table = tableName\n this.columns = columns\n this.ifNotExists = options?.ifNotExists ?? false\n this.indexes = options?.indexes\n this.uniqueConstraints = options?.uniqueConstraints\n }\n\n applyToState(state: DatabaseState): void {\n if (!state.tables[this.table]) {\n state.tables[this.table] = { columns: {} }\n }\n for (const column of this.columns) {\n state.tables[this.table].columns[column.name] = { ...column }\n }\n if (this.indexes) {\n state.tables[this.table].indexes = this.indexes\n }\n if (this.uniqueConstraints) {\n state.tables[this.table].uniqueConstraints = this.uniqueConstraints\n }\n }\n\n async execute(db: Kysely<any>) {\n let builder = db.schema.createTable(this.table)\n if (this.ifNotExists) {\n builder = builder.ifNotExists()\n }\n for (const column of this.columns) {\n const dataType = mapColumnTypeToDataType(column)\n builder = builder.addColumn(column.name, dataType, (col) => buildCol(col, column))\n }\n // Add unique constraints\n if (this.uniqueConstraints) {\n for (const columns of this.uniqueConstraints) {\n const constraintName = generateUniqueConstraintName(this.table, columns)\n builder = builder.addUniqueConstraint(constraintName, columns as any)\n }\n }\n await builder.execute()\n\n // Create indexes\n if (this.indexes) {\n for (const index of this.indexes) {\n await new CreateIndexAction(index.table, index.columns).execute(db)\n }\n }\n }\n\n toCode(): string {\n return `new CreateTableAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)}, ${JSON.stringify({\n ifNotExists: this.ifNotExists,\n indexes: this.indexes,\n uniqueConstraints: this.uniqueConstraints,\n })})`\n }\n}\n\nexport class DropTableAction extends MigrationAction {\n table: string\n ifExists: boolean\n\n constructor(tableName: string, ifExists: boolean = false) {\n super()\n this.table = tableName\n this.ifExists = ifExists\n }\n\n applyToState(state: DatabaseState): void {\n delete state.tables[this.table]\n }\n\n async execute(db: Kysely<any>) {\n let builder = db.schema.dropTable(this.table)\n if (this.ifExists) {\n builder = builder.ifExists()\n }\n await builder.execute()\n }\n\n toCode(): string {\n return `new DropTableAction(${JSON.stringify(this.table)}, ${this.ifExists})`\n }\n}\n\nexport class AddColumnAction extends MigrationAction {\n table: string\n column: ColumnDefinition\n\n constructor(tableName: string, column: ColumnDefinition) {\n super()\n this.table = tableName\n this.column = column\n }\n\n applyToState(state: DatabaseState): void {\n if (!state.tables[this.table]) {\n state.tables[this.table] = { columns: {} }\n }\n state.tables[this.table].columns[this.column.name] = { ...this.column }\n }\n\n async execute(db: Kysely<any>) {\n const dataType = mapColumnTypeToDataType(this.column)\n await db.schema\n .alterTable(this.table)\n .addColumn(this.column.name, dataType, (col) => buildCol(col, this.column))\n .execute()\n }\n\n toCode(): string {\n return `new AddColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.column)})`\n }\n}\n\n// 4. DropColumnAction\nexport class DropColumnAction extends MigrationAction {\n table: string\n columnName: string\n\n constructor(tableName: string, columnName: string) {\n super()\n this.table = tableName\n this.columnName = columnName\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table]) {\n delete state.tables[this.table].columns[this.columnName]\n }\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.alterTable(this.table).dropColumn(this.columnName).execute()\n }\n\n toCode(): string {\n return `new DropColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)})`\n }\n}\n\nexport class AlterColumnAction extends MigrationAction {\n table: string\n columnName: string\n changes: ColumnDefinitionDiff\n\n constructor(tableName: string, columnName: string, changes: ColumnDefinitionDiff) {\n super()\n this.table = tableName\n this.columnName = columnName\n this.changes = changes\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table] && state.tables[this.table].columns[this.columnName]) {\n const column = state.tables[this.table].columns[this.columnName]\n if (this.changes.dataType !== undefined) {\n column.dataType = this.changes.dataType\n }\n if (this.changes.length !== undefined) {\n column.length = this.changes.length\n }\n if (this.changes.isPrimaryKey !== undefined) {\n column.isPrimaryKey = this.changes.isPrimaryKey\n }\n if (this.changes.notNull !== undefined) {\n column.notNull = this.changes.notNull\n }\n if (this.changes.hasDbDefault !== undefined) {\n column.hasDbDefault = this.changes.hasDbDefault\n column.dbDefault = this.changes.dbDefault\n }\n if (this.changes.isUnique !== undefined) {\n column.isUnique = this.changes.isUnique\n }\n }\n }\n\n async execute(db: Kysely<any>) {\n if (this.changes.dataType !== undefined || this.changes.length !== undefined) {\n await db.schema\n .alterTable(this.table)\n .alterColumn(this.columnName, (col) =>\n col.setDataType(\n mapColumnTypeToDataType({\n dataType: this.changes.dataType,\n length: this.changes.length,\n } as ColumnDefinition),\n ),\n )\n .execute()\n }\n\n if (this.changes.notNull !== undefined) {\n await db.schema\n .alterTable(this.table)\n .alterColumn(this.columnName, (col) => (this.changes.notNull ? col.setNotNull() : col.dropNotNull()))\n .execute()\n }\n\n if (this.changes.hasDbDefault !== undefined) {\n await db.schema\n .alterTable(this.table)\n .alterColumn(this.columnName, (col) => {\n if (this.changes.hasDbDefault && this.changes.dbDefault !== undefined) {\n if (typeof this.changes.dbDefault === 'string' && this.changes.dbDefault.startsWith('sql`')) {\n return col.setDefault(sql`${this.changes.dbDefault}`)\n } else {\n return col.setDefault(this.changes.dbDefault)\n }\n } else {\n return col.dropDefault()\n }\n })\n .execute()\n }\n\n if (this.changes.isUnique !== undefined) {\n const constraintName = generateUniqueConstraintName(this.table, [this.columnName])\n if (this.changes.isUnique) {\n await db.schema.alterTable(this.table).addUniqueConstraint(constraintName, [this.columnName]).execute()\n } else {\n await db.schema.alterTable(this.table).dropConstraint(constraintName).execute()\n }\n }\n }\n\n toCode(): string {\n return `new AlterColumnAction(${JSON.stringify(\n this.table,\n )}, ${JSON.stringify(this.columnName)}, ${JSON.stringify(this.changes)})`\n }\n}\n\nexport class AddForeignKeyConstraintAction extends MigrationAction {\n table: string\n columnName: string\n referencedTable: string\n referencedColumn: string\n constraintName: string\n onDelete?: 'no action' | 'restrict' | 'cascade' | 'set null' | 'set default'\n onUpdate?: 'no action' | 'restrict' | 'cascade' | 'set null' | 'set default'\n\n constructor(\n tableName: string,\n columnName: string,\n referencedTable: string,\n referencedColumn: string,\n options?: {\n onDelete?: 'no action' | 'restrict' | 'cascade' | 'set null' | 'set default'\n onUpdate?: 'no action' | 'restrict' | 'cascade' | 'set null' | 'set default'\n },\n ) {\n super()\n this.table = tableName\n this.columnName = columnName\n this.referencedTable = referencedTable\n this.referencedColumn = referencedColumn\n this.constraintName = generateForeignKeyConstraintName(tableName, columnName)\n this.onDelete = options?.onDelete\n this.onUpdate = options?.onUpdate\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table] && state.tables[this.table].columns[this.columnName]) {\n state.tables[this.table].columns[this.columnName].references = `${this.referencedTable}.${this.referencedColumn}`\n state.tables[this.table].columns[this.columnName].onDelete = this.onDelete\n state.tables[this.table].columns[this.columnName].onUpdate = this.onUpdate\n }\n }\n\n async execute(db: Kysely<any>) {\n let builder = db.schema\n .alterTable(this.table)\n .addForeignKeyConstraint(this.constraintName, [this.columnName], this.referencedTable, [this.referencedColumn])\n\n if (this.onDelete) {\n builder = builder.onDelete(this.onDelete)\n }\n if (this.onUpdate) {\n builder = builder.onUpdate(this.onUpdate)\n }\n\n await builder.execute()\n }\n\n toCode(): string {\n return `new AddForeignKeyConstraintAction(${JSON.stringify(\n this.table,\n )}, ${JSON.stringify(this.columnName)}, ${JSON.stringify(\n this.referencedTable,\n )}, ${JSON.stringify(this.referencedColumn)}, ${JSON.stringify({\n onDelete: this.onDelete,\n onUpdate: this.onUpdate,\n })})`\n }\n}\n\nexport class DropForeignKeyConstraintAction extends MigrationAction {\n table: string\n columnName: string\n constraintName: string\n\n constructor(tableName: string, columnName: string) {\n super()\n this.table = tableName\n this.columnName = columnName\n this.constraintName = generateForeignKeyConstraintName(tableName, columnName)\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table]) {\n const column = state.tables[this.table].columns[this.columnName]\n if (column?.references) {\n column.references = undefined\n column.onDelete = undefined\n column.onUpdate = undefined\n }\n }\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.alterTable(this.table).dropConstraint(this.constraintName).execute()\n }\n\n toCode(): string {\n return `new DropForeignKeyConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)})`\n }\n}\n\nexport class CreateIndexAction extends MigrationAction {\n table: string\n columns: string[]\n indexName: string\n\n constructor(table: string, columns: string[]) {\n super()\n this.table = table\n this.columns = columns\n this.indexName = generateIndexName(table, columns)\n }\n\n applyToState(state: DatabaseState): void {\n if (!state.tables[this.table].indexes) {\n state.tables[this.table].indexes = []\n }\n state.tables[this.table].indexes?.push({\n table: this.table,\n columns: this.columns,\n })\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.createIndex(this.indexName).on(this.table).columns(this.columns).execute()\n }\n\n toCode(): string {\n return `new CreateIndexAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`\n }\n}\n\nexport class DropIndexAction extends MigrationAction {\n table: string\n columns: string[]\n indexName: string\n\n constructor(table: string, columns: string[]) {\n super()\n this.table = table\n this.columns = columns\n this.indexName = generateIndexName(table, columns)\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table].indexes) {\n state.tables[this.table].indexes = state.tables[this.table].indexes?.filter(\n (idx) => !areArrayEqual(idx.columns, this.columns),\n )\n }\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.dropIndex(this.indexName).execute()\n }\n\n toCode(): string {\n return `new DropIndexAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`\n }\n}\n\nexport class AddUniqueConstraintAction extends MigrationAction {\n table: string\n columns: string[]\n constraintName: string\n\n constructor(tableName: string, columns: string[]) {\n super()\n this.table = tableName\n this.columns = columns\n this.constraintName = generateUniqueConstraintName(tableName, columns)\n }\n\n applyToState(state: DatabaseState): void {\n if (!state.tables[this.table].uniqueConstraints) {\n state.tables[this.table].uniqueConstraints = []\n }\n state.tables[this.table].uniqueConstraints?.push(this.columns)\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.alterTable(this.table).addUniqueConstraint(this.constraintName, this.columns).execute()\n }\n\n toCode(): string {\n return `new AddUniqueConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`\n }\n}\n\nexport class DropUniqueConstraintAction extends MigrationAction {\n table: string\n columns: string[]\n constraintName: string\n\n constructor(tableName: string, columns: string[]) {\n super()\n this.table = tableName\n this.columns = columns\n this.constraintName = generateUniqueConstraintName(tableName, columns)\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table].uniqueConstraints) {\n state.tables[this.table].uniqueConstraints = state.tables[this.table].uniqueConstraints?.filter(\n (cols) => generateUniqueConstraintName(this.table, cols) !== this.constraintName,\n )\n }\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.alterTable(this.table).dropConstraint(this.constraintName).execute()\n }\n\n toCode(): string {\n return `new DropUniqueConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ require(`./bin.cjs`);let e=require(`c12`),t=require(`kysely`);const n=async()=>(await(0,e.loadConfig)({name:`gummy`,rcFile:!1,globalRc:!1,dotenv:!1,packageJson:!1})).config,r=e=>e;function i(e,t){if(e.length!==t.length)return!1;let n=[...e].sort(),r=[...t].sort();return n.every((e,t)=>e===r[t])}var a=class{};function o(e){switch(e.dataType){case`BigInteger`:return`bigint`;case`BigSerial`:return`bigserial`;case`Boolean`:return`boolean`;case`Date`:return`date`;case`Decimal`:return`decimal`;case`Email`:case`Varchar`:return e.length?`varchar(${e.length})`:`varchar`;case`Integer`:return`integer`;case`Serial`:return`serial`;case`Text`:return`text`;case`Timestamp`:return`timestamp`;case`UUID`:return`uuid`;case`Json`:return`json`;default:throw Error(`Unsupported ColumnType: ${e.dataType}`)}}function s(e,t){return t.isPrimaryKey&&(e=e.primaryKey()),t.notNull&&(e=e.notNull()),t.isUnique&&(e=e.unique()),t.hasDbDefault&&t.dbDefault!==void 0&&(e=e.defaultTo(t.dbDefault)),e}function c(e){return[...e].sort()}function l(e,t){return`${e}_${t}_fk`}function u(e,t){return`${e}_${c(t).join(`_`)}_unique`}function d(e,t){return`${e}_${c(t).join(`_`)}_idx`}async function f(e,t){for(let n of e)await n.execute(t)}var p=class extends a{constructor(e,t,n){super(),this.table=e,this.columns=t,this.ifNotExists=n?.ifNotExists??!1,this.indexes=n?.indexes,this.uniqueConstraints=n?.uniqueConstraints}applyToState(e){e.tables[this.table]||(e.tables[this.table]={columns:{}});for(let t of this.columns)e.tables[this.table].columns[t.name]={...t};this.indexes&&(e.tables[this.table].indexes=this.indexes),this.uniqueConstraints&&(e.tables[this.table].uniqueConstraints=this.uniqueConstraints)}async execute(e){let t=e.schema.createTable(this.table);this.ifNotExists&&(t=t.ifNotExists());for(let e of this.columns){let n=o(e);t=t.addColumn(e.name,n,t=>s(t,e))}if(this.uniqueConstraints)for(let e of this.uniqueConstraints){let n=u(this.table,e);t=t.addUniqueConstraint(n,e)}if(await t.execute(),this.indexes)for(let t of this.indexes)await new b(t.table,t.columns).execute(e)}toCode(){return`new CreateTableAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)}, ${JSON.stringify({ifNotExists:this.ifNotExists,indexes:this.indexes,uniqueConstraints:this.uniqueConstraints})})`}},m=class extends a{constructor(e,t=!1){super(),this.table=e,this.ifExists=t}applyToState(e){delete e.tables[this.table]}async execute(e){let t=e.schema.dropTable(this.table);this.ifExists&&(t=t.ifExists()),await t.execute()}toCode(){return`new DropTableAction(${JSON.stringify(this.table)}, ${this.ifExists})`}},h=class extends a{constructor(e,t){super(),this.table=e,this.column=t}applyToState(e){e.tables[this.table]||(e.tables[this.table]={columns:{}}),e.tables[this.table].columns[this.column.name]={...this.column}}async execute(e){let t=o(this.column);await e.schema.alterTable(this.table).addColumn(this.column.name,t,e=>s(e,this.column)).execute()}toCode(){return`new AddColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.column)})`}},g=class extends a{constructor(e,t){super(),this.table=e,this.columnName=t}applyToState(e){e.tables[this.table]&&delete e.tables[this.table].columns[this.columnName]}async execute(e){await e.schema.alterTable(this.table).dropColumn(this.columnName).execute()}toCode(){return`new DropColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)})`}},_=class extends a{constructor(e,t,n){super(),this.table=e,this.columnName=t,this.changes=n}applyToState(e){if(e.tables[this.table]&&e.tables[this.table].columns[this.columnName]){let t=e.tables[this.table].columns[this.columnName];this.changes.dataType!==void 0&&(t.dataType=this.changes.dataType),this.changes.length!==void 0&&(t.length=this.changes.length),this.changes.isPrimaryKey!==void 0&&(t.isPrimaryKey=this.changes.isPrimaryKey),this.changes.notNull!==void 0&&(t.notNull=this.changes.notNull),this.changes.hasDbDefault!==void 0&&(t.hasDbDefault=this.changes.hasDbDefault,t.dbDefault=this.changes.dbDefault),this.changes.isUnique!==void 0&&(t.isUnique=this.changes.isUnique)}}async execute(e){if((this.changes.dataType!==void 0||this.changes.length!==void 0)&&await e.schema.alterTable(this.table).alterColumn(this.columnName,e=>e.setDataType(o({dataType:this.changes.dataType,length:this.changes.length}))).execute(),this.changes.notNull!==void 0&&await e.schema.alterTable(this.table).alterColumn(this.columnName,e=>this.changes.notNull?e.setNotNull():e.dropNotNull()).execute(),this.changes.hasDbDefault!==void 0&&await e.schema.alterTable(this.table).alterColumn(this.columnName,e=>this.changes.hasDbDefault&&this.changes.dbDefault!==void 0?typeof this.changes.dbDefault==`string`&&this.changes.dbDefault.startsWith("sql`")?e.setDefault(t.sql`${this.changes.dbDefault}`):e.setDefault(this.changes.dbDefault):e.dropDefault()).execute(),this.changes.isUnique!==void 0){let t=u(this.table,[this.columnName]);this.changes.isUnique?await e.schema.alterTable(this.table).addUniqueConstraint(t,[this.columnName]).execute():await e.schema.alterTable(this.table).dropConstraint(t).execute()}}toCode(){return`new AlterColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)}, ${JSON.stringify(this.changes)})`}},v=class extends a{constructor(e,t,n,r,i){super(),this.table=e,this.columnName=t,this.referencedTable=n,this.referencedColumn=r,this.constraintName=l(e,t),this.onDelete=i?.onDelete,this.onUpdate=i?.onUpdate}applyToState(e){e.tables[this.table]&&e.tables[this.table].columns[this.columnName]&&(e.tables[this.table].columns[this.columnName].references=`${this.referencedTable}.${this.referencedColumn}`,e.tables[this.table].columns[this.columnName].onDelete=this.onDelete,e.tables[this.table].columns[this.columnName].onUpdate=this.onUpdate)}async execute(e){let t=e.schema.alterTable(this.table).addForeignKeyConstraint(this.constraintName,[this.columnName],this.referencedTable,[this.referencedColumn]);this.onDelete&&(t=t.onDelete(this.onDelete)),this.onUpdate&&(t=t.onUpdate(this.onUpdate)),await t.execute()}toCode(){return`new AddForeignKeyConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)}, ${JSON.stringify(this.referencedTable)}, ${JSON.stringify(this.referencedColumn)}, ${JSON.stringify({onDelete:this.onDelete,onUpdate:this.onUpdate})})`}},y=class extends a{constructor(e,t){super(),this.table=e,this.columnName=t,this.constraintName=l(e,t)}applyToState(e){if(e.tables[this.table]){let t=e.tables[this.table].columns[this.columnName];t?.references&&(t.references=void 0,t.onDelete=void 0,t.onUpdate=void 0)}}async execute(e){await e.schema.alterTable(this.table).dropConstraint(this.constraintName).execute()}toCode(){return`new DropForeignKeyConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)})`}},b=class extends a{constructor(e,t){super(),this.table=e,this.columns=t,this.indexName=d(e,t)}applyToState(e){e.tables[this.table].indexes||(e.tables[this.table].indexes=[]),e.tables[this.table].indexes?.push({table:this.table,columns:this.columns})}async execute(e){await e.schema.createIndex(this.indexName).on(this.table).columns(this.columns).execute()}toCode(){return`new CreateIndexAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}},x=class extends a{constructor(e,t){super(),this.table=e,this.columns=t,this.indexName=d(e,t)}applyToState(e){e.tables[this.table].indexes&&(e.tables[this.table].indexes=e.tables[this.table].indexes?.filter(e=>!i(e.columns,this.columns)))}async execute(e){await e.schema.dropIndex(this.indexName).execute()}toCode(){return`new DropIndexAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}},S=class extends a{constructor(e,t){super(),this.table=e,this.columns=t,this.constraintName=u(e,t)}applyToState(e){e.tables[this.table].uniqueConstraints||(e.tables[this.table].uniqueConstraints=[]),e.tables[this.table].uniqueConstraints?.push(this.columns)}async execute(e){await e.schema.alterTable(this.table).addUniqueConstraint(this.constraintName,this.columns).execute()}toCode(){return`new AddUniqueConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}},C=class extends a{constructor(e,t){super(),this.table=e,this.columns=t,this.constraintName=u(e,t)}applyToState(e){e.tables[this.table].uniqueConstraints&&(e.tables[this.table].uniqueConstraints=e.tables[this.table].uniqueConstraints?.filter(e=>u(this.table,e)!==this.constraintName))}async execute(e){await e.schema.alterTable(this.table).dropConstraint(this.constraintName).execute()}toCode(){return`new DropUniqueConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return m}});
2
+ //# sourceMappingURL=actions-hNkAFJIH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions-hNkAFJIH.cjs","names":[],"sources":["../src/config.ts","../src/utils.ts","../src/migrate/actions.ts"],"sourcesContent":["import { loadConfig } from 'c12'\n\nexport type Config = {\n modelsDir?: string\n migrationsDir?: string\n}\n\nexport const getConfig = async () => {\n const loadedConfig = await loadConfig<Config>({\n name: 'gummy',\n rcFile: false,\n globalRc: false,\n dotenv: false,\n packageJson: false,\n })\n\n return loadedConfig.config\n}\n\nexport const defineConfig = (input: Config): Config => input\n","export function areArrayEqual(a: string[], b: string[]): boolean {\n if (a.length !== b.length) return false\n const sortedA = [...a].sort()\n const sortedB = [...b].sort()\n return sortedA.every((value, index) => value === sortedB[index])\n}\n","import { type ColumnDefinitionBuilder, type Kysely, sql } from 'kysely'\nimport { areArrayEqual } from '../utils.js'\nimport type { ColumnDefinition, ColumnDefinitionDiff, DatabaseState, IndexDefinition } from './types.js'\n\nexport abstract class MigrationAction {\n abstract applyToState(state: DatabaseState): void\n abstract execute(db: Kysely<any>): Promise<void>\n abstract toCode(): string\n}\n\n// Helper functions\nfunction mapColumnTypeToDataType(columnDef: ColumnDefinition): any {\n switch (columnDef.dataType) {\n case 'BigInteger':\n return 'bigint'\n case 'BigSerial':\n return 'bigserial'\n case 'Boolean':\n return 'boolean'\n case 'Date':\n return 'date'\n case 'Decimal':\n return 'decimal'\n case 'Email':\n case 'Varchar':\n return columnDef.length ? `varchar(${columnDef.length})` : 'varchar'\n case 'Integer':\n return 'integer'\n case 'Serial':\n return 'serial'\n case 'Text':\n return 'text'\n case 'Timestamp':\n return 'timestamp'\n case 'UUID':\n return 'uuid'\n case 'Json':\n return 'json'\n default:\n throw new Error(`Unsupported ColumnType: ${columnDef.dataType}`)\n }\n}\n\nfunction buildCol(col: ColumnDefinitionBuilder, columnDef: ColumnDefinition): ColumnDefinitionBuilder {\n if (columnDef.isPrimaryKey) {\n col = col.primaryKey()\n }\n if (columnDef.notNull) {\n col = col.notNull()\n }\n if (columnDef.isUnique) {\n col = col.unique()\n }\n if (columnDef.hasDbDefault && columnDef.dbDefault !== undefined) {\n col = col.defaultTo(columnDef.dbDefault)\n }\n // Foreign key handling is done separately\n return col\n}\n\n// Helper functions for constraint names\n\nfunction sortColumns(columns: string[]): string[] {\n return [...columns].sort()\n}\n\nexport function generateForeignKeyConstraintName(tableName: string, columnName: string): string {\n return `${tableName}_${columnName}_fk`\n}\n\nexport function generateUniqueConstraintName(tableName: string, columns: string[]): string {\n const sortedColumns = sortColumns(columns)\n return `${tableName}_${sortedColumns.join('_')}_unique`\n}\n\nexport function generateIndexName(tableName: string, columns: string[]): string {\n const sortedColumns = sortColumns(columns)\n return `${tableName}_${sortedColumns.join('_')}_idx`\n}\n\n// executeActions function\nexport async function executeActions(actions: MigrationAction[], db: Kysely<any>): Promise<void> {\n for (const action of actions) {\n await action.execute(db)\n }\n}\n\n// MigrationAction subclasses\n\nexport class CreateTableAction extends MigrationAction {\n table: string\n columns: ColumnDefinition[]\n ifNotExists: boolean\n indexes?: IndexDefinition[]\n uniqueConstraints?: string[][] // Array of column name arrays\n\n constructor(\n tableName: string,\n columns: ColumnDefinition[],\n options?: {\n ifNotExists?: boolean\n indexes?: IndexDefinition[]\n uniqueConstraints?: string[][]\n },\n ) {\n super()\n this.table = tableName\n this.columns = columns\n this.ifNotExists = options?.ifNotExists ?? false\n this.indexes = options?.indexes\n this.uniqueConstraints = options?.uniqueConstraints\n }\n\n applyToState(state: DatabaseState): void {\n if (!state.tables[this.table]) {\n state.tables[this.table] = { columns: {} }\n }\n for (const column of this.columns) {\n state.tables[this.table].columns[column.name] = { ...column }\n }\n if (this.indexes) {\n state.tables[this.table].indexes = this.indexes\n }\n if (this.uniqueConstraints) {\n state.tables[this.table].uniqueConstraints = this.uniqueConstraints\n }\n }\n\n async execute(db: Kysely<any>) {\n let builder = db.schema.createTable(this.table)\n if (this.ifNotExists) {\n builder = builder.ifNotExists()\n }\n for (const column of this.columns) {\n const dataType = mapColumnTypeToDataType(column)\n builder = builder.addColumn(column.name, dataType, (col) => buildCol(col, column))\n }\n // Add unique constraints\n if (this.uniqueConstraints) {\n for (const columns of this.uniqueConstraints) {\n const constraintName = generateUniqueConstraintName(this.table, columns)\n builder = builder.addUniqueConstraint(constraintName, columns as any)\n }\n }\n await builder.execute()\n\n // Create indexes\n if (this.indexes) {\n for (const index of this.indexes) {\n await new CreateIndexAction(index.table, index.columns).execute(db)\n }\n }\n }\n\n toCode(): string {\n return `new CreateTableAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)}, ${JSON.stringify({\n ifNotExists: this.ifNotExists,\n indexes: this.indexes,\n uniqueConstraints: this.uniqueConstraints,\n })})`\n }\n}\n\nexport class DropTableAction extends MigrationAction {\n table: string\n ifExists: boolean\n\n constructor(tableName: string, ifExists: boolean = false) {\n super()\n this.table = tableName\n this.ifExists = ifExists\n }\n\n applyToState(state: DatabaseState): void {\n delete state.tables[this.table]\n }\n\n async execute(db: Kysely<any>) {\n let builder = db.schema.dropTable(this.table)\n if (this.ifExists) {\n builder = builder.ifExists()\n }\n await builder.execute()\n }\n\n toCode(): string {\n return `new DropTableAction(${JSON.stringify(this.table)}, ${this.ifExists})`\n }\n}\n\nexport class AddColumnAction extends MigrationAction {\n table: string\n column: ColumnDefinition\n\n constructor(tableName: string, column: ColumnDefinition) {\n super()\n this.table = tableName\n this.column = column\n }\n\n applyToState(state: DatabaseState): void {\n if (!state.tables[this.table]) {\n state.tables[this.table] = { columns: {} }\n }\n state.tables[this.table].columns[this.column.name] = { ...this.column }\n }\n\n async execute(db: Kysely<any>) {\n const dataType = mapColumnTypeToDataType(this.column)\n await db.schema\n .alterTable(this.table)\n .addColumn(this.column.name, dataType, (col) => buildCol(col, this.column))\n .execute()\n }\n\n toCode(): string {\n return `new AddColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.column)})`\n }\n}\n\n// 4. DropColumnAction\nexport class DropColumnAction extends MigrationAction {\n table: string\n columnName: string\n\n constructor(tableName: string, columnName: string) {\n super()\n this.table = tableName\n this.columnName = columnName\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table]) {\n delete state.tables[this.table].columns[this.columnName]\n }\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.alterTable(this.table).dropColumn(this.columnName).execute()\n }\n\n toCode(): string {\n return `new DropColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)})`\n }\n}\n\nexport class AlterColumnAction extends MigrationAction {\n table: string\n columnName: string\n changes: ColumnDefinitionDiff\n\n constructor(tableName: string, columnName: string, changes: ColumnDefinitionDiff) {\n super()\n this.table = tableName\n this.columnName = columnName\n this.changes = changes\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table] && state.tables[this.table].columns[this.columnName]) {\n const column = state.tables[this.table].columns[this.columnName]\n if (this.changes.dataType !== undefined) {\n column.dataType = this.changes.dataType\n }\n if (this.changes.length !== undefined) {\n column.length = this.changes.length\n }\n if (this.changes.isPrimaryKey !== undefined) {\n column.isPrimaryKey = this.changes.isPrimaryKey\n }\n if (this.changes.notNull !== undefined) {\n column.notNull = this.changes.notNull\n }\n if (this.changes.hasDbDefault !== undefined) {\n column.hasDbDefault = this.changes.hasDbDefault\n column.dbDefault = this.changes.dbDefault\n }\n if (this.changes.isUnique !== undefined) {\n column.isUnique = this.changes.isUnique\n }\n }\n }\n\n async execute(db: Kysely<any>) {\n if (this.changes.dataType !== undefined || this.changes.length !== undefined) {\n await db.schema\n .alterTable(this.table)\n .alterColumn(this.columnName, (col) =>\n col.setDataType(\n mapColumnTypeToDataType({\n dataType: this.changes.dataType,\n length: this.changes.length,\n } as ColumnDefinition),\n ),\n )\n .execute()\n }\n\n if (this.changes.notNull !== undefined) {\n await db.schema\n .alterTable(this.table)\n .alterColumn(this.columnName, (col) => (this.changes.notNull ? col.setNotNull() : col.dropNotNull()))\n .execute()\n }\n\n if (this.changes.hasDbDefault !== undefined) {\n await db.schema\n .alterTable(this.table)\n .alterColumn(this.columnName, (col) => {\n if (this.changes.hasDbDefault && this.changes.dbDefault !== undefined) {\n if (typeof this.changes.dbDefault === 'string' && this.changes.dbDefault.startsWith('sql`')) {\n return col.setDefault(sql`${this.changes.dbDefault}`)\n } else {\n return col.setDefault(this.changes.dbDefault)\n }\n } else {\n return col.dropDefault()\n }\n })\n .execute()\n }\n\n if (this.changes.isUnique !== undefined) {\n const constraintName = generateUniqueConstraintName(this.table, [this.columnName])\n if (this.changes.isUnique) {\n await db.schema.alterTable(this.table).addUniqueConstraint(constraintName, [this.columnName]).execute()\n } else {\n await db.schema.alterTable(this.table).dropConstraint(constraintName).execute()\n }\n }\n }\n\n toCode(): string {\n return `new AlterColumnAction(${JSON.stringify(\n this.table,\n )}, ${JSON.stringify(this.columnName)}, ${JSON.stringify(this.changes)})`\n }\n}\n\nexport class AddForeignKeyConstraintAction extends MigrationAction {\n table: string\n columnName: string\n referencedTable: string\n referencedColumn: string\n constraintName: string\n onDelete?: 'no action' | 'restrict' | 'cascade' | 'set null' | 'set default'\n onUpdate?: 'no action' | 'restrict' | 'cascade' | 'set null' | 'set default'\n\n constructor(\n tableName: string,\n columnName: string,\n referencedTable: string,\n referencedColumn: string,\n options?: {\n onDelete?: 'no action' | 'restrict' | 'cascade' | 'set null' | 'set default'\n onUpdate?: 'no action' | 'restrict' | 'cascade' | 'set null' | 'set default'\n },\n ) {\n super()\n this.table = tableName\n this.columnName = columnName\n this.referencedTable = referencedTable\n this.referencedColumn = referencedColumn\n this.constraintName = generateForeignKeyConstraintName(tableName, columnName)\n this.onDelete = options?.onDelete\n this.onUpdate = options?.onUpdate\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table] && state.tables[this.table].columns[this.columnName]) {\n state.tables[this.table].columns[this.columnName].references = `${this.referencedTable}.${this.referencedColumn}`\n state.tables[this.table].columns[this.columnName].onDelete = this.onDelete\n state.tables[this.table].columns[this.columnName].onUpdate = this.onUpdate\n }\n }\n\n async execute(db: Kysely<any>) {\n let builder = db.schema\n .alterTable(this.table)\n .addForeignKeyConstraint(this.constraintName, [this.columnName], this.referencedTable, [this.referencedColumn])\n\n if (this.onDelete) {\n builder = builder.onDelete(this.onDelete)\n }\n if (this.onUpdate) {\n builder = builder.onUpdate(this.onUpdate)\n }\n\n await builder.execute()\n }\n\n toCode(): string {\n return `new AddForeignKeyConstraintAction(${JSON.stringify(\n this.table,\n )}, ${JSON.stringify(this.columnName)}, ${JSON.stringify(\n this.referencedTable,\n )}, ${JSON.stringify(this.referencedColumn)}, ${JSON.stringify({\n onDelete: this.onDelete,\n onUpdate: this.onUpdate,\n })})`\n }\n}\n\nexport class DropForeignKeyConstraintAction extends MigrationAction {\n table: string\n columnName: string\n constraintName: string\n\n constructor(tableName: string, columnName: string) {\n super()\n this.table = tableName\n this.columnName = columnName\n this.constraintName = generateForeignKeyConstraintName(tableName, columnName)\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table]) {\n const column = state.tables[this.table].columns[this.columnName]\n if (column?.references) {\n column.references = undefined\n column.onDelete = undefined\n column.onUpdate = undefined\n }\n }\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.alterTable(this.table).dropConstraint(this.constraintName).execute()\n }\n\n toCode(): string {\n return `new DropForeignKeyConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)})`\n }\n}\n\nexport class CreateIndexAction extends MigrationAction {\n table: string\n columns: string[]\n indexName: string\n\n constructor(table: string, columns: string[]) {\n super()\n this.table = table\n this.columns = columns\n this.indexName = generateIndexName(table, columns)\n }\n\n applyToState(state: DatabaseState): void {\n if (!state.tables[this.table].indexes) {\n state.tables[this.table].indexes = []\n }\n state.tables[this.table].indexes?.push({\n table: this.table,\n columns: this.columns,\n })\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.createIndex(this.indexName).on(this.table).columns(this.columns).execute()\n }\n\n toCode(): string {\n return `new CreateIndexAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`\n }\n}\n\nexport class DropIndexAction extends MigrationAction {\n table: string\n columns: string[]\n indexName: string\n\n constructor(table: string, columns: string[]) {\n super()\n this.table = table\n this.columns = columns\n this.indexName = generateIndexName(table, columns)\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table].indexes) {\n state.tables[this.table].indexes = state.tables[this.table].indexes?.filter(\n (idx) => !areArrayEqual(idx.columns, this.columns),\n )\n }\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.dropIndex(this.indexName).execute()\n }\n\n toCode(): string {\n return `new DropIndexAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`\n }\n}\n\nexport class AddUniqueConstraintAction extends MigrationAction {\n table: string\n columns: string[]\n constraintName: string\n\n constructor(tableName: string, columns: string[]) {\n super()\n this.table = tableName\n this.columns = columns\n this.constraintName = generateUniqueConstraintName(tableName, columns)\n }\n\n applyToState(state: DatabaseState): void {\n if (!state.tables[this.table].uniqueConstraints) {\n state.tables[this.table].uniqueConstraints = []\n }\n state.tables[this.table].uniqueConstraints?.push(this.columns)\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.alterTable(this.table).addUniqueConstraint(this.constraintName, this.columns).execute()\n }\n\n toCode(): string {\n return `new AddUniqueConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`\n }\n}\n\nexport class DropUniqueConstraintAction extends MigrationAction {\n table: string\n columns: string[]\n constraintName: string\n\n constructor(tableName: string, columns: string[]) {\n super()\n this.table = tableName\n this.columns = columns\n this.constraintName = generateUniqueConstraintName(tableName, columns)\n }\n\n applyToState(state: DatabaseState): void {\n if (state.tables[this.table].uniqueConstraints) {\n state.tables[this.table].uniqueConstraints = state.tables[this.table].uniqueConstraints?.filter(\n (cols) => generateUniqueConstraintName(this.table, cols) !== this.constraintName,\n )\n }\n }\n\n async execute(db: Kysely<any>) {\n await db.schema.alterTable(this.table).dropConstraint(this.constraintName).execute()\n }\n\n toCode(): string {\n return `new DropUniqueConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{a as e,i as t,n,r,s as i}from"./require-DQxpCAr4-BGIlzMGx.mjs";import a from"node:module";import{pathToFileURL as o}from"node:url";import{MessageChannel as s}from"node:worker_threads";var c=Object.defineProperty,l=(e,t)=>c(e,`name`,{value:t,configurable:!0});const u=l(e=>(t,n)=>{if(!n)throw Error(`The current file path (import.meta.url) must be provided in the second argument of tsImport()`);let r=n.startsWith(`file://`)?n:o(n).toString();return import(`tsx://${JSON.stringify({specifier:t,parentURL:r,namespace:e})}`)},`createScopedImport`);let d=!1;const f=l(e=>{if(!a.register)throw Error(`This version of Node.js (${process.version}) does not support module.register(). Please upgrade to Node v18.19 or v20.6 and above.`);if(!d){let{_resolveFilename:e}=a;a._resolveFilename=(t,...n)=>e(r(t),...n),d=!0}let{sourceMapsEnabled:t}=process;process.setSourceMapsEnabled(!0);let{port1:n,port2:i}=new s;a.register(`./esm/index.mjs?${Date.now()}`,{parentURL:import.meta.url,data:{port:i,namespace:e?.namespace,tsconfig:e?.tsconfig},transferList:[i]});let o=e?.onImport,c=o&&(e=>{e.type===`load`&&o(e.url)});c&&(n.on(`message`,c),n.unref());let f=l(()=>(t===!1&&process.setSourceMapsEnabled(!1),c&&n.off(`message`,c),n.postMessage(`deactivate`),new Promise(e=>{let t=l(r=>{r.type===`deactivated`&&(e(),n.off(`message`,t))},`onDeactivated`);n.on(`message`,t)})),`unregister`);return e?.namespace&&(f.import=u(e.namespace),f.unregister=f),f},`register`);var p=Object.defineProperty,m=(e,t)=>p(e,`name`,{value:t,configurable:!0});const h=m((e,t)=>{let n=e[0]-t[0];if(n===0){let n=e[1]-t[1];return n===0?e[2]>=t[2]:n>0}return n>0},`isVersionGreaterOrEqual`),g=process.versions.node.split(`.`).map(Number),_=m((e,t=g)=>{for(let n=0;n<e.length;n+=1){let r=e[n];if(n===e.length-1||t[0]===r[0])return h(t,r)}return!1},`isFeatureSupported`),v=[[20,11,0],[21,3,0]];i();var y=Object.defineProperty;const b=((e,t)=>y(e,`name`,{value:t,configurable:!0}))((r,i)=>{if(!i||typeof i==`object`&&!i.parentURL)throw Error(`The current file path (import.meta.url) must be provided in the second argument of tsImport()`);let a=typeof i==`string`,o=a?i:i.parentURL,s=Date.now().toString(),c=n({namespace:s});return!_(v)&&!e.test(r)&&t.test(r)?Promise.resolve(c.require(r,o)):f({namespace:s,...a?{}:i}).import(r,o)},`tsImport`);export{b as tsImport};
2
+ //# sourceMappingURL=api-BlPtKSJ4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-BlPtKSJ4.mjs","names":["d","o","h","l","m","v","u","i","o","a","f","m","n","g","d","c","u","p"],"sources":["../../../node_modules/.pnpm/tsx@4.20.6/node_modules/tsx/dist/register-B7jrtLTO.mjs","../../../node_modules/.pnpm/tsx@4.20.6/node_modules/tsx/dist/node-features-_8ZFwP_x.mjs","../../../node_modules/.pnpm/tsx@4.20.6/node_modules/tsx/dist/esm/api/index.mjs"],"sourcesContent":["var d=Object.defineProperty;var o=(r,s)=>d(r,\"name\",{value:s,configurable:!0});import m from\"node:module\";import{MessageChannel as u}from\"node:worker_threads\";import{f as g,a as v}from\"./register-CFH5oNdT.mjs\";import{pathToFileURL as h}from\"node:url\";const w=o(r=>(s,e)=>{if(!e)throw new Error(\"The current file path (import.meta.url) must be provided in the second argument of tsImport()\");const a=e.startsWith(g)?e:h(e).toString();return import(`tsx://${JSON.stringify({specifier:s,parentURL:a,namespace:r})}`)},\"createScopedImport\");let l=!1;const E=o(r=>{if(!m.register)throw new Error(`This version of Node.js (${process.version}) does not support module.register(). Please upgrade to Node v18.19 or v20.6 and above.`);if(!l){const{_resolveFilename:t}=m;m._resolveFilename=(p,...c)=>t(v(p),...c),l=!0}const{sourceMapsEnabled:s}=process;process.setSourceMapsEnabled(!0);const{port1:e,port2:a}=new u;m.register(`./esm/index.mjs?${Date.now()}`,{parentURL:import.meta.url,data:{port:a,namespace:r?.namespace,tsconfig:r?.tsconfig},transferList:[a]});const f=r?.onImport,n=f&&(t=>{t.type===\"load\"&&f(t.url)});n&&(e.on(\"message\",n),e.unref());const i=o(()=>(s===!1&&process.setSourceMapsEnabled(!1),n&&e.off(\"message\",n),e.postMessage(\"deactivate\"),new Promise(t=>{const p=o(c=>{c.type===\"deactivated\"&&(t(),e.off(\"message\",p))},\"onDeactivated\");e.on(\"message\",p)})),\"unregister\");return r?.namespace&&(i.import=w(r.namespace),i.unregister=i),i},\"register\");export{E as r};\n","var i=Object.defineProperty;var o=(e,t)=>i(e,\"name\",{value:t,configurable:!0});const n=o((e,t)=>{const r=e[0]-t[0];if(r===0){const s=e[1]-t[1];return s===0?e[2]>=t[2]:s>0}return r>0},\"isVersionGreaterOrEqual\"),a=process.versions.node.split(\".\").map(Number),u=o((e,t=a)=>{for(let r=0;r<e.length;r+=1){const s=e[r];if(r===e.length-1||t[0]===s[0])return n(t,s)}return!1},\"isFeatureSupported\"),c=[[18,19,0],[20,6,0]],f=[[18,19,0],[20,10,0],[21,0,0]],l=[[21,0,0]],m=[[20,11,0],[21,3,0]];export{f as a,m as e,u as i,c as m,l as t};\n","var s=Object.defineProperty;var i=(r,t)=>s(r,\"name\",{value:t,configurable:!0});import{r as p}from\"../../register-B7jrtLTO.mjs\";import\"../../get-pipe-path-BHW2eJdv.mjs\";import{r as n,i as c,c as u}from\"../../register-CFH5oNdT.mjs\";import\"../../require-DQxpCAr4.mjs\";import{i as g,e as d}from\"../../node-features-_8ZFwP_x.mjs\";import\"node:module\";import\"node:worker_threads\";import\"node:url\";import\"module\";import\"node:path\";import\"../../temporary-directory-CwHp0_NW.mjs\";import\"node:os\";import\"get-tsconfig\";import\"node:fs\";import\"../../index-7AaEi15b.mjs\";import\"esbuild\";import\"node:crypto\";import\"../../client-BQVF1NaW.mjs\";import\"node:net\";import\"node:util\";import\"../../index-gbaejti9.mjs\";const f=i((r,t)=>{if(!t||typeof t==\"object\"&&!t.parentURL)throw new Error(\"The current file path (import.meta.url) must be provided in the second argument of tsImport()\");const e=typeof t==\"string\",o=e?t:t.parentURL,m=Date.now().toString(),a=n({namespace:m});return!g(d)&&!c.test(r)&&u.test(r)?Promise.resolve(a.require(r,o)):p({namespace:m,...e?{}:t}).import(r,o)},\"tsImport\");export{p as register,f as tsImport};\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{s as e,t}from"./require-DQxpCAr4-BGIlzMGx.mjs";e();export{t as require};
2
+ //# sourceMappingURL=api-CUDbTgyj.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-CUDbTgyj.mjs","names":[],"sources":["../../../node_modules/.pnpm/tsx@4.20.6/node_modules/tsx/dist/cjs/api/index.mjs"],"sourcesContent":["import\"../../get-pipe-path-BHW2eJdv.mjs\";import{r as j}from\"../../register-CFH5oNdT.mjs\";import{t as l}from\"../../require-DQxpCAr4.mjs\";import\"module\";import\"node:path\";import\"../../temporary-directory-CwHp0_NW.mjs\";import\"node:os\";import\"node:module\";import\"node:url\";import\"get-tsconfig\";import\"node:fs\";import\"../../index-7AaEi15b.mjs\";import\"esbuild\";import\"node:crypto\";import\"../../client-BQVF1NaW.mjs\";import\"node:net\";import\"node:util\";import\"../../index-gbaejti9.mjs\";export{j as register,l as require};\n"],"x_google_ignoreList":[0],"mappings":""}
@@ -0,0 +1,2 @@
1
+ const e=require(`./bin.cjs`),t=require(`./require-DQxpCAr4-eA6ylxL0.cjs`);require(`node:fs`),require(`node:path`),require(`module`),require(`node:os`);let n=require(`node:module`);n=e.n(n);let r=require(`node:url`);require(`node:crypto`),require(`node:net`),require(`node:util`);let i=require(`node:worker_threads`);var a=Object.defineProperty,o=(e,t)=>a(e,`name`,{value:t,configurable:!0});const s=o(e=>(t,n)=>{if(!n)throw Error(`The current file path (import.meta.url) must be provided in the second argument of tsImport()`);let i=n.startsWith(`file://`)?n:(0,r.pathToFileURL)(n).toString();return import(`tsx://${JSON.stringify({specifier:t,parentURL:i,namespace:e})}`)},`createScopedImport`);let c=!1;const l=o(e=>{if(!n.default.register)throw Error(`This version of Node.js (${process.version}) does not support module.register(). Please upgrade to Node v18.19 or v20.6 and above.`);if(!c){let{_resolveFilename:e}=n.default;n.default._resolveFilename=(n,...r)=>e(t.r(n),...r),c=!0}let{sourceMapsEnabled:r}=process;process.setSourceMapsEnabled(!0);let{port1:a,port2:l}=new i.MessageChannel;n.default.register(`./esm/index.mjs?${Date.now()}`,{parentURL:require(`url`).pathToFileURL(__filename).href,data:{port:l,namespace:e?.namespace,tsconfig:e?.tsconfig},transferList:[l]});let u=e?.onImport,d=u&&(e=>{e.type===`load`&&u(e.url)});d&&(a.on(`message`,d),a.unref());let f=o(()=>(r===!1&&process.setSourceMapsEnabled(!1),d&&a.off(`message`,d),a.postMessage(`deactivate`),new Promise(e=>{let t=o(n=>{n.type===`deactivated`&&(e(),a.off(`message`,t))},`onDeactivated`);a.on(`message`,t)})),`unregister`);return e?.namespace&&(f.import=s(e.namespace),f.unregister=f),f},`register`);var u=Object.defineProperty,d=(e,t)=>u(e,`name`,{value:t,configurable:!0});const f=d((e,t)=>{let n=e[0]-t[0];if(n===0){let n=e[1]-t[1];return n===0?e[2]>=t[2]:n>0}return n>0},`isVersionGreaterOrEqual`),p=process.versions.node.split(`.`).map(Number),m=d((e,t=p)=>{for(let n=0;n<e.length;n+=1){let r=e[n];if(n===e.length-1||t[0]===r[0])return f(t,r)}return!1},`isFeatureSupported`),h=[[20,11,0],[21,3,0]];t.s();var g=Object.defineProperty;const _=((e,t)=>g(e,`name`,{value:t,configurable:!0}))((e,n)=>{if(!n||typeof n==`object`&&!n.parentURL)throw Error(`The current file path (import.meta.url) must be provided in the second argument of tsImport()`);let r=typeof n==`string`,i=r?n:n.parentURL,a=Date.now().toString(),o=t.n({namespace:a});return!m(h)&&!t.a.test(e)&&t.i.test(e)?Promise.resolve(o.require(e,i)):l({namespace:a,...r?{}:n}).import(e,i)},`tsImport`);exports.tsImport=_;
2
+ //# sourceMappingURL=api-DW-cLEvI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-DW-cLEvI.cjs","names":["o","l","m","v","u","i","f","m","n","g","d","c","u","p"],"sources":["../../../node_modules/.pnpm/tsx@4.20.6/node_modules/tsx/dist/register-B7jrtLTO.mjs","../../../node_modules/.pnpm/tsx@4.20.6/node_modules/tsx/dist/node-features-_8ZFwP_x.mjs","../../../node_modules/.pnpm/tsx@4.20.6/node_modules/tsx/dist/esm/api/index.mjs"],"sourcesContent":["var d=Object.defineProperty;var o=(r,s)=>d(r,\"name\",{value:s,configurable:!0});import m from\"node:module\";import{MessageChannel as u}from\"node:worker_threads\";import{f as g,a as v}from\"./register-CFH5oNdT.mjs\";import{pathToFileURL as h}from\"node:url\";const w=o(r=>(s,e)=>{if(!e)throw new Error(\"The current file path (import.meta.url) must be provided in the second argument of tsImport()\");const a=e.startsWith(g)?e:h(e).toString();return import(`tsx://${JSON.stringify({specifier:s,parentURL:a,namespace:r})}`)},\"createScopedImport\");let l=!1;const E=o(r=>{if(!m.register)throw new Error(`This version of Node.js (${process.version}) does not support module.register(). Please upgrade to Node v18.19 or v20.6 and above.`);if(!l){const{_resolveFilename:t}=m;m._resolveFilename=(p,...c)=>t(v(p),...c),l=!0}const{sourceMapsEnabled:s}=process;process.setSourceMapsEnabled(!0);const{port1:e,port2:a}=new u;m.register(`./esm/index.mjs?${Date.now()}`,{parentURL:import.meta.url,data:{port:a,namespace:r?.namespace,tsconfig:r?.tsconfig},transferList:[a]});const f=r?.onImport,n=f&&(t=>{t.type===\"load\"&&f(t.url)});n&&(e.on(\"message\",n),e.unref());const i=o(()=>(s===!1&&process.setSourceMapsEnabled(!1),n&&e.off(\"message\",n),e.postMessage(\"deactivate\"),new Promise(t=>{const p=o(c=>{c.type===\"deactivated\"&&(t(),e.off(\"message\",p))},\"onDeactivated\");e.on(\"message\",p)})),\"unregister\");return r?.namespace&&(i.import=w(r.namespace),i.unregister=i),i},\"register\");export{E as r};\n","var i=Object.defineProperty;var o=(e,t)=>i(e,\"name\",{value:t,configurable:!0});const n=o((e,t)=>{const r=e[0]-t[0];if(r===0){const s=e[1]-t[1];return s===0?e[2]>=t[2]:s>0}return r>0},\"isVersionGreaterOrEqual\"),a=process.versions.node.split(\".\").map(Number),u=o((e,t=a)=>{for(let r=0;r<e.length;r+=1){const s=e[r];if(r===e.length-1||t[0]===s[0])return n(t,s)}return!1},\"isFeatureSupported\"),c=[[18,19,0],[20,6,0]],f=[[18,19,0],[20,10,0],[21,0,0]],l=[[21,0,0]],m=[[20,11,0],[21,3,0]];export{f as a,m as e,u as i,c as m,l as t};\n","var s=Object.defineProperty;var i=(r,t)=>s(r,\"name\",{value:t,configurable:!0});import{r as p}from\"../../register-B7jrtLTO.mjs\";import\"../../get-pipe-path-BHW2eJdv.mjs\";import{r as n,i as c,c as u}from\"../../register-CFH5oNdT.mjs\";import\"../../require-DQxpCAr4.mjs\";import{i as g,e as d}from\"../../node-features-_8ZFwP_x.mjs\";import\"node:module\";import\"node:worker_threads\";import\"node:url\";import\"module\";import\"node:path\";import\"../../temporary-directory-CwHp0_NW.mjs\";import\"node:os\";import\"get-tsconfig\";import\"node:fs\";import\"../../index-7AaEi15b.mjs\";import\"esbuild\";import\"node:crypto\";import\"../../client-BQVF1NaW.mjs\";import\"node:net\";import\"node:util\";import\"../../index-gbaejti9.mjs\";const f=i((r,t)=>{if(!t||typeof t==\"object\"&&!t.parentURL)throw new Error(\"The current file path (import.meta.url) must be provided in the second argument of tsImport()\");const e=typeof t==\"string\",o=e?t:t.parentURL,m=Date.now().toString(),a=n({namespace:m});return!g(d)&&!c.test(r)&&u.test(r)?Promise.resolve(a.require(r,o)):p({namespace:m,...e?{}:t}).import(r,o)},\"tsImport\");export{p as register,f as tsImport};\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./require-DQxpCAr4-eA6ylxL0.cjs`);require(`node:fs`),require(`node:path`),require(`module`),require(`node:os`),require(`node:module`),require(`node:url`),require(`node:crypto`),require(`node:net`),require(`node:util`),e.s(),exports.require=e.t;
2
+ //# sourceMappingURL=api-sEy5qKXe.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-sEy5qKXe.cjs","names":[],"sources":["../../../node_modules/.pnpm/tsx@4.20.6/node_modules/tsx/dist/cjs/api/index.mjs"],"sourcesContent":["import\"../../get-pipe-path-BHW2eJdv.mjs\";import{r as j}from\"../../register-CFH5oNdT.mjs\";import{t as l}from\"../../require-DQxpCAr4.mjs\";import\"module\";import\"node:path\";import\"../../temporary-directory-CwHp0_NW.mjs\";import\"node:os\";import\"node:module\";import\"node:url\";import\"get-tsconfig\";import\"node:fs\";import\"../../index-7AaEi15b.mjs\";import\"esbuild\";import\"node:crypto\";import\"../../client-BQVF1NaW.mjs\";import\"node:net\";import\"node:util\";import\"../../index-gbaejti9.mjs\";export{j as register,l as require};\n"],"x_google_ignoreList":[0],"mappings":""}
package/dist/bin.cjs CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var ae=Object.create;var k=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var le=Object.getPrototypeOf,ce=Object.prototype.hasOwnProperty;var ue=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of re(e))!ce.call(n,a)&&a!==t&&k(n,a,{get:()=>e[a],enumerable:!(i=oe(e,a))||i.enumerable});return n};var U=(n,e,t)=>(t=n!=null?ae(le(n)):{},ue(e||!n||!n.__esModule?k(t,"default",{value:n,enumerable:!0}):t,n));var ne=require("commander");var ee=require("commander");var x=U(require("fs"),1),Q=U(require("path"),1),M=require("glob"),j=U(require("chalk"),1),$=require("gummy"),z=require("pkg-types");var F=require("kysely");function y(n,e){if(n.length!==e.length)return!1;let t=[...n].sort(),i=[...e].sort();return t.every((a,s)=>a===i[s])}var d=class{};function E(n){switch(n.dataType){case"BigInteger":return"bigint";case"BigSerial":return"bigserial";case"Boolean":return"boolean";case"Date":return"date";case"Decimal":return"decimal";case"Email":case"Varchar":return n.length?`varchar(${n.length})`:"varchar";case"Integer":return"integer";case"Serial":return"serial";case"Text":return"text";case"Timestamp":return"timestamp";case"UUID":return"uuid";case"Json":return"json";default:throw new Error(`Unsupported ColumnType: ${n.dataType}`)}}function B(n,e){return e.isPrimaryKey&&(n=n.primaryKey()),e.notNull&&(n=n.notNull()),e.isUnique&&(n=n.unique()),e.hasDbDefault&&e.dbDefault!==void 0&&(n=n.defaultTo(e.dbDefault)),n}function _(n){return[...n].sort()}function R(n,e){return`${n}_${e}_fk`}function K(n,e){let t=_(e);return`${n}_${t.join("_")}_unique`}function W(n,e){let t=_(e);return`${n}_${t.join("_")}_idx`}var C=class extends d{constructor(e,t,i){super(),this.table=e,this.columns=t,this.ifNotExists=i?.ifNotExists??!1,this.indexes=i?.indexes,this.uniqueConstraints=i?.uniqueConstraints}applyToState(e){e.tables[this.table]||(e.tables[this.table]={columns:{}});for(let t of this.columns)e.tables[this.table].columns[t.name]={...t};this.indexes&&(e.tables[this.table].indexes=this.indexes),this.uniqueConstraints&&(e.tables[this.table].uniqueConstraints=this.uniqueConstraints)}async execute(e){let t=e.schema.createTable(this.table);this.ifNotExists&&(t=t.ifNotExists());for(let i of this.columns){let a=E(i);t=t.addColumn(i.name,a,s=>B(s,i))}if(this.uniqueConstraints)for(let i of this.uniqueConstraints){let a=K(this.table,i);t=t.addUniqueConstraint(a,i)}if(await t.execute(),this.indexes)for(let i of this.indexes)await new q(i.table,i.columns).execute(e)}toCode(){return`new CreateTableAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)}, ${JSON.stringify({ifNotExists:this.ifNotExists,indexes:this.indexes,uniqueConstraints:this.uniqueConstraints})})`}},N=class extends d{constructor(e,t=!1){super(),this.table=e,this.ifExists=t}applyToState(e){delete e.tables[this.table]}async execute(e){let t=e.schema.dropTable(this.table);this.ifExists&&(t=t.ifExists()),await t.execute()}toCode(){return`new DropTableAction(${JSON.stringify(this.table)}, ${this.ifExists})`}},S=class extends d{constructor(e,t){super(),this.table=e,this.column=t}applyToState(e){e.tables[this.table]||(e.tables[this.table]={columns:{}}),e.tables[this.table].columns[this.column.name]={...this.column}}async execute(e){let t=E(this.column);await e.schema.alterTable(this.table).addColumn(this.column.name,t,i=>B(i,this.column)).execute()}toCode(){return`new AddColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.column)})`}},T=class extends d{constructor(e,t){super(),this.table=e,this.columnName=t}applyToState(e){e.tables[this.table]&&delete e.tables[this.table].columns[this.columnName]}async execute(e){await e.schema.alterTable(this.table).dropColumn(this.columnName).execute()}toCode(){return`new DropColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)})`}},A=class extends d{constructor(e,t,i){super(),this.table=e,this.columnName=t,this.changes=i}applyToState(e){if(e.tables[this.table]&&e.tables[this.table].columns[this.columnName]){let t=e.tables[this.table].columns[this.columnName];this.changes.dataType!==void 0&&(t.dataType=this.changes.dataType),this.changes.length!==void 0&&(t.length=this.changes.length),this.changes.isPrimaryKey!==void 0&&(t.isPrimaryKey=this.changes.isPrimaryKey),this.changes.notNull!==void 0&&(t.notNull=this.changes.notNull),this.changes.hasDbDefault!==void 0&&(t.hasDbDefault=this.changes.hasDbDefault,t.dbDefault=this.changes.dbDefault),this.changes.isUnique!==void 0&&(t.isUnique=this.changes.isUnique)}}async execute(e){if((this.changes.dataType!==void 0||this.changes.length!==void 0)&&await e.schema.alterTable(this.table).alterColumn(this.columnName,t=>t.setDataType(E({dataType:this.changes.dataType,length:this.changes.length}))).execute(),this.changes.notNull!==void 0&&await e.schema.alterTable(this.table).alterColumn(this.columnName,t=>this.changes.notNull?t.setNotNull():t.dropNotNull()).execute(),this.changes.hasDbDefault!==void 0&&await e.schema.alterTable(this.table).alterColumn(this.columnName,t=>this.changes.hasDbDefault&&this.changes.dbDefault!==void 0?typeof this.changes.dbDefault=="string"&&this.changes.dbDefault.startsWith("sql`")?t.setDefault(F.sql`${this.changes.dbDefault}`):t.setDefault(this.changes.dbDefault):t.dropDefault()).execute(),this.changes.isUnique!==void 0){let t=K(this.table,[this.columnName]);this.changes.isUnique?await e.schema.alterTable(this.table).addUniqueConstraint(t,[this.columnName]).execute():await e.schema.alterTable(this.table).dropConstraint(t).execute()}}toCode(){return`new AlterColumnAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)}, ${JSON.stringify(this.changes)})`}},g=class extends d{constructor(e,t,i,a,s){super(),this.table=e,this.columnName=t,this.referencedTable=i,this.referencedColumn=a,this.constraintName=R(e,t),this.onDelete=s?.onDelete,this.onUpdate=s?.onUpdate}applyToState(e){e.tables[this.table]&&e.tables[this.table].columns[this.columnName]&&(e.tables[this.table].columns[this.columnName].references=`${this.referencedTable}.${this.referencedColumn}`,e.tables[this.table].columns[this.columnName].onDelete=this.onDelete,e.tables[this.table].columns[this.columnName].onUpdate=this.onUpdate)}async execute(e){let t=e.schema.alterTable(this.table).addForeignKeyConstraint(this.constraintName,[this.columnName],this.referencedTable,[this.referencedColumn]);this.onDelete&&(t=t.onDelete(this.onDelete)),this.onUpdate&&(t=t.onUpdate(this.onUpdate)),await t.execute()}toCode(){return`new AddForeignKeyConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)}, ${JSON.stringify(this.referencedTable)}, ${JSON.stringify(this.referencedColumn)}, ${JSON.stringify({onDelete:this.onDelete,onUpdate:this.onUpdate})})`}},w=class extends d{constructor(e,t){super(),this.table=e,this.columnName=t,this.constraintName=R(e,t)}applyToState(e){if(e.tables[this.table]){let t=e.tables[this.table].columns[this.columnName];t&&t.references&&(t.references=void 0,t.onDelete=void 0,t.onUpdate=void 0)}}async execute(e){await e.schema.alterTable(this.table).dropConstraint(this.constraintName).execute()}toCode(){return`new DropForeignKeyConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columnName)})`}},q=class extends d{constructor(e,t){super(),this.table=e,this.columns=t,this.indexName=W(e,t)}applyToState(e){e.tables[this.table].indexes||(e.tables[this.table].indexes=[]),e.tables[this.table].indexes.push({table:this.table,columns:this.columns})}async execute(e){await e.schema.createIndex(this.indexName).on(this.table).columns(this.columns).execute()}toCode(){return`new CreateIndexAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}},v=class extends d{constructor(e,t){super(),this.table=e,this.columns=t,this.indexName=W(e,t)}applyToState(e){e.tables[this.table].indexes&&(e.tables[this.table].indexes=e.tables[this.table].indexes.filter(t=>!y(t.columns,this.columns)))}async execute(e){await e.schema.dropIndex(this.indexName).execute()}toCode(){return`new DropIndexAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}},O=class extends d{constructor(e,t){super(),this.table=e,this.columns=t,this.constraintName=K(e,t)}applyToState(e){e.tables[this.table].uniqueConstraints||(e.tables[this.table].uniqueConstraints=[]),e.tables[this.table].uniqueConstraints.push(this.columns)}async execute(e){await e.schema.alterTable(this.table).addUniqueConstraint(this.constraintName,this.columns).execute()}toCode(){return`new AddUniqueConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}},I=class extends d{constructor(e,t){super(),this.table=e,this.columns=t,this.constraintName=K(e,t)}applyToState(e){e.tables[this.table].uniqueConstraints&&(e.tables[this.table].uniqueConstraints=e.tables[this.table].uniqueConstraints.filter(t=>K(this.table,t)!==this.constraintName))}async execute(e){await e.schema.alterTable(this.table).dropConstraint(this.constraintName).execute()}toCode(){return`new DropUniqueConstraintAction(${JSON.stringify(this.table)}, ${JSON.stringify(this.columns)})`}};var l=require("gummy");function V(n){let e=[],t=n.tables;for(let[i,a]of Object.entries(t)){let s=[],o=a.columns;for(let[u,f]of Object.entries(o))if(f.isPrimaryKey&&(s.push(u),f.notNull||e.push(`Primary key column "${u}" in table "${i}" must be NOT NULL.`)),f.references){let[m,h]=f.references.split(".");if(!n.tables[m])e.push(`Referenced table "${m}" for foreign key on "${i}.${u}" does not exist.`);else if(!n.tables[m].columns[h])e.push(`Referenced column "${m}.${h}" for foreign key on "${i}.${u}" does not exist.`);else{let b=n.tables[m].columns[h];fe(f.dataType,b.dataType)||e.push(`Data type incompatibility between foreign key column "${i}.${u}" (${l.ColumnType[f.dataType]}) and referenced column "${m}.${h}" (${l.ColumnType[b.dataType]}).`),!b.isPrimaryKey&&!b.isUnique&&e.push(`Referenced column "${m}.${h}" for foreign key on "${i}.${u}" is not PRIMARY KEY or UNIQUE.`)}}}return e}function fe(n,e){let t={[l.ColumnType.Integer]:[l.ColumnType.Integer,l.ColumnType.Serial,l.ColumnType.BigInteger,l.ColumnType.BigSerial],[l.ColumnType.BigInteger]:[l.ColumnType.BigInteger,l.ColumnType.BigSerial,l.ColumnType.Integer,l.ColumnType.Serial],[l.ColumnType.Serial]:[l.ColumnType.Integer,l.ColumnType.Serial],[l.ColumnType.BigSerial]:[l.ColumnType.BigInteger,l.ColumnType.BigSerial],[l.ColumnType.Varchar]:[l.ColumnType.Varchar,l.ColumnType.Text],[l.ColumnType.Text]:[l.ColumnType.Text,l.ColumnType.Varchar],[l.ColumnType.UUID]:[l.ColumnType.UUID]};return!!(n===e||t[n]?.includes(e))}var G=require("c12"),L=async()=>(await(0,G.loadConfig)({name:"gummy",rcFile:!1,globalRc:!1,dotenv:!1,packageJson:!1})).config;var Se={},H=j.default.bold.blue,Y=j.default.bold.red;async function X(){let n=await L(),e=await de(n.modelsDir),t=be(e),i=V(t);if(i.length>0){console.log(Y("Validation Error(s) found in the database schema:"));for(let h of i)console.log(Y(`- ${h}`));process.exit(1)}let a=await ge(n.migrationsDir),s=pe(a),o=ye(s,t);o.added.length===0&&o.removed.length===0&&o.modified.length===0&&o.foreignKeys.length===0&&o.indexes.added.length===0&&o.indexes.removed.length===0&&o.uniqueConstraints.added.length===0&&o.uniqueConstraints.removed.length===0&&(console.log(H("No changes detected. Migration file not generated.")),process.exit(0));let{actions:u,downActions:f}=Ce(o,t,s),m=new Date().toISOString().replace(/[-:T]/g,"").split(".")[0];Ne(u,f,m,n.migrationsDir),console.log(H("Migration script completed successfully."))}async function Z(n){if((await(0,z.readPackageJSON)()).type==="module"){let{tsImport:i}=await import("tsx/esm/api");return await i(n,{parentURL:Se.url})}let{require:t}=await import("tsx/cjs/api");return await t(n,__filename)}async function de(n="src/models"){let e=(0,M.globSync)(`${n}/**/*.{ts,js,mjs,mts}`,{absolute:!0}),t=[];for(let i of e)if(i.endsWith(".js")||i.endsWith(".ts")&&!i.endsWith(".d.ts")||i.endsWith(".mjs")||i.endsWith(".mts")&&!i.endsWith(".d.mts")){let a=await Z(i);Object.entries(a).forEach(([,o])=>{(0,$.isTable)(o)&&t.push(o)});let s=a.default;(0,$.isTable)(s)&&t.push(s)}return t}var me=n=>"length"in n&&typeof n.length=="number",he=n=>{let e=$.Table.columns(n),t=$.Table.options(n);return{columns:Object.entries(e).reduce((i,[a,s])=>{let{foreignKeyConfigs:o}=s.config;return i[s.name]={name:s.name,dataType:s.columnType,length:me(s)?s.length:void 0,isPrimaryKey:s.primary,notNull:s.notNull,hasDbDefault:s.dbDefault!=null,dbDefault:s.dbDefault,isUnique:s.isUnique,references:o!=null?`${o?.ref.table.tableName}.${o?.ref.name}`:void 0,onDelete:o?.actions.onDelete},i},{}),indexes:[...Object.entries(e).map(([,i])=>i).filter(i=>i.index).map(i=>({table:n.tableName,columns:[i.name]})),...t?.indexes?.map(i=>({table:n.tableName,columns:i}))??[]],uniqueConstraints:t?.uniqueConstraints??[]}};function be(n){let e={tables:{}};return n.forEach(t=>{let i=t.tableName;e.tables[i]=he(t)}),e}async function ge(n="migrations"){if(!x.existsSync(n))return[];let e=(0,M.globSync)(`${n}/**/*.{ts,js,mjs,mts}`,{absolute:!0}),t=[];for(let i of e.sort()){let a=await Z(i);a.actions&&Array.isArray(a.actions)&&t.push(...a.actions)}return t}function pe(n){let e={tables:{}};for(let t of n)t.applyToState(e);return e}function ye(n,e){let t={added:[],removed:[],modified:[],foreignKeys:[],indexes:{added:[],removed:[]},uniqueConstraints:{added:[],removed:[]}};for(let[i,a]of Object.entries(e.tables)){let s=n.tables[i];if(!s){let c=Object.values(a.columns).map(r=>({...r,references:void 0}));t.added.push(new C(i,c,{indexes:a.indexes,uniqueConstraints:a.uniqueConstraints}));for(let r of Object.values(a.columns))if(r.references){let[p,D]=r.references.split(".");t.foreignKeys.push(new g(i,r.name,p,D,{onDelete:r.onDelete,onUpdate:r.onUpdate}))}continue}for(let[c,r]of Object.entries(a.columns)){let p=s.columns[c];if(p){let D=xe(p,r);if(D&&t.modified.push(new A(i,c,D)),(p.references!==r.references||p.onDelete!==r.onDelete)&&(p.references&&t.foreignKeys.push(new w(i,c)),r.references)){let[J,P]=r.references.split(".");t.foreignKeys.push(new g(i,c,J,P,{onDelete:r.onDelete,onUpdate:r.onUpdate}))}}else{let D={...r,references:void 0};if(t.added.push(new S(i,D)),r.references){let[J,P]=r.references.split(".");t.foreignKeys.push(new g(i,c,J,P,{onDelete:r.onDelete,onUpdate:r.onUpdate}))}}}for(let c of Object.keys(s.columns))a.columns[c]||t.removed.push(new T(i,c));let o=a.indexes||[],u=s.indexes||[],f=o.filter(c=>!u.some(r=>y(r.columns,c.columns))),m=u.filter(c=>!o.some(r=>y(r.columns,c.columns)));for(let c of f)t.indexes.added.push(new q(i,c.columns));for(let c of m)t.indexes.removed.push(new v(i,c.columns));let h=a.uniqueConstraints||[],b=s.uniqueConstraints||[],ie=h.filter(c=>!b.some(r=>y(r,c))),se=b.filter(c=>!h.some(r=>y(r,c)));for(let c of ie)t.uniqueConstraints.added.push(new O(i,c));for(let c of se)t.uniqueConstraints.removed.push(new I(i,c))}for(let i of Object.keys(n.tables))e.tables[i]||t.removed.push(new N(i));return t}function xe(n,e){let t={},i=!1;n.dataType!==e.dataType&&(t.dataType=e.dataType,i=!0),n.length!==e.length&&(t.length=e.length,i=!0),n.isPrimaryKey!==e.isPrimaryKey&&(t.isPrimaryKey=e.isPrimaryKey,i=!0),n.notNull!==e.notNull&&(t.notNull=e.notNull,i=!0);let a=n.hasDbDefault?n.dbDefault:void 0,s=e.hasDbDefault?e.dbDefault:void 0;return a!==s&&(t.hasDbDefault=e.hasDbDefault,t.dbDefault=e.dbDefault,i=!0),n.isUnique!==e.isUnique&&(t.isUnique=e.isUnique,i=!0),i?t:null}function De(n,e){let t={};return n.dataType!==void 0&&(t.dataType=e.dataType,t.length=e.length),n.isPrimaryKey!==void 0&&(t.isPrimaryKey=e.isPrimaryKey),n.notNull!==void 0&&(t.notNull=e.notNull),n.hasDbDefault!==void 0&&(t.hasDbDefault=e.hasDbDefault,t.dbDefault=e.dbDefault),n.isUnique!==void 0&&(t.isUnique=e.isUnique),t}function Ce(n,e,t){let i=[],a=[];for(let s of n.added)i.push(s),s instanceof C?a.unshift(new N(s.table)):s instanceof S&&a.unshift(new T(s.table,s.column.name));for(let s of n.removed)if(i.push(s),s instanceof N){let o=t.tables[s.table];a.unshift(new C(s.table,Object.values(o.columns),{indexes:o.indexes,uniqueConstraints:o.uniqueConstraints}))}else if(s instanceof T){let o=t.tables[s.table].columns[s.columnName];a.unshift(new S(s.table,o))}for(let s of n.modified)if(i.push(s),s instanceof A){let o=De(s.changes,t.tables[s.table].columns[s.columnName]);a.unshift(new A(s.table,s.columnName,o))}for(let s of n.foreignKeys)if(i.push(s),s instanceof g)a.unshift(new w(s.table,s.columnName));else if(s instanceof w){let o=t.tables[s.table].columns[s.columnName];if(o.references){let[u,f]=o.references.split(".");a.unshift(new g(s.table,s.columnName,u,f,{onDelete:o.onDelete,onUpdate:o.onUpdate}))}}for(let s of n.indexes.added)i.push(s),a.unshift(new v(s.table,s.columns));for(let s of n.indexes.removed)i.push(s),a.unshift(new q(s.table,s.columns));for(let s of n.uniqueConstraints.added)i.push(s),a.unshift(new I(s.table,s.columns));for(let s of n.uniqueConstraints.removed)i.push(s),a.unshift(new O(s.table,s.columns));return{actions:i,downActions:a}}function Ne(n,e,t,i="migrations"){x.existsSync(i)||x.mkdirSync(i);let a=t.replace(/[-: ]/g,""),s=Q.join(i,`${a}_migration.ts`),o=`import { Kysely } from 'kysely';
2
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const l=require(`./actions-hNkAFJIH.cjs`);let u=require(`commander`),d=require(`node:fs`);d=c(d);let f=require(`node:path`);f=c(f);let p=require(`chalk`);p=c(p);let m=require(`glob`),h=require(`gummy`),g=require(`pkg-types`);function _(e){let t=[],n=e.tables;for(let[r,i]of Object.entries(n)){let n=[],a=i.columns;for(let[i,o]of Object.entries(a))if(o.isPrimaryKey&&(n.push(i),o.notNull||t.push(`Primary key column "${i}" in table "${r}" must be NOT NULL.`)),o.references){let[n,a]=o.references.split(`.`);if(!e.tables[n])t.push(`Referenced table "${n}" for foreign key on "${r}.${i}" does not exist.`);else if(!e.tables[n].columns[a])t.push(`Referenced column "${n}.${a}" for foreign key on "${r}.${i}" does not exist.`);else{let s=e.tables[n].columns[a];v(o.dataType,s.dataType)||t.push(`Data type incompatibility between foreign key column "${r}.${i}" (${h.ColumnType[o.dataType]}) and referenced column "${n}.${a}" (${h.ColumnType[s.dataType]}).`),!s.isPrimaryKey&&!s.isUnique&&t.push(`Referenced column "${n}.${a}" for foreign key on "${r}.${i}" is not PRIMARY KEY or UNIQUE.`)}}}return t}function v(e,t){let n={[h.ColumnType.Integer]:[h.ColumnType.Integer,h.ColumnType.Serial,h.ColumnType.BigInteger,h.ColumnType.BigSerial],[h.ColumnType.BigInteger]:[h.ColumnType.BigInteger,h.ColumnType.BigSerial,h.ColumnType.Integer,h.ColumnType.Serial],[h.ColumnType.Serial]:[h.ColumnType.Integer,h.ColumnType.Serial],[h.ColumnType.BigSerial]:[h.ColumnType.BigInteger,h.ColumnType.BigSerial],[h.ColumnType.Varchar]:[h.ColumnType.Varchar,h.ColumnType.Text],[h.ColumnType.Text]:[h.ColumnType.Text,h.ColumnType.Varchar],[h.ColumnType.UUID]:[h.ColumnType.UUID]};return!!(e===t||n[e]?.includes(t))}const y=p.default.bold.blue,b=p.default.bold.red;async function x(){let e=await l.g(),t=E(await C(e.modelsDir)),n=_(t);if(n.length>0){console.log(b(`Validation Error(s) found in the database schema:`));for(let e of n)console.log(b(`- ${e}`));process.exit(1)}let r=O(await D(e.migrationsDir)),i=k(r,t);i.added.length===0&&i.removed.length===0&&i.modified.length===0&&i.foreignKeys.length===0&&i.indexes.added.length===0&&i.indexes.removed.length===0&&i.uniqueConstraints.added.length===0&&i.uniqueConstraints.removed.length===0&&(console.log(y(`No changes detected. Migration file not generated.`)),process.exit(0));let{actions:a,downActions:o}=M(i,t,r),s=new Date().toISOString().replace(/[-:T]/g,``).split(`.`)[0];N(a,o,s,e.migrationsDir),console.log(y(`Migration script completed successfully.`))}async function S(e){if((await(0,g.readPackageJSON)()).type===`module`){let{tsImport:t}=await Promise.resolve().then(()=>require(`./api-DW-cLEvI.cjs`));return await t(e,{parentURL:require(`url`).pathToFileURL(__filename).href})}let{require:t}=await Promise.resolve().then(()=>require(`./api-sEy5qKXe.cjs`));return await t(e,__filename)}async function C(e=`src/models`){let t=(0,m.globSync)(`${e}/**/*.{ts,js,mjs,mts}`,{absolute:!0}),n=[];for(let e of t)if(e.endsWith(`.js`)||e.endsWith(`.ts`)&&!e.endsWith(`.d.ts`)||e.endsWith(`.mjs`)||e.endsWith(`.mts`)&&!e.endsWith(`.d.mts`)){let t=await S(e);Object.entries(t).forEach(([,e])=>{(0,h.isTable)(e)&&n.push(e)});let r=t.default;(0,h.isTable)(r)&&n.push(r)}return n}const w=e=>`length`in e&&typeof e.length==`number`,T=e=>{let t=h.Table.columns(e),n=h.Table.options(e);return{columns:Object.entries(t).reduce((e,[t,n])=>{let{foreignKeyConfigs:r}=n.config;return e[n.name]={name:n.name,dataType:n.columnType,length:w(n)?n.length:void 0,isPrimaryKey:n.primary,notNull:n.notNull,hasDbDefault:n.dbDefault!=null,dbDefault:n.dbDefault,isUnique:n.isUnique,references:r==null?void 0:`${r?.ref.table.tableName}.${r?.ref.name}`,onDelete:r?.actions.onDelete},e},{}),indexes:[...Object.entries(t).map(([,e])=>e).filter(e=>e.index).map(t=>({table:e.tableName,columns:[t.name]})),...n?.indexes?.map(t=>({table:e.tableName,columns:t}))??[]],uniqueConstraints:n?.uniqueConstraints??[]}};function E(e){let t={tables:{}};return e.forEach(e=>{let n=e.tableName;t.tables[n]=T(e)}),t}async function D(e=`migrations`){if(!d.existsSync(e))return[];let t=(0,m.globSync)(`${e}/**/*.{ts,js,mjs,mts}`,{absolute:!0}),n=[];for(let e of t.sort()){let t=await S(e);t.actions&&Array.isArray(t.actions)&&n.push(...t.actions)}return n}function O(e){let t={tables:{}};for(let n of e)n.applyToState(t);return t}function k(e,t){let n={added:[],removed:[],modified:[],foreignKeys:[],indexes:{added:[],removed:[]},uniqueConstraints:{added:[],removed:[]}};for(let[r,i]of Object.entries(t.tables)){let t=e.tables[r];if(!t){let e=Object.values(i.columns).map(e=>({...e,references:void 0}));n.added.push(new l.o(r,e,{indexes:i.indexes,uniqueConstraints:i.uniqueConstraints}));for(let e of Object.values(i.columns))if(e.references){let[t,i]=e.references.split(`.`);n.foreignKeys.push(new l.n(r,e.name,t,i,{onDelete:e.onDelete,onUpdate:e.onUpdate}))}continue}for(let[e,a]of Object.entries(i.columns)){let i=t.columns[e];if(i){let t=A(i,a);if(t&&n.modified.push(new l.i(r,e,t)),(i.references!==a.references||i.onDelete!==a.onDelete)&&(i.references&&n.foreignKeys.push(new l.c(r,e)),a.references)){let[t,i]=a.references.split(`.`);n.foreignKeys.push(new l.n(r,e,t,i,{onDelete:a.onDelete,onUpdate:a.onUpdate}))}}else{let t={...a,references:void 0};if(n.added.push(new l.t(r,t)),a.references){let[t,i]=a.references.split(`.`);n.foreignKeys.push(new l.n(r,e,t,i,{onDelete:a.onDelete,onUpdate:a.onUpdate}))}}}for(let e of Object.keys(t.columns))i.columns[e]||n.removed.push(new l.s(r,e));let a=i.indexes||[],o=t.indexes||[],s=a.filter(e=>!o.some(t=>l.m(t.columns,e.columns))),c=o.filter(e=>!a.some(t=>l.m(t.columns,e.columns)));for(let e of s)n.indexes.added.push(new l.a(r,e.columns));for(let e of c)n.indexes.removed.push(new l.l(r,e.columns));let u=i.uniqueConstraints||[],d=t.uniqueConstraints||[],f=u.filter(e=>!d.some(t=>l.m(t,e))),p=d.filter(e=>!u.some(t=>l.m(t,e)));for(let e of f)n.uniqueConstraints.added.push(new l.r(r,e));for(let e of p)n.uniqueConstraints.removed.push(new l.d(r,e))}for(let r of Object.keys(e.tables))t.tables[r]||n.removed.push(new l.u(r));return n}function A(e,t){let n={},r=!1;return e.dataType!==t.dataType&&(n.dataType=t.dataType,r=!0),e.length!==t.length&&(n.length=t.length,r=!0),e.isPrimaryKey!==t.isPrimaryKey&&(n.isPrimaryKey=t.isPrimaryKey,r=!0),e.notNull!==t.notNull&&(n.notNull=t.notNull,r=!0),(e.hasDbDefault?e.dbDefault:void 0)!==(t.hasDbDefault?t.dbDefault:void 0)&&(n.hasDbDefault=t.hasDbDefault,n.dbDefault=t.dbDefault,r=!0),e.isUnique!==t.isUnique&&(n.isUnique=t.isUnique,r=!0),r?n:null}function j(e,t){let n={};return e.dataType!==void 0&&(n.dataType=t.dataType,n.length=t.length),e.isPrimaryKey!==void 0&&(n.isPrimaryKey=t.isPrimaryKey),e.notNull!==void 0&&(n.notNull=t.notNull),e.hasDbDefault!==void 0&&(n.hasDbDefault=t.hasDbDefault,n.dbDefault=t.dbDefault),e.isUnique!==void 0&&(n.isUnique=t.isUnique),n}function M(e,t,n){let r=[],i=[];for(let t of e.added)r.push(t),t instanceof l.o?i.unshift(new l.u(t.table)):t instanceof l.t&&i.unshift(new l.s(t.table,t.column.name));for(let t of e.removed)if(r.push(t),t instanceof l.u){let e=n.tables[t.table];i.unshift(new l.o(t.table,Object.values(e.columns),{indexes:e.indexes,uniqueConstraints:e.uniqueConstraints}))}else if(t instanceof l.s){let e=n.tables[t.table].columns[t.columnName];i.unshift(new l.t(t.table,e))}for(let t of e.modified)if(r.push(t),t instanceof l.i){let e=j(t.changes,n.tables[t.table].columns[t.columnName]);i.unshift(new l.i(t.table,t.columnName,e))}for(let t of e.foreignKeys)if(r.push(t),t instanceof l.n)i.unshift(new l.c(t.table,t.columnName));else if(t instanceof l.c){let e=n.tables[t.table].columns[t.columnName];if(e.references){let[n,r]=e.references.split(`.`);i.unshift(new l.n(t.table,t.columnName,n,r,{onDelete:e.onDelete,onUpdate:e.onUpdate}))}}for(let t of e.indexes.added)r.push(t),i.unshift(new l.l(t.table,t.columns));for(let t of e.indexes.removed)r.push(t),i.unshift(new l.a(t.table,t.columns));for(let t of e.uniqueConstraints.added)r.push(t),i.unshift(new l.d(t.table,t.columns));for(let t of e.uniqueConstraints.removed)r.push(t),i.unshift(new l.r(t.table,t.columns));return{actions:r,downActions:i}}function N(e,t,n,r=`migrations`){d.existsSync(r)||d.mkdirSync(r);let i=n.replace(/[-: ]/g,``),a=f.join(r,`${i}_migration.ts`),o=e.map(e=>e.toCode()),s=t.map(e=>e.toCode()),c=`${`// Generated by Gummy on ${n}`}
3
+
4
+ import { Kysely } from 'kysely';
3
5
  import {
4
6
  MigrationAction,
5
7
  CreateTableAction,
@@ -15,17 +17,15 @@ import {
15
17
  DropUniqueConstraintAction,
16
18
  executeActions
17
19
  } from 'gummy-cli';
18
- `,u=n.map(b=>b.toCode()),f=e.map(b=>b.toCode()),h=`${`// Generated by Gummy on ${t}`}
19
-
20
- ${o}
20
+
21
21
 
22
22
  export const actions: MigrationAction[] = [
23
- ${u.join(`,
23
+ ${o.join(`,
24
24
  `)}
25
25
  ];
26
26
 
27
27
  export const downActions: MigrationAction[] = [
28
- ${f.join(`,
28
+ ${s.join(`,
29
29
  `)}
30
30
  ];
31
31
 
@@ -38,5 +38,5 @@ export async function up(db: Kysely<any>): Promise<void> {
38
38
  export async function down(db: Kysely<any>): Promise<void> {
39
39
  await executeActions(downActions, db);
40
40
  }
41
- `;x.writeFileSync(s,h)}var te=new ee.Command().name("makemigrations").action(async()=>{await X()});process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function Te(){let n=new ne.Command;n.addCommand(te),n.parse()}Te();
41
+ `;d.writeFileSync(a,c)}const P=new u.Command().name(`makemigrations`).action(async()=>{await x()});process.on(`SIGINT`,()=>process.exit(0)),process.on(`SIGTERM`,()=>process.exit(0));async function F(){let e=new u.Command;e.addCommand(P),e.parse()}F(),exports.n=c,exports.t=o;
42
42
  //# sourceMappingURL=bin.cjs.map