rangutopia 0.0.8 → 0.0.10

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 (174) hide show
  1. package/README.md +96 -1
  2. package/dist/commands/client/deploy/action.d.ts +2 -0
  3. package/dist/commands/client/deploy/action.d.ts.map +1 -0
  4. package/dist/commands/client/deploy/action.js +7 -0
  5. package/dist/commands/client/deploy/action.js.map +1 -0
  6. package/dist/commands/client/deploy/helpers.d.ts +19 -0
  7. package/dist/commands/client/deploy/helpers.d.ts.map +1 -0
  8. package/dist/commands/client/deploy/helpers.js +33 -0
  9. package/dist/commands/client/deploy/helpers.js.map +1 -0
  10. package/dist/commands/client/deploy/mod.d.ts +2 -0
  11. package/dist/commands/client/deploy/mod.d.ts.map +1 -0
  12. package/dist/commands/client/deploy/mod.js +2 -0
  13. package/dist/commands/client/deploy/mod.js.map +1 -0
  14. package/dist/commands/client/deploy/options.d.ts +11 -0
  15. package/dist/commands/client/deploy/options.d.ts.map +1 -0
  16. package/dist/commands/client/deploy/options.js +11 -0
  17. package/dist/commands/client/deploy/options.js.map +1 -0
  18. package/dist/commands/client/deploy/orchestrator.d.ts +10 -0
  19. package/dist/commands/client/deploy/orchestrator.d.ts.map +1 -0
  20. package/dist/commands/client/deploy/orchestrator.js +98 -0
  21. package/dist/commands/client/deploy/orchestrator.js.map +1 -0
  22. package/dist/commands/client/deploy/types.d.ts +4 -0
  23. package/dist/commands/client/deploy/types.d.ts.map +1 -0
  24. package/dist/commands/client/deploy/types.js +2 -0
  25. package/dist/commands/client/deploy/types.js.map +1 -0
  26. package/dist/commands/client/init/action.d.ts +3 -0
  27. package/dist/commands/client/init/action.d.ts.map +1 -0
  28. package/dist/commands/client/init/action.js +17 -0
  29. package/dist/commands/client/init/action.js.map +1 -0
  30. package/dist/commands/client/init/mod.d.ts +2 -0
  31. package/dist/commands/client/init/mod.d.ts.map +1 -0
  32. package/dist/commands/client/init/mod.js +2 -0
  33. package/dist/commands/client/init/mod.js.map +1 -0
  34. package/dist/commands/client/init/options.d.ts +6 -0
  35. package/dist/commands/client/init/options.d.ts.map +1 -0
  36. package/dist/commands/client/init/options.js +5 -0
  37. package/dist/commands/client/init/options.js.map +1 -0
  38. package/dist/commands/client/mod.d.ts +4 -0
  39. package/dist/commands/client/mod.d.ts.map +1 -0
  40. package/dist/commands/client/mod.js +30 -0
  41. package/dist/commands/client/mod.js.map +1 -0
  42. package/dist/commands/library/mod.d.ts.map +1 -1
  43. package/dist/commands/library/mod.js +17 -7
  44. package/dist/commands/library/mod.js.map +1 -1
  45. package/dist/commands/library/publish/helpers.d.ts.map +1 -1
  46. package/dist/commands/library/publish/helpers.js +71 -86
  47. package/dist/commands/library/publish/helpers.js.map +1 -1
  48. package/dist/commands/tools/husky/init/action.d.ts.map +1 -1
  49. package/dist/commands/tools/husky/init/action.js +2 -0
  50. package/dist/commands/tools/husky/init/action.js.map +1 -1
  51. package/dist/commands/tools/husky/init/helpers.d.ts +2 -0
  52. package/dist/commands/tools/husky/init/helpers.d.ts.map +1 -0
  53. package/dist/commands/tools/husky/init/helpers.js +12 -0
  54. package/dist/commands/tools/husky/init/helpers.js.map +1 -0
  55. package/dist/commands/tools/lint/init/action.d.ts.map +1 -1
  56. package/dist/commands/tools/lint/init/action.js +3 -1
  57. package/dist/commands/tools/lint/init/action.js.map +1 -1
  58. package/dist/commands/tools/lint/init/constants.d.ts +5 -0
  59. package/dist/commands/tools/lint/init/constants.d.ts.map +1 -0
  60. package/dist/commands/tools/lint/init/constants.js +5 -0
  61. package/dist/commands/tools/lint/init/constants.js.map +1 -0
  62. package/dist/commands/tools/lint/init/helpers.d.ts +2 -0
  63. package/dist/commands/tools/lint/init/helpers.d.ts.map +1 -0
  64. package/dist/commands/tools/lint/init/helpers.js +27 -0
  65. package/dist/commands/tools/lint/init/helpers.js.map +1 -0
  66. package/dist/commands/tools/mod.d.ts.map +1 -1
  67. package/dist/commands/tools/mod.js +2 -0
  68. package/dist/commands/tools/mod.js.map +1 -1
  69. package/dist/commands/tools/vite/init/action.d.ts +3 -0
  70. package/dist/commands/tools/vite/init/action.d.ts.map +1 -0
  71. package/dist/commands/tools/vite/init/action.js +8 -0
  72. package/dist/commands/tools/vite/init/action.js.map +1 -0
  73. package/dist/commands/tools/vite/init/constants.d.ts +2 -0
  74. package/dist/commands/tools/vite/init/constants.d.ts.map +1 -0
  75. package/dist/commands/tools/vite/init/constants.js +4 -0
  76. package/dist/commands/tools/vite/init/constants.js.map +1 -0
  77. package/dist/commands/tools/vite/init/helpers.d.ts +4 -0
  78. package/dist/commands/tools/vite/init/helpers.d.ts.map +1 -0
  79. package/dist/commands/tools/vite/init/helpers.js +39 -0
  80. package/dist/commands/tools/vite/init/helpers.js.map +1 -0
  81. package/dist/commands/tools/vite/init/mod.d.ts +2 -0
  82. package/dist/commands/tools/vite/init/mod.d.ts.map +1 -0
  83. package/dist/commands/tools/vite/init/mod.js +2 -0
  84. package/dist/commands/tools/vite/init/mod.js.map +1 -0
  85. package/dist/commands/tools/vite/init/options.d.ts +6 -0
  86. package/dist/commands/tools/vite/init/options.d.ts.map +1 -0
  87. package/dist/commands/tools/vite/init/options.js +5 -0
  88. package/dist/commands/tools/vite/init/options.js.map +1 -0
  89. package/dist/commands/tools/vite/mod.d.ts +4 -0
  90. package/dist/commands/tools/vite/mod.d.ts.map +1 -0
  91. package/dist/commands/tools/vite/mod.js +12 -0
  92. package/dist/commands/tools/vite/mod.js.map +1 -0
  93. package/dist/constants.d.ts +3 -0
  94. package/dist/constants.d.ts.map +1 -1
  95. package/dist/constants.js +12 -4
  96. package/dist/constants.js.map +1 -1
  97. package/dist/main.js +2 -0
  98. package/dist/main.js.map +1 -1
  99. package/dist/modules/packageManager/packageManager.d.ts +2 -0
  100. package/dist/modules/packageManager/packageManager.d.ts.map +1 -1
  101. package/dist/modules/packageManager/packageManager.js +3 -0
  102. package/dist/modules/packageManager/packageManager.js.map +1 -1
  103. package/dist/modules/packageManager/yarnBerryAdapter.d.ts +1 -0
  104. package/dist/modules/packageManager/yarnBerryAdapter.d.ts.map +1 -1
  105. package/dist/modules/packageManager/yarnBerryAdapter.js +3 -0
  106. package/dist/modules/packageManager/yarnBerryAdapter.js.map +1 -1
  107. package/dist/modules/packageManager/yarnClassicAdapter.d.ts +1 -0
  108. package/dist/modules/packageManager/yarnClassicAdapter.d.ts.map +1 -1
  109. package/dist/modules/packageManager/yarnClassicAdapter.js +3 -0
  110. package/dist/modules/packageManager/yarnClassicAdapter.js.map +1 -1
  111. package/dist/modules/vercel/buildOutput.d.ts +26 -0
  112. package/dist/modules/vercel/buildOutput.d.ts.map +1 -0
  113. package/dist/modules/vercel/buildOutput.js +58 -0
  114. package/dist/modules/vercel/buildOutput.js.map +1 -0
  115. package/dist/modules/vercel/config.d.ts +9 -0
  116. package/dist/modules/vercel/config.d.ts.map +1 -0
  117. package/dist/modules/vercel/config.js +19 -0
  118. package/dist/modules/vercel/config.js.map +1 -0
  119. package/dist/modules/vercel/constants.d.ts +11 -0
  120. package/dist/modules/vercel/constants.d.ts.map +1 -0
  121. package/dist/modules/vercel/constants.js +18 -0
  122. package/dist/modules/vercel/constants.js.map +1 -0
  123. package/dist/modules/vercel/credentials.d.ts +5 -0
  124. package/dist/modules/vercel/credentials.d.ts.map +1 -0
  125. package/dist/modules/vercel/credentials.js +22 -0
  126. package/dist/modules/vercel/credentials.js.map +1 -0
  127. package/dist/modules/vercel/errors.d.ts +13 -0
  128. package/dist/modules/vercel/errors.d.ts.map +1 -0
  129. package/dist/modules/vercel/errors.js +19 -0
  130. package/dist/modules/vercel/errors.js.map +1 -0
  131. package/dist/modules/vercel/mod.d.ts +2 -0
  132. package/dist/modules/vercel/mod.d.ts.map +1 -0
  133. package/dist/modules/vercel/mod.js +2 -0
  134. package/dist/modules/vercel/mod.js.map +1 -0
  135. package/dist/modules/vercel/types.d.ts +27 -0
  136. package/dist/modules/vercel/types.d.ts.map +1 -0
  137. package/dist/modules/vercel/types.js +4 -0
  138. package/dist/modules/vercel/types.js.map +1 -0
  139. package/dist/modules/vercel/vercel.d.ts +48 -0
  140. package/dist/modules/vercel/vercel.d.ts.map +1 -0
  141. package/dist/modules/vercel/vercel.js +117 -0
  142. package/dist/modules/vercel/vercel.js.map +1 -0
  143. package/dist/utils/changelog.d.ts +1 -1
  144. package/dist/utils/changelog.d.ts.map +1 -1
  145. package/dist/utils/changelog.js.map +1 -1
  146. package/dist/utils/environment.d.ts +17 -0
  147. package/dist/utils/environment.d.ts.map +1 -0
  148. package/dist/utils/environment.js +14 -0
  149. package/dist/utils/environment.js.map +1 -0
  150. package/dist/utils/fs.d.ts +1 -0
  151. package/dist/utils/fs.d.ts.map +1 -1
  152. package/dist/utils/fs.js +1 -0
  153. package/dist/utils/fs.js.map +1 -1
  154. package/dist/utils/packageJson.d.ts +13 -0
  155. package/dist/utils/packageJson.d.ts.map +1 -1
  156. package/dist/utils/packageJson.js +27 -10
  157. package/dist/utils/packageJson.js.map +1 -1
  158. package/dist/utils/parse.d.ts +3 -0
  159. package/dist/utils/parse.d.ts.map +1 -1
  160. package/dist/utils/parse.js +13 -1
  161. package/dist/utils/parse.js.map +1 -1
  162. package/package.json +4 -1
  163. package/templates/deploy/vercel.json +1 -0
  164. package/templates/vite/projectTemplate/.gitignore.template +35 -0
  165. package/templates/vite/projectTemplate/.yarnrc.yml.template +1 -0
  166. package/templates/vite/projectTemplate/index.html.template +13 -0
  167. package/templates/vite/projectTemplate/package.json.template +26 -0
  168. package/templates/vite/projectTemplate/src/App.tsx.template +9 -0
  169. package/templates/vite/projectTemplate/src/main.tsx.template +9 -0
  170. package/templates/vite/projectTemplate/tsconfig.json.template +25 -0
  171. package/templates/vite/projectTemplate/vite.config.ts.template +7 -0
  172. package/tsconfig.json +1 -1
  173. package/vitest.config.ts +1 -1
  174. /package/templates/lint/{commitlint.config.js → commitlint.config.cjs} +0 -0
