@prisma-next/driver-mongo 0.5.0-dev.66 → 0.5.0-dev.68

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.
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.mts","names":[],"sources":["../src/exports/control.ts"],"sourcesContent":[],"mappings":";;;;cASa,kBAAA,YAA8B;;EAA9B,SAAA,QAAA,EAAA,OAAmB;EAGjB,SAAA,QAAA,EAAA,OAAA;EAGG,SAAA,EAAA,EAHH,EAGG;EAAY,WAAA,CAAA,EAAA,EAAZ,EAAY,EAAA,MAAA,EAAA,WAAA;EAKuB,KAAA,CAAA,IAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,SAAA,OAAA,EAAA,CAAA,EAAA,OAAA,CAAA,KAAA,CAAA;EAIpC,KAAA,CAAA,CAAA,EAAA,OAAA,CAAA,IAAA,CAAA;;cAKX,4BApB0D,EAoB5B,uBApB4B,CAAA,OAAA,EAAA,OAAA,EAoBc,kBApBd,CAAA"}
1
+ {"version":3,"file":"control.d.mts","names":[],"sources":["../src/exports/control.ts"],"mappings":";;;;cASa,kBAAA,YAA8B,qBAAA;EAAA;WAChC,QAAA;EAAA,SACA,QAAA;EAAA,SACA,EAAA,EAAI,EAAA;cAGD,EAAA,EAAI,EAAA,EAAI,MAAA,EAAQ,WAAA;EAK5B,KAAA,CAAM,IAAA,UAAc,OAAA,wBAA+B,OAAA;EAI7C,KAAA,CAAA,GAAS,OAAA;AAAA;AAAA,cAKX,4BAAA,EAA8B,uBAAA,mBAA0C,kBAAA"}
package/dist/control.mjs CHANGED
@@ -1,8 +1,7 @@
1
- import { t as DRIVER_INFO } from "./driver-info-AYW0Ikdm.mjs";
1
+ import { t as DRIVER_INFO } from "./driver-info-DM05S1Wg.mjs";
2
2
  import { MongoClient } from "mongodb";
3
3
  import { errorRuntime } from "@prisma-next/errors/execution";
4
4
  import { redactDatabaseUrl } from "@prisma-next/utils/redact-db-url";
5
-
6
5
  //#region src/exports/control.ts
7
6
  var MongoControlDriver = class {
8
7
  familyId = "mongo";
@@ -48,8 +47,7 @@ const mongoControlDriverDescriptor = {
48
47
  }
49
48
  }
50
49
  };
51
- var control_default = mongoControlDriverDescriptor;
52
-
53
50
  //#endregion
