@prisma-next/mongo-lowering 0.13.0 → 0.14.0-dev.2

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/dist/index.d.mts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { CodecCallContext } from "@prisma-next/framework-components/codec";
2
+ import { AnyMongoDdlCommand } from "@prisma-next/mongo-query-ast/control";
2
3
  import { MongoQueryPlan } from "@prisma-next/mongo-query-ast/execution";
3
- import { AnyMongoWireCommand } from "@prisma-next/mongo-wire";
4
+ import { AnyMongoDdlWireCommand, AnyMongoDmlWireCommand, AnyMongoWireCommand } from "@prisma-next/mongo-wire";
4
5
  import { ControlDriverInstance } from "@prisma-next/framework-components/control";
5
6
  import { Db } from "mongodb";
6
7
 
@@ -105,16 +106,16 @@ type MongoLoweredDraft = {
105
106
  readonly collection: string;
106
107
  readonly pipeline: ReadonlyArray<Record<string, unknown>>;
107
108
  };
109
+ /** Wraps a DDL command for passage to `MongoAdapter.lower`. */
110
+ interface MongoDdlPlan {
111
+ readonly command: AnyMongoDdlCommand;
112
+ }
108
113
  interface MongoAdapter {
114
+ lower(plan: MongoDdlPlan, ctx: CodecCallContext): Promise<AnyMongoDdlWireCommand>;
115
+ lower(plan: MongoQueryPlan, ctx: CodecCallContext): Promise<AnyMongoDmlWireCommand>;
116
+ lower(plan: MongoQueryPlan | MongoDdlPlan, ctx: CodecCallContext): Promise<AnyMongoWireCommand>;
109
117
  /**
110
- * Lower a `MongoQueryPlan` to a driver-ready wire command.
111
- *
112
- * Equivalent to `resolveParams(structuralLower(plan), ctx)`. Preserved for
113
- * callers that do not need the two-phase split.
114
- */
115
- lower(plan: MongoQueryPlan, ctx: CodecCallContext): Promise<AnyMongoWireCommand>;
116
- /**
117
- * Phase 1 of the two-phase lowering pipeline.
118
+ * Phase 1 of the two-phase lowering pipeline (DML only).
118
119
  *
119
120
  * Transforms the plan's command AST into the lowered wire shape **without**
120
121
  * calling `resolveValue` on any `MongoParamRef` leaf. All filter predicates,
@@ -132,17 +133,18 @@ interface MongoAdapter {
132
133
  * frozen `AnyMongoWireCommand` ready for the driver. The same abort-signal
133
134
  * forwarding and `RUNTIME.ABORTED` surface contract as `lower` applies.
134
135
  */
135
- resolveParams(draft: MongoLoweredDraft, ctx: CodecCallContext): Promise<AnyMongoWireCommand>;
136
+ resolveParams(draft: MongoLoweredDraft, ctx: CodecCallContext): Promise<AnyMongoDmlWireCommand>;
136
137
  }
137
138
  //#endregion
138
139
  //#region src/driver-types.d.ts
139
140
  interface MongoDriver {
140
- execute<Row>(wireCommand: AnyMongoWireCommand): AsyncIterable<Row>;
141
+ execute<Row>(wireCommand: AnyMongoDmlWireCommand): AsyncIterable<Row>;
142
+ run(wireCommand: AnyMongoDdlWireCommand): Promise<void>;
141
143
  close(): Promise<void>;
142
144
  }
143
145
  interface MongoControlDriverInstance extends ControlDriverInstance<'mongo', 'mongo'>, MongoDriver {
144
146
  readonly db: Db;
145
147
  }
146
148
  //#endregion
147
- export type { MongoAdapter, MongoControlDriverInstance, MongoDriver, MongoLoweredDraft };
149
+ export type { MongoAdapter, MongoControlDriverInstance, MongoDdlPlan, MongoDriver, MongoLoweredDraft };
148
150
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/adapter-types.ts","../src/driver-types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/adapter-types.ts","../src/driver-types.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@prisma-next/mongo-lowering",
3
- "version": "0.13.0",
3
+ "version": "0.14.0-dev.2",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "description": "Adapter and driver interfaces for Prisma Next MongoDB lowering",
8
8
  "dependencies": {
9
- "@prisma-next/framework-components": "0.13.0",
10
- "@prisma-next/mongo-query-ast": "0.13.0",
11
- "@prisma-next/mongo-wire": "0.13.0"
9
+ "@prisma-next/framework-components": "0.14.0-dev.2",
10
+ "@prisma-next/mongo-query-ast": "0.14.0-dev.2",
11
+ "@prisma-next/mongo-wire": "0.14.0-dev.2"
12
12
  },
