@prisma/client-engine-runtime 7.10.0-dev.8 → 7.10.0-integration-prisma7-project-closeout.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/dist/index.d.mts CHANGED
@@ -173,6 +173,21 @@ export declare type Fragment = {
173
173
  groupSeparator: string;
174
174
  };
175
175
 
176
+ /**
177
+ * Query plan nodes that perform database I/O: individual queries and statements,
178
+ * and subtrees executed within a transaction.
179
+ */
180
+ export declare type ImpureQueryPlanNode = {
181
+ type: 'query';
182
+ args: QueryPlanDbQuery;
183
+ } | {
184
+ type: 'execute';
185
+ args: QueryPlanDbQuery;
186
+ } | {
187
+ type: 'transaction';
188
+ args: QueryPlanNode;
189
+ };
190
+
176
191
  export declare type InMemoryOps = {
177
192
  pagination: Pagination | null;
178
193
  distinct: string[] | null;
@@ -288,72 +303,24 @@ export declare type PrismaValuePlaceholder = {
288
303
  };
289
304
  };
290
305
 
291
- export declare type QueryEvent = {
292
- timestamp: Date;
293
- query: string;
294
- params: readonly unknown[];
295
- duration: number;
296
- };
297
-
298
- export declare class QueryInterpreter {
299
- #private;
300
- constructor({ onQuery, tracingHelper, serializer, rawSerializer, provider, connectionInfo, }: QueryInterpreterOptions);
301
- static forSql(options: {
302
- onQuery?: (event: QueryEvent) => void;
303
- tracingHelper: TracingHelper;
304
- provider?: SchemaProvider;
305
- connectionInfo?: ConnectionInfo;
306
- }): QueryInterpreter;
307
- run(queryPlan: DeepReadonly<QueryPlanNode>, options: QueryRuntimeOptions): Promise<unknown>;
308
- private interpretNode;
309
- }
310
-
311
- export declare type QueryInterpreterOptions = {
312
- onQuery?: (event: QueryEvent) => void;
313
- tracingHelper: TracingHelper;
314
- serializer: (results: SqlResultSet) => Value;
315
- rawSerializer?: (results: SqlResultSet) => Value;
316
- provider?: SchemaProvider;
317
- connectionInfo?: ConnectionInfo;
318
- };
319
-
320
- export declare type QueryInterpreterSqlCommenter = {
321
- plugins: SqlCommenterPlugin[];
322
- queryInfo: SqlCommenterQueryInfo;
323
- };
324
-
325
- export declare type QueryInterpreterTransactionManager = {
326
- enabled: true;
327
- manager: TransactionManager;
328
- } | {
329
- enabled: false;
330
- };
331
-
332
- export declare type QueryPlanBinding = {
333
- name: string;
334
- expr: QueryPlanNode;
335
- };
336
-
337
- export declare type QueryPlanDbQuery = {
338
- type: 'rawSql';
339
- sql: string;
340
- args: PrismaValue[];
341
- argTypes: ArgType[];
342
- } | {
343
- type: 'templateSql';
344
- fragments: Fragment[];
345
- placeholderFormat: PlaceholderFormat;
346
- args: PrismaValue[];
347
- argTypes: DynamicArgType[];
348
- chunkable: boolean;
349
- };
350
-
351
- export declare type QueryPlanNode = {
306
+ /**
307
+ * Query plan nodes that are free of side effects and can be interpreted synchronously
308
+ * without touching the database. The `Rest` parameter controls what other nodes may
309
+ * appear in child positions: with the default `never` the tree is fully pure, while
310
+ * `PureQueryPlanNode<ImpureQueryPlanNode>` describes a tree of pure nodes that may
311
+ * contain impure nodes anywhere inside.
312
+ */
313
+ export declare type PureQueryPlanNode<Rest = never> = {
352
314
  type: 'value';
353
315
  args: PrismaValue;
316
+ /**
317
+ * Present when this node is the result of evaluating an impure node during
318
+ * query plan purification. Never produced by the query compiler.
319
+ */
320
+ lastInsertId?: string;
354
321
  } | {
355
322
  type: 'seq';
356
- args: QueryPlanNode[];
323
+ args: (PureQueryPlanNode<Rest> | Rest)[];
357
324
  } | {
358
325
  type: 'get';
359
326
  args: {
@@ -362,101 +329,166 @@ export declare type QueryPlanNode = {
362
329
  } | {
363
330
  type: 'let';
364
331
  args: {
365
- bindings: QueryPlanBinding[];
366
- expr: QueryPlanNode;
332
+ bindings: {
333
+ name: string;
334
+ expr: PureQueryPlanNode<Rest> | Rest;
335
+ }[];
336
+ expr: PureQueryPlanNode<Rest> | Rest;
367
337
  };
368
338
  } | {
369
339
  type: 'getFirstNonEmpty';
370
340
  args: {
371
341
  names: string[];
372
342
  };
373
- } | {
374
- type: 'query';
375
- args: QueryPlanDbQuery;
376
- } | {
377
- type: 'execute';
378
- args: QueryPlanDbQuery;
379
343
  } | {
380
344
  type: 'reverse';
381
- args: QueryPlanNode;
345
+ args: PureQueryPlanNode<Rest> | Rest;
382
346
  } | {
383
347
  type: 'sum';
384
- args: QueryPlanNode[];
348
+ args: (PureQueryPlanNode<Rest> | Rest)[];
385
349
  } | {
386
350
  type: 'concat';
387
- args: QueryPlanNode[];
351
+ args: (PureQueryPlanNode<Rest> | Rest)[];
388
352
  } | {
389
353
  type: 'unique';
390
- args: QueryPlanNode;
354
+ args: PureQueryPlanNode<Rest> | Rest;
391
355
  } | {
392
356
  type: 'required';
393
- args: QueryPlanNode;
357
+ args: PureQueryPlanNode<Rest> | Rest;
394
358
  } | {
395
359
  type: 'join';
396
360
  args: {
397
- parent: QueryPlanNode;
398
- children: JoinExpression[];
361
+ parent: PureQueryPlanNode<Rest> | Rest;
362
+ children: {
363
+ child: PureQueryPlanNode<Rest> | Rest;
364
+ on: [left: string, right: string][];
365
+ parentField: string;
366
+ isRelationUnique: boolean;
367
+ }[];
399
368
  canAssumeStrictEquality: boolean;
400
369
  };
401
370
  } | {
402
371
  type: 'mapField';
403
372
  args: {
404
373
  field: string;
405
- records: QueryPlanNode;
374
+ records: PureQueryPlanNode<Rest> | Rest;
406
375
  };
407
- } | {
408
- type: 'transaction';
409
- args: QueryPlanNode;
410
376
  } | {
411
377
  type: 'dataMap';
412
378
  args: {
413
- expr: QueryPlanNode;
379
+ expr: PureQueryPlanNode<Rest> | Rest;
414
380
  structure: ResultNode;
415
381
  enums: Record<string, Record<string, string>>;
416
382
  };
417
383
  } | {
418
384
  type: 'validate';
419
385
  args: {
420
- expr: QueryPlanNode;
386
+ expr: PureQueryPlanNode<Rest> | Rest;
421
387
  rules: DataRule[];
422
388
  } & ValidationError;
423
389
  } | {
424
390
  type: 'if';
425
391
  args: {
426
- value: QueryPlanNode;
392
+ value: PureQueryPlanNode<Rest> | Rest;
427
393
  rule: DataRule;
428
- then: QueryPlanNode;
429
- else: QueryPlanNode;
394
+ then: PureQueryPlanNode<Rest> | Rest;
395
+ else: PureQueryPlanNode<Rest> | Rest;
430
396
  };
431
397
  } | {
432
398
  type: 'unit';
433
399
  } | {
434
400
  type: 'diff';
435
401
  args: {
436
- from: QueryPlanNode;
437
- to: QueryPlanNode;
402
+ from: PureQueryPlanNode<Rest> | Rest;
403
+ to: PureQueryPlanNode<Rest> | Rest;
438
404
  fields: string[];
439
405
  };
440
406
  } | {
441
407
  type: 'initializeRecord';
442
408
  args: {
443
- expr: QueryPlanNode;
409
+ expr: PureQueryPlanNode<Rest> | Rest;
444
410
  fields: Record<string, FieldInitializer>;
445
411
  };
446
412
  } | {
447
413
  type: 'mapRecord';
448
414
  args: {
449
- expr: QueryPlanNode;
415
+ expr: PureQueryPlanNode<Rest> | Rest;
450
416
  fields: Record<string, FieldOperation>;
451
417
  };
452
418
  } | {
453
419
  type: 'process';
454
420
  args: {
455
- expr: QueryPlanNode;
421
+ expr: PureQueryPlanNode<Rest> | Rest;
456
422
  operations: InMemoryOps;
457
423
  };
458
424
  };
459
425
 
426
+ export declare type QueryEvent = {
427
+ timestamp: Date;
428
+ query: string;
429
+ params: readonly unknown[];
430
+ duration: number;
431
+ };
432
+
433
+ export declare class QueryInterpreter {
434
+ #private;
435
+ constructor({ onQuery, tracingHelper, serializer, rawSerializer, provider, connectionInfo, }: QueryInterpreterOptions);
436
+ static forSql(options: {
437
+ onQuery?: (event: QueryEvent) => void;
438
+ tracingHelper: TracingHelper;
439
+ provider?: SchemaProvider;
440
+ connectionInfo?: ConnectionInfo;
441
+ }): QueryInterpreter;
442
+ run(queryPlan: DeepReadonly<QueryPlanNode>, options: QueryRuntimeOptions): Promise<unknown>;
443
+ private interpretNode;
444
+ }
445
+
446
+ export declare type QueryInterpreterOptions = {
447
+ onQuery?: (event: QueryEvent) => void;
448
+ tracingHelper: TracingHelper;
449
+ serializer: (results: SqlResultSet) => Value;
450
+ rawSerializer?: (results: SqlResultSet) => Value;
451
+ provider?: SchemaProvider;
452
+ connectionInfo?: ConnectionInfo;
453
+ };
454
+
455
+ export declare type QueryInterpreterSqlCommenter = {
456
+ plugins: SqlCommenterPlugin[];
457
+ queryInfo: SqlCommenterQueryInfo;
458
+ };
459
+
460
+ export declare type QueryInterpreterTransactionManager = {
461
+ enabled: true;
462
+ manager: TransactionManager;
463
+ } | {
464
+ enabled: false;
465
+ };
466
+
467
+ export declare type QueryPlanBinding = {
468
+ name: string;
469
+ expr: QueryPlanNode;
470
+ };
471
+
472
+ export declare type QueryPlanDbQuery = {
473
+ type: 'rawSql';
474
+ sql: string;
475
+ args: PrismaValue[];
476
+ argTypes: ArgType[];
477
+ } | {
478
+ type: 'templateSql';
479
+ fragments: Fragment[];
480
+ placeholderFormat: PlaceholderFormat;
481
+ args: PrismaValue[];
482
+ argTypes: DynamicArgType[];
483
+ chunkable: boolean;
484
+ };
485
+
486
+ /**
487
+ * A query plan as emitted by the query compiler: a tree of pure nodes that may
488
+ * contain impure nodes anywhere inside.
489
+ */
490
+ export declare type QueryPlanNode = ImpureQueryPlanNode | PureQueryPlanNode<ImpureQueryPlanNode>;
491
+
460
492
  declare type QueryRuntimeOptions = {
461
493
  queryable: SqlQueryable;
462
494
  transactionManager: QueryInterpreterTransactionManager;
package/dist/index.d.ts CHANGED
@@ -173,6 +173,21 @@ export declare type Fragment = {
173
173
  groupSeparator: string;
174
174
  };
175
175
 
176
+ /**
177
+ * Query plan nodes that perform database I/O: individual queries and statements,
178
+ * and subtrees executed within a transaction.
179
+ */
180
+ export declare type ImpureQueryPlanNode = {
181
+ type: 'query';
182
+ args: QueryPlanDbQuery;
183
+ } | {
184
+ type: 'execute';
185
+ args: QueryPlanDbQuery;
186
+ } | {
187
+ type: 'transaction';
188
+ args: QueryPlanNode;
189
+ };
190
+
176
191
  export declare type InMemoryOps = {
177
192
  pagination: Pagination | null;
178
193
  distinct: string[] | null;
@@ -288,72 +303,24 @@ export declare type PrismaValuePlaceholder = {
288
303
  };
289
304
  };
290
305
 
291
- export declare type QueryEvent = {
292
- timestamp: Date;
293
- query: string;
294
- params: readonly unknown[];
295
- duration: number;
296
- };
297
-
298
- export declare class QueryInterpreter {
299
- #private;
300
- constructor({ onQuery, tracingHelper, serializer, rawSerializer, provider, connectionInfo, }: QueryInterpreterOptions);
301
- static forSql(options: {
302
- onQuery?: (event: QueryEvent) => void;
303
- tracingHelper: TracingHelper;
304
- provider?: SchemaProvider;
305
- connectionInfo?: ConnectionInfo;
306
- }): QueryInterpreter;
307
- run(queryPlan: DeepReadonly<QueryPlanNode>, options: QueryRuntimeOptions): Promise<unknown>;
308
- private interpretNode;
309
- }
310
-
311
- export declare type QueryInterpreterOptions = {
312
- onQuery?: (event: QueryEvent) => void;
313
- tracingHelper: TracingHelper;
314
- serializer: (results: SqlResultSet) => Value;
315
- rawSerializer?: (results: SqlResultSet) => Value;
316
- provider?: SchemaProvider;
317
- connectionInfo?: ConnectionInfo;
318
- };
319
-
320
- export declare type QueryInterpreterSqlCommenter = {
321
- plugins: SqlCommenterPlugin[];
322
- queryInfo: SqlCommenterQueryInfo;
323
- };
324
-
325
- export declare type QueryInterpreterTransactionManager = {
326
- enabled: true;
327
- manager: TransactionManager;
328
- } | {
329
- enabled: false;
330
- };
331
-
332
- export declare type QueryPlanBinding = {
333
- name: string;
334
- expr: QueryPlanNode;
335
- };
336
-
337
- export declare type QueryPlanDbQuery = {
338
- type: 'rawSql';
339
- sql: string;
340
- args: PrismaValue[];
341
- argTypes: ArgType[];
342
- } | {
343
- type: 'templateSql';
344
- fragments: Fragment[];
345
- placeholderFormat: PlaceholderFormat;
346
- args: PrismaValue[];
347
- argTypes: DynamicArgType[];
348
- chunkable: boolean;
349
- };
350
-
351
- export declare type QueryPlanNode = {
306
+ /**
307
+ * Query plan nodes that are free of side effects and can be interpreted synchronously
308
+ * without touching the database. The `Rest` parameter controls what other nodes may
309
+ * appear in child positions: with the default `never` the tree is fully pure, while
310
+ * `PureQueryPlanNode<ImpureQueryPlanNode>` describes a tree of pure nodes that may
311
+ * contain impure nodes anywhere inside.
312
+ */
313
+ export declare type PureQueryPlanNode<Rest = never> = {
352
314
  type: 'value';
353
315
  args: PrismaValue;
316
+ /**
317
+ * Present when this node is the result of evaluating an impure node during
318
+ * query plan purification. Never produced by the query compiler.
319
+ */
320
+ lastInsertId?: string;
354
321
  } | {
355
322
  type: 'seq';
356
- args: QueryPlanNode[];
323
+ args: (PureQueryPlanNode<Rest> | Rest)[];
357
324
  } | {
358
325
  type: 'get';
359
326
  args: {
@@ -362,101 +329,166 @@ export declare type QueryPlanNode = {
362
329
  } | {
363
330
  type: 'let';
364
331
  args: {
365
- bindings: QueryPlanBinding[];
366
- expr: QueryPlanNode;
332
+ bindings: {
333
+ name: string;
334
+ expr: PureQueryPlanNode<Rest> | Rest;
335
+ }[];
336
+ expr: PureQueryPlanNode<Rest> | Rest;
367
337
  };
368
338
  } | {
369
339
  type: 'getFirstNonEmpty';
370
340
  args: {
371
341
  names: string[];
372
342
  };
373
- } | {
374
- type: 'query';
375
- args: QueryPlanDbQuery;
376
- } | {
377
- type: 'execute';
378
- args: QueryPlanDbQuery;
379
343
  } | {
380
344
  type: 'reverse';
381
- args: QueryPlanNode;
345
+ args: PureQueryPlanNode<Rest> | Rest;
382
346
  } | {
383
347
  type: 'sum';
384
- args: QueryPlanNode[];
348
+ args: (PureQueryPlanNode<Rest> | Rest)[];
385
349
  } | {
386
350
  type: 'concat';
387
- args: QueryPlanNode[];
351
+ args: (PureQueryPlanNode<Rest> | Rest)[];
388
352
  } | {
389
353
  type: 'unique';
390
- args: QueryPlanNode;
354
+ args: PureQueryPlanNode<Rest> | Rest;
391
355
  } | {
392
356
  type: 'required';
393
- args: QueryPlanNode;
357
+ args: PureQueryPlanNode<Rest> | Rest;
394
358
  } | {
395
359
  type: 'join';
396
360
  args: {
397
- parent: QueryPlanNode;
398
- children: JoinExpression[];
361
+ parent: PureQueryPlanNode<Rest> | Rest;
362
+ children: {
363
+ child: PureQueryPlanNode<Rest> | Rest;
364
+ on: [left: string, right: string][];
365
+ parentField: string;
366
+ isRelationUnique: boolean;
367
+ }[];
399
368
  canAssumeStrictEquality: boolean;
400
369
  };
401
370
  } | {
402
371
  type: 'mapField';
403
372
  args: {
404
373
  field: string;
405
- records: QueryPlanNode;
374
+ records: PureQueryPlanNode<Rest> | Rest;
406
375
  };
407
- } | {
408
- type: 'transaction';
409
- args: QueryPlanNode;
410
376
  } | {
411
377
  type: 'dataMap';
412
378
  args: {
413
- expr: QueryPlanNode;
379
+ expr: PureQueryPlanNode<Rest> | Rest;
414
380
  structure: ResultNode;
415
381
  enums: Record<string, Record<string, string>>;
416
382
  };
417
383
  } | {
418
384
  type: 'validate';
419
385
  args: {
420
- expr: QueryPlanNode;
386
+ expr: PureQueryPlanNode<Rest> | Rest;
421
387
  rules: DataRule[];
422
388
  } & ValidationError;
423
389
  } | {
424
390
  type: 'if';
425
391
  args: {
426
- value: QueryPlanNode;
392
+ value: PureQueryPlanNode<Rest> | Rest;
427
393
  rule: DataRule;
428
- then: QueryPlanNode;
429
- else: QueryPlanNode;
394
+ then: PureQueryPlanNode<Rest> | Rest;
395
+ else: PureQueryPlanNode<Rest> | Rest;
430
396
  };
431
397
  } | {
432
398
  type: 'unit';
433
399
  } | {
434
400
  type: 'diff';
435
401
  args: {
436
- from: QueryPlanNode;
437
- to: QueryPlanNode;
402
+ from: PureQueryPlanNode<Rest> | Rest;
403
+ to: PureQueryPlanNode<Rest> | Rest;
438
404
  fields: string[];
439
405
  };
440
406
  } | {
441
407
  type: 'initializeRecord';
442
408
  args: {
443
- expr: QueryPlanNode;
409
+ expr: PureQueryPlanNode<Rest> | Rest;
444
410
  fields: Record<string, FieldInitializer>;
445
411
  };
446
412
  } | {
447
413
  type: 'mapRecord';
448
414
  args: {
449
- expr: QueryPlanNode;
415
+ expr: PureQueryPlanNode<Rest> | Rest;
450
416
  fields: Record<string, FieldOperation>;
451
417
  };
452
418
  } | {
453
419
  type: 'process';
454
420
  args: {
455
- expr: QueryPlanNode;
421
+ expr: PureQueryPlanNode<Rest> | Rest;
456
422
  operations: InMemoryOps;
457
423
  };
458
424
  };
459
425
 
426
+ export declare type QueryEvent = {
427
+ timestamp: Date;
428
+ query: string;
429
+ params: readonly unknown[];
430
+ duration: number;
431
+ };
432
+
433
+ export declare class QueryInterpreter {
434
+ #private;
435
+ constructor({ onQuery, tracingHelper, serializer, rawSerializer, provider, connectionInfo, }: QueryInterpreterOptions);
436
+ static forSql(options: {
437
+ onQuery?: (event: QueryEvent) => void;
438
+ tracingHelper: TracingHelper;
439
+ provider?: SchemaProvider;
440
+ connectionInfo?: ConnectionInfo;
441
+ }): QueryInterpreter;
442
+ run(queryPlan: DeepReadonly<QueryPlanNode>, options: QueryRuntimeOptions): Promise<unknown>;
443
+ private interpretNode;
444
+ }
445
+
446
+ export declare type QueryInterpreterOptions = {
447
+ onQuery?: (event: QueryEvent) => void;
448
+ tracingHelper: TracingHelper;
449
+ serializer: (results: SqlResultSet) => Value;
450
+ rawSerializer?: (results: SqlResultSet) => Value;
451
+ provider?: SchemaProvider;
452
+ connectionInfo?: ConnectionInfo;
453
+ };
454
+
455
+ export declare type QueryInterpreterSqlCommenter = {
456
+ plugins: SqlCommenterPlugin[];
457
+ queryInfo: SqlCommenterQueryInfo;
458
+ };
459
+
460
+ export declare type QueryInterpreterTransactionManager = {
461
+ enabled: true;
462
+ manager: TransactionManager;
463
+ } | {
464
+ enabled: false;
465
+ };
466
+
467
+ export declare type QueryPlanBinding = {
468
+ name: string;
469
+ expr: QueryPlanNode;
470
+ };
471
+
472
+ export declare type QueryPlanDbQuery = {
473
+ type: 'rawSql';
474
+ sql: string;
475
+ args: PrismaValue[];
476
+ argTypes: ArgType[];
477
+ } | {
478
+ type: 'templateSql';
479
+ fragments: Fragment[];
480
+ placeholderFormat: PlaceholderFormat;
481
+ args: PrismaValue[];
482
+ argTypes: DynamicArgType[];
483
+ chunkable: boolean;
484
+ };
485
+
486
+ /**
487
+ * A query plan as emitted by the query compiler: a tree of pure nodes that may
488
+ * contain impure nodes anywhere inside.
489
+ */
490
+ export declare type QueryPlanNode = ImpureQueryPlanNode | PureQueryPlanNode<ImpureQueryPlanNode>;
491
+
460
492
  declare type QueryRuntimeOptions = {
461
493
  queryable: SqlQueryable;
462
494
  transactionManager: QueryInterpreterTransactionManager;