54
- export { MongoControlDriver, control_default as default };
51
+ export { MongoControlDriver, mongoControlDriverDescriptor as default };
52
+
55
53
  //# sourceMappingURL=control.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"control.mjs","names":["#client","mongoControlDriverDescriptor: ControlDriverDescriptor<'mongo', 'mongo', MongoControlDriver>"],"sources":["../src/exports/control.ts"],"sourcesContent":["import { errorRuntime } from '@prisma-next/errors/execution';\nimport type {\n ControlDriverDescriptor,\n ControlDriverInstance,\n} from '@prisma-next/framework-components/control';\nimport { redactDatabaseUrl } from '@prisma-next/utils/redact-db-url';\nimport { type Db, MongoClient } from 'mongodb';\nimport { DRIVER_INFO } from '../core/driver-info';\n\nexport class MongoControlDriver implements ControlDriverInstance<'mongo', 'mongo'> {\n readonly familyId = 'mongo' as const;\n readonly targetId = 'mongo' as const;\n readonly db: Db;\n readonly #client: MongoClient;\n\n constructor(db: Db, client: MongoClient) {\n this.db = db;\n this.#client = client;\n }\n\n query(_sql: string, _params?: readonly unknown[]): Promise<never> {\n throw new Error('MongoDB control driver does not support SQL queries');\n }\n\n async close(): Promise<void> {\n await this.#client.close();\n }\n}\n\nconst mongoControlDriverDescriptor: ControlDriverDescriptor<'mongo', 'mongo', MongoControlDriver> =\n {\n kind: 'driver',\n familyId: 'mongo',\n targetId: 'mongo',\n id: 'mongo',\n version: DRIVER_INFO.version,\n capabilities: {},\n async create(url: string): Promise<MongoControlDriver> {\n const client = new MongoClient(url, {\n serverSelectionTimeoutMS: 5000,\n connectTimeoutMS: 5000,\n driverInfo: DRIVER_INFO,\n });\n try {\n await client.connect();\n const db = client.db();\n return new MongoControlDriver(db, client);\n } catch (error) {\n try {\n await client.close();\n } catch {\n // ignore cleanup error\n }\n const message = error instanceof Error ? error.message : String(error);\n const redacted = redactDatabaseUrl(url);\n throw errorRuntime('Database connection failed', {\n why: message,\n fix: 'Verify the MongoDB URL, ensure the database is reachable, and confirm credentials/permissions',\n meta: { ...redacted },\n });\n }\n },\n };\n\nexport default mongoControlDriverDescriptor;\n"],"mappings":";;;;;;AASA,IAAa,qBAAb,MAAmF;CACjF,AAAS,WAAW;CACpB,AAAS,WAAW;CACpB,AAAS;CACT,CAASA;CAET,YAAY,IAAQ,QAAqB;AACvC,OAAK,KAAK;AACV,QAAKA,SAAU;;CAGjB,MAAM,MAAc,SAA8C;AAChE,QAAM,IAAI,MAAM,sDAAsD;;CAGxE,MAAM,QAAuB;AAC3B,QAAM,MAAKA,OAAQ,OAAO;;;AAI9B,MAAMC,+BACJ;CACE,MAAM;CACN,UAAU;CACV,UAAU;CACV,IAAI;CACJ,SAAS,YAAY;CACrB,cAAc,EAAE;CAChB,MAAM,OAAO,KAA0C;EACrD,MAAM,SAAS,IAAI,YAAY,KAAK;GAClC,0BAA0B;GAC1B,kBAAkB;GAClB,YAAY;GACb,CAAC;AACF,MAAI;AACF,SAAM,OAAO,SAAS;AAEtB,UAAO,IAAI,mBADA,OAAO,IAAI,EACY,OAAO;WAClC,OAAO;AACd,OAAI;AACF,UAAM,OAAO,OAAO;WACd;AAKR,SAAM,aAAa,8BAA8B;IAC/C,KAHc,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAIpE,KAAK;IACL,MAAM,EAAE,GAJO,kBAAkB,IAAI,EAIhB;IACtB,CAAC;;;CAGP;AAEH,sBAAe"}