13
13
  "devDependencies": {
14
14
  "mongodb": "^7.2.0",
15
- "@prisma-next/tsconfig": "0.13.0",
16
- "@prisma-next/tsdown": "0.13.0",
15
+ "@prisma-next/tsconfig": "0.14.0-dev.2",
16
+ "@prisma-next/tsdown": "0.14.0-dev.2",
17
17
  "tsdown": "0.22.1",
18
18
  "typescript": "5.9.3",
19
19
  "vitest": "4.1.8"
@@ -1,6 +1,11 @@
1
1
  import type { CodecCallContext } from '@prisma-next/framework-components/codec';
2
+ import type { AnyMongoDdlCommand } from '@prisma-next/mongo-query-ast/control';
2
3
  import type { MongoQueryPlan } from '@prisma-next/mongo-query-ast/execution';
3
- import type { AnyMongoWireCommand } from '@prisma-next/mongo-wire';
4
+ import type {
5
+ AnyMongoDdlWireCommand,
6
+ AnyMongoDmlWireCommand,
7
+ AnyMongoWireCommand,
8
+ } from '@prisma-next/mongo-wire';
4
9
 
5
10
  /**
6
11
  * Intermediate state produced by structural lowering. `MongoParamRef` leaves
@@ -121,17 +126,18 @@ export type MongoLoweredDraft =
121
126
  readonly pipeline: ReadonlyArray<Record<string, unknown>>;
122
127
  };
123
128
 
129
+ /** Wraps a DDL command for passage to `MongoAdapter.lower`. */
130
+ export interface MongoDdlPlan {
131
+ readonly command: AnyMongoDdlCommand;
132
+ }
133
+
124
134
  export interface MongoAdapter {
125
- /**
126
- * Lower a `MongoQueryPlan` to a driver-ready wire command.
127
- *
128
- * Equivalent to `resolveParams(structuralLower(plan), ctx)`. Preserved for
129
- * callers that do not need the two-phase split.
130
- */
131
- lower(plan: MongoQueryPlan, ctx: CodecCallContext): Promise<AnyMongoWireCommand>;
135
+ lower(plan: MongoDdlPlan, ctx: CodecCallContext): Promise<AnyMongoDdlWireCommand>;
136
+ lower(plan: MongoQueryPlan, ctx: CodecCallContext): Promise<AnyMongoDmlWireCommand>;
137
+ lower(plan: MongoQueryPlan | MongoDdlPlan, ctx: CodecCallContext): Promise<AnyMongoWireCommand>;
132
138
 
133
139
  /**
134
- * Phase 1 of the two-phase lowering pipeline.
140
+ * Phase 1 of the two-phase lowering pipeline (DML only).
135
141
  *
136
142
  * Transforms the plan's command AST into the lowered wire shape **without**
137
143
  * calling `resolveValue` on any `MongoParamRef` leaf. All filter predicates,
@@ -150,5 +156,5 @@ export interface MongoAdapter {
150
156
  * frozen `AnyMongoWireCommand` ready for the driver. The same abort-signal
151
157
  * forwarding and `RUNTIME.ABORTED` surface contract as `lower` applies.
152
158
  */
153
- resolveParams(draft: MongoLoweredDraft, ctx: CodecCallContext): Promise<AnyMongoWireCommand>;
159
+ resolveParams(draft: MongoLoweredDraft, ctx: CodecCallContext): Promise<AnyMongoDmlWireCommand>;
154
160
  }
@@ -1,9 +1,10 @@
1
1
  import type { ControlDriverInstance } from '@prisma-next/framework-components/control';
2
- import type { AnyMongoWireCommand } from '@prisma-next/mongo-wire';
2
+ import type { AnyMongoDdlWireCommand, AnyMongoDmlWireCommand } from '@prisma-next/mongo-wire';
3
3
  import type { Db } from 'mongodb';
4
4
 
5
5
  export interface MongoDriver {
6
- execute<Row>(wireCommand: AnyMongoWireCommand): AsyncIterable<Row>;
6
+ execute<Row>(wireCommand: AnyMongoDmlWireCommand): AsyncIterable<Row>;
7
+ run(wireCommand: AnyMongoDdlWireCommand): Promise<void>;
7
8
  close(): Promise<void>;
8
9
  }
9
10
 
@@ -1,2 +1,2 @@
1
- export type { MongoAdapter, MongoLoweredDraft } from '../adapter-types';
1
+ export type { MongoAdapter, MongoDdlPlan, MongoLoweredDraft } from '../adapter-types';
2
2
  export type { MongoControlDriverInstance, MongoDriver } from '../driver-types';