"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { createInlinedDataReadableStream: null, useFlightStream: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { createInlinedDataReadableStream: function() { return createInlinedDataReadableStream; }, useFlightStream: function() { return useFlightStream; } }); const _htmlescape = require("../htmlescape"); const isEdgeRuntime = process.env.NEXT_RUNTIME === 'edge'; const INLINE_FLIGHT_PAYLOAD_BOOTSTRAP = 0; const INLINE_FLIGHT_PAYLOAD_DATA = 1; const INLINE_FLIGHT_PAYLOAD_FORM_STATE = 2; const INLINE_FLIGHT_PAYLOAD_BINARY = 3; const flightResponses = new WeakMap(); const encoder = new TextEncoder(); function useFlightStream(flightStream, clientReferenceManifest, nonce) { const response = flightResponses.get(flightStream); if (response) { return response; } // react-server-dom-webpack/client.edge must not be hoisted for require cache clearing to work correctly const { createFromReadableStream } = // eslint-disable-next-line import/no-extraneous-dependencies require('react-server-dom-webpack/client.edge'); const newResponse = createFromReadableStream(flightStream, { serverConsumerManifest: { moduleLoading: clientReferenceManifest.moduleLoading, moduleMap: isEdgeRuntime ? clientReferenceManifest.edgeSSRModuleMapping : clientReferenceManifest.ssrModuleMapping, serverModuleMap: null }, nonce }); flightResponses.set(flightStream, newResponse); return newResponse; } function createInlinedDataReadableStream(flightStream, nonce, formState) { const startScriptTag = nonce ? ``)); } else { controller.enqueue(encoder.encode(`${scriptStart}(self.__next_f=self.__next_f||[]).push(${(0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([ INLINE_FLIGHT_PAYLOAD_BOOTSTRAP ]))})`)); } } function writeFlightDataInstruction(controller, scriptStart, chunk) { let htmlInlinedData; if (typeof chunk === 'string') { htmlInlinedData = (0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([ INLINE_FLIGHT_PAYLOAD_DATA, chunk ])); } else { // The chunk cannot be embedded as a UTF-8 string in the script tag. // Instead let's inline it in base64. // Credits to Devon Govett (devongovett) for the technique. // https://github.com/devongovett/rsc-html-stream const base64 = btoa(String.fromCodePoint(...chunk)); htmlInlinedData = (0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([ INLINE_FLIGHT_PAYLOAD_BINARY, base64 ])); } controller.enqueue(encoder.encode(`${scriptStart}self.__next_f.push(${htmlInlinedData})`)); } //# sourceMappingURL=use-flight-response.js.map