1
+ {"version":3,"file":"control.mjs","names":["#client"],"sources":["../src/exports/control.ts"],"sourcesContent":["import { errorRuntime } from '@prisma-next/errors/execution';\nimport type {\n ControlDriverDescriptor,\n ControlDriverInstance,\n} from '@prisma-next/framework-components/control';\nimport { redactDatabaseUrl } from '@prisma-next/utils/redact-db-url';\nimport { type Db, MongoClient } from 'mongodb';\nimport { DRIVER_INFO } from '../core/driver-info';\n\nexport class MongoControlDriver implements ControlDriverInstance<'mongo', 'mongo'> {\n readonly familyId = 'mongo' as const;\n readonly targetId = 'mongo' as const;\n readonly db: Db;\n readonly #client: MongoClient;\n\n constructor(db: Db, client: MongoClient) {\n this.db = db;\n this.#client = client;\n }\n\n query(_sql: string, _params?: readonly unknown[]): Promise<never> {\n throw new Error('MongoDB control driver does not support SQL queries');\n }\n\n async close(): Promise<void> {\n await this.#client.close();\n }\n}\n\nconst mongoControlDriverDescriptor: ControlDriverDescriptor<'mongo', 'mongo', MongoControlDriver> =\n {\n kind: 'driver',\n familyId: 'mongo',\n targetId: 'mongo',\n id: 'mongo',\n version: DRIVER_INFO.version,\n capabilities: {},\n async create(url: string): Promise<MongoControlDriver> {\n const client = new MongoClient(url, {\n serverSelectionTimeoutMS: 5000,\n connectTimeoutMS: 5000,\n driverInfo: DRIVER_INFO,\n });\n try {\n await client.connect();\n const db = client.db();\n return new MongoControlDriver(db, client);\n } catch (error) {\n try {\n await client.close();\n } catch {\n // ignore cleanup error\n }\n const message = error instanceof Error ? error.message : String(error);\n const redacted = redactDatabaseUrl(url);\n throw errorRuntime('Database connection failed', {\n why: message,\n fix: 'Verify the MongoDB URL, ensure the database is reachable, and confirm credentials/permissions',\n meta: { ...redacted },\n });\n }\n },\n };\n\nexport default mongoControlDriverDescriptor;\n"],"mappings":";;;;;AASA,IAAa,qBAAb,MAAmF;CACjF,WAAoB;CACpB,WAAoB;CACpB;CACA;CAEA,YAAY,IAAQ,QAAqB;EACvC,KAAK,KAAK;EACV,KAAKA,UAAU;;CAGjB,MAAM,MAAc,SAA8C;EAChE,MAAM,IAAI,MAAM,sDAAsD;;CAGxE,MAAM,QAAuB;EAC3B,MAAM,KAAKA,QAAQ,OAAO;;;AAI9B,MAAM,+BACJ;CACE,MAAM;CACN,UAAU;CACV,UAAU;CACV,IAAI;CACJ,SAAS,YAAY;CACrB,cAAc,EAAE;CAChB,MAAM,OAAO,KAA0C;EACrD,MAAM,SAAS,IAAI,YAAY,KAAK;GAClC,0BAA0B;GAC1B,kBAAkB;GAClB,YAAY;GACb,CAAC;EACF,IAAI;GACF,MAAM,OAAO,SAAS;GAEtB,OAAO,IAAI,mBADA,OAAO,IACc,EAAE,OAAO;WAClC,OAAO;GACd,IAAI;IACF,MAAM,OAAO,OAAO;WACd;GAKR,MAAM,aAAa,8BAA8B;IAC/C,KAHc,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAIpE,KAAK;IACL,MAAM,EAAE,GAJO,kBAAkB,IAId,EAAE;IACtB,CAAC;;;CAGP"}
@@ -1,13 +1,10 @@
1
- //#region package.json
2
- var version = "0.5.0-dev.66";
3
-
4
1
  //#endregion
5
2
  //#region src/core/driver-info.ts
6
3
  const DRIVER_INFO = {
7
4
  name: "Prisma",
8
- version
5
+ version: "0.5.0-dev.68"
9
6
  };
10
-
11
7
  //#endregion
12
8
  export { DRIVER_INFO as t };
13
- //# sourceMappingURL=driver-info-AYW0Ikdm.mjs.map
9
+
10
+ //# sourceMappingURL=driver-info-DM05S1Wg.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver-info-AYW0Ikdm.mjs","names":[],"sources":["../package.json","../src/core/driver-info.ts"],"sourcesContent":["","import { version } from '../../package.json' with { type: 'json' };\n\nexport const DRIVER_INFO = { name: 'Prisma', version } as const;\n"],"mappings":";;;;;ACEA,MAAa,cAAc;CAAE,MAAM;CAAU;CAAS"}
1
+ {"version":3,"file":"driver-info-DM05S1Wg.mjs","names":[],"sources":["../package.json","../src/core/driver-info.ts"],"sourcesContent":["","import { version } from '../../package.json' with { type: 'json' };\n\nexport const DRIVER_INFO = { name: 'Prisma', version } as const;\n"],"mappings":";;ACEA,MAAa,cAAc;CAAE,MAAM;CAAU;CAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/mongo-driver.ts"],"sourcesContent":[],"mappings":";;;;;cAsBa,eAAA,YAA2B;;EAA3B,QAAA,WAAgB,CAAA;EASuC,OAAA,cAAA,CAAA,GAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAR,OAAQ,CAAA,eAAA,CAAA;EAAR,OAAA,MAAA,CAAA,EAAA,EAMxC,EANwC,CAAA,EAMnC,eANmC;EAMxC,OAAA,CAAA,MAIJ,MAJI,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA,WAAA,EAIkC,mBAJlC,CAAA,EAIwD,aAJxD,CAIsE,GAJtE,CAAA;EAAK,KAAA,CAAA,CAAA,EAgCR,OAhCQ,CAAA,IAAA,CAAA;;AAI6B,iBAgHhC,iBAAA,CAhHgC,GAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAgHgB,OAhHhB,CAgHwB,WAhHxB,CAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/mongo-driver.ts"],"mappings":";;;;;cAsBa,eAAA,YAA2B,WAAA;EAAA;UAI/B,WAAA,CAAA;EAAA,OAKM,cAAA,CAAe,GAAA,UAAa,MAAA,WAAiB,OAAA,CAAQ,eAAA;EAAA,OAM3D,MAAA,CAAO,EAAA,EAAI,EAAA,GAAK,eAAA;EAIvB,OAAA,OAAc,MAAA,kBAAA,CAAyB,WAAA,EAAa,mBAAA,GAAsB,aAAA,CAAc,GAAA;EA4BlF,KAAA,CAAA,GAAS,OAAA;AAAA;AAAA,iBAoFK,iBAAA,CAAkB,GAAA,UAAa,MAAA,WAAiB,OAAA,CAAQ,WAAA"}
package/dist/index.mjs CHANGED
@@ -1,6 +1,5 @@
1
- import { t as DRIVER_INFO } from "./driver-info-AYW0Ikdm.mjs";
1
+ import { t as DRIVER_INFO } from "./driver-info-DM05S1Wg.mjs";
2
2
  import { MongoClient } from "mongodb";
