@vitejs/plugin-rsc 0.5.33 → 0.5.35

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 +18 -2
  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-D28_L_A0.js → picocolors-DCTC64Zv.js} +1 -1
  18. package/dist/{plugin-DarRieDr.js → plugin-CLvIS10V.js} +38 -32
  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-CXQb6hk9.js +89 -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 +91 -62
  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 +15 -15
  80. package/dist/client-Bhch3O41.d.ts +0 -19
  81. package/dist/dist-uqdtSkzK.js +0 -64
@@ -123,7 +123,12 @@ function prepareDestinationWithChunks(moduleLoading, chunks, nonce$jscomp$0) {
123
123
  JSCompiler_temp_const$jscomp$0.call(
124
124
  JSCompiler_temp_const,
125
125
  JSCompiler_temp_const$jscomp$1,
126
- { crossOrigin: JSCompiler_inline_result, nonce: nonce }
126
+ {
127
+ crossOrigin: JSCompiler_inline_result,
128
+ integrity: void 0,
129
+ fetchPriority: void 0,
130
+ nonce: nonce
131
+ }
127
132
  );
128
133
  }
129
134
  }
@@ -142,7 +147,7 @@ function getIteratorFn(maybeIterable) {
142
147
  var ASYNC_ITERATOR = Symbol.asyncIterator,
143
148
  isArrayImpl = Array.isArray,
144
149
  getPrototypeOf = Object.getPrototypeOf,
145
- ObjectPrototype = Object.prototype,
150
+ ObjectPrototype$1 = Object.prototype,
146
151
  knownServerReferences = new WeakMap();
147
152
  function serializeNumber(number) {
148
153
  return Number.isFinite(number)
@@ -159,9 +164,36 @@ function processReply(
159
164
  root,
160
165
  formFieldPrefix,
161
166
  temporaryReferences,
162
- resolve,
163
- reject
167
+ onResolve,
168
+ onReject,
169
+ signal
164
170
  ) {
171
+ function endReplyLifetime() {
172
+ null !== replyLifetimeController &&
173
+ replyLifetimeController.abort("The reply ended.");
174
+ }
175
+ function resolve(value) {
176
+ settled = !0;
177
+ endReplyLifetime();
178
+ onResolve(value);
179
+ }
180
+ function reject(error) {
181
+ settled = !0;
182
+ endReplyLifetime();
183
+ onReject(error);
184
+ }
185
+ function attachAbortSignal(abortSignal) {
186
+ abortSignal.aborted
187
+ ? abort()
188
+ : ((replyLifetimeController = new AbortController()),
189
+ abortSignal.addEventListener(
190
+ "abort",
191
+ function () {
192
+ abort();
193
+ },
194
+ { signal: replyLifetimeController.signal }
195
+ ));
196
+ }
165
197
  function serializeTypedArray(tag, typedArray) {
166
198
  typedArray = new Blob([
167
199
  new Uint8Array(
@@ -273,6 +305,8 @@ function processReply(
273
305
  "$T"
274
306
  );
275
307
  }
308
+ if (void 0 !== temporaryReferences && modelRoot === value)
309
+ return (modelRoot = null), "$T";
276
310
  throw Error(
277
311
  "React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options."
278
312
  );
@@ -434,7 +468,7 @@ function processReply(
434
468
  return serializeAsyncIterable(value, key.call(value));
435
469
  key = getPrototypeOf(value);
436
470
  if (
437
- key !== ObjectPrototype &&
471
+ key !== ObjectPrototype$1 &&
438
472
  (null === key || null !== getPrototypeOf(key))
439
473
  ) {
440
474
  if (void 0 === temporaryReferences)
@@ -513,21 +547,25 @@ function processReply(
513
547
  modelRoot = model;
514
548
  return JSON.stringify(model, resolveToJSON);
515
549
  }
550
+ function abort() {
551
+ endReplyLifetime();
552
+ 0 < pendingParts &&
553
+ ((pendingParts = 0),
554
+ null === formData ? resolve(json) : resolve(formData));
555
+ }
516
556
  var nextPartId = 1,
517
557
  pendingParts = 0,
518
558
  formData = null,
519
559
  writtenObjects = new WeakMap(),
520
560
  modelRoot = root,
561
+ settled = !1,
562
+ replyLifetimeController = null,
521
563
  json = serializeModel(root, 0);
522
564
  null === formData
523
565
  ? resolve(json)
524
566
  : (formData.set(formFieldPrefix + "0", json),
525
567
  0 === pendingParts && resolve(formData));
526
- return function () {
527
- 0 < pendingParts &&
528
- ((pendingParts = 0),
529
- null === formData ? resolve(json) : resolve(formData));
530
- };
568
+ void 0 === signal || settled || attachAbortSignal(signal);
531
569
  }
532
570
  var boundCache = new WeakMap();
533
571
  function encodeFormData(reference) {
@@ -702,37 +740,46 @@ function createServerReference$1(id, callServer, encodeFormAction) {
702
740
  registerBoundServerReference(action, id, null, encodeFormAction);
703
741
  return action;
704
742
  }
743
+ var ObjectPrototype = Object.prototype,
744
+ ArrayPrototype = Array.prototype;
705
745
  function ReactPromise(status, value, reason) {
706
746
  this.status = status;
707
747
  this.value = value;
708
748
  this.reason = reason;
709
749
  }
710
750
  ReactPromise.prototype = Object.create(Promise.prototype);
711
- ReactPromise.prototype.then = function (resolve, reject) {
712
- switch (this.status) {
713
- case "resolved_model":
714
- initializeModelChunk(this);
715
- break;
716
- case "resolved_module":
717
- initializeModuleChunk(this);
718
- }
719
- switch (this.status) {
720
- case "fulfilled":
721
- "function" === typeof resolve && resolve(this.value);
722
- break;
723
- case "pending":
724
- case "blocked":
725
- "function" === typeof resolve &&
726
- (null === this.value && (this.value = []), this.value.push(resolve));
727
- "function" === typeof reject &&
728
- (null === this.reason && (this.reason = []), this.reason.push(reject));
729
- break;
730
- case "halted":
731
- break;
732
- default:
733
- "function" === typeof reject && reject(this.reason);
751
+ Object.defineProperty(ReactPromise.prototype, "then", {
752
+ writable: !0,
753
+ enumerable: !0,
754
+ configurable: !0,
755
+ value: function (resolve, reject) {
756
+ switch (this.status) {
757
+ case "resolved_model":
758
+ initializeModelChunk(this);
759
+ break;
760
+ case "resolved_module":
761
+ initializeModuleChunk(this);
762
+ }
763
+ switch (this.status) {
764
+ case "fulfilled":
765
+ "function" === typeof resolve && resolve(this.value);
766
+ break;
767
+ case "pending":
768
+ case "pending_weak":
769
+ case "blocked":
770
+ "function" === typeof resolve &&
771
+ (null === this.value && (this.value = []), this.value.push(resolve));
772
+ "function" === typeof reject &&
773
+ (null === this.reason && (this.reason = []),
774
+ this.reason.push(reject));
775
+ break;
776
+ case "halted":
777
+ break;
778
+ default:
779
+ "function" === typeof reject && reject(this.reason);
780
+ }
734
781
  }
735
- };
782
+ });
736
783
  function readChunk(chunk) {
737
784
  switch (chunk.status) {
738
785
  case "resolved_model":
@@ -745,6 +792,7 @@ function readChunk(chunk) {
745
792
  case "fulfilled":
746
793
  return chunk.value;
747
794
  case "pending":
795
+ case "pending_weak":
748
796
  case "blocked":
749
797
  case "halted":
750
798
  throw chunk;
@@ -752,20 +800,20 @@ function readChunk(chunk) {
752
800
  throw chunk.reason;
753
801
  }
754
802
  }
755
- function wakeChunk(listeners, value, chunk) {
803
+ function wakeChunk(response, listeners, value, chunk) {
756
804
  for (var i = 0; i < listeners.length; i++) {
757
805
  var listener = listeners[i];
758
806
  "function" === typeof listener
759
807
  ? listener(value)
760
- : fulfillReference(listener, value, chunk);
808
+ : fulfillReference(response, listener, value, chunk);
761
809
  }
762
810
  }
763
- function rejectChunk(listeners, error) {
811
+ function rejectChunk(response, listeners, error) {
764
812
  for (var i = 0; i < listeners.length; i++) {
765
813
  var listener = listeners[i];
766
814
  "function" === typeof listener
767
815
  ? listener(error)
768
- : rejectReference(listener, error);
816
+ : rejectReference(response, listener.handler, error);
769
817
  }
770
818
  }
771
819
  function resolveBlockedCycle(resolvedChunk, reference) {
@@ -789,10 +837,15 @@ function resolveBlockedCycle(resolvedChunk, reference) {
789
837
  }
790
838
  return null;
791
839
  }
792
- function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
840
+ function wakeChunkIfInitialized(
841
+ response,
842
+ chunk,
843
+ resolveListeners,
844
+ rejectListeners
845
+ ) {
793
846
  switch (chunk.status) {
794
847
  case "fulfilled":
795
- wakeChunk(resolveListeners, chunk.value, chunk);
848
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
796
849
  break;
797
850
  case "blocked":
798
851
  for (var i = 0; i < resolveListeners.length; i++) {
@@ -801,7 +854,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
801
854
  var cyclicHandler = resolveBlockedCycle(chunk, listener);
802
855
  if (null !== cyclicHandler)
803
856
  switch (
804
- (fulfillReference(listener, cyclicHandler.value, chunk),
857
+ (fulfillReference(response, listener, cyclicHandler.value, chunk),
805
858
  resolveListeners.splice(i, 1),
806
859
  i--,
807
860
  null !== rejectListeners &&
@@ -810,19 +863,19 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
810
863
  chunk.status)
811
864
  ) {
812
865
  case "fulfilled":
813
- wakeChunk(resolveListeners, chunk.value, chunk);
866
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
814
867
  return;
815
868
  case "rejected":
816
869
  null !== rejectListeners &&
817
- rejectChunk(rejectListeners, chunk.reason);
870
+ rejectChunk(response, rejectListeners, chunk.reason);
818
871
  return;
819
872
  }
820
873
  }
821
874
  }
822
875
  case "pending":
823
876
  if (chunk.value)
824
- for (i = 0; i < resolveListeners.length; i++)
825
- chunk.value.push(resolveListeners[i]);
877
+ for (response = 0; response < resolveListeners.length; response++)
878
+ chunk.value.push(resolveListeners[response]);
826
879
  else chunk.value = resolveListeners;
827
880
  if (chunk.reason) {
828
881
  if (rejectListeners)
@@ -835,16 +888,22 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {
835
888
  } else chunk.reason = rejectListeners;
836
889
  break;
837
890
  case "rejected":
838
- rejectListeners && rejectChunk(rejectListeners, chunk.reason);
891
+ rejectListeners && rejectChunk(response, rejectListeners, chunk.reason);
839
892
  }
840
893
  }
841
894
  function triggerErrorOnChunk(response, chunk, error) {
842
- "pending" !== chunk.status && "blocked" !== chunk.status
843
- ? chunk.reason.error(error)
844
- : ((response = chunk.reason),
845
- (chunk.status = "rejected"),
846
- (chunk.reason = error),
847
- null !== response && rejectChunk(response, error));
895
+ if (
896
+ "pending" !== chunk.status &&
897
+ "pending_weak" !== chunk.status &&
898
+ "blocked" !== chunk.status
899
+ )
900
+ chunk.reason.error(error);
901
+ else {
902
+ var listeners = chunk.reason;
903
+ chunk.status = "rejected";
904
+ chunk.reason = error;
905
+ null !== listeners && rejectChunk(response, listeners, error);
906
+ }
848
907
  }
849
908
  function createResolvedIteratorResultChunk(response, value, done) {
850
909
  return new ReactPromise(
@@ -861,7 +920,8 @@ function resolveIteratorResultChunk(response, chunk, value, done) {
861
920
  );
862
921
  }
863
922
  function resolveModelChunk(response, chunk, value) {
864
- if ("pending" !== chunk.status) chunk.reason.enqueueModel(value);
923
+ if ("pending" !== chunk.status && "pending_weak" !== chunk.status)
924
+ chunk.reason.enqueueModel(value);
865
925
  else {
866
926
  var resolveListeners = chunk.value,
867
927
  rejectListeners = chunk.reason;
@@ -870,19 +930,33 @@ function resolveModelChunk(response, chunk, value) {
870
930
  chunk.reason = response;
871
931
  null !== resolveListeners &&
872
932
  (initializeModelChunk(chunk),
873
- wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));
933
+ wakeChunkIfInitialized(
934
+ response,
935
+ chunk,
936
+ resolveListeners,
937
+ rejectListeners
938
+ ));
874
939
  }
875
940
  }
876
941
  function resolveModuleChunk(response, chunk, value) {
877
- if ("pending" === chunk.status || "blocked" === chunk.status) {
878
- response = chunk.value;
879
- var rejectListeners = chunk.reason;
942
+ if (
943
+ "pending" === chunk.status ||
944
+ "pending_weak" === chunk.status ||
945
+ "blocked" === chunk.status
946
+ ) {
947
+ var resolveListeners = chunk.value,
948
+ rejectListeners = chunk.reason;
880
949
  chunk.status = "resolved_module";
881
950
  chunk.value = value;
882
951
  chunk.reason = null;
883
- null !== response &&
952
+ null !== resolveListeners &&
884
953
  (initializeModuleChunk(chunk),
885
- wakeChunkIfInitialized(chunk, response, rejectListeners));
954
+ wakeChunkIfInitialized(
955
+ response,
956
+ chunk,
957
+ resolveListeners,
958
+ rejectListeners
959
+ ));
886
960
  }
887
961
  }
888
962
  var initializingHandler = null;
@@ -895,29 +969,51 @@ function initializeModelChunk(chunk) {
895
969
  chunk.value = null;
896
970
  chunk.reason = null;
897
971
  try {
898
- var value = JSON.parse(resolvedModel, response._fromJSON),
899
- resolveListeners = chunk.value;
900
- if (null !== resolveListeners)
972
+ var value = parseModel(response, resolvedModel);
973
+ resolvedModel = initializingHandler;
974
+ if (null !== resolvedModel) {
975
+ if (resolvedModel.errored) {
976
+ "blocked" === chunk.status &&
977
+ triggerErrorOnChunk(response, chunk, resolvedModel.reason);
978
+ return;
979
+ }
980
+ resolvedModel.value = value;
981
+ resolvedModel.chunk = chunk;
982
+ }
983
+ var listeners = chunk.value,
984
+ rejectListeners = chunk.reason;
985
+ chunk.value = null;
986
+ chunk.reason = null;
987
+ if (null !== listeners) {
901
988
  for (
902
- chunk.value = null, chunk.reason = null, resolvedModel = 0;
903
- resolvedModel < resolveListeners.length;
904
- resolvedModel++
989
+ var cyclic = null, deferred = null, i = 0;
990
+ i < listeners.length;
991
+ i++
905
992
  ) {
906
- var listener = resolveListeners[resolvedModel];
907
- "function" === typeof listener
908
- ? listener(value)
909
- : fulfillReference(listener, value, chunk);
910
- }
911
- if (null !== initializingHandler) {
912
- if (initializingHandler.errored) throw initializingHandler.reason;
913
- if (0 < initializingHandler.deps) {
914
- initializingHandler.value = value;
915
- initializingHandler.chunk = chunk;
916
- return;
993
+ var listener = listeners[i];
994
+ if (
995
+ "function" !== typeof listener &&
996
+ null !== resolveBlockedCycle(chunk, listener)
997
+ ) {
998
+ if (
999
+ (null === cyclic && (cyclic = []),
1000
+ cyclic.push(listener),
1001
+ null !== rejectListeners)
1002
+ ) {
1003
+ var rejectionIdx = rejectListeners.indexOf(listener);
1004
+ -1 !== rejectionIdx && rejectListeners.splice(rejectionIdx, 1);
1005
+ }
1006
+ } else null === deferred && (deferred = []), deferred.push(listener);
917
1007
  }
1008
+ null !== deferred &&
1009
+ ((chunk.value = deferred), (chunk.reason = rejectListeners));
1010
+ if (null !== cyclic)
1011
+ for (listeners = 0; listeners < cyclic.length; listeners++)
1012
+ fulfillReference(response, cyclic[listeners], value, chunk);
918
1013
  }
919
- chunk.status = "fulfilled";
920
- chunk.value = value;
1014
+ "blocked" !== chunk.status ||
1015
+ (null !== resolvedModel && 0 < resolvedModel.deps) ||
1016
+ initializeBlockedChunk(response, chunk, value, null);
921
1017
  } catch (error) {
922
1018
  (chunk.status = "rejected"), (chunk.reason = error);
923
1019
  } finally {
@@ -929,6 +1025,7 @@ function initializeModuleChunk(chunk) {
929
1025
  var value = requireModule(chunk.value);
930
1026
  chunk.status = "fulfilled";
931
1027
  chunk.value = value;
1028
+ chunk.reason = null;
932
1029
  } catch (error) {
933
1030
  (chunk.status = "rejected"), (chunk.reason = error);
934
1031
  }
@@ -952,14 +1049,31 @@ function getChunk(response, id) {
952
1049
  chunk = chunks.get(id);
953
1050
  chunk ||
954
1051
  ((chunk = response._closed
955
- ? new ReactPromise("rejected", null, response._closedReason)
1052
+ ? response._allowPartialStream
1053
+ ? new ReactPromise("halted", null, null)
1054
+ : new ReactPromise("rejected", null, response._closedReason)
956
1055
  : new ReactPromise("pending", null, null)),
957
1056
  chunks.set(id, chunk));
958
1057
  return chunk;
959
1058
  }
960
- function fulfillReference(reference, value) {
961
- var response = reference.response,
962
- handler = reference.handler,
1059
+ function initializeBlockedChunk(response, chunk, value, reason) {
1060
+ var resolveListeners = chunk.value;
1061
+ chunk.status = "fulfilled";
1062
+ chunk.value = value;
1063
+ chunk.reason = reason;
1064
+ null !== resolveListeners &&
1065
+ wakeChunk(response, resolveListeners, value, chunk);
1066
+ }
1067
+ function initializeChunkIfUnblocked(response, handler) {
1068
+ if (0 === handler.deps && !handler.errored) {
1069
+ var chunk = handler.chunk;
1070
+ null !== chunk &&
1071
+ "blocked" === chunk.status &&
1072
+ initializeBlockedChunk(response, chunk, handler.value, handler.reason);
1073
+ }
1074
+ }
1075
+ function fulfillReference(response, reference, value) {
1076
+ var handler = reference.handler,
963
1077
  parentObject = reference.parentObject,
964
1078
  key = reference.key,
965
1079
  map = reference.map,
@@ -997,6 +1111,7 @@ function fulfillReference(reference, value) {
997
1111
  continue;
998
1112
  }
999
1113
  case "pending":
1114
+ case "pending_weak":
1000
1115
  path.splice(0, i - 1);
1001
1116
  null === referencedChunk.value
1002
1117
  ? (referencedChunk.value = [reference])
@@ -1008,7 +1123,11 @@ function fulfillReference(reference, value) {
1008
1123
  case "halted":
1009
1124
  return;
1010
1125
  default:
1011
- rejectReference(reference, referencedChunk.reason);
1126
+ rejectReference(
1127
+ response,
1128
+ reference.handler,
1129
+ referencedChunk.reason
1130
+ );
1012
1131
  return;
1013
1132
  }
1014
1133
  }
@@ -1029,19 +1148,19 @@ function fulfillReference(reference, value) {
1029
1148
  value.$$typeof === REACT_LAZY_TYPE;
1030
1149
 
1031
1150
  ) {
1032
- var referencedChunk$44 = value._payload;
1033
- if (referencedChunk$44 === handler.chunk) value = handler.value;
1151
+ var referencedChunk$45 = value._payload;
1152
+ if (referencedChunk$45 === handler.chunk) value = handler.value;
1034
1153
  else {
1035
- switch (referencedChunk$44.status) {
1154
+ switch (referencedChunk$45.status) {
1036
1155
  case "resolved_model":
1037
- initializeModelChunk(referencedChunk$44);
1156
+ initializeModelChunk(referencedChunk$45);
1038
1157
  break;
1039
1158
  case "resolved_module":
1040
- initializeModuleChunk(referencedChunk$44);
1159
+ initializeModuleChunk(referencedChunk$45);
1041
1160
  }
1042
- switch (referencedChunk$44.status) {
1161
+ switch (referencedChunk$45.status) {
1043
1162
  case "fulfilled":
1044
- value = referencedChunk$44.value;
1163
+ value = referencedChunk$45.value;
1045
1164
  continue;
1046
1165
  }
1047
1166
  break;
@@ -1063,23 +1182,13 @@ function fulfillReference(reference, value) {
1063
1182
  }
1064
1183
  }
1065
1184
  } catch (error) {
1066
- rejectReference(reference, error);
1185
+ rejectReference(response, reference.handler, error);
1067
1186
  return;
1068
1187
  }
1069
1188
  handler.deps--;
1070
- 0 === handler.deps &&
1071
- ((reference = handler.chunk),
1072
- null !== reference &&
1073
- "blocked" === reference.status &&
1074
- ((value = reference.value),
1075
- (reference.status = "fulfilled"),
1076
- (reference.value = handler.value),
1077
- (reference.reason = handler.reason),
1078
- null !== value && wakeChunk(value, handler.value, reference)));
1079
- }
1080
- function rejectReference(reference, error) {
1081
- var handler = reference.handler;
1082
- reference = reference.response;
1189
+ initializeChunkIfUnblocked(response, handler);
1190
+ }
1191
+ function rejectReference(response, handler, error) {
1083
1192
  handler.errored ||
1084
1193
  ((handler.errored = !0),
1085
1194
  (handler.value = null),
@@ -1087,7 +1196,7 @@ function rejectReference(reference, error) {
1087
1196
  (handler = handler.chunk),
1088
1197
  null !== handler &&
1089
1198
  "blocked" === handler.status &&
1090
- triggerErrorOnChunk(reference, handler, error));
1199
+ triggerErrorOnChunk(response, handler, error));
1091
1200
  }
1092
1201
  function waitForReference(
1093
1202
  referencedChunk,
@@ -1097,21 +1206,19 @@ function waitForReference(
1097
1206
  map,
1098
1207
  path
1099
1208
  ) {
1100
- if (initializingHandler) {
1101
- var handler = initializingHandler;
1102
- handler.deps++;
1103
- } else
1104
- handler = initializingHandler = {
1105
- parent: null,
1106
- chunk: null,
1107
- value: null,
1108
- reason: null,
1109
- deps: 1,
1110
- errored: !1
1111
- };
1209
+ initializingHandler
1210
+ ? ((response = initializingHandler), response.deps++)
1211
+ : (response = initializingHandler =
1212
+ {
1213
+ parent: null,
1214
+ chunk: null,
1215
+ value: null,
1216
+ reason: null,
1217
+ deps: 1,
1218
+ errored: !1
1219
+ });
1112
1220
  parentObject = {
1113
- response: response,
1114
- handler: handler,
1221
+ handler: response,
1115
1222
  parentObject: parentObject,
1116
1223
  key: key,
1117
1224
  map: map,
@@ -1190,34 +1297,28 @@ function loadServerReference(response, metaData, parentObject, key) {
1190
1297
  boundArgs.props = resolvedValue;
1191
1298
  }
1192
1299
  handler.deps--;
1193
- 0 === handler.deps &&
1194
- ((resolvedValue = handler.chunk),
1195
- null !== resolvedValue &&
1196
- "blocked" === resolvedValue.status &&
1197
- ((boundArgs = resolvedValue.value),
1198
- (resolvedValue.status = "fulfilled"),
1199
- (resolvedValue.value = handler.value),
1200
- (resolvedValue.reason = null),
1201
- null !== boundArgs &&
1202
- wakeChunk(boundArgs, handler.value, resolvedValue)));
1300
+ initializeChunkIfUnblocked(response, handler);
1203
1301
  },
1204
1302
  function (error) {
1205
1303
  if (!handler.errored) {
1206
- handler.errored = !0;
1207
- handler.value = null;
1208
- handler.reason = error;
1209
- var chunk = handler.chunk;
1210
- null !== chunk &&
1211
- "blocked" === chunk.status &&
1212
- triggerErrorOnChunk(response, chunk, error);
1304
+ var erroredHandler = handler;
1305
+ erroredHandler.errored = !0;
1306
+ erroredHandler.value = null;
1307
+ erroredHandler.reason = error;
1308
+ erroredHandler = handler.chunk;
1309
+ null !== erroredHandler &&
1310
+ "blocked" === erroredHandler.status &&
1311
+ triggerErrorOnChunk(response, erroredHandler, error);
1213
1312
  }
1214
1313
  }
1215
1314
  );
1216
1315
  return null;
1217
1316
  }
1317
+ var EMPTY_REFERENCE_PATH = [];
1218
1318
  function getOutlinedModel(response, reference, parentObject, key, map) {
1219
- reference = reference.split(":");
1220
- var id = parseInt(reference[0], 16);
1319
+ var id = parseInt(reference, 16);
1320
+ reference =
1321
+ -1 === reference.indexOf(":") ? EMPTY_REFERENCE_PATH : reference.split(":");
1221
1322
  id = getChunk(response, id);
1222
1323
  switch (id.status) {
1223
1324
  case "resolved_model":
@@ -1251,6 +1352,7 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
1251
1352
  break;
1252
1353
  case "blocked":
1253
1354
  case "pending":
1355
+ case "pending_weak":
1254
1356
  return waitForReference(
1255
1357
  id,
1256
1358
  parentObject,
@@ -1276,9 +1378,10 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
1276
1378
  default:
1277
1379
  return (
1278
1380
  initializingHandler
1279
- ? ((initializingHandler.errored = !0),
1280
- (initializingHandler.value = null),
1281
- (initializingHandler.reason = id.reason))
1381
+ ? ((response = initializingHandler),
1382
+ (response.errored = !0),
1383
+ (response.value = null),
1384
+ (response.reason = id.reason))
1282
1385
  : (initializingHandler = {
1283
1386
  parent: null,
1284
1387
  chunk: null,
@@ -1291,7 +1394,16 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
1291
1394
  );
1292
1395
  }
1293
1396
  }
1294
- id = id[reference[i]];
1397
+ var name = reference[i];
1398
+ if (
1399
+ "object" !== typeof id ||
1400
+ null === id ||
1401
+ (getPrototypeOf(id) !== ObjectPrototype &&
1402
+ getPrototypeOf(id) !== ArrayPrototype) ||
1403
+ !hasOwnProperty.call(id, name)
1404
+ )
1405
+ throw Error("Invalid reference.");
1406
+ id = id[name];
1295
1407
  }
1296
1408
  for (
1297
1409
  ;
@@ -1317,6 +1429,7 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
1317
1429
  }
1318
1430
  return map(response, id, parentObject, key);
1319
1431
  case "pending":
1432
+ case "pending_weak":
1320
1433
  case "blocked":
1321
1434
  return waitForReference(id, parentObject, key, response, map, reference);
1322
1435
  case "halted":
@@ -1336,9 +1449,10 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
1336
1449
  default:
1337
1450
  return (
1338
1451
  initializingHandler
1339
- ? ((initializingHandler.errored = !0),
1340
- (initializingHandler.value = null),
1341
- (initializingHandler.reason = id.reason))
1452
+ ? ((response = initializingHandler),
1453
+ (response.errored = !0),
1454
+ (response.value = null),
1455
+ (response.reason = id.reason))
1342
1456
  : (initializingHandler = {
1343
1457
  parent: null,
1344
1458
  chunk: null,
@@ -1402,6 +1516,8 @@ function parseModelString(response, parentObject, key, value) {
1402
1516
  (parentObject = parseInt(value.slice(2), 16)),
1403
1517
  getChunk(response, parentObject)
1404
1518
  );
1519
+ case "w":
1520
+ return;
1405
1521
  case "S":
1406
1522
  return Symbol.for(value.slice(2));
1407
1523
  case "h":
@@ -1483,7 +1599,8 @@ function ResponseInstance(
1483
1599
  callServer,
1484
1600
  encodeFormAction,
1485
1601
  nonce,
1486
- temporaryReferences
1602
+ temporaryReferences,
1603
+ allowPartialStream
1487
1604
  ) {
1488
1605
  var chunks = new Map();
1489
1606
  this._bundlerConfig = bundlerConfig;
@@ -1494,11 +1611,10 @@ function ResponseInstance(
1494
1611
  this._nonce = nonce;
1495
1612
  this._chunks = chunks;
1496
1613
  this._stringDecoder = new TextDecoder();
1497
- this._fromJSON = null;
1498
1614
  this._closed = !1;
1499
1615
  this._closedReason = null;
1616
+ this._allowPartialStream = allowPartialStream;
1500
1617
  this._tempRefs = temporaryReferences;
1501
- this._fromJSON = createFromJSONCallback(this);
1502
1618
  }
1503
1619
  function resolveBuffer(response, id, buffer) {
1504
1620
  response = response._chunks;
@@ -1510,12 +1626,25 @@ function resolveBuffer(response, id, buffer) {
1510
1626
  }
1511
1627
  function resolveModule(response, id, model) {
1512
1628
  var chunks = response._chunks,
1513
- chunk = chunks.get(id);
1514
- model = JSON.parse(model, response._fromJSON);
1515
- var clientReference = resolveClientReference(response._bundlerConfig, model);
1629
+ chunk = chunks.get(id),
1630
+ prevHandler = initializingHandler;
1631
+ initializingHandler = null;
1632
+ try {
1633
+ var clientReferenceMetadata = parseModel(response, model);
1634
+ if (null !== initializingHandler)
1635
+ throw Error(
1636
+ "A client reference was blocked on a row that has not been received yet. This is a bug in React."
1637
+ );
1638
+ } finally {
1639
+ initializingHandler = prevHandler;
1640
+ }
1641
+ var clientReference = resolveClientReference(
1642
+ response._bundlerConfig,
1643
+ clientReferenceMetadata
1644
+ );
1516
1645
  prepareDestinationWithChunks(
1517
1646
  response._moduleLoading,
1518
- model[1],
1647
+ clientReferenceMetadata[1],
1519
1648
  response._nonce
1520
1649
  );
1521
1650
  if ((model = preloadModule(clientReference))) {
@@ -1540,17 +1669,17 @@ function resolveModule(response, id, model) {
1540
1669
  chunks.set(id, chunk));
1541
1670
  }
1542
1671
  function resolveStream(response, id, stream, controller) {
1543
- response = response._chunks;
1544
- var chunk = response.get(id);
1672
+ var chunks = response._chunks,
1673
+ chunk = chunks.get(id);
1545
1674
  chunk
1546
1675
  ? "pending" === chunk.status &&
1547
1676
  ((id = chunk.value),
1548
1677
  (chunk.status = "fulfilled"),
1549
1678
  (chunk.value = stream),
1550
1679
  (chunk.reason = controller),
1551
- null !== id && wakeChunk(id, chunk.value, chunk))
1552
- : ((stream = new ReactPromise("fulfilled", stream, controller)),
1553
- response.set(id, stream));
1680
+ null !== id && wakeChunk(response, id, chunk.value, chunk))
1681
+ : ((response = new ReactPromise("fulfilled", stream, controller)),
1682
+ chunks.set(id, response));
1554
1683
  }
1555
1684
  function startReadableStream(response, id, type) {
1556
1685
  var controller = null,
@@ -1587,8 +1716,8 @@ function startReadableStream(response, id, type) {
1587
1716
  (previousBlockedChunk = chunk));
1588
1717
  } else {
1589
1718
  chunk = previousBlockedChunk;
1590
- var chunk$55 = new ReactPromise("pending", null, null);
1591
- chunk$55.then(
1719
+ var chunk$57 = new ReactPromise("pending", null, null);
1720
+ chunk$57.then(
1592
1721
  function (v) {
1593
1722
  return controller.enqueue(v);
1594
1723
  },
@@ -1596,10 +1725,10 @@ function startReadableStream(response, id, type) {
1596
1725
  return controller.error(e);
1597
1726
  }
1598
1727
  );
1599
- previousBlockedChunk = chunk$55;
1728
+ previousBlockedChunk = chunk$57;
1600
1729
  chunk.then(function () {
1601
- previousBlockedChunk === chunk$55 && (previousBlockedChunk = null);
1602
- resolveModelChunk(response, chunk$55, json);
1730
+ previousBlockedChunk === chunk$57 && (previousBlockedChunk = null);
1731
+ resolveModelChunk(response, chunk$57, json);
1603
1732
  });
1604
1733
  }
1605
1734
  },
@@ -1680,7 +1809,12 @@ function startAsyncIterable(response, id, iterator) {
1680
1809
  chunk.value = { done: !1, value: value };
1681
1810
  chunk.reason = null;
1682
1811
  null !== resolveListeners &&
1683
- wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);
1812
+ wakeChunkIfInitialized(
1813
+ response,
1814
+ chunk,
1815
+ resolveListeners,
1816
+ rejectListeners
1817
+ );
1684
1818
  }
1685
1819
  nextWriteIndex++;
1686
1820
  },
@@ -1755,8 +1889,8 @@ function mergeBuffer(buffer, lastChunk) {
1755
1889
  for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)
1756
1890
  byteLength += buffer[i].byteLength;
1757
1891
  byteLength = new Uint8Array(byteLength);
1758
- for (var i$56 = (i = 0); i$56 < l; i$56++) {
1759
- var chunk = buffer[i$56];
1892
+ for (var i$58 = (i = 0); i$58 < l; i$58++) {
1893
+ var chunk = buffer[i$58];
1760
1894
  byteLength.set(chunk, i);
1761
1895
  i += chunk.byteLength;
1762
1896
  }
@@ -1839,7 +1973,7 @@ function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) {
1839
1973
  case 72:
1840
1974
  id = buffer[0];
1841
1975
  buffer = buffer.slice(1);
1842
- response = JSON.parse(buffer, response._fromJSON);
1976
+ response = parseModel(response, buffer);
1843
1977
  buffer = ReactDOMSharedInternals.d;
1844
1978
  switch (id) {
1845
1979
  case "D":
@@ -1932,45 +2066,70 @@ function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) {
1932
2066
  tag.set(id, response));
1933
2067
  }
1934
2068
  }
1935
- function createFromJSONCallback(response) {
1936
- return function (key, value) {
1937
- if ("__proto__" !== key) {
1938
- if ("string" === typeof value)
1939
- return parseModelString(response, this, key, value);
1940
- if ("object" === typeof value && null !== value) {
1941
- if (value[0] === REACT_ELEMENT_TYPE) {
1942
- if (
1943
- ((key = {
2069
+ function parseModel(response, json) {
2070
+ json = JSON.parse(json);
2071
+ return reviveModel(response, json, { "": json }, "");
2072
+ }
2073
+ function reviveModel(response, value, parentObject, key) {
2074
+ if ("string" === typeof value)
2075
+ return "$" === value[0]
2076
+ ? parseModelString(response, parentObject, key, value)
2077
+ : value;
2078
+ if ("object" !== typeof value || null === value) return value;
2079
+ if (isArrayImpl(value)) {
2080
+ for (var i = 0; i < value.length; i++)
2081
+ value[i] = reviveModel(response, value[i], value, "" + i);
2082
+ return value[0] === REACT_ELEMENT_TYPE
2083
+ ? (value[0] === REACT_ELEMENT_TYPE
2084
+ ? ((response = {
1944
2085
  $$typeof: REACT_ELEMENT_TYPE,
1945
2086
  type: value[1],
1946
2087
  key: value[2],
1947
2088
  ref: null,
1948
2089
  props: value[3]
1949
2090
  }),
1950
- null !== initializingHandler)
1951
- )
1952
- if (
2091
+ null !== initializingHandler &&
1953
2092
  ((value = initializingHandler),
1954
2093
  (initializingHandler = value.parent),
1955
- value.errored)
1956
- )
1957
- (key = new ReactPromise("rejected", null, value.reason)),
1958
- (key = createLazyChunkWrapper(key));
1959
- else if (0 < value.deps) {
1960
- var blockedChunk = new ReactPromise("blocked", null, null);
1961
- value.value = key;
1962
- value.chunk = blockedChunk;
1963
- key = createLazyChunkWrapper(blockedChunk);
1964
- }
1965
- } else key = value;
1966
- return key;
1967
- }
1968
- return value;
1969
- }
1970
- };
2094
+ value.errored
2095
+ ? ((response = new ReactPromise(
2096
+ "rejected",
2097
+ null,
2098
+ value.reason
2099
+ )),
2100
+ (response = createLazyChunkWrapper(response)))
2101
+ : 0 < value.deps &&
2102
+ ((i = new ReactPromise("blocked", null, null)),
2103
+ (value.value = response),
2104
+ (value.chunk = i),
2105
+ (response = createLazyChunkWrapper(i)))))
2106
+ : (response = value),
2107
+ response)
2108
+ : value;
2109
+ }
2110
+ for (i in value)
2111
+ hasOwnProperty.call(value, i) &&
2112
+ ("__proto__" === i
2113
+ ? delete value[i]
2114
+ : ((parentObject = reviveModel(response, value[i], value, i)),
2115
+ void 0 !== parentObject
2116
+ ? (value[i] = parentObject)
2117
+ : delete value[i]));
2118
+ return value;
1971
2119
  }
1972
2120
  function close(weakResponse) {
1973
- reportGlobalError(weakResponse, Error("Connection closed."));
2121
+ weakResponse._allowPartialStream
2122
+ ? ((weakResponse._closed = !0),
2123
+ weakResponse._chunks.forEach(function (chunk) {
2124
+ "pending" === chunk.status
2125
+ ? ((chunk.status = "halted"),
2126
+ (chunk.value = null),
2127
+ (chunk.reason = null))
2128
+ : "fulfilled" === chunk.status &&
2129
+ null !== chunk.reason &&
2130
+ chunk.reason.close('"$undefined"');
2131
+ }))
2132
+ : reportGlobalError(weakResponse, Error("Connection closed."));
1974
2133
  }
1975
2134
  function noServerCall() {
1976
2135
  throw Error(
@@ -1987,7 +2146,10 @@ function createResponseFromOptions(options) {
1987
2146
  "string" === typeof options.nonce ? options.nonce : void 0,
1988
2147
  options && options.temporaryReferences
1989
2148
  ? options.temporaryReferences
1990
- : void 0
2149
+ : void 0,
2150
+ options && options.unstable_allowPartialStream
2151
+ ? options.unstable_allowPartialStream
2152
+ : !1
1991
2153
  );
1992
2154
  }
1993
2155
  function startReadingFromStream(response, stream, onDone) {
@@ -2020,6 +2182,7 @@ function startReadingFromStream(response, stream, onDone) {
2020
2182
  65 === rowState ||
2021
2183
  79 === rowState ||
2022
2184
  111 === rowState ||
2185
+ 98 === rowState ||
2023
2186
  85 === rowState ||
2024
2187
  83 === rowState ||
2025
2188
  115 === rowState ||
@@ -2055,22 +2218,30 @@ function startReadingFromStream(response, stream, onDone) {
2055
2218
  var offset = value.byteOffset + i;
2056
2219
  if (-1 < lastIdx)
2057
2220
  (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)),
2058
- processFullBinaryRow(
2059
- response,
2060
- streamState,
2061
- _ref,
2062
- rowTag,
2063
- buffer,
2064
- rowLength
2065
- ),
2221
+ 98 === rowTag
2222
+ ? resolveBuffer(
2223
+ response,
2224
+ _ref,
2225
+ lastIdx === chunkLength ? rowLength : rowLength.slice()
2226
+ )
2227
+ : processFullBinaryRow(
2228
+ response,
2229
+ streamState,
2230
+ _ref,
2231
+ rowTag,
2232
+ buffer,
2233
+ rowLength
2234
+ ),
2066
2235
  (i = lastIdx),
2067
2236
  3 === rowState && i++,
2068
2237
  (rowLength = _ref = rowTag = rowState = 0),
2069
2238
  (buffer.length = 0);
2070
2239
  else {
2071
2240
  value = new Uint8Array(value.buffer, offset, value.byteLength - i);
2072
- buffer.push(value);
2073
- rowLength -= value.byteLength;
2241
+ 98 === rowTag
2242
+ ? ((rowLength -= value.byteLength),
2243
+ resolveBuffer(response, _ref, value))
2244
+ : (buffer.push(value), (rowLength -= value.byteLength));
2074
2245
  break;
2075
2246
  }
2076
2247
  }
@@ -2118,26 +2289,16 @@ exports.createTemporaryReferenceSet = function () {
2118
2289
  };
2119
2290
  exports.encodeReply = function (value, options) {
2120
2291
  return new Promise(function (resolve, reject) {
2121
- var abort = processReply(
2292
+ processReply(
2122
2293
  value,
2123
2294
  "",
2124
2295
  options && options.temporaryReferences
2125
2296
  ? options.temporaryReferences
2126
2297
  : void 0,
2127
2298
  resolve,
2128
- reject
2299
+ reject,
2300
+ options ? options.signal : void 0
2129
2301
  );
2130
- if (options && options.signal) {
2131
- var signal = options.signal;
2132
- if (signal.aborted) abort(signal.reason);
2133
- else {
2134
- var listener = function () {
2135
- abort(signal.reason);
2136
- signal.removeEventListener("abort", listener);
2137
- };
2138
- signal.addEventListener("abort", listener);
2139
- }
2140
- }
2141
2302
  });
2142
2303
  };
2143
2304
  exports.registerServerReference = function (reference, id, encodeFormAction) {