@skuba-lib/api 2.1.2 → 2.2.0-add-cdk-NodejsFunction-20260613135656

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 (54) hide show
  1. package/cdk/nodejsFunction/package.json +6 -0
  2. package/cdk/package.json +6 -0
  3. package/lib/buildkite/index.cjs +1 -1
  4. package/lib/buildkite/index.d.cts +2 -2
  5. package/lib/buildkite/index.d.mts +2 -2
  6. package/lib/buildkite/index.mjs +1 -1
  7. package/lib/{buildkite-D8p6SH33.mjs → buildkite-CJ4a_6Cv.mjs} +3 -3
  8. package/lib/{buildkite-EYIbmVQ4.cjs → buildkite-Dyd__LF3.cjs} +4 -3
  9. package/lib/cdk/bridges/rolldown.mjs +49 -0
  10. package/lib/cdk/index.cjs +6 -0
  11. package/lib/cdk/index.d.cts +4 -0
  12. package/lib/cdk/index.d.mts +4 -0
  13. package/lib/cdk/index.mjs +5 -0
  14. package/lib/cdk/nodejsFunction/index.cjs +371 -0
  15. package/lib/cdk/nodejsFunction/index.d.cts +32 -0
  16. package/lib/cdk/nodejsFunction/index.d.mts +32 -0
  17. package/lib/cdk/nodejsFunction/index.mjs +365 -0
  18. package/lib/chunk-DakpK96I.cjs +43 -0
  19. package/lib/{error-DJ-upcVW.cjs → error-DwkbVu3p.cjs} +2 -43
  20. package/lib/{exec-DHKlT34S.cjs → exec-BsoJ4pFc.cjs} +5 -4
  21. package/lib/{exec-DuOGnPmx.mjs → exec-CbhqWxN4.mjs} +1 -1
  22. package/lib/git/index.cjs +1 -1
  23. package/lib/git/index.d.cts +2 -2
  24. package/lib/git/index.d.mts +2 -2
  25. package/lib/git/index.mjs +1 -1
  26. package/lib/{git-DBepQ7NY.mjs → git-BSWQdkgU.mjs} +2 -2
  27. package/lib/{git-CemmnhZX.cjs → git-CEnn1Qrs.cjs} +8 -7
  28. package/lib/github/index.cjs +2 -2
  29. package/lib/github/index.d.cts +2 -2
  30. package/lib/github/index.d.mts +2 -2
  31. package/lib/github/index.mjs +2 -2
  32. package/lib/{github-YNn-2h6W.cjs → github-CzH1PaKH.cjs} +6 -5
  33. package/lib/{github-CEOIl2xv.mjs → github-IYwiDs5D.mjs} +3 -3
  34. package/lib/{index-9k0uNPiA.d.mts → index-D4JUiy2k.d.cts} +1 -1
  35. package/lib/{index-CvCXMWrj.d.cts → index-DbjgHTTm.d.mts} +1 -1
  36. package/lib/index.cjs +4 -4
  37. package/lib/index.d.cts +4 -4
  38. package/lib/index.d.mts +4 -4
  39. package/lib/index.mjs +4 -4
  40. package/lib/net/index.cjs +1 -1
  41. package/lib/net/index.d.cts +1 -1
  42. package/lib/net/index.d.mts +1 -1
  43. package/lib/net/index.mjs +1 -1
  44. package/lib/{net-CBYpNAZ9.cjs → net-BGgnkCnN.cjs} +4 -4
  45. package/lib/{net-xHFhmM3Z.mjs → net-ZfhL_QSV.mjs} +2 -2
  46. package/package.json +33 -2
  47. /package/lib/{chunk-CfYAbeIz.mjs → chunk-D7D4PA-g.mjs} +0 -0
  48. /package/lib/{error-CTBQVZXj.mjs → error-BYLsj5YU.mjs} +0 -0
  49. /package/lib/{index-BGJOKUEn.d.cts → index-C9WMO_Y9.d.cts} +0 -0
  50. /package/lib/{index-BLuWPbMv.d.mts → index-C9WMO_Y9.d.mts} +0 -0
  51. /package/lib/{index-B-uDtu2-.d.mts → index-CNxgBJm_.d.cts} +0 -0
  52. /package/lib/{index-BHREYHx-.d.cts → index-CNxgBJm_.d.mts} +0 -0
  53. /package/lib/{index-BF1A__qo.d.cts → index-Kyp8ZCwF.d.cts} +0 -0
  54. /package/lib/{index-BFKo2N5d.d.mts → index-Kyp8ZCwF.d.mts} +0 -0