@@ -0,0 +1,27 @@
1
+ import { nearestPackageJsonPath, readPackageJson, updatePackageJson } from "../../../../utils/packageJson.js";
2
+ import path from "node:path";
3
+ import { COMMIT_LINT_SCRIPT } from "./constants.js";
4
+ import { logger } from "../../../../modules/mod.js";
5
+ export const addCommitlintScript = async () => {
6
+ const nearestDirectory = await nearestPackageJsonPath();
7
+ if (!nearestDirectory)
8
+ throw new Error("We couldn't find any package json for your project.");
9
+ const nearestPackageJson = path.join(nearestDirectory, "package.json");
10
+ const packageJson = readPackageJson(nearestPackageJson);
11
+ if (!packageJson.scripts?.[COMMIT_LINT_SCRIPT.name]) {
12
+ if (packageJson.scripts) {
13
+ packageJson.scripts[COMMIT_LINT_SCRIPT.name] = COMMIT_LINT_SCRIPT.command;
14
+ }
15
+ else {
16
+ packageJson.scripts = {
17
+ [COMMIT_LINT_SCRIPT.name]: COMMIT_LINT_SCRIPT.command
18
+ };
19
+ }
20
+ updatePackageJson(nearestPackageJson, packageJson);
21
+ logger.verbose("added commitlint script");
22
+ }
23
+ else {
24
+ logger.verbose("already has commitlint script");
25
+ }
26
+ };
27
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/commands/tools/lint/init/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,kCAAkC,CAAC;AAC5G,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAC;AAElD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;IAC1C,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,EAAE,CAAC;IACxD,IAAI,CAAC,gBAAgB;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAE9F,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACxD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAElD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACtB,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC;QAC9E,CAAC;aACI,CAAC;YACF,WAAW,CAAC,OAAO,GAAG;gBAClB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,OAAO;aACxD,CAAA;QACL,CAAC;QAED,iBAAiB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAA;IAC7C,CAAC;SACI,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAA;IACnD,CAAC;AACL,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/commands/tools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,iBAAS,YAAY,CAAC,OAAO,EAAE,OAAO,QAIrC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/commands/tools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,iBAAS,YAAY,CAAC,OAAO,EAAE,OAAO,QAKrC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,10 +1,12 @@
1
1
  import { Command } from "commander";
