{"_id":"@capawesome/capacitor-sqlite-kysely","name":"@capawesome/capacitor-sqlite-kysely","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@capawesome/capacitor-sqlite-kysely","version":"0.0.1","description":"Kysely dialect for the Capawesome SQLite plugin.","main":"dist/plugin.cjs.js","module":"dist/esm/index.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/capawesome-team/capacitor-sqlite-drivers.git"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-sqlite-drivers/issues"},"funding":[{"type":"github","url":"https://github.com/sponsors/capawesome-team/"},{"type":"opencollective","url":"https://opencollective.com/capawesome"}],"keywords":["capacitor","plugin","kysely","orm","sqlite"],"scripts":{"lint":"npm run eslint && npm run prettier -- --check","fmt":"npm run eslint -- --fix && npm run prettier -- --write","eslint":"eslint . --ext ts","prettier":"prettier \"**/*.{css,html,ts,js}\"","build":"npm run clean && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","prepublishOnly":"npm run build"},"devDependencies":{"@capawesome-team/capacitor-sqlite":"0.3.3","@ionic/eslint-config":"0.4.0","eslint":"8.57.0","kysely":"0.27.6","prettier":"3.4.2","rimraf":"6.1.2","rollup":"4.53.3","typescript":"5.9.3"},"peerDependencies":{"@capawesome-team/capacitor-sqlite":"~0.3.0","kysely":"^0.28.0"},"eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_id":"@capawesome/capacitor-sqlite-kysely@0.0.1","gitHead":"b24fb4458d9d6a5da85ba7a9b6c76bbe2ce653f6","homepage":"https://github.com/capawesome-team/capacitor-sqlite-drivers#readme","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-biNAWdUbMrW8kCv/y7gSfBo4dH5PGOeSt/1odgt/m9mL8Xeqq9eWHke1QV4xlDRBhyGbXvg6KdOQl2jADBSGsA==","shasum":"2b7e706eb51732e7101c7c2e490be2291b25c9e1","tarball":"https://registry.npmjs.org/@capawesome/capacitor-sqlite-kysely/-/capacitor-sqlite-kysely-0.0.1.tgz","fileCount":19,"unpackedSize":46725,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDT2Xn8RcNcWKlwWkbqFhO3svFT50o3+WrZOtmfGgCcNAIgTD/CZp1yR7Zg9ASkrvXUMoWuMgNX+cQZ42wHGFU0xl8="}]},"_npmUser":{"name":"robingenz","email":"mail@robingenz.dev"},"directories":{},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-sqlite-kysely_0.0.1_1772001649501_0.5039555746088691"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-25T06:40:49.293Z","0.0.1":"2026-02-25T06:40:49.645Z","modified":"2026-02-25T06:40:49.946Z"},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"description":"Kysely dialect for the Capawesome SQLite plugin.","homepage":"https://github.com/capawesome-team/capacitor-sqlite-drivers#readme","keywords":["capacitor","plugin","kysely","orm","sqlite"],"repository":{"type":"git","url":"git+https://github.com/capawesome-team/capacitor-sqlite-drivers.git"},"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-sqlite-drivers/issues"},"license":"MIT","readme":"# @capawesome/capacitor-sqlite-kysely\n\nKysely dialect for [`@capawesome-team/capacitor-sqlite`](https://capawesome.io/plugins/sqlite/).\n\n> [!WARNING]\n> This package is in early development and may have breaking changes. Feedback and contributions are welcome!\n\n<div class=\"capawesome-z29o10a\">\n  <a href=\"https://cloud.capawesome.io/\" target=\"_blank\">\n    <img alt=\"Deliver Live Updates to your Capacitor app with Capawesome Cloud\" src=\"https://cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1\" />\n  </a>\n</div>\n\n## Installation\n\n```bash\nnpm install @capawesome/capacitor-sqlite-kysely kysely@^0.28.0\n```\n\n## Usage\n\n### Setup\n\n```typescript\nimport { Sqlite } from '@capawesome-team/capacitor-sqlite';\nimport { Kysely } from 'kysely';\nimport { CapacitorSqliteDialect } from '@capawesome/capacitor-sqlite-kysely';\n\nconst { databaseId } = await Sqlite.open({ path: 'my.db' });\nconst db = new Kysely<DB>({\n  dialect: new CapacitorSqliteDialect(Sqlite, { databaseId }),\n});\n```\n\n### Define Your Database Types\n\nCreate a type definition for your database schema:\n\n```typescript\nimport { Generated } from 'kysely';\n\ninterface Database {\n  users: UsersTable;\n  posts: PostsTable;\n}\n\ninterface UsersTable {\n  id: Generated<number>;\n  name: string;\n  email: string;\n}\n\ninterface PostsTable {\n  id: Generated<number>;\n  title: string;\n  content: string | null;\n  author_id: number;\n}\n```\n\n### Queries\n\n```typescript\n// Insert\nawait db.insertInto('users').values({ name: 'Alice', email: 'alice@example.com' }).execute();\n\n// Select all\nconst allUsers = await db.selectFrom('users').selectAll().execute();\n\n// Select with filter\nconst user = await db\n  .selectFrom('users')\n  .selectAll()\n  .where('email', '=', 'alice@example.com')\n  .executeTakeFirst();\n\n// Update\nawait db.updateTable('users').set({ name: 'Bob' }).where('id', '=', 1).execute();\n\n// Delete\nawait db.deleteFrom('users').where('id', '=', 1).execute();\n```\n\n### Transactions\n\nKysely manages `BEGIN`, `COMMIT`, and `ROLLBACK` automatically:\n\n```typescript\nawait db.transaction().execute(async (trx) => {\n  await trx.insertInto('users').values({ name: 'Alice', email: 'alice@example.com' }).execute();\n  await trx.insertInto('posts').values({ title: 'Hello', content: 'World', author_id: 1 }).execute();\n});\n```\n\n### Migrations\n\nKysely has a built-in [migration system](https://kysely.dev/docs/migrations). Since `CapacitorSqliteDialect` implements the standard `Dialect` interface, you can use Kysely's `Migrator` directly:\n\n```typescript\nimport { Kysely, Migrator, Migration, MigrationProvider } from 'kysely';\n\nconst migrationProvider: MigrationProvider = {\n  async getMigrations() {\n    return {\n      '001_create_users': {\n        async up(db: Kysely<any>) {\n          await db.schema\n            .createTable('users')\n            .addColumn('id', 'integer', (col) => col.primaryKey().autoIncrement())\n            .addColumn('name', 'text', (col) => col.notNull())\n            .addColumn('email', 'text', (col) => col.notNull().unique())\n            .execute();\n        },\n      },\n    };\n  },\n};\n\nconst migrator = new Migrator({ db, provider: migrationProvider });\nawait migrator.migrateToLatest();\n```\n\n## API\n\n### `CapacitorSqliteDialect`\n\nA Kysely `Dialect` implementation for `@capawesome-team/capacitor-sqlite`.\n\n```typescript\nnew CapacitorSqliteDialect(client, config);\n```\n\n| Param    | Type                           | Description                                           |\n| -------- | ------------------------------ | ----------------------------------------------------- |\n| `client` | `SqlitePlugin`                 | The Capacitor SQLite plugin instance (e.g. `Sqlite`). |\n| `config` | `CapacitorSqliteDialectConfig` | Configuration object. Must include `databaseId`.      |\n\n### `CapacitorSqliteDialectConfig`\n\n| Property     | Type     | Description                                          |\n| ------------ | -------- | ---------------------------------------------------- |\n| `databaseId` | `string` | The database identifier returned by `Sqlite.open()`. |\n","readmeFilename":"README.md","_rev":"1-1ad2a47817813e13f0dc0397fe01dc74"}