one 1.1.483 → 1.1.484

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/cjs/cli/build.cjs +5 -41
  2. package/dist/cjs/cli/build.js +4 -44
  3. package/dist/cjs/cli/build.js.map +1 -1
  4. package/dist/cjs/cli/build.native.js +4 -42
  5. package/dist/cjs/cli/build.native.js.map +2 -2
  6. package/dist/cjs/server/createRoutesManifest.js.map +1 -1
  7. package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
  8. package/dist/cjs/server/getServerManifest.cjs +15 -7
  9. package/dist/cjs/server/getServerManifest.js +17 -8
  10. package/dist/cjs/server/getServerManifest.js.map +1 -1
  11. package/dist/cjs/server/getServerManifest.native.js +8 -5
  12. package/dist/cjs/server/getServerManifest.native.js.map +2 -2
  13. package/dist/cjs/utils/getPathnameFromFilePath.cjs +76 -0
  14. package/dist/cjs/utils/getPathnameFromFilePath.js +70 -0
  15. package/dist/cjs/utils/getPathnameFromFilePath.js.map +6 -0
  16. package/dist/cjs/utils/getPathnameFromFilePath.native.js +73 -0
  17. package/dist/cjs/utils/getPathnameFromFilePath.native.js.map +6 -0
  18. package/dist/cjs/vercel/build/buildVercelOutputDirectory.cjs +38 -8
  19. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js +48 -17
  20. package/dist/cjs/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  21. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js +50 -7
  22. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +2 -2
  23. package/dist/cjs/vercel/build/config/vc-build-output-config-base.cjs +9 -6
  24. package/dist/cjs/vercel/build/config/vc-build-output-config-base.js +7 -6
  25. package/dist/cjs/vercel/build/config/vc-build-output-config-base.js.map +1 -1
  26. package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js +4 -9
  27. package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js.map +2 -2
  28. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.cjs +54 -9
  29. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js +83 -15
  30. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.js.map +2 -2
  31. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js +73 -9
  32. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +2 -2
  33. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.cjs +9 -6
  34. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js +8 -6
  35. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
  36. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js +8 -6
  37. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +2 -2
  38. package/dist/cjs/vercel/build/getPathFromRoute.cjs +31 -0
  39. package/dist/cjs/vercel/build/getPathFromRoute.js +24 -0
  40. package/dist/cjs/vercel/build/getPathFromRoute.js.map +6 -0
  41. package/dist/cjs/vercel/build/getPathFromRoute.native.js +31 -0
  42. package/dist/cjs/vercel/build/getPathFromRoute.native.js.map +6 -0
  43. package/dist/esm/cli/build.js +4 -43
  44. package/dist/esm/cli/build.js.map +1 -1
  45. package/dist/esm/cli/build.mjs +4 -40
  46. package/dist/esm/cli/build.mjs.map +1 -1
  47. package/dist/esm/cli/build.native.js +4 -43
  48. package/dist/esm/cli/build.native.js.map +1 -1
  49. package/dist/esm/server/createRoutesManifest.js.map +1 -1
  50. package/dist/esm/server/createRoutesManifest.mjs.map +1 -1
  51. package/dist/esm/server/createRoutesManifest.native.js.map +1 -1
  52. package/dist/esm/server/getServerManifest.js +17 -8
  53. package/dist/esm/server/getServerManifest.js.map +1 -1
  54. package/dist/esm/server/getServerManifest.mjs +15 -7
  55. package/dist/esm/server/getServerManifest.mjs.map +1 -1
  56. package/dist/esm/server/getServerManifest.native.js +8 -4
  57. package/dist/esm/server/getServerManifest.native.js.map +1 -1
  58. package/dist/esm/utils/getPathnameFromFilePath.js +46 -0
  59. package/dist/esm/utils/getPathnameFromFilePath.js.map +6 -0
  60. package/dist/esm/utils/getPathnameFromFilePath.mjs +42 -0
  61. package/dist/esm/utils/getPathnameFromFilePath.mjs.map +1 -0
  62. package/dist/esm/utils/getPathnameFromFilePath.native.js +45 -0
  63. package/dist/esm/utils/getPathnameFromFilePath.native.js.map +1 -0
  64. package/dist/esm/vercel/build/buildVercelOutputDirectory.js +49 -18
  65. package/dist/esm/vercel/build/buildVercelOutputDirectory.js.map +1 -1
  66. package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs +38 -8
  67. package/dist/esm/vercel/build/buildVercelOutputDirectory.mjs.map +1 -1
  68. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js +45 -8
  69. package/dist/esm/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  70. package/dist/esm/vercel/build/config/vc-build-output-config-base.js +7 -6
  71. package/dist/esm/vercel/build/config/vc-build-output-config-base.js.map +1 -1
  72. package/dist/esm/vercel/build/config/vc-build-output-config-base.mjs +9 -6
  73. package/dist/esm/vercel/build/config/vc-build-output-config-base.mjs.map +1 -1
  74. package/dist/esm/vercel/build/config/vc-build-output-config-base.native.js +3 -6
  75. package/dist/esm/vercel/build/config/vc-build-output-config-base.native.js.map +1 -1
  76. package/dist/esm/vercel/build/generate/createApiServerlessFunction.js +88 -13
  77. package/dist/esm/vercel/build/generate/createApiServerlessFunction.js.map +1 -1
  78. package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs +53 -8
  79. package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs.map +1 -1
  80. package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js +52 -8
  81. package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
  82. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js +8 -5
  83. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.js.map +1 -1
  84. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs +8 -5
  85. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.mjs.map +1 -1
  86. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js +8 -5
  87. package/dist/esm/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
  88. package/dist/esm/vercel/build/getPathFromRoute.js +8 -0
  89. package/dist/esm/vercel/build/getPathFromRoute.js.map +6 -0
  90. package/dist/esm/vercel/build/getPathFromRoute.mjs +8 -0
  91. package/dist/esm/vercel/build/getPathFromRoute.mjs.map +1 -0
  92. package/dist/esm/vercel/build/getPathFromRoute.native.js +8 -0
  93. package/dist/esm/vercel/build/getPathFromRoute.native.js.map +1 -0
  94. package/package.json +9 -8
  95. package/src/cli/build.ts +3 -57
  96. package/src/server/createRoutesManifest.ts +1 -0
  97. package/src/server/getServerManifest.ts +12 -3
  98. package/src/utils/getPathnameFromFilePath.ts +62 -0
  99. package/src/vercel/build/buildVercelOutputDirectory.ts +55 -20
  100. package/src/vercel/build/config/vc-build-output-config-base.ts +6 -5
  101. package/src/vercel/build/generate/createApiServerlessFunction.ts +138 -12
  102. package/src/vercel/build/generate/createSsrServerlessFunction.ts +9 -6
  103. package/src/vercel/build/getPathFromRoute.ts +8 -0
  104. package/src/vite/types.ts +1 -0
  105. package/types/cli/build.d.ts.map +1 -1
  106. package/types/server/createRoutesManifest.d.ts +1 -0
  107. package/types/server/createRoutesManifest.d.ts.map +1 -1
  108. package/types/server/getServerManifest.d.ts +1 -0
  109. package/types/server/getServerManifest.d.ts.map +1 -1
  110. package/types/utils/getPathnameFromFilePath.d.ts +4 -0
  111. package/types/utils/getPathnameFromFilePath.d.ts.map +1 -0
  112. package/types/vercel/build/buildVercelOutputDirectory.d.ts.map +1 -1
  113. package/types/vercel/build/config/vc-build-output-config-base.d.ts +2 -5
  114. package/types/vercel/build/config/vc-build-output-config-base.d.ts.map +1 -1
  115. package/types/vercel/build/generate/createApiServerlessFunction.d.ts +2 -1
  116. package/types/vercel/build/generate/createApiServerlessFunction.d.ts.map +1 -1
  117. package/types/vercel/build/generate/createSsrServerlessFunction.d.ts +2 -2
  118. package/types/vercel/build/generate/createSsrServerlessFunction.d.ts.map +1 -1
  119. package/types/vercel/build/getPathFromRoute.d.ts +3 -0
  120. package/types/vercel/build/getPathFromRoute.d.ts.map +1 -0
  121. package/types/vite/types.d.ts +1 -0
  122. package/types/vite/types.d.ts.map +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/vercel/build/config/vc-build-output-config-base.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,0BAA0B;AAAA,EACrC,SAAS;AAAA;AAAA,EAET,QAAQ;AAAA,IACN;AAAA,MACE,KAAK;AAAA,MACL,QAAQ;AAAA,IACV;AAAA,EACF;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,8BAA8B;AAAA,EACzC,SAAS;AAAA;AAAA,EAET,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMR;AACF;",