2
2
  import { huskyCommand } from "./husky/mod.js";
3
3
  import { lintCommand } from "./lint/mod.js";
4
+ import { viteCommand } from "./vite/mod.js";
4
5
  function toolsCommand(program) {
5
6
  const tools = program.command("tools").description("third party tools we are using");
6
7
  huskyCommand(tools);
7
8
  lintCommand(tools);
9
+ viteCommand(tools);
8
10
  }
9
11
  export { toolsCommand };
10
12
  //# sourceMappingURL=mod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/commands/tools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,SAAS,YAAY,CAAC,OAAgB;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;IACrF,YAAY,CAAC,KAAK,CAAC,CAAA;IACnB,WAAW,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/commands/tools/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,SAAS,YAAY,CAAC,OAAgB;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC;IACrF,YAAY,CAAC,KAAK,CAAC,CAAA;IACnB,WAAW,CAAC,KAAK,CAAC,CAAA;IAClB,WAAW,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { type OptionsType } from "./options.js";
2
+ export declare function action(commandOptions: OptionsType): Promise<void>;
3
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../../src/commands/tools/vite/init/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,cAAc,CAAC;AAG9C,wBAAsB,MAAM,CAAC,cAAc,EAAE,WAAW,iBAMvD"}
@@ -0,0 +1,8 @@
1
+ import {} from "./options.js";
2
+ import { copyViteFiles, installDependencies, throwIfFilesAlreadyExists } from "./helpers.js";
3
+ export async function action(commandOptions) {
4
+ throwIfFilesAlreadyExists();
5
+ copyViteFiles(commandOptions.name);
6
+ await installDependencies();
7
+ }
8
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../../../src/commands/tools/vite/init/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,aAAa,EAAE,mBAAmB,EAAE,yBAAyB,EAAC,MAAM,cAAc,CAAC;AAE3F,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,cAA2B;IAChD,yBAAyB,EAAE,CAAA;IAE3B,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IAElC,MAAM,mBAAmB,EAAE,CAAA;AACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const PROJECT_TEMPLATE_PATH: string;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/commands/tools/vite/init/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,QAA+C,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { join } from "node:path";
2
+ import { VITE_TEMPLATES_PATH } from "../../../../constants.js";
3
+ export const PROJECT_TEMPLATE_PATH = join(VITE_TEMPLATES_PATH, "projectTemplate");
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/commands/tools/vite/init/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export declare const throwIfFilesAlreadyExists: () => void;
2
+ export declare const copyViteFiles: (name: string) => void;
3
+ export declare const installDependencies: () => Promise<void>;
4
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/commands/tools/vite/init/helpers.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,yBAAyB,YAUrC,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,SAkBzC,CAAA;AAED,eAAO,MAAM,mBAAmB,qBAE/B,CAAA"}
@@ -0,0 +1,39 @@
1
+ import { copyDir, isFileOrFolderExists } from "../../../../utils/fs.js";
2
+ import { join } from "node:path";
3
+ import fs from "node:fs";
4
+ import { packagePath, readPackageJson, updatePackageJson } from "../../../../utils/packageJson.js";
5
+ import { getPackageManager, logger } from "../../../../modules/mod.js";
6
+ import { PROJECT_TEMPLATE_PATH } from "./constants.js";
7
+ const resolveDestName = (entry) => entry.replace(/\.template$/, '');
8
+ export const throwIfFilesAlreadyExists = () => {
9
+ logger.verbose("checking if the files exist");
10
+ const templateEntriesPaths = fs.readdirSync(PROJECT_TEMPLATE_PATH, { recursive: true, encoding: "utf-8" });
11
+ templateEntriesPaths.forEach(entry => {
12
+ const fullSrcPath = join(PROJECT_TEMPLATE_PATH, entry);
13
+ const destEntry = resolveDestName(entry);
14
+ if (fs.statSync(fullSrcPath).isFile() && isFileOrFolderExists(destEntry)) {
15
+ throw new Error(`The ${destEntry} file already exists`);
16
+ }
17
+ });
18
+ };
19
+ export const copyViteFiles = (name) => {
20
+ logger.verbose("copying project template files");
21
+ copyDir(PROJECT_TEMPLATE_PATH, ".");
22
+ const templateEntries = fs.readdirSync(PROJECT_TEMPLATE_PATH, { recursive: true, encoding: "utf-8" });
23
+ for (const entry of templateEntries) {
24
+ const fullSrcPath = join(PROJECT_TEMPLATE_PATH, entry);
25
+ if (fs.statSync(fullSrcPath).isFile()) {
26
+ if (fs.existsSync(entry)) {
27
+ fs.renameSync(entry, resolveDestName(entry));
28
+ }
29
+ }
30
+ }
31
+ logger.verbose("setting package name");
32
+ const packageJsonPath = packagePath('package.json');
33
+ const packageJson = readPackageJson(packageJsonPath);
34
+ updatePackageJson(packageJsonPath, { name, ...packageJson });
35
+ };
36
+ export const installDependencies = async () => {
37
+ await getPackageManager().install();
38
+ };
39
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/commands/tools/vite/init/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAC,iBAAiB,EAAE,MAAM,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAErD,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,EAAE;IAC1C,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;IAC7C,MAAM,oBAAoB,GAAG,EAAE,CAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;IACzG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;QACtD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAC,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,OAAO,SAAS,sBAAsB,CAAC,CAAA;QAC3D,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE;IAC1C,MAAM,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAA;IAChD,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;IAEnC,MAAM,eAAe,GAAG,EAAE,CAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;IACrG,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;QACtD,IAAI,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;YAChD,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACtC,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,CAAA;IACnD,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,CAAC,CAAA;IACpD,iBAAiB,CAAC,eAAe,EAAE,EAAC,IAAI,EAAE,GAAG,WAAW,EAAC,CAAC,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;IAC1C,MAAM,iBAAiB,EAAE,CAAC,OAAO,EAAE,CAAC;AACxC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { action } from "./action.js";
2
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../src/commands/tools/vite/init/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { action } from "./action.js";
2
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../../../src/commands/tools/vite/init/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { z } from "zod/v4";
2
+ export declare const CommandOptionsSchema: z.ZodObject<{
3
+ name: z.ZodString;
4
+ }, z.core.$strip>;
5
+ export type OptionsType = z.infer<typeof CommandOptionsSchema>;
6
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../src/commands/tools/vite/init/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { z } from "zod/v4";
2
+ export const CommandOptionsSchema = z.object({
3
+ name: z.string()
4
+ });
5
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../../src/commands/tools/vite/init/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Command } from "commander";
2
+ declare function viteCommand(program: Command): void;
3
+ export { viteCommand };
4
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/commands/tools/vite/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,iBAAS,WAAW,CAAC,OAAO,EAAE,OAAO,QASpC;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Command } from "commander";
2
+ function viteCommand(program) {
3
+ const vite = program.command("vite").description("vite for bundling and serving your app");
4
+ vite.command("init").description("initialize vite with react in the project")
5
+ .requiredOption("--name <name>", "project name")
6
+ .action(async (options) => {
7
+ const { action } = await import("./init/mod.js");
8
+ action(options);
9
+ });
10
+ }
11
+ export { viteCommand };
12
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../../src/commands/tools/vite/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,SAAS,WAAW,CAAC,OAAgB;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,wCAAwC,CAAC,CAAC;IAE3F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,2CAA2C,CAAC;SACpE,cAAc,CAAC,eAAe,EAAE,cAAc,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;QAChB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -3,4 +3,7 @@ export declare const TEMPLATES_PATH: string;
3
3
  export declare const HUSKY_TEMPLATES_PATH: string;
