@vitejs/plugin-rsc 0.5.34 → 0.5.36

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.
Files changed (81) hide show
  1. package/README.md +15 -0
  2. package/dist/browser.d.ts +1 -1
  3. package/dist/{cjs-AWVWfddx.js → cjs-DhDj_zQT.js} +2 -2
  4. package/dist/client-Dq3oGLRS.d.ts +8 -0
  5. package/dist/{client-reference-DEZtXTv1.d.ts → client-reference-Bk5pzNGN.d.ts} +1 -1
  6. package/dist/client.node-BEQT2PT-.d.ts +9 -0
  7. package/dist/client.shared-D1HxyClg.js +10 -0
  8. package/dist/client.shared-VT232QCM.d.ts +16 -0
  9. package/dist/core/browser.js +1 -1
  10. package/dist/core/plugin.d.ts +2 -3
  11. package/dist/core/rsc.d.ts +1 -1
  12. package/dist/core/rsc.js +1 -1
  13. package/dist/core/ssr.d.ts +1 -7
  14. package/dist/core/ssr.js +1 -1
  15. package/dist/{index-C5IY2S-e.d.ts → index-CROaL0MT.d.ts} +34 -8
  16. package/dist/index.js +1 -1
  17. package/dist/{picocolors-391UXIDd.js → picocolors-DibqjEBF.js} +1 -1
  18. package/dist/{plugin-Cbs9j6lP.js → plugin-Bqv0ikDW.js} +55 -37
  19. package/dist/plugin.js +1 -1
  20. package/dist/plugins/cjs.d.ts +2 -3
  21. package/dist/plugins/cjs.js +1 -1
  22. package/dist/react/browser.d.ts +10 -10
  23. package/dist/react/rsc/client.d.ts +1 -1
  24. package/dist/react/rsc/client.js +2 -5
  25. package/dist/react/rsc/client.node.d.ts +2 -0
  26. package/dist/react/rsc/client.node.js +16 -0
  27. package/dist/react/rsc/server.d.ts +2 -2
  28. package/dist/react/rsc/server.node.d.ts +3 -0
  29. package/dist/react/rsc/server.node.js +24 -0
  30. package/dist/react/rsc/static.d.ts +4 -5
  31. package/dist/react/rsc/static.node.d.ts +6 -0
  32. package/dist/react/rsc/static.node.js +11 -0
  33. package/dist/react/rsc.d.ts +3 -3
  34. package/dist/react/ssr.d.ts +9 -9
  35. package/dist/react/ssr.node.d.ts +12 -0
  36. package/dist/react/ssr.node.js +21 -0
  37. package/dist/rsc/client.d.ts +1 -1
  38. package/dist/rsc/client.node.d.ts +2 -0
  39. package/dist/rsc/client.node.js +3 -0
  40. package/dist/rsc/server.d.ts +5 -5
  41. package/dist/rsc/server.node.d.ts +19 -0
  42. package/dist/rsc/server.node.js +13 -0
  43. package/dist/rsc/static.d.ts +4 -5
  44. package/dist/rsc/static.node.d.ts +16 -0
  45. package/dist/rsc/static.node.js +12 -0
  46. package/dist/{rsc-C3UdJLOW.d.ts → rsc-D8UlANI2.d.ts} +1 -1
  47. package/dist/rsc.d.ts +3 -3
  48. package/dist/rsc.node.d.ts +6 -0
  49. package/dist/rsc.node.js +7 -0
  50. package/dist/{scope-Bdx33sQv.js → scope-Ck0n25my.js} +2 -4
  51. package/dist/{server-ZBjqNTqU.d.ts → server-YwgjVtsE.d.ts} +2 -2
  52. package/dist/server.node-DU77AeKU.d.ts +15 -0
  53. package/dist/shared-BWJvctW6.js +34 -0
  54. package/dist/shared-DH8gaClP.js +90 -0
  55. package/dist/shared-DJBuYpZL.d.ts +20 -0
  56. package/dist/ssr-C-U7jY5S.d.ts +8 -0
  57. package/dist/ssr.d.ts +3 -21
  58. package/dist/ssr.js +1 -87
  59. package/dist/ssr.node.d.ts +5 -0
  60. package/dist/ssr.node.js +4 -0
  61. package/dist/transforms/index.js +67 -60
  62. package/dist/utils/encryption-runtime.d.ts +3 -4
  63. package/dist/utils/encryption-runtime.js +4 -2
  64. package/dist/utils/rpc.d.ts +3 -4
  65. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.browser.development.js +909 -495
  66. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.browser.production.js +399 -265
  67. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.edge.development.js +901 -477
  68. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.edge.production.js +380 -219
  69. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.node.development.js +925 -484
  70. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.node.production.js +385 -221
  71. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.browser.development.js +726 -388
  72. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.browser.production.js +566 -397
  73. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.edge.development.js +734 -397
  74. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.edge.production.js +477 -238
  75. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.development.js +1029 -620
  76. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.production.js +481 -261
  77. package/dist/vendor/react-server-dom/esm/react-server-dom-webpack-node-loader.production.js +2 -2
  78. package/dist/vendor/react-server-dom/package.json +3 -3
  79. package/package.json +16 -16
  80. package/dist/client-Bhch3O41.d.ts +0 -19
  81. package/dist/dist-uqdtSkzK.js +0 -64
@@ -124,7 +124,12 @@ function prepareDestinationWithChunks(moduleLoading, chunks, nonce$jscomp$0) {
124
124
  JSCompiler_temp_const$jscomp$0.call(
125
125
  JSCompiler_temp_const,
126
126
  JSCompiler_temp_const$jscomp$1,
127
- { crossOrigin: JSCompiler_inline_result, nonce: nonce }
127
+ {
128
+ crossOrigin: JSCompiler_inline_result,
129
+ integrity: void 0,
130
+ fetchPriority: void 0,
131
+ nonce: nonce
132
+ }
128
133
  );
129
134
  }
130
135
  }
