the-forest/client/node_modules/.cache/babel-loader/2df3a0449c5e5d0d5bb3c2b0b92c7b0933ca3376c5ff6252ee83e9fddccd66e6.json
2024-09-17 20:35:18 -04:00

1 line
37 KiB
JSON

{"ast":null,"code":"import Database from \"libsql\";\nimport { Buffer } from \"node:buffer\";\nimport { LibsqlError } from \"@libsql/core/api\";\nimport { expandConfig, isInMemoryConfig } from \"@libsql/core/config\";\nimport { supportedUrlLink, transactionModeToBegin, ResultSetImpl } from \"@libsql/core/util\";\nexport * from \"@libsql/core/api\";\nexport function createClient(config) {\n return _createClient(expandConfig(config, true));\n}\n/** @private */\nexport function _createClient(config) {\n if (config.scheme !== \"file\") {\n throw new LibsqlError(`URL scheme ${JSON.stringify(config.scheme + \":\")} is not supported by the local sqlite3 client. ` + `For more information, please read ${supportedUrlLink}`, \"URL_SCHEME_NOT_SUPPORTED\");\n }\n const authority = config.authority;\n if (authority !== undefined) {\n const host = authority.host.toLowerCase();\n if (host !== \"\" && host !== \"localhost\") {\n throw new LibsqlError(`Invalid host in file URL: ${JSON.stringify(authority.host)}. ` + 'A \"file:\" URL with an absolute path should start with one slash (\"file:/absolute/path.db\") ' + 'or with three slashes (\"file:///absolute/path.db\"). ' + `For more information, please read ${supportedUrlLink}`, \"URL_INVALID\");\n }\n if (authority.port !== undefined) {\n throw new LibsqlError(\"File URL cannot have a port\", \"URL_INVALID\");\n }\n if (authority.userinfo !== undefined) {\n throw new LibsqlError(\"File URL cannot have username and password\", \"URL_INVALID\");\n }\n }\n let isInMemory = isInMemoryConfig(config);\n if (isInMemory && config.syncUrl) {\n throw new LibsqlError(`Embedded replica must use file for local db but URI with in-memory mode were provided instead: ${config.path}`, \"URL_INVALID\");\n }\n let path = config.path;\n if (isInMemory) {\n // note: we should prepend file scheme in order for SQLite3 to recognize :memory: connection query parameters\n path = `${config.scheme}:${config.path}`;\n }\n const options = {\n authToken: config.authToken,\n encryptionKey: config.encryptionKey,\n syncUrl: config.syncUrl,\n syncPeriod: config.syncInterval\n };\n const db = new Database(path, options);\n executeStmt(db, \"SELECT 1 AS checkThatTheDatabaseCanBeOpened\", config.intMode);\n return new Sqlite3Client(path, options, db, config.intMode);\n}\nexport class Sqlite3Client {\n #path;\n #options;\n #db;\n #intMode;\n closed;\n protocol;\n /** @private */\n constructor(path, options, db, intMode) {\n this.#path = path;\n this.#options = options;\n this.#db = db;\n this.#intMode = intMode;\n this.closed = false;\n this.protocol = \"file\";\n }\n async execute(stmtOrSql, args) {\n let stmt;\n if (typeof stmtOrSql === \"string\") {\n stmt = {\n sql: stmtOrSql,\n args: args || []\n };\n } else {\n stmt = stmtOrSql;\n }\n this.#checkNotClosed();\n return executeStmt(this.#getDb(), stmt, this.#intMode);\n }\n async batch(stmts, mode = \"deferred\") {\n this.#checkNotClosed();\n const db = this.#getDb();\n try {\n executeStmt(db, transactionModeToBegin(mode), this.#intMode);\n const resultSets = stmts.map(stmt => {\n if (!db.inTransaction) {\n throw new LibsqlError(\"The transaction has been rolled back\", \"TRANSACTION_CLOSED\");\n }\n return executeStmt(db, stmt, this.#intMode);\n });\n executeStmt(db, \"COMMIT\", this.#intMode);\n return resultSets;\n } finally {\n if (db.inTransaction) {\n executeStmt(db, \"ROLLBACK\", this.#intMode);\n }\n }\n }\n async migrate(stmts) {\n this.#checkNotClosed();\n const db = this.#getDb();\n try {\n executeStmt(db, \"PRAGMA foreign_keys=off\", this.#intMode);\n executeStmt(db, transactionModeToBegin(\"deferred\"), this.#intMode);\n const resultSets = stmts.map(stmt => {\n if (!db.inTransaction) {\n throw new LibsqlError(\"The transaction has been rolled back\", \"TRANSACTION_CLOSED\");\n }\n return executeStmt(db, stmt, this.#intMode);\n });\n executeStmt(db, \"COMMIT\", this.#intMode);\n return resultSets;\n } finally {\n if (db.inTransaction) {\n executeStmt(db, \"ROLLBACK\", this.#intMode);\n }\n executeStmt(db, \"PRAGMA foreign_keys=on\", this.#intMode);\n }\n }\n async transaction(mode = \"write\") {\n const db = this.#getDb();\n executeStmt(db, transactionModeToBegin(mode), this.#intMode);\n this.#db = null; // A new connection will be lazily created on next use\n return new Sqlite3Transaction(db, this.#intMode);\n }\n async executeMultiple(sql) {\n this.#checkNotClosed();\n const db = this.#getDb();\n try {\n return executeMultiple(db, sql);\n } finally {\n if (db.inTransaction) {\n executeStmt(db, \"ROLLBACK\", this.#intMode);\n }\n }\n }\n async sync() {\n this.#checkNotClosed();\n const rep = await this.#getDb().sync();\n return {\n frames_synced: rep.frames_synced,\n frame_no: rep.frame_no\n };\n }\n close() {\n this.closed = true;\n if (this.#db !== null) {\n this.#db.close();\n }\n }\n #checkNotClosed() {\n if (this.closed) {\n throw new LibsqlError(\"The client is closed\", \"CLIENT_CLOSED\");\n }\n }\n // Lazily creates the database connection and returns it\n #getDb() {\n if (this.#db === null) {\n this.#db = new Database(this.#path, this.#options);\n }\n return this.#db;\n }\n}\nexport class Sqlite3Transaction {\n #database;\n #intMode;\n /** @private */\n constructor(database, intMode) {\n this.#database = database;\n this.#intMode = intMode;\n }\n async execute(stmtOrSql, args) {\n let stmt;\n if (typeof stmtOrSql === \"string\") {\n stmt = {\n sql: stmtOrSql,\n args: args || []\n };\n } else {\n stmt = stmtOrSql;\n }\n this.#checkNotClosed();\n return executeStmt(this.#database, stmt, this.#intMode);\n }\n async batch(stmts) {\n return stmts.map(stmt => {\n this.#checkNotClosed();\n return executeStmt(this.#database, stmt, this.#intMode);\n });\n }\n async executeMultiple(sql) {\n this.#checkNotClosed();\n return executeMultiple(this.#database, sql);\n }\n async rollback() {\n if (!this.#database.open) {\n return;\n }\n this.#checkNotClosed();\n executeStmt(this.#database, \"ROLLBACK\", this.#intMode);\n }\n async commit() {\n this.#checkNotClosed();\n executeStmt(this.#database, \"COMMIT\", this.#intMode);\n }\n close() {\n if (this.#database.inTransaction) {\n executeStmt(this.#database, \"ROLLBACK\", this.#intMode);\n }\n }\n get closed() {\n return !this.#database.inTransaction;\n }\n #checkNotClosed() {\n if (this.closed) {\n throw new LibsqlError(\"The transaction is closed\", \"TRANSACTION_CLOSED\");\n }\n }\n}\nfunction executeStmt(db, stmt, intMode) {\n let sql;\n let args;\n if (typeof stmt === \"string\") {\n sql = stmt;\n args = [];\n } else {\n sql = stmt.sql;\n if (Array.isArray(stmt.args)) {\n args = stmt.args.map(value => valueToSql(value, intMode));\n } else {\n args = {};\n for (const name in stmt.args) {\n const argName = name[0] === \"@\" || name[0] === \"$\" || name[0] === \":\" ? name.substring(1) : name;\n args[argName] = valueToSql(stmt.args[name], intMode);\n }\n }\n }\n try {\n const sqlStmt = db.prepare(sql);\n sqlStmt.safeIntegers(true);\n let returnsData = true;\n try {\n sqlStmt.raw(true);\n } catch {\n // raw() throws an exception if the statement does not return data\n returnsData = false;\n }\n if (returnsData) {\n const columns = Array.from(sqlStmt.columns().map(col => col.name));\n const columnTypes = Array.from(sqlStmt.columns().map(col => col.type ?? \"\"));\n const rows = sqlStmt.all(args).map(sqlRow => {\n return rowFromSql(sqlRow, columns, intMode);\n });\n // TODO: can we get this info from better-sqlite3?\n const rowsAffected = 0;\n const lastInsertRowid = undefined;\n return new ResultSetImpl(columns, columnTypes, rows, rowsAffected, lastInsertRowid);\n } else {\n const info = sqlStmt.run(args);\n const rowsAffected = info.changes;\n const lastInsertRowid = BigInt(info.lastInsertRowid);\n return new ResultSetImpl([], [], [], rowsAffected, lastInsertRowid);\n }\n } catch (e) {\n throw mapSqliteError(e);\n }\n}\nfunction rowFromSql(sqlRow, columns, intMode) {\n const row = {};\n // make sure that the \"length\" property is not enumerable\n Object.defineProperty(row, \"length\", {\n value: sqlRow.length\n });\n for (let i = 0; i < sqlRow.length; ++i) {\n const value = valueFromSql(sqlRow[i], intMode);\n Object.defineProperty(row, i, {\n value\n });\n const column = columns[i];\n if (!Object.hasOwn(row, column)) {\n Object.defineProperty(row, column, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n }\n }\n return row;\n}\nfunction valueFromSql(sqlValue, intMode) {\n if (typeof sqlValue === \"bigint\") {\n if (intMode === \"number\") {\n if (sqlValue < minSafeBigint || sqlValue > maxSafeBigint) {\n throw new RangeError(\"Received integer which cannot be safely represented as a JavaScript number\");\n }\n return Number(sqlValue);\n } else if (intMode === \"bigint\") {\n return sqlValue;\n } else if (intMode === \"string\") {\n return \"\" + sqlValue;\n } else {\n throw new Error(\"Invalid value for IntMode\");\n }\n } else if (sqlValue instanceof Buffer) {\n return sqlValue.buffer;\n }\n return sqlValue;\n}\nconst minSafeBigint = -9007199254740991n;\nconst maxSafeBigint = 9007199254740991n;\nfunction valueToSql(value, intMode) {\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new RangeError(\"Only finite numbers (not Infinity or NaN) can be passed as arguments\");\n }\n return value;\n } else if (typeof value === \"bigint\") {\n if (value < minInteger || value > maxInteger) {\n throw new RangeError(\"bigint is too large to be represented as a 64-bit integer and passed as argument\");\n }\n return value;\n } else if (typeof value === \"boolean\") {\n switch (intMode) {\n case \"bigint\":\n return value ? 1n : 0n;\n case \"string\":\n return value ? \"1\" : \"0\";\n default:\n return value ? 1 : 0;\n }\n } else if (value instanceof ArrayBuffer) {\n return Buffer.from(value);\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === undefined) {\n throw new TypeError(\"undefined cannot be passed as argument to the database\");\n } else {\n return value;\n }\n}\nconst minInteger = -9223372036854775808n;\nconst maxInteger = 9223372036854775807n;\nfunction executeMultiple(db, sql) {\n try {\n db.exec(sql);\n } catch (e) {\n throw mapSqliteError(e);\n }\n}\nfunction mapSqliteError(e) {\n if (e instanceof Database.SqliteError) {\n return new LibsqlError(e.message, e.code, e.rawCode, e);\n }\n return e;\n}","map":{"version":3,"names":["Database","Buffer","LibsqlError","expandConfig","isInMemoryConfig","supportedUrlLink","transactionModeToBegin","ResultSetImpl","createClient","config","_createClient","scheme","JSON","stringify","authority","undefined","host","toLowerCase","port","userinfo","isInMemory","syncUrl","path","options","authToken","encryptionKey","syncPeriod","syncInterval","db","executeStmt","intMode","Sqlite3Client","closed","protocol","constructor","execute","stmtOrSql","args","stmt","sql","checkNotClosed","getDb","batch","stmts","mode","resultSets","map","inTransaction","migrate","transaction","Sqlite3Transaction","executeMultiple","sync","rep","frames_synced","frame_no","close","#checkNotClosed","#getDb","database","rollback","open","commit","Array","isArray","value","valueToSql","name","argName","substring","sqlStmt","prepare","safeIntegers","returnsData","raw","columns","from","col","columnTypes","type","rows","all","sqlRow","rowFromSql","rowsAffected","lastInsertRowid","info","run","changes","BigInt","e","mapSqliteError","row","Object","defineProperty","length","i","valueFromSql","column","hasOwn","enumerable","configurable","writable","sqlValue","minSafeBigint","maxSafeBigint","RangeError","Number","Error","buffer","isFinite","minInteger","maxInteger","ArrayBuffer","Date","valueOf","TypeError","exec","SqliteError","message","code","rawCode"],"sources":["/Users/shoofle/Projects/the-forest/node_modules/@libsql/client/lib-esm/sqlite3.js"],"sourcesContent":["import Database from \"libsql\";\nimport { Buffer } from \"node:buffer\";\nimport { LibsqlError } from \"@libsql/core/api\";\nimport { expandConfig, isInMemoryConfig } from \"@libsql/core/config\";\nimport { supportedUrlLink, transactionModeToBegin, ResultSetImpl, } from \"@libsql/core/util\";\nexport * from \"@libsql/core/api\";\nexport function createClient(config) {\n return _createClient(expandConfig(config, true));\n}\n/** @private */\nexport function _createClient(config) {\n if (config.scheme !== \"file\") {\n throw new LibsqlError(`URL scheme ${JSON.stringify(config.scheme + \":\")} is not supported by the local sqlite3 client. ` +\n `For more information, please read ${supportedUrlLink}`, \"URL_SCHEME_NOT_SUPPORTED\");\n }\n const authority = config.authority;\n if (authority !== undefined) {\n const host = authority.host.toLowerCase();\n if (host !== \"\" && host !== \"localhost\") {\n throw new LibsqlError(`Invalid host in file URL: ${JSON.stringify(authority.host)}. ` +\n 'A \"file:\" URL with an absolute path should start with one slash (\"file:/absolute/path.db\") ' +\n 'or with three slashes (\"file:///absolute/path.db\"). ' +\n `For more information, please read ${supportedUrlLink}`, \"URL_INVALID\");\n }\n if (authority.port !== undefined) {\n throw new LibsqlError(\"File URL cannot have a port\", \"URL_INVALID\");\n }\n if (authority.userinfo !== undefined) {\n throw new LibsqlError(\"File URL cannot have username and password\", \"URL_INVALID\");\n }\n }\n let isInMemory = isInMemoryConfig(config);\n if (isInMemory && config.syncUrl) {\n throw new LibsqlError(`Embedded replica must use file for local db but URI with in-memory mode were provided instead: ${config.path}`, \"URL_INVALID\");\n }\n let path = config.path;\n if (isInMemory) {\n // note: we should prepend file scheme in order for SQLite3 to recognize :memory: connection query parameters\n path = `${config.scheme}:${config.path}`;\n }\n const options = {\n authToken: config.authToken,\n encryptionKey: config.encryptionKey,\n syncUrl: config.syncUrl,\n syncPeriod: config.syncInterval,\n };\n const db = new Database(path, options);\n executeStmt(db, \"SELECT 1 AS checkThatTheDatabaseCanBeOpened\", config.intMode);\n return new Sqlite3Client(path, options, db, config.intMode);\n}\nexport class Sqlite3Client {\n #path;\n #options;\n #db;\n #intMode;\n closed;\n protocol;\n /** @private */\n constructor(path, options, db, intMode) {\n this.#path = path;\n this.#options = options;\n this.#db = db;\n this.#intMode = intMode;\n this.closed = false;\n this.protocol = \"file\";\n }\n async execute(stmtOrSql, args) {\n let stmt;\n if (typeof stmtOrSql === \"string\") {\n stmt = {\n sql: stmtOrSql,\n args: args || [],\n };\n }\n else {\n stmt = stmtOrSql;\n }\n this.#checkNotClosed();\n return executeStmt(this.#getDb(), stmt, this.#intMode);\n }\n async batch(stmts, mode = \"deferred\") {\n this.#checkNotClosed();\n const db = this.#getDb();\n try {\n executeStmt(db, transactionModeToBegin(mode), this.#intMode);\n const resultSets = stmts.map((stmt) => {\n if (!db.inTransaction) {\n throw new LibsqlError(\"The transaction has been rolled back\", \"TRANSACTION_CLOSED\");\n }\n return executeStmt(db, stmt, this.#intMode);\n });\n executeStmt(db, \"COMMIT\", this.#intMode);\n return resultSets;\n }\n finally {\n if (db.inTransaction) {\n executeStmt(db, \"ROLLBACK\", this.#intMode);\n }\n }\n }\n async migrate(stmts) {\n this.#checkNotClosed();\n const db = this.#getDb();\n try {\n executeStmt(db, \"PRAGMA foreign_keys=off\", this.#intMode);\n executeStmt(db, transactionModeToBegin(\"deferred\"), this.#intMode);\n const resultSets = stmts.map((stmt) => {\n if (!db.inTransaction) {\n throw new LibsqlError(\"The transaction has been rolled back\", \"TRANSACTION_CLOSED\");\n }\n return executeStmt(db, stmt, this.#intMode);\n });\n executeStmt(db, \"COMMIT\", this.#intMode);\n return resultSets;\n }\n finally {\n if (db.inTransaction) {\n executeStmt(db, \"ROLLBACK\", this.#intMode);\n }\n executeStmt(db, \"PRAGMA foreign_keys=on\", this.#intMode);\n }\n }\n async transaction(mode = \"write\") {\n const db = this.#getDb();\n executeStmt(db, transactionModeToBegin(mode), this.#intMode);\n this.#db = null; // A new connection will be lazily created on next use\n return new Sqlite3Transaction(db, this.#intMode);\n }\n async executeMultiple(sql) {\n this.#checkNotClosed();\n const db = this.#getDb();\n try {\n return executeMultiple(db, sql);\n }\n finally {\n if (db.inTransaction) {\n executeStmt(db, \"ROLLBACK\", this.#intMode);\n }\n }\n }\n async sync() {\n this.#checkNotClosed();\n const rep = await this.#getDb().sync();\n return {\n frames_synced: rep.frames_synced,\n frame_no: rep.frame_no,\n };\n }\n close() {\n this.closed = true;\n if (this.#db !== null) {\n this.#db.close();\n }\n }\n #checkNotClosed() {\n if (this.closed) {\n throw new LibsqlError(\"The client is closed\", \"CLIENT_CLOSED\");\n }\n }\n // Lazily creates the database connection and returns it\n #getDb() {\n if (this.#db === null) {\n this.#db = new Database(this.#path, this.#options);\n }\n return this.#db;\n }\n}\nexport class Sqlite3Transaction {\n #database;\n #intMode;\n /** @private */\n constructor(database, intMode) {\n this.#database = database;\n this.#intMode = intMode;\n }\n async execute(stmtOrSql, args) {\n let stmt;\n if (typeof stmtOrSql === \"string\") {\n stmt = {\n sql: stmtOrSql,\n args: args || [],\n };\n }\n else {\n stmt = stmtOrSql;\n }\n this.#checkNotClosed();\n return executeStmt(this.#database, stmt, this.#intMode);\n }\n async batch(stmts) {\n return stmts.map((stmt) => {\n this.#checkNotClosed();\n return executeStmt(this.#database, stmt, this.#intMode);\n });\n }\n async executeMultiple(sql) {\n this.#checkNotClosed();\n return executeMultiple(this.#database, sql);\n }\n async rollback() {\n if (!this.#database.open) {\n return;\n }\n this.#checkNotClosed();\n executeStmt(this.#database, \"ROLLBACK\", this.#intMode);\n }\n async commit() {\n this.#checkNotClosed();\n executeStmt(this.#database, \"COMMIT\", this.#intMode);\n }\n close() {\n if (this.#database.inTransaction) {\n executeStmt(this.#database, \"ROLLBACK\", this.#intMode);\n }\n }\n get closed() {\n return !this.#database.inTransaction;\n }\n #checkNotClosed() {\n if (this.closed) {\n throw new LibsqlError(\"The transaction is closed\", \"TRANSACTION_CLOSED\");\n }\n }\n}\nfunction executeStmt(db, stmt, intMode) {\n let sql;\n let args;\n if (typeof stmt === \"string\") {\n sql = stmt;\n args = [];\n }\n else {\n sql = stmt.sql;\n if (Array.isArray(stmt.args)) {\n args = stmt.args.map((value) => valueToSql(value, intMode));\n }\n else {\n args = {};\n for (const name in stmt.args) {\n const argName = name[0] === \"@\" || name[0] === \"$\" || name[0] === \":\"\n ? name.substring(1)\n : name;\n args[argName] = valueToSql(stmt.args[name], intMode);\n }\n }\n }\n try {\n const sqlStmt = db.prepare(sql);\n sqlStmt.safeIntegers(true);\n let returnsData = true;\n try {\n sqlStmt.raw(true);\n }\n catch {\n // raw() throws an exception if the statement does not return data\n returnsData = false;\n }\n if (returnsData) {\n const columns = Array.from(sqlStmt.columns().map((col) => col.name));\n const columnTypes = Array.from(sqlStmt.columns().map((col) => col.type ?? \"\"));\n const rows = sqlStmt.all(args).map((sqlRow) => {\n return rowFromSql(sqlRow, columns, intMode);\n });\n // TODO: can we get this info from better-sqlite3?\n const rowsAffected = 0;\n const lastInsertRowid = undefined;\n return new ResultSetImpl(columns, columnTypes, rows, rowsAffected, lastInsertRowid);\n }\n else {\n const info = sqlStmt.run(args);\n const rowsAffected = info.changes;\n const lastInsertRowid = BigInt(info.lastInsertRowid);\n return new ResultSetImpl([], [], [], rowsAffected, lastInsertRowid);\n }\n }\n catch (e) {\n throw mapSqliteError(e);\n }\n}\nfunction rowFromSql(sqlRow, columns, intMode) {\n const row = {};\n // make sure that the \"length\" property is not enumerable\n Object.defineProperty(row, \"length\", { value: sqlRow.length });\n for (let i = 0; i < sqlRow.length; ++i) {\n const value = valueFromSql(sqlRow[i], intMode);\n Object.defineProperty(row, i, { value });\n const column = columns[i];\n if (!Object.hasOwn(row, column)) {\n Object.defineProperty(row, column, {\n value,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n }\n }\n return row;\n}\nfunction valueFromSql(sqlValue, intMode) {\n if (typeof sqlValue === \"bigint\") {\n if (intMode === \"number\") {\n if (sqlValue < minSafeBigint || sqlValue > maxSafeBigint) {\n throw new RangeError(\"Received integer which cannot be safely represented as a JavaScript number\");\n }\n return Number(sqlValue);\n }\n else if (intMode === \"bigint\") {\n return sqlValue;\n }\n else if (intMode === \"string\") {\n return \"\" + sqlValue;\n }\n else {\n throw new Error(\"Invalid value for IntMode\");\n }\n }\n else if (sqlValue instanceof Buffer) {\n return sqlValue.buffer;\n }\n return sqlValue;\n}\nconst minSafeBigint = -9007199254740991n;\nconst maxSafeBigint = 9007199254740991n;\nfunction valueToSql(value, intMode) {\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new RangeError(\"Only finite numbers (not Infinity or NaN) can be passed as arguments\");\n }\n return value;\n }\n else if (typeof value === \"bigint\") {\n if (value < minInteger || value > maxInteger) {\n throw new RangeError(\"bigint is too large to be represented as a 64-bit integer and passed as argument\");\n }\n return value;\n }\n else if (typeof value === \"boolean\") {\n switch (intMode) {\n case \"bigint\":\n return value ? 1n : 0n;\n case \"string\":\n return value ? \"1\" : \"0\";\n default:\n return value ? 1 : 0;\n }\n }\n else if (value instanceof ArrayBuffer) {\n return Buffer.from(value);\n }\n else if (value instanceof Date) {\n return value.valueOf();\n }\n else if (value === undefined) {\n throw new TypeError(\"undefined cannot be passed as argument to the database\");\n }\n else {\n return value;\n }\n}\nconst minInteger = -9223372036854775808n;\nconst maxInteger = 9223372036854775807n;\nfunction executeMultiple(db, sql) {\n try {\n db.exec(sql);\n }\n catch (e) {\n throw mapSqliteError(e);\n }\n}\nfunction mapSqliteError(e) {\n if (e instanceof Database.SqliteError) {\n return new LibsqlError(e.message, e.code, e.rawCode, e);\n }\n return e;\n}\n"],"mappings":"AAAA,OAAOA,QAAQ,MAAM,QAAQ;AAC7B,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,qBAAqB;AACpE,SAASC,gBAAgB,EAAEC,sBAAsB,EAAEC,aAAa,QAAS,mBAAmB;AAC5F,cAAc,kBAAkB;AAChC,OAAO,SAASC,YAAYA,CAACC,MAAM,EAAE;EACjC,OAAOC,aAAa,CAACP,YAAY,CAACM,MAAM,EAAE,IAAI,CAAC,CAAC;AACpD;AACA;AACA,OAAO,SAASC,aAAaA,CAACD,MAAM,EAAE;EAClC,IAAIA,MAAM,CAACE,MAAM,KAAK,MAAM,EAAE;IAC1B,MAAM,IAAIT,WAAW,CAAC,cAAcU,IAAI,CAACC,SAAS,CAACJ,MAAM,CAACE,MAAM,GAAG,GAAG,CAAC,iDAAiD,GACpH,qCAAqCN,gBAAgB,EAAE,EAAE,0BAA0B,CAAC;EAC5F;EACA,MAAMS,SAAS,GAAGL,MAAM,CAACK,SAAS;EAClC,IAAIA,SAAS,KAAKC,SAAS,EAAE;IACzB,MAAMC,IAAI,GAAGF,SAAS,CAACE,IAAI,CAACC,WAAW,CAAC,CAAC;IACzC,IAAID,IAAI,KAAK,EAAE,IAAIA,IAAI,KAAK,WAAW,EAAE;MACrC,MAAM,IAAId,WAAW,CAAC,6BAA6BU,IAAI,CAACC,SAAS,CAACC,SAAS,CAACE,IAAI,CAAC,IAAI,GACjF,6FAA6F,GAC7F,sDAAsD,GACtD,qCAAqCX,gBAAgB,EAAE,EAAE,aAAa,CAAC;IAC/E;IACA,IAAIS,SAAS,CAACI,IAAI,KAAKH,SAAS,EAAE;MAC9B,MAAM,IAAIb,WAAW,CAAC,6BAA6B,EAAE,aAAa,CAAC;IACvE;IACA,IAAIY,SAAS,CAACK,QAAQ,KAAKJ,SAAS,EAAE;MAClC,MAAM,IAAIb,WAAW,CAAC,4CAA4C,EAAE,aAAa,CAAC;IACtF;EACJ;EACA,IAAIkB,UAAU,GAAGhB,gBAAgB,CAACK,MAAM,CAAC;EACzC,IAAIW,UAAU,IAAIX,MAAM,CAACY,OAAO,EAAE;IAC9B,MAAM,IAAInB,WAAW,CAAC,kGAAkGO,MAAM,CAACa,IAAI,EAAE,EAAE,aAAa,CAAC;EACzJ;EACA,IAAIA,IAAI,GAAGb,MAAM,CAACa,IAAI;EACtB,IAAIF,UAAU,EAAE;IACZ;IACAE,IAAI,GAAG,GAAGb,MAAM,CAACE,MAAM,IAAIF,MAAM,CAACa,IAAI,EAAE;EAC5C;EACA,MAAMC,OAAO,GAAG;IACZC,SAAS,EAAEf,MAAM,CAACe,SAAS;IAC3BC,aAAa,EAAEhB,MAAM,CAACgB,aAAa;IACnCJ,OAAO,EAAEZ,MAAM,CAACY,OAAO;IACvBK,UAAU,EAAEjB,MAAM,CAACkB;EACvB,CAAC;EACD,MAAMC,EAAE,GAAG,IAAI5B,QAAQ,CAACsB,IAAI,EAAEC,OAAO,CAAC;EACtCM,WAAW,CAACD,EAAE,EAAE,6CAA6C,EAAEnB,MAAM,CAACqB,OAAO,CAAC;EAC9E,OAAO,IAAIC,aAAa,CAACT,IAAI,EAAEC,OAAO,EAAEK,EAAE,EAAEnB,MAAM,CAACqB,OAAO,CAAC;AAC/D;AACA,OAAO,MAAMC,aAAa,CAAC;EACvB,CAACT,IAAI;EACL,CAACC,OAAO;EACR,CAACK,EAAE;EACH,CAACE,OAAO;EACRE,MAAM;EACNC,QAAQ;EACR;EACAC,WAAWA,CAACZ,IAAI,EAAEC,OAAO,EAAEK,EAAE,EAAEE,OAAO,EAAE;IACpC,IAAI,CAAC,CAACR,IAAI,GAAGA,IAAI;IACjB,IAAI,CAAC,CAACC,OAAO,GAAGA,OAAO;IACvB,IAAI,CAAC,CAACK,EAAE,GAAGA,EAAE;IACb,IAAI,CAAC,CAACE,OAAO,GAAGA,OAAO;IACvB,IAAI,CAACE,MAAM,GAAG,KAAK;IACnB,IAAI,CAACC,QAAQ,GAAG,MAAM;EAC1B;EACA,MAAME,OAAOA,CAACC,SAAS,EAAEC,IAAI,EAAE;IAC3B,IAAIC,IAAI;IACR,IAAI,OAAOF,SAAS,KAAK,QAAQ,EAAE;MAC/BE,IAAI,GAAG;QACHC,GAAG,EAAEH,SAAS;QACdC,IAAI,EAAEA,IAAI,IAAI;MAClB,CAAC;IACL,CAAC,MACI;MACDC,IAAI,GAAGF,SAAS;IACpB;IACA,IAAI,CAAC,CAACI,cAAc,CAAC,CAAC;IACtB,OAAOX,WAAW,CAAC,IAAI,CAAC,CAACY,KAAK,CAAC,CAAC,EAAEH,IAAI,EAAE,IAAI,CAAC,CAACR,OAAO,CAAC;EAC1D;EACA,MAAMY,KAAKA,CAACC,KAAK,EAAEC,IAAI,GAAG,UAAU,EAAE;IAClC,IAAI,CAAC,CAACJ,cAAc,CAAC,CAAC;IACtB,MAAMZ,EAAE,GAAG,IAAI,CAAC,CAACa,KAAK,CAAC,CAAC;IACxB,IAAI;MACAZ,WAAW,CAACD,EAAE,EAAEtB,sBAAsB,CAACsC,IAAI,CAAC,EAAE,IAAI,CAAC,CAACd,OAAO,CAAC;MAC5D,MAAMe,UAAU,GAAGF,KAAK,CAACG,GAAG,CAAER,IAAI,IAAK;QACnC,IAAI,CAACV,EAAE,CAACmB,aAAa,EAAE;UACnB,MAAM,IAAI7C,WAAW,CAAC,sCAAsC,EAAE,oBAAoB,CAAC;QACvF;QACA,OAAO2B,WAAW,CAACD,EAAE,EAAEU,IAAI,EAAE,IAAI,CAAC,CAACR,OAAO,CAAC;MAC/C,CAAC,CAAC;MACFD,WAAW,CAACD,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAACE,OAAO,CAAC;MACxC,OAAOe,UAAU;IACrB,CAAC,SACO;MACJ,IAAIjB,EAAE,CAACmB,aAAa,EAAE;QAClBlB,WAAW,CAACD,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAACE,OAAO,CAAC;MAC9C;IACJ;EACJ;EACA,MAAMkB,OAAOA,CAACL,KAAK,EAAE;IACjB,IAAI,CAAC,CAACH,cAAc,CAAC,CAAC;IACtB,MAAMZ,EAAE,GAAG,IAAI,CAAC,CAACa,KAAK,CAAC,CAAC;IACxB,IAAI;MACAZ,WAAW,CAACD,EAAE,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAACE,OAAO,CAAC;MACzDD,WAAW,CAACD,EAAE,EAAEtB,sBAAsB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAACwB,OAAO,CAAC;MAClE,MAAMe,UAAU,GAAGF,KAAK,CAACG,GAAG,CAAER,IAAI,IAAK;QACnC,IAAI,CAACV,EAAE,CAACmB,aAAa,EAAE;UACnB,MAAM,IAAI7C,WAAW,CAAC,sCAAsC,EAAE,oBAAoB,CAAC;QACvF;QACA,OAAO2B,WAAW,CAACD,EAAE,EAAEU,IAAI,EAAE,IAAI,CAAC,CAACR,OAAO,CAAC;MAC/C,CAAC,CAAC;MACFD,WAAW,CAACD,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAACE,OAAO,CAAC;MACxC,OAAOe,UAAU;IACrB,CAAC,SACO;MACJ,IAAIjB,EAAE,CAACmB,aAAa,EAAE;QAClBlB,WAAW,CAACD,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAACE,OAAO,CAAC;MAC9C;MACAD,WAAW,CAACD,EAAE,EAAE,wBAAwB,EAAE,IAAI,CAAC,CAACE,OAAO,CAAC;IAC5D;EACJ;EACA,MAAMmB,WAAWA,CAACL,IAAI,GAAG,OAAO,EAAE;IAC9B,MAAMhB,EAAE,GAAG,IAAI,CAAC,CAACa,KAAK,CAAC,CAAC;IACxBZ,WAAW,CAACD,EAAE,EAAEtB,sBAAsB,CAACsC,IAAI,CAAC,EAAE,IAAI,CAAC,CAACd,OAAO,CAAC;IAC5D,IAAI,CAAC,CAACF,EAAE,GAAG,IAAI,CAAC,CAAC;IACjB,OAAO,IAAIsB,kBAAkB,CAACtB,EAAE,EAAE,IAAI,CAAC,CAACE,OAAO,CAAC;EACpD;EACA,MAAMqB,eAAeA,CAACZ,GAAG,EAAE;IACvB,IAAI,CAAC,CAACC,cAAc,CAAC,CAAC;IACtB,MAAMZ,EAAE,GAAG,IAAI,CAAC,CAACa,KAAK,CAAC,CAAC;IACxB,IAAI;MACA,OAAOU,eAAe,CAACvB,EAAE,EAAEW,GAAG,CAAC;IACnC,CAAC,SACO;MACJ,IAAIX,EAAE,CAACmB,aAAa,EAAE;QAClBlB,WAAW,CAACD,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAACE,OAAO,CAAC;MAC9C;IACJ;EACJ;EACA,MAAMsB,IAAIA,CAAA,EAAG;IACT,IAAI,CAAC,CAACZ,cAAc,CAAC,CAAC;IACtB,MAAMa,GAAG,GAAG,MAAM,IAAI,CAAC,CAACZ,KAAK,CAAC,CAAC,CAACW,IAAI,CAAC,CAAC;IACtC,OAAO;MACHE,aAAa,EAAED,GAAG,CAACC,aAAa;MAChCC,QAAQ,EAAEF,GAAG,CAACE;IAClB,CAAC;EACL;EACAC,KAAKA,CAAA,EAAG;IACJ,IAAI,CAACxB,MAAM,GAAG,IAAI;IAClB,IAAI,IAAI,CAAC,CAACJ,EAAE,KAAK,IAAI,EAAE;MACnB,IAAI,CAAC,CAACA,EAAE,CAAC4B,KAAK,CAAC,CAAC;IACpB;EACJ;EACA,CAAChB,cAAciB,CAAA,EAAG;IACd,IAAI,IAAI,CAACzB,MAAM,EAAE;MACb,MAAM,IAAI9B,WAAW,CAAC,sBAAsB,EAAE,eAAe,CAAC;IAClE;EACJ;EACA;EACA,CAACuC,KAAKiB,CAAA,EAAG;IACL,IAAI,IAAI,CAAC,CAAC9B,EAAE,KAAK,IAAI,EAAE;MACnB,IAAI,CAAC,CAACA,EAAE,GAAG,IAAI5B,QAAQ,CAAC,IAAI,CAAC,CAACsB,IAAI,EAAE,IAAI,CAAC,CAACC,OAAO,CAAC;IACtD;IACA,OAAO,IAAI,CAAC,CAACK,EAAE;EACnB;AACJ;AACA,OAAO,MAAMsB,kBAAkB,CAAC;EAC5B,CAACS,QAAQ;EACT,CAAC7B,OAAO;EACR;EACAI,WAAWA,CAACyB,QAAQ,EAAE7B,OAAO,EAAE;IAC3B,IAAI,CAAC,CAAC6B,QAAQ,GAAGA,QAAQ;IACzB,IAAI,CAAC,CAAC7B,OAAO,GAAGA,OAAO;EAC3B;EACA,MAAMK,OAAOA,CAACC,SAAS,EAAEC,IAAI,EAAE;IAC3B,IAAIC,IAAI;IACR,IAAI,OAAOF,SAAS,KAAK,QAAQ,EAAE;MAC/BE,IAAI,GAAG;QACHC,GAAG,EAAEH,SAAS;QACdC,IAAI,EAAEA,IAAI,IAAI;MAClB,CAAC;IACL,CAAC,MACI;MACDC,IAAI,GAAGF,SAAS;IACpB;IACA,IAAI,CAAC,CAACI,cAAc,CAAC,CAAC;IACtB,OAAOX,WAAW,CAAC,IAAI,CAAC,CAAC8B,QAAQ,EAAErB,IAAI,EAAE,IAAI,CAAC,CAACR,OAAO,CAAC;EAC3D;EACA,MAAMY,KAAKA,CAACC,KAAK,EAAE;IACf,OAAOA,KAAK,CAACG,GAAG,CAAER,IAAI,IAAK;MACvB,IAAI,CAAC,CAACE,cAAc,CAAC,CAAC;MACtB,OAAOX,WAAW,CAAC,IAAI,CAAC,CAAC8B,QAAQ,EAAErB,IAAI,EAAE,IAAI,CAAC,CAACR,OAAO,CAAC;IAC3D,CAAC,CAAC;EACN;EACA,MAAMqB,eAAeA,CAACZ,GAAG,EAAE;IACvB,IAAI,CAAC,CAACC,cAAc,CAAC,CAAC;IACtB,OAAOW,eAAe,CAAC,IAAI,CAAC,CAACQ,QAAQ,EAAEpB,GAAG,CAAC;EAC/C;EACA,MAAMqB,QAAQA,CAAA,EAAG;IACb,IAAI,CAAC,IAAI,CAAC,CAACD,QAAQ,CAACE,IAAI,EAAE;MACtB;IACJ;IACA,IAAI,CAAC,CAACrB,cAAc,CAAC,CAAC;IACtBX,WAAW,CAAC,IAAI,CAAC,CAAC8B,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC7B,OAAO,CAAC;EAC1D;EACA,MAAMgC,MAAMA,CAAA,EAAG;IACX,IAAI,CAAC,CAACtB,cAAc,CAAC,CAAC;IACtBX,WAAW,CAAC,IAAI,CAAC,CAAC8B,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC7B,OAAO,CAAC;EACxD;EACA0B,KAAKA,CAAA,EAAG;IACJ,IAAI,IAAI,CAAC,CAACG,QAAQ,CAACZ,aAAa,EAAE;MAC9BlB,WAAW,CAAC,IAAI,CAAC,CAAC8B,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC7B,OAAO,CAAC;IAC1D;EACJ;EACA,IAAIE,MAAMA,CAAA,EAAG;IACT,OAAO,CAAC,IAAI,CAAC,CAAC2B,QAAQ,CAACZ,aAAa;EACxC;EACA,CAACP,cAAciB,CAAA,EAAG;IACd,IAAI,IAAI,CAACzB,MAAM,EAAE;MACb,MAAM,IAAI9B,WAAW,CAAC,2BAA2B,EAAE,oBAAoB,CAAC;IAC5E;EACJ;AACJ;AACA,SAAS2B,WAAWA,CAACD,EAAE,EAAEU,IAAI,EAAER,OAAO,EAAE;EACpC,IAAIS,GAAG;EACP,IAAIF,IAAI;EACR,IAAI,OAAOC,IAAI,KAAK,QAAQ,EAAE;IAC1BC,GAAG,GAAGD,IAAI;IACVD,IAAI,GAAG,EAAE;EACb,CAAC,MACI;IACDE,GAAG,GAAGD,IAAI,CAACC,GAAG;IACd,IAAIwB,KAAK,CAACC,OAAO,CAAC1B,IAAI,CAACD,IAAI,CAAC,EAAE;MAC1BA,IAAI,GAAGC,IAAI,CAACD,IAAI,CAACS,GAAG,CAAEmB,KAAK,IAAKC,UAAU,CAACD,KAAK,EAAEnC,OAAO,CAAC,CAAC;IAC/D,CAAC,MACI;MACDO,IAAI,GAAG,CAAC,CAAC;MACT,KAAK,MAAM8B,IAAI,IAAI7B,IAAI,CAACD,IAAI,EAAE;QAC1B,MAAM+B,OAAO,GAAGD,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,GAC/DA,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC,GACjBF,IAAI;QACV9B,IAAI,CAAC+B,OAAO,CAAC,GAAGF,UAAU,CAAC5B,IAAI,CAACD,IAAI,CAAC8B,IAAI,CAAC,EAAErC,OAAO,CAAC;MACxD;IACJ;EACJ;EACA,IAAI;IACA,MAAMwC,OAAO,GAAG1C,EAAE,CAAC2C,OAAO,CAAChC,GAAG,CAAC;IAC/B+B,OAAO,CAACE,YAAY,CAAC,IAAI,CAAC;IAC1B,IAAIC,WAAW,GAAG,IAAI;IACtB,IAAI;MACAH,OAAO,CAACI,GAAG,CAAC,IAAI,CAAC;IACrB,CAAC,CACD,MAAM;MACF;MACAD,WAAW,GAAG,KAAK;IACvB;IACA,IAAIA,WAAW,EAAE;MACb,MAAME,OAAO,GAAGZ,KAAK,CAACa,IAAI,CAACN,OAAO,CAACK,OAAO,CAAC,CAAC,CAAC7B,GAAG,CAAE+B,GAAG,IAAKA,GAAG,CAACV,IAAI,CAAC,CAAC;MACpE,MAAMW,WAAW,GAAGf,KAAK,CAACa,IAAI,CAACN,OAAO,CAACK,OAAO,CAAC,CAAC,CAAC7B,GAAG,CAAE+B,GAAG,IAAKA,GAAG,CAACE,IAAI,IAAI,EAAE,CAAC,CAAC;MAC9E,MAAMC,IAAI,GAAGV,OAAO,CAACW,GAAG,CAAC5C,IAAI,CAAC,CAACS,GAAG,CAAEoC,MAAM,IAAK;QAC3C,OAAOC,UAAU,CAACD,MAAM,EAAEP,OAAO,EAAE7C,OAAO,CAAC;MAC/C,CAAC,CAAC;MACF;MACA,MAAMsD,YAAY,GAAG,CAAC;MACtB,MAAMC,eAAe,GAAGtE,SAAS;MACjC,OAAO,IAAIR,aAAa,CAACoE,OAAO,EAAEG,WAAW,EAAEE,IAAI,EAAEI,YAAY,EAAEC,eAAe,CAAC;IACvF,CAAC,MACI;MACD,MAAMC,IAAI,GAAGhB,OAAO,CAACiB,GAAG,CAAClD,IAAI,CAAC;MAC9B,MAAM+C,YAAY,GAAGE,IAAI,CAACE,OAAO;MACjC,MAAMH,eAAe,GAAGI,MAAM,CAACH,IAAI,CAACD,eAAe,CAAC;MACpD,OAAO,IAAI9E,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE6E,YAAY,EAAEC,eAAe,CAAC;IACvE;EACJ,CAAC,CACD,OAAOK,CAAC,EAAE;IACN,MAAMC,cAAc,CAACD,CAAC,CAAC;EAC3B;AACJ;AACA,SAASP,UAAUA,CAACD,MAAM,EAAEP,OAAO,EAAE7C,OAAO,EAAE;EAC1C,MAAM8D,GAAG,GAAG,CAAC,CAAC;EACd;EACAC,MAAM,CAACC,cAAc,CAACF,GAAG,EAAE,QAAQ,EAAE;IAAE3B,KAAK,EAAEiB,MAAM,CAACa;EAAO,CAAC,CAAC;EAC9D,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGd,MAAM,CAACa,MAAM,EAAE,EAAEC,CAAC,EAAE;IACpC,MAAM/B,KAAK,GAAGgC,YAAY,CAACf,MAAM,CAACc,CAAC,CAAC,EAAElE,OAAO,CAAC;IAC9C+D,MAAM,CAACC,cAAc,CAACF,GAAG,EAAEI,CAAC,EAAE;MAAE/B;IAAM,CAAC,CAAC;IACxC,MAAMiC,MAAM,GAAGvB,OAAO,CAACqB,CAAC,CAAC;IACzB,IAAI,CAACH,MAAM,CAACM,MAAM,CAACP,GAAG,EAAEM,MAAM,CAAC,EAAE;MAC7BL,MAAM,CAACC,cAAc,CAACF,GAAG,EAAEM,MAAM,EAAE;QAC/BjC,KAAK;QACLmC,UAAU,EAAE,IAAI;QAChBC,YAAY,EAAE,IAAI;QAClBC,QAAQ,EAAE;MACd,CAAC,CAAC;IACN;EACJ;EACA,OAAOV,GAAG;AACd;AACA,SAASK,YAAYA,CAACM,QAAQ,EAAEzE,OAAO,EAAE;EACrC,IAAI,OAAOyE,QAAQ,KAAK,QAAQ,EAAE;IAC9B,IAAIzE,OAAO,KAAK,QAAQ,EAAE;MACtB,IAAIyE,QAAQ,GAAGC,aAAa,IAAID,QAAQ,GAAGE,aAAa,EAAE;QACtD,MAAM,IAAIC,UAAU,CAAC,4EAA4E,CAAC;MACtG;MACA,OAAOC,MAAM,CAACJ,QAAQ,CAAC;IAC3B,CAAC,MACI,IAAIzE,OAAO,KAAK,QAAQ,EAAE;MAC3B,OAAOyE,QAAQ;IACnB,CAAC,MACI,IAAIzE,OAAO,KAAK,QAAQ,EAAE;MAC3B,OAAO,EAAE,GAAGyE,QAAQ;IACxB,CAAC,MACI;MACD,MAAM,IAAIK,KAAK,CAAC,2BAA2B,CAAC;IAChD;EACJ,CAAC,MACI,IAAIL,QAAQ,YAAYtG,MAAM,EAAE;IACjC,OAAOsG,QAAQ,CAACM,MAAM;EAC1B;EACA,OAAON,QAAQ;AACnB;AACA,MAAMC,aAAa,GAAG,CAAC,iBAAiB;AACxC,MAAMC,aAAa,GAAG,iBAAiB;AACvC,SAASvC,UAAUA,CAACD,KAAK,EAAEnC,OAAO,EAAE;EAChC,IAAI,OAAOmC,KAAK,KAAK,QAAQ,EAAE;IAC3B,IAAI,CAAC0C,MAAM,CAACG,QAAQ,CAAC7C,KAAK,CAAC,EAAE;MACzB,MAAM,IAAIyC,UAAU,CAAC,sEAAsE,CAAC;IAChG;IACA,OAAOzC,KAAK;EAChB,CAAC,MACI,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAChC,IAAIA,KAAK,GAAG8C,UAAU,IAAI9C,KAAK,GAAG+C,UAAU,EAAE;MAC1C,MAAM,IAAIN,UAAU,CAAC,kFAAkF,CAAC;IAC5G;IACA,OAAOzC,KAAK;EAChB,CAAC,MACI,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE;IACjC,QAAQnC,OAAO;MACX,KAAK,QAAQ;QACT,OAAOmC,KAAK,GAAG,EAAE,GAAG,EAAE;MAC1B,KAAK,QAAQ;QACT,OAAOA,KAAK,GAAG,GAAG,GAAG,GAAG;MAC5B;QACI,OAAOA,KAAK,GAAG,CAAC,GAAG,CAAC;IAC5B;EACJ,CAAC,MACI,IAAIA,KAAK,YAAYgD,WAAW,EAAE;IACnC,OAAOhH,MAAM,CAAC2E,IAAI,CAACX,KAAK,CAAC;EAC7B,CAAC,MACI,IAAIA,KAAK,YAAYiD,IAAI,EAAE;IAC5B,OAAOjD,KAAK,CAACkD,OAAO,CAAC,CAAC;EAC1B,CAAC,MACI,IAAIlD,KAAK,KAAKlD,SAAS,EAAE;IAC1B,MAAM,IAAIqG,SAAS,CAAC,wDAAwD,CAAC;EACjF,CAAC,MACI;IACD,OAAOnD,KAAK;EAChB;AACJ;AACA,MAAM8C,UAAU,GAAG,CAAC,oBAAoB;AACxC,MAAMC,UAAU,GAAG,oBAAoB;AACvC,SAAS7D,eAAeA,CAACvB,EAAE,EAAEW,GAAG,EAAE;EAC9B,IAAI;IACAX,EAAE,CAACyF,IAAI,CAAC9E,GAAG,CAAC;EAChB,CAAC,CACD,OAAOmD,CAAC,EAAE;IACN,MAAMC,cAAc,CAACD,CAAC,CAAC;EAC3B;AACJ;AACA,SAASC,cAAcA,CAACD,CAAC,EAAE;EACvB,IAAIA,CAAC,YAAY1F,QAAQ,CAACsH,WAAW,EAAE;IACnC,OAAO,IAAIpH,WAAW,CAACwF,CAAC,CAAC6B,OAAO,EAAE7B,CAAC,CAAC8B,IAAI,EAAE9B,CAAC,CAAC+B,OAAO,EAAE/B,CAAC,CAAC;EAC3D;EACA,OAAOA,CAAC;AACZ","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}