5
5
  "names": []
6
6
  }
@@ -15,21 +15,16 @@ var __export = (target, all) => {
15
15
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
16
  var vc_build_output_config_base_exports = {};
17
17
  __export(vc_build_output_config_base_exports, {
18
- vercelBuildOutputConfig: () => vercelBuildOutputConfig
18
+ vercelBuildOutputConfigBase: () => vercelBuildOutputConfigBase
19
19
  });
20
20
  module.exports = __toCommonJS(vc_build_output_config_base_exports);
21
- var vercelBuildOutputConfig = {
21
+ var vercelBuildOutputConfigBase = {
22
22
  version: 3,
23
23
  // https://vercel.com/docs/build-output-api/v3/configuration#routes
24
- routes: [
25
- {
26
- src: "/(.*)",
27
- status: 200
28
- }
29
- ]
24
+ routes: []
30
25
  };
31
26
  // Annotate the CommonJS export names for ESM import in node:
32
27
  0 && (module.exports = {
33
- vercelBuildOutputConfig
28
+ vercelBuildOutputConfigBase
34
29
  });
35
30
  //# sourceMappingURL=vc-build-output-config-base.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/vercel/build/config/vc-build-output-config-base.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;;;;;AAEO,IAAMA,0BAA0B;EACrCC,SAAS;;EAETC,QAAQ;IACN;MACEC,KAAK;MACLC,QAAQ;IACV;;AAEJ;",
5
- "names": ["vercelBuildOutputConfig", "version", "routes", "src", "status"]
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;;;;;AAEO,IAAMA,8BAA8B;EACzCC,SAAS;;EAETC,QAAQ,CAAA;AAOV;",
5
+ "names": ["vercelBuildOutputConfigBase", "version", "routes"]
6
6
  }
@@ -36,23 +36,68 @@ __export(createApiServerlessFunction_exports, {
36
36
  module.exports = __toCommonJS(createApiServerlessFunction_exports);
37
37
  var import_node_path = require("node:path"),
38
38
  import_fs_extra = __toESM(require("fs-extra"), 1),
39
+ import_resolve = require("@vxrn/resolve"),
40
+ import_parser = __toESM(require("@babel/parser"), 1),
41
+ import_traverse = __toESM(require("@babel/traverse"), 1),
42
+ import_types = __toESM(require("@babel/types"), 1),
43
+ import_generator = __toESM(require("@babel/generator"), 1),
44
+ import_fs_extra2 = __toESM(require("fs-extra"), 1),
39
45
  import_vc_package_base = require("../config/vc-package-base.cjs"),
40
- import_vc_config_base = require("../config/vc-config-base.cjs");
41
- async function createApiServerlessFunction(pageName, code, oneOptionsRoot, postBuildLogs) {
46
+ import_vc_config_base = require("../config/vc-config-base.cjs"),
47
+ import_getPathFromRoute = require("../getPathFromRoute.cjs");
48
+ async function createApiServerlessFunction(route, code, oneOptionsRoot, postBuildLogs) {
42
49
  try {
43
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${pageName}`);
44
- const funcFolder = (0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${pageName}.func`);
45
- await import_fs_extra.default.ensureDir(funcFolder), code.includes("react") && (postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] detected react in depenency tree for ${pageName}`), await import_fs_extra.default.copy((0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "..", "..", "node_modules", "react")), (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "node_modules", "react"))));
50
+ const path = (0, import_getPathFromRoute.getPathFromRoute)(route);
51
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${path}`);
52
+ const funcFolder = (0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${path}.func`);
53
+ if (await import_fs_extra2.default.ensureDir(funcFolder), code.includes("react")) {
54
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] detected react in depenency tree for ${path}`);
55
+ const reactPath = (0, import_node_path.dirname)((0, import_resolve.resolvePath)("react/package.json", oneOptionsRoot));
56
+ await import_fs_extra2.default.copy((0, import_node_path.resolve)(reactPath), (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "node_modules", "react")));
57
+ }
46
58
  const distAssetsFolder = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "assets"));
47
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] copy shared assets to ${distAssetsFolder}`), await import_fs_extra.default.copy((0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "dist", "api", "assets")), distAssetsFolder), await import_fs_extra.default.ensureDir((0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "entrypoint")));
59
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] copy shared assets to ${distAssetsFolder}`);
60
+ const sourceAssetsFolder = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "dist", "api", "assets"));
61
+ (await import_fs_extra.default.pathExists(sourceAssetsFolder)) && (await import_fs_extra2.default.copy(sourceAssetsFolder, distAssetsFolder)), await import_fs_extra2.default.ensureDir((0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "entrypoint")));
48
62
  const entrypointFilePath = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "entrypoint", "index.js"));
49
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing entrypoint to ${entrypointFilePath}`), await import_fs_extra.default.writeFile(entrypointFilePath, code);
63
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing entrypoint to ${entrypointFilePath}`), await import_fs_extra2.default.writeFile(entrypointFilePath, wrapHandlerFunctions(code));
50
64
  const packageJsonFilePath = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "package.json"));
51
- return postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing package.json to ${packageJsonFilePath}`), await import_fs_extra.default.writeJSON(packageJsonFilePath, import_vc_package_base.serverlessVercelPackageJson), postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing .vc-config.json to ${(0, import_node_path.join)(funcFolder, ".vc-config.json")}`), import_fs_extra.default.writeJson((0, import_node_path.join)(funcFolder, ".vc-config.json"), {
65
+ return postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing package.json to ${packageJsonFilePath}`), await import_fs_extra2.default.writeJSON(packageJsonFilePath, import_vc_package_base.serverlessVercelPackageJson), postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing .vc-config.json to ${(0, import_node_path.join)(funcFolder, ".vc-config.json")}`), import_fs_extra2.default.writeJson((0, import_node_path.join)(funcFolder, ".vc-config.json"), {
52
66
  ...import_vc_config_base.serverlessVercelNodeJsConfig,
53
67
  handler: "entrypoint/index.js"
54
68
  });
55
69
  } catch (e) {
56
- console.error(`[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${pageName}`, e);
70
+ console.error(`[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${route.file}`, e);
57
71
  }
