{"version":3,"file":"dialect.mjs","sources":["../../src/dialects/dialect.ts"],"sourcesContent":["import type { Database } from '..';\nimport type { ForeignKey, Index, Schema } from '../schema';\n\nexport interface SchemaInspector {\n  getSchema(): Promise<Schema>;\n  getIndexes(tableName: string): Promise<Index[]>;\n  getForeignKeys(tableName: string): Promise<ForeignKey[]>;\n  getTables(): Promise<string[]>;\n}\n\nexport default class Dialect {\n  db: Database;\n\n  schemaInspector: SchemaInspector = {} as SchemaInspector;\n\n  client: string;\n\n  constructor(db: Database, client: string) {\n    this.db = db;\n    this.client = client;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  configure(conn?: any) {}\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  async initialize(_nativeConnection?: unknown) {\n    // noop\n  }\n\n  getTables() {\n    throw new Error('getTables not implemented for this dialect');\n  }\n\n  getSqlType(type: unknown) {\n    return type;\n  }\n\n  canAlterConstraints() {\n    return true;\n  }\n\n  usesForeignKeys() {\n    return false;\n  }\n\n  useReturning() {\n    return false;\n  }\n\n  supportsUnsigned() {\n    return false;\n  }\n\n  supportsOperator(operator?: string): boolean;\n  supportsOperator(): boolean {\n    return true;\n  }\n\n  async startSchemaUpdate() {\n    // noop\n  }\n\n  async endSchemaUpdate() {\n    // noop\n  }\n\n  transformErrors(error: Error | { message: string }) {\n    if (error instanceof Error) {\n      throw error;\n    }\n\n    throw new Error(error.message);\n  }\n\n  canAddIncrements() {\n    return true;\n  }\n\n  /**\n   * Get column type conversion SQL for complex type changes\n   * Override in specific dialects to handle database-specific conversions\n   * @param currentType - The current database data type\n   * @param targetType - The target Strapi type\n   * @returns Conversion SQL details or null if no special handling needed\n   */\n  getColumnTypeConversionSQL(\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    currentType: string,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    targetType: string\n  ): { sql: string; typeClause: string; warning?: string } | null {\n    return null;\n  }\n}\n"],"names":["Dialect","configure","conn","initialize","_nativeConnection","getTables","Error","getSqlType","type","canAlterConstraints","usesForeignKeys","useReturning","supportsUnsigned","supportsOperator","startSchemaUpdate","endSchemaUpdate","transformErrors","error","message","canAddIncrements","getColumnTypeConversionSQL","currentType","targetType","db","client","schemaInspector"],"mappings":"AAUe,MAAMA,OAAAA,CAAAA;;IAanBC,SAAUC,CAAAA,IAAU,EAAE;;IAGtB,MAAMC,UAAAA,CAAWC,iBAA2B,EAAE;;AAE9C;IAEAC,SAAY,GAAA;AACV,QAAA,MAAM,IAAIC,KAAM,CAAA,4CAAA,CAAA;AAClB;AAEAC,IAAAA,UAAAA,CAAWC,IAAa,EAAE;QACxB,OAAOA,IAAAA;AACT;IAEAC,mBAAsB,GAAA;QACpB,OAAO,IAAA;AACT;IAEAC,eAAkB,GAAA;QAChB,OAAO,KAAA;AACT;IAEAC,YAAe,GAAA;QACb,OAAO,KAAA;AACT;IAEAC,gBAAmB,GAAA;QACjB,OAAO,KAAA;AACT;IAGAC,gBAA4B,GAAA;QAC1B,OAAO,IAAA;AACT;AAEA,IAAA,MAAMC,iBAAoB,GAAA;;AAE1B;AAEA,IAAA,MAAMC,eAAkB,GAAA;;AAExB;AAEAC,IAAAA,eAAAA,CAAgBC,KAAkC,EAAE;AAClD,QAAA,IAAIA,iBAAiBX,KAAO,EAAA;YAC1B,MAAMW,KAAAA;AACR;QAEA,MAAM,IAAIX,KAAMW,CAAAA,KAAAA,CAAMC,OAAO,CAAA;AAC/B;IAEAC,gBAAmB,GAAA;QACjB,OAAO,IAAA;AACT;AAEA;;;;;;AAMC,MACDC;AAEEC,IAAAA,WAAmB;AAEnBC,IAAAA,UAAkB,EAC4C;QAC9D,OAAO,IAAA;AACT;IA5EA,WAAYC,CAAAA,EAAY,EAAEC,MAAc,CAAE;AAJ1CC,QAAAA,IAAAA,CAAAA,eAAAA,GAAmC,EAAC;QAKlC,IAAI,CAACF,EAAE,GAAGA,EAAAA;QACV,IAAI,CAACC,MAAM,GAAGA,MAAAA;AAChB;AA0EF;;;;"}