@prisma/client-engine-runtime 6.9.0-dev.20 → 6.9.0-dev.21

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
@@ -142,7 +142,7 @@ export declare type QueryEvent = {
142
142
 
143
143
  export declare class QueryInterpreter {
144
144
  #private;
145
- constructor({ transactionManager, placeholderValues, onQuery, tracingHelper, serializer }: QueryInterpreterOptions);
145
+ constructor({ transactionManager, placeholderValues, onQuery, tracingHelper, serializer, rawSerializer, }: QueryInterpreterOptions);
146
146
  static forSql(options: {
147
147
  transactionManager: QueryInterpreterTransactionManager;
148
148
  placeholderValues: Record<string, unknown>;
@@ -159,6 +159,7 @@ export declare type QueryInterpreterOptions = {
159
159
  onQuery?: (event: QueryEvent) => void;
160
160
  tracingHelper: TracingHelper;
161
161
  serializer: (results: SqlResultSet) => Value;
162
+ rawSerializer?: (results: SqlResultSet) => Value;
162
163
  };
163
164
 
164
165
  export declare type QueryInterpreterTransactionManager = {
package/dist/index.d.ts CHANGED
@@ -142,7 +142,7 @@ export declare type QueryEvent = {
142
142
 
143
143
  export declare class QueryInterpreter {
144
144
  #private;
145
- constructor({ transactionManager, placeholderValues, onQuery, tracingHelper, serializer }: QueryInterpreterOptions);
145
+ constructor({ transactionManager, placeholderValues, onQuery, tracingHelper, serializer, rawSerializer, }: QueryInterpreterOptions);
146
146
  static forSql(options: {
147
147
  transactionManager: QueryInterpreterTransactionManager;
148
148
  placeholderValues: Record<string, unknown>;
@@ -159,6 +159,7 @@ export declare type QueryInterpreterOptions = {
159
159
  onQuery?: (event: QueryEvent) => void;
160
160
  tracingHelper: TracingHelper;
161
161
  serializer: (results: SqlResultSet) => Value;
162
+ rawSerializer?: (results: SqlResultSet) => Value;
162
163
  };
163
164
 
164
165
  export declare type QueryInterpreterTransactionManager = {
package/dist/index.js CHANGED
@@ -595,6 +595,7 @@ function doesRequireEvaluation(param) {
595
595
  }
596
596
 
597
597
  // src/interpreter/serializeSql.ts
598
+ var import_driver_adapter_utils2 = require("@prisma/driver-adapter-utils");
598
599
  function serializeSql(resultSet) {
599
600
  return resultSet.rows.map(
600
601
  (row) => row.reduce((acc, value, index) => {
@@ -615,6 +616,85 @@ function serializeSql(resultSet) {
615
616
  }, {})
616
617
  );
617
618
  }
619
+ function serializeRawSql(resultSet) {
620
+ return {
621
+ columns: resultSet.columnNames,
622
+ types: resultSet.columnTypes.map((type) => serializeColumnType(type)),
623
+ rows: resultSet.rows
624
+ };
625
+ }
626
+ function serializeColumnType(columnType) {
627
+ switch (columnType) {
628
+ case import_driver_adapter_utils2.ColumnTypeEnum.Int32:
629
+ return "int";
630
+ case import_driver_adapter_utils2.ColumnTypeEnum.Int64:
631
+ return "bigint";
632
+ case import_driver_adapter_utils2.ColumnTypeEnum.Float:
633
+ return "float";
634
+ case import_driver_adapter_utils2.ColumnTypeEnum.Double:
635
+ return "double";
636
+ case import_driver_adapter_utils2.ColumnTypeEnum.Text:
637
+ return "string";
638
+ case import_driver_adapter_utils2.ColumnTypeEnum.Enum:
639
+ return "enum";
640
+ case import_driver_adapter_utils2.ColumnTypeEnum.Bytes:
641
+ return "bytes";
642
+ case import_driver_adapter_utils2.ColumnTypeEnum.Boolean:
643
+ return "bool";
644
+ case import_driver_adapter_utils2.ColumnTypeEnum.Character:
645
+ return "char";
646
+ case import_driver_adapter_utils2.ColumnTypeEnum.Numeric:
647
+ return "decimal";
648
+ case import_driver_adapter_utils2.ColumnTypeEnum.Json:
649
+ return "json";
650
+ case import_driver_adapter_utils2.ColumnTypeEnum.Uuid:
651
+ return "uuid";
652
+ case import_driver_adapter_utils2.ColumnTypeEnum.DateTime:
653
+ return "datetime";
654
+ case import_driver_adapter_utils2.ColumnTypeEnum.Date:
655
+ return "date";
656
+ case import_driver_adapter_utils2.ColumnTypeEnum.Time:
657
+ return "time";
658
+ case import_driver_adapter_utils2.ColumnTypeEnum.Int32Array:
659
+ return "int-array";
660
+ case import_driver_adapter_utils2.ColumnTypeEnum.Int64Array:
661
+ return "bigint-array";
662
+ case import_driver_adapter_utils2.ColumnTypeEnum.FloatArray:
663
+ return "float-array";
664
+ case import_driver_adapter_utils2.ColumnTypeEnum.DoubleArray:
665
+ return "double-array";
666
+ case import_driver_adapter_utils2.ColumnTypeEnum.TextArray:
667
+ return "string-array";
668
+ case import_driver_adapter_utils2.ColumnTypeEnum.EnumArray:
669
+ return "string-array";
670
+ case import_driver_adapter_utils2.ColumnTypeEnum.BytesArray:
671
+ return "bytes-array";
672
+ case import_driver_adapter_utils2.ColumnTypeEnum.BooleanArray:
673
+ return "bool-array";
674
+ case import_driver_adapter_utils2.ColumnTypeEnum.CharacterArray:
675
+ return "char-array";
676
+ case import_driver_adapter_utils2.ColumnTypeEnum.NumericArray:
677
+ return "decimal-array";
678
+ case import_driver_adapter_utils2.ColumnTypeEnum.JsonArray:
679
+ return "json-array";
680
+ case import_driver_adapter_utils2.ColumnTypeEnum.UuidArray:
681
+ return "uuid-array";
682
+ case import_driver_adapter_utils2.ColumnTypeEnum.DateTimeArray:
683
+ return "datetime-array";
684
+ case import_driver_adapter_utils2.ColumnTypeEnum.DateArray:
685
+ return "date-array";
686
+ case import_driver_adapter_utils2.ColumnTypeEnum.TimeArray:
687
+ return "time-array";
688
+ case import_driver_adapter_utils2.ColumnTypeEnum.UnknownNumber:
689
+ return "unknown";
690
+ /// The following PlanetScale type IDs are mapped into Set:
691
+ /// - SET (SET) -> e.g. `"foo,bar"` (String-encoded, comma-separated)
692
+ case import_driver_adapter_utils2.ColumnTypeEnum.Set:
693
+ return "string";
694
+ default:
695
+ assertNever(columnType, `Unexpected column type: ${columnType}`);
696
+ }
697
+ }
618
698
 
619
699
  // src/interpreter/validation.ts
620
700
  function performValidation(data, rules, error) {
@@ -695,12 +775,21 @@ var QueryInterpreter = class _QueryInterpreter {
695
775
  #generators = new GeneratorRegistry();
696
776
  #tracingHelper;
697
777
  #serializer;
698
- constructor({ transactionManager, placeholderValues, onQuery, tracingHelper, serializer }) {
778
+ #rawSerializer;
779
+ constructor({
780
+ transactionManager,
781
+ placeholderValues,
782
+ onQuery,
783
+ tracingHelper,
784
+ serializer,
785
+ rawSerializer
786
+ }) {
699
787
  this.#transactionManager = transactionManager;
700
788
  this.#placeholderValues = placeholderValues;
701
789
  this.#onQuery = onQuery;
702
790
  this.#tracingHelper = tracingHelper;
703
791
  this.#serializer = serializer;
792
+ this.#rawSerializer = rawSerializer ?? serializer;
704
793
  }
705
794
  static forSql(options) {
706
795
  return new _QueryInterpreter({
@@ -708,7 +797,8 @@ var QueryInterpreter = class _QueryInterpreter {
708
797
  placeholderValues: options.placeholderValues,
709
798
  onQuery: options.onQuery,
710
799
  tracingHelper: options.tracingHelper,
711
- serializer: serializeSql
800
+ serializer: serializeSql,
801
+ rawSerializer: serializeRawSql
712
802
  });
713
803
  }
714
804
  async run(queryPlan, queryable) {
@@ -761,7 +851,11 @@ var QueryInterpreter = class _QueryInterpreter {
761
851
  case "query": {
762
852
  const query = renderQuery(node.args, scope, generators);
763
853
  return this.#withQueryEvent(query, queryable, async () => {
764
- return this.#serializer(await queryable.queryRaw(query));
854
+ if (node.args.type === "rawSql") {
855
+ return this.#rawSerializer(await queryable.queryRaw(query));
856
+ } else {
857
+ return this.#serializer(await queryable.queryRaw(query));
858
+ }
765
859
  });
766
860
  }
767
861
  case "reverse": {
package/dist/index.mjs CHANGED
@@ -548,6 +548,7 @@ function doesRequireEvaluation(param) {
548
548
  }
549
549
 
550
550
  // src/interpreter/serializeSql.ts
551
+ import { ColumnTypeEnum } from "@prisma/driver-adapter-utils";
551
552
  function serializeSql(resultSet) {
552
553
  return resultSet.rows.map(
553
554
  (row) => row.reduce((acc, value, index) => {
@@ -568,6 +569,85 @@ function serializeSql(resultSet) {
568
569
  }, {})
569
570
  );
570
571
  }
572
+ function serializeRawSql(resultSet) {
573
+ return {
574
+ columns: resultSet.columnNames,
575
+ types: resultSet.columnTypes.map((type) => serializeColumnType(type)),
576
+ rows: resultSet.rows
577
+ };
578
+ }
579
+ function serializeColumnType(columnType) {
580
+ switch (columnType) {
581
+ case ColumnTypeEnum.Int32:
582
+ return "int";
583
+ case ColumnTypeEnum.Int64:
584
+ return "bigint";
585
+ case ColumnTypeEnum.Float:
586
+ return "float";
587
+ case ColumnTypeEnum.Double:
588
+ return "double";
589
+ case ColumnTypeEnum.Text:
590
+ return "string";
591
+ case ColumnTypeEnum.Enum:
592
+ return "enum";
593
+ case ColumnTypeEnum.Bytes:
594
+ return "bytes";
595
+ case ColumnTypeEnum.Boolean:
596
+ return "bool";
597
+ case ColumnTypeEnum.Character:
598
+ return "char";
599
+ case ColumnTypeEnum.Numeric:
600
+ return "decimal";
601
+ case ColumnTypeEnum.Json:
602
+ return "json";
603
+ case ColumnTypeEnum.Uuid:
604
+ return "uuid";
605
+ case ColumnTypeEnum.DateTime:
606
+ return "datetime";
607
+ case ColumnTypeEnum.Date:
608
+ return "date";
609
+ case ColumnTypeEnum.Time:
610
+ return "time";
611
+ case ColumnTypeEnum.Int32Array:
612
+ return "int-array";
613
+ case ColumnTypeEnum.Int64Array:
614
+ return "bigint-array";
615
+ case ColumnTypeEnum.FloatArray:
616
+ return "float-array";
617
+ case ColumnTypeEnum.DoubleArray:
618
+ return "double-array";
619
+ case ColumnTypeEnum.TextArray:
620
+ return "string-array";
621
+ case ColumnTypeEnum.EnumArray:
622
+ return "string-array";
623
+ case ColumnTypeEnum.BytesArray:
624
+ return "bytes-array";
625
+ case ColumnTypeEnum.BooleanArray:
626
+ return "bool-array";
627
+ case ColumnTypeEnum.CharacterArray:
628
+ return "char-array";
629
+ case ColumnTypeEnum.NumericArray:
630
+ return "decimal-array";
631
+ case ColumnTypeEnum.JsonArray:
632
+ return "json-array";
633
+ case ColumnTypeEnum.UuidArray:
634
+ return "uuid-array";
635
+ case ColumnTypeEnum.DateTimeArray:
636
+ return "datetime-array";
637
+ case ColumnTypeEnum.DateArray:
638
+ return "date-array";
639
+ case ColumnTypeEnum.TimeArray:
640
+ return "time-array";
641
+ case ColumnTypeEnum.UnknownNumber:
642
+ return "unknown";
643
+ /// The following PlanetScale type IDs are mapped into Set:
644
+ /// - SET (SET) -> e.g. `"foo,bar"` (String-encoded, comma-separated)
645
+ case ColumnTypeEnum.Set:
646
+ return "string";
647
+ default:
648
+ assertNever(columnType, `Unexpected column type: ${columnType}`);
649
+ }
650
+ }
571
651
 
572
652
  // src/interpreter/validation.ts
573
653
  function performValidation(data, rules, error) {
@@ -648,12 +728,21 @@ var QueryInterpreter = class _QueryInterpreter {
648
728
  #generators = new GeneratorRegistry();
649
729
  #tracingHelper;
650
730
  #serializer;
651
- constructor({ transactionManager, placeholderValues, onQuery, tracingHelper, serializer }) {
731
+ #rawSerializer;
732
+ constructor({
733
+ transactionManager,
734
+ placeholderValues,
735
+ onQuery,
736
+ tracingHelper,
737
+ serializer,
738
+ rawSerializer
739
+ }) {
652
740
  this.#transactionManager = transactionManager;
653
741
  this.#placeholderValues = placeholderValues;
654
742
  this.#onQuery = onQuery;
655
743
  this.#tracingHelper = tracingHelper;
656
744
  this.#serializer = serializer;
745
+ this.#rawSerializer = rawSerializer ?? serializer;
657
746
  }
658
747
  static forSql(options) {
659
748
  return new _QueryInterpreter({
@@ -661,7 +750,8 @@ var QueryInterpreter = class _QueryInterpreter {
661
750
  placeholderValues: options.placeholderValues,
662
751
  onQuery: options.onQuery,
663
752
  tracingHelper: options.tracingHelper,
664
- serializer: serializeSql
753
+ serializer: serializeSql,
754
+ rawSerializer: serializeRawSql
665
755
  });
666
756
  }
667
757
  async run(queryPlan, queryable) {
@@ -714,7 +804,11 @@ var QueryInterpreter = class _QueryInterpreter {
714
804
  case "query": {
715
805
  const query = renderQuery(node.args, scope, generators);
716
806
  return this.#withQueryEvent(query, queryable, async () => {
717
- return this.#serializer(await queryable.queryRaw(query));
807
+ if (node.args.type === "rawSql") {
808
+ return this.#rawSerializer(await queryable.queryRaw(query));
809
+ } else {
810
+ return this.#serializer(await queryable.queryRaw(query));
811
+ }
718
812
  });
719
813
  }
720
814
  case "reverse": {
@@ -16,10 +16,11 @@ export type QueryInterpreterOptions = {
16
16
  onQuery?: (event: QueryEvent) => void;
17
17
  tracingHelper: TracingHelper;
18
18
  serializer: (results: SqlResultSet) => Value;
19
+ rawSerializer?: (results: SqlResultSet) => Value;
19
20
  };
20
21
  export declare class QueryInterpreter {
21
22
  #private;
22
- constructor({ transactionManager, placeholderValues, onQuery, tracingHelper, serializer }: QueryInterpreterOptions);
23
+ constructor({ transactionManager, placeholderValues, onQuery, tracingHelper, serializer, rawSerializer, }: QueryInterpreterOptions);
23
24
  static forSql(options: {
24
25
  transactionManager: QueryInterpreterTransactionManager;
25
26
  placeholderValues: Record<string, unknown>;
@@ -1,2 +1,3 @@
1
- import type { SqlResultSet } from '@prisma/driver-adapter-utils';
1
+ import { type SqlResultSet } from '@prisma/driver-adapter-utils';
2
2
  export declare function serializeSql(resultSet: SqlResultSet): Record<string, unknown>[];
3
+ export declare function serializeRawSql(resultSet: SqlResultSet): Record<string, unknown>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/client-engine-runtime",
3
- "version": "6.9.0-dev.20",
3
+ "version": "6.9.0-dev.21",
4
4
  "description": "This package is intended for Prisma's internal use",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -31,8 +31,8 @@
31
31
  "nanoid": "5.1.5",
32
32
  "ulid": "3.0.0",
33
33
  "uuid": "11.1.0",
34
- "@prisma/debug": "6.9.0-dev.20",
35
- "@prisma/driver-adapter-utils": "6.9.0-dev.20"
34
+ "@prisma/debug": "6.9.0-dev.21",
35
+ "@prisma/driver-adapter-utils": "6.9.0-dev.21"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/jest": "29.5.14",