@prisma/client 7.4.0-integration-parameterization.19 → 7.4.0-integration-parameterization.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.
@@ -4573,7 +4573,7 @@ var import_path4 = __toESM(require("path"));
4573
4573
  // package.json
4574
4574
  var package_default = {
4575
4575
  name: "@prisma/client",
4576
- version: "7.4.0-integration-parameterization.19",
4576
+ version: "7.4.0-integration-parameterization.21",
4577
4577
  description: "Prisma Client is an auto-generated, type-safe and modern JavaScript/TypeScript ORM for Node.js that's tailored to your data. Supports PostgreSQL, CockroachDB, MySQL, MariaDB, SQL Server, SQLite & MongoDB databases.",
4578
4578
  keywords: [
4579
4579
  "ORM",
@@ -8084,6 +8084,8 @@ var DMMFTraverser = class {
8084
8084
  #builder;
8085
8085
  #inputTypeMap;
8086
8086
  #outputTypeMap;
8087
+ #pendingInputNodes = [];
8088
+ #pendingUnionNodes = [];
8087
8089
  constructor(builder, dmmf) {
8088
8090
  this.#builder = builder;
8089
8091
  this.#inputTypeMap = /* @__PURE__ */ new Map();
@@ -8134,6 +8136,23 @@ var DMMFTraverser = class {
8134
8136
  });
8135
8137
  }
8136
8138
  }
8139
+ this.#drainPendingWork();
8140
+ }
8141
+ /**
8142
+ * Iteratively processes all pending input and union nodes.
8143
+ * This avoids deep recursion that can cause stack overflow on complex schemas.
8144
+ */
8145
+ #drainPendingWork() {
8146
+ while (this.#pendingInputNodes.length > 0 || this.#pendingUnionNodes.length > 0) {
8147
+ while (this.#pendingInputNodes.length > 0) {
8148
+ const pending = this.#pendingInputNodes.pop();
8149
+ this.#processInputNodeFields(pending.nodeId, pending.fields);
8150
+ }
8151
+ while (this.#pendingUnionNodes.length > 0) {
8152
+ const pending = this.#pendingUnionNodes.pop();
8153
+ this.#processUnionNodeFields(pending.nodeId, pending.typeNames);
8154
+ }
8155
+ }
8137
8156
  }
8138
8157
  #findRootField(fieldName) {
8139
8158
  const queryType = this.#outputTypeMap.get("prisma.Query");
@@ -8171,6 +8190,8 @@ var DMMFTraverser = class {
8171
8190
  }
8172
8191
  /**
8173
8192
  * Builds an input node for a named input type.
8193
+ * Node allocation happens immediately, but field processing is deferred
8194
+ * to avoid deep recursion.
8174
8195
  */