@@ -0,0 +1,365 @@
1
+ import { findPackageJSON } from "node:module";
2
+ import * as fs from "node:fs";
3
+ import * as path from "node:path";
4
+ import * as lambda from "aws-cdk-lib/aws-lambda";
5
+ import { spawnSync } from "node:child_process";
6
+ import * as cdk from "aws-cdk-lib";
7
+ import { fileURLToPath, pathToFileURL } from "node:url";
8
+ import { parse, stringify } from "yaml";
9
+ //#region src/cdk/nodejsFunction/errors.ts
10
+ var ValidationError = class extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "ValidationError";
14
+ }
15
+ };
16
+ //#endregion
17
+ //#region src/cdk/nodejsFunction/bridge-path.ts
18
+ const findPackageRoot = (moduleUrl) => {
19
+ let dir = path.dirname(fileURLToPath(moduleUrl));
20
+ for (;;) {
21
+ if (fs.existsSync(path.join(dir, "package.json"))) return dir;
22
+ const parent = path.dirname(dir);
23
+ if (parent === dir) throw new ValidationError("Unable to locate the package root to resolve the bundler bridge script.");
24
+ dir = parent;
25
+ }
26
+ };
27
+ const BRIDGE_OUTPUT_SEGMENTS = [
28
+ "lib",
29
+ "cdk",
30
+ "bridges",
31
+ "rolldown.mjs"
32
+ ];
33
+ let bridgePath;
34
+ const resolveRolldownBridge = () => bridgePath ??= path.join(findPackageRoot(import.meta.url), ...BRIDGE_OUTPUT_SEGMENTS);
35
+ //#endregion
36
+ //#region src/cdk/nodejsFunction/util.ts
37
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
38
+ const BUNDLE_META_FILENAME = ".lambda-bundle-meta";
39
+ const ESM_FORMATS = new Set([
40
+ "es",
41
+ "esm",
42
+ "module"
43
+ ]);
44
+ const isEsmFormat = (format) => ESM_FORMATS.has(format ?? "");
45
+ const parseJsonFile = (filePath) => {
46
+ try {
47
+ return JSON.parse(fs.readFileSync(filePath, "utf-8"));
48
+ } catch (err) {
49
+ throw new ValidationError(`Failed to parse ${filePath} as JSON: ${err.message}`);
50
+ }
51
+ };
52
+ const findUp = (name, directory = process.cwd()) => {
53
+ const absoluteDirectory = path.resolve(directory);
54
+ const file = path.join(absoluteDirectory, name);
55
+ if (fs.existsSync(file)) return file;
56
+ const { root } = path.parse(absoluteDirectory);
57
+ if (absoluteDirectory === root) return;
58
+ return findUp(name, path.dirname(absoluteDirectory));
59
+ };
60
+ const extractDependencies = (pkgPath, modules) => {
61
+ const result = {};
62
+ const base = pathToFileURL(pkgPath);
63
+ for (const mod of modules) {
64
+ let modPkgPath;
65
+ try {
66
+ modPkgPath = findPackageJSON(mod, base);
67
+ } catch {
68
+ modPkgPath = void 0;
69
+ }
70
+ const parsed = modPkgPath ? parseJsonFile(modPkgPath) : void 0;
71
+ const version = isRecord(parsed) && typeof parsed.version === "string" ? parsed.version.trim() : void 0;
72
+ if (!version) throw new ValidationError(`Cannot extract version for module '${mod}'. Check that it's referenced in your package.json or installed.`);
73
+ result[mod] = version;
74
+ }
75
+ return result;
76
+ };
77
+ //#endregion
78
+ //#region src/cdk/nodejsFunction/package-manager.ts
79
+ const PNPM_LOCK = "pnpm-lock.yaml";
80
+ const PNPM_WORKSPACE_FILES = [
81
+ "pnpm-workspace.yaml",
82
+ ".npmrc",
83
+ ".pnpmfile.cjs",
84
+ ".pnpmfile.mjs"
85
+ ];
86
+ const PNPM_INSTALL_COMMAND = [
87
+ "pnpm",
88
+ "install",
89
+ "--config.node-linker=hoisted",
90
+ "--config.package-import-method=clone-or-copy",
91
+ "--no-frozen-lockfile"
92
+ ];
93
+ const isInside = (parent, child) => {
94
+ const rel = path.relative(path.resolve(parent), path.resolve(child));
95
+ return rel === "" || !rel.startsWith("..") && !path.isAbsolute(rel);
96
+ };
97
+ const assertPnpm = (name, source, pkgPath) => {
98
+ if (name !== "pnpm") throw new ValidationError(`Unsupported package manager '${name}' declared in ${source} of ${pkgPath}. NodejsFunction only supports pnpm.`);
99
+ };
100
+ const readPackageManagerMeta = (projectRoot) => {
101
+ const pkgPath = path.join(projectRoot, "package.json");
102
+ const nearestPackageJson = fs.existsSync(pkgPath) ? pkgPath : void 0;
103
+ if (!nearestPackageJson) return {
104
+ nearestPackageJson,
105
+ packageManagerField: void 0
106
+ };
107
+ const parsed = parseJsonFile(pkgPath);
108
+ if (!isRecord(parsed)) return {
109
+ nearestPackageJson,
110
+ packageManagerField: void 0
111
+ };
112
+ if (isRecord(parsed.devEngines)) {
113
+ const devEnginesPm = parsed.devEngines.packageManager;
114
+ if (isRecord(devEnginesPm) && typeof devEnginesPm.name === "string") assertPnpm(devEnginesPm.name, "the `devEngines.packageManager` field", pkgPath);
115
+ }
116
+ if (typeof parsed.packageManager === "string") {
117
+ const m = /^([^@\s]+)@/.exec(parsed.packageManager);
118
+ if (m) {
119
+ assertPnpm(m[1], "the `packageManager` field", pkgPath);
120
+ return {
121
+ nearestPackageJson,
122
+ packageManagerField: parsed.packageManager
123
+ };
124
+ }
125
+ }
126
+ return {
127
+ nearestPackageJson,
128
+ packageManagerField: void 0
129
+ };
130
+ };
131
+ const injectIgnoreScripts = (outputDir) => {
132
+ const target = path.join(outputDir, ".npmrc");
133
+ const existing = fs.existsSync(target) ? fs.readFileSync(target, "utf8") : "";
134
+ if (/^ignore-scripts\s*=/m.test(existing)) return;
135
+ const sep = existing.length > 0 && !existing.endsWith("\n") ? "\n" : "";
136
+ fs.writeFileSync(target, `${existing}${sep}ignore-scripts=true\n`);
137
+ };
138
+ const copyPatchFile = (relativePath, projectRoot, outputDir, copiedFiles) => {
139
+ const src = path.join(projectRoot, relativePath);
140
+ const dest = path.join(outputDir, relativePath);
141
+ if (!isInside(projectRoot, src) || !isInside(outputDir, dest)) throw new ValidationError(`Refusing to copy pnpm patch '${relativePath}': it resolves outside the project root or output directory.`);
142
+ if (!fs.existsSync(src)) return;
143
+ const realSrc = fs.realpathSync(src);
144
+ if (!isInside(fs.realpathSync(projectRoot), realSrc)) throw new ValidationError(`Refusing to copy pnpm patch '${relativePath}': it resolves (via symlink) outside the project root.`);
145
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
146
+ fs.copyFileSync(realSrc, dest);
147
+ copiedFiles.push(dest);
148
+ };
149
+ const filterPnpmWorkspaceYaml = (content, nodeModules, projectRoot, outputDir) => {
150
+ let doc;
151
+ try {
152
+ doc = parse(content);
153
+ } catch (err) {
154
+ throw new ValidationError(`Failed to parse pnpm-workspace.yaml: ${err.message}`);
155
+ }
156
+ if (!isRecord(doc) || !("patchedDependencies" in doc)) return {
157
+ content,
158
+ copiedFiles: []
159
+ };
160
+ const patched = doc.patchedDependencies;
161
+ const copiedFiles = [];
162
+ if (isRecord(patched)) for (const [key, value] of Object.entries(patched)) {
163
+ const pkgName = key.replace(/(?<=.)@[^@]+$/, "");
164
+ if (!nodeModules.includes(pkgName)) delete patched[key];
165
+ else if (typeof value === "string" && value) copyPatchFile(value, projectRoot, outputDir, copiedFiles);
166
+ }
167
+ if (!isRecord(patched) || Object.keys(patched).length === 0) delete doc.patchedDependencies;
168
+ return {
169
+ content: stringify(doc),
170
+ copiedFiles
171
+ };
172
+ };
173
+ const copyWorkspaceFiles = (projectRoot, outputDir, nodeModules = [], ignoreScripts = false) => {
174
+ const stagedFiles = [];
175
+ for (const file of PNPM_WORKSPACE_FILES) {
176
+ const src = path.join(projectRoot, file);
177
+ if (!fs.existsSync(src)) continue;
178
+ const dest = path.join(outputDir, file);
179
+ if (file === "pnpm-workspace.yaml") {
180
+ const filtered = filterPnpmWorkspaceYaml(fs.readFileSync(src, "utf8"), nodeModules, projectRoot, outputDir);
181
+ fs.writeFileSync(dest, filtered.content);
182
+ stagedFiles.push(...filtered.copiedFiles);
183
+ } else fs.copyFileSync(src, dest);
184
+ }
185
+ if (ignoreScripts) injectIgnoreScripts(outputDir);
186
+ return stagedFiles;
187
+ };
188
+ //#endregion
189
+ //#region src/cdk/nodejsFunction/bundling.ts
190
+ const SPAWN_MAX_BUFFER = 256 * 1024 * 1024;
191
+ const describeExit = (result) => result.signal != null ? `killed by signal ${result.signal}` : `exited with status ${result.status}`;
192
+ const stderrTail = (stderr) => {
193
+ if (!stderr) return "";
194
+ const text = typeof stderr === "string" ? stderr : stderr.toString("utf-8");
195
+ if (!text) return "";
196
+ const tail = text.trimEnd().split("\n").slice(-20).join("\n");
197
+ return tail ? `\n\n${tail}` : "";
198
+ };
199
+ const checkSpawnResult = (result, prefix) => {
200
+ if (result.error) {
201
+ if (result.error.code === "ETIMEDOUT") throw new ValidationError(`${prefix} timed out.${stderrTail(result.stderr)}`);
202
+ throw result.error;
203
+ }
204
+ if (result.status !== 0) throw new ValidationError(`${prefix} ${describeExit(result)}.${stderrTail(result.stderr)}`);
205
+ if (result.stderr) process.stderr.write(result.stderr);
206
+ };
207
+ const writeOutputPackageJson = (outputDir, fields) => {
208
+ const pkg = {};
209
+ if (fields.dependencies) pkg.dependencies = fields.dependencies;
210
+ if (fields.isEsm) pkg.type = "module";
211
+ if (fields.packageManager) pkg.packageManager = fields.packageManager;
212
+ if (Object.keys(pkg).length === 0) return;
213
+ fs.writeFileSync(path.join(outputDir, "package.json"), JSON.stringify(pkg, null, 2));
214
+ };
215
+ const removeEmptyParentDirs = (startDir, outputDir) => {
216
+ let dir = startDir;
217
+ while (dir.startsWith(outputDir + path.sep)) {
218
+ try {
219
+ fs.rmdirSync(dir);
220
+ } catch {
221
+ return;
222
+ }
223
+ dir = path.dirname(dir);
224
+ }
225
+ };
226
+ var Bundling = class Bundling {
227
+ props;
228
+ static bundle(props) {
229
+ return lambda.Code.fromAsset(props.projectRoot, {
230
+ assetHash: props.assetHash,
231
+ assetHashType: props.assetHash ? cdk.AssetHashType.CUSTOM : cdk.AssetHashType.OUTPUT,
232
+ bundling: new Bundling(props)
233
+ });
234
+ }
235
+ image;
236
+ local;
237
+ constructor(props) {
238
+ this.props = props;
239
+ this.image = cdk.DockerImage.fromRegistry("dummy");
240
+ this.local = this.buildLocalBundling();
241
+ }
242
+ buildLocalBundling() {
243
+ return { tryBundle: (outputDir) => {
244
+ this.runHooks(this.props.commandHooks?.beforeBundling(this.props.projectRoot, outputDir) ?? [], this.props.projectRoot);
245
+ this.runBundler(outputDir);
246
+ const isEsm = this.readBundleMeta(outputDir);
247
+ const { nodeModules } = this.props;
248
+ if (nodeModules?.length) this.installNodeModules(outputDir, isEsm, nodeModules);
249
+ else writeOutputPackageJson(outputDir, { isEsm });
250
+ this.runHooks(this.props.commandHooks?.afterBundling(this.props.projectRoot, outputDir) ?? [], this.props.projectRoot);
251
+ return true;
252
+ } };
253
+ }
254
+ runHooks(commands, cwd) {
255
+ for (const cmd of commands) this.spawn(cmd, [], cwd, `Command hook '${cmd}'`, { shell: true });
256
+ }
257
+ runBundler(outputDir) {
258
+ this.spawn("node", [
259
+ resolveRolldownBridge(),
260
+ this.props.bundlerConfig,
261
+ this.props.entry,
262
+ outputDir
263
+ ], this.props.projectRoot, "Bundler 'rolldown'");
264
+ }
265
+ readBundleMeta(outputDir) {
266
+ const metaPath = path.join(outputDir, BUNDLE_META_FILENAME);
267
+ if (!fs.existsSync(metaPath)) return false;
268
+ try {
269
+ const parsed = parseJsonFile(metaPath);
270
+ return isEsmFormat(isRecord(parsed) && typeof parsed.format === "string" ? parsed.format : void 0);
271
+ } finally {
272
+ fs.unlinkSync(metaPath);
273
+ }
274
+ }
275
+ installNodeModules(outputDir, isEsm, nodeModules) {
276
+ const { nearestPackageJson, packageManagerField } = readPackageManagerMeta(this.props.projectRoot);
277
+ if (!nearestPackageJson) throw new ValidationError("Cannot find a package.json. Using nodeModules requires a package.json.");
278
+ this.runHooks(this.props.commandHooks?.beforeInstall(this.props.projectRoot, outputDir) ?? [], this.props.projectRoot);
279
+ writeOutputPackageJson(outputDir, {
280
+ dependencies: extractDependencies(nearestPackageJson, nodeModules),
281
+ isEsm,
282
+ packageManager: packageManagerField
283
+ });
284
+ let stagedFiles = [];
285
+ try {
286
+ stagedFiles = copyWorkspaceFiles(this.props.projectRoot, outputDir, nodeModules, this.props.ignoreScripts);
287
+ if (fs.existsSync(this.props.depsLockFilePath)) fs.copyFileSync(this.props.depsLockFilePath, path.join(outputDir, PNPM_LOCK));
288
+ const [installBin, ...installArgs] = PNPM_INSTALL_COMMAND;
289
+ this.spawn(installBin, installArgs, outputDir, "Package manager 'pnpm' install");
290
+ } finally {
291
+ fs.rmSync(path.join(outputDir, PNPM_LOCK), { force: true });
292
+ for (const file of PNPM_WORKSPACE_FILES) fs.rmSync(path.join(outputDir, file), { force: true });
293
+ for (const file of stagedFiles) {
294
+ fs.rmSync(file, { force: true });
295
+ removeEmptyParentDirs(path.dirname(file), outputDir);
296
+ }
297
+ }
298
+ }
299
+ spawn(bin, args, cwd, prefix, opts) {
300
+ checkSpawnResult(spawnSync(bin, args, {
301
+ env: process.env,
302
+ stdio: [
303
+ "ignore",
304
+ "inherit",
305
+ "pipe"
306
+ ],
307
+ cwd,
308
+ timeout: this.props.timeout,
309
+ encoding: "utf-8",
310
+ maxBuffer: SPAWN_MAX_BUFFER,
311
+ shell: opts?.shell
312
+ }), prefix);
313
+ }
314
+ };
315
+ //#endregion
316
+ //#region src/cdk/nodejsFunction/function.ts
317
+ var NodejsFunction = class extends lambda.Function {
318
+ constructor(scope, id, props) {
319
+ if (props.runtime && props.runtime.family !== lambda.RuntimeFamily.NODEJS) throw new ValidationError("Only NODEJS runtimes are supported.");
320
+ const runtime = props.runtime ?? lambda.Runtime.NODEJS_LATEST;
321
+ const entry = validateEntry(props.entry);
322
+ const depsLockFilePath = findLockFile(props.depsLockFilePath);
323
+ const projectRoot = path.resolve(props.projectRoot ?? path.dirname(depsLockFilePath));
324
+ const bundlerConfig = findBundlerConfig(props.bundling.bundlerConfig, projectRoot);
325
+ const handlerFn = resolveHandlerFn(props.handler);
326
+ const { entry: _entry, bundling, depsLockFilePath: _depsLockFilePath, projectRoot: _projectRoot, handler: _handler, runtime: _runtime, ...functionOptions } = props;
327
+ super(scope, id, {
328
+ ...functionOptions,
329
+ runtime,
330
+ code: Bundling.bundle({
331
+ ...bundling,
332
+ bundlerConfig,
333
+ entry,
334
+ runtime,
335
+ depsLockFilePath,
336
+ projectRoot
337
+ }),
338
+ handler: `index.${handlerFn}`
339
+ });
340
+ }
341
+ };
342
+ const resolveHandlerFn = (handler) => {
343
+ const handlerName = (handler ?? "handler").trim();
344
+ const handlerFn = handlerName.slice(handlerName.lastIndexOf(".") + 1);
345
+ if (!/^[A-Za-z_$][\w$]*$/.test(handlerFn)) throw new ValidationError(`Invalid handler '${handler}'. Expected an exported function name, optionally prefixed with a file part (e.g. 'handler' or 'index.handler').`);
346
+ return handlerFn;
347
+ };
348
+ const validateEntry = (entry) => {
349
+ const base = path.basename(entry);
350
+ if (/\.d\.(c|m)?ts$/i.test(base) || !/\.(js|ts|mjs|mts|cts|cjs)$/i.test(base)) throw new ValidationError("Only JavaScript or TypeScript entry files are supported.");
351
+ return path.resolve(entry);
352
+ };
353
+ const findBundlerConfig = (bundlerConfig, projectRoot) => path.isAbsolute(bundlerConfig) ? bundlerConfig : path.resolve(projectRoot, bundlerConfig);
354
+ const findLockFile = (depsLockFilePath) => {
355
+ if (depsLockFilePath) {
356
+ const resolved = path.resolve(depsLockFilePath);
357
+ if (!fs.existsSync(resolved)) throw new ValidationError(`Cannot find a pnpm-lock.yaml file at '${depsLockFilePath}'.`);
358
+ return resolved;
359
+ }
360
+ const lockFile = findUp(PNPM_LOCK);
361
+ if (!lockFile) throw new ValidationError("Cannot find a pnpm-lock.yaml file. Please specify it with `depsLockFilePath`.");
362
+ return lockFile;
363
+ };
364
+ //#endregion
365
+ export { NodejsFunction };
@@ -0,0 +1,43 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __exportAll = (all, no_symbols) => {
9
+ let target = {};
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
15
+ return target;
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
19
+ key = keys[i];
20
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
21
+ get: ((k) => from[k]).bind(null, key),
22
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
23
+ });
24
+ }
25
+ return to;
26
+ };
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ //#endregion
32
+ Object.defineProperty(exports, "__exportAll", {
33
+ enumerable: true,
34
+ get: function() {
35
+ return __exportAll;
36
+ }
37
+ });
38
+ Object.defineProperty(exports, "__toESM", {
39
+ enumerable: true,
40
+ get: function() {
41
+ return __toESM;
42
+ }
43
+ });
@@ -1,36 +1,7 @@
1
- //#region \0rolldown/runtime.js
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __exportAll = (all, no_symbols) => {
9
- let target = {};
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: true
13
- });
14
- if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
15
- return target;
16
- };
17
- var __copyProps = (to, from, except, desc) => {
18
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
19
- key = keys[i];
20
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
21
- get: ((k) => from[k]).bind(null, key),
22
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
23
- });
24
- }
25
- return to;
26
- };
27
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: true
30
- }) : target, mod));
1
+ const require_chunk = require("./chunk-DakpK96I.cjs");
31
2
  require("util");