72
+ }
73
+ function wrapHandlerFunctions(code) {
74
+ const ast = import_parser.default.parse(code, {
75
+ sourceType: "module"
76
+ });
77
+ return import_traverse.default.default(ast, {
78
+ FunctionDeclaration(path) {
79
+ const {
80
+ node
81
+ } = path,
82
+ functionNamesToHandle = ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"
83
+ // TODO: more possibilities?
84
+ ];
85
+ if (!node.id || !functionNamesToHandle.includes(node.id.name) || node.extra && node.extra.isWrapper || node.extra && node.extra.isWrapped) return;
86
+ const originalName = `orig_${node.id.name}`,
87
+ originalFunction = import_types.default.functionDeclaration(import_types.default.identifier(originalName), node.params, node.body, node.generator, node.async),
88
+ requestIdentifier = import_types.default.identifier("request"),
89
+ wrapperParams = [requestIdentifier],
90
+ urlIdentifier = import_types.default.identifier("url"),
91
+ paramsIdentifier = import_types.default.identifier("params"),
92
+ urlDecl = import_types.default.variableDeclaration("const", [import_types.default.variableDeclarator(urlIdentifier, import_types.default.newExpression(import_types.default.identifier("URL"), [import_types.default.memberExpression(requestIdentifier, import_types.default.identifier("url"))]))]),
93
+ paramsDecl = import_types.default.variableDeclaration("const", [import_types.default.variableDeclarator(paramsIdentifier, import_types.default.callExpression(import_types.default.memberExpression(import_types.default.identifier("Object"), import_types.default.identifier("fromEntries")), [import_types.default.callExpression(import_types.default.memberExpression(import_types.default.memberExpression(urlIdentifier, import_types.default.identifier("searchParams")), import_types.default.identifier("entries")), [])]))]),
94
+ callOrigFnStatement = import_types.default.callExpression(import_types.default.identifier(originalName), [requestIdentifier, import_types.default.objectExpression([import_types.default.objectProperty(import_types.default.identifier("params"), paramsIdentifier)])]),
95
+ wrapperFunction = import_types.default.functionDeclaration(import_types.default.identifier(node.id.name + ""), wrapperParams, import_types.default.blockStatement([urlDecl, paramsDecl, import_types.default.returnStatement(callOrigFnStatement)])
96
+ // No need to care if the wrapper function should be async,
97
+ // since we didn't use any await in the wrapper function, and we'll
98
+ // just return what the original function returns.
99
+ );
100
+ node.extra = node.extra || {}, node.extra.isWrapped = !0, wrapperFunction.extra = wrapperFunction.extra || {}, wrapperFunction.extra.isWrapper = !0, path.parentPath.isExportNamedDeclaration() ? path.replaceWithMultiple([originalFunction, import_types.default.exportNamedDeclaration(wrapperFunction, [])]) : path.replaceWithMultiple([originalFunction, wrapperFunction]);
101
+ }
102
+ }), import_generator.default.default(ast, {}).code;
58
103
  }
@@ -25,39 +25,107 @@ __export(createApiServerlessFunction_exports, {
25
25
  createApiServerlessFunction: () => createApiServerlessFunction
26
26
  });
27
27
  module.exports = __toCommonJS(createApiServerlessFunction_exports);
28
- var import_node_path = require("node:path"), import_fs_extra = __toESM(require("fs-extra"), 1), import_vc_package_base = require("../config/vc-package-base"), import_vc_config_base = require("../config/vc-config-base");
29
- async function createApiServerlessFunction(pageName, code, oneOptionsRoot, postBuildLogs) {
28
+ var import_node_path = require("node:path"), import_fs_extra = __toESM(require("fs-extra"), 1), import_resolve = require("@vxrn/resolve"), import_parser = __toESM(require("@babel/parser"), 1), import_traverse = __toESM(require("@babel/traverse"), 1), import_types = __toESM(require("@babel/types"), 1), import_generator = __toESM(require("@babel/generator"), 1), import_fs_extra2 = __toESM(require("fs-extra"), 1), import_vc_package_base = require("../config/vc-package-base"), import_vc_config_base = require("../config/vc-config-base"), import_getPathFromRoute = require("../getPathFromRoute");
29
+ async function createApiServerlessFunction(route, code, oneOptionsRoot, postBuildLogs) {
30
30
  try {
31
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${pageName}`);
32
- const funcFolder = (0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${pageName}.func`);
33
- await import_fs_extra.default.ensureDir(funcFolder), code.includes("react") && (postBuildLogs.push(
34
- `[one.build][vercel.createSsrServerlessFunction] detected react in depenency tree for ${pageName}`
35
- ), await import_fs_extra.default.copy(
36
- (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "..", "..", "node_modules", "react")),
37
- (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "node_modules", "react"))
38
- ));
31
+ const path = (0, import_getPathFromRoute.getPathFromRoute)(route);
32
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${path}`);
33
+ const funcFolder = (0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${path}.func`);
34
+ if (await import_fs_extra2.default.ensureDir(funcFolder), code.includes("react")) {
35
+ postBuildLogs.push(
36
+ `[one.build][vercel.createSsrServerlessFunction] detected react in depenency tree for ${path}`
37
+ );
38
+ const reactPath = (0, import_node_path.dirname)((0, import_resolve.resolvePath)("react/package.json", oneOptionsRoot));
39
+ await import_fs_extra2.default.copy((0, import_node_path.resolve)(reactPath), (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "node_modules", "react")));
40
+ }
39
41
  const distAssetsFolder = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "assets"));
40
42
  postBuildLogs.push(
41
43
  `[one.build][vercel.createSsrServerlessFunction] copy shared assets to ${distAssetsFolder}`
42
- ), await import_fs_extra.default.copy((0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "dist", "api", "assets")), distAssetsFolder), await import_fs_extra.default.ensureDir((0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "entrypoint")));
44
+ );
45
+ const sourceAssetsFolder = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "dist", "api", "assets"));
46
+ await import_fs_extra.default.pathExists(sourceAssetsFolder) && await import_fs_extra2.default.copy(sourceAssetsFolder, distAssetsFolder), await import_fs_extra2.default.ensureDir((0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "entrypoint")));
43
47
  const entrypointFilePath = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "entrypoint", "index.js"));
44
48
  postBuildLogs.push(
45
49
  `[one.build][vercel.createSsrServerlessFunction] writing entrypoint to ${entrypointFilePath}`
46
- ), await import_fs_extra.default.writeFile(entrypointFilePath, code);
50
+ ), await import_fs_extra2.default.writeFile(entrypointFilePath, wrapHandlerFunctions(code));
47
51
  const packageJsonFilePath = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "package.json"));
48
52
  return postBuildLogs.push(
49
53
  `[one.build][vercel.createSsrServerlessFunction] writing package.json to ${packageJsonFilePath}`
50
- ), await import_fs_extra.default.writeJSON(packageJsonFilePath, import_vc_package_base.serverlessVercelPackageJson), postBuildLogs.push(
54
+ ), await import_fs_extra2.default.writeJSON(packageJsonFilePath, import_vc_package_base.serverlessVercelPackageJson), postBuildLogs.push(
51
55
  `[one.build][vercel.createSsrServerlessFunction] writing .vc-config.json to ${(0, import_node_path.join)(funcFolder, ".vc-config.json")}`
52
- ), import_fs_extra.default.writeJson((0, import_node_path.join)(funcFolder, ".vc-config.json"), {
56
+ ), import_fs_extra2.default.writeJson((0, import_node_path.join)(funcFolder, ".vc-config.json"), {
53
57
  ...import_vc_config_base.serverlessVercelNodeJsConfig,
54
58
  handler: "entrypoint/index.js"
55
59
  });
56
60
  } catch (e) {
57
61
  console.error(
58
- `[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${pageName}`,
62
+ `[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${route.file}`,
59
63
  e
60
64
  );
61
65
  }
62
66
  }
