/
opt
/
canhelp
/
node_modules
/
next
/
dist
/
esm
/
server
/
app-render
/
/opt/canhelp/node_modules/next/dist/esm/server/app-render
mkdir
upload
Name
Size
Mode
Actions
metadata-insertion/
-
0755
rm
module-loading/
-
0755
rm
rsc/
-
0755
rm
action-async-storage-instance.js
192
0644
edit
dl
rm
action-async-storage-instance.js.map
503
0644
edit
dl
rm
action-async-storage.external.js
302
0644
edit
dl
rm
action-async-storage.external.js.map
765
0644
edit
dl
rm
action-handler.js
47638
0644
edit
dl
rm
action-handler.js.map
68659
0644
edit
dl
rm
action-utils.js
3705
0644
edit
dl
rm
action-utils.js.map
5560
0644
edit
dl
rm
after-task-async-storage-instance.js
199
0644
edit
dl
rm
after-task-async-storage-instance.js.map
523
0644
edit
dl
rm
after-task-async-storage.external.js
311
0644
edit
dl
rm
after-task-async-storage.external.js.map
1064
0644
edit
dl
rm
app-render-prerender-utils.js
6762
0644
edit
dl
rm
app-render-prerender-utils.js.map
10813
0644
edit
dl
rm
app-render-render-utils.js
1119
0644
edit
dl
rm
app-render-render-utils.js.map
1618
0644
edit
dl
rm
app-render.js
157902
0644
edit
dl
rm
app-render.js.map
239776
0644
edit
dl
rm
async-local-storage.js
1496
0644
edit
dl
rm
async-local-storage.js.map
2735
0644
edit
dl
rm
cache-signal.js
5730
0644
edit
dl
rm
cache-signal.js.map
8119
0644
edit
dl
rm
collect-segment-data.js
13005
0644
edit
dl
rm
collect-segment-data.js.map
22398
0644
edit
dl
rm
create-component-styles-and-scripts.js
1138
0644
edit
dl
rm
create-component-styles-and-scripts.js.map
2482
0644
edit
dl
rm
create-component-tree.js
39485
0644
edit
dl
rm
create-component-tree.js.map
59317
0644
edit
dl
rm
create-error-handler.js
8900
0644
edit
dl
rm
create-error-handler.js.map
13934
0644
edit
dl
rm
create-flight-router-state-from-loader-tree.js
3249
0644
edit
dl
rm
create-flight-router-state-from-loader-tree.js.map
5682
0644
edit
dl
rm
csrf-protection.js
2801
0644
edit
dl
rm
csrf-protection.js.map
3924
0644
edit
dl
rm
dynamic-access-async-storage-instance.js
207
0644
edit
dl
rm
dynamic-access-async-storage-instance.js.map
537
0644
edit
dl
rm
dynamic-access-async-storage.external.js
339
0644
edit
dl
rm
dynamic-access-async-storage.external.js.map
823
0644
edit
dl
rm
dynamic-rendering.js
30863
0644
edit
dl
rm
dynamic-rendering.js.map
45598
0644
edit
dl
rm
encryption-utils-server.js
4277
0644
edit
dl
rm
encryption-utils-server.js.map
7131
0644
edit
dl
rm
encryption-utils.js
6595
0644
edit
dl
rm
encryption-utils.js.map
11128
0644
edit
dl
rm
encryption.js
11249
0644
edit
dl
rm
encryption.js.map
16768
0644
edit
dl
rm
entry-base.js
3181
0644
edit
dl
rm
entry-base.js.map
6055
0644
edit
dl
rm
flight-render-result.js
509
0644
edit
dl
rm
flight-render-result.js.map
987
0644
edit
dl
rm
get-asset-query-string.js
779
0644
edit
dl
rm
get-asset-query-string.js.map
1573
0644
edit
dl
rm
get-css-inlined-link-tags.js
1403
0644
edit
dl
rm
get-css-inlined-link-tags.js.map
2570
0644
edit
dl
rm
get-layer-assets.js
2787
0644
edit
dl
rm
get-layer-assets.js.map
5550
0644
edit
dl
rm
get-preloadable-fonts.js
1294
0644
edit
dl
rm
get-preloadable-fonts.js.map
2384
0644
edit
dl
rm
get-script-nonce-from-header.js
1775
0644
edit
dl
rm
get-script-nonce-from-header.js.map
2784
0644
edit
dl
rm
get-segment-param.js
1358
0644
edit
dl
rm
get-segment-param.js.map
2352
0644
edit
dl
rm
get-short-dynamic-param-type.js
664
0644
edit
dl
rm
get-short-dynamic-param-type.js.map
1167
0644
edit
dl
rm
has-loading-component-in-tree.js
312
0644
edit
dl
rm
has-loading-component-in-tree.js.map
796
0644
edit
dl
rm
interop-default.js
181
0644
edit
dl
rm
interop-default.js.map
394
0644
edit
dl
rm
make-get-server-inserted-html.js
4076
0644
edit
dl
rm
make-get-server-inserted-html.js.map
6615
0644
edit
dl
rm
parse-and-validate-flight-router-state.js
1571
0644
edit
dl
rm
parse-and-validate-flight-router-state.js.map
2435
0644
edit
dl
rm
parse-loader-tree.js
798
0644
edit
dl
rm
parse-loader-tree.js.map
1427
0644
edit
dl
rm
postponed-state.js
5431
0644
edit
dl
rm
postponed-state.js.map
9091
0644
edit
dl
rm
prospective-render-utils.js
2277
0644
edit
dl
rm
prospective-render-utils.js.map
3421
0644
edit
dl
rm
react-large-shell-error.js
370
0644
edit
dl
rm
react-large-shell-error.js.map
773
0644
edit
dl
rm
react-server.node.js
316
0644
edit
dl
rm
react-server.node.js.map
637
0644
edit
dl
rm
render-css-resource.js
2407
0644
edit
dl
rm
render-css-resource.js.map
3963
0644
edit
dl
rm
required-scripts.js
2442
0644
edit
dl
rm
required-scripts.js.map
4294
0644
edit
dl
rm
segment-explorer-path.js
2756
0644
edit
dl
rm
segment-explorer-path.js.map
5208
0644
edit
dl
rm
server-inserted-html.js
1030
0644
edit
dl
rm
server-inserted-html.js.map
1778
0644
edit
dl
rm
strip-flight-headers.js
365
0644
edit
dl
rm
strip-flight-headers.js.map
738
0644
edit
dl
rm
types.js
2020
0644
edit
dl
rm
types.js.map
13145
0644
edit
dl
rm
use-flight-response.js
6758
0644
edit
dl
rm
use-flight-response.js.map
11158
0644
edit
dl
rm
walk-tree-with-flight-router-state.js
10808
0644
edit
dl
rm
walk-tree-with-flight-router-state.js.map
17382
0644
edit
dl
rm
work-async-storage-instance.js
188
0644
edit
dl
rm
work-async-storage-instance.js.map
491
0644
edit
dl
rm
work-async-storage.external.js
292
0644
edit
dl
rm
work-async-storage.external.js.map
4274
0644
edit
dl
rm
work-unit-async-storage-instance.js
197
0644
edit
dl
rm
work-unit-async-storage-instance.js.map
517
0644
edit
dl
rm
work-unit-async-storage.external.js
6423
0644
edit
dl
rm
work-unit-async-storage.external.js.map
20959
0644
edit
dl
rm
Edit:
/opt/canhelp/node_modules/next/dist/esm/server/app-render/encryption-utils-server.js.map
(7131B)
{"version":3,"sources":["../../../src/server/app-render/encryption-utils-server.ts"],"sourcesContent":["// This file should never be bundled into application's runtime code and should\n// stay in the Next.js server.\nimport path from 'path'\nimport fs from 'fs'\nimport { getStorageDirectory } from '../cache-dir'\nimport { arrayBufferToString } from './encryption-utils'\n\n// Keep the key in memory as it should never change during the lifetime of the server in\n// both development and production.\nlet __next_encryption_key_generation_promise: Promise<string> | null = null\nconst CONFIG_FILE = '.rscinfo'\nconst ENCRYPTION_KEY = 'encryption.key'\nconst ENCRYPTION_EXPIRE_AT = 'encryption.expire_at'\nconst EXPIRATION = 1000 * 60 * 60 * 24 * 14 // 14 days\n\nasync function writeCache(distDir: string, configValue: string) {\n const cacheBaseDir = getStorageDirectory(distDir)\n if (!cacheBaseDir) return\n\n const configPath = path.join(cacheBaseDir, CONFIG_FILE)\n if (!fs.existsSync(cacheBaseDir)) {\n await fs.promises.mkdir(cacheBaseDir, { recursive: true })\n }\n await fs.promises.writeFile(\n configPath,\n JSON.stringify({\n [ENCRYPTION_KEY]: configValue,\n [ENCRYPTION_EXPIRE_AT]: Date.now() + EXPIRATION,\n })\n )\n}\n\n// This utility is used to get a key for the cache directory. If the\n// key is not present, it will generate a new one and store it in the\n// cache directory inside dist.\n// The key will also expire after a certain amount of time. Once it\n// expires, a new one will be generated.\n// During the lifetime of the server, it will be reused and never refreshed.\nasync function loadOrGenerateKey(\n distDir: string,\n isBuild: boolean,\n generateKey: () => Promise<string>\n): Promise<string> {\n const cacheBaseDir = getStorageDirectory(distDir)\n\n if (!cacheBaseDir) {\n // There's no persistent storage available. We generate a new key.\n // This also covers development time.\n return await generateKey()\n }\n\n const configPath = path.join(cacheBaseDir, CONFIG_FILE)\n async function hasCachedKey(): Promise<false | string> {\n if (!fs.existsSync(configPath)) return false\n try {\n const config = JSON.parse(await fs.promises.readFile(configPath, 'utf8'))\n if (!config) return false\n if (\n typeof config[ENCRYPTION_KEY] !== 'string' ||\n typeof config[ENCRYPTION_EXPIRE_AT] !== 'number'\n ) {\n return false\n }\n // For build time, we need to rotate the key if it's expired. Otherwise\n // (next start) we have to keep the key as it is so the runtime key matches\n // the build time key.\n if (isBuild && config[ENCRYPTION_EXPIRE_AT] < Date.now()) {\n return false\n }\n const cachedKey = config[ENCRYPTION_KEY]\n\n // If encryption key is provided via env, and it's not same as valid cache,\n // we should not use the cached key and respect the env key.\n if (\n cachedKey &&\n process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY &&\n cachedKey !== process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\n ) {\n return false\n }\n return cachedKey\n } catch {\n // Broken config file. We should generate a new key and overwrite it.\n return false\n }\n }\n const maybeValidKey = await hasCachedKey()\n if (typeof maybeValidKey === 'string') {\n return maybeValidKey\n }\n const key = await generateKey()\n await writeCache(distDir, key)\n\n return key\n}\n\nexport async function generateEncryptionKeyBase64({\n isBuild,\n distDir,\n}: {\n isBuild: boolean\n distDir: string\n}) {\n // This avoids it being generated multiple times in parallel.\n if (!__next_encryption_key_generation_promise) {\n __next_encryption_key_generation_promise = loadOrGenerateKey(\n distDir,\n isBuild,\n async () => {\n const providedKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\n\n if (providedKey) {\n return providedKey\n }\n const key = await crypto.subtle.generateKey(\n {\n name: 'AES-GCM',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt']\n )\n const exported = await crypto.subtle.exportKey('raw', key)\n return btoa(arrayBufferToString(exported))\n }\n )\n }\n return __next_encryption_key_generation_promise\n}\n"],"names":["path","fs","getStorageDirectory","arrayBufferToString","__next_encryption_key_generation_promise","CONFIG_FILE","ENCRYPTION_KEY","ENCRYPTION_EXPIRE_AT","EXPIRATION","writeCache","distDir","configValue","cacheBaseDir","configPath","join","existsSync","promises","mkdir","recursive","writeFile","JSON","stringify","Date","now","loadOrGenerateKey","isBuild","generateKey","hasCachedKey","config","parse","readFile","cachedKey","process","env","NEXT_SERVER_ACTIONS_ENCRYPTION_KEY","maybeValidKey","key","generateEncryptionKeyBase64","providedKey","crypto","subtle","name","length","exported","exportKey","btoa"],"mappings":"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","ignoreList":[0]}
Save
cmd:
run