@@ -143,7 +148,7 @@ function getIteratorFn(maybeIterable) {
143
148
  var ASYNC_ITERATOR = Symbol.asyncIterator,
144
149
  isArrayImpl = Array.isArray,
145
150
  getPrototypeOf = Object.getPrototypeOf,
146
- ObjectPrototype = Object.prototype,
151
+ ObjectPrototype$1 = Object.prototype,
147
152
  knownServerReferences = new WeakMap();
148
153
  function serializeNumber(number) {
149
154
  return Number.isFinite(number)
@@ -160,9 +165,36 @@ function processReply(
160
165
  root,
161
166
  formFieldPrefix,
162
167
  temporaryReferences,
163
- resolve,
164
- reject
168
+ onResolve,
169
+ onReject,
170
+ signal
165
171
  ) {
172
+ function endReplyLifetime() {
173
+ null !== replyLifetimeController &&
174
+ replyLifetimeController.abort("The reply ended.");
175
+ }
176
+ function resolve(value) {
177
+ settled = !0;
178
+ endReplyLifetime();
179
+ onResolve(value);
180
+ }
181
+ function reject(error) {
182
+ settled = !0;
183
+ endReplyLifetime();
184
+ onReject(error);
185
+ }
186
+ function attachAbortSignal(abortSignal) {
187
+ abortSignal.aborted
188
+ ? abort()
189
+ : ((replyLifetimeController = new AbortController()),
190
+ abortSignal.addEventListener(
191
+ "abort",
192
+ function () {
193
+ abort();
194
+ },
195
+ { signal: replyLifetimeController.signal }
196
+ ));
197
+ }
166
198
  function serializeTypedArray(tag, typedArray) {
167
199
  typedArray = new Blob([
168
200
  new Uint8Array(
@@ -274,6 +306,8 @@ function processReply(
274
306
  "$T"
275
307
  );
276
308
  }
309
+ if (void 0 !== temporaryReferences && modelRoot === value)
310
+ return (modelRoot = null), "$T";
277
311
  throw Error(
278
312
  "React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options."
279
313
  );
@@ -435,7 +469,7 @@ function processReply(
435
469
  return serializeAsyncIterable(value, key.call(value));
436
470
  key = getPrototypeOf(value);
437
471
  if (
438
- key !== ObjectPrototype &&
472
+ key !== ObjectPrototype$1 &&
439
473
  (null === key || null !== getPrototypeOf(key))
440
474
  ) {
441
475
  if (void 0 === temporaryReferences)
@@ -514,21 +548,25 @@ function processReply(
514
548
  modelRoot = model;
515
549
  return JSON.stringify(model, resolveToJSON);
516
550
  }
551
+ function abort() {
552
+ endReplyLifetime();
553
+ 0 < pendingParts &&
554
+ ((pendingParts = 0),
555
+ null === formData ? resolve(json) : resolve(formData));
556
+ }
517
557
  var nextPartId = 1,
518
558
  pendingParts = 0,
519
559
  formData = null,
520
560
  writtenObjects = new WeakMap(),
521
561
  modelRoot = root,
562
+ settled = !1,
563
+ replyLifetimeController = null,
522
564
  json = serializeModel(root, 0);
523
565
  null === formData
524
566
  ? resolve(json)
525
567
  : (formData.set(formFieldPrefix + "0", json),
526
568
  0 === pendingParts && resolve(formData));
527
- return function () {
528
- 0 < pendingParts &&
529
- ((pendingParts = 0),
530
- null === formData ? resolve(json) : resolve(formData));
531
- };
569
+ void 0 === signal || settled || attachAbortSignal(signal);
532
570
  }
533
571
  var boundCache = new WeakMap();
534
572
  function encodeFormData(reference) {
@@ -703,37 +741,46 @@ function createServerReference$1(id, callServer, encodeFormAction) {
703
741
  registerBoundServerReference(action, id, null, encodeFormAction);
704
742
  return action;
705
743
  }
744
+ var ObjectPrototype = Object.prototype,
745
+ ArrayPrototype = Array.prototype;
706
746
  function ReactPromise(status, value, reason) {
707
747
  this.status = status;
708
748
  this.value = value;
709
749
  this.reason = reason;
710
750
  }
711
751
  ReactPromise.prototype = Object.create(Promise.prototype);
712
- ReactPromise.prototype.then = function (resolve, reject) {
713
- switch (this.status) {
714
- case "resolved_model":
715
- initializeModelChunk(this);
716
- break;
717
- case "resolved_module":
718
- initializeModuleChunk(this);
719
- }
720
- switch (this.status) {
721
- case "fulfilled":
722
- "function" === typeof resolve && resolve(this.value);
723
- break;
724
- case "pending":
725
- case "blocked":
726
- "function" === typeof resolve &&
727
- (null === this.value && (this.value = []), this.value.push(resolve));
728
- "function" === typeof reject &&
729
- (null === this.reason && (this.reason = []), this.reason.push(reject));
730
- break;
731
- case "halted":
732
- break;
733
- default:
734
- "function" === typeof reject && reject(this.reason);
752
+ Object.defineProperty(ReactPromise.prototype, "then", {
753
+ writable: !0,
754
+ enumerable: !0,
755
+ configurable: !0,
756
+ value: function (resolve, reject) {
757
+ switch (this.status) {
758
+ case "resolved_model":
759
+ initializeModelChunk(this);
760
+ break;
761
+ case "resolved_module":
762
+ initializeModuleChunk(this);
763
+ }
764
+ switch (this.status) {
765
+ case "fulfilled":
766
+ "function" === typeof resolve && resolve(this.value);
767
+ break;
768
+ case "pending":
769
+ case "pending_weak":
770
+ case "blocked":
771
+ "function" === typeof resolve &&
772
+ (null === this.value && (this.value = []), this.value.push(resolve));
773
+ "function" === typeof reject &&
774
+ (null === this.reason && (this.reason = []),
775
+ this.reason.push(reject));
776
+ break;
777
+ case "halted":
778
+ break;
779
+ default:
780
+ "function" === typeof reject && reject(this.reason);
781
+ }
735
782
  }
736
- };
783
+ });
737
784
  function readChunk(chunk) {
738
785
  switch (chunk.status) {
739
786
  case "resolved_model":
@@ -746,6 +793,7 @@ function readChunk(chunk) {
746
793
  case "fulfilled":
747
794
  return chunk.value;
748
795
  case "pending":
796
+ case "pending_weak":
749
797
  case "blocked":
750
798
  case "halted":
751
799
  throw chunk;
@@ -753,20 +801,20 @@ function readChunk(chunk) {
753
801
  throw chunk.reason;
754
802
  }
755
803
  }
756
- function wakeChunk(listeners, value, chunk) {
804
+ function wakeChunk(response, listeners, value, chunk) {
757
805
  for (var i = 0; i < listeners.length; i++) {
758
806
  var listener = listeners[i];
759
807
  "function" === typeof listener
760
808
  ? listener(value)
761
- : fulfillReference(listener, value, chunk);
809
+ : fulfillReference(response, listener, value, chunk);
762
810
  }
763
811
  }
764
- function rejectChunk(listeners, error) {
812
+ function rejectChunk(response, listeners, error) {
765
813
  for (var i = 0; i < listeners.length; i++) {
766
814
  var listener = listeners[i];
767
815
  "function" === typeof listener
768
816
  ? listener(error)
769
- : rejectReference(listener, error);
817
+ : rejectReference(response, listener.handler, error);
770
818
  }
771
819
  }
772
820
  function resolveBlockedCycle(resolvedChunk, reference) {
@@ -790,10 +838,15 @@ function resolveBlockedCycle(resolvedChunk, reference) {
790
838
  }
791
839
  return null;
792
840
  }
793
- function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
841
+ function wakeChunkIfInitialized(
842
+ response,
843
+ chunk,
844
+ resolveListeners,
845
+ rejectListeners
846
+ ) {
794
847
  switch (chunk.status) {
795
848
  case "fulfilled":
796
- wakeChunk(resolveListeners, chunk.value, chunk);
849
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
797
850
  break;
798
851
  case "blocked":
799
852
  for (var i = 0; i < resolveListeners.length; i++) {
@@ -802,7 +855,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
802
855
  var cyclicHandler = resolveBlockedCycle(chunk, listener);
803
856
  if (null !== cyclicHandler)
804
857
  switch (
805
- (fulfillReference(listener, cyclicHandler.value, chunk),
858
+ (fulfillReference(response, listener, cyclicHandler.value, chunk),
806
859
  resolveListeners.splice(i, 1),
807
860
  i--,
808
861
  null !== rejectListeners &&
@@ -811,19 +864,19 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
811
864
  chunk.status)
812
865
  ) {
813
866
  case "fulfilled":
814
- wakeChunk(resolveListeners, chunk.value, chunk);
867
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
815
868
  return;
816
869
  case "rejected":
817
870
  null !== rejectListeners &&
818
- rejectChunk(rejectListeners, chunk.reason);
871
+ rejectChunk(response, rejectListeners, chunk.reason);
819
872
  return;
820
873
  }
821
874
  }
822
875
  }
823
876
  case "pending":
824
877
  if (chunk.value)
825
- for (i = 0; i < resolveListeners.length; i++)
826
- chunk.value.push(resolveListeners[i]);
878
+ for (response = 0; response < resolveListeners.length; response++)
879
+ chunk.value.push(resolveListeners[response]);
827
880
  else chunk.value = resolveListeners;
828
881
  if (chunk.reason) {
829
882
  if (rejectListeners)
@@ -836,16 +889,22 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
836
889
  } else chunk.reason = rejectListeners;
837
890
  break;
838
891
  case "rejected":
839
- rejectListeners && rejectChunk(rejectListeners, chunk.reason);
892
+ rejectListeners && rejectChunk(response, rejectListeners, chunk.reason);
840
893
  }
841
894
  }
842
895
  function triggerErrorOnChunk(response, chunk, error) {
843
- "pending" !== chunk.status && "blocked" !== chunk.status
844
- ? chunk.reason.error(error)
845
- : ((response = chunk.reason),
846
- (chunk.status = "rejected"),
847
- (chunk.reason = error),
848
- null !== response && rejectChunk(response, error));
896
+ if (
897
+ "pending" !== chunk.status &&
898
+ "pending_weak" !== chunk.status &&
899
+ "blocked" !== chunk.status
900
+ )
901
+ chunk.reason.error(error);
902
+ else {
903
+ var listeners = chunk.reason;
904
+ chunk.status = "rejected";
905
+ chunk.reason = error;
906
+ null !== listeners && rejectChunk(response, listeners, error);
907
+ }
849
908
  }
850
909
  function createResolvedIteratorResultChunk(response, value, done) {
851
910
  return new ReactPromise(
@@ -862,7 +921,8 @@ function resolveIteratorResultChunk(response, chunk, value, done) {
862
921
  );
863
922
  }
864
923
  function resolveModelChunk(response, chunk, value) {
865
- if ("pending" !== chunk.status) chunk.reason.enqueueModel(value);
924
+ if ("pending" !== chunk.status && "pending_weak" !== chunk.status)
925
+ chunk.reason.enqueueModel(value);
866
926
  else {
867
927
  var resolveListeners = chunk.value,
868
928
  rejectListeners = chunk.reason;
@@ -871,19 +931,33 @@ function resolveModelChunk(response, chunk, value) {
871
931
  chunk.reason = response;
872
932
  null !== resolveListeners &&
873
933
  (initializeModelChunk(chunk),
874
- wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));
934
+ wakeChunkIfInitialized(
935
+ response,
936
+ chunk,
937
+ resolveListeners,
938
+ rejectListeners
939
+ ));
875
940
  }
876
941
  }
877
942
  function resolveModuleChunk(response, chunk, value) {
878
- if ("pending" === chunk.status || "blocked" === chunk.status) {
879
- response = chunk.value;
880
- var rejectListeners = chunk.reason;
943
+ if (
944
+ "pending" === chunk.status ||
945
+ "pending_weak" === chunk.status ||
946
+ "blocked" === chunk.status
947
+ ) {
948
+ var resolveListeners = chunk.value,
949
+ rejectListeners = chunk.reason;
881
950
  chunk.status = "resolved_module";
882
951
  chunk.value = value;
883
952
  chunk.reason = null;
884
- null !== response &&
953
+ null !== resolveListeners &&
885
954
  (initializeModuleChunk(chunk),
886
- wakeChunkIfInitialized(chunk, response, rejectListeners));
955
+ wakeChunkIfInitialized(
956
+ response,
957
+ chunk,
958
+ resolveListeners,
959
+ rejectListeners
960
+ ));
887
961
  }
888
962
  }
889
963
  var initializingHandler = null;
@@ -896,29 +970,51 @@ function initializeModelChunk(chunk) {
896
970
  chunk.value = null;
897
971
  chunk.reason = null;
898
972
  try {
899
- var value = JSON.parse(resolvedModel, response._fromJSON),
900
- resolveListeners = chunk.value;
901
- if (null !== resolveListeners)
973
+ var value = parseModel(response, resolvedModel);
974
+ resolvedModel = initializingHandler;
975
+ if (null !== resolvedModel) {
976
+ if (resolvedModel.errored) {
977
+ "blocked" === chunk.status &&
978
+ triggerErrorOnChunk(response, chunk, resolvedModel.reason);
979
+ return;
980
+ }
981
+ resolvedModel.value = value;
982
+ resolvedModel.chunk = chunk;
983
+ }
984
+ var listeners = chunk.value,
985
+ rejectListeners = chunk.reason;
986
+ chunk.value = null;
987
+ chunk.reason = null;
988
+ if (null !== listeners) {
902
989
  for (
903
- chunk.value = null, chunk.reason = null, resolvedModel = 0;
904
- resolvedModel < resolveListeners.length;
905
- resolvedModel++
990
+ var cyclic = null, deferred = null, i = 0;
991
+ i < listeners.length;
992
+ i++
906
993
  ) {
907
- var listener = resolveListeners[resolvedModel];
908
- "function" === typeof listener
909
- ? listener(value)
910
- : fulfillReference(listener, value, chunk);
911
- }
912
- if (null !== initializingHandler) {
913
- if (initializingHandler.errored) throw initializingHandler.reason;
914
- if (0 < initializingHandler.deps) {
915
- initializingHandler.value = value;
916
- initializingHandler.chunk = chunk;
917
- return;
994
+ var listener = listeners[i];
995
+ if (
996
+ "function" !== typeof listener &&
997
+ null !== resolveBlockedCycle(chunk, listener)
998
+ ) {
999
+ if (
1000
+ (null === cyclic && (cyclic = []),
1001
+ cyclic.push(listener),
1002
+ null !== rejectListeners)
1003
+ ) {
1004
+ var rejectionIdx = rejectListeners.indexOf(listener);
1005
+ -1 !== rejectionIdx && rejectListeners.splice(rejectionIdx, 1);
1006
+ }
1007
+ } else null === deferred && (deferred = []), deferred.push(listener);
918
1008
  }
1009
+ null !== deferred &&
1010
+ ((chunk.value = deferred), (chunk.reason = rejectListeners));
1011
+ if (null !== cyclic)
1012
+ for (listeners = 0; listeners < cyclic.length; listeners++)
1013
+ fulfillReference(response, cyclic[listeners], value, chunk);
919
1014
  }
920
- chunk.status = "fulfilled";
921
- chunk.value = value;
1015
+ "blocked" !== chunk.status ||
1016
+ (null !== resolvedModel && 0 < resolvedModel.deps) ||
1017
+ initializeBlockedChunk(response, chunk, value, null);
922
1018
  } catch (error) {
923
1019
  (chunk.status = "rejected"), (chunk.reason = error);
924
1020
  } finally {
@@ -930,6 +1026,7 @@ function initializeModuleChunk(chunk) {
930
1026
  var value = requireModule(chunk.value);
931
1027
  chunk.status = "fulfilled";
932
1028
  chunk.value = value;
1029
+ chunk.reason = null;
933
1030
  } catch (error) {
934
1031
  (chunk.status = "rejected"), (chunk.reason = error);
935
1032
  }
@@ -953,14 +1050,31 @@ function getChunk(response, id) {
953
1050
  chunk = chunks.get(id);
954
1051
  chunk ||
955
1052
  ((chunk = response._closed
956
- ? new ReactPromise("rejected", null, response._closedReason)
1053
+ ? response._allowPartialStream
1054
+ ? new ReactPromise("halted", null, null)
1055
+ : new ReactPromise("rejected", null, response._closedReason)
957
1056
  : new ReactPromise("pending", null, null)),
958
1057
  chunks.set(id, chunk));
959
1058
  return chunk;
960
1059
  }
961
- function fulfillReference(reference, value) {
962
- var response = reference.response,
963
- handler = reference.handler,
1060
+ function initializeBlockedChunk(response, chunk, value, reason) {
1061
+ var resolveListeners = chunk.value;
1062
+ chunk.status = "fulfilled";
1063
+ chunk.value = value;
1064
+ chunk.reason = reason;
1065
+ null !== resolveListeners &&
1066
+ wakeChunk(response, resolveListeners, value, chunk);
1067
+ }
1068
+ function initializeChunkIfUnblocked(response, handler) {
1069
+ if (0 === handler.deps && !handler.errored) {
1070
+ var chunk = handler.chunk;
1071
+ null !== chunk &&
1072
+ "blocked" === chunk.status &&
1073
+ initializeBlockedChunk(response, chunk, handler.value, handler.reason);
1074
+ }
1075
+ }
1076
+ function fulfillReference(response, reference, value) {
1077
+ var handler = reference.handler,
964
1078
  parentObject = reference.parentObject,
965
1079
  key = reference.key,
966
1080
  map = reference.map,
@@ -998,6 +1112,7 @@ function fulfillReference(reference, value) {
998
1112
  continue;
999
1113
  }
1000
1114
  case "pending":
1115
+ case "pending_weak":
1001
1116
  path.splice(0, i - 1);
1002
1117
  null === referencedChunk.value
1003
1118
  ? (referencedChunk.value = [reference])
@@ -1009,7 +1124,11 @@ function fulfillReference(reference, value) {
1009
1124
  case "halted":
1010
1125
  return;
1011
1126
  default:
1012
- rejectReference(reference, referencedChunk.reason);
1127
+ rejectReference(
1128
+ response,
1129
+ reference.handler,
1130
+ referencedChunk.reason
1131
+ );
1013
1132
  return;
1014
1133
  }
1015
1134
  }
@@ -1030,19 +1149,19 @@ function fulfillReference(reference, value) {
1030
1149
  value.$$typeof === REACT_LAZY_TYPE;
1031
1150
 
1032
1151
  ) {
1033
- var referencedChunk$44 = value._payload;
1034
- if (referencedChunk$44 === handler.chunk) value = handler.value;
1152
+ var referencedChunk$45 = value._payload;
1153
+ if (referencedChunk$45 === handler.chunk) value = handler.value;
1035
1154
  else {
1036
- switch (referencedChunk$44.status) {
1155
+ switch (referencedChunk$45.status) {
1037
1156
  case "resolved_model":
1038
- initializeModelChunk(referencedChunk$44);
1157
+ initializeModelChunk(referencedChunk$45);
1039
1158
  break;
1040
1159
  case "resolved_module":
1041
- initializeModuleChunk(referencedChunk$44);
1160
+ initializeModuleChunk(referencedChunk$45);
1042
1161
  }
1043
- switch (referencedChunk$44.status) {
1162
+ switch (referencedChunk$45.status) {
1044
1163
  case "fulfilled":
1045
- value = referencedChunk$44.value;
1164
+ value = referencedChunk$45.value;
1046
1165
  continue;
1047
1166
  }
1048
1167
  break;
@@ -1064,23 +1183,13 @@ function fulfillReference(reference, value) {
1064
1183
  }
1065
1184
  }
1066
1185
  } catch (error) {
1067
- rejectReference(reference, error);
1186
+ rejectReference(response, reference.handler, error);
1068
1187
  return;
1069
1188
  }
1070
1189
  handler.deps--;
1071
- 0 === handler.deps &&
1072
- ((reference = handler.chunk),
1073
- null !== reference &&
1074
- "blocked" === reference.status &&
1075
- ((value = reference.value),
1076
- (reference.status = "fulfilled"),
1077
- (reference.value = handler.value),
1078
- (reference.reason = handler.reason),
1079
- null !== value && wakeChunk(value, handler.value, reference)));
1080
- }
1081
- function rejectReference(reference, error) {
1082
- var handler = reference.handler;
1083
- reference = reference.response;
1190
+ initializeChunkIfUnblocked(response, handler);
1191
+ }
1192
+ function rejectReference(response, handler, error) {
1084
1193
  handler.errored ||
1085
1194
  ((handler.errored = !0),
1086
1195
  (handler.value = null),
@@ -1088,7 +1197,7 @@ function rejectReference(reference, error) {
1088
1197
  (handler = handler.chunk),
1089
1198
  null !== handler &&
1090
1199
  "blocked" === handler.status &&
1091
- triggerErrorOnChunk(reference, handler, error));
1200
+ triggerErrorOnChunk(response, handler, error));
1092
1201
  }
1093
1202
  function waitForReference(
1094
1203
  referencedChunk,
@@ -1098,21 +1207,19 @@ function waitForReference(
1098
1207
  map,
1099
1208
  path
1100
1209
  ) {
1101
- if (initializingHandler) {
1102
- var handler = initializingHandler;
1103
- handler.deps++;
1104
- } else
1105
- handler = initializingHandler = {
1106
- parent: null,
1107
- chunk: null,
1108
- value: null,
1109
- reason: null,
1110
- deps: 1,
1111
- errored: !1
1112
- };
1210
+ initializingHandler
1211
+ ? ((response = initializingHandler), response.deps++)
1212
+ : (response = initializingHandler =
1213
+ {
1214
+ parent: null,
1215
+ chunk: null,
1216
+ value: null,
1217
+ reason: null,
1218
+ deps: 1,
1219
+ errored: !1
1220
+ });
1113
1221
  parentObject = {
1114
- response: response,
1115
- handler: handler,
1222
+ handler: response,
1116
1223
  parentObject: parentObject,
1117
1224
  key: key,
1118
1225
  map: map,
@@ -1191,34 +1298,28 @@ function loadServerReference(response, metaData, parentObject, key) {
1191
1298
  boundArgs.props = resolvedValue;
1192
1299
  }
1193
1300
  handler.deps--;
1194
- 0 === handler.deps &&
1195
- ((resolvedValue = handler.chunk),
1196
- null !== resolvedValue &&
1197
- "blocked" === resolvedValue.status &&
1198
- ((boundArgs = resolvedValue.value),
1199
- (resolvedValue.status = "fulfilled"),
1200
- (resolvedValue.value = handler.value),
1201
- (resolvedValue.reason = null),
1202
- null !== boundArgs &&
1203
- wakeChunk(boundArgs, handler.value, resolvedValue)));
1301
+ initializeChunkIfUnblocked(response, handler);
1204
1302
  },
1205
1303
  function (error) {
1206
1304
  if (!handler.errored) {
1207
- handler.errored = !0;
1208
- handler.value = null;
1209
- handler.reason = error;
1210
- var chunk = handler.chunk;
1211
- null !== chunk &&
1212
- "blocked" === chunk.status &&
1213
- triggerErrorOnChunk(response, chunk, error);
1305
+ var erroredHandler = handler;
1306
+ erroredHandler.errored = !0;
1307
+ erroredHandler.value = null;
1308
+ erroredHandler.reason = error;
1309
+ erroredHandler = handler.chunk;
1310
+ null !== erroredHandler &&
1311
+ "blocked" === erroredHandler.status &&
1312
+ triggerErrorOnChunk(response, erroredHandler, error);
1214
1313
  }
1215
1314
  }
1216
1315
  );
1217
1316
  return null;
1218
1317
  }
1318
+ var EMPTY_REFERENCE_PATH = [];
1219
1319
  function getOutlinedModel(response, reference, parentObject, key, map) {
1220
- reference = reference.split(":");
1221
- var id = parseInt(reference[0], 16);
1320
+ var id = parseInt(reference, 16);
1321
+ reference =
1322
+ -1 === reference.indexOf(":") ? EMPTY_REFERENCE_PATH : reference.split(":");
1222
1323
  id = getChunk(response, id);
1223
1324
  switch (id.status) {
1224
1325
  case "resolved_model":
@@ -1252,6 +1353,7 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
1252
1353
  break;
1253
1354
  case "blocked":
1254
1355
  case "pending":
1356
+ case "pending_weak":
1255
1357
  return waitForReference(
1256
1358
  id,
1257
1359
  parentObject,
@@ -1277,9 +1379,10 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
1277
1379
  default:
1278
1380
  return (
1279
1381
  initializingHandler
1280
- ? ((initializingHandler.errored = !0),
1281
- (initializingHandler.value = null),
1282
- (initializingHandler.reason = id.reason))
1382
+ ? ((response = initializingHandler),
1383
+ (response.errored = !0),
1384
+ (response.value = null),
1385
+ (response.reason = id.reason))
1283
1386
  : (initializingHandler = {
1284
1387
  parent: null,
1285
1388
  chunk: null,
@@ -1292,7 +1395,16 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
1292
1395
  );
1293
1396
  }
1294
1397
  }
1295
- id = id[reference[i]];
1398
+ var name = reference[i];
1399
+ if (
1400
+ "object" !== typeof id ||
1401
+ null === id ||
1402
+ (getPrototypeOf(id) !== ObjectPrototype &&
1403
+ getPrototypeOf(id) !== ArrayPrototype) ||
1404
+ !hasOwnProperty.call(id, name)
1405
+ )
1406
+ throw Error("Invalid reference.");
1407
+ id = id[name];
1296
1408
  }
1297
1409
  for (
1298
1410
  ;
@@ -1318,6 +1430,7 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
1318
1430
  }
1319
1431
  return map(response, id, parentObject, key);
1320
1432
  case "pending":
1433
+ case "pending_weak":
1321
1434
  case "blocked":
1322
1435
  return waitForReference(id, parentObject, key, response, map, reference);
1323
1436
  case "halted":
@@ -1337,9 +1450,10 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
1337
1450
  default:
1338
1451
  return (
1339
1452
  initializingHandler
1340
- ? ((initializingHandler.errored = !0),
1341
- (initializingHandler.value = null),
1342
- (initializingHandler.reason = id.reason))
1453
+ ? ((response = initializingHandler),
1454
+ (response.errored = !0),
1455
+ (response.value = null),
1456
+ (response.reason = id.reason))
1343
1457
  : (initializingHandler = {
1344
1458
  parent: null,
1345
1459
  chunk: null,
@@ -1403,6 +1517,8 @@ function parseModelString(response, parentObject, key, value) {
1403
1517
  (parentObject = parseInt(value.slice(2), 16)),
1404
1518
  getChunk(response, parentObject)
1405
1519
  );
1520
+ case "w":
1521
+ return;
1406
1522
  case "S":
1407
1523
  return Symbol.for(value.slice(2));
1408
1524
  case "h":
@@ -1484,7 +1600,8 @@ function ResponseInstance(
1484
1600
  callServer,
1485
1601
  encodeFormAction,
1486
1602
  nonce,
1487
- temporaryReferences
1603
+ temporaryReferences,
1604
+ allowPartialStream
1488
1605
  ) {
1489
1606
  var chunks = new Map();
1490
1607
  this._bundlerConfig = bundlerConfig;
@@ -1495,11 +1612,10 @@ function ResponseInstance(
1495
1612
  this._nonce = nonce;
1496
1613
  this._chunks = chunks;
1497
1614
  this._stringDecoder = new util.TextDecoder();
1498
- this._fromJSON = null;
1499
1615
  this._closed = !1;
1500
1616
  this._closedReason = null;
1617
+ this._allowPartialStream = allowPartialStream;
1501
1618
  this._tempRefs = temporaryReferences;
1502
- this._fromJSON = createFromJSONCallback(this);
1503
1619
  }
1504
1620
  function createStreamState() {
1505
1621
  return { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] };
@@ -1514,12 +1630,25 @@ function resolveBuffer(response, id, buffer) {
1514
1630
  }
1515
1631
  function resolveModule(response, id, model) {
1516
1632
  var chunks = response._chunks,
1517
- chunk = chunks.get(id);
1518
- model = JSON.parse(model, response._fromJSON);
1519
- var clientReference = resolveClientReference(response._bundlerConfig, model);
1633
+ chunk = chunks.get(id),
1634
+ prevHandler = initializingHandler;
1635
+ initializingHandler = null;
1636
+ try {
1637
+ var clientReferenceMetadata = parseModel(response, model);
1638
+ if (null !== initializingHandler)
1639
+ throw Error(
1640
+ "A client reference was blocked on a row that has not been received yet. This is a bug in React."
1641
+ );
1642
+ } finally {
1643
+ initializingHandler = prevHandler;
1644
+ }
1645
+ var clientReference = resolveClientReference(
1646
+ response._bundlerConfig,
1647
+ clientReferenceMetadata
1648
+ );
1520
1649
  prepareDestinationWithChunks(
1521
1650
  response._moduleLoading,
1522
- model[1],
1651
+ clientReferenceMetadata[1],
1523
1652
  response._nonce
1524
1653
  );
1525
1654
  if ((model = preloadModule(clientReference))) {
@@ -1544,17 +1673,17 @@ function resolveModule(response, id, model) {
1544
1673
  chunks.set(id, chunk));
1545
1674
  }
1546
1675
  function resolveStream(response, id, stream, controller) {
1547
- response = response._chunks;
1548
- var chunk = response.get(id);
1676
+ var chunks = response._chunks,
1677
+ chunk = chunks.get(id);
1549
1678
  chunk
1550
1679
  ? "pending" === chunk.status &&
1551
1680
  ((id = chunk.value),
1552
1681
  (chunk.status = "fulfilled"),
1553
1682
  (chunk.value = stream),
1554
1683
  (chunk.reason = controller),
1555
- null !== id && wakeChunk(id, chunk.value, chunk))
1556
- : ((stream = new ReactPromise("fulfilled", stream, controller)),
1557
- response.set(id, stream));
1684
+ null !== id && wakeChunk(response, id, chunk.value, chunk))
1685
+ : ((response = new ReactPromise("fulfilled", stream, controller)),
1686
+ chunks.set(id, response));
1558
1687
  }
1559
1688
  function startReadableStream(response, id, type) {
1560
1689
  var controller = null,
@@ -1591,8 +1720,8 @@ function startReadableStream(response, id, type) {
1591
1720
  (previousBlockedChunk = chunk));
1592
1721
  } else {
1593
1722
  chunk = previousBlockedChunk;
1594
- var chunk$55 = new ReactPromise("pending", null, null);
1595
- chunk$55.then(
1723
+ var chunk$57 = new ReactPromise("pending", null, null);
1724
+ chunk$57.then(
1596
1725
  function (v) {
1597
1726
  return controller.enqueue(v);
1598
1727
  },
@@ -1600,10 +1729,10 @@ function startReadableStream(response, id, type) {
1600
1729
  return controller.error(e);
1601
1730
  }
1602
1731
  );
1603
- previousBlockedChunk = chunk$55;
1732
+ previousBlockedChunk = chunk$57;
1604
1733
  chunk.then(function () {
1605
- previousBlockedChunk === chunk$55 && (previousBlockedChunk = null);
1606
- resolveModelChunk(response, chunk$55, json);
1734
+ previousBlockedChunk === chunk$57 && (previousBlockedChunk = null);
1735
+ resolveModelChunk(response, chunk$57, json);
1607
1736
  });
1608
1737
  }
1609
1738
  },
@@ -1684,7 +1813,12 @@ function startAsyncIterable(response, id, iterator) {
1684
1813
  chunk.value = { done: !1, value: value };
1685
1814
  chunk.reason = null;
1686
1815
  null !== resolveListeners &&
1687
- wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);
1816
+ wakeChunkIfInitialized(
1817
+ response,
1818
+ chunk,
1819
+ resolveListeners,
1820
+ rejectListeners
1821
+ );
1688
1822
  }
1689
1823
  nextWriteIndex++;
1690
1824
  },
@@ -1759,8 +1893,8 @@ function mergeBuffer(buffer, lastChunk) {
1759
1893
  for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)
1760
1894
  byteLength += buffer[i].byteLength;
1761
1895
  byteLength = new Uint8Array(byteLength);
1762
- for (var i$56 = (i = 0); i$56 < l; i$56++) {
1763
- var chunk = buffer[i$56];
1896
+ for (var i$58 = (i = 0); i$58 < l; i$58++) {
1897
+ var chunk = buffer[i$58];
1764
1898
  byteLength.set(chunk, i);
1765
1899
  i += chunk.byteLength;
1766
1900
  }
@@ -1849,7 +1983,7 @@ function processFullStringRow(response, streamState, id, tag, row) {
1849
1983
  case 72:
1850
1984
  id = row[0];
1851
1985
  row = row.slice(1);
1852
- response = JSON.parse(row, response._fromJSON);
1986
+ response = parseModel(response, row);
1853
1987
  row = ReactDOMSharedInternals.d;
1854
1988
  switch (id) {
1855
1989
  case "D":
@@ -1969,6 +2103,7 @@ function processBinaryChunk(weakResponse, streamState, chunk) {
1969
2103
  65 === rowState ||
1970
2104
  79 === rowState ||
1971
2105
  111 === rowState ||
2106
+ 98 === rowState ||
1972
2107
  85 === rowState ||
1973
2108
  83 === rowState ||
1974
2109
  115 === rowState ||
@@ -2003,22 +2138,30 @@ function processBinaryChunk(weakResponse, streamState, chunk) {
2003
2138
  var offset = chunk.byteOffset + i;
2004
2139
  if (-1 < lastIdx)
2005
2140
  (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)),
2006
- processFullBinaryRow(
2007
- weakResponse,
2008
- streamState,
2009
- rowID,
2010
- rowTag,
2011
- buffer,
2012
- rowLength
2013
- ),
2141
+ 98 === rowTag
2142
+ ? resolveBuffer(
2143
+ weakResponse,
2144
+ rowID,
2145
+ lastIdx === chunkLength ? rowLength : rowLength.slice()
2146
+ )
2147
+ : processFullBinaryRow(
2148
+ weakResponse,
2149
+ streamState,
2150
+ rowID,
2151
+ rowTag,
2152
+ buffer,
2153
+ rowLength
2154
+ ),
2014
2155
  (i = lastIdx),
2015
2156
  3 === rowState && i++,
2016
2157
  (rowLength = rowID = rowTag = rowState = 0),
2017
2158
  (buffer.length = 0);
2018
2159
  else {
2019
- weakResponse = new Uint8Array(chunk.buffer, offset, chunk.byteLength - i);
2020
- buffer.push(weakResponse);
2021
- rowLength -= weakResponse.byteLength;
2160
+ chunk = new Uint8Array(chunk.buffer, offset, chunk.byteLength - i);
2161
+ 98 === rowTag
2162
+ ? ((rowLength -= chunk.byteLength),
2163
+ resolveBuffer(weakResponse, rowID, chunk))
2164
+ : (buffer.push(chunk), (rowLength -= chunk.byteLength));
2022
2165
  break;
2023
2166
  }
2024
2167
  }
@@ -2027,45 +2170,70 @@ function processBinaryChunk(weakResponse, streamState, chunk) {
2027
2170
  streamState._rowTag = rowTag;
2028
2171
  streamState._rowLength = rowLength;
2029
2172
  }
2030
- function createFromJSONCallback(response) {
2031
- return function (key, value) {
2032
- if ("__proto__" !== key) {
2033
- if ("string" === typeof value)
2034
- return parseModelString(response, this, key, value);
2035
- if ("object" === typeof value && null !== value) {
2036
- if (value[0] === REACT_ELEMENT_TYPE) {
2037
- if (
2038
- ((key = {
2173
+ function parseModel(response, json) {
2174
+ json = JSON.parse(json);
2175
+ return reviveModel(response, json, { "": json }, "");
2176
+ }
2177
+ function reviveModel(response, value, parentObject, key) {
2178
+ if ("string" === typeof value)
2179
+ return "$" === value[0]
2180
+ ? parseModelString(response, parentObject, key, value)
2181
+ : value;
2182
+ if ("object" !== typeof value || null === value) return value;
2183
+ if (isArrayImpl(value)) {
2184
+ for (var i = 0; i < value.length; i++)
2185
+ value[i] = reviveModel(response, value[i], value, "" + i);
2186
+ return value[0] === REACT_ELEMENT_TYPE
2187
+ ? (value[0] === REACT_ELEMENT_TYPE
2188
+ ? ((response = {
2039
2189
  $$typeof: REACT_ELEMENT_TYPE,
2040
2190
  type: value[1],
2041
2191
  key: value[2],
2042
2192
  ref: null,
2043
2193
  props: value[3]
2044
2194
  }),
2045
- null !== initializingHandler)
2046
- )
2047
- if (
2195
+ null !== initializingHandler &&
2048
2196
  ((value = initializingHandler),
2049
2197
  (initializingHandler = value.parent),
2050
- value.errored)
2051
- )
2052
- (key = new ReactPromise("rejected", null, value.reason)),
2053
- (key = createLazyChunkWrapper(key));
2054
- else if (0 < value.deps) {
2055
- var blockedChunk = new ReactPromise("blocked", null, null);
2056
- value.value = key;
2057
- value.chunk = blockedChunk;
2058
- key = createLazyChunkWrapper(blockedChunk);
2059
- }
2060
- } else key = value;
2061
- return key;
2062
- }
2063
- return value;
2064
- }
2065
- };
2198
+ value.errored
2199
+ ? ((response = new ReactPromise(
2200
+ "rejected",
2201
+ null,
2202
+ value.reason
2203
+ )),
2204
+ (response = createLazyChunkWrapper(response)))
2205
+ : 0 < value.deps &&
2206
+ ((i = new ReactPromise("blocked", null, null)),
2207
+ (value.value = response),
2208
+ (value.chunk = i),
2209
+ (response = createLazyChunkWrapper(i)))))
2210
+ : (response = value),
2211
+ response)
2212
+ : value;
2213
+ }
2214
+ for (i in value)
2215
+ hasOwnProperty.call(value, i) &&
2216
+ ("__proto__" === i
2217
+ ? delete value[i]
2218
+ : ((parentObject = reviveModel(response, value[i], value, i)),
2219
+ void 0 !== parentObject
2220
+ ? (value[i] = parentObject)
2221
+ : delete value[i]));
2222
+ return value;
2066
2223
  }
2067
2224
  function close(weakResponse) {
2068
- reportGlobalError(weakResponse, Error("Connection closed."));
2225
+ weakResponse._allowPartialStream
2226
+ ? ((weakResponse._closed = !0),
2227
+ weakResponse._chunks.forEach(function (chunk) {
2228
+ "pending" === chunk.status
2229
+ ? ((chunk.status = "halted"),
2230
+ (chunk.value = null),
2231
+ (chunk.reason = null))
2232
+ : "fulfilled" === chunk.status &&
2233
+ null !== chunk.reason &&
2234
+ chunk.reason.close('"$undefined"');
2235
+ }))
2236
+ : reportGlobalError(weakResponse, Error("Connection closed."));
2069
2237
  }
2070
2238
  function noServerCall$1() {
2071
2239
  throw Error(
@@ -2082,7 +2250,10 @@ function createResponseFromOptions(options) {
2082
2250
  "string" === typeof options.nonce ? options.nonce : void 0,
2083
2251
  options && options.temporaryReferences
2084
2252
  ? options.temporaryReferences
2085
- : void 0
2253
+ : void 0,
2254
+ options && options.unstable_allowPartialStream
2255
+ ? options.unstable_allowPartialStream
2256
+ : !1
2086
2257
  );
2087
2258
  }
2088
2259
  function startReadingFromStream$1(response, stream, onDone) {
@@ -2224,7 +2395,10 @@ exports.createFromNodeStream = function (
2224
2395
  noServerCall,
2225
2396
  options ? options.encodeFormAction : void 0,
2226
2397
  options && "string" === typeof options.nonce ? options.nonce : void 0,
2227
- void 0
2398
+ void 0,
2399
+ options && options.unstable_allowPartialStream
2400
+ ? options.unstable_allowPartialStream
2401
+ : !1
2228
2402
  );
2229
2403
  startReadingFromStream(
2230
2404
  serverConsumerManifest,
@@ -2246,26 +2420,16 @@ exports.createTemporaryReferenceSet = function () {
2246
2420
  };
2247
2421
  exports.encodeReply = function (value, options) {
2248
2422
  return new Promise(function (resolve, reject) {
2249
- var abort = processReply(
2423
+ processReply(
2250
2424
  value,
2251
2425
  "",
2252
2426
  options && options.temporaryReferences
2253
2427
  ? options.temporaryReferences
2254
2428
  : void 0,
2255
2429
  resolve,
2256
- reject
2430
+ reject,
2431
+ options ? options.signal : void 0
2257
2432
  );
2258
- if (options && options.signal) {
2259
- var signal = options.signal;
2260
- if (signal.aborted) abort(signal.reason);
2261
- else {
2262
- var listener = function () {
2263
- abort(signal.reason);
2264
- signal.removeEventListener("abort", listener);
2265
- };
2266
- signal.addEventListener("abort", listener);
2267
- }
2268
- }
2269
2433
  });
2270
2434
  };
2271
2435
  exports.registerServerReference = function (reference, id, encodeFormAction) {