67
+ function wrapHandlerFunctions(code) {
68
+ const ast = import_parser.default.parse(code, {
69
+ sourceType: "module"
70
+ });
71
+ return import_traverse.default.default(ast, {
72
+ FunctionDeclaration(path) {
73
+ const { node } = path, functionNamesToHandle = [
74
+ "GET",
75
+ "POST",
76
+ "PUT",
77
+ "PATCH",
78
+ "DELETE",
79
+ "HEAD",
80
+ "OPTIONS"
81
+ // TODO: more possibilities?
82
+ ];
83
+ if (!node.id || !functionNamesToHandle.includes(node.id.name) || node.extra && node.extra.isWrapper || node.extra && node.extra.isWrapped) return;
84
+ const originalName = `orig_${node.id.name}`, originalFunction = import_types.default.functionDeclaration(
85
+ import_types.default.identifier(originalName),
86
+ node.params,
87
+ node.body,
88
+ node.generator,
89
+ node.async
90
+ ), requestIdentifier = import_types.default.identifier("request"), wrapperParams = [requestIdentifier], urlIdentifier = import_types.default.identifier("url"), paramsIdentifier = import_types.default.identifier("params"), urlDecl = import_types.default.variableDeclaration("const", [
91
+ import_types.default.variableDeclarator(
92
+ urlIdentifier,
93
+ import_types.default.newExpression(import_types.default.identifier("URL"), [
94
+ import_types.default.memberExpression(requestIdentifier, import_types.default.identifier("url"))
95
+ ])
96
+ )
97
+ ]), paramsDecl = import_types.default.variableDeclaration("const", [
98
+ import_types.default.variableDeclarator(
99
+ paramsIdentifier,
100
+ import_types.default.callExpression(
101
+ import_types.default.memberExpression(import_types.default.identifier("Object"), import_types.default.identifier("fromEntries")),
102
+ [
103
+ import_types.default.callExpression(
104
+ import_types.default.memberExpression(
105
+ import_types.default.memberExpression(
106
+ urlIdentifier,
107
+ import_types.default.identifier("searchParams")
108
+ ),
109
+ import_types.default.identifier("entries")
110
+ ),
111
+ []
112
+ )
113
+ ]
114
+ )
115
+ )
116
+ ]), callOrigFnStatement = import_types.default.callExpression(import_types.default.identifier(originalName), [
117
+ requestIdentifier,
118
+ import_types.default.objectExpression([import_types.default.objectProperty(import_types.default.identifier("params"), paramsIdentifier)])
119
+ ]), wrapperFunction = import_types.default.functionDeclaration(
120
+ import_types.default.identifier(node.id.name + ""),
121
+ wrapperParams,
122
+ import_types.default.blockStatement([urlDecl, paramsDecl, import_types.default.returnStatement(callOrigFnStatement)])
123
+ // No need to care if the wrapper function should be async,
124
+ // since we didn't use any await in the wrapper function, and we'll
125
+ // just return what the original function returns.
126
+ );
127
+ node.extra = node.extra || {}, node.extra.isWrapped = !0, wrapperFunction.extra = wrapperFunction.extra || {}, wrapperFunction.extra.isWrapper = !0, path.parentPath.isExportNamedDeclaration() ? path.replaceWithMultiple([originalFunction, import_types.default.exportNamedDeclaration(wrapperFunction, [])]) : path.replaceWithMultiple([originalFunction, wrapperFunction]);
128
+ }
129
+ }), import_generator.default.default(ast, {}).code;
130
+ }
63
131
  //# sourceMappingURL=createApiServerlessFunction.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/vercel/build/generate/createApiServerlessFunction.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA8B,sBAE9B,kBAAe,iCAEf,yBAA4C,sCAC5C,wBAA6C;AAI7C,eAAsB,4BACpB,UACA,MACA,gBACA,eACA;AACA,MAAI;AACF,kBAAc,KAAK,6DAA6D,QAAQ,EAAE;AAE1F,UAAM,iBAAa,uBAAK,gBAAgB,4BAA4B,QAAQ,OAAO;AACnF,UAAM,gBAAAA,QAAG,UAAU,UAAU,GAEzB,KAAK,SAAS,OAAO,MACvB,cAAc;AAAA,MACZ,wFAAwF,QAAQ;AAAA,IAClG,GACA,MAAM,gBAAAA,QAAG;AAAA,UACP,8BAAQ,uBAAK,gBAAgB,MAAM,MAAM,gBAAgB,OAAO,CAAC;AAAA,UACjE,8BAAQ,uBAAK,YAAY,gBAAgB,OAAO,CAAC;AAAA,IACnD;AAGF,UAAM,uBAAmB,8BAAQ,uBAAK,YAAY,QAAQ,CAAC;AAC3D,kBAAc;AAAA,MACZ,yEAAyE,gBAAgB;AAAA,IAC3F,GACA,MAAM,gBAAAA,QAAG,SAAK,8BAAQ,uBAAK,gBAAgB,QAAQ,OAAO,QAAQ,CAAC,GAAG,gBAAgB,GAEtF,MAAM,gBAAAA,QAAG,cAAU,8BAAQ,uBAAK,YAAY,YAAY,CAAC,CAAC;AAC1D,UAAM,yBAAqB,8BAAQ,uBAAK,YAAY,cAAc,UAAU,CAAC;AAC7E,kBAAc;AAAA,MACZ,yEAAyE,kBAAkB;AAAA,IAC7F,GACA,MAAM,gBAAAA,QAAG,UAAU,oBAAoB,IAAI;AAE3C,UAAM,0BAAsB,8BAAQ,uBAAK,YAAY,cAAc,CAAC;AACpE,yBAAc;AAAA,MACZ,2EAA2E,mBAAmB;AAAA,IAChG,GACA,MAAM,gBAAAA,QAAG,UAAU,qBAAqB,kDAA2B,GAEnE,cAAc;AAAA,MACZ,kFAA8E,uBAAK,YAAY,iBAAiB,CAAC;AAAA,IACnH,GAGO,gBAAAA,QAAG,cAAU,uBAAK,YAAY,iBAAiB,GAAG;AAAA,MACvD,GAAG;AAAA,MACH,SAAS;AAAA,IACX,CAAC;AAAA,EACH,SAAS,GAAG;AACV,YAAQ;AAAA,MACN,+EAA+E,QAAQ;AAAA,MACvF;AAAA,IACF;AAAA,EACF;AACF;",
5
- "names": ["fs"]
4
+ "mappings": "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",
5
+ "names": ["import_fs_extra", "fs", "FSExtra", "parser", "traverse", "t", "generator"]
6
6
  }
@@ -26,25 +26,89 @@ __export(createApiServerlessFunction_exports, {
26
26
  createApiServerlessFunction: () => createApiServerlessFunction
27
27
  });
28
28
  module.exports = __toCommonJS(createApiServerlessFunction_exports);
29
- var import_node_path = require("node:path"), import_fs_extra = __toESM(require("fs-extra"), 1), import_vc_package_base = require("../config/vc-package-base"), import_vc_config_base = require("../config/vc-config-base");
30
- async function createApiServerlessFunction(pageName, code, oneOptionsRoot, postBuildLogs) {
29
+ var import_node_path = require("node:path"), import_fs_extra = __toESM(require("fs-extra"), 1), import_resolve = require("@vxrn/resolve"), import_parser = __toESM(require("@babel/parser"), 1), import_traverse = __toESM(require("@babel/traverse"), 1), import_types = __toESM(require("@babel/types"), 1), import_generator = __toESM(require("@babel/generator"), 1), import_fs_extra2 = __toESM(require("fs-extra"), 1), import_vc_package_base = require("../config/vc-package-base"), import_vc_config_base = require("../config/vc-config-base"), import_getPathFromRoute = require("../getPathFromRoute");
30
+ async function createApiServerlessFunction(route, code, oneOptionsRoot, postBuildLogs) {
31
31
  try {
32
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${pageName}`);
33
- var funcFolder = (0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${pageName}.func`);
34
- await import_fs_extra.default.ensureDir(funcFolder), code.includes("react") && (postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] detected react in depenency tree for ${pageName}`), await import_fs_extra.default.copy((0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "..", "..", "node_modules", "react")), (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "node_modules", "react"))));
32
+ var path = (0, import_getPathFromRoute.getPathFromRoute)(route);
33
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${path}`);
34
+ var funcFolder = (0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${path}.func`);
35
+ if (await import_fs_extra2.default.ensureDir(funcFolder), code.includes("react")) {
36
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] detected react in depenency tree for ${path}`);
37
+ var reactPath = (0, import_node_path.dirname)((0, import_resolve.resolvePath)("react/package.json", oneOptionsRoot));
38
+ await import_fs_extra2.default.copy((0, import_node_path.resolve)(reactPath), (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "node_modules", "react")));
39
+ }
35
40
  var distAssetsFolder = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "assets"));
36
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] copy shared assets to ${distAssetsFolder}`), await import_fs_extra.default.copy((0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "dist", "api", "assets")), distAssetsFolder), await import_fs_extra.default.ensureDir((0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "entrypoint")));
41
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] copy shared assets to ${distAssetsFolder}`);
42
+ var sourceAssetsFolder = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "dist", "api", "assets"));
43
+ await import_fs_extra.default.pathExists(sourceAssetsFolder) && await import_fs_extra2.default.copy(sourceAssetsFolder, distAssetsFolder), await import_fs_extra2.default.ensureDir((0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "entrypoint")));
37
44
  var entrypointFilePath = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "entrypoint", "index.js"));
