@metamask/kernel-store
Version:
Ocap Kernel storage abstractions and implementations
1 lines • 3.2 kB
Source Map (JSON)
{"version":3,"file":"common.mjs","sourceRoot":"","sources":["../../src/sqlite/common.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE;;;;;;GAMb;IACD,eAAe,EAAE;;;;;;;GAOhB;IACD,GAAG,EAAE;;;;GAIJ;IACD,QAAQ,EAAE;;;;;GAKT;IACD,UAAU,EAAE;;;;GAIX;IACD,GAAG,EAAE;;;;GAIJ;IACD,MAAM,EAAE;;;;GAIP;IACD,MAAM,EAAE;;;GAGP;IACD,SAAS,EAAE;;;GAGV;IACD,aAAa,EAAE;;;GAGd;IACD,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,yBAAyB;IACnC,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,wBAAwB;IACjC,iBAAiB,EAAE,mBAAmB;IACtC,2BAA2B,EAAE,6BAA6B;IAC1D,kBAAkB,EAAE,oBAAoB;IACxC,iBAAiB,EAAE,sBAAsB;IACzC,6EAA6E;IAC7E,wEAAwE;IACxE,wEAAwE;IACxE,sCAAsC;IACtC,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,8BAA8B;IAClD,iBAAiB,EAAE,0BAA0B;CACrC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC","sourcesContent":["export const SQL_QUERIES = {\n CREATE_TABLE: `\n CREATE TABLE IF NOT EXISTS kv (\n key TEXT,\n value TEXT,\n PRIMARY KEY(key)\n )\n `,\n CREATE_TABLE_VS: `\n CREATE TABLE IF NOT EXISTS kv_vatstore (\n vatID TEXT,\n key TEXT,\n value TEXT,\n PRIMARY KEY(vatID, key)\n )\n `,\n GET: `\n SELECT value\n FROM kv\n WHERE key = ?\n `,\n GET_NEXT: `\n SELECT key\n FROM kv\n WHERE key > ?\n LIMIT 1\n `,\n GET_ALL_VS: `\n SELECT key, value\n FROM kv_vatstore\n WHERE vatID = ?\n `,\n SET: `\n INSERT INTO kv (key, value)\n VALUES (?, ?)\n ON CONFLICT DO UPDATE SET value = excluded.value\n `,\n SET_VS: `\n INSERT INTO kv_vatstore (vatID, key, value)\n VALUES (?, ?, ?)\n ON CONFLICT DO UPDATE SET value = excluded.value\n `,\n DELETE: `\n DELETE FROM kv\n WHERE key = ?\n `,\n DELETE_VS: `\n DELETE FROM kv_vatstore\n WHERE vatID = ? AND key = ?\n `,\n DELETE_VS_ALL: `\n DELETE FROM kv_vatstore\n WHERE vatID = ?\n `,\n CLEAR: `DELETE FROM kv`,\n CLEAR_VS: `DELETE FROM kv_vatstore`,\n DROP: `DROP TABLE kv`,\n DROP_VS: `DROP TABLE kv_vatstore`,\n BEGIN_TRANSACTION: `BEGIN TRANSACTION`,\n BEGIN_IMMEDIATE_TRANSACTION: `BEGIN IMMEDIATE TRANSACTION`,\n COMMIT_TRANSACTION: `COMMIT TRANSACTION`,\n ABORT_TRANSACTION: `ROLLBACK TRANSACTION`,\n // SQLite's parameter markers (?, ?NNN, :name, @name, $name) can only be used\n // in places where a literal value is allowed. We can't bind identifiers\n // for table names, column names, or savepoint names. We use %NAME% as a\n // placeholder for the savepoint name.\n CREATE_SAVEPOINT: `SAVEPOINT %NAME%`,\n ROLLBACK_SAVEPOINT: `ROLLBACK TO SAVEPOINT %NAME%`,\n RELEASE_SAVEPOINT: `RELEASE SAVEPOINT %NAME%`,\n} as const;\n\n/**\n * The default filename for the SQLite database; \":memory:\" is an ephemeral in-memory database.\n */\nexport const DEFAULT_DB_FILENAME = ':memory:';\n\n/**\n * Check if a string is a valid SQLite identifier.\n *\n * @param name - The string to check.\n */\nexport function assertSafeIdentifier(name: string): void {\n if (!/^[A-Za-z_]\\w*$/u.test(name)) {\n throw new Error(`Invalid identifier: ${name}`);\n }\n}\n"]}