4
4
  export declare const LINT_TEMPLATES_PATH: string;
5
5
  export declare const FORMAT_TEMPLATES_PATH: string;
6
+ export declare const DEPLOY_TEMPLATES_PATH: string;
7
+ export declare const DEFAULT_VERCEL_CONFIG_PATH: string;
8
+ export declare const VITE_TEMPLATES_PATH: string;
6
9
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,QAAgB,CAAC;AACvC,eAAO,MAAM,cAAc,QAAwC,CAAC;AACpE,eAAO,MAAM,oBAAoB,QAAqC,CAAC;AACvE,eAAO,MAAM,mBAAmB,QAAoC,CAAC;AACrE,eAAO,MAAM,qBAAqB,QAAsC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,QAAgB,CAAC;AASvC,eAAO,MAAM,cAAc,QAAuC,CAAC;AACnE,eAAO,MAAM,oBAAoB,QAAqC,CAAC;AACvE,eAAO,MAAM,mBAAmB,QAAoC,CAAC;AACrE,eAAO,MAAM,qBAAqB,QAAsC,CAAC;AACzE,eAAO,MAAM,qBAAqB,QAAsC,CAAC;AACzE,eAAO,MAAM,0BAA0B,QAGtC,CAAC;AACF,eAAO,MAAM,mBAAmB,QAAoC,CAAC"}
package/dist/constants.js CHANGED
@@ -1,7 +1,15 @@
1
1
  import path from "node:path";
