react-server-dom-webpack 19.0.5 → 19.0.7

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.
@@ -2836,7 +2836,7 @@
2836
2836
  var chunks = response._chunks,
2837
2837
  chunk = chunks.get(id);
2838
2838
  chunk ||
2839
- ((chunk = response._formData.get(response._prefix + id)),
2839
+ ((chunk = response._formData.data.get(response._prefix + id)),
2840
2840
  (chunk =
2841
2841
  "string" === typeof chunk
2842
2842
  ? new ReactPromise(
@@ -2946,6 +2946,10 @@
2946
2946
  case "fulfilled":
2947
2947
  id = chunk.value;
2948
2948
  chunk = chunk.reason;
2949
+ if (null !== chunk && "error" in chunk)
2950
+ throw Error(
2951
+ "Expected an initialized chunk but got an initialized stream chunk instead. This payload may have been submitted by an older version of React."
2952
+ );
2949
2953
  for (
2950
2954
  var localLength = 0,
2951
2955
  rootArrayContexts = response._rootArrayContexts,
@@ -3088,7 +3092,7 @@
3088
3092
  Error("Already initialized typed array.")
3089
3093
  )
3090
3094
  );
3091
- reference = response._formData.get(key).arrayBuffer();
3095
+ reference = response._formData.data.get(key).arrayBuffer();
3092
3096
  if (initializingHandler) {
3093
3097
  var handler = initializingHandler;
3094
3098
  handler.deps++;
@@ -3132,7 +3136,7 @@
3132
3136
  var chunks = response._chunks;
3133
3137
  stream = new ReactPromise("fulfilled", stream, controller);
3134
3138
  chunks.set(id, stream);
3135
- response = response._formData.getAll(response._prefix + id);
3139
+ response = response._formData.data.getAll(response._prefix + id);
3136
3140
  for (id = 0; id < response.length; id++)
3137
3141
  (chunks = response[id]),
3138
3142
  "string" === typeof chunks &&
@@ -3352,24 +3356,33 @@
3352
3356
  getOutlinedModel(response, arrayRoot, obj, key, null, createSet)
3353
3357
  );
3354
3358
  case "K":
3355
- obj = value.slice(2);
3356
- obj = response._prefix + obj + "_";
3357
- key = new FormData();
3358
- response = response._formData;
3359
- arrayRoot = Array.from(response.keys());
3360
- for (value = 0; value < arrayRoot.length; value++)
3361
- if (((reference = arrayRoot[value]), reference.startsWith(obj))) {
3359
+ key = value.slice(2);
3360
+ obj = response._prefix + "_";
3361
+ key = obj + key + "_";
3362
+ arrayRoot = new FormData();
3363
+ for (response = response._formData; ; ) {
3364
+ value = response;
3365
+ reference = value.keys;
3366
+ null === reference &&
3367
+ ((reference = value.keys = Array.from(value.data.keys())),
3368
+ (value.keyPointer = 0));
3369
+ value = reference[value.keyPointer];
3370
+ if (void 0 === value) break;
3371
+ if (value.startsWith(key)) {
3372
+ reference = response.data.getAll(value);
3362
3373
  for (
3363
- var entries = response.getAll(reference),
3364
- newKey = reference.slice(obj.length),
3365
- j = 0;
3366
- j < entries.length;
3367
- j++
3374
+ var referencedFormDataKey = value.slice(key.length), i = 0;
3375
+ i < reference.length;
3376
+ i++
3368
3377
  )
3369
- key.append(newKey, entries[j]);
3370
- response.delete(reference);
3371
- }
3372
- return key;
3378
+ arrayRoot.append(referencedFormDataKey, reference[i]);
3379
+ reference = response;
3380
+ reference.data.delete(value);
3381
+ reference.keyPointer++;
3382
+ } else if (value.startsWith(obj)) break;
3383
+ else response.keyPointer++;
3384
+ }
3385
+ return arrayRoot;
3373
3386
  case "i":
3374
3387
  return (
3375
3388
  (arrayRoot = value.slice(2)),
@@ -3540,7 +3553,7 @@
3540
3553
  case "B":
3541
3554
  return (
3542
3555
  (obj = parseInt(value.slice(2), 16)),
3543
- response._formData.get(response._prefix + obj)
3556
+ response._formData.data.get(response._prefix + obj)
3544
3557
  );
3545
3558
  }
3546
3559
  switch (value[1]) {
@@ -3581,7 +3594,7 @@
3581
3594
  return {
3582
3595
  _bundlerConfig: bundlerConfig,
3583
3596
  _prefix: formFieldPrefix,
3584
- _formData: backingFormData,
3597
+ _formData: { data: backingFormData, keyPointer: -1, keys: null },
3585
3598
  _chunks: chunks,
3586
3599
  _temporaryReferences: temporaryReferences,
3587
3600
  _rootArrayContexts: new WeakMap(),
@@ -3589,14 +3602,19 @@
3589
3602
  };
3590
3603
  }
3591
3604
  function resolveField(response, key, value) {
3592
- response._formData.append(key, value);
3593
- var prefix = response._prefix;
3594
- if (key.startsWith(prefix)) {
3595
- var chunks = response._chunks;
3596
- key = +key.slice(prefix.length);
3597
- (chunks = chunks.get(key)) &&
3598
- resolveModelChunk(response, chunks, value, key);
3599
- }
3605
+ var backingStore = response._formData;
3606
+ backingStore.data.append(key, value);
3607
+ var keys = backingStore.keys;
3608
+ null === keys
3609
+ ? ((backingStore.keys = Array.from(backingStore.data.keys())),
3610
+ (backingStore.keyPointer = 0))
3611
+ : keys.push(key);
3612
+ keys = response._prefix;
3613
+ key.startsWith(keys) &&
3614
+ ((backingStore = response._chunks),
3615
+ (key = +key.slice(keys.length)),
3616
+ (backingStore = backingStore.get(key)) &&
3617
+ resolveModelChunk(response, backingStore, value, key));
3600
3618
  }
3601
3619
  function close(response) {
3602
3620
  reportGlobalError(response, Error("Connection closed."));
@@ -4216,20 +4234,58 @@
4216
4234
  webpackMap,
4217
4235
  options
4218
4236
  ) {
4219
- var response = createResponse(
4237
+ function flush() {
4238
+ for (; null !== head; ) {
4239
+ var current = head;
4240
+ if (!current.complete) return;
4241
+ try {
4242
+ var response = response$jscomp$0,
4243
+ key = current.name,
4244
+ handle = current.file,
4245
+ blob = new Blob(handle.chunks, { type: handle.mime }),
4246
+ backingStore = response._formData;
4247
+ response = key;
4248
+ backingStore.data.append(response, blob, handle.filename);
4249
+ var keys = backingStore.keys;
4250
+ null === keys
4251
+ ? ((backingStore.keys = Array.from(backingStore.data.keys())),
4252
+ (backingStore.keyPointer = 0))
4253
+ : keys.push(response);
4254
+ var queuedFields = current.queuedFields;
4255
+ if (null !== queuedFields)
4256
+ for (response = 0; response < queuedFields.length; response += 2)
4257
+ resolveField(
4258
+ response$jscomp$0,
4259
+ queuedFields[response],
4260
+ queuedFields[response + 1]
4261
+ );
4262
+ } catch (error) {
4263
+ busboyStream.destroy(error);
4264
+ return;
4265
+ }
4266
+ head = current.next;
4267
+ }
4268
+ tail = null;
4269
+ bodyFinished && !closed && ((closed = !0), close(response$jscomp$0));
4270
+ }
4271
+ var response$jscomp$0 = createResponse(
4220
4272
  webpackMap,
4221
4273
  "",
4222
4274
  options ? options.temporaryReferences : void 0,
4223
4275
  void 0,
4224
4276
  options ? options.arraySizeLimit : void 0
4225
4277
  ),
4226
- pendingFiles = 0,
4227
- queuedFields = [];
4278
+ head = null,
4279
+ tail = null,
4280
+ bodyFinished = !1,
4281
+ closed = !1;
4228
4282
  busboyStream.on("field", function (name, value) {
4229
- if (0 < pendingFiles) queuedFields.push(name, value);
4283
+ if (null !== tail)
4284
+ null === tail.queuedFields && (tail.queuedFields = []),
4285
+ tail.queuedFields.push(name, value);
4230
4286
  else
4231
4287
  try {
4232
- resolveField(response, name, value);
4288
+ resolveField(response$jscomp$0, name, value);
4233
4289
  } catch (error) {
4234
4290
  busboyStream.destroy(error);
4235
4291
  }
@@ -4244,40 +4300,45 @@
4244
4300
  )
4245
4301
  );
4246
4302
  else {
4247
- pendingFiles++;
4248
- var JSCompiler_object_inline_chunks_149 = [];
4303
+ var file = { chunks: [], filename: filename, mime: mimeType },
4304
+ pendingFile = {
4305
+ name: name,
4306
+ file: file,
4307
+ complete: !1,
4308
+ queuedFields: null,
4309
+ next: null
4310
+ };
4311
+ null === tail ? (head = pendingFile) : (tail.next = pendingFile);
4312
+ tail = pendingFile;
4249
4313
  value.on("data", function (chunk) {
4250
- JSCompiler_object_inline_chunks_149.push(chunk);
4251
- });
4252
- value.on("end", function () {
4253
4314
  try {
4254
- var blob = new Blob(JSCompiler_object_inline_chunks_149, {
4255
- type: mimeType
4256
- });
4257
- response._formData.append(name, blob, filename);
4258
- pendingFiles--;
4259
- if (0 === pendingFiles) {
4260
- for (blob = 0; blob < queuedFields.length; blob += 2)
4261
- resolveField(
4262
- response,
4263
- queuedFields[blob],
4264
- queuedFields[blob + 1]
4265
- );
4266
- queuedFields.length = 0;
4267
- }
4315
+ file.chunks.push(chunk);
4268
4316
  } catch (error) {
4269
4317
  busboyStream.destroy(error);
4270
4318
  }
4271
4319
  });
4320
+ value.on("error", function (error) {
4321
+ busboyStream.destroy(error);
4322
+ });
4323
+ value.on("end", function () {
4324
+ pendingFile.complete = !0;
4325
+ flush();
4326
+ });
4272
4327
  }
4273
4328
  });
4274
4329
  busboyStream.on("finish", function () {
4275
- close(response);
4330
+ bodyFinished = !0;
4331
+ flush();
4332
+ closed ||
4333
+ reportGlobalError(
4334
+ response$jscomp$0,
4335
+ Error("Reply finished with incomplete file part.")
4336
+ );
4276
4337
  });
4277
4338
  busboyStream.on("error", function (err) {
4278
- reportGlobalError(response, err);
4339
+ reportGlobalError(response$jscomp$0, err);
4279
4340
  });
4280
- return getChunk(response, 0);
4341
+ return getChunk(response$jscomp$0, 0);
4281
4342
  };
4282
4343
  exports.registerClientReference = function (
4283
4344
  proxyImplementation,
@@ -2385,7 +2385,7 @@ function getChunk(response, id) {
2385
2385
  var chunks = response._chunks,
2386
2386
  chunk = chunks.get(id);
2387
2387
  chunk ||
2388
- ((chunk = response._formData.get(response._prefix + id)),
2388
+ ((chunk = response._formData.data.get(response._prefix + id)),
2389
2389
  (chunk =
2390
2390
  "string" === typeof chunk
2391
2391
  ? createResolvedModelChunk(response, chunk, id)
@@ -2484,6 +2484,10 @@ function getOutlinedModel(
2484
2484
  case "fulfilled":
2485
2485
  id = chunk.value;
2486
2486
  chunk = chunk.reason;
2487
+ if (null !== chunk && "error" in chunk)
2488
+ throw Error(
2489
+ "Expected an initialized chunk but got an initialized stream chunk instead. This payload may have been submitted by an older version of React."
2490
+ );
2487
2491
  for (
2488
2492
  var localLength = 0,
2489
2493
  rootArrayContexts = response._rootArrayContexts,
@@ -2617,7 +2621,7 @@ function parseTypedArray(
2617
2621
  Error("Already initialized typed array.")
2618
2622
  )
2619
2623
  );
2620
- reference = response._formData.get(key).arrayBuffer();
2624
+ reference = response._formData.data.get(key).arrayBuffer();
2621
2625
  if (initializingHandler) {
2622
2626
  var handler = initializingHandler;
2623
2627
  handler.deps++;
@@ -2661,7 +2665,7 @@ function resolveStream(response, id, stream, controller) {
2661
2665
  var chunks = response._chunks;
2662
2666
  stream = new ReactPromise("fulfilled", stream, controller);
2663
2667
  chunks.set(id, stream);
2664
- response = response._formData.getAll(response._prefix + id);
2668
+ response = response._formData.data.getAll(response._prefix + id);
2665
2669
  for (id = 0; id < response.length; id++)
2666
2670
  (chunks = response[id]),
2667
2671
  "string" === typeof chunks &&
@@ -2876,24 +2880,31 @@ function parseModelString(response, obj, key, value, reference, arrayRoot) {
2876
2880
  getOutlinedModel(response, arrayRoot, obj, key, null, createSet)
2877
2881
  );
2878
2882
  case "K":
2879
- obj = value.slice(2);
2880
- obj = response._prefix + obj + "_";
2881
- key = new FormData();
2882
- response = response._formData;
2883
- arrayRoot = Array.from(response.keys());
2884
- for (value = 0; value < arrayRoot.length; value++)
2885
- if (((reference = arrayRoot[value]), reference.startsWith(obj))) {
2883
+ key = value.slice(2);
2884
+ obj = response._prefix + "_";
2885
+ key = obj + key + "_";
2886
+ arrayRoot = new FormData();
2887
+ for (response = response._formData; ; ) {
2888
+ value = response.keys;
2889
+ null === value &&
2890
+ ((value = response.keys = Array.from(response.data.keys())),
2891
+ (response.keyPointer = 0));
2892
+ value = value[response.keyPointer];
2893
+ if (void 0 === value) break;
2894
+ if (value.startsWith(key)) {
2895
+ reference = response.data.getAll(value);
2886
2896
  for (
2887
- var entries = response.getAll(reference),
2888
- newKey = reference.slice(obj.length),
2889
- j = 0;
2890
- j < entries.length;
2891
- j++
2897
+ var referencedFormDataKey = value.slice(key.length), i = 0;
2898
+ i < reference.length;
2899
+ i++
2892
2900
  )
2893
- key.append(newKey, entries[j]);
2894
- response.delete(reference);
2895
- }
2896
- return key;
2901
+ arrayRoot.append(referencedFormDataKey, reference[i]);
2902
+ response.data.delete(value);
2903
+ response.keyPointer++;
2904
+ } else if (value.startsWith(obj)) break;
2905
+ else response.keyPointer++;
2906
+ }
2907
+ return arrayRoot;
2897
2908
  case "i":
2898
2909
  return (
2899
2910
  (arrayRoot = value.slice(2)),
@@ -3054,7 +3065,7 @@ function parseModelString(response, obj, key, value, reference, arrayRoot) {
3054
3065
  case "B":
3055
3066
  return (
3056
3067
  (obj = parseInt(value.slice(2), 16)),
3057
- response._formData.get(response._prefix + obj)
3068
+ response._formData.data.get(response._prefix + obj)
3058
3069
  );
3059
3070
  }
3060
3071
  switch (value[1]) {
@@ -3084,7 +3095,7 @@ function createResponse(bundlerConfig, formFieldPrefix, temporaryReferences) {
3084
3095
  return {
3085
3096
  _bundlerConfig: bundlerConfig,
3086
3097
  _prefix: formFieldPrefix,
3087
- _formData: backingFormData,
3098
+ _formData: { data: backingFormData, keyPointer: -1, keys: null },
3088
3099
  _chunks: chunks,
3089
3100
  _temporaryReferences: temporaryReferences,
3090
3101
  _rootArrayContexts: new WeakMap(),
@@ -3092,14 +3103,19 @@ function createResponse(bundlerConfig, formFieldPrefix, temporaryReferences) {
3092
3103
  };
3093
3104
  }
3094
3105
  function resolveField(response, key, value) {
3095
- response._formData.append(key, value);
3096
- var prefix = response._prefix;
3097
- if (key.startsWith(prefix)) {
3098
- var chunks = response._chunks;
3099
- key = +key.slice(prefix.length);
3100
- (chunks = chunks.get(key)) &&
3101
- resolveModelChunk(response, chunks, value, key);
3102
- }
3106
+ var backingStore = response._formData;
3107
+ backingStore.data.append(key, value);
3108
+ var keys = backingStore.keys;
3109
+ null === keys
3110
+ ? ((backingStore.keys = Array.from(backingStore.data.keys())),
3111
+ (backingStore.keyPointer = 0))
3112
+ : keys.push(key);
3113
+ keys = response._prefix;
3114
+ key.startsWith(keys) &&
3115
+ ((backingStore = response._chunks),
3116
+ (key = +key.slice(keys.length)),
3117
+ (backingStore = backingStore.get(key)) &&
3118
+ resolveModelChunk(response, backingStore, value, key));
3103
3119
  }
3104
3120
  function close(response) {
3105
3121
  reportGlobalError(response, Error("Connection closed."));
@@ -3228,6 +3244,43 @@ exports.decodeReply = function (body, webpackMap, options) {
3228
3244
  return webpackMap;
3229
3245
  };
3230
3246
  exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
3247
+ function flush() {
3248
+ for (; null !== head; ) {
3249
+ var current = head;
3250
+ if (!current.complete) return;
3251
+ try {
3252
+ var key = current.name,
3253
+ handle = current.file,
3254
+ blob = new Blob(handle.chunks, { type: handle.mime }),
3255
+ backingStore = response._formData,
3256
+ key$jscomp$0 = key;
3257
+ backingStore.data.append(key$jscomp$0, blob, handle.filename);
3258
+ var keys = backingStore.keys;
3259
+ null === keys
3260
+ ? ((backingStore.keys = Array.from(backingStore.data.keys())),
3261
+ (backingStore.keyPointer = 0))
3262
+ : keys.push(key$jscomp$0);
3263
+ var queuedFields = current.queuedFields;
3264
+ if (null !== queuedFields)
3265
+ for (
3266
+ key$jscomp$0 = 0;
3267
+ key$jscomp$0 < queuedFields.length;
3268
+ key$jscomp$0 += 2
3269
+ )
3270
+ resolveField(
3271
+ response,
3272
+ queuedFields[key$jscomp$0],
3273
+ queuedFields[key$jscomp$0 + 1]
3274
+ );
3275
+ } catch (error) {
3276
+ busboyStream.destroy(error);
3277
+ return;
3278
+ }
3279
+ head = current.next;
3280
+ }
3281
+ tail = null;
3282
+ bodyFinished && !closed && ((closed = !0), close(response));
3283
+ }
3231
3284
  var response = createResponse(
3232
3285
  webpackMap,
3233
3286
  "",
@@ -3235,10 +3288,14 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
3235
3288
  void 0,
3236
3289
  options ? options.arraySizeLimit : void 0
3237
3290
  ),
3238
- pendingFiles = 0,
3239
- queuedFields = [];
3291
+ head = null,
3292
+ tail = null,
3293
+ bodyFinished = !1,
3294
+ closed = !1;
3240
3295
  busboyStream.on("field", function (name, value) {
3241
- if (0 < pendingFiles) queuedFields.push(name, value);
3296
+ if (null !== tail)
3297
+ null === tail.queuedFields && (tail.queuedFields = []),
3298
+ tail.queuedFields.push(name, value);
3242
3299
  else
3243
3300
  try {
3244
3301
  resolveField(response, name, value);
@@ -3256,35 +3313,40 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
3256
3313
  )
3257
3314
  );
3258
3315
  else {
3259
- pendingFiles++;
3260
- var JSCompiler_object_inline_chunks_229 = [];
3316
+ var file = { chunks: [], filename: filename, mime: mimeType },
3317
+ pendingFile = {
3318
+ name: name,
3319
+ file: file,
3320
+ complete: !1,
3321
+ queuedFields: null,
3322
+ next: null
3323
+ };
3324
+ null === tail ? (head = pendingFile) : (tail.next = pendingFile);
3325
+ tail = pendingFile;
3261
3326
  value.on("data", function (chunk) {
3262
- JSCompiler_object_inline_chunks_229.push(chunk);
3263
- });
3264
- value.on("end", function () {
3265
3327
  try {
3266
- var blob = new Blob(JSCompiler_object_inline_chunks_229, {
3267
- type: mimeType
3268
- });
3269
- response._formData.append(name, blob, filename);
3270
- pendingFiles--;
3271
- if (0 === pendingFiles) {
3272
- for (blob = 0; blob < queuedFields.length; blob += 2)
3273
- resolveField(
3274
- response,
3275
- queuedFields[blob],
3276
- queuedFields[blob + 1]
3277
- );
3278
- queuedFields.length = 0;
3279
- }
3328
+ file.chunks.push(chunk);
3280
3329
  } catch (error) {
3281
3330
  busboyStream.destroy(error);
3282
3331
  }
3283
3332
  });
3333
+ value.on("error", function (error) {
3334
+ busboyStream.destroy(error);
3335
+ });
3336
+ value.on("end", function () {
3337
+ pendingFile.complete = !0;
3338
+ flush();
3339
+ });
3284
3340
  }
3285
3341
  });
3286
3342
  busboyStream.on("finish", function () {
3287
- close(response);
3343
+ bodyFinished = !0;
3344
+ flush();
3345
+ closed ||
3346
+ reportGlobalError(
3347
+ response,
3348
+ Error("Reply finished with incomplete file part.")
3349
+ );
3288
3350
  });
3289
3351
  busboyStream.on("error", function (err) {
3290
3352
  reportGlobalError(response, err);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-server-dom-webpack",
3
3
  "description": "React Server Components bindings for DOM using Webpack. This is intended to be integrated into meta-frameworks. It is not intended to be imported directly.",
4
- "version": "19.0.5",
4
+ "version": "19.0.7",
5
5
  "keywords": [
6
6
  "react"
7
7
  ],
@@ -99,8 +99,8 @@
99
99
  "node": ">=0.10.0"
100
100
  },
101
101
  "peerDependencies": {
102
- "react": "^19.0.5",
103
- "react-dom": "^19.0.5",
102
+ "react": "^19.0.7",
103
+ "react-dom": "^19.0.7",
104
104
  "webpack": "^5.59.0"
105
105
  },
106
106
  "dependencies": {