38
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing entrypoint to ${entrypointFilePath}`), await import_fs_extra.default.writeFile(entrypointFilePath, code);
45
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing entrypoint to ${entrypointFilePath}`), await import_fs_extra2.default.writeFile(entrypointFilePath, wrapHandlerFunctions(code));
39
46
  var packageJsonFilePath = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "package.json"));
40
- return postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing package.json to ${packageJsonFilePath}`), await import_fs_extra.default.writeJSON(packageJsonFilePath, import_vc_package_base.serverlessVercelPackageJson), postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing .vc-config.json to ${(0, import_node_path.join)(funcFolder, ".vc-config.json")}`), import_fs_extra.default.writeJson((0, import_node_path.join)(funcFolder, ".vc-config.json"), {
47
+ return postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing package.json to ${packageJsonFilePath}`), await import_fs_extra2.default.writeJSON(packageJsonFilePath, import_vc_package_base.serverlessVercelPackageJson), postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing .vc-config.json to ${(0, import_node_path.join)(funcFolder, ".vc-config.json")}`), import_fs_extra2.default.writeJson((0, import_node_path.join)(funcFolder, ".vc-config.json"), {
41
48
  ...import_vc_config_base.serverlessVercelNodeJsConfig,
42
49
  handler: "entrypoint/index.js"
43
50
  });
44
51
  } catch (e) {
45
- console.error(`[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${pageName}`, e);
52
+ console.error(`[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${route.file}`, e);
46
53
  }
47
54
  }
55
+ function wrapHandlerFunctions(code) {
56
+ var ast = import_parser.default.parse(code, {
57
+ sourceType: "module"
58
+ });
59
+ import_traverse.default.default(ast, {
60
+ FunctionDeclaration(path) {
61
+ var { node } = path, functionNamesToHandle = [
62
+ "GET",
63
+ "POST",
64
+ "PUT",
65
+ "PATCH",
66
+ "DELETE",
67
+ "HEAD",
68
+ "OPTIONS"
69
+ ];
70
+ if (!(!node.id || !functionNamesToHandle.includes(node.id.name)) && !(node.extra && node.extra.isWrapper) && !(node.extra && node.extra.isWrapped)) {
71
+ var originalName = `orig_${node.id.name}`, originalFunction = import_types.default.functionDeclaration(import_types.default.identifier(originalName), node.params, node.body, node.generator, node.async), requestIdentifier = import_types.default.identifier("request"), wrapperParams = [
72
+ requestIdentifier
73
+ ], urlIdentifier = import_types.default.identifier("url"), paramsIdentifier = import_types.default.identifier("params"), urlDecl = import_types.default.variableDeclaration("const", [
74
+ import_types.default.variableDeclarator(urlIdentifier, import_types.default.newExpression(
75
+ import_types.default.identifier("URL"),
76
+ /* Node.js global */
77
+ [
78
+ import_types.default.memberExpression(requestIdentifier, import_types.default.identifier("url"))
79
+ ]
80
+ ))
81
+ ]), paramsDecl = import_types.default.variableDeclaration("const", [
82
+ import_types.default.variableDeclarator(paramsIdentifier, import_types.default.callExpression(import_types.default.memberExpression(import_types.default.identifier("Object"), import_types.default.identifier("fromEntries")), [
83
+ import_types.default.callExpression(import_types.default.memberExpression(
84
+ import_types.default.memberExpression(urlIdentifier, import_types.default.identifier("searchParams")),
85
+ /* url.searchParams */
86
+ import_types.default.identifier("entries")
87
+ ), [])
88
+ ]))
89
+ ]), callOrigFnStatement = import_types.default.callExpression(import_types.default.identifier(originalName), [
90
+ requestIdentifier,
91
+ import_types.default.objectExpression([
92
+ import_types.default.objectProperty(import_types.default.identifier("params"), paramsIdentifier)
93
+ ])
94
+ ]), wrapperFunction = import_types.default.functionDeclaration(import_types.default.identifier(node.id.name + ""), wrapperParams, import_types.default.blockStatement([
95
+ urlDecl,
96
+ paramsDecl,
97
+ import_types.default.returnStatement(callOrigFnStatement)
98
+ ]));
99
+ node.extra = node.extra || {}, node.extra.isWrapped = !0, wrapperFunction.extra = wrapperFunction.extra || {}, wrapperFunction.extra.isWrapper = !0, path.parentPath.isExportNamedDeclaration() ? path.replaceWithMultiple([
100
+ originalFunction,
101
+ import_types.default.exportNamedDeclaration(wrapperFunction, [])
102
+ ]) : path.replaceWithMultiple([
103
+ originalFunction,
104
+ wrapperFunction
105
+ ]);
106
+ }
107
+ }
108
+ });
109
+ var output = import_generator.default.default(ast, {}).code;
110
+ return output;
111
+ }
48
112
  // Annotate the CommonJS export names for ESM import in node:
49
113
  0 && (module.exports = {
50
114
  createApiServerlessFunction
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/vercel/build/generate/createApiServerlessFunction.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;uBAA8B,sBAE9B,kBAAe,iCAEf,yBAA4C,sCAC5C,wBAA6C;AAI7C,eAAsBA,4BACpBC,UACAC,MACAC,gBACAC,eAAuB;AAEvB,MAAI;AACFA,kBAAcC,KAAK,6DAA6DJ,QAAAA,EAAU;AAE1F,QAAMK,iBAAaC,uBAAKJ,gBAAgB,4BAA4BF,QAAAA,OAAe;AACnF,UAAMO,gBAAAA,QAAGC,UAAUH,UAAAA,GAEfJ,KAAKQ,SAAS,OAAA,MAChBN,cAAcC,KACZ,wFAAwFJ,QAAAA,EAAU,GAEpG,MAAMO,gBAAAA,QAAGG,SACPC,8BAAQL,uBAAKJ,gBAAgB,MAAM,MAAM,gBAAgB,OAAA,CAAA,OACzDS,8BAAQL,uBAAKD,YAAY,gBAAgB,OAAA,CAAA,CAAA;AAI7C,QAAMO,uBAAmBD,8BAAQL,uBAAKD,YAAY,QAAA,CAAA;AAClDF,kBAAcC,KACZ,yEAAyEQ,gBAAAA,EAAkB,GAE7F,MAAML,gBAAAA,QAAGG,SAAKC,8BAAQL,uBAAKJ,gBAAgB,QAAQ,OAAO,QAAA,CAAA,GAAYU,gBAAAA,GAEtE,MAAML,gBAAAA,QAAGC,cAAUG,8BAAQL,uBAAKD,YAAY,YAAA,CAAA,CAAA;AAC5C,QAAMQ,yBAAqBF,8BAAQL,uBAAKD,YAAY,cAAc,UAAA,CAAA;AAClEF,kBAAcC,KACZ,yEAAyES,kBAAAA,EAAoB,GAE/F,MAAMN,gBAAAA,QAAGO,UAAUD,oBAAoBZ,IAAAA;AAEvC,QAAMc,0BAAsBJ,8BAAQL,uBAAKD,YAAY,cAAA,CAAA;AACrDF,yBAAcC,KACZ,2EAA2EW,mBAAAA,EAAqB,GAElG,MAAMR,gBAAAA,QAAGS,UAAUD,qBAAqBE,kDAAAA,GAExCd,cAAcC,KACZ,kFAA8EE,uBAAKD,YAAY,iBAAA,CAAA,EAAoB,GAI9GE,gBAAAA,QAAGW,cAAUZ,uBAAKD,YAAY,iBAAA,GAAoB;MACvD,GAAGc;MACHC,SAAS;IACX,CAAA;EACF,SAASC,GAAG;AACVC,YAAQC,MACN,+EAA+EvB,QAAAA,IAC/EqB,CAAAA;EAEJ;AACF;",
5
- "names": ["createApiServerlessFunction", "pageName", "code", "oneOptionsRoot", "postBuildLogs", "push", "funcFolder", "join", "fs", "ensureDir", "includes", "copy", "resolve", "distAssetsFolder", "entrypointFilePath", "writeFile", "packageJsonFilePath", "writeJSON", "serverlessVercelPackageJson", "writeJson", "serverlessVercelNodeJsConfig", "handler", "e", "console", "error"]
4
+ "mappings": "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",
5
+ "names": ["import_fs_extra", "createApiServerlessFunction", "route", "code", "oneOptionsRoot", "postBuildLogs", "path", "getPathFromRoute", "push", "funcFolder", "join", "fs", "ensureDir", "includes", "reactPath", "dirname", "resolvePath", "copy", "resolve", "distAssetsFolder", "sourceAssetsFolder", "FSExtra", "pathExists", "entrypointFilePath", "writeFile", "wrapHandlerFunctions", "packageJsonFilePath", "writeJSON", "serverlessVercelPackageJson", "writeJson", "serverlessVercelNodeJsConfig", "handler", "e", "console", "error", "file", "ast", "parser", "parse", "sourceType", "traverse", "default", "FunctionDeclaration", "node", "functionNamesToHandle", "id", "name", "extra", "isWrapper", "isWrapped", "originalName", "originalFunction", "t", "functionDeclaration", "identifier", "params", "body", "generator", "async", "requestIdentifier", "wrapperParams", "urlIdentifier", "paramsIdentifier", "urlDecl", "variableDeclaration", "variableDeclarator", "newExpression", "memberExpression", "paramsDecl", "callExpression", "callOrigFnStatement", "objectExpression", "objectProperty", "wrapperFunction", "blockStatement", "returnStatement", "parentPath", "isExportNamedDeclaration", "replaceWithMultiple", "exportNamedDeclaration", "output"]
6
6
  }
@@ -37,12 +37,14 @@ module.exports = __toCommonJS(createSsrServerlessFunction_exports);
37
37
  var import_fs_extra = __toESM(require("fs-extra"), 1),
38
38
  import_node_path = require("node:path"),
39
39
  import_vc_config_base = require("../config/vc-config-base.cjs"),
40
- import_vc_package_base = require("../config/vc-package-base.cjs");
41
- async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot, postBuildLogs) {
40
+ import_vc_package_base = require("../config/vc-package-base.cjs"),
41
+ import_getPathFromRoute = require("../getPathFromRoute.cjs");
42
+ async function createSsrServerlessFunction(route, buildInfo, oneOptionsRoot, postBuildLogs) {
42
43
  try {
43
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${pageName}`);
44
+ const path = (0, import_getPathFromRoute.getPathFromRoute)(route);
45
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] path: ${path}`);
44
46
  const buildInfoAsString = JSON.stringify(buildInfo),
45
- funcFolder = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${pageName}.func`));
47
+ funcFolder = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${path}.func`));
46
48
  await import_fs_extra.default.ensureDir(funcFolder);