3
-
4
3
  //#region src/mongo-driver.ts
5
4
  var MongoDriverImpl = class MongoDriverImpl {
6
5
  #db;
@@ -28,10 +27,8 @@ var MongoDriverImpl = class MongoDriverImpl {
28
27
  case "findOneAndUpdate": return this.#executeFindOneAndUpdateCommand(wireCommand);
29
28
  case "findOneAndDelete": return this.#executeFindOneAndDeleteCommand(wireCommand);
30
29
  case "aggregate": return this.#executeAggregateCommand(wireCommand);
31
- default: {
32
- const _exhaustive = wireCommand;
33
- throw new Error(`Unknown wire command kind: ${_exhaustive.kind}`);
34
- }
30
+ // v8 ignore next 4
31
+ default: throw new Error(`Unknown wire command kind: ${wireCommand.kind}`);
35
32
  }
36
33
  }
37
34
  async close() {
@@ -90,7 +87,7 @@ var MongoDriverImpl = class MongoDriverImpl {
90
87
  async function createMongoDriver(uri, dbName) {
91
88
  return MongoDriverImpl.fromConnection(uri, dbName);
92
89
  }
93
-
94
90
  //#endregion
95
91
  export { MongoDriverImpl, createMongoDriver };
92
+
96
93
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["#db","#client","#executeInsertOneCommand","#executeUpdateOneCommand","#executeInsertManyCommand","#executeUpdateManyCommand","#executeDeleteOneCommand","#executeDeleteManyCommand","#executeFindOneAndUpdateCommand","#executeFindOneAndDeleteCommand","#executeAggregateCommand","_exhaustive: never"],"sources":["../src/mongo-driver.ts"],"sourcesContent":["import type { MongoDriver } from '@prisma-next/mongo-lowering';\nimport type {\n AggregateWireCommand,\n AnyMongoWireCommand,\n DeleteManyResult,\n DeleteManyWireCommand,\n DeleteOneResult,\n DeleteOneWireCommand,\n FindOneAndDeleteWireCommand,\n FindOneAndUpdateWireCommand,\n InsertManyResult,\n InsertManyWireCommand,\n InsertOneResult,\n InsertOneWireCommand,\n UpdateManyResult,\n UpdateManyWireCommand,\n UpdateOneResult,\n UpdateOneWireCommand,\n} from '@prisma-next/mongo-wire';\nimport { type Db, MongoClient } from 'mongodb';\nimport { DRIVER_INFO } from './core/driver-info';\n\nexport class MongoDriverImpl implements MongoDriver {\n readonly #db: Db;\n readonly #client: MongoClient | undefined;\n\n private constructor(db: Db, client: MongoClient | undefined) {\n this.#db = db;\n this.#client = client;\n }\n\n static async fromConnection(uri: string, dbName: string): Promise<MongoDriverImpl> {\n const client = new MongoClient(uri, { driverInfo: DRIVER_INFO });\n await client.connect();\n return new MongoDriverImpl(client.db(dbName), client);\n }\n\n static fromDb(db: Db): MongoDriverImpl {\n return new MongoDriverImpl(db, undefined);\n }\n\n execute<Row = Record<string, unknown>>(wireCommand: AnyMongoWireCommand): AsyncIterable<Row> {\n switch (wireCommand.kind) {\n case 'insertOne':\n return this.#executeInsertOneCommand(wireCommand) as AsyncIterable<Row>;\n case 'updateOne':\n return this.#executeUpdateOneCommand(wireCommand) as AsyncIterable<Row>;\n case 'insertMany':\n return this.#executeInsertManyCommand(wireCommand) as AsyncIterable<Row>;\n case 'updateMany':\n return this.#executeUpdateManyCommand(wireCommand) as AsyncIterable<Row>;\n case 'deleteOne':\n return this.#executeDeleteOneCommand(wireCommand) as AsyncIterable<Row>;\n case 'deleteMany':\n return this.#executeDeleteManyCommand(wireCommand) as AsyncIterable<Row>;\n case 'findOneAndUpdate':\n return this.#executeFindOneAndUpdateCommand(wireCommand) as AsyncIterable<Row>;\n case 'findOneAndDelete':\n return this.#executeFindOneAndDeleteCommand(wireCommand) as AsyncIterable<Row>;\n case 'aggregate':\n return this.#executeAggregateCommand<Row>(wireCommand);\n // v8 ignore next 4\n default: {\n const _exhaustive: never = wireCommand;\n throw new Error(`Unknown wire command kind: ${(_exhaustive as { kind: string }).kind}`);\n }\n }\n }\n\n async close(): Promise<void> {\n await this.#client?.close();\n }\n\n async *#executeInsertOneCommand(cmd: InsertOneWireCommand): AsyncIterable<InsertOneResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.insertOne(cmd.document);\n yield { insertedId: result.insertedId };\n }\n\n async *#executeUpdateOneCommand(cmd: UpdateOneWireCommand): AsyncIterable<UpdateOneResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.updateOne(cmd.filter, cmd.update, { upsert: cmd.upsert });\n yield {\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.upsertedCount,\n upsertedId: result.upsertedId ?? undefined,\n };\n }\n\n async *#executeInsertManyCommand(cmd: InsertManyWireCommand): AsyncIterable<InsertManyResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.insertMany(cmd.documents as Record<string, unknown>[]);\n const insertedIds = Object.values(result.insertedIds);\n yield { insertedIds, insertedCount: result.insertedCount };\n }\n\n async *#executeUpdateManyCommand(cmd: UpdateManyWireCommand): AsyncIterable<UpdateManyResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.updateMany(cmd.filter, cmd.update, { upsert: cmd.upsert });\n yield {\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.upsertedCount,\n upsertedId: result.upsertedId ?? undefined,\n };\n }\n\n async *#executeDeleteOneCommand(cmd: DeleteOneWireCommand): AsyncIterable<DeleteOneResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.deleteOne(cmd.filter);\n yield { deletedCount: result.deletedCount };\n }\n\n async *#executeDeleteManyCommand(cmd: DeleteManyWireCommand): AsyncIterable<DeleteManyResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.deleteMany(cmd.filter);\n yield { deletedCount: result.deletedCount };\n }\n\n async *#executeFindOneAndUpdateCommand(\n cmd: FindOneAndUpdateWireCommand,\n ): AsyncIterable<Record<string, unknown>> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.findOneAndUpdate(cmd.filter, cmd.update, {\n upsert: cmd.upsert,\n ...(cmd.returnDocument != null ? { returnDocument: cmd.returnDocument } : {}),\n ...(cmd.sort != null ? { sort: cmd.sort } : {}),\n });\n if (result) {\n yield result as Record<string, unknown>;\n }\n }\n\n async *#executeFindOneAndDeleteCommand(\n cmd: FindOneAndDeleteWireCommand,\n ): AsyncIterable<Record<string, unknown>> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.findOneAndDelete(cmd.filter, {\n ...(cmd.sort != null ? { sort: cmd.sort } : {}),\n });\n if (result) {\n yield result as Record<string, unknown>;\n }\n }\n\n async *#executeAggregateCommand<Row>(cmd: AggregateWireCommand): AsyncIterable<Row> {\n const collection = this.#db.collection(cmd.collection);\n const cursor = collection.aggregate(cmd.pipeline as Record<string, unknown>[]);\n yield* cursor as AsyncIterable<Row>;\n }\n}\n\nexport async function createMongoDriver(uri: string, dbName: string): Promise<MongoDriver> {\n return MongoDriverImpl.fromConnection(uri, dbName);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["#db","#client","#executeInsertOneCommand","#executeUpdateOneCommand","#executeInsertManyCommand","#executeUpdateManyCommand","#executeDeleteOneCommand","#executeDeleteManyCommand","#executeFindOneAndUpdateCommand","#executeFindOneAndDeleteCommand","#executeAggregateCommand","_exhaustive"],"sources":["../src/mongo-driver.ts"],"sourcesContent":["import type { MongoDriver } from '@prisma-next/mongo-lowering';\nimport type {\n AggregateWireCommand,\n AnyMongoWireCommand,\n DeleteManyResult,\n DeleteManyWireCommand,\n DeleteOneResult,\n DeleteOneWireCommand,\n FindOneAndDeleteWireCommand,\n FindOneAndUpdateWireCommand,\n InsertManyResult,\n InsertManyWireCommand,\n InsertOneResult,\n InsertOneWireCommand,\n UpdateManyResult,\n UpdateManyWireCommand,\n UpdateOneResult,\n UpdateOneWireCommand,\n} from '@prisma-next/mongo-wire';\nimport { type Db, MongoClient } from 'mongodb';\nimport { DRIVER_INFO } from './core/driver-info';\n\nexport class MongoDriverImpl implements MongoDriver {\n readonly #db: Db;\n readonly #client: MongoClient | undefined;\n\n private constructor(db: Db, client: MongoClient | undefined) {\n this.#db = db;\n this.#client = client;\n }\n\n static async fromConnection(uri: string, dbName: string): Promise<MongoDriverImpl> {\n const client = new MongoClient(uri, { driverInfo: DRIVER_INFO });\n await client.connect();\n return new MongoDriverImpl(client.db(dbName), client);\n }\n\n static fromDb(db: Db): MongoDriverImpl {\n return new MongoDriverImpl(db, undefined);\n }\n\n execute<Row = Record<string, unknown>>(wireCommand: AnyMongoWireCommand): AsyncIterable<Row> {\n switch (wireCommand.kind) {\n case 'insertOne':\n return this.#executeInsertOneCommand(wireCommand) as AsyncIterable<Row>;\n case 'updateOne':\n return this.#executeUpdateOneCommand(wireCommand) as AsyncIterable<Row>;\n case 'insertMany':\n return this.#executeInsertManyCommand(wireCommand) as AsyncIterable<Row>;\n case 'updateMany':\n return this.#executeUpdateManyCommand(wireCommand) as AsyncIterable<Row>;\n case 'deleteOne':\n return this.#executeDeleteOneCommand(wireCommand) as AsyncIterable<Row>;\n case 'deleteMany':\n return this.#executeDeleteManyCommand(wireCommand) as AsyncIterable<Row>;\n case 'findOneAndUpdate':\n return this.#executeFindOneAndUpdateCommand(wireCommand) as AsyncIterable<Row>;\n case 'findOneAndDelete':\n return this.#executeFindOneAndDeleteCommand(wireCommand) as AsyncIterable<Row>;\n case 'aggregate':\n return this.#executeAggregateCommand<Row>(wireCommand);\n // v8 ignore next 4\n default: {\n const _exhaustive: never = wireCommand;\n throw new Error(`Unknown wire command kind: ${(_exhaustive as { kind: string }).kind}`);\n }\n }\n }\n\n async close(): Promise<void> {\n await this.#client?.close();\n }\n\n async *#executeInsertOneCommand(cmd: InsertOneWireCommand): AsyncIterable<InsertOneResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.insertOne(cmd.document);\n yield { insertedId: result.insertedId };\n }\n\n async *#executeUpdateOneCommand(cmd: UpdateOneWireCommand): AsyncIterable<UpdateOneResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.updateOne(cmd.filter, cmd.update, { upsert: cmd.upsert });\n yield {\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.upsertedCount,\n upsertedId: result.upsertedId ?? undefined,\n };\n }\n\n async *#executeInsertManyCommand(cmd: InsertManyWireCommand): AsyncIterable<InsertManyResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.insertMany(cmd.documents as Record<string, unknown>[]);\n const insertedIds = Object.values(result.insertedIds);\n yield { insertedIds, insertedCount: result.insertedCount };\n }\n\n async *#executeUpdateManyCommand(cmd: UpdateManyWireCommand): AsyncIterable<UpdateManyResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.updateMany(cmd.filter, cmd.update, { upsert: cmd.upsert });\n yield {\n matchedCount: result.matchedCount,\n modifiedCount: result.modifiedCount,\n upsertedCount: result.upsertedCount,\n upsertedId: result.upsertedId ?? undefined,\n };\n }\n\n async *#executeDeleteOneCommand(cmd: DeleteOneWireCommand): AsyncIterable<DeleteOneResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.deleteOne(cmd.filter);\n yield { deletedCount: result.deletedCount };\n }\n\n async *#executeDeleteManyCommand(cmd: DeleteManyWireCommand): AsyncIterable<DeleteManyResult> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.deleteMany(cmd.filter);\n yield { deletedCount: result.deletedCount };\n }\n\n async *#executeFindOneAndUpdateCommand(\n cmd: FindOneAndUpdateWireCommand,\n ): AsyncIterable<Record<string, unknown>> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.findOneAndUpdate(cmd.filter, cmd.update, {\n upsert: cmd.upsert,\n ...(cmd.returnDocument != null ? { returnDocument: cmd.returnDocument } : {}),\n ...(cmd.sort != null ? { sort: cmd.sort } : {}),\n });\n if (result) {\n yield result as Record<string, unknown>;\n }\n }\n\n async *#executeFindOneAndDeleteCommand(\n cmd: FindOneAndDeleteWireCommand,\n ): AsyncIterable<Record<string, unknown>> {\n const collection = this.#db.collection(cmd.collection);\n const result = await collection.findOneAndDelete(cmd.filter, {\n ...(cmd.sort != null ? { sort: cmd.sort } : {}),\n });\n if (result) {\n yield result as Record<string, unknown>;\n }\n }\n\n async *#executeAggregateCommand<Row>(cmd: AggregateWireCommand): AsyncIterable<Row> {\n const collection = this.#db.collection(cmd.collection);\n const cursor = collection.aggregate(cmd.pipeline as Record<string, unknown>[]);\n yield* cursor as AsyncIterable<Row>;\n }\n}\n\nexport async function createMongoDriver(uri: string, dbName: string): Promise<MongoDriver> {\n return MongoDriverImpl.fromConnection(uri, dbName);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "@prisma-next/driver-mongo",
3
- "version": "0.5.0-dev.66",
3
+ "version": "0.5.0-dev.68",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "description": "MongoDB driver for Prisma Next",
8
8
  "dependencies": {
9
9
  "mongodb": "^6.16.0",
10
- "@prisma-next/errors": "0.5.0-dev.66",
11
- "@prisma-next/framework-components": "0.5.0-dev.66",
12
- "@prisma-next/mongo-lowering": "0.5.0-dev.66",
13
- "@prisma-next/mongo-wire": "0.5.0-dev.66",
14
- "@prisma-next/utils": "0.5.0-dev.66"
10
+ "@prisma-next/framework-components": "0.5.0-dev.68",
11
+ "@prisma-next/mongo-lowering": "0.5.0-dev.68",
12
+ "@prisma-next/mongo-wire": "0.5.0-dev.68",
13
+ "@prisma-next/utils": "0.5.0-dev.68",
14
+ "@prisma-next/errors": "0.5.0-dev.68"
15
15
  },
16
16
  "devDependencies": {
17
17
  "mongodb-memory-server": "10.4.3",
18
- "tsdown": "0.18.4",
18
+ "tsdown": "0.22.0",
19
19
  "typescript": "5.9.3",
20
- "vitest": "4.0.17",
21
- "@prisma-next/tsconfig": "0.0.0",
20
+ "vitest": "4.1.5",
22
21
  "@prisma-next/test-utils": "0.0.1",
22
+ "@prisma-next/tsconfig": "0.0.0",
23
23
  "@prisma-next/tsdown": "0.0.0"
24
24
  },
25
25
  "files": [