{"_id":"@capawesome/capacitor-sqlite-drizzle","name":"@capawesome/capacitor-sqlite-drizzle","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@capawesome/capacitor-sqlite-drizzle","version":"0.0.1","description":"Drizzle ORM adapter 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","drizzle","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":{"@capacitor/core":"8.0.0","@capawesome-team/capacitor-sqlite":"0.3.3","@ionic/eslint-config":"0.4.0","drizzle-orm":"0.45.1","eslint":"8.57.0","prettier":"3.4.2","rimraf":"6.1.2","rollup":"4.53.3","typescript":"5.9.3"},"peerDependencies":{"@capawesome-team/capacitor-sqlite":"~0.3.0","drizzle-orm":"^0.45.0"},"eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_id":"@capawesome/capacitor-sqlite-drizzle@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-N2c429EJnO2s0uLjZljQuei597fXgcucFeo0L39yNE9B+Iyzq+sXzFvmXfBTsN8b01zwOZX+tCB7sVDcakybMA==","shasum":"8bad956999830c064b9c77e3de5fd7d246d437af","tarball":"https://registry.npmjs.org/@capawesome/capacitor-sqlite-drizzle/-/capacitor-sqlite-drizzle-0.0.1.tgz","fileCount":10,"unpackedSize":54581,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCgw/VNJgSYgJZkLq9FGZipgX4zibt+ajVMdzX/rBaxwgIhANNIIlydT/fX6/1nkrtF6dr1tmJeFA/JOOTHzCIKJtXZ"}]},"_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-drizzle_0.0.1_1772001563278_0.6740037559881973"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-25T06:39:23.210Z","0.0.1":"2026-02-25T06:39:23.415Z","modified":"2026-02-25T06:39:23.654Z"},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"description":"Drizzle ORM adapter for the Capawesome SQLite plugin.","homepage":"https://github.com/capawesome-team/capacitor-sqlite-drivers#readme","keywords":["capacitor","plugin","drizzle","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-drizzle\n\nDrizzle ORM adapter 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-drizzle drizzle-orm@^0.45.0\n```\n\n## Usage\n\n### Setup\n\n```typescript\nimport { Sqlite } from '@capawesome-team/capacitor-sqlite';\nimport { drizzle } from '@capawesome/capacitor-sqlite-drizzle';\n\nconst { databaseId } = await Sqlite.open({ path: 'my.db' });\nconst db = drizzle(Sqlite, { databaseId });\n```\n\nYou can pass any [Drizzle configuration](https://orm.drizzle.team/docs/get-started/sqlite-new#step-4---connect-drizzle-orm-to-the-database) options alongside `databaseId`:\n\n```typescript\nimport * as schema from './schema';\n\nconst db = drizzle(Sqlite, { databaseId, schema, logger: true });\n```\n\n### Define a Schema\n\nCreate a `schema.ts` file using Drizzle's schema builder:\n\n```typescript\nimport { integer, sqliteTable, text } from 'drizzle-orm/sqlite-core';\n\nexport const users = sqliteTable('users', {\n  id: integer('id').primaryKey({ autoIncrement: true }),\n  name: text('name').notNull(),\n  email: text('email').notNull().unique(),\n  createdAt: integer('created_at', { mode: 'timestamp' })\n    .notNull()\n    .$defaultFn(() => new Date()),\n});\n\nexport const posts = sqliteTable('posts', {\n  id: integer('id').primaryKey({ autoIncrement: true }),\n  title: text('title').notNull(),\n  content: text('content'),\n  authorId: integer('author_id')\n    .notNull()\n    .references(() => users.id),\n});\n```\n\n### Queries\n\n```typescript\nimport { eq } from 'drizzle-orm';\nimport { users, posts } from './schema';\n\n// Insert\nawait db.insert(users).values({ name: 'Alice', email: 'alice@example.com' });\n\n// Select all\nconst allUsers = await db.select().from(users);\n\n// Select with filter\nconst user = await db.select().from(users).where(eq(users.email, 'alice@example.com'));\n\n// Update\nawait db.update(users).set({ name: 'Bob' }).where(eq(users.id, 1));\n\n// Delete\nawait db.delete(users).where(eq(users.id, 1));\n```\n\n### Relational Queries\n\nWhen passing a `schema` to `drizzle()`, you can use Drizzle's relational query API:\n\n```typescript\nconst usersWithPosts = await db.query.users.findMany({\n  with: { posts: true },\n});\n```\n\n### Transactions\n\nDrizzle sends `BEGIN`, `COMMIT`, and `ROLLBACK` statements automatically:\n\n```typescript\nawait db.transaction(async (tx) => {\n  await tx.insert(users).values({ name: 'Alice', email: 'alice@example.com' });\n  await tx.insert(posts).values({ title: 'Hello', content: 'World', authorId: 1 });\n});\n```\n\n### Migrations\n\nThe `migrate` helper accepts the bundled migrations format generated by [`drizzle-kit`](https://orm.drizzle.team/docs/kit-overview).\n\n#### 1. Configure `drizzle-kit`\n\nCreate a `drizzle.config.ts` in your project root:\n\n```typescript\nimport { defineConfig } from 'drizzle-kit';\n\nexport default defineConfig({\n  schema: './src/schema.ts',\n  out: './src/drizzle',\n  dialect: 'sqlite',\n  driver: 'expo',\n});\n```\n\n> **Note:** `driver: 'expo'` is required to generate the bundled `migrations.js` file that works in non-Node environments like Capacitor.\n\n#### 2. Generate migrations\n\n```bash\nnpx drizzle-kit generate\n```\n\nThis creates SQL files and a `migrations.js` bundle in `./src/drizzle/`.\n\n> **Note:** `.sql` files are imported as strings by `migrations.js`. You may need [`babel-plugin-inline-import`](https://www.npmjs.com/package/babel-plugin-inline-import) or a Vite plugin like [`vite-plugin-plain-text`](https://www.npmjs.com/package/vite-plugin-plain-text) to handle `.sql` imports in your bundler.\n\n#### 3. Apply migrations\n\n```typescript\nimport { Sqlite } from '@capawesome-team/capacitor-sqlite';\nimport { drizzle, migrate } from '@capawesome/capacitor-sqlite-drizzle';\nimport migrations from './drizzle/migrations';\n\nconst { databaseId } = await Sqlite.open({ path: 'my.db' });\nconst db = drizzle(Sqlite, { databaseId });\n\nawait migrate(Sqlite, databaseId, migrations);\n```\n\nEach migration runs inside a transaction. The `__drizzle_migrations` table is created automatically to track applied migrations.\n\n## API\n\n### `drizzle(client, config)`\n\nCreates a Drizzle ORM database instance.\n\n| Param    | Type                      | Description                                                                                              |\n| -------- | ------------------------- | -------------------------------------------------------------------------------------------------------- |\n| `client` | `SqlitePlugin`            | The Capacitor SQLite plugin instance (e.g. `Sqlite`).                                                    |\n| `config` | `CapawesomeDrizzleConfig` | Configuration object. Must include `databaseId`. Supports all Drizzle options (e.g. `schema`, `logger`). |\n\n**Returns:** `SqliteRemoteDatabase<TSchema>`\n\n### `migrate(client, databaseId, migrations)`\n\nApplies pending migrations.\n\n| Param        | Type           | Description                                                                          |\n| ------------ | -------------- | ------------------------------------------------------------------------------------ |\n| `client`     | `SqlitePlugin` | The Capacitor SQLite plugin instance.                                                |\n| `databaseId` | `string`       | The database identifier returned by `Sqlite.open()`.                                 |\n| `migrations` | `Migrations`   | Bundled migrations object generated by `drizzle-kit generate` with `driver: 'expo'`. |\n\n### Interfaces\n\n#### `CapawesomeDrizzleConfig`\n\nExtends Drizzle's `DrizzleConfig` with:\n\n| Property     | Type     | Description                                          |\n| ------------ | -------- | ---------------------------------------------------- |\n| `databaseId` | `string` | The database identifier returned by `Sqlite.open()`. |\n\n#### `Migrations`\n\nThe bundled migrations format generated by `drizzle-kit generate` with `driver: 'expo'`.\n\n| Property     | Type                     | Description                                                   |\n| ------------ | ------------------------ | ------------------------------------------------------------- |\n| `journal`    | `{ entries: Entry[] }`   | Migration journal with ordered entries.                       |\n| `migrations` | `Record<string, string>` | Map of migration keys (`m0000`, `m0001`, ...) to SQL strings. |\n","readmeFilename":"README.md","_rev":"1-de37df2ba06ceb6869313fb9df02357e"}