2
+ import { fileURLToPath } from "node:url";
2
3
  export const ROOT_PATH = process.cwd();
3
- export const TEMPLATES_PATH = path.join(process.cwd(), "templates");
4
- export const HUSKY_TEMPLATES_PATH = path.join(TEMPLATES_PATH, 'husky');
5
- export const LINT_TEMPLATES_PATH = path.join(TEMPLATES_PATH, 'lint');
6
- export const FORMAT_TEMPLATES_PATH = path.join(TEMPLATES_PATH, 'format');
4
+ // Rangutopia's own install directory (dist/ at runtime, src/ during dev).
5
+ // Templates ship with the package and must be resolved relative to this file,
6
+ // not the user's cwd.
7
+ const PACKAGE_ROOT = path.join(path.dirname(fileURLToPath(import.meta.url)), "..");
8
+ export const TEMPLATES_PATH = path.join(PACKAGE_ROOT, "templates");
9
+ export const HUSKY_TEMPLATES_PATH = path.join(TEMPLATES_PATH, "husky");
10
+ export const LINT_TEMPLATES_PATH = path.join(TEMPLATES_PATH, "lint");
11
+ export const FORMAT_TEMPLATES_PATH = path.join(TEMPLATES_PATH, "format");
12
+ export const DEPLOY_TEMPLATES_PATH = path.join(TEMPLATES_PATH, "deploy");
13
+ export const DEFAULT_VERCEL_CONFIG_PATH = path.join(DEPLOY_TEMPLATES_PATH, "vercel.json");
14
+ export const VITE_TEMPLATES_PATH = path.join(TEMPLATES_PATH, 'vite');
7
15
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAEvC,0EAA0E;AAC1E,8EAA8E;AAC9E,sBAAsB;AACtB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,IAAI,CACL,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC,IAAI,CACjD,qBAAqB,EACrB,aAAa,CACd,CAAC;AACF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC"}
package/dist/main.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from "commander";
3
3
  import { libraryCommand } from "./commands/library/mod.js";
4
+ import { clientCommand } from "./commands/client/mod.js";
4
5
  import { toolsCommand } from "./commands/tools/mod.js";
5
6
  import { setup } from "./setup.js";
6
7
  import { changelogCommand } from "./commands/changelog/mod.js";
@@ -10,5 +11,6 @@ setup(program);
10
11
  libraryCommand(program);
11
12
  toolsCommand(program);
12
13
  changelogCommand(program);
14
+ clientCommand(program);
13
15
  program.parse(process.argv);
14
16
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AACjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAG7D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,KAAK,CAAC,OAAO,CAAC,CAAA;AAEd,sBAAsB;AACtB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,gBAAgB,CAAC,OAAO,CAAC,CAAA;AAGzB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AACjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAG7D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;AAEf,sBAAsB;AACtB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzB,aAAa,CAAC,OAAO,CAAC,CAAA;AAEtB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -5,6 +5,7 @@ export interface IPackageManagerAdapter {
5
5
  setVersion(packageName: string, newVersion: string): Promise<void>;
6
6
  publish(pkgLocation: string, tag: string): Promise<void>;
7
7
  isMonorepo(): boolean;
8
+ install(): Promise<void>;
8
9
  }
