{"version":3,"sources":["../src/index.ts"],"names":["SQLiteStatementType"],"mappings":"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","sourcesContent":["enum SQLiteStatementType {\n  SELECT = \"SELECT\",\n  INSERT = \"INSERT\",\n  UPDATE = \"UPDATE\",\n  DELETE = \"DELETE\",\n  CREATE_TABLE = \"CREATE TABLE\",\n  ALTER_TABLE = \"ALTER TABLE\",\n  DROP_TABLE = \"DROP TABLE\",\n  CREATE_INDEX = \"CREATE INDEX\",\n  DROP_INDEX = \"DROP INDEX\",\n  CREATE_VIEW = \"CREATE VIEW\",\n  ALTER_VIEW = \"ALTER VIEW\",\n  DROP_VIEW = \"DROP VIEW\",\n  PRAGMA = \"PRAGMA\",\n  BEGIN_TRANSACTION = \"BEGIN( TRANSACTION)?\",\n  COMMIT = \"COMMIT\",\n  ROLLBACK = \"ROLLBACK\",\n  VACUUM = \"VACUUM\",\n  ANALYZE = \"ANALYZE\",\n  ATTACH = \"ATTACH\",\n  DETACH = \"DETACH\",\n  REINDEX = \"REINDEX\",\n  SAVEPOINT = \"SAVEPOINT\",\n  RELEASE = \"RELEASE( SAVEPOINT)?\",\n  CREATE_TRIGGER = \"CREATE TRIGGER\",\n  DROP_TRIGGER = \"DROP TRIGGER\",\n  CREATE_VIRTUAL_TABLE = \"CREATE VIRTUAL TABLE\",\n  DROP_VIRTUAL_TABLE = \"DROP VIRTUAL TABLE\",\n}\n\nexport function isStatement(\n  sqlStatement: string,\n  statementType: SQLiteStatementType\n): boolean {\n  const regex = new RegExp(`^\\\\s*(${statementType})\\\\b`, \"i\");\n\n  return regex.test(sqlStatement.trim());\n}\n\nexport function getStatementType(sql: string): SQLiteStatementType | null {\n  const trimmedSql = sql.trim().toUpperCase();\n\n  for (const [key, value] of Object.entries(SQLiteStatementType)) {\n    const regex = new RegExp(`^${value}\\\\b`, \"i\");\n\n    if (regex.test(trimmedSql)) {\n      return SQLiteStatementType[key as keyof typeof SQLiteStatementType];\n    }\n  }\n\n  return null;\n}\n\nexport const isSelect = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.SELECT;\n\nexport const isInsert = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.INSERT;\n\nexport const isUpdate = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.UPDATE;\n\nexport const isDelete = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.DELETE;\n\nexport const isCreateTable = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.CREATE_TABLE;\n\nexport const isAlterTable = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.ALTER_TABLE;\n\nexport const isDropTable = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.DROP_TABLE;\n\nexport const isCreateIndex = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.CREATE_INDEX;\n\nexport const isDropIndex = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.DROP_INDEX;\n\nexport const isCreateView = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.CREATE_VIEW;\n\nexport const isAlterView = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.ALTER_VIEW;\n\nexport const isDropView = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.DROP_VIEW;\n\nexport const isPragma = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.PRAGMA;\n\nexport const isBeginTransaction = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.BEGIN_TRANSACTION;\n\nexport const isCommit = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.COMMIT;\n\nexport const isRollback = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.ROLLBACK;\n\nexport const isVacuum = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.VACUUM;\n\nexport const isAnalyze = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.ANALYZE;\n\nexport const isAttach = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.ATTACH;\n\nexport const isDetach = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.DETACH;\n\nexport const isReindex = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.REINDEX;\n\nexport const isSavepoint = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.SAVEPOINT;\n\nexport const isRelease = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.RELEASE;\n\nexport const isCreateTrigger = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.CREATE_TRIGGER;\n\nexport const isDropTrigger = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.DROP_TRIGGER;\n\nexport const isCreateVirtualTable = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.CREATE_VIRTUAL_TABLE;\n\nexport const isDropVirtualTable = (sql: string) =>\n  getStatementType(sql) === SQLiteStatementType.DROP_VIRTUAL_TABLE;\n"]}