403Webshell
Server IP : 159.203.156.69  /  Your IP : 216.73.216.37
Web Server : nginx/1.24.0
System : Linux main-ubuntu 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/tanviranik.com/node_modules/vinext/dist/server/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/tanviranik.com/node_modules/vinext/dist/server/app-server-action-execution.js.map
{"version":3,"file":"app-server-action-execution.js","names":[],"sources":["../../src/server/app-server-action-execution.ts"],"sourcesContent":["import { getAndClearActionRevalidationKind, type ActionRevalidationKind } from \"vinext/shims/cache\";\nimport type { HeadersAccessPhase } from \"vinext/shims/headers\";\nimport { type FetchCacheMode, setCurrentFetchCacheMode } from \"vinext/shims/fetch-cache\";\nimport type { ReactFormState } from \"react-dom/client\";\nimport {\n  ACTION_REDIRECT_HEADER,\n  ACTION_REDIRECT_STATUS_HEADER,\n  ACTION_REDIRECT_TYPE_HEADER,\n  ACTION_REVALIDATED_HEADER,\n} from \"./headers.js\";\nimport { VINEXT_RSC_VARY_HEADER } from \"./app-rsc-cache-busting.js\";\nimport { resolveAppPageActionRerenderTarget } from \"./app-page-request.js\";\nimport { mergeMiddlewareResponseHeaders } from \"./middleware-response-headers.js\";\nimport {\n  APP_RSC_RENDER_MODE_ACTION_RERENDER_PRESERVE_UI,\n  type AppRscRenderMode,\n} from \"./app-rsc-render-mode.js\";\nimport {\n  getNextErrorDigest,\n  parseNextHttpErrorDigest,\n  parseNextRedirectDigest,\n} from \"./next-error-digest.js\";\nimport { validateCsrfOrigin, validateServerActionPayload } from \"./request-pipeline.js\";\nimport { readStreamAsTextWithLimit } from \"../utils/text-stream.js\";\nimport {\n  createServerActionNotFoundResponse,\n  getServerActionNotFoundMessage,\n  isServerActionNotFoundError,\n} from \"./server-action-not-found.js\";\nimport { internalServerErrorResponse, payloadTooLargeResponse } from \"./http-error-responses.js\";\n\ntype AppPageParams = Record<string, string | string[]>;\n\ntype AppServerActionErrorReporter = (\n  error: Error,\n  request: { path: string; method: string; headers: Record<string, string> },\n  route: { routerKind: \"App Router\"; routePath: string; routeType: \"action\" },\n) => void;\n\ntype AppServerActionDecoder = (body: FormData) => Promise<unknown>;\ntype AppServerActionFormStateDecoder = (\n  actionResult: unknown,\n  body: FormData,\n) => Promise<ReactFormState | undefined>;\n\ntype ReadFormDataWithLimit = (request: Request, maxBytes: number) => Promise<FormData>;\n\ntype ReadBodyWithLimit = (request: Request, maxBytes: number) => Promise<string>;\n\ntype AppServerActionFunction = (...args: unknown[]) => unknown;\n\ntype AppServerActionReturnValue =\n  | {\n      data: unknown;\n      ok: true;\n    }\n  | {\n      data: unknown;\n      ok: false;\n    };\n\ntype AppServerActionRedirect = {\n  status: number;\n  type: string;\n  url: string;\n};\n\ntype AppServerActionRoute = {\n  pattern: string;\n};\n\ntype ProgressiveServerActionResult = {\n  formState: ReactFormState | null;\n  kind: \"form-state\";\n};\n\ntype AppServerActionMatch<TRoute extends AppServerActionRoute> = {\n  params: AppPageParams;\n  route: TRoute;\n};\n\ntype AppServerActionIntercept<TPage = unknown> = {\n  matchedParams: AppPageParams;\n  page: TPage;\n  slotKey: string;\n  sourceRouteIndex: number;\n};\n\ntype BuildServerActionPageElementOptions<TRoute extends AppServerActionRoute, TInterceptOpts> = {\n  cleanPathname: string;\n  interceptOpts: TInterceptOpts | undefined;\n  isRscRequest: boolean;\n  mountedSlotsHeader: string | null;\n  params: AppPageParams;\n  request: Request;\n  route: TRoute;\n  searchParams: URLSearchParams;\n  renderMode: AppRscRenderMode;\n};\n\ntype AppServerActionRscModel<TElement> = {\n  /**\n   * Omitted when the action did not invalidate page data. This mirrors Next.js'\n   * empty Flight payload for non-revalidating fetch actions: the client resolves\n   * the action value without committing a visible router update.\n   */\n  root?: TElement;\n  returnValue: AppServerActionReturnValue;\n};\n\ntype RenderServerActionRscStreamOptions<TTemporaryReferences> = {\n  onError: (error: unknown) => unknown;\n  temporaryReferences: TTemporaryReferences;\n};\n\ntype DecodeServerActionReplyOptions<TTemporaryReferences> = {\n  temporaryReferences: TTemporaryReferences;\n};\n\nexport type HandleProgressiveServerActionRequestOptions = {\n  actionId: string | null;\n  allowedOrigins: string[];\n  cleanPathname: string;\n  clearRequestContext: () => void;\n  contentType: string;\n  decodeAction: AppServerActionDecoder;\n  decodeFormState: AppServerActionFormStateDecoder;\n  getAndClearPendingCookies: () => string[];\n  getDraftModeCookieHeader: () => string | null | undefined;\n  maxActionBodySize: number;\n  middlewareHeaders: Headers | null;\n  readFormDataWithLimit: ReadFormDataWithLimit;\n  reportRequestError: AppServerActionErrorReporter;\n  request: Request;\n  setHeadersAccessPhase: (phase: HeadersAccessPhase) => HeadersAccessPhase;\n};\n\nexport type HandleServerActionRscRequestOptions<\n  TElement,\n  TRoute extends AppServerActionRoute,\n  TInterceptOpts,\n  TTemporaryReferences,\n  TPage = unknown,\n> = {\n  actionId: string | null;\n  allowedOrigins: string[];\n  buildPageElement: (\n    options: BuildServerActionPageElementOptions<TRoute, TInterceptOpts>,\n  ) => TElement;\n  cleanPathname: string;\n  clearRequestContext: () => void;\n  contentType: string;\n  createNotFoundElement: (routeId: string) => TElement;\n  createPayloadRouteId: (pathname: string, interceptionContext: string | null) => string;\n  createRscOnErrorHandler: (\n    request: Request,\n    pathname: string,\n    pattern: string,\n  ) => (error: unknown) => unknown;\n  createTemporaryReferenceSet: () => TTemporaryReferences;\n  decodeReply: (\n    body: string | FormData,\n    options: DecodeServerActionReplyOptions<TTemporaryReferences>,\n  ) => Promise<unknown[]> | unknown[];\n  findIntercept: (pathname: string) => AppServerActionIntercept<TPage> | null;\n  getAndClearPendingCookies: () => string[];\n  getDraftModeCookieHeader: () => string | null | undefined;\n  getRouteParamNames: (route: TRoute) => readonly string[];\n  getSourceRoute: (sourceRouteIndex: number) => TRoute | undefined;\n  isRscRequest: boolean;\n  loadServerAction: (actionId: string) => Promise<unknown>;\n  matchRoute: (pathname: string) => AppServerActionMatch<TRoute> | null;\n  maxActionBodySize: number;\n  middlewareHeaders: Headers | null;\n  middlewareStatus: number | null | undefined;\n  mountedSlotsHeader: string | null;\n  readBodyWithLimit: ReadBodyWithLimit;\n  readFormDataWithLimit: ReadFormDataWithLimit;\n  renderToReadableStream: (\n    model: AppServerActionRscModel<TElement>,\n    options: RenderServerActionRscStreamOptions<TTemporaryReferences>,\n  ) => BodyInit | null | Promise<BodyInit | null>;\n  reportRequestError: AppServerActionErrorReporter;\n  resolveRouteFetchCacheMode?: (route: TRoute) => FetchCacheMode | null;\n  request: Request;\n  sanitizeErrorForClient: (error: unknown) => unknown;\n  searchParams: URLSearchParams;\n  setHeadersAccessPhase: (phase: HeadersAccessPhase) => HeadersAccessPhase;\n  setNavigationContext: (context: {\n    params: AppPageParams;\n    pathname: string;\n    searchParams: URLSearchParams;\n  }) => void;\n  toInterceptOpts: (intercept: AppServerActionIntercept<TPage>) => TInterceptOpts;\n};\n\ntype ActionControlResponse =\n  | {\n      kind: \"redirect\";\n      url: string;\n    }\n  | {\n      kind: \"status\";\n      statusCode: number;\n    };\n\n/**\n * Matches Next.js' server action argument cap to prevent stack overflow in\n * Function.prototype.apply when decoding hostile action payloads.\n */\nconst SERVER_ACTION_ARGS_LIMIT = 1000;\nconst ACTION_DID_NOT_REVALIDATE = 0 satisfies ActionRevalidationKind;\nconst ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC = 1 satisfies ActionRevalidationKind;\n\nfunction setActionRevalidatedHeader(headers: Headers, kind: ActionRevalidationKind): void {\n  if (kind === ACTION_DID_NOT_REVALIDATE) return;\n  headers.set(ACTION_REVALIDATED_HEADER, JSON.stringify(kind));\n}\n\nfunction resolveActionRevalidationKind(hasModifiedCookies: boolean): ActionRevalidationKind {\n  const revalidationKind = getAndClearActionRevalidationKind();\n  // Cookie mutations are a hard override to STATIC_AND_DYNAMIC: any cookie\n  // change can invalidate downstream cached payloads regardless of what\n  // (if anything) the action explicitly revalidated, so we always emit the\n  // strongest kind. STATIC_AND_DYNAMIC is also the lowest numeric value, so\n  // this matches the max-precedence semantics in markActionRevalidation.\n  if (hasModifiedCookies) return ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC;\n  return revalidationKind;\n}\n\nfunction isRequestBodyTooLarge(error: unknown): boolean {\n  return error instanceof Error && error.message === \"Request body too large\";\n}\n\nfunction isAppServerActionFunction(action: unknown): action is AppServerActionFunction {\n  return typeof action === \"function\";\n}\n\nfunction normalizeError(error: unknown): Error {\n  return error instanceof Error ? error : new Error(String(error));\n}\n\nfunction getServerActionFailureMessage(error: unknown): string {\n  return error instanceof Error && error.message ? error.message : String(error);\n}\n\nfunction validateServerActionArgs(args: readonly unknown[]): void {\n  if (args.length > SERVER_ACTION_ARGS_LIMIT) {\n    throw new Error(\n      `Server Action arguments list is too long (${args.length}). Maximum allowed is ${SERVER_ACTION_ARGS_LIMIT}.`,\n    );\n  }\n}\n\nexport async function readActionBodyWithLimit(request: Request, maxBytes: number): Promise<string> {\n  if (!request.body) return \"\";\n  return readStreamAsTextWithLimit(request.body, maxBytes, () => {\n    throw new Error(\"Request body too large\");\n  });\n}\n\nexport async function readActionFormDataWithLimit(\n  request: Request,\n  maxBytes: number,\n): Promise<FormData> {\n  if (!request.body) return new FormData();\n\n  const reader = request.body.getReader();\n  const chunks: Uint8Array[] = [];\n  let totalSize = 0;\n\n  for (;;) {\n    const result = await reader.read();\n    if (result.done) break;\n\n    totalSize += result.value.byteLength;\n    if (totalSize > maxBytes) {\n      await reader.cancel();\n      throw new Error(\"Request body too large\");\n    }\n    chunks.push(result.value);\n  }\n\n  const combined = new Uint8Array(totalSize);\n  let offset = 0;\n  for (const chunk of chunks) {\n    combined.set(chunk, offset);\n    offset += chunk.byteLength;\n  }\n\n  return new Response(combined, {\n    headers: { \"Content-Type\": request.headers.get(\"content-type\") || \"\" },\n  }).formData();\n}\n\nfunction getActionControlResponse(error: unknown): ActionControlResponse | null {\n  const digest = getNextErrorDigest(error);\n  if (!digest) return null;\n\n  const redirect = parseNextRedirectDigest(digest);\n  if (redirect) {\n    return {\n      kind: \"redirect\",\n      url: redirect.url,\n    };\n  }\n\n  const httpError = parseNextHttpErrorDigest(digest);\n  if (httpError) {\n    if (!Number.isInteger(httpError.status)) {\n      return null;\n    }\n\n    return {\n      kind: \"status\",\n      statusCode: httpError.status,\n    };\n  }\n\n  return null;\n}\n\nfunction getActionRedirect(error: unknown): AppServerActionRedirect | null {\n  const digest = getNextErrorDigest(error);\n  if (!digest) return null;\n\n  const redirect = parseNextRedirectDigest(digest);\n  if (!redirect) return null;\n\n  return {\n    status: redirect.status,\n    type: redirect.type ?? \"push\",\n    url: redirect.url,\n  };\n}\n\nfunction getActionHttpFallbackStatus(error: unknown): number | null {\n  const digest = getNextErrorDigest(error);\n  if (!digest) return null;\n\n  const httpError = parseNextHttpErrorDigest(digest);\n  if (!httpError || !Number.isInteger(httpError.status)) return null;\n\n  return httpError.status;\n}\n\nfunction createServerActionErrorResponse(\n  error: unknown,\n  options: {\n    cleanPathname: string;\n    clearRequestContext: () => void;\n    getAndClearPendingCookies: () => string[];\n    reportRequestError: AppServerActionErrorReporter;\n    request: Request;\n  },\n): Response {\n  options.getAndClearPendingCookies();\n  console.error(\"[vinext] Server action error:\", error);\n  options.reportRequestError(\n    normalizeError(error),\n    {\n      path: options.cleanPathname,\n      method: options.request.method,\n      headers: Object.fromEntries(options.request.headers.entries()),\n    },\n    { routerKind: \"App Router\", routePath: options.cleanPathname, routeType: \"action\" },\n  );\n  options.clearRequestContext();\n  return internalServerErrorResponse(\n    process.env.NODE_ENV === \"production\"\n      ? undefined\n      : \"Server action failed: \" + getServerActionFailureMessage(error),\n  );\n}\n\nfunction createActionNotFoundResponse(\n  actionId: string | null,\n  options: {\n    clearRequestContext: () => void;\n    getAndClearPendingCookies: () => string[];\n  },\n): Response {\n  options.getAndClearPendingCookies();\n  console.warn(getServerActionNotFoundMessage(actionId));\n  options.clearRequestContext();\n  return createServerActionNotFoundResponse();\n}\n\nexport function isProgressiveServerActionRequest(\n  request: Pick<Request, \"method\">,\n  contentType: string,\n  actionId: string | null,\n): boolean {\n  return (\n    request.method.toUpperCase() === \"POST\" &&\n    contentType.startsWith(\"multipart/form-data\") &&\n    !actionId\n  );\n}\n\nexport async function handleProgressiveServerActionRequest(\n  options: HandleProgressiveServerActionRequestOptions,\n): Promise<Response | ProgressiveServerActionResult | null> {\n  if (!isProgressiveServerActionRequest(options.request, options.contentType, options.actionId)) {\n    return null;\n  }\n\n  const csrfResponse = validateCsrfOrigin(options.request, options.allowedOrigins);\n  if (csrfResponse) {\n    return csrfResponse;\n  }\n\n  const contentLength = parseInt(options.request.headers.get(\"content-length\") || \"0\", 10);\n  if (contentLength > options.maxActionBodySize) {\n    options.clearRequestContext();\n    return payloadTooLargeResponse();\n  }\n\n  try {\n    let body: FormData;\n    try {\n      // Progressive submissions can still fall through to a regular page render when\n      // the multipart body is not an action payload. Read a clone so that fallback\n      // code can still consume the original request body.\n      body = await options.readFormDataWithLimit(\n        options.request.clone(),\n        options.maxActionBodySize,\n      );\n    } catch (error) {\n      if (isRequestBodyTooLarge(error)) {\n        options.clearRequestContext();\n        return payloadTooLargeResponse();\n      }\n      throw error;\n    }\n\n    const payloadResponse = await validateServerActionPayload(body);\n    if (payloadResponse) {\n      options.clearRequestContext();\n      return payloadResponse;\n    }\n\n    const action = await options.decodeAction(body);\n    if (!isAppServerActionFunction(action)) {\n      return null;\n    }\n\n    let actionControlResponse: ActionControlResponse | null = null;\n    let actionResult: unknown;\n    const previousHeadersPhase = options.setHeadersAccessPhase(\"action\");\n    try {\n      actionResult = await action();\n    } catch (error) {\n      actionControlResponse = getActionControlResponse(error);\n      if (!actionControlResponse) {\n        throw error;\n      }\n    } finally {\n      options.setHeadersAccessPhase(previousHeadersPhase);\n    }\n\n    if (!actionControlResponse) {\n      getAndClearActionRevalidationKind();\n      const formState = await options.decodeFormState(actionResult, body);\n      return { kind: \"form-state\", formState: formState ?? null };\n    }\n\n    const actionPendingCookies = options.getAndClearPendingCookies();\n    const actionDraftCookie = options.getDraftModeCookieHeader();\n    const actionRevalidationKind = resolveActionRevalidationKind(\n      actionPendingCookies.length > 0 || Boolean(actionDraftCookie),\n    );\n    options.clearRequestContext();\n\n    const headers = new Headers();\n    if (actionControlResponse.kind === \"redirect\") {\n      headers.set(\"Location\", new URL(actionControlResponse.url, options.request.url).toString());\n    }\n    mergeMiddlewareResponseHeaders(headers, options.middlewareHeaders);\n    for (const cookie of actionPendingCookies) {\n      headers.append(\"Set-Cookie\", cookie);\n    }\n    if (actionDraftCookie) {\n      headers.append(\"Set-Cookie\", actionDraftCookie);\n    }\n    setActionRevalidatedHeader(headers, actionRevalidationKind);\n\n    return new Response(null, {\n      status: actionControlResponse.kind === \"redirect\" ? 303 : actionControlResponse.statusCode,\n      headers,\n    });\n  } catch (error) {\n    if (isServerActionNotFoundError(error, null)) {\n      return createActionNotFoundResponse(null, {\n        clearRequestContext: options.clearRequestContext,\n        getAndClearPendingCookies: options.getAndClearPendingCookies,\n      });\n    }\n\n    getAndClearActionRevalidationKind();\n    options.getAndClearPendingCookies();\n    // Next.js rethrows generic MPA action errors into its page render path.\n    // vinext does not yet implement that form-state render path, so unexpected\n    // action failures remain request failures here.\n    console.error(\"[vinext] Server action error:\", error);\n    options.reportRequestError(\n      normalizeError(error),\n      {\n        path: options.cleanPathname,\n        method: options.request.method,\n        headers: Object.fromEntries(options.request.headers.entries()),\n      },\n      { routerKind: \"App Router\", routePath: options.cleanPathname, routeType: \"action\" },\n    );\n    options.clearRequestContext();\n    return internalServerErrorResponse(\n      process.env.NODE_ENV === \"production\"\n        ? undefined\n        : \"Server action failed: \" + getServerActionFailureMessage(error),\n    );\n  }\n}\n\nexport async function handleServerActionRscRequest<\n  TElement,\n  TRoute extends AppServerActionRoute,\n  TInterceptOpts,\n  TTemporaryReferences,\n  TPage = unknown,\n>(\n  options: HandleServerActionRscRequestOptions<\n    TElement,\n    TRoute,\n    TInterceptOpts,\n    TTemporaryReferences,\n    TPage\n  >,\n): Promise<Response | null> {\n  if (options.request.method.toUpperCase() !== \"POST\" || !options.actionId) {\n    return null;\n  }\n\n  const csrfResponse = validateCsrfOrigin(options.request, options.allowedOrigins);\n  if (csrfResponse) return csrfResponse;\n\n  const contentLength = parseInt(options.request.headers.get(\"content-length\") || \"0\", 10);\n  if (contentLength > options.maxActionBodySize) {\n    options.clearRequestContext();\n    return payloadTooLargeResponse();\n  }\n\n  try {\n    let body: string | FormData;\n    try {\n      body = options.contentType.startsWith(\"multipart/form-data\")\n        ? await options.readFormDataWithLimit(options.request, options.maxActionBodySize)\n        : await options.readBodyWithLimit(options.request, options.maxActionBodySize);\n    } catch (error) {\n      if (isRequestBodyTooLarge(error)) {\n        options.clearRequestContext();\n        return payloadTooLargeResponse();\n      }\n      throw error;\n    }\n\n    const payloadResponse = await validateServerActionPayload(body);\n    if (payloadResponse) {\n      options.clearRequestContext();\n      return payloadResponse;\n    }\n\n    let action: unknown;\n    try {\n      action = await options.loadServerAction(options.actionId);\n    } catch (error) {\n      if (isServerActionNotFoundError(error, options.actionId)) {\n        return createActionNotFoundResponse(options.actionId, {\n          clearRequestContext: options.clearRequestContext,\n          getAndClearPendingCookies: options.getAndClearPendingCookies,\n        });\n      }\n\n      throw error;\n    }\n\n    if (!isAppServerActionFunction(action)) {\n      return createActionNotFoundResponse(options.actionId, {\n        clearRequestContext: options.clearRequestContext,\n        getAndClearPendingCookies: options.getAndClearPendingCookies,\n      });\n    }\n\n    const temporaryReferences = options.createTemporaryReferenceSet();\n    const args = await options.decodeReply(body, { temporaryReferences });\n    let returnValue: AppServerActionReturnValue;\n    let actionRedirect: AppServerActionRedirect | null = null;\n    let actionStatus = 200;\n    const previousHeadersPhase = options.setHeadersAccessPhase(\"action\");\n    try {\n      try {\n        validateServerActionArgs(args);\n        const data = await action.apply(null, args);\n        returnValue = { ok: true, data };\n      } catch (error) {\n        actionRedirect = getActionRedirect(error);\n        if (actionRedirect) {\n          returnValue = { ok: true, data: undefined };\n        } else {\n          const httpFallbackStatus = getActionHttpFallbackStatus(error);\n          if (httpFallbackStatus !== null) {\n            actionStatus = httpFallbackStatus;\n            returnValue = { ok: false, data: error };\n          } else {\n            console.error(\"[vinext] Server action error:\", error);\n            returnValue = { ok: false, data: options.sanitizeErrorForClient(error) };\n          }\n        }\n      }\n    } finally {\n      options.setHeadersAccessPhase(previousHeadersPhase);\n    }\n\n    if (actionRedirect) {\n      const actionPendingCookies = options.getAndClearPendingCookies();\n      const actionDraftCookie = options.getDraftModeCookieHeader();\n      const actionRevalidationKind = resolveActionRevalidationKind(\n        actionPendingCookies.length > 0 || Boolean(actionDraftCookie),\n      );\n      options.clearRequestContext();\n      const redirectHeaders = new Headers({\n        \"Content-Type\": \"text/x-component; charset=utf-8\",\n        Vary: VINEXT_RSC_VARY_HEADER,\n      });\n      mergeMiddlewareResponseHeaders(redirectHeaders, options.middlewareHeaders);\n      redirectHeaders.set(ACTION_REDIRECT_HEADER, actionRedirect.url);\n      redirectHeaders.set(ACTION_REDIRECT_TYPE_HEADER, actionRedirect.type);\n      redirectHeaders.set(ACTION_REDIRECT_STATUS_HEADER, String(actionRedirect.status));\n      for (const cookie of actionPendingCookies) {\n        redirectHeaders.append(\"Set-Cookie\", cookie);\n      }\n      if (actionDraftCookie) redirectHeaders.append(\"Set-Cookie\", actionDraftCookie);\n      setActionRevalidatedHeader(redirectHeaders, actionRevalidationKind);\n      return new Response(\"\", { status: 200, headers: redirectHeaders });\n    }\n\n    const actionPendingCookies = options.getAndClearPendingCookies();\n    const actionDraftCookie = options.getDraftModeCookieHeader();\n    const actionRevalidationKind = resolveActionRevalidationKind(\n      actionPendingCookies.length > 0 || Boolean(actionDraftCookie),\n    );\n\n    const shouldSkipPageRendering = actionRevalidationKind === ACTION_DID_NOT_REVALIDATE;\n    if (shouldSkipPageRendering) {\n      const onRenderError = options.createRscOnErrorHandler(\n        options.request,\n        options.cleanPathname,\n        options.cleanPathname,\n      );\n      const rscStream = await options.renderToReadableStream(\n        { returnValue },\n        { temporaryReferences, onError: onRenderError },\n      );\n\n      options.clearRequestContext();\n\n      const actionHeaders = new Headers({\n        \"Content-Type\": \"text/x-component; charset=utf-8\",\n        Vary: VINEXT_RSC_VARY_HEADER,\n      });\n      mergeMiddlewareResponseHeaders(actionHeaders, options.middlewareHeaders);\n\n      return new Response(rscStream, {\n        status: options.middlewareStatus ?? actionStatus,\n        headers: actionHeaders,\n      });\n    }\n\n    const match = options.matchRoute(options.cleanPathname);\n    let element: TElement;\n    let errorPattern = match ? match.route.pattern : options.cleanPathname;\n    if (match) {\n      const { route: actionRoute, params: actionParams } = match;\n      const actionRerenderTarget = resolveAppPageActionRerenderTarget({\n        cleanPathname: options.cleanPathname,\n        currentParams: actionParams,\n        currentRoute: actionRoute,\n        findIntercept: options.findIntercept,\n        getRouteParamNames: options.getRouteParamNames,\n        getSourceRoute: options.getSourceRoute,\n        isRscRequest: options.isRscRequest,\n        toInterceptOpts: options.toInterceptOpts,\n      });\n\n      options.setNavigationContext({\n        pathname: options.cleanPathname,\n        searchParams: options.searchParams,\n        params: actionRerenderTarget.navigationParams,\n      });\n      setCurrentFetchCacheMode(\n        options.resolveRouteFetchCacheMode?.(actionRerenderTarget.route) ?? null,\n      );\n      element = options.buildPageElement({\n        cleanPathname: options.cleanPathname,\n        interceptOpts: actionRerenderTarget.interceptOpts,\n        isRscRequest: options.isRscRequest,\n        mountedSlotsHeader: options.mountedSlotsHeader,\n        params: actionRerenderTarget.params,\n        request: options.request,\n        route: actionRerenderTarget.route,\n        searchParams: options.searchParams,\n        renderMode: APP_RSC_RENDER_MODE_ACTION_RERENDER_PRESERVE_UI,\n      });\n      errorPattern = actionRerenderTarget.route.pattern;\n    } else {\n      const actionRouteId = options.createPayloadRouteId(options.cleanPathname, null);\n      element = options.createNotFoundElement(actionRouteId);\n    }\n\n    const onRenderError = options.createRscOnErrorHandler(\n      options.request,\n      options.cleanPathname,\n      errorPattern,\n    );\n    const rscStream = await options.renderToReadableStream(\n      { root: element, returnValue },\n      { temporaryReferences, onError: onRenderError },\n    );\n\n    const actionHeaders = new Headers({\n      \"Content-Type\": \"text/x-component; charset=utf-8\",\n      Vary: VINEXT_RSC_VARY_HEADER,\n    });\n    mergeMiddlewareResponseHeaders(actionHeaders, options.middlewareHeaders);\n    setActionRevalidatedHeader(actionHeaders, actionRevalidationKind);\n    const actionResponse = new Response(rscStream, {\n      status: options.middlewareStatus ?? actionStatus,\n      headers: actionHeaders,\n    });\n    if (actionPendingCookies.length > 0 || actionDraftCookie) {\n      for (const cookie of actionPendingCookies) {\n        actionResponse.headers.append(\"Set-Cookie\", cookie);\n      }\n      if (actionDraftCookie) actionResponse.headers.append(\"Set-Cookie\", actionDraftCookie);\n    }\n    return actionResponse;\n  } catch (error) {\n    getAndClearActionRevalidationKind();\n    return createServerActionErrorResponse(error, {\n      cleanPathname: options.cleanPathname,\n      clearRequestContext: options.clearRequestContext,\n      getAndClearPendingCookies: options.getAndClearPendingCookies,\n      reportRequestError: options.reportRequestError,\n      request: options.request,\n    });\n  }\n}\n"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit