rangutopia 0.0.9 → 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 (91) 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/mod.d.ts.map +1 -1
  27. package/dist/commands/client/mod.js +20 -2
  28. package/dist/commands/client/mod.js.map +1 -1
  29. package/dist/commands/library/mod.d.ts.map +1 -1
  30. package/dist/commands/library/mod.js +17 -7
  31. package/dist/commands/library/mod.js.map +1 -1
  32. package/dist/commands/library/publish/helpers.d.ts.map +1 -1
  33. package/dist/commands/library/publish/helpers.js +71 -86
  34. package/dist/commands/library/publish/helpers.js.map +1 -1
  35. package/dist/constants.d.ts +2 -0
  36. package/dist/constants.d.ts.map +1 -1
  37. package/dist/constants.js +8 -3
  38. package/dist/constants.js.map +1 -1
  39. package/dist/main.js +1 -1
  40. package/dist/main.js.map +1 -1
  41. package/dist/modules/vercel/buildOutput.d.ts +26 -0
  42. package/dist/modules/vercel/buildOutput.d.ts.map +1 -0
  43. package/dist/modules/vercel/buildOutput.js +58 -0
  44. package/dist/modules/vercel/buildOutput.js.map +1 -0
  45. package/dist/modules/vercel/config.d.ts +9 -0
  46. package/dist/modules/vercel/config.d.ts.map +1 -0
  47. package/dist/modules/vercel/config.js +19 -0
  48. package/dist/modules/vercel/config.js.map +1 -0
  49. package/dist/modules/vercel/constants.d.ts +11 -0
  50. package/dist/modules/vercel/constants.d.ts.map +1 -0
  51. package/dist/modules/vercel/constants.js +18 -0
  52. package/dist/modules/vercel/constants.js.map +1 -0
  53. package/dist/modules/vercel/credentials.d.ts +5 -0
  54. package/dist/modules/vercel/credentials.d.ts.map +1 -0
  55. package/dist/modules/vercel/credentials.js +22 -0
  56. package/dist/modules/vercel/credentials.js.map +1 -0
  57. package/dist/modules/vercel/errors.d.ts +13 -0
  58. package/dist/modules/vercel/errors.d.ts.map +1 -0
  59. package/dist/modules/vercel/errors.js +19 -0
  60. package/dist/modules/vercel/errors.js.map +1 -0
  61. package/dist/modules/vercel/mod.d.ts +2 -0
  62. package/dist/modules/vercel/mod.d.ts.map +1 -0
  63. package/dist/modules/vercel/mod.js +2 -0
  64. package/dist/modules/vercel/mod.js.map +1 -0
  65. package/dist/modules/vercel/types.d.ts +27 -0
  66. package/dist/modules/vercel/types.d.ts.map +1 -0
  67. package/dist/modules/vercel/types.js +4 -0
  68. package/dist/modules/vercel/types.js.map +1 -0
  69. package/dist/modules/vercel/vercel.d.ts +48 -0
  70. package/dist/modules/vercel/vercel.d.ts.map +1 -0
  71. package/dist/modules/vercel/vercel.js +117 -0
  72. package/dist/modules/vercel/vercel.js.map +1 -0
  73. package/dist/utils/changelog.d.ts +1 -1
  74. package/dist/utils/changelog.d.ts.map +1 -1
  75. package/dist/utils/changelog.js.map +1 -1
  76. package/dist/utils/environment.d.ts +17 -0
  77. package/dist/utils/environment.d.ts.map +1 -0
  78. package/dist/utils/environment.js +14 -0
  79. package/dist/utils/environment.js.map +1 -0
  80. package/dist/utils/packageJson.d.ts +13 -0
  81. package/dist/utils/packageJson.d.ts.map +1 -1
  82. package/dist/utils/packageJson.js +27 -10
  83. package/dist/utils/packageJson.js.map +1 -1
  84. package/dist/utils/parse.d.ts +3 -0
  85. package/dist/utils/parse.d.ts.map +1 -1
  86. package/dist/utils/parse.js +13 -1
  87. package/dist/utils/parse.js.map +1 -1
  88. package/package.json +4 -1
  89. package/templates/deploy/vercel.json +1 -0
  90. package/tsconfig.json +1 -1
  91. package/vitest.config.ts +1 -1
@@ -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":"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"}
@@ -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"}
@@ -0,0 +1,22 @@
1
+ import { packageNameWithoutScope } from "../../utils/packageJson.js";
2
+ import { VercelError } from "./errors.js";
3
+ export function vercelProjectIdEnvName(packageName) {
4
+ const bare = packageNameWithoutScope(packageName);
5
+ return `VERCEL_PROJECT_ID_${bare.toUpperCase().replace(/[^A-Z0-9]/g, "_")}`;
6
+ }
7
+ export function resolveVercelProjectId(packageName) {
8
+ return process.env[vercelProjectIdEnvName(packageName)];
9
+ }
10
+ export function getVercelToken() {
11
+ const value = process.env.VERCEL_TOKEN;
12
+ if (!value)
13
+ throw new VercelError("VERCEL_TOKEN env var is required.");
14
+ return value;
15
+ }
16
+ export function getVercelOrgId() {
17
+ const value = process.env.VERCEL_ORG_ID;
18
+ if (!value)
19
+ throw new VercelError("VERCEL_ORG_ID env var is required.");
20
+ return value;
21
+ }
22
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/modules/vercel/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,IAAI,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAClD,OAAO,qBAAqB,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,WAAmB;IAEnB,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,WAAW,CAAC,mCAAmC,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,WAAW,CAAC,oCAAoC,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare class VercelError extends Error {
2
+ name: string;
3
+ constructor(message: string);
4
+ }
5
+ export declare class MissingMainError extends Error {
6
+ name: string;
7
+ constructor(packageName: string);
8
+ }
9
+ export declare class MissingVercelProjectIdError extends Error {
10
+ name: string;
11
+ constructor(packageName: string, envName: string);
12
+ }
13
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/modules/vercel/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,SAAiB;gBACT,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,IAAI,SAAsB;gBACd,WAAW,EAAE,MAAM;CAKhC;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,IAAI,SAAiC;gBACzB,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAKjD"}
@@ -0,0 +1,19 @@
1
+ export class VercelError extends Error {
2
+ name = "VercelError";
3
+ constructor(message) {
4
+ super(message);
5
+ }
6
+ }
7
+ export class MissingMainError extends Error {
8
+ name = "MissingMainError";
9
+ constructor(packageName) {
10
+ super(`Package ${packageName} has no "main" field in package.json. The deploy command relies on "main" to find the build output directory.`);
11
+ }
12
+ }
13
+ export class MissingVercelProjectIdError extends Error {
14
+ name = "MissingVercelProjectIdError";
15
+ constructor(packageName, envName) {
16
+ super(`No Vercel project ID configured for ${packageName}. Set the env var ${envName}.`);
17
+ }
18
+ }
19
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/modules/vercel/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,IAAI,GAAG,aAAa,CAAC;IACrB,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,IAAI,GAAG,kBAAkB,CAAC;IAC1B,YAAY,WAAmB;QAC7B,KAAK,CACH,WAAW,WAAW,+GAA+G,CACtI,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,IAAI,GAAG,6BAA6B,CAAC;IACrC,YAAY,WAAmB,EAAE,OAAe;QAC9C,KAAK,CACH,uCAAuC,WAAW,qBAAqB,OAAO,GAAG,CAClF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export { Vercel } from "./vercel.js";
2
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/modules/vercel/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Vercel } from "./vercel.js";
2
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/modules/vercel/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type Cron, type Images } from "@vercel/build-utils";
2
+ import { type Route } from "@vercel/routing-utils";
3
+ import { BUILD_OUTPUT_API_VERSION } from "./constants.js";
4
+ /**
5
+ * Subset of the Build Output API v3 configuration that this flow emits.
6
+ * The spec documents additional optional fields (`framework`,
7
+ * `caseSensitiveRoutes`, …) — extend this interface when adding support
8
+ * for them.
9
+ *
10
+ * @see https://vercel.com/docs/build-output-api/configuration
11
+ */
12
+ export interface BuildOutputApiConfig {
13
+ version: typeof BUILD_OUTPUT_API_VERSION;
14
+ routes?: Route[];
15
+ images?: Images;
16
+ wildcard?: Array<{
17
+ domain: string;
18
+ value: string;
19
+ }>;
20
+ overrides?: Record<string, {
21
+ path?: string;
22
+ contentType?: string;
23
+ }>;
24
+ cache?: string[];
25
+ crons?: Cron[];
26
+ }
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/vercel/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,wBAAwB,CAAC;IACzC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,MAAM,CAChB,MAAM,EACN;QACE,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CACF,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAChB"}
@@ -0,0 +1,4 @@
1
+ import {} from "@vercel/build-utils";
2
+ import {} from "@vercel/routing-utils";
3
+ import { BUILD_OUTPUT_API_VERSION } from "./constants.js";
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/modules/vercel/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { Package } from "../../utils/packageJson.js";
2
+ /**
3
+ * One-shot Vercel CLI binding for a single workspace package. The constructor
4
+ * resolves the package's `VERCEL_PROJECT_ID_<NAME>` env var and throws
5
+ * `MissingVercelProjectIdError` if it's not set — so successful construction
6
+ * is itself the "this package is deployable" check used by the deploy
7
+ * command's filter.
8
+ *
9
+ * `VERCEL_TOKEN` and `VERCEL_ORG_ID` are read lazily inside `pull()` and
10
+ * `deploy()` so dry-runs (which never invoke them) succeed even when those
11
+ * env vars are absent.
12
+ *
13
+ * const vercel = new Vercel(pkg);
14
+ * await vercel.pull("preview");
15
+ * await vercel.build();
16
+ * const url = await vercel.deploy("preview");
17
+ *
18
+ * See https://vercel.com/docs/cli
19
+ */
20
+ export declare class Vercel {
21
+ #private;
22
+ readonly pkg: Package;
23
+ constructor(pkg: Package);
24
+ /**
25
+ * `vercel pull --cwd <pkg.location> --environment <env> --yes`. Reads
26
+ * `VERCEL_TOKEN` and `VERCEL_ORG_ID` at call time.
27
+ *
28
+ * @see https://vercel.com/docs/cli/pull
29
+ */
30
+ pull(environment: string): Promise<void>;
31
+ /**
32
+ * Produces the Build Output API artifact at
33
+ * `<pkg.location>/.vercel/output/`. Pure filesystem — no `vercel` CLI
34
+ * invocation, no Vercel credentials required.
35
+ */
36
+ build(vercelConfigOverride?: string): Promise<void>;
37
+ /**
38
+ * `vercel deploy <pkg.location> --prebuilt --target <target>`, returning
39
+ * the deployment URL printed on stdout's last non-empty line. When
40
+ * `target` is `"production"`, uses `--prod --skip-domain` instead of
41
+ * `--target=production`, matching Vercel CLI conventions. Reads
42
+ * `VERCEL_TOKEN` and `VERCEL_ORG_ID` at call time.
43
+ *
44
+ * @see https://vercel.com/docs/cli/deploy
45
+ */
46
+ deploy(target: string): Promise<string>;
47
+ }
48
+ //# sourceMappingURL=vercel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/modules/vercel/vercel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAY1D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,MAAM;;IACjB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;gBAGV,GAAG,EAAE,OAAO;IAYxB;;;;;OAKG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB9C;;;;OAIG;IACG,KAAK,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD;;;;;;;;OAQG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAsC9C"}
@@ -0,0 +1,117 @@
1
+ import spawn from "nano-spawn";
2
+ import { getVercelOrgId, getVercelToken, resolveVercelProjectId, vercelProjectIdEnvName, } from "./credentials.js";
3
+ import { makeBuildOutput } from "./buildOutput.js";
4
+ import { resolveVercelConfigPath } from "./config.js";
5
+ import { MissingVercelProjectIdError, VercelError } from "./errors.js";
6
+ import { EXECUTIONS_TIME_OUT_MS } from "./constants.js";
7
+ /**
8
+ * One-shot Vercel CLI binding for a single workspace package. The constructor
9
+ * resolves the package's `VERCEL_PROJECT_ID_<NAME>` env var and throws
10
+ * `MissingVercelProjectIdError` if it's not set — so successful construction
11
+ * is itself the "this package is deployable" check used by the deploy
12
+ * command's filter.
13
+ *
14
+ * `VERCEL_TOKEN` and `VERCEL_ORG_ID` are read lazily inside `pull()` and
15
+ * `deploy()` so dry-runs (which never invoke them) succeed even when those
16
+ * env vars are absent.
17
+ *
18
+ * const vercel = new Vercel(pkg);
19
+ * await vercel.pull("preview");
20
+ * await vercel.build();
21
+ * const url = await vercel.deploy("preview");
22
+ *
23
+ * See https://vercel.com/docs/cli
24
+ */
25
+ export class Vercel {
26
+ pkg;
27
+ #projectId;
28
+ constructor(pkg) {
29
+ this.pkg = pkg;
30
+ const projectId = resolveVercelProjectId(pkg.name);
31
+ if (!projectId) {
32
+ throw new MissingVercelProjectIdError(pkg.name, vercelProjectIdEnvName(pkg.name));
33
+ }
34
+ this.#projectId = projectId;
35
+ }
36
+ /**
37
+ * `vercel pull --cwd <pkg.location> --environment <env> --yes`. Reads
38
+ * `VERCEL_TOKEN` and `VERCEL_ORG_ID` at call time.
39
+ *
40
+ * @see https://vercel.com/docs/cli/pull
41
+ */
42
+ async pull(environment) {
43
+ const token = getVercelToken();
44
+ const orgId = getVercelOrgId();
45
+ const args = [
46
+ "pull",
47
+ "--cwd",
48
+ this.pkg.location,
49
+ "--environment",
50
+ environment,
51
+ "--yes",
52
+ "--token",
53
+ token,
54
+ ];
55
+ await spawn("vercel", args, {
56
+ env: this.#env(orgId),
57
+ timeout: EXECUTIONS_TIME_OUT_MS,
58
+ }).catch((err) => {
59
+ throw new VercelError(`vercel pull failed for ${this.pkg.name}: ${stderrOrMessage(err)}`);
60
+ });
61
+ }
62
+ /**
63
+ * Produces the Build Output API artifact at
64
+ * `<pkg.location>/.vercel/output/`. Pure filesystem — no `vercel` CLI
65
+ * invocation, no Vercel credentials required.
66
+ */
67
+ async build(vercelConfigOverride) {
68
+ const configPath = resolveVercelConfigPath(this.pkg, vercelConfigOverride);
69
+ await makeBuildOutput({ pkg: this.pkg, configPath });
70
+ }
71
+ /**
72
+ * `vercel deploy <pkg.location> --prebuilt --target <target>`, returning
73
+ * the deployment URL printed on stdout's last non-empty line. When
74
+ * `target` is `"production"`, uses `--prod --skip-domain` instead of
75
+ * `--target=production`, matching Vercel CLI conventions. Reads
76
+ * `VERCEL_TOKEN` and `VERCEL_ORG_ID` at call time.
77
+ *
78
+ * @see https://vercel.com/docs/cli/deploy
79
+ */
80
+ async deploy(target) {
81
+ const token = getVercelToken();
82
+ const orgId = getVercelOrgId();
83
+ const args = ["deploy", this.pkg.location, "--prebuilt"];
84
+ if (target === "production") {
85
+ args.push("--prod", "--skip-domain");
86
+ }
87
+ else {
88
+ args.push("--target", target);
89
+ }
90
+ args.push("--token", token);
91
+ const stdout = await spawn("vercel", args, {
92
+ env: this.#env(orgId),
93
+ timeout: EXECUTIONS_TIME_OUT_MS,
94
+ })
95
+ .then((r) => r.stdout)
96
+ .catch((err) => {
97
+ throw new VercelError(`vercel deploy failed for ${this.pkg.name}: ${stderrOrMessage(err)}`);
98
+ });
99
+ return (stdout
100
+ .split("\n")
101
+ .filter((l) => l.trim().length > 0)
102
+ .pop()
103
+ ?.trim() ?? "");
104
+ }
105
+ #env(orgId) {
106
+ return {
107
+ ...process.env,
108
+ VERCEL_ORG_ID: orgId,
109
+ VERCEL_PROJECT_ID: this.#projectId,
110
+ };
111
+ }
112
+ }
113
+ function stderrOrMessage(err) {
114
+ const e = err;
115
+ return e.stderr ?? e.message ?? String(err);
116
+ }
117
+ //# sourceMappingURL=vercel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel.js","sourceRoot":"","sources":["../../../src/modules/vercel/vercel.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Package } from "../commands/library/publish/types.js";
1
+ import { type Package } from "./packageJson.js";
2
2
  export declare const TAG_PACKAGE_PREFIX: (pkg: {
3
3
  name: string;
4
4
  }) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../src/utils/changelog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,sCAAsC,CAAC;AAYlE,eAAO,MAAM,kBAAkB,GAAI,KAAK;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,WACX,CAAC;AAE5C,eAAO,MAAM,eAAe,QAAY,CAAC;AAMzC,wBAAsB,wBAAwB,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAC,oBAW9F;AAGD,wBAAgB,wBAAwB,CAAC,GAAG,CAAC,EAAE,OAAO,6BAerD;AAiDD,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,OAAO,6BAgB9C"}
1
+ {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../src/utils/changelog.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgD,KAAK,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAQ7F,eAAO,MAAM,kBAAkB,GAAI,KAAK;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,WACX,CAAC;AAE5C,eAAO,MAAM,eAAe,QAAY,CAAC;AAMzC,wBAAsB,wBAAwB,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAC,oBAW9F;AAGD,wBAAgB,wBAAwB,CAAC,GAAG,CAAC,EAAE,OAAO,6BAerD;AAiDD,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,OAAO,6BAgB9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/utils/changelog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/utils/changelog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { z } from "zod/v4";
2
+ /**
3
+ * Vercel environment names. `production` and `preview` are the built-in
4
+ * environments; any other string is a custom environment configured in the
5
+ * Vercel project dashboard (e.g. `next`, `staging`).
6
+ *
7
+ * See https://vercel.com/docs/deployments/environments
8
+ */
9
+ export type Environments = "production" | "preview" | "next" | (string & {});
10
+ export declare const environmentOptionsSchema: z.ZodObject<{
11
+ prod: z.ZodBoolean;
12
+ next: z.ZodBoolean;
13
+ preview: z.ZodBoolean;
14
+ }, z.core.$strip>;
15
+ export type EnvironmentOptions = z.infer<typeof environmentOptionsSchema>;
16
+ export declare function toEnvironment(opts: EnvironmentOptions): Environments;
17
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/utils/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE7E,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,wBAAgB,aAAa,CAAC,IAAI,EAAE,kBAAkB,GAAG,YAAY,CAIpE"}
@@ -0,0 +1,14 @@
1
+ import { z } from "zod/v4";
2
+ export const environmentOptionsSchema = z.object({
3
+ prod: z.boolean(),
4
+ next: z.boolean(),
5
+ preview: z.boolean(),
6
+ });
7
+ export function toEnvironment(opts) {
8
+ if (opts.prod)
9
+ return "production";
10
+ if (opts.next)
11
+ return "next";
12
+ return "preview";
13
+ }
14
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/utils/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAW3B,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAIH,MAAM,UAAU,aAAa,CAAC,IAAwB;IACpD,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,YAAY,CAAC;IACnC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -42,6 +42,13 @@ export declare function packagePath(packageLocation?: string): string;
42
42
  *
43
43
  */
44
44
  export declare function packageJsonPath(packageLocation?: string): string;
45
+ export declare function packageNameWithoutScope(name: string): string;
46
+ export interface Package {
47
+ name: string;
48
+ location: string;
49
+ version: string;
50
+ private: boolean;
51
+ }
45
52
  export declare const rootPackageJson: () => {
46
53
  [x: string]: unknown;
47
54
  name: string;
@@ -53,4 +60,10 @@ export declare const rootPackageJson: () => {
53
60
  scripts?: Record<string, string>;
54
61
  private?: boolean;
55
62
  };
63
+ export declare function workspacePackages(): Promise<{
64
+ name: string;
65
+ location: string;
66
+ version: string;
67
+ private: boolean;
68
+ }[]>;
56
69
  //# sourceMappingURL=packageJson.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageJson.d.ts","sourceRoot":"","sources":["../../src/utils/packageJson.ts"],"names":[],"mappings":"AASA,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS1E;AAGD,wBAAsB,sCAAsC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA6BlJ;AAGD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyBzE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAYvF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;EAqBtD;AAGD,wBAAsB,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,EAAE,kBAW3E;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,eAAe,SAAK,UAE/C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,eAAe,SAAK,UAEnD;AAGD,eAAO,MAAM,eAAe;;;;;;;;;;CAE3B,CAAA"}
1
+ {"version":3,"file":"packageJson.d.ts","sourceRoot":"","sources":["../../src/utils/packageJson.ts"],"names":[],"mappings":"AAQA,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS1E;AAED,wBAAsB,sCAAsC,CAC1D,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA+B7B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BzE;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,IAAI,CAcN;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;EAmBtD;AAED,wBAAsB,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,EAAE,kBAe3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,eAAe,SAAK,UAE/C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,eAAe,SAAK,UAEnD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,eAAO,MAAM,eAAe;;;;;;;;;;CAE3B,CAAA;AAED,wBAAsB,iBAAiB;;;;;KActC"}