32
3
  let zod_v4 = require("zod/v4");
33
- zod_v4 = __toESM(zod_v4, 1);
4
+ zod_v4 = require_chunk.__toESM(zod_v4, 1);
34
5
  let node_util = require("node:util");
35
6
  //#region ../../src/utils/logging.ts
36
7
  const createLogger = ({ debug, prefixes = [], suffixes = [] }) => {
@@ -71,18 +42,6 @@ zod_v4.array(zod_v4.object({
71
42
  }));
72
43
  const isErrorWithCode = (err, code) => hasProp(err, "code") && err.code === code;
73
44
  //#endregion
74
- Object.defineProperty(exports, "__exportAll", {
75
- enumerable: true,
76
- get: function() {
77
- return __exportAll;
78
- }
79
- });
80
- Object.defineProperty(exports, "__toESM", {
81
- enumerable: true,
82
- get: function() {
83
- return __toESM;
84
- }
85
- });
86
45
  Object.defineProperty(exports, "isErrorWithCode", {
87
46
  enumerable: true,
88
47
  get: function() {
@@ -1,13 +1,14 @@
1
- const require_error = require("./error-DJ-upcVW.cjs");
1
+ const require_chunk = require("./chunk-DakpK96I.cjs");
2
+ const require_error = require("./error-DwkbVu3p.cjs");
2
3
  let stream = require("stream");
3
- stream = require_error.__toESM(stream, 1);
4
+ stream = require_chunk.__toESM(stream, 1);
4
5
  let util = require("util");
5
- util = require_error.__toESM(util, 1);
6
+ util = require_chunk.__toESM(util, 1);
6
7
  require("concurrently");
7
8
  let execa = require("execa");
8
9
  let npm_run_path = require("npm-run-path");
9
10
  let npm_which = require("npm-which");
10
- npm_which = require_error.__toESM(npm_which, 1);
11
+ npm_which = require_chunk.__toESM(npm_which, 1);
11
12
  //#region ../../src/utils/exec.ts
12
13
  var YarnSpamFilter = class extends stream.default.Transform {
13
14
  silenced = false;
@@ -1,4 +1,4 @@
1
- import { t as isErrorWithCode } from "./error-CTBQVZXj.mjs";
1
+ import { t as isErrorWithCode } from "./error-BYLsj5YU.mjs";
2
2
  import stream from "stream";
3
3
  import util from "util";
4
4
  import "concurrently";
package/lib/git/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_git = require("../git-CemmnhZX.cjs");
2
+ const require_git = require("../git-CEnn1Qrs.cjs");
3
3
  exports.commit = require_git.commit;
4
4
  exports.commitAllChanges = require_git.commitAllChanges;
5
5
  exports.currentBranch = require_git.currentBranch;
@@ -1,2 +1,2 @@
1
- import { a as push, c as getHeadCommitMessage, d as commitAllChanges, f as ChangedFile, i as fastForwardBranch, l as findRoot, m as commit, n as isFileGitIgnored, o as getOwnerAndRepo, p as getChangedFiles, r as reset, s as getHeadCommitId, u as currentBranch } from "../index-BGJOKUEn.cjs";
2
- export { ChangedFile, commit, commitAllChanges, currentBranch, fastForwardBranch, findRoot, getChangedFiles, getHeadCommitId, getHeadCommitMessage, getOwnerAndRepo, isFileGitIgnored, push, reset };
1
+ import { a as push, c as getHeadCommitMessage, d as commitAllChanges, f as ChangedFile, i as fastForwardBranch, l as findRoot, m as commit, n as isFileGitIgnored, o as getOwnerAndRepo, p as getChangedFiles, r as reset, s as getHeadCommitId, u as currentBranch } from "../index-C9WMO_Y9.cjs";
2
+ export { type ChangedFile, commit, commitAllChanges, currentBranch, fastForwardBranch, findRoot, getChangedFiles, getHeadCommitId, getHeadCommitMessage, getOwnerAndRepo, isFileGitIgnored, push, reset };
@@ -1,2 +1,2 @@
1
- import { a as push, c as getHeadCommitMessage, d as commitAllChanges, f as ChangedFile, i as fastForwardBranch, l as findRoot, m as commit, n as isFileGitIgnored, o as getOwnerAndRepo, p as getChangedFiles, r as reset, s as getHeadCommitId, u as currentBranch } from "../index-BLuWPbMv.mjs";
2
- export { ChangedFile, commit, commitAllChanges, currentBranch, fastForwardBranch, findRoot, getChangedFiles, getHeadCommitId, getHeadCommitMessage, getOwnerAndRepo, isFileGitIgnored, push, reset };
1
+ import { a as push, c as getHeadCommitMessage, d as commitAllChanges, f as ChangedFile, i as fastForwardBranch, l as findRoot, m as commit, n as isFileGitIgnored, o as getOwnerAndRepo, p as getChangedFiles, r as reset, s as getHeadCommitId, u as currentBranch } from "../index-C9WMO_Y9.mjs";
2
+ export { type ChangedFile, commit, commitAllChanges, currentBranch, fastForwardBranch, findRoot, getChangedFiles, getHeadCommitId, getHeadCommitMessage, getOwnerAndRepo, isFileGitIgnored, push, reset };
package/lib/git/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { a as push, d as getHeadCommitMessage, f as currentBranch, g as commit, h as findRoot, i as fastForwardBranch, l as getOwnerAndRepo, m as getChangedFiles, n as isFileGitIgnored, p as commitAllChanges, r as reset, u as getHeadCommitId } from "../git-DBepQ7NY.mjs";
1
+ import { a as push, d as getHeadCommitMessage, f as currentBranch, g as commit, h as findRoot, i as fastForwardBranch, l as getOwnerAndRepo, m as getChangedFiles, n as isFileGitIgnored, p as commitAllChanges, r as reset, u as getHeadCommitId } from "../git-BSWQdkgU.mjs";
2
2
  export { commit, commitAllChanges, currentBranch, fastForwardBranch, findRoot, getChangedFiles, getHeadCommitId, getHeadCommitMessage, getOwnerAndRepo, isFileGitIgnored, push, reset };
@@ -1,5 +1,5 @@
1
- import { t as __exportAll } from "./chunk-CfYAbeIz.mjs";
2
- import { t as isErrorWithCode } from "./error-CTBQVZXj.mjs";
1
+ import { t as __exportAll } from "./chunk-D7D4PA-g.mjs";
2
+ import { t as isErrorWithCode } from "./error-BYLsj5YU.mjs";
3
3
  import fs from "fs-extra";
4
4
  import git, { findRoot } from "isomorphic-git";
5
5
  import path from "path";
@@ -1,14 +1,15 @@
1
- const require_error = require("./error-DJ-upcVW.cjs");
1
+ const require_chunk = require("./chunk-DakpK96I.cjs");
2
+ const require_error = require("./error-DwkbVu3p.cjs");
2
3
  let fs_extra = require("fs-extra");
3
- fs_extra = require_error.__toESM(fs_extra, 1);
4
+ fs_extra = require_chunk.__toESM(fs_extra, 1);
4
5
  let isomorphic_git = require("isomorphic-git");
5
- isomorphic_git = require_error.__toESM(isomorphic_git, 1);
6
+ isomorphic_git = require_chunk.__toESM(isomorphic_git, 1);
6
7
  let path = require("path");
7
- path = require_error.__toESM(path, 1);
8
+ path = require_chunk.__toESM(path, 1);
8
9
  let ignore = require("ignore");
9
- ignore = require_error.__toESM(ignore, 1);
10
+ ignore = require_chunk.__toESM(ignore, 1);
10
11
  let isomorphic_git_http_node = require("isomorphic-git/http/node");
11
- isomorphic_git_http_node = require_error.__toESM(isomorphic_git_http_node, 1);
12
+ isomorphic_git_http_node = require_chunk.__toESM(isomorphic_git_http_node, 1);
12
13
  //#region src/git/commit.ts
13
14
  /**
14
15
  * Writes a commit to the local Git repository.
@@ -346,7 +347,7 @@ const isFileGitIgnored = ({ absolutePath, gitRoot }) => isomorphic_git.default.i
346
347
  });
347
348
  //#endregion
348
349
  //#region src/git/index.ts
349
- var git_exports = /* @__PURE__ */ require_error.__exportAll({
350
+ var git_exports = /* @__PURE__ */ require_chunk.__exportAll({
350
351
  commit: () => commit,
351
352
  commitAllChanges: () => commitAllChanges,
352
353
  currentBranch: () => currentBranch,
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_git = require("../git-CemmnhZX.cjs");
3
- const require_github = require("../github-YNn-2h6W.cjs");
2
+ const require_git = require("../git-CEnn1Qrs.cjs");
3
+ const require_github = require("../github-CzH1PaKH.cjs");
4
4
  exports.apiTokenFromEnvironment = require_git.apiTokenFromEnvironment;
5
5
  exports.buildNameFromEnvironment = require_git.buildNameFromEnvironment;
6
6
  exports.createCheckRun = require_github.createCheckRun;
@@ -1,2 +1,2 @@
1
- import { a as putIssueComment, c as buildNameFromEnvironment, d as createCheckRun, i as uploadFileChanges, l as enabledFromEnvironment, n as readFileChanges, o as getPullRequestNumber, r as uploadAllFileChanges, s as apiTokenFromEnvironment, u as Annotation } from "../index-CvCXMWrj.cjs";
2
- export { Annotation, apiTokenFromEnvironment, buildNameFromEnvironment, createCheckRun, enabledFromEnvironment, getPullRequestNumber, putIssueComment, readFileChanges, uploadAllFileChanges, uploadFileChanges };
1
+ import { a as putIssueComment, c as buildNameFromEnvironment, d as createCheckRun, i as uploadFileChanges, l as enabledFromEnvironment, n as readFileChanges, o as getPullRequestNumber, r as uploadAllFileChanges, s as apiTokenFromEnvironment, u as Annotation } from "../index-D4JUiy2k.cjs";
2
+ export { type Annotation, apiTokenFromEnvironment, buildNameFromEnvironment, createCheckRun, enabledFromEnvironment, getPullRequestNumber, putIssueComment, readFileChanges, uploadAllFileChanges, uploadFileChanges };
@@ -1,2 +1,2 @@
1
- import { a as putIssueComment, c as buildNameFromEnvironment, d as createCheckRun, i as uploadFileChanges, l as enabledFromEnvironment, n as readFileChanges, o as getPullRequestNumber, r as uploadAllFileChanges, s as apiTokenFromEnvironment, u as Annotation } from "../index-9k0uNPiA.mjs";
2
- export { Annotation, apiTokenFromEnvironment, buildNameFromEnvironment, createCheckRun, enabledFromEnvironment, getPullRequestNumber, putIssueComment, readFileChanges, uploadAllFileChanges, uploadFileChanges };
1
+ import { a as putIssueComment, c as buildNameFromEnvironment, d as createCheckRun, i as uploadFileChanges, l as enabledFromEnvironment, n as readFileChanges, o as getPullRequestNumber, r as uploadAllFileChanges, s as apiTokenFromEnvironment, u as Annotation } from "../index-DbjgHTTm.mjs";
2
+ export { type Annotation, apiTokenFromEnvironment, buildNameFromEnvironment, createCheckRun, enabledFromEnvironment, getPullRequestNumber, putIssueComment, readFileChanges, uploadAllFileChanges, uploadFileChanges };
@@ -1,3 +1,3 @@
1
- import { c as enabledFromEnvironment, o as apiTokenFromEnvironment, s as buildNameFromEnvironment } from "../git-DBepQ7NY.mjs";
2
- import { a as putIssueComment, i as uploadFileChanges, n as readFileChanges, o as getPullRequestNumber, r as uploadAllFileChanges, s as createCheckRun } from "../github-CEOIl2xv.mjs";
1
+ import { c as enabledFromEnvironment, o as apiTokenFromEnvironment, s as buildNameFromEnvironment } from "../git-BSWQdkgU.mjs";
2
+ import { a as putIssueComment, i as uploadFileChanges, n as readFileChanges, o as getPullRequestNumber, r as uploadAllFileChanges, s as createCheckRun } from "../github-IYwiDs5D.mjs";
3
3
  export { apiTokenFromEnvironment, buildNameFromEnvironment, createCheckRun, enabledFromEnvironment, getPullRequestNumber, putIssueComment, readFileChanges, uploadAllFileChanges, uploadFileChanges };
@@ -1,9 +1,10 @@
1
- const require_error = require("./error-DJ-upcVW.cjs");
2
- const require_git = require("./git-CemmnhZX.cjs");
1
+ const require_chunk = require("./chunk-DakpK96I.cjs");
2
+ const require_error = require("./error-DwkbVu3p.cjs");
3
+ const require_git = require("./git-CEnn1Qrs.cjs");
3
4
  let fs_extra = require("fs-extra");
4
- fs_extra = require_error.__toESM(fs_extra, 1);
5
+ fs_extra = require_chunk.__toESM(fs_extra, 1);
5
6
  let path = require("path");
6
- path = require_error.__toESM(path, 1);
7
+ path = require_chunk.__toESM(path, 1);
7
8
  //#region src/github/octokit.ts
8
9
  const createRestClient = async (options) => new (await (import("@octokit/rest"))).Octokit(options);
9
10
  const graphql = async (query, parameters) => (await import("@octokit/graphql")).graphql(query, parameters);
@@ -239,7 +240,7 @@ const uploadFileChanges = async ({ dir, branch, messageHeadline, messageBody, fi
239
240
  };
240
241
  //#endregion
241
242
  //#region src/github/index.ts
242
- var github_exports = /* @__PURE__ */ require_error.__exportAll({
243
+ var github_exports = /* @__PURE__ */ require_chunk.__exportAll({
243
244
  apiTokenFromEnvironment: () => require_git.apiTokenFromEnvironment,
244
245
  buildNameFromEnvironment: () => require_git.buildNameFromEnvironment,
245
246
  createCheckRun: () => createCheckRun,
@@ -1,6 +1,6 @@
1
- import { t as __exportAll } from "./chunk-CfYAbeIz.mjs";
2
- import { r as pluralise } from "./error-CTBQVZXj.mjs";
3
- import { c as enabledFromEnvironment, h as findRoot, i as fastForwardBranch, l as getOwnerAndRepo, m as getChangedFiles, o as apiTokenFromEnvironment, s as buildNameFromEnvironment, u as getHeadCommitId } from "./git-DBepQ7NY.mjs";
1
+ import { t as __exportAll } from "./chunk-D7D4PA-g.mjs";
2
+ import { r as pluralise } from "./error-BYLsj5YU.mjs";
3
+ import { c as enabledFromEnvironment, h as findRoot, i as fastForwardBranch, l as getOwnerAndRepo, m as getChangedFiles, o as apiTokenFromEnvironment, s as buildNameFromEnvironment, u as getHeadCommitId } from "./git-BSWQdkgU.mjs";
4
4
  import fs from "fs-extra";
5
5
  import path from "path";
6
6
  //#region src/github/octokit.ts
@@ -1,4 +1,4 @@
1
- import { f as ChangedFile } from "./index-BLuWPbMv.mjs";
1
+ import { f as ChangedFile } from "./index-C9WMO_Y9.cjs";
2
2
  import { Endpoints } from "@octokit/types";
3
3
  import { Octokit } from "@octokit/rest";
4
4
 
@@ -1,4 +1,4 @@
1
- import { f as ChangedFile } from "./index-BGJOKUEn.cjs";
1
+ import { f as ChangedFile } from "./index-C9WMO_Y9.mjs";
2
2
  import { Endpoints } from "@octokit/types";
3
3
  import { Octokit } from "@octokit/rest";
4
4
 
package/lib/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_buildkite = require("./buildkite-EYIbmVQ4.cjs");
3
- const require_git = require("./git-CemmnhZX.cjs");
4
- const require_github = require("./github-YNn-2h6W.cjs");
5
- const require_net = require("./net-CBYpNAZ9.cjs");
2
+ const require_buildkite = require("./buildkite-Dyd__LF3.cjs");
3
+ const require_git = require("./git-CEnn1Qrs.cjs");
4
+ const require_github = require("./github-CzH1PaKH.cjs");
5
+ const require_net = require("./net-BGgnkCnN.cjs");
6
6
  Object.defineProperty(exports, "Buildkite", {
7
7
  enumerable: true,
8
8
  get: function() {