@prisma/client-engine-runtime 6.12.0-dev.16 → 6.12.0-dev.18

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.js CHANGED
@@ -62,20 +62,74 @@ function doKeysMatch(lhs, rhs) {
62
62
  const rhsKeys = Object.keys(rhs);
63
63
  const smallerKeyList = lhsKeys.length < rhsKeys.length ? lhsKeys : rhsKeys;
64
64
  return smallerKeyList.every((key) => {
65
- if (typeof lhs[key] !== typeof rhs[key]) {
66
- if (typeof lhs[key] === "number" || typeof rhs[key] === "number") {
67
- return `${lhs[key]}` === `${rhs[key]}`;
68
- } else if (typeof lhs[key] === "bigint" || typeof rhs[key] === "bigint") {
69
- return BigInt(`${lhs[key]}`.replace(/n$/, "")) === BigInt(`${rhs[key]}`.replace(/n$/, ""));
70
- } else if (lhs[key] instanceof Date || rhs[key] instanceof Date) {
71
- return (/* @__PURE__ */ new Date(`${lhs[key]}`)).getTime() === (/* @__PURE__ */ new Date(`${rhs[key]}`)).getTime();
72
- } else if (import_decimal.default.isDecimal(lhs[key]) || import_decimal.default.isDecimal(rhs[key])) {
73
- return new import_decimal.default(`${lhs[key]}`).equals(new import_decimal.default(`${rhs[key]}`));
74
- }
65
+ if (typeof lhs[key] === typeof rhs[key] && typeof lhs[key] !== "object") {
66
+ return lhs[key] === rhs[key];
67
+ }
68
+ if (import_decimal.default.isDecimal(lhs[key]) || import_decimal.default.isDecimal(rhs[key])) {
69
+ const lhsDecimal = asDecimal(lhs[key]);
70
+ const rhsDecimal = asDecimal(rhs[key]);
71
+ return lhsDecimal && rhsDecimal && lhsDecimal.equals(rhsDecimal);
72
+ } else if (lhs[key] instanceof Uint8Array || rhs[key] instanceof Uint8Array) {
73
+ const lhsBuffer = asBuffer(lhs[key]);
74
+ const rhsBuffer = asBuffer(rhs[key]);
75
+ return lhsBuffer && rhsBuffer && lhsBuffer.equals(rhsBuffer);
76
+ } else if (lhs[key] instanceof Date || rhs[key] instanceof Date) {
77
+ return asDate(lhs[key])?.getTime() === asDate(rhs[key])?.getTime();
78
+ } else if (typeof lhs[key] === "bigint" || typeof rhs[key] === "bigint") {
79
+ return asBigInt(lhs[key]) === asBigInt(rhs[key]);
80
+ } else if (typeof lhs[key] === "number" || typeof rhs[key] === "number") {
81
+ return asNumber(lhs[key]) === asNumber(rhs[key]);
75
82
  }
76
83
  return isDeepStrictEqual(lhs[key], rhs[key]);
77
84
  });
78
85
  }
86
+ function asDecimal(value) {
87
+ if (import_decimal.default.isDecimal(value)) {
88
+ return value;
89
+ } else if (typeof value === "number" || typeof value === "string") {
90
+ return new import_decimal.default(value);
91
+ } else {
92
+ return;
93
+ }
94
+ }
95
+ function asBuffer(value) {
96
+ if (Buffer.isBuffer(value)) {
97
+ return value;
98
+ } else if (value instanceof Uint8Array) {
99
+ return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
100
+ } else if (typeof value === "string") {
101
+ return Buffer.from(value, "base64");
102
+ } else {
103
+ return;
104
+ }
105
+ }
106
+ function asDate(value) {
107
+ if (value instanceof Date) {
108
+ return value;
109
+ } else if (typeof value === "string" || typeof value === "number") {
110
+ return new Date(value);
111
+ } else {
112
+ return;
113
+ }
114
+ }
115
+ function asBigInt(value) {
116
+ if (typeof value === "bigint") {
117
+ return value;
118
+ } else if (typeof value === "number" || typeof value === "string") {
119
+ return BigInt(value);
120
+ } else {
121
+ return;
122
+ }
123
+ }
124
+ function asNumber(value) {
125
+ if (typeof value === "number") {
126
+ return value;
127
+ } else if (typeof value === "string") {
128
+ return Number(value);
129
+ } else {
130
+ return;
131
+ }
132
+ }
79
133
  function safeJsonStringify(obj) {
80
134
  return JSON.stringify(obj, (_key, val) => {
81
135
  if (typeof val === "bigint") {
@@ -1063,7 +1117,7 @@ var QueryInterpreter = class _QueryInterpreter {
1063
1117
  node.args.map((arg) => this.interpretNode(arg, queryable, scope, generators).then((res) => res.value))
1064
1118
  );
1065
1119
  return {
1066
- value: parts.length > 0 ? parts.reduce((acc, part) => asNumber(acc) + asNumber(part)) : 0
1120
+ value: parts.length > 0 ? parts.reduce((acc, part) => asNumber2(acc) + asNumber2(part)) : 0
1067
1121
  };
1068
1122
  }
1069
1123
  case "execute": {
@@ -1237,7 +1291,7 @@ function isEmpty(value) {
1237
1291
  function asList(value) {
1238
1292
  return Array.isArray(value) ? value : [value];
1239
1293
  }
1240
- function asNumber(value) {
1294
+ function asNumber2(value) {
1241
1295
  if (typeof value === "number") {
1242
1296
  return value;
1243
1297
  }
@@ -1322,14 +1376,14 @@ function evalFieldOperation(op, value, scope, generators) {
1322
1376
  case "set":
1323
1377
  return evaluateParam(op.value, scope, generators);
1324
1378
  case "add":
1325
- return asNumber(value) + asNumber(evaluateParam(op.value, scope, generators));
1379
+ return asNumber2(value) + asNumber2(evaluateParam(op.value, scope, generators));
1326
1380
  case "subtract":
1327
- return asNumber(value) - asNumber(evaluateParam(op.value, scope, generators));
1381
+ return asNumber2(value) - asNumber2(evaluateParam(op.value, scope, generators));
1328
1382
  case "multiply":
1329
- return asNumber(value) * asNumber(evaluateParam(op.value, scope, generators));
1383
+ return asNumber2(value) * asNumber2(evaluateParam(op.value, scope, generators));
1330
1384
  case "divide": {
1331
- const lhs = asNumber(value);
1332
- const rhs = asNumber(evaluateParam(op.value, scope, generators));
1385
+ const lhs = asNumber2(value);
1386
+ const rhs = asNumber2(evaluateParam(op.value, scope, generators));
1333
1387
  if (rhs === 0) {
1334
1388
  return null;
1335
1389
  }
package/dist/index.mjs CHANGED
@@ -14,20 +14,74 @@ function doKeysMatch(lhs, rhs) {
14
14
  const rhsKeys = Object.keys(rhs);
15
15
  const smallerKeyList = lhsKeys.length < rhsKeys.length ? lhsKeys : rhsKeys;
16
16
  return smallerKeyList.every((key) => {
17
- if (typeof lhs[key] !== typeof rhs[key]) {
18
- if (typeof lhs[key] === "number" || typeof rhs[key] === "number") {
19
- return `${lhs[key]}` === `${rhs[key]}`;
20
- } else if (typeof lhs[key] === "bigint" || typeof rhs[key] === "bigint") {
21
- return BigInt(`${lhs[key]}`.replace(/n$/, "")) === BigInt(`${rhs[key]}`.replace(/n$/, ""));
22
- } else if (lhs[key] instanceof Date || rhs[key] instanceof Date) {
23
- return (/* @__PURE__ */ new Date(`${lhs[key]}`)).getTime() === (/* @__PURE__ */ new Date(`${rhs[key]}`)).getTime();
24
- } else if (Decimal.isDecimal(lhs[key]) || Decimal.isDecimal(rhs[key])) {
25
- return new Decimal(`${lhs[key]}`).equals(new Decimal(`${rhs[key]}`));
26
- }
17
+ if (typeof lhs[key] === typeof rhs[key] && typeof lhs[key] !== "object") {
18
+ return lhs[key] === rhs[key];
19
+ }
20
+ if (Decimal.isDecimal(lhs[key]) || Decimal.isDecimal(rhs[key])) {
21
+ const lhsDecimal = asDecimal(lhs[key]);
22
+ const rhsDecimal = asDecimal(rhs[key]);
23
+ return lhsDecimal && rhsDecimal && lhsDecimal.equals(rhsDecimal);
24
+ } else if (lhs[key] instanceof Uint8Array || rhs[key] instanceof Uint8Array) {
25
+ const lhsBuffer = asBuffer(lhs[key]);
26
+ const rhsBuffer = asBuffer(rhs[key]);
27
+ return lhsBuffer && rhsBuffer && lhsBuffer.equals(rhsBuffer);
28
+ } else if (lhs[key] instanceof Date || rhs[key] instanceof Date) {
29
+ return asDate(lhs[key])?.getTime() === asDate(rhs[key])?.getTime();
30
+ } else if (typeof lhs[key] === "bigint" || typeof rhs[key] === "bigint") {
31
+ return asBigInt(lhs[key]) === asBigInt(rhs[key]);
32
+ } else if (typeof lhs[key] === "number" || typeof rhs[key] === "number") {
33
+ return asNumber(lhs[key]) === asNumber(rhs[key]);
27
34
  }
28
35
  return isDeepStrictEqual(lhs[key], rhs[key]);
29
36
  });
30
37
  }
38
+ function asDecimal(value) {
39
+ if (Decimal.isDecimal(value)) {
40
+ return value;
41
+ } else if (typeof value === "number" || typeof value === "string") {
42
+ return new Decimal(value);
43
+ } else {
44
+ return;
45
+ }
46
+ }
47
+ function asBuffer(value) {
48
+ if (Buffer.isBuffer(value)) {
49
+ return value;
50
+ } else if (value instanceof Uint8Array) {
51
+ return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
52
+ } else if (typeof value === "string") {
53
+ return Buffer.from(value, "base64");
54
+ } else {
55
+ return;
56
+ }
57
+ }
58
+ function asDate(value) {
59
+ if (value instanceof Date) {
60
+ return value;
61
+ } else if (typeof value === "string" || typeof value === "number") {
62
+ return new Date(value);
63
+ } else {
64
+ return;
65
+ }
66
+ }
67
+ function asBigInt(value) {
68
+ if (typeof value === "bigint") {
69
+ return value;
70
+ } else if (typeof value === "number" || typeof value === "string") {
71
+ return BigInt(value);
72
+ } else {
73
+ return;
74
+ }
75
+ }
76
+ function asNumber(value) {
77
+ if (typeof value === "number") {
78
+ return value;
79
+ } else if (typeof value === "string") {
80
+ return Number(value);
81
+ } else {
82
+ return;
83
+ }
84
+ }
31
85
  function safeJsonStringify(obj) {
32
86
  return JSON.stringify(obj, (_key, val) => {
33
87
  if (typeof val === "bigint") {
@@ -1015,7 +1069,7 @@ var QueryInterpreter = class _QueryInterpreter {
1015
1069
  node.args.map((arg) => this.interpretNode(arg, queryable, scope, generators).then((res) => res.value))
1016
1070
  );
1017
1071
  return {
1018
- value: parts.length > 0 ? parts.reduce((acc, part) => asNumber(acc) + asNumber(part)) : 0
1072
+ value: parts.length > 0 ? parts.reduce((acc, part) => asNumber2(acc) + asNumber2(part)) : 0
1019
1073
  };
1020
1074
  }
1021
1075
  case "execute": {
@@ -1189,7 +1243,7 @@ function isEmpty(value) {
1189
1243
  function asList(value) {
1190
1244
  return Array.isArray(value) ? value : [value];
1191
1245
  }
1192
- function asNumber(value) {
1246
+ function asNumber2(value) {
1193
1247
  if (typeof value === "number") {
1194
1248
  return value;
1195
1249
  }
@@ -1274,14 +1328,14 @@ function evalFieldOperation(op, value, scope, generators) {
1274
1328
  case "set":
1275
1329
  return evaluateParam(op.value, scope, generators);
1276
1330
  case "add":
1277
- return asNumber(value) + asNumber(evaluateParam(op.value, scope, generators));
1331
+ return asNumber2(value) + asNumber2(evaluateParam(op.value, scope, generators));
1278
1332
  case "subtract":
1279
- return asNumber(value) - asNumber(evaluateParam(op.value, scope, generators));
1333
+ return asNumber2(value) - asNumber2(evaluateParam(op.value, scope, generators));
1280
1334
  case "multiply":
1281
- return asNumber(value) * asNumber(evaluateParam(op.value, scope, generators));
1335
+ return asNumber2(value) * asNumber2(evaluateParam(op.value, scope, generators));
1282
1336
  case "divide": {
1283
- const lhs = asNumber(value);
1284
- const rhs = asNumber(evaluateParam(op.value, scope, generators));
1337
+ const lhs = asNumber2(value);
1338
+ const rhs = asNumber2(evaluateParam(op.value, scope, generators));
1285
1339
  if (rhs === 0) {
1286
1340
  return null;
1287
1341
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/client-engine-runtime",
3
- "version": "6.12.0-dev.16",
3
+ "version": "6.12.0-dev.18",
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.12.0-dev.16",
35
- "@prisma/driver-adapter-utils": "6.12.0-dev.16"
34
+ "@prisma/debug": "6.12.0-dev.18",
35
+ "@prisma/driver-adapter-utils": "6.12.0-dev.18"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/jest": "29.5.14",