47
49
  const distServerFrom = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "dist", "server")),
48
50
  distServerTo = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "server"));
@@ -51,6 +53,7 @@ async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot,
51
53
  postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing entrypoint to ${entrypointFilePath}`), await import_fs_extra.default.writeFile(entrypointFilePath, `
52
54
  const buildInfoConfig = await import('../buildInfo.js');
53
55
  const entry = await import('../server/_virtual_one-entry.js');
56
+ const routeFile = ${JSON.stringify(route.file)}
54
57
 
55
58
  const handler = async (req, res) => {
56
59
  // console.debug("req.url", req.url);
@@ -60,7 +63,7 @@ async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot,
60
63
  params: Object.fromEntries(url.searchParams.entries())
61
64
  }
62
65
  const postfix = url.pathname.endsWith('/') ? 'index.tsx' : '+ssr.tsx';
63
- const routeFile = \`.\${url.pathname}\${postfix}\`;
66
+ // const routeFile = \`.\${url.pathname}\${postfix}\`;
64
67
  let route = buildInfoConfig.default.routeToBuildInfo[routeFile];
65
68
 
66
69
  // If we cannot find the route by direct match, try to find it by looking it up in the
@@ -106,6 +109,6 @@ async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot,
106
109
  }
107
110
  });
108
111
  } catch (e) {
109
- console.error(`[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${pageName}`, e);
112
+ console.error(`[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${route.file}`, e);
110
113
  }
111
114
  }
@@ -25,11 +25,12 @@ __export(createSsrServerlessFunction_exports, {
25
25
  createSsrServerlessFunction: () => createSsrServerlessFunction
26
26
  });
27
27
  module.exports = __toCommonJS(createSsrServerlessFunction_exports);
28
- var import_fs_extra = __toESM(require("fs-extra"), 1), import_node_path = require("node:path"), import_vc_config_base = require("../config/vc-config-base"), import_vc_package_base = require("../config/vc-package-base");
29
- async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot, postBuildLogs) {
28
+ var import_fs_extra = __toESM(require("fs-extra"), 1), import_node_path = require("node:path"), import_vc_config_base = require("../config/vc-config-base"), import_vc_package_base = require("../config/vc-package-base"), import_getPathFromRoute = require("../getPathFromRoute");
29
+ async function createSsrServerlessFunction(route, buildInfo, oneOptionsRoot, postBuildLogs) {
30
30
  try {
31
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${pageName}`);
32
- const buildInfoAsString = JSON.stringify(buildInfo), funcFolder = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${pageName}.func`));
31
+ const path = (0, import_getPathFromRoute.getPathFromRoute)(route);
32
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] path: ${path}`);
33
+ const buildInfoAsString = JSON.stringify(buildInfo), funcFolder = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${path}.func`));
33
34
  await import_fs_extra.default.ensureDir(funcFolder);
34
35
  const distServerFrom = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "dist", "server")), distServerTo = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "server"));
35
36
  await import_fs_extra.default.ensureDir(distServerTo), postBuildLogs.push(
@@ -43,6 +44,7 @@ async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot,
43
44
  `
44
45
  const buildInfoConfig = await import('../buildInfo.js');
45
46
  const entry = await import('../server/_virtual_one-entry.js');
47
+ const routeFile = ${JSON.stringify(route.file)}
46
48
 
47
49
  const handler = async (req, res) => {
48
50
  // console.debug("req.url", req.url);
@@ -52,7 +54,7 @@ async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot,
52
54
  params: Object.fromEntries(url.searchParams.entries())
53
55
  }
54
56
  const postfix = url.pathname.endsWith('/') ? 'index.tsx' : '+ssr.tsx';
