@pineliner/odb-client 1.0.5 → 1.0.6

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.
@@ -35,10 +35,11 @@ export declare class DatabaseManager {
35
35
  * Create a new database
36
36
  * @param name - Database name (becomes filename or ODB-Lite database name)
37
37
  * @param options - Optional creation options
38
+ * @returns Connection object (contains databaseHash for ODB-Lite)
38
39
  */
39
40
  createDatabase(name: string, options?: {
40
41
  schemaContent?: string;
41
- }): Promise<void>;
42
+ }): Promise<Connection>;
42
43
  /**
43
44
  * Check if a database exists
44
45
  * @param name - Database name
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/database/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAErB,UAAU,EAIX,MAAM,SAAS,CAAA;AAOhB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAAqC;IAGxD,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,cAAc,CAAQ;gBAElB,MAAM,EAAE,qBAAqB;IA6BzC;;;;OAIG;IACG,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GACnC,OAAO,CAAC,IAAI,CAAC;IA0BhB;;;;;;;OAOG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BpD;;;;;;OAMG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAkCtD;;;OAGG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjD;;;;;OAKG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIxC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;YACW,aAAa;IAoC3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;OAEG;YACW,QAAQ;CAqBvB"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/database/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EAErB,UAAU,EAIX,MAAM,SAAS,CAAA;AAOhB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAAqC;IAGxD,OAAO,CAAC,oBAAoB,CAAiC;IAC7D,OAAO,CAAC,cAAc,CAAQ;gBAElB,MAAM,EAAE,qBAAqB;IA6BzC;;;;;OAKG;IACG,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GACnC,OAAO,CAAC,UAAU,CAAC;IA6BtB;;;;;;;OAOG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BpD;;;;;;OAMG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAkCtD;;;OAGG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjD;;;;;OAKG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIxC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;YACW,aAAa;IAoC3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;OAEG;YACW,QAAQ;CAqBvB"}
@@ -29,6 +29,8 @@ export interface Connection {
29
29
  transaction<T>(fn: (tx: Connection) => Promise<T>): Promise<T>;
30
30
  begin<T>(fn: (tx: Connection) => Promise<T>): Promise<T>;
31
31
  close(): Promise<void>;
32
+ databaseHash?: string;
33
+ databaseName?: string;
32
34
  }
33
35
  /**
34
36
  * Prepared statement interface
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1373,7 +1373,7 @@ const external_libsql_client_namespaceObject = require("@libsql/client");
1373
1373
  apiKey: this.config.apiKey,
1374
1374
  databaseId: db.hash
1375
1375
  });
1376
- return new ODBLiteConnection(client, this.serviceClient, databaseName);
1376
+ return new ODBLiteConnection(client, this.serviceClient, databaseName, db.hash);
1377
1377
  }
1378
1378
  async disconnect(tenantId) {
1379
1379
  if (tenantId) {
@@ -1401,12 +1401,15 @@ const external_libsql_client_namespaceObject = require("@libsql/client");
1401
1401
  */ class ODBLiteConnection {
1402
1402
  client;
1403
1403
  serviceClient;
1404
- databaseName;
1405
1404
  inTransaction = false;
1406
- constructor(client, serviceClient, databaseName){
1405
+ // Public metadata fields
1406
+ databaseName;
1407
+ databaseHash;
1408
+ constructor(client, serviceClient, databaseName, databaseHash){
1407
1409
  this.client = client;
1408
1410
  this.serviceClient = serviceClient;
1409
1411
  this.databaseName = databaseName;
1412
+ this.databaseHash = databaseHash;
1410
1413
  }
1411
1414
  /**
1412
1415
  * Template tag query (postgres.js-like)
@@ -1642,6 +1645,7 @@ var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node
1642
1645
  * Create a new database
1643
1646
  * @param name - Database name (becomes filename or ODB-Lite database name)
1644
1647
  * @param options - Optional creation options
1648
+ * @returns Connection object (contains databaseHash for ODB-Lite)
1645
1649
  */ async createDatabase(name, options) {
1646
1650
  console.log(`📦 Creating database: ${name}`);
1647
1651
  // Build database-specific config
@@ -1658,6 +1662,8 @@ var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node
1658
1662
  // Evict LRU if pool is full
1659
1663
  if (this.connections.size > this.maxConnections) await this.evictLRU();
1660
1664
  console.log(`✅ Database created: ${name}`);
1665
+ // Return connection so caller can access metadata (e.g., databaseHash for ODB-Lite)
1666
+ return conn;
1661
1667
  }
1662
1668
  /**
1663
1669
  * Check if a database exists
package/dist/index.js CHANGED
@@ -1298,7 +1298,7 @@ ODBLiteClient.join;
1298
1298
  apiKey: this.config.apiKey,
1299
1299
  databaseId: db.hash
1300
1300
  });
1301
- return new ODBLiteConnection(client, this.serviceClient, databaseName);
1301
+ return new ODBLiteConnection(client, this.serviceClient, databaseName, db.hash);
1302
1302
  }
1303
1303
  async disconnect(tenantId) {
1304
1304
  if (tenantId) {
@@ -1326,12 +1326,15 @@ ODBLiteClient.join;
1326
1326
  */ class ODBLiteConnection {
1327
1327
  client;
1328
1328
  serviceClient;
1329
- databaseName;
1330
1329
  inTransaction = false;
1331
- constructor(client, serviceClient, databaseName){
1330
+ // Public metadata fields
1331
+ databaseName;
1332
+ databaseHash;
1333
+ constructor(client, serviceClient, databaseName, databaseHash){
1332
1334
  this.client = client;
1333
1335
  this.serviceClient = serviceClient;
1334
1336
  this.databaseName = databaseName;
1337
+ this.databaseHash = databaseHash;
1335
1338
  }
1336
1339
  /**
1337
1340
  * Template tag query (postgres.js-like)
@@ -1565,6 +1568,7 @@ ODBLiteClient.join;
1565
1568
  * Create a new database
1566
1569
  * @param name - Database name (becomes filename or ODB-Lite database name)
1567
1570
  * @param options - Optional creation options
1571
+ * @returns Connection object (contains databaseHash for ODB-Lite)
1568
1572
  */ async createDatabase(name, options) {
1569
1573
  console.log(`📦 Creating database: ${name}`);
1570
1574
  // Build database-specific config
@@ -1581,6 +1585,8 @@ ODBLiteClient.join;
1581
1585
  // Evict LRU if pool is full
1582
1586
  if (this.connections.size > this.maxConnections) await this.evictLRU();
1583
1587
  console.log(`✅ Database created: ${name}`);
1588
+ // Return connection so caller can access metadata (e.g., databaseHash for ODB-Lite)
1589
+ return conn;
1584
1590
  }
1585
1591
  /**
1586
1592
  * Check if a database exists
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pineliner/odb-client",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "Isomorphic client for ODB-Lite with postgres.js-like template string SQL support",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -49,7 +49,7 @@ export class ODBLiteAdapter implements DatabaseAdapter {
49
49
  databaseId: db.hash,
50
50
  })
51
51
 
52
- return new ODBLiteConnection(client, this.serviceClient, databaseName)
52
+ return new ODBLiteConnection(client, this.serviceClient, databaseName, db.hash)
53
53
  }
54
54
 
55
55
  async disconnect(tenantId?: string): Promise<void> {
@@ -81,17 +81,22 @@ export class ODBLiteAdapter implements DatabaseAdapter {
81
81
  class ODBLiteConnection implements Connection {
82
82
  private client: ODBLiteClient
83
83
  private serviceClient: ServiceClient
84
- private databaseName: string
85
84
  private inTransaction = false
86
85
 
86
+ // Public metadata fields
87
+ public databaseName: string
88
+ public databaseHash: string
89
+
87
90
  constructor(
88
91
  client: ODBLiteClient,
89
92
  serviceClient: ServiceClient,
90
- databaseName: string
93
+ databaseName: string,
94
+ databaseHash: string
91
95
  ) {
92
96
  this.client = client
93
97
  this.serviceClient = serviceClient
94
98
  this.databaseName = databaseName
99
+ this.databaseHash = databaseHash
95
100
  }
96
101
 
97
102
  /**
@@ -79,11 +79,12 @@ export class DatabaseManager {
79
79
  * Create a new database
80
80
  * @param name - Database name (becomes filename or ODB-Lite database name)
81
81
  * @param options - Optional creation options
82
+ * @returns Connection object (contains databaseHash for ODB-Lite)
82
83
  */
83
84
  async createDatabase(
84
85
  name: string,
85
86
  options?: { schemaContent?: string }
86
- ): Promise<void> {
87
+ ): Promise<Connection> {
87
88
  console.log(`📦 Creating database: ${name}`)
88
89
 
89
90
  // Build database-specific config
@@ -107,6 +108,9 @@ export class DatabaseManager {
107
108
  }
108
109
 
109
110
  console.log(`✅ Database created: ${name}`)
111
+
112
+ // Return connection so caller can access metadata (e.g., databaseHash for ODB-Lite)
113
+ return conn
110
114
  }
111
115
 
112
116
  /**
@@ -44,6 +44,10 @@ export interface Connection {
44
44
 
45
45
  // Connection management
46
46
  close(): Promise<void>
47
+
48
+ // Metadata (optional, ODB-Lite specific)
49
+ databaseHash?: string
50
+ databaseName?: string
47
51
  }
48
52
 
49
53
  /**