{"version":3,"sources":["../../../src/renderer/react/server.ts"],"sourcesContent":["import React from \"react\";\nimport {\n  renderToPipeableStream as reactRenderToPipeableStream,\n  renderToString as reactRenderToString,\n} from \"react-dom/server\";\nimport { wrapFarmIsolatedClientGraph } from \"../../client/isolated-boundary\";\n\nexport class ErrorBoundary extends React.Component<\n  {\n    Fallback: React.ComponentType<any>;\n    fallbackProps: Record<string, any>;\n    children: React.ReactNode;\n  },\n  { hasError: boolean; error: unknown }\n> {\n  constructor(props: any) {\n    super(props);\n    this.state = { hasError: false, error: null };\n  }\n\n  static getDerivedStateFromError(error: unknown) {\n    return { hasError: true, error };\n  }\n\n  render() {\n    if (this.state.hasError) {\n      const Fallback = this.props.Fallback;\n      return React.createElement(Fallback, {\n        ...this.props.fallbackProps,\n        error: this.state.error,\n        reset: () => this.setState({ hasError: false, error: null }),\n      });\n    }\n    return this.props.children as React.ReactElement;\n  }\n}\n\nexport const name = \"react\";\nexport const capabilities = {\n  streaming: { node: true, web: false },\n} as const;\nexport const Fragment = React.Fragment;\nexport const Suspense = React.Suspense;\nexport const createElement = React.createElement;\nexport const isValidElement = React.isValidElement;\nexport const wrapClientGraph = (element: React.ReactNode) =>\n  wrapFarmIsolatedClientGraph(React, element);\nexport const renderToString = reactRenderToString;\nexport const renderToPipeableStream = reactRenderToPipeableStream;\n\nexport default React;\n\n/**\n * React DOM's streaming runtime reveals a Suspense boundary with `$RC`/`$RS`/\n * `$RV`/`$RX` calls and labels the segments with Fizz ids such as `id=\"S:1\"`.\n * The first of those in a chunk is where the static shell ends.\n */\nexport function findStaticShellBoundary(chunk: string): number {\n  const markerIndexes = [\n    chunk.indexOf('id=\"S:'),\n    chunk.indexOf(\"id='S:\"),\n    chunk.indexOf(\"$RC(\"),\n    chunk.indexOf(\"$RS(\"),\n    chunk.indexOf(\"$RV(\"),\n    chunk.indexOf(\"$RX(\"),\n  ].filter((index) => index >= 0);\n\n  if (markerIndexes.length === 0) return -1;\n\n  const markerIndex = Math.min(...markerIndexes);\n  const tagStart = chunk.lastIndexOf(\"<\", markerIndex);\n  return tagStart >= 0 ? tagStart : markerIndex;\n}\n"],"mappings":";;;;;;;;AAAA,OAAO,WAAW;AAClB;AAAA,EACE,0BAA0B;AAAA,EAC1B,kBAAkB;AAAA,OACb;AAGA,IAAM,iBAAN,MAAM,uBAAsB,MAAM,UAOvC;AAAA,EACA,YAAY,OAAY;AACtB,UAAM,KAAK;AACX,SAAK,QAAQ,EAAE,UAAU,OAAO,OAAO,KAAK;AAAA,EAC9C;AAAA,EAEA,OAAO,yBAAyB,OAAgB;AAC9C,WAAO,EAAE,UAAU,MAAM,MAAM;AAAA,EACjC;AAAA,EAEA,SAAS;AACP,QAAI,KAAK,MAAM,UAAU;AACvB,YAAM,WAAW,KAAK,MAAM;AAC5B,aAAO,MAAM,cAAc,UAAU;AAAA,QACnC,GAAG,KAAK,MAAM;AAAA,QACd,OAAO,KAAK,MAAM;AAAA,QAClB,OAAO,6BAAM,KAAK,SAAS,EAAE,UAAU,OAAO,OAAO,KAAK,CAAC,GAApD;AAAA,MACT,CAAC;AAAA,IACH;AACA,WAAO,KAAK,MAAM;AAAA,EACpB;AACF;AArBE;AAPK,IAAM,gBAAN;AA8BA,IAAM,OAAO;AACb,IAAM,eAAe;AAAA,EAC1B,WAAW,EAAE,MAAM,MAAM,KAAK,MAAM;AACtC;AACO,IAAM,WAAW,MAAM;AACvB,IAAM,WAAW,MAAM;AACvB,IAAM,gBAAgB,MAAM;AAC5B,IAAM,iBAAiB,MAAM;AAC7B,IAAM,kBAAkB,wBAAC,YAC9B,4BAA4B,OAAO,OAAO,GADb;AAExB,IAAM,iBAAiB;AACvB,IAAM,yBAAyB;AAEtC,IAAO,iBAAQ;AAOR,SAAS,wBAAwB,OAAuB;AAC7D,QAAM,gBAAgB;AAAA,IACpB,MAAM,QAAQ,QAAQ;AAAA,IACtB,MAAM,QAAQ,QAAQ;AAAA,IACtB,MAAM,QAAQ,MAAM;AAAA,IACpB,MAAM,QAAQ,MAAM;AAAA,IACpB,MAAM,QAAQ,MAAM;AAAA,IACpB,MAAM,QAAQ,MAAM;AAAA,EACtB,EAAE,OAAO,CAAC,UAAU,SAAS,CAAC;AAE9B,MAAI,cAAc,WAAW,EAAG,QAAO;AAEvC,QAAM,cAAc,KAAK,IAAI,GAAG,aAAa;AAC7C,QAAM,WAAW,MAAM,YAAY,KAAK,WAAW;AACnD,SAAO,YAAY,IAAI,WAAW;AACpC;AAfgB;","names":[]}