55
- const routeFile = \`.\${url.pathname}\${postfix}\`;
57
+ // const routeFile = \`.\${url.pathname}\${postfix}\`;
56
58
  let route = buildInfoConfig.default.routeToBuildInfo[routeFile];
57
59
 
58
60
  // If we cannot find the route by direct match, try to find it by looking it up in the
@@ -104,7 +106,7 @@ async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot,
104
106
  });
105
107
  } catch (e) {
106
108
  console.error(
107
- `[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${pageName}`,
109
+ `[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${route.file}`,
108
110
  e
109
111
  );
110
112
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/vercel/build/generate/createSsrServerlessFunction.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAe,iCACf,mBAA8B,sBAC9B,wBAA6C,qCAC7C,yBAA4C;AAK5C,eAAsB,4BACpB,UACA,WACA,gBACA,eACA;AACA,MAAI;AACF,kBAAc,KAAK,6DAA6D,QAAQ,EAAE;AAE1F,UAAM,oBAAoB,KAAK,UAAU,SAAS,GAC5C,iBAAa,8BAAQ,uBAAK,gBAAgB,4BAA4B,QAAQ,OAAO,CAAC;AAC5F,UAAM,gBAAAA,QAAG,UAAU,UAAU;AAE7B,UAAM,qBAAiB,8BAAQ,uBAAK,gBAAgB,QAAQ,QAAQ,CAAC,GAC/D,mBAAe,8BAAQ,uBAAK,YAAY,QAAQ,CAAC;AACvD,UAAM,gBAAAA,QAAG,UAAU,YAAY,GAC/B,cAAc;AAAA,MACZ,+EAA+E,cAAc,OAAO,YAAY;AAAA,IAClH,GACA,MAAM,gBAAAA,QAAG,KAAK,gBAAgB,YAAY,GAE1C,cAAc,KAAK,wEAAwE,GAC3F,MAAM,gBAAAA,QAAG,cAAU,uBAAK,YAAY,cAAc,GAAG,kBAAkB,iBAAiB,EAAE,GAE1F,MAAM,gBAAAA,QAAG,cAAU,uBAAK,YAAY,YAAY,CAAC;AACjD,UAAM,yBAAqB,8BAAQ,uBAAK,YAAY,cAAc,UAAU,CAAC;AAC7E,kBAAc;AAAA,MACZ,yEAAyE,kBAAkB;AAAA,IAC7F,GACA,MAAM,gBAAAA,QAAG;AAAA,MACP;AAAA,MACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA8CF;AAEA,UAAM,0BAAsB,8BAAQ,uBAAK,YAAY,cAAc,CAAC;AACpE,kBAAc;AAAA,MACZ,2EAA2E,mBAAmB;AAAA,IAChG,GACA,MAAM,gBAAAA,QAAG,UAAU,qBAAqB,kDAA2B;AAInE,UAAM,uBAAmB,8BAAQ,uBAAK,YAAY,iBAAiB,CAAC;AACpE,yBAAc;AAAA,MACZ,8EAA8E,gBAAgB;AAAA,IAChG,GACO,gBAAAA,QAAG,UAAU,kBAAkB;AAAA,MACpC,GAAG;AAAA,MACH,SAAS;AAAA,MACT,aAAa;AAAA,QACX,GAAG,mDAA6B;AAAA,QAChC,yBAAyB;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA,EACH,SAAS,GAAG;AACV,YAAQ;AAAA,MACN,+EAA+E,QAAQ;AAAA,MACvF;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAe,iCACf,mBAA8B,sBAC9B,wBAA6C,qCAC7C,yBAA4C,sCAE5C,0BAAiC;AAIjC,eAAsB,4BACpB,OACA,WACA,gBACA,eACA;AACA,MAAI;AACF,UAAM,WAAO,0CAAiB,KAAK;AACnC,kBAAc,KAAK,yDAAyD,IAAI,EAAE;AAElF,UAAM,oBAAoB,KAAK,UAAU,SAAS,GAC5C,iBAAa,8BAAQ,uBAAK,gBAAgB,4BAA4B,IAAI,OAAO,CAAC;AACxF,UAAM,gBAAAA,QAAG,UAAU,UAAU;AAE7B,UAAM,qBAAiB,8BAAQ,uBAAK,gBAAgB,QAAQ,QAAQ,CAAC,GAC/D,mBAAe,8BAAQ,uBAAK,YAAY,QAAQ,CAAC;AACvD,UAAM,gBAAAA,QAAG,UAAU,YAAY,GAC/B,cAAc;AAAA,MACZ,+EAA+E,cAAc,OAAO,YAAY;AAAA,IAClH,GACA,MAAM,gBAAAA,QAAG,KAAK,gBAAgB,YAAY,GAE1C,cAAc,KAAK,wEAAwE,GAC3F,MAAM,gBAAAA,QAAG,cAAU,uBAAK,YAAY,cAAc,GAAG,kBAAkB,iBAAiB,EAAE,GAE1F,MAAM,gBAAAA,QAAG,cAAU,uBAAK,YAAY,YAAY,CAAC;AACjD,UAAM,yBAAqB,8BAAQ,uBAAK,YAAY,cAAc,UAAU,CAAC;AAC7E,kBAAc;AAAA,MACZ,yEAAyE,kBAAkB;AAAA,IAC7F,GACA,MAAM,gBAAAA,QAAG;AAAA,MACP;AAAA,MACA;AAAA;AAAA;AAAA,sBAGgB,KAAK,UAAU,MAAM,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA4C5C;AAEA,UAAM,0BAAsB,8BAAQ,uBAAK,YAAY,cAAc,CAAC;AACpE,kBAAc;AAAA,MACZ,2EAA2E,mBAAmB;AAAA,IAChG,GACA,MAAM,gBAAAA,QAAG,UAAU,qBAAqB,kDAA2B;AAInE,UAAM,uBAAmB,8BAAQ,uBAAK,YAAY,iBAAiB,CAAC;AACpE,yBAAc;AAAA,MACZ,8EAA8E,gBAAgB;AAAA,IAChG,GACO,gBAAAA,QAAG,UAAU,kBAAkB;AAAA,MACpC,GAAG;AAAA,MACH,SAAS;AAAA,MACT,aAAa;AAAA,QACX,GAAG,mDAA6B;AAAA,QAChC,yBAAyB;AAAA,MAC3B;AAAA,IACF,CAAC;AAAA,EACH,SAAS,GAAG;AACV,YAAQ;AAAA,MACN,+EAA+E,MAAM,IAAI;AAAA,MACzF;AAAA,IACF;AAAA,EACF;AACF;",
5
5
  "names": ["fs"]
6
6
  }
@@ -26,11 +26,12 @@ __export(createSsrServerlessFunction_exports, {
26
26
  createSsrServerlessFunction: () => createSsrServerlessFunction
27
27
  });
28
28
  module.exports = __toCommonJS(createSsrServerlessFunction_exports);
29
- var import_fs_extra = __toESM(require("fs-extra"), 1), import_node_path = require("node:path"), import_vc_config_base = require("../config/vc-config-base"), import_vc_package_base = require("../config/vc-package-base");
30
- async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot, postBuildLogs) {
29
+ var import_fs_extra = __toESM(require("fs-extra"), 1), import_node_path = require("node:path"), import_vc_config_base = require("../config/vc-config-base"), import_vc_package_base = require("../config/vc-package-base"), import_getPathFromRoute = require("../getPathFromRoute");
30
+ async function createSsrServerlessFunction(route, buildInfo, oneOptionsRoot, postBuildLogs) {
31
31
  try {
32
- postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] pageName: ${pageName}`);
33
- var buildInfoAsString = JSON.stringify(buildInfo), funcFolder = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${pageName}.func`));
32
+ var path = (0, import_getPathFromRoute.getPathFromRoute)(route);
33
+ postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] path: ${path}`);
34
+ var buildInfoAsString = JSON.stringify(buildInfo), funcFolder = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, `.vercel/output/functions/${path}.func`));
34
35
  await import_fs_extra.default.ensureDir(funcFolder);
35
36
  var distServerFrom = (0, import_node_path.resolve)((0, import_node_path.join)(oneOptionsRoot, "dist", "server")), distServerTo = (0, import_node_path.resolve)((0, import_node_path.join)(funcFolder, "server"));
36
37
  await import_fs_extra.default.ensureDir(distServerTo), postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] copy server dist files from ${distServerFrom} to ${distServerTo}`), await import_fs_extra.default.copy(distServerFrom, distServerTo), postBuildLogs.push("[one.build][vercel.createSsrServerlessFunction] writing buildInfo.json"), await import_fs_extra.default.writeFile((0, import_node_path.join)(funcFolder, "buildInfo.js"), `export default ${buildInfoAsString}`), await import_fs_extra.default.ensureDir((0, import_node_path.join)(funcFolder, "entrypoint"));
@@ -38,6 +39,7 @@ async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot,
38
39
  postBuildLogs.push(`[one.build][vercel.createSsrServerlessFunction] writing entrypoint to ${entrypointFilePath}`), await import_fs_extra.default.writeFile(entrypointFilePath, `
39
40
  const buildInfoConfig = await import('../buildInfo.js');
40
41
  const entry = await import('../server/_virtual_one-entry.js');
42
+ const routeFile = ${JSON.stringify(route.file)}
41
43
 
42
44
  const handler = async (req, res) => {
43
45
  // console.debug("req.url", req.url);
@@ -47,7 +49,7 @@ async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot,
47
49
  params: Object.fromEntries(url.searchParams.entries())
48
50
  }
49
51
  const postfix = url.pathname.endsWith('/') ? 'index.tsx' : '+ssr.tsx';
