nanodb-orm 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +104 -10
- package/dist/core/connection.d.ts +9 -1
- package/dist/core/connection.d.ts.map +1 -1
- package/dist/core/connection.js +15 -1
- package/dist/core/connection.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +23 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +283 -149
- package/dist/init.js.map +1 -1
- package/dist/replicas.d.ts +24 -0
- package/dist/replicas.d.ts.map +1 -0
- package/dist/replicas.js +86 -0
- package/dist/replicas.js.map +1 -0
- package/dist/types/index.d.ts +8 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/migrations.d.ts +15 -6
- package/dist/utils/migrations.d.ts.map +1 -1
- package/dist/utils/migrations.js +68 -30
- package/dist/utils/migrations.js.map +1 -1
- package/dist/utils/schema-introspection.d.ts +21 -12
- package/dist/utils/schema-introspection.d.ts.map +1 -1
- package/dist/utils/schema-introspection.js +77 -35
- package/dist/utils/schema-introspection.js.map +1 -1
- package/dist/utils/seeds.d.ts +14 -5
- package/dist/utils/seeds.d.ts.map +1 -1
- package/dist/utils/seeds.js +67 -28
- package/dist/utils/seeds.js.map +1 -1
- package/dist/utils/sync.d.ts +16 -6
- package/dist/utils/sync.d.ts.map +1 -1
- package/dist/utils/sync.js +25 -17
- package/dist/utils/sync.js.map +1 -1
- package/dist/utils/transactions.d.ts +11 -4
- package/dist/utils/transactions.d.ts.map +1 -1
- package/dist/utils/transactions.js +8 -8
- package/dist/utils/transactions.js.map +1 -1
- package/package.json +34 -10
package/README.md
CHANGED
|
@@ -17,11 +17,27 @@ A lightweight ORM wrapper for Drizzle ORM with automatic migrations, schema intr
|
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
npm install nanodb-orm
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Monorepo
|
|
23
|
+
|
|
24
|
+
This repo is managed as an npm workspace with core + plugin packages.
|
|
25
|
+
See `PACKAGES.md` for layout and cross-package commands.
|
|
20
26
|
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
> **Important:** All interactions should go through `nanodb-orm`.
|
|
28
|
+
> Use `nanodb-orm` exports for schema, queries, and utilities instead of importing from Drizzle directly.
|
|
29
|
+
|
|
30
|
+
Optional plugins:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install @nanodb-orm/plugin-timestamps @nanodb-orm/plugin-soft-delete @nanodb-orm/plugin-logger
|
|
23
34
|
```
|
|
24
35
|
|
|
36
|
+
> Plugin preview rule: multi-plugin mode requires `preview: { deterministicPluginOrdering: true }`.
|
|
37
|
+
> Without this preview flag, `createDatabase()` accepts only one plugin.
|
|
38
|
+
|
|
39
|
+
Preview features: embedded replicas (opt-in via config switch).
|
|
40
|
+
|
|
25
41
|
## CLI
|
|
26
42
|
|
|
27
43
|
nanodb-orm includes a CLI for common database operations:
|
|
@@ -199,7 +215,9 @@ const db = await createDatabase({
|
|
|
199
215
|
autoMigrate: true, // default: true
|
|
200
216
|
dropTables: false, // default: false
|
|
201
217
|
},
|
|
202
|
-
|
|
218
|
+
useSingletonConnection: false, // default: false
|
|
219
|
+
plugins: [auditPlugin], // optional
|
|
220
|
+
preview: { deterministicPluginOrdering: true }, // optional preview for multi-plugin mode
|
|
203
221
|
});
|
|
204
222
|
```
|
|
205
223
|
|
|
@@ -215,6 +233,7 @@ await db.sync(); // Sync with Turso (if remote)
|
|
|
215
233
|
await db.reset(); // Drop all, recreate, reseed
|
|
216
234
|
await db.seed(); // Re-seed data
|
|
217
235
|
await db.clearData(); // Delete all data (keep tables)
|
|
236
|
+
await db.dispose(); // Release in-memory context and non-singleton client
|
|
218
237
|
```
|
|
219
238
|
|
|
220
239
|
### Schema Introspection (from `db.schema`)
|
|
@@ -338,7 +357,77 @@ try {
|
|
|
338
357
|
|
|
339
358
|
## Plugins
|
|
340
359
|
|
|
341
|
-
Extend nanodb-orm with
|
|
360
|
+
Extend nanodb-orm with hooks that run automatically on database operations.
|
|
361
|
+
|
|
362
|
+
### Official Plugin Packages
|
|
363
|
+
|
|
364
|
+
Official plugins are published as separate npm packages:
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
npm install @nanodb-orm/plugin-timestamps @nanodb-orm/plugin-soft-delete @nanodb-orm/plugin-logger
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
```typescript
|
|
371
|
+
import { createDatabase } from 'nanodb-orm';
|
|
372
|
+
import { timestamps } from '@nanodb-orm/plugin-timestamps';
|
|
373
|
+
import { softDelete } from '@nanodb-orm/plugin-soft-delete';
|
|
374
|
+
import { queryLogger } from '@nanodb-orm/plugin-logger';
|
|
375
|
+
|
|
376
|
+
const db = await createDatabase({
|
|
377
|
+
tables: { users, posts },
|
|
378
|
+
plugins: [timestamps()],
|
|
379
|
+
});
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
To use multiple plugins, enable deterministic ordering preview:
|
|
383
|
+
|
|
384
|
+
```typescript
|
|
385
|
+
const db = await createDatabase({
|
|
386
|
+
tables: { users, posts },
|
|
387
|
+
plugins: [queryLogger(), softDelete(), timestamps()],
|
|
388
|
+
preview: { deterministicPluginOrdering: true },
|
|
389
|
+
});
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
Ordering rules in preview mode:
|
|
393
|
+
- lower `plugin.order` runs first (default `0`)
|
|
394
|
+
- ties are sorted by `plugin.name` (ascending)
|
|
395
|
+
- final tie-breaker is declaration order in the `plugins` array
|
|
396
|
+
|
|
397
|
+
| Package | Function | Description |
|
|
398
|
+
|---------|----------|-------------|
|
|
399
|
+
| `@nanodb-orm/plugin-timestamps` | `timestamps()` | Auto-add `createdAt` / `updatedAt` |
|
|
400
|
+
| `@nanodb-orm/plugin-logger` | `queryLogger()` | Log SQL operations with timing |
|
|
401
|
+
| `@nanodb-orm/plugin-soft-delete` | `softDelete()` | Mark as deleted instead of remove |
|
|
402
|
+
|
|
403
|
+
### Preview: Embedded Replicas
|
|
404
|
+
|
|
405
|
+
This feature is built into `nanodb-orm` and guarded by a config switch.
|
|
406
|
+
|
|
407
|
+
```typescript
|
|
408
|
+
import { createReplicatedDatabase } from 'nanodb-orm';
|
|
409
|
+
import { schema } from 'nanodb-orm';
|
|
410
|
+
|
|
411
|
+
const users = schema.table('users', {
|
|
412
|
+
id: schema.text('id').primaryKey(),
|
|
413
|
+
name: schema.text('name').notNull(),
|
|
414
|
+
});
|
|
415
|
+
|
|
416
|
+
const db = await createReplicatedDatabase({
|
|
417
|
+
tables: { users },
|
|
418
|
+
primary: { id: 'primary', connectionUrl: 'libsql://primary.turso.io', authToken: '...' },
|
|
419
|
+
replicas: [
|
|
420
|
+
{ id: 'replica-1', connectionUrl: 'libsql://replica1.turso.io', authToken: '...' },
|
|
421
|
+
{ id: 'replica-2', connectionUrl: 'libsql://replica2.turso.io', authToken: '...' },
|
|
422
|
+
],
|
|
423
|
+
preview: { enabled: true },
|
|
424
|
+
});
|
|
425
|
+
|
|
426
|
+
await db.write().insert(users).values({ id: 'user-123', name: 'Alice' });
|
|
427
|
+
const rows = await db.read().select().from(users);
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
> Embedded replicas are the recommended first step before sharding.
|
|
342
431
|
|
|
343
432
|
### Plugin Interface
|
|
344
433
|
|
|
@@ -347,6 +436,7 @@ import { NanoPlugin } from 'nanodb-orm';
|
|
|
347
436
|
|
|
348
437
|
const myPlugin: NanoPlugin = {
|
|
349
438
|
name: 'my-plugin',
|
|
439
|
+
order: 0, // optional execution priority (lower runs earlier)
|
|
350
440
|
|
|
351
441
|
// Lifecycle
|
|
352
442
|
install: (db) => db, // Modify db instance
|
|
@@ -404,18 +494,17 @@ const validationPlugin: NanoPlugin = {
|
|
|
404
494
|
},
|
|
405
495
|
};
|
|
406
496
|
|
|
407
|
-
// Use
|
|
497
|
+
// Use a plugin (temporary one-plugin limit)
|
|
408
498
|
const db = await createDatabase({
|
|
409
499
|
tables,
|
|
410
|
-
plugins: [auditPlugin
|
|
500
|
+
plugins: [auditPlugin],
|
|
411
501
|
});
|
|
412
502
|
|
|
413
503
|
// Hooks run automatically
|
|
414
|
-
await db.insert(posts).values({ title: 'My Post' });
|
|
415
|
-
await db.insert(users).values({ email: 'invalid' }); // throws error
|
|
504
|
+
await db.insert(posts).values({ title: 'My Post' });
|
|
416
505
|
|
|
417
506
|
// Check loaded plugins
|
|
418
|
-
db.plugins.list(); // ['audit'
|
|
507
|
+
db.plugins.list(); // ['audit']
|
|
419
508
|
```
|
|
420
509
|
|
|
421
510
|
## Best Practices
|
|
@@ -653,7 +742,7 @@ Error output is clean and actionable:
|
|
|
653
742
|
│ Column "email" does not exist
|
|
654
743
|
│ Table: users
|
|
655
744
|
│ Operation: seed
|
|
656
|
-
│ Detail:
|
|
745
|
+
│ Detail: Failed seed columns: name, email
|
|
657
746
|
└────────────────────────────────────────────────
|
|
658
747
|
```
|
|
659
748
|
|
|
@@ -670,6 +759,11 @@ nanodb.query // .eq, .gte, .and, .or, .sql, .count, ...
|
|
|
670
759
|
nanodb.errors // .DatabaseError, .parse
|
|
671
760
|
nanodb.cli // .studio, .setup, .reset, .status, .validate
|
|
672
761
|
|
|
762
|
+
// Official plugins (separate packages)
|
|
763
|
+
import { timestamps } from '@nanodb-orm/plugin-timestamps';
|
|
764
|
+
import { softDelete } from '@nanodb-orm/plugin-soft-delete';
|
|
765
|
+
import { queryLogger } from '@nanodb-orm/plugin-logger';
|
|
766
|
+
|
|
673
767
|
// Types (named imports)
|
|
674
768
|
import { type SelectModel, type InsertModel, type NanoPlugin } from 'nanodb-orm';
|
|
675
769
|
```
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { drizzle } from 'drizzle-orm/libsql';
|
|
2
2
|
type DrizzleInstance = ReturnType<typeof drizzle>;
|
|
3
|
+
export interface ConnectionOverride {
|
|
4
|
+
connectionUrl?: string;
|
|
5
|
+
authToken?: string;
|
|
6
|
+
forceLocal?: boolean;
|
|
7
|
+
databasePath?: string;
|
|
8
|
+
}
|
|
3
9
|
/**
|
|
4
|
-
*
|
|
10
|
+
* Database connection factory with optional singleton caching.
|
|
5
11
|
* Supports both Turso (remote) and local SQLite databases.
|
|
6
12
|
*
|
|
7
13
|
* Environment variables:
|
|
@@ -17,6 +23,8 @@ export declare class DatabaseConnection {
|
|
|
17
23
|
static getInstance(): Promise<DrizzleInstance>;
|
|
18
24
|
/** Create a new database connection */
|
|
19
25
|
private static createConnection;
|
|
26
|
+
/** Create a new database connection without caching */
|
|
27
|
+
static createInstance(override?: ConnectionOverride): Promise<DrizzleInstance>;
|
|
20
28
|
/** Reset the connection (for testing) */
|
|
21
29
|
static reset(): void;
|
|
22
30
|
/** Check if a connection exists */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAElD;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgC;IACvD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAyC;IAE/D,+DAA+D;WAClD,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IAcpD,uCAAuC;mBAClB,gBAAgB;IA4BrC,yCAAyC;IACzC,MAAM,CAAC,KAAK,IAAI,IAAI;IAKpB,mCAAmC;IACnC,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B"}
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgC;IACvD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAyC;IAE/D,+DAA+D;WAClD,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IAcpD,uCAAuC;mBAClB,gBAAgB;IA4BrC,uDAAuD;WAC1C,cAAc,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBpF,yCAAyC;IACzC,MAAM,CAAC,KAAK,IAAI,IAAI;IAKpB,mCAAmC;IACnC,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B"}
|
package/dist/core/connection.js
CHANGED
|
@@ -5,7 +5,7 @@ const libsql_1 = require("drizzle-orm/libsql");
|
|
|
5
5
|
const client_1 = require("@libsql/client");
|
|
6
6
|
const config_1 = require("./config");
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Database connection factory with optional singleton caching.
|
|
9
9
|
* Supports both Turso (remote) and local SQLite databases.
|
|
10
10
|
*
|
|
11
11
|
* Environment variables:
|
|
@@ -57,6 +57,20 @@ class DatabaseConnection {
|
|
|
57
57
|
return (0, libsql_1.drizzle)((0, client_1.createClient)({ url: `file:${dbPath}` }));
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
+
/** Create a new database connection without caching */
|
|
61
|
+
static async createInstance(override) {
|
|
62
|
+
if (override?.connectionUrl) {
|
|
63
|
+
const clientConfig = override.authToken
|
|
64
|
+
? { url: override.connectionUrl, authToken: override.authToken }
|
|
65
|
+
: { url: override.connectionUrl };
|
|
66
|
+
return (0, libsql_1.drizzle)((0, client_1.createClient)(clientConfig));
|
|
67
|
+
}
|
|
68
|
+
if (override?.forceLocal || override?.databasePath) {
|
|
69
|
+
const dbPath = override.databasePath ?? 'database.db';
|
|
70
|
+
return (0, libsql_1.drizzle)((0, client_1.createClient)({ url: `file:${dbPath}` }));
|
|
71
|
+
}
|
|
72
|
+
return this.createConnection();
|
|
73
|
+
}
|
|
60
74
|
/** Reset the connection (for testing) */
|
|
61
75
|
static reset() {
|
|
62
76
|
this.instance = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAC7C,2CAA8C;AAC9C,qCAA6C;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -133,7 +133,9 @@ export declare const cli: {
|
|
|
133
133
|
validate: typeof runValidate;
|
|
134
134
|
};
|
|
135
135
|
export { createDatabase, initializeDatabase } from './init';
|
|
136
|
+
export { createReplicatedDatabase, } from './replicas';
|
|
136
137
|
export type { CreateDatabaseConfig, NanoDatabase, Hooks, SchemaUtils, MigrationUtils, PluginUtils, } from './init';
|
|
138
|
+
export type { ReplicatedDatabase, ReplicatedDatabaseConfig, ReplicaConnection, ReadStrategy, } from './replicas';
|
|
137
139
|
export type { Table, AnyTable, Schema, SelectModel, InsertModel, SchemaModels, SchemaInsertModels, DrizzleDB, NanoPlugin, HookFn, ErrorHookFn, LifecycleHookFn, ColumnMetadata, ForeignKeyReference, SchemaData, MigrationConfig, DatabaseConfig, DatabaseInfo, HealthCheck, SyncResult, SchemaValidation, ForeignKey, TableMetadata, QueryResult, DatabaseClient, DrizzleTable, DrizzleColumn, } from './types';
|
|
138
140
|
export type { StudioOptions, StatusResult, ValidationResult, } from './cli';
|
|
139
141
|
export type { InferSelectModel, InferInsertModel, } from 'drizzle-orm';
|
|
@@ -144,7 +146,7 @@ export { DatabaseSync } from './utils/sync';
|
|
|
144
146
|
export { DatabaseMigrations } from './utils/migrations';
|
|
145
147
|
export { DatabaseSeeds } from './utils/seeds';
|
|
146
148
|
export { SchemaIntrospection } from './utils/schema-introspection';
|
|
147
|
-
export { transaction, batch, recreateTable } from './utils/transactions';
|
|
149
|
+
export { transaction, batch, recreateTable, migrateTablePreservingData } from './utils/transactions';
|
|
148
150
|
export { launchStudio, runSetup, runReset, getStatus, runValidate, } from './cli';
|
|
149
151
|
export declare const table: import("drizzle-orm/sqlite-core").SQLiteTableFn<undefined>;
|
|
150
152
|
export { sqliteTable };
|
|
@@ -162,6 +164,7 @@ export declare const column: {
|
|
|
162
164
|
export { eq, ne, gt, gte, lt, lte, like, ilike, notLike, and, or, not, between, inArray, notInArray, isNull, isNotNull, desc, asc, count, sum, avg, min, max, sql, } from 'drizzle-orm';
|
|
163
165
|
import { createDatabase, initializeDatabase } from './init';
|
|
164
166
|
import { transaction, batch } from './utils/transactions';
|
|
167
|
+
import { createReplicatedDatabase } from './replicas';
|
|
165
168
|
/**
|
|
166
169
|
* Default export with all nanodb-orm functionality.
|
|
167
170
|
*
|
|
@@ -181,6 +184,7 @@ import { transaction, batch } from './utils/transactions';
|
|
|
181
184
|
declare const nanodb: {
|
|
182
185
|
createDatabase: typeof createDatabase;
|
|
183
186
|
initializeDatabase: typeof initializeDatabase;
|
|
187
|
+
createReplicatedDatabase: typeof createReplicatedDatabase;
|
|
184
188
|
transaction: typeof transaction;
|
|
185
189
|
batch: typeof batch;
|
|
186
190
|
schema: {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,WAAW,EACX,OAAO,IAAI,cAAc,EACzB,IAAI,IAAI,WAAW,EACnB,IAAI,IAAI,WAAW,EACnB,IAAI,IAAI,WAAW,EACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAOL,IAAI,IAAI,WAAW,EACnB,KAAK,IAAI,YAAY,EACrB,OAAO,IAAI,cAAc,EACzB,GAAG,IAAI,UAAU,EACjB,EAAE,IAAI,SAAS,EACf,GAAG,IAAI,UAAU,EACjB,OAAO,IAAI,cAAc,EACzB,OAAO,IAAI,cAAc,EACzB,UAAU,IAAI,iBAAiB,EAC/B,MAAM,IAAI,aAAa,EACvB,SAAS,IAAI,gBAAgB,EAC7B,IAAI,IAAI,WAAW,EACnB,GAAG,IAAI,UAAU,EACjB,KAAK,IAAI,YAAY,EACrB,GAAG,IAAI,UAAU,EACjB,GAAG,IAAI,UAAU,EACjB,GAAG,IAAI,UAAU,EACjB,GAAG,IAAI,UAAU,EACjB,GAAG,IAAI,UAAU,EAClB,MAAM,aAAa,CAAC;AAMrB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM;;;;;;CAMlB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCjB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,EACd,SAAS,EACT,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,MAAM;;;;;;;CAOlB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,WAAW,EACZ,MAAM,OAAO,CAAC;AAEf,eAAO,MAAM,GAAG;;;;;;CAMf,CAAC;AAMF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC5D,YAAY,EACV,oBAAoB,EACpB,YAAY,EACZ,KAAK,EACL,WAAW,EACX,cAAc,EACd,WAAW,GACZ,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
27
|
-
exports.sql = exports.max = exports.min = exports.avg = exports.sum = exports.count = exports.asc = exports.desc = void 0;
|
|
26
|
+
exports.notInArray = exports.inArray = exports.between = exports.not = exports.or = exports.and = exports.notLike = exports.ilike = exports.like = exports.lte = exports.lt = exports.gte = exports.gt = exports.ne = exports.eq = exports.column = exports.blob = exports.real = exports.text = exports.integer = exports.sqliteTable = exports.table = exports.runValidate = exports.getStatus = exports.runReset = exports.runSetup = exports.launchStudio = exports.migrateTablePreservingData = exports.recreateTable = exports.batch = exports.transaction = exports.SchemaIntrospection = exports.DatabaseSeeds = exports.DatabaseMigrations = exports.DatabaseSync = exports.getDatabaseConfig = exports.DatabaseConnection = exports.parseDbError = exports.SeedError = exports.MigrationError = exports.ConnectionError = exports.SchemaError = exports.DatabaseError = exports.createReplicatedDatabase = exports.initializeDatabase = exports.createDatabase = exports.cli = exports.errors = exports.query = exports.schema = void 0;
|
|
27
|
+
exports.sql = exports.max = exports.min = exports.avg = exports.sum = exports.count = exports.asc = exports.desc = exports.isNotNull = exports.isNull = void 0;
|
|
28
28
|
const sqlite_core_1 = require("drizzle-orm/sqlite-core");
|
|
29
29
|
Object.defineProperty(exports, "sqliteTable", { enumerable: true, get: function () { return sqlite_core_1.sqliteTable; } });
|
|
30
30
|
const drizzle_orm_1 = require("drizzle-orm");
|
|
@@ -152,6 +152,8 @@ exports.cli = {
|
|
|
152
152
|
var init_1 = require("./init");
|
|
153
153
|
Object.defineProperty(exports, "createDatabase", { enumerable: true, get: function () { return init_1.createDatabase; } });
|
|
154
154
|
Object.defineProperty(exports, "initializeDatabase", { enumerable: true, get: function () { return init_1.initializeDatabase; } });
|
|
155
|
+
var replicas_1 = require("./replicas");
|
|
156
|
+
Object.defineProperty(exports, "createReplicatedDatabase", { enumerable: true, get: function () { return replicas_1.createReplicatedDatabase; } });
|
|
155
157
|
// =============================================================================
|
|
156
158
|
// INDIVIDUAL EXPORTS (for tree-shaking or preference)
|
|
157
159
|
// =============================================================================
|
|
@@ -180,6 +182,7 @@ var transactions_1 = require("./utils/transactions");
|
|
|
180
182
|
Object.defineProperty(exports, "transaction", { enumerable: true, get: function () { return transactions_1.transaction; } });
|
|
181
183
|
Object.defineProperty(exports, "batch", { enumerable: true, get: function () { return transactions_1.batch; } });
|
|
182
184
|
Object.defineProperty(exports, "recreateTable", { enumerable: true, get: function () { return transactions_1.recreateTable; } });
|
|
185
|
+
Object.defineProperty(exports, "migrateTablePreservingData", { enumerable: true, get: function () { return transactions_1.migrateTablePreservingData; } });
|
|
183
186
|
// CLI (individual)
|
|
184
187
|
var cli_2 = require("./cli");
|
|
185
188
|
Object.defineProperty(exports, "launchStudio", { enumerable: true, get: function () { return cli_2.launchStudio; } });
|
|
@@ -226,6 +229,7 @@ Object.defineProperty(exports, "sql", { enumerable: true, get: function () { ret
|
|
|
226
229
|
// =============================================================================
|
|
227
230
|
const init_2 = require("./init");
|
|
228
231
|
const transactions_2 = require("./utils/transactions");
|
|
232
|
+
const replicas_2 = require("./replicas");
|
|
229
233
|
/**
|
|
230
234
|
* Default export with all nanodb-orm functionality.
|
|
231
235
|
*
|
|
@@ -246,6 +250,7 @@ const nanodb = {
|
|
|
246
250
|
// Main API
|
|
247
251
|
createDatabase: init_2.createDatabase,
|
|
248
252
|
initializeDatabase: init_2.initializeDatabase,
|
|
253
|
+
createReplicatedDatabase: replicas_2.createReplicatedDatabase,
|
|
249
254
|
transaction: transactions_2.transaction,
|
|
250
255
|
batch: transactions_2.batch,
|
|
251
256
|
// Grouped utilities
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;AAEH,yDAMiC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/dist/init.d.ts
CHANGED
|
@@ -87,13 +87,35 @@ export type NanoDatabase<S extends Schema> = LibSQLDatabase<S> & {
|
|
|
87
87
|
plugins: PluginUtils;
|
|
88
88
|
/** Hook system */
|
|
89
89
|
hooks: Hooks;
|
|
90
|
+
/** Release in-memory nanodb context state */
|
|
91
|
+
dispose: () => Promise<void>;
|
|
90
92
|
};
|
|
91
93
|
/**
|
|
92
94
|
* Configuration for createDatabase().
|
|
93
95
|
*/
|
|
94
96
|
export interface CreateDatabaseConfig<S extends Schema = Schema> extends SchemaData<S> {
|
|
97
|
+
/** Optional connection override (bypasses singleton) */
|
|
98
|
+
connection?: {
|
|
99
|
+
connectionUrl?: string;
|
|
100
|
+
authToken?: string;
|
|
101
|
+
forceLocal?: boolean;
|
|
102
|
+
databasePath?: string;
|
|
103
|
+
};
|
|
104
|
+
/** Reuse process-wide singleton connection (default: false) */
|
|
105
|
+
useSingletonConnection?: boolean;
|
|
95
106
|
/** Plugins to extend database functionality */
|
|
96
107
|
plugins?: NanoPlugin[];
|
|
108
|
+
/** Preview features */
|
|
109
|
+
preview?: {
|
|
110
|
+
/** Enables preview-gated features such as replicated database mode */
|
|
111
|
+
enabled?: true;
|
|
112
|
+
/**
|
|
113
|
+
* Enable deterministic plugin ordering for multi-plugin setups.
|
|
114
|
+
* When enabled, plugins are sorted by `order` (asc), then `name` (asc),
|
|
115
|
+
* then declaration position as a final tiebreaker.
|
|
116
|
+
*/
|
|
117
|
+
deterministicPluginOrdering?: boolean;
|
|
118
|
+
};
|
|
97
119
|
}
|
|
98
120
|
declare const HOOK_TYPES: readonly ["beforeInsert", "afterInsert", "beforeUpdate", "afterUpdate", "beforeDelete", "afterDelete", "beforeQuery", "afterQuery"];
|
|
99
121
|
type HookType = typeof HOOK_TYPES[number];
|
|
@@ -133,5 +155,5 @@ export declare function createDatabase<S extends Schema>(config: CreateDatabaseC
|
|
|
133
155
|
*
|
|
134
156
|
* @internal
|
|
135
157
|
*/
|
|
136
|
-
export declare function initializeDatabase<S extends Schema>(schemaData: SchemaData<S
|
|
158
|
+
export declare function initializeDatabase<S extends Schema>(schemaData: SchemaData<S>, contextId?: string): void;
|
|
137
159
|
//# sourceMappingURL=init.d.ts.map
|
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../init.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,MAAM,EAEN,UAAU,EACV,eAAe,EACf,UAAU,EAIV,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../init.ts"],"names":[],"mappings":"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"}
|