9
10
  export declare class PackageManager implements IPackageManagerAdapter {
10
11
  #private;
@@ -14,5 +15,6 @@ export declare class PackageManager implements IPackageManagerAdapter {
14
15
  setVersion(packageName: string, newVersion: string): Promise<void>;
15
16
  publish(packageName: string, tag: string): Promise<void>;
16
17
  isMonorepo(): boolean;
18
+ install(): Promise<void>;
17
19
  }
18
20
  //# sourceMappingURL=packageManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageManager.d.ts","sourceRoot":"","sources":["../../../src/modules/packageManager/packageManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACnC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,IAAI,OAAO,CAAC;CACzB;AAED,qBAAa,cAAe,YAAW,sBAAsB;;gBAG7C,OAAO,EAAE,sBAAsB;IAI3C,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK;IAIpC,aAAa;IAIb,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAIlD,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAIxC,UAAU;CAGb"}
1
+ {"version":3,"file":"packageManager.d.ts","sourceRoot":"","sources":["../../../src/modules/packageManager/packageManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,sBAAsB;IACnC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,IAAI,OAAO,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,qBAAa,cAAe,YAAW,sBAAsB;;gBAG7C,OAAO,EAAE,sBAAsB;IAI3C,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK;IAIpC,aAAa;IAIb,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAIlD,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAIxC,UAAU;IAIV,OAAO;CAGV"}
@@ -18,5 +18,8 @@ export class PackageManager {
18
18
  isMonorepo() {
19
19
  return this.#adapter.isMonorepo();
20
20
  }
21
+ install() {
22
+ return this.#adapter.install();
23
+ }
21
24
  }
22
25
  //# sourceMappingURL=packageManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../../src/modules/packageManager/packageManager.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,cAAc;IACvB,QAAQ,CAAyB;IAEjC,YAAY,OAA+B;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,QAAkB,EAAE,IAAY;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,WAAmB,EAAE,UAAkB;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,WAAmB,EAAE,GAAW;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;CACJ"}
1
+ {"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../../src/modules/packageManager/packageManager.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,cAAc;IACvB,QAAQ,CAAyB;IAEjC,YAAY,OAA+B;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,QAAkB,EAAE,IAAY;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,WAAmB,EAAE,UAAkB;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,WAAmB,EAAE,GAAW;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;CACJ"}
@@ -5,5 +5,6 @@ export declare class YarnBerryAdapter implements IPackageManagerAdapter {
5
5
  setVersion(packageName: string, newVersion: string): Promise<void>;
6
6
  publish(packageName: string, tag: string): Promise<void>;
7
7
  isMonorepo(): boolean;
8
+ install(): Promise<void>;
8
9
  }
9
10
  //# sourceMappingURL=yarnBerryAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"yarnBerryAdapter.d.ts","sourceRoot":"","sources":["../../../src/modules/packageManager/yarnBerryAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAKlE,qBAAa,gBAAiB,YAAW,sBAAsB;IACrD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK;IAMpC,aAAa;IAMb,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IASlD,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAW9C,UAAU;CAKb"}
1
+ {"version":3,"file":"yarnBerryAdapter.d.ts","sourceRoot":"","sources":["../../../src/modules/packageManager/yarnBerryAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAKlE,qBAAa,gBAAiB,YAAW,sBAAsB;IACrD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK;IAMpC,aAAa;IAMb,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IASlD,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAW9C,UAAU;IAMJ,OAAO;CAGhB"}
@@ -36,5 +36,8 @@ export class YarnBerryAdapter {
36
36
  const isMonorepo = Array.isArray(rootPackageJsonData.workspaces) && rootPackageJsonData.workspaces.length > 0;
37
37
  return isMonorepo;
38
38
  }
39
+ async install() {
40
+ await spawn('yarn', ['install']);
41
+ }
39
42
  }
40
43
  //# sourceMappingURL=yarnBerryAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"yarnBerryAdapter.js","sourceRoot":"","sources":["../../../src/modules/packageManager/yarnBerryAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EAAC,6BAA6B,EAAE,iCAAiC,EAAC,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAE3D,MAAM,OAAO,gBAAgB;IACzB,KAAK,CAAC,GAAG,CAAC,QAAkB,EAAE,IAAY;QACtC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,IAAI,KAAK,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa;QACf,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,6BAA6B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,iCAAiC,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,UAAkB;QACpD,MAAM,KAAK,CAAC,MAAM,EAAE;YAChB,WAAW;YACX,WAAW;YACX,SAAS;YACT,UAAU;SACb,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,GAAW;QAC1C,MAAM,KAAK,CAAC,MAAM,EAAE;YAChB,WAAW;YACX,WAAW;YACX,KAAK;YACL,SAAS;YACT,OAAO;YACP,GAAG;SACN,CAAC,CAAC;IACP,CAAC;IAED,UAAU;QACN,MAAM,mBAAmB,GAAG,eAAe,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9G,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}
1
+ {"version":3,"file":"yarnBerryAdapter.js","sourceRoot":"","sources":["../../../src/modules/packageManager/yarnBerryAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EAAC,6BAA6B,EAAE,iCAAiC,EAAC,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAE3D,MAAM,OAAO,gBAAgB;IACzB,KAAK,CAAC,GAAG,CAAC,QAAkB,EAAE,IAAY;QACtC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,IAAI,KAAK,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa;QACf,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,6BAA6B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,iCAAiC,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,UAAkB;QACpD,MAAM,KAAK,CAAC,MAAM,EAAE;YAChB,WAAW;YACX,WAAW;YACX,SAAS;YACT,UAAU;SACb,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,GAAW;QAC1C,MAAM,KAAK,CAAC,MAAM,EAAE;YAChB,WAAW;YACX,WAAW;YACX,KAAK;YACL,SAAS;YACT,OAAO;YACP,GAAG;SACN,CAAC,CAAC;IACP,CAAC;IAED,UAAU;QACN,MAAM,mBAAmB,GAAG,eAAe,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9G,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACrC,CAAC;CACJ"}
@@ -5,5 +5,6 @@ export declare class YarnClassicAdapter implements IPackageManagerAdapter {
5
5
  setVersion(packageName: string, newVersion: string): Promise<void>;
6
6
  publish(packageName: string, tag: string): Promise<void>;
7
7
  isMonorepo(): boolean;
8
+ install(): Promise<void>;
8
9
  }
9
10
  //# sourceMappingURL=yarnClassicAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"yarnClassicAdapter.d.ts","sourceRoot":"","sources":["../../../src/modules/packageManager/yarnClassicAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAKlE,qBAAa,kBAAmB,YAAW,sBAAsB;IACvD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK;IAMpC,aAAa;IAMb,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAalD,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAU9C,UAAU;CAKb"}
1
+ {"version":3,"file":"yarnClassicAdapter.d.ts","sourceRoot":"","sources":["../../../src/modules/packageManager/yarnClassicAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAKlE,qBAAa,kBAAmB,YAAW,sBAAsB;IACvD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK;IAMpC,aAAa;IAMb,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAalD,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAU9C,UAAU;IAMJ,OAAO;CAGhB"}
@@ -39,5 +39,8 @@ export class YarnClassicAdapter {
39
39
  const isMonorepo = Array.isArray(rootPackageJsonData.workspaces) && rootPackageJsonData.workspaces.length > 0;
40
40
  return isMonorepo;
41
41
  }
42
+ async install() {
43
+ await spawn('yarn', ['install']);
44
+ }
42
45
  }
43
46
  //# sourceMappingURL=yarnClassicAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"yarnClassicAdapter.js","sourceRoot":"","sources":["../../../src/modules/packageManager/yarnClassicAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAC,8BAA8B,EAAC,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAE3D,MAAM,OAAO,kBAAkB;IAC3B,KAAK,CAAC,GAAG,CAAC,QAAkB,EAAE,IAAY;QACtC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QACpB,IAAI,IAAI,KAAK,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa;QACf,8GAA8G;QAC9G,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;QAChF,OAAO,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,UAAkB;QACpD,MAAM,KAAK,CAAC,MAAM,EAAE;YAChB,UAAU;YACV,WAAW;YACX,WAAW;YACX,SAAS;YACT,eAAe;YACf,UAAU;YACV,sBAAsB;YACtB,QAAQ;SACX,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,GAAW;QAC1C,MAAM,KAAK,CAAC,MAAM,EAAE;YAChB,WAAW;YACX,WAAW;YACX,SAAS;YACT,OAAO;YACP,GAAG;SACN,CAAC,CAAA;IACN,CAAC;IAED,UAAU;QACN,MAAM,mBAAmB,GAAG,eAAe,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;QAC7G,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}
1
+ {"version":3,"file":"yarnClassicAdapter.js","sourceRoot":"","sources":["../../../src/modules/packageManager/yarnClassicAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAC,8BAA8B,EAAC,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAE3D,MAAM,OAAO,kBAAkB;IAC3B,KAAK,CAAC,GAAG,CAAC,QAAkB,EAAE,IAAY;QACtC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QACpB,IAAI,IAAI,KAAK,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa;QACf,8GAA8G;QAC9G,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;QAChF,OAAO,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,UAAkB;QACpD,MAAM,KAAK,CAAC,MAAM,EAAE;YAChB,UAAU;YACV,WAAW;YACX,WAAW;YACX,SAAS;YACT,eAAe;YACf,UAAU;YACV,sBAAsB;YACtB,QAAQ;SACX,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,GAAW;QAC1C,MAAM,KAAK,CAAC,MAAM,EAAE;YAChB,WAAW;YACX,WAAW;YACX,SAAS;YACT,OAAO;YACP,GAAG;SACN,CAAC,CAAA;IACN,CAAC;IAED,UAAU;QACN,MAAM,mBAAmB,GAAG,eAAe,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;QAC7G,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACrC,CAAC;CACJ"}
@@ -0,0 +1,26 @@
1
+ import { type Package } from "../../utils/packageJson.js";
2
+ import type { BuildOutputApiConfig } from "./types.js";
3
+ /**
4
+ * Reads a `vercel.json`, runs its routing rules through
5
+ * `@vercel/routing-utils.getTransformedRoutes`, and prepends the
6
+ * cache-control rule that Vercel applies to fingerprinted assets. Returns a
7
+ * Build Output API v3 config object.
8
+ *
9
+ * @see https://vercel.com/docs/build-output-api/configuration
10
+ */
11
+ export declare function loadBuildOutputConfig(configPath: string): Promise<BuildOutputApiConfig>;
12
+ /**
13
+ * Copies `dirname(pkg.main)` into `<pkg.location>/.vercel/output/static` and
14
+ * writes the Build Output API config produced from `configPath` into
15
+ * `<pkg.location>/.vercel/output/config.json`. Throws `MissingMainError` if
16
+ * the package has no `main` field.
17
+ *
18
+ * Pure filesystem operation — no Vercel credentials involved.
19
+ *
20
+ * See https://vercel.com/docs/build-output-api/v3
21
+ */
22
+ export declare function makeBuildOutput(opts: {
23
+ pkg: Package;
24
+ configPath: string;
25
+ }): Promise<void>;
26
+ //# sourceMappingURL=buildOutput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOutput.d.ts","sourceRoot":"","sources":["../../../src/modules/vercel/buildOutput.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC,CA4B/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhB"}
@@ -0,0 +1,58 @@
1
+ import { cp, mkdir, readFile, writeFile } from "node:fs/promises";
2
+ import { dirname, join } from "node:path";
3
+ import { getTransformedRoutes, } from "@vercel/routing-utils";
4
+ import { packagePath, readPackageJson, } from "../../utils/packageJson.js";
5
+ import { BUILD_OUTPUT_API_VERSION, ROUTES_SUPPORTED_KEYS } from "./constants.js";
6
+ import { MissingMainError } from "./errors.js";
7
+ /**
8
+ * Reads a `vercel.json`, runs its routing rules through
9
+ * `@vercel/routing-utils.getTransformedRoutes`, and prepends the
10
+ * cache-control rule that Vercel applies to fingerprinted assets. Returns a
11
+ * Build Output API v3 config object.
12
+ *
13
+ * @see https://vercel.com/docs/build-output-api/configuration
14
+ */
15
+ export async function loadBuildOutputConfig(configPath) {
16
+ const raw = await readFile(configPath, "utf8");
17
+ const parsed = JSON.parse(raw);
18
+ const unsupportedKeys = Object.keys(parsed).filter((k) => !ROUTES_SUPPORTED_KEYS.includes(k));
19
+ if (unsupportedKeys.length > 0) {
20
+ throw new Error(`Unsupported keys in vercel.json: ${unsupportedKeys.join(", ")}. Supported: ${ROUTES_SUPPORTED_KEYS.join(", ")}.`);
21
+ }
22
+ const routesResult = getTransformedRoutes(parsed);
23
+ if (routesResult.error) {
24
+ throw new Error(`Error reading vercel.json: ${JSON.stringify(routesResult.error)}`);
25
+ }
26
+ const routes = routesResult.routes ?? [];
27
+ routes.unshift({
28
+ src: "^/[^./]+\\.[0-9a-f]{8}\\.(css|js|png|jpg|webp|avif|svg)$",
29
+ headers: { "cache-control": "s-maxage=31536000, immutable" },
30
+ continue: true,
31
+ });
32
+ return { ...parsed, version: BUILD_OUTPUT_API_VERSION, routes };
33
+ }
34
+ /**
35
+ * Copies `dirname(pkg.main)` into `<pkg.location>/.vercel/output/static` and
36
+ * writes the Build Output API config produced from `configPath` into
37
+ * `<pkg.location>/.vercel/output/config.json`. Throws `MissingMainError` if
38
+ * the package has no `main` field.
39
+ *
40
+ * Pure filesystem operation — no Vercel credentials involved.
41
+ *
42
+ * See https://vercel.com/docs/build-output-api/v3
43
+ */
44
+ export async function makeBuildOutput(opts) {
45
+ const pkgJson = readPackageJson(opts.pkg.location);
46
+ if (!pkgJson.main) {
47
+ throw new MissingMainError(opts.pkg.name);
48
+ }
49
+ const fullPkgPath = packagePath(opts.pkg.location);
50
+ const sourceDir = dirname(join(fullPkgPath, pkgJson.main));
51
+ const outputRoot = join(fullPkgPath, ".vercel/output");
52
+ const staticDir = join(outputRoot, "static");
53
+ await mkdir(staticDir, { recursive: true });
54
+ await cp(sourceDir, staticDir, { recursive: true });
55
+ const buildOutput = await loadBuildOutputConfig(opts.configPath);
56
+ await writeFile(join(outputRoot, "config.json"), JSON.stringify(buildOutput));
57
+ }
58
+ //# sourceMappingURL=buildOutput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOutput.js","sourceRoot":"","sources":["../../../src/modules/vercel/buildOutput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,WAAW,EACX,eAAe,GAEhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;IAE1D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,qBAA2C,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjE,CAAC;IACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,oCAAoC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClH,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAwB,CAAC,CAAC;IACpE,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAY,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC;IAClD,MAAM,CAAC,OAAO,CAAC;QACb,GAAG,EAAE,0DAA0D;QAC/D,OAAO,EAAE,EAAE,eAAe,EAAE,8BAA8B,EAAE;QAC5D,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAGrC;IACC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAsB,CAAC;IACxE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE7C,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AAChF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type Package } from "../../utils/packageJson.js";
2
+ /**
3
+ * Pick the vercel.json for one package, in priority order:
4
+ * 1. The `--vercel-config` override (always wins when passed).
5
+ * 2. `<pkg.location>/vercel.json` (the package ships its own).
6
+ * 3. Rangutopia's shipped `templates/deploy/vercel.json`.
7
+ */
8
+ export declare function resolveVercelConfigPath(pkg: Package, overridePath: string | undefined): string;
9
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/modules/vercel/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGvE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,MAAM,CAKR"}
@@ -0,0 +1,19 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { packagePath } from "../../utils/packageJson.js";
4
+ import { DEFAULT_VERCEL_CONFIG_PATH } from "../../constants.js";
5
+ /**
6
+ * Pick the vercel.json for one package, in priority order:
7
+ * 1. The `--vercel-config` override (always wins when passed).
8
+ * 2. `<pkg.location>/vercel.json` (the package ships its own).
9
+ * 3. Rangutopia's shipped `templates/deploy/vercel.json`.
10
+ */
11
+ export function resolveVercelConfigPath(pkg, overridePath) {
12
+ if (overridePath)
13
+ return overridePath;
14
+ const perPackage = join(packagePath(pkg.location), "vercel.json");
15
+ if (existsSync(perPackage))
16
+ return perPackage;
17
+ return DEFAULT_VERCEL_CONFIG_PATH;
18
+ }
19
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/modules/vercel/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAgB,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAY,EACZ,YAAgC;IAEhC,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;IAClE,IAAI,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9C,OAAO,0BAA0B,CAAC;AACpC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const BUILD_OUTPUT_API_VERSION: 3;
2
+ /**
3
+ * Top-level keys we accept inside a package's `vercel.json` — exactly the
4
+ * input fields that `@vercel/routing-utils.getTransformedRoutes` compiles
5
+ * into Build Output API routes. Anything outside this set is rejected.
6
+ *
7
+ * @see https://vercel.com/docs/projects/project-configuration
8
+ */
9
+ export declare const ROUTES_SUPPORTED_KEYS: readonly ["routes", "rewrites", "redirects", "headers", "cleanUrls", "trailingSlash"];
10
+ export declare const EXECUTIONS_TIME_OUT_MS: number;
11
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/modules/vercel/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,EAAG,CAAU,CAAC;AACnD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,uFAOsB,CAAC;AACzD,eAAO,MAAM,sBAAsB,QAAgB,CAAC"}
@@ -0,0 +1,18 @@
1
+ export const BUILD_OUTPUT_API_VERSION = 3;
2
+ /**
3
+ * Top-level keys we accept inside a package's `vercel.json` — exactly the
4
+ * input fields that `@vercel/routing-utils.getTransformedRoutes` compiles
5
+ * into Build Output API routes. Anything outside this set is rejected.
6
+ *
7
+ * @see https://vercel.com/docs/projects/project-configuration
8
+ */
9
+ export const ROUTES_SUPPORTED_KEYS = [
10
+ "routes",
11
+ "rewrites",
12
+ "redirects",
13
+ "headers",
14
+ "cleanUrls",
15
+ "trailingSlash",
16
+ ];
17
+ export const EXECUTIONS_TIME_OUT_MS = 5 * 60 * 1000; // 5 minutes, same as Vercel CLI's default timeout for `vercel pull` and `vercel deploy`
18
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/modules/vercel/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAU,CAAC;AACnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ;IACR,UAAU;IACV,WAAW;IACX,SAAS;IACT,WAAW;IACX,eAAe;CACuC,CAAC;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,yFAAyF"}
@@ -0,0 +1,5 @@
1
+ export declare function vercelProjectIdEnvName(packageName: string): string;
2
+ export declare function resolveVercelProjectId(packageName: string): string | undefined;
3
+ export declare function getVercelToken(): string;
4
+ export declare function getVercelOrgId(): string;
5
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/modules/vercel/credentials.ts"],"names":[],"mappings":"AAGA,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAIvC"}