50
- const routeFile = \`.\${url.pathname}\${postfix}\`;
52
+ // const routeFile = \`.\${url.pathname}\${postfix}\`;
51
53
  let route = buildInfoConfig.default.routeToBuildInfo[routeFile];
52
54
 
53
55
  // If we cannot find the route by direct match, try to find it by looking it up in the
@@ -93,7 +95,7 @@ async function createSsrServerlessFunction(pageName, buildInfo, oneOptionsRoot,
93
95
  }
94
96
  });
95
97
  } catch (e) {
96
- console.error(`[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${pageName}`, e);
98
+ console.error(`[one.build][vercel.createSsrServerlessFunction] failed to generate func for ${route.file}`, e);
97
99
  }
98
100
  }
99
101
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/vercel/build/generate/createSsrServerlessFunction.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;sBAAe,iCACf,mBAA8B,sBAC9B,wBAA6C,qCAC7C,yBAA4C;AAK5C,eAAsBA,4BACpBC,UACAC,WACAC,gBACAC,eAAuB;AAEvB,MAAI;AACFA,kBAAcC,KAAK,6DAA6DJ,QAAAA,EAAU;AAE1F,QAAMK,oBAAoBC,KAAKC,UAAUN,SAAAA,GACnCO,iBAAaC,8BAAQC,uBAAKR,gBAAgB,4BAA4BF,QAAAA,OAAe,CAAA;AAC3F,UAAMW,gBAAAA,QAAGC,UAAUJ,UAAAA;AAEnB,QAAMK,qBAAiBJ,8BAAQC,uBAAKR,gBAAgB,QAAQ,QAAA,CAAA,GACtDY,mBAAeL,8BAAQC,uBAAKF,YAAY,QAAA,CAAA;AAC9C,UAAMG,gBAAAA,QAAGC,UAAUE,YAAAA,GACnBX,cAAcC,KACZ,+EAA+ES,cAAAA,OAAqBC,YAAAA,EAAc,GAEpH,MAAMH,gBAAAA,QAAGI,KAAKF,gBAAgBC,YAAAA,GAE9BX,cAAcC,KAAK,wEAAwE,GAC3F,MAAMO,gBAAAA,QAAGK,cAAUN,uBAAKF,YAAY,cAAA,GAAiB,kBAAkBH,iBAAAA,EAAmB,GAE1F,MAAMM,gBAAAA,QAAGC,cAAUF,uBAAKF,YAAY,YAAA,CAAA;AACpC,QAAMS,yBAAqBR,8BAAQC,uBAAKF,YAAY,cAAc,UAAA,CAAA;AAClEL,kBAAcC,KACZ,yEAAyEa,kBAAAA,EAAoB,GAE/F,MAAMN,gBAAAA,QAAGK,UACPC,oBACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CH;AAGC,QAAMC,0BAAsBT,8BAAQC,uBAAKF,YAAY,cAAA,CAAA;AACrDL,kBAAcC,KACZ,2EAA2Ec,mBAAAA,EAAqB,GAElG,MAAMP,gBAAAA,QAAGQ,UAAUD,qBAAqBE,kDAAAA;AAIxC,QAAMC,uBAAmBZ,8BAAQC,uBAAKF,YAAY,iBAAA,CAAA;AAClDL,yBAAcC,KACZ,8EAA8EiB,gBAAAA,EAAkB,GAE3FV,gBAAAA,QAAGW,UAAUD,kBAAkB;MACpC,GAAGE;MACHC,SAAS;MACTC,aAAa;QACX,GAAGF,mDAA6BE;QAChCC,yBAAyB;MAC3B;IACF,CAAA;EACF,SAASC,GAAG;AACVC,YAAQC,MACN,+EAA+E7B,QAAAA,IAC/E2B,CAAAA;EAEJ;AACF;",
5
- "names": ["createSsrServerlessFunction", "pageName", "buildInfo", "oneOptionsRoot", "postBuildLogs", "push", "buildInfoAsString", "JSON", "stringify", "funcFolder", "resolve", "join", "fs", "ensureDir", "distServerFrom", "distServerTo", "copy", "writeFile", "entrypointFilePath", "packageJsonFilePath", "writeJSON", "serverlessVercelPackageJson", "vcConfigFilePath", "writeJson", "serverlessVercelNodeJsConfig", "handler", "environment", "ONE_DEFAULT_RENDER_MODE", "e", "console", "error"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;sBAAe,iCACf,mBAA8B,sBAC9B,wBAA6C,qCAC7C,yBAA4C,sCAE5C,0BAAiC;AAIjC,eAAsBA,4BACpBC,OACAC,WACAC,gBACAC,eAAuB;AAEvB,MAAI;AACF,QAAMC,WAAOC,0CAAiBL,KAAAA;AAC9BG,kBAAcG,KAAK,yDAAyDF,IAAAA,EAAM;AAElF,QAAMG,oBAAoBC,KAAKC,UAAUR,SAAAA,GACnCS,iBAAaC,8BAAQC,uBAAKV,gBAAgB,4BAA4BE,IAAAA,OAAW,CAAA;AACvF,UAAMS,gBAAAA,QAAGC,UAAUJ,UAAAA;AAEnB,QAAMK,qBAAiBJ,8BAAQC,uBAAKV,gBAAgB,QAAQ,QAAA,CAAA,GACtDc,mBAAeL,8BAAQC,uBAAKF,YAAY,QAAA,CAAA;AAC9C,UAAMG,gBAAAA,QAAGC,UAAUE,YAAAA,GACnBb,cAAcG,KACZ,+EAA+ES,cAAAA,OAAqBC,YAAAA,EAAc,GAEpH,MAAMH,gBAAAA,QAAGI,KAAKF,gBAAgBC,YAAAA,GAE9Bb,cAAcG,KAAK,wEAAwE,GAC3F,MAAMO,gBAAAA,QAAGK,cAAUN,uBAAKF,YAAY,cAAA,GAAiB,kBAAkBH,iBAAAA,EAAmB,GAE1F,MAAMM,gBAAAA,QAAGC,cAAUF,uBAAKF,YAAY,YAAA,CAAA;AACpC,QAAMS,yBAAqBR,8BAAQC,uBAAKF,YAAY,cAAc,UAAA,CAAA;AAClEP,kBAAcG,KACZ,yEAAyEa,kBAAAA,EAAoB,GAE/F,MAAMN,gBAAAA,QAAGK,UACPC,oBACA;;;sBAGgBX,KAAKC,UAAUT,MAAMoB,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2C5C;AAGC,QAAMC,0BAAsBV,8BAAQC,uBAAKF,YAAY,cAAA,CAAA;AACrDP,kBAAcG,KACZ,2EAA2Ee,mBAAAA,EAAqB,GAElG,MAAMR,gBAAAA,QAAGS,UAAUD,qBAAqBE,kDAAAA;AAIxC,QAAMC,uBAAmBb,8BAAQC,uBAAKF,YAAY,iBAAA,CAAA;AAClDP,yBAAcG,KACZ,8EAA8EkB,gBAAAA,EAAkB,GAE3FX,gBAAAA,QAAGY,UAAUD,kBAAkB;MACpC,GAAGE;MACHC,SAAS;MACTC,aAAa;QACX,GAAGF,mDAA6BE;QAChCC,yBAAyB;MAC3B;IACF,CAAA;EACF,SAASC,GAAG;AACVC,YAAQC,MACN,+EAA+EhC,MAAMoB,IAAI,IACzFU,CAAAA;EAEJ;AACF;",
5
+ "names": ["createSsrServerlessFunction", "route", "buildInfo", "oneOptionsRoot", "postBuildLogs", "path", "getPathFromRoute", "push", "buildInfoAsString", "JSON", "stringify", "funcFolder", "resolve", "join", "fs", "ensureDir", "distServerFrom", "distServerTo", "copy", "writeFile", "entrypointFilePath", "file", "packageJsonFilePath", "writeJSON", "serverlessVercelPackageJson", "vcConfigFilePath", "writeJson", "serverlessVercelNodeJsConfig", "handler", "environment", "ONE_DEFAULT_RENDER_MODE", "e", "console", "error"]
6
6
  }