8175
8196
  buildInputTypeNode(typeName) {
8176
8197
  if (this.#builder.hasInputTypeNode(typeName)) {
@@ -8183,9 +8204,16 @@ var DMMFTraverser = class {
8183
8204
  }
8184
8205
  const nodeId = this.#builder.allocateInputNode();
8185
8206
  this.#builder.setInputTypeNode(typeName, nodeId);
8207
+ this.#pendingInputNodes.push({ nodeId, fields: inputType.fields });
8208
+ return nodeId;
8209
+ }
8210
+ /**
8211
+ * Process fields for an input node (called from drainPendingWork).
8212
+ */
8213
+ #processInputNodeFields(nodeId, fields) {
8186
8214
  const edges = {};
8187
8215
  let hasAnyEdge = false;
8188
- for (const field of inputType.fields) {
8216
+ for (const field of fields) {
8189
8217
  const edge = this.#mergeFieldVariants([field]);
8190
8218
  if (edge) {
8191
8219
  const stringIndex = this.#builder.internString(field.name);
@@ -8196,10 +8224,11 @@ var DMMFTraverser = class {
8196
8224
  if (hasAnyEdge) {
8197
8225
  this.#builder.setInputNodeEdges(nodeId, edges);
8198
8226
  }
8199
- return nodeId;
8200
8227
  }
8201
8228
  /**
8202
8229
  * Builds a union node for multiple input types.
8230
+ * Node allocation happens immediately, but field processing is deferred
8231
+ * to avoid deep recursion.
8203
8232
  */
8204
8233
  buildUnionNode(typeNames) {
8205
8234
  const sortedNames = [...typeNames].sort();
@@ -8209,6 +8238,13 @@ var DMMFTraverser = class {
8209
8238
  }
8210
8239
  const nodeId = this.#builder.allocateInputNode();
8211
8240
  this.#builder.setUnionNode(cacheKey, nodeId);
8241
+ this.#pendingUnionNodes.push({ nodeId, typeNames });
8242
+ return nodeId;
8243
+ }
8244
+ /**
8245
+ * Process fields for a union node (called from drainPendingWork).
8246
+ */
8247
+ #processUnionNodeFields(nodeId, typeNames) {
8212
8248
  const fieldsByName = /* @__PURE__ */ new Map();
8213
8249
  for (const typeName of typeNames) {
8214
8250
  const inputType = this.#inputTypeMap.get(typeName);
@@ -8235,7 +8271,6 @@ var DMMFTraverser = class {
8235
8271
  if (hasAnyEdge) {
8236
8272
  this.#builder.setInputNodeEdges(nodeId, mergedEdges);
8237
8273
  }
8238
- return nodeId;
8239
8274
  }
8240
8275
  /**
8241
8276
  * Merges field variants to produce a single edge descriptor.
@@ -10970,7 +11005,7 @@ var import_node_path4 = __toESM(require("node:path"));
10970
11005
  var import_engines_version = __toESM(require_engines_version());
10971
11006
 
10972
11007
  // ../client-generator-js/package.json
10973
- var version = "7.4.0-integration-parameterization.19";
11008
+ var version = "7.4.0-integration-parameterization.21";
10974
11009
 
10975
11010
  // ../client-generator-js/src/resolvePrismaClient.ts
10976
11011
  var import_promises5 = __toESM(require("node:fs/promises"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/client",
3
- "version": "7.4.0-integration-parameterization.19",
3
+ "version": "7.4.0-integration-parameterization.21",
4
4
  "description": "Prisma Client is an auto-generated, type-safe and modern JavaScript/TypeScript ORM for Node.js that's tailored to your data. Supports PostgreSQL, CockroachDB, MySQL, MariaDB, SQL Server, SQLite & MongoDB databases.",
5
5
  "keywords": [
6
6
  "ORM",
@@ -218,41 +218,41 @@
218
218
  "typescript": "5.4.5",
219
219
  "undici": "7.4.0",
220
220
  "zx": "8.4.1",
221
- "@prisma/adapter-better-sqlite3": "7.4.0-integration-parameterization.19",
222
- "@prisma/adapter-d1": "7.4.0-integration-parameterization.19",
223
- "@prisma/adapter-mssql": "7.4.0-integration-parameterization.19",
224
- "@prisma/adapter-mariadb": "7.4.0-integration-parameterization.19",
225
- "@prisma/adapter-libsql": "7.4.0-integration-parameterization.19",
226
- "@prisma/adapter-neon": "7.4.0-integration-parameterization.19",
227
- "@prisma/adapter-pg": "7.4.0-integration-parameterization.19",
228
- "@prisma/adapter-planetscale": "7.4.0-integration-parameterization.19",
229
- "@prisma/client-common": "7.4.0-integration-parameterization.19",
230
- "@prisma/client-engine-runtime": "7.4.0-integration-parameterization.19",
231
- "@prisma/client-generator-js": "7.4.0-integration-parameterization.19",
232
- "@prisma/client-generator-ts": "7.4.0-integration-parameterization.19",
233
- "@prisma/config": "7.4.0-integration-parameterization.19",
234
- "@prisma/dmmf": "7.4.0-integration-parameterization.19",
235
- "@prisma/debug": "7.4.0-integration-parameterization.19",
236
- "@prisma/driver-adapter-utils": "7.4.0-integration-parameterization.19",
237
- "@prisma/fetch-engine": "7.4.0-integration-parameterization.19",
238
- "@prisma/generator": "7.4.0-integration-parameterization.19",
239
- "@prisma/engines": "7.4.0-integration-parameterization.19",
240
- "@prisma/generator-helper": "7.4.0-integration-parameterization.19",
241
- "@prisma/get-platform": "7.4.0-integration-parameterization.19",
242
- "@prisma/instrumentation": "7.4.0-integration-parameterization.19",
243
- "@prisma/instrumentation-contract": "7.4.0-integration-parameterization.19",
244
- "@prisma/internals": "7.4.0-integration-parameterization.19",
245
- "@prisma/json-protocol": "7.4.0-integration-parameterization.19",
246
- "@prisma/migrate": "7.4.0-integration-parameterization.19",
247
- "@prisma/param-graph": "7.4.0-integration-parameterization.19",
248
- "@prisma/param-graph-builder": "7.4.0-integration-parameterization.19",
249
- "@prisma/sqlcommenter": "7.4.0-integration-parameterization.19",
250
- "@prisma/query-plan-executor": "7.4.0-integration-parameterization.19",
251
- "@prisma/ts-builders": "7.4.0-integration-parameterization.19",
252
- "@prisma/sqlcommenter-trace-context": "7.4.0-integration-parameterization.19"
221
+ "@prisma/adapter-better-sqlite3": "7.4.0-integration-parameterization.21",
222
+ "@prisma/adapter-libsql": "7.4.0-integration-parameterization.21",
223
+ "@prisma/adapter-mariadb": "7.4.0-integration-parameterization.21",
224
+ "@prisma/adapter-d1": "7.4.0-integration-parameterization.21",
225
+ "@prisma/adapter-neon": "7.4.0-integration-parameterization.21",
226
+ "@prisma/adapter-mssql": "7.4.0-integration-parameterization.21",
227
+ "@prisma/adapter-pg": "7.4.0-integration-parameterization.21",
228
+ "@prisma/adapter-planetscale": "7.4.0-integration-parameterization.21",
229
+ "@prisma/client-common": "7.4.0-integration-parameterization.21",
230
+ "@prisma/client-engine-runtime": "7.4.0-integration-parameterization.21",
231
+ "@prisma/config": "7.4.0-integration-parameterization.21",
232
+ "@prisma/client-generator-js": "7.4.0-integration-parameterization.21",
233
+ "@prisma/client-generator-ts": "7.4.0-integration-parameterization.21",
234
+ "@prisma/debug": "7.4.0-integration-parameterization.21",
235
+ "@prisma/dmmf": "7.4.0-integration-parameterization.21",
236
+ "@prisma/driver-adapter-utils": "7.4.0-integration-parameterization.21",
237
+ "@prisma/engines": "7.4.0-integration-parameterization.21",
238
+ "@prisma/generator": "7.4.0-integration-parameterization.21",
239
+ "@prisma/generator-helper": "7.4.0-integration-parameterization.21",
240
+ "@prisma/fetch-engine": "7.4.0-integration-parameterization.21",
241
+ "@prisma/get-platform": "7.4.0-integration-parameterization.21",
242
+ "@prisma/instrumentation": "7.4.0-integration-parameterization.21",
243
+ "@prisma/instrumentation-contract": "7.4.0-integration-parameterization.21",
244
+ "@prisma/internals": "7.4.0-integration-parameterization.21",
245
+ "@prisma/param-graph": "7.4.0-integration-parameterization.21",
246
+ "@prisma/json-protocol": "7.4.0-integration-parameterization.21",
247
+ "@prisma/migrate": "7.4.0-integration-parameterization.21",
248
+ "@prisma/param-graph-builder": "7.4.0-integration-parameterization.21",
249
+ "@prisma/query-plan-executor": "7.4.0-integration-parameterization.21",
250
+ "@prisma/sqlcommenter": "7.4.0-integration-parameterization.21",
251
+ "@prisma/sqlcommenter-trace-context": "7.4.0-integration-parameterization.21",
252
+ "@prisma/ts-builders": "7.4.0-integration-parameterization.21"
253
253
  },
254
254
  "dependencies": {
255
- "@prisma/client-runtime-utils": "7.4.0-integration-parameterization.19"
255
+ "@prisma/client-runtime-utils": "7.4.0-integration-parameterization.21"
256
256
  },
257
257
  "peerDependencies": {
258
258
  "prisma": "*",