checkly 9.1.0 → 9.2.0-prerelease-2ea1376

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.
@@ -2,6 +2,8 @@ import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import semver from 'semver';
4
4
  import { Engine } from '../constructs/engine.js';
5
+ import { JsonSourceFile } from './check-parser/package-files/json-source-file.js';
6
+ import { lineage } from './check-parser/package-files/walk.js';
5
7
  import { resolveEngineVersion } from './engine-resolver.js';
6
8
  async function readFileIfExists(filePath) {
7
9
  try {
@@ -11,6 +13,12 @@ async function readFileIfExists(filePath) {
11
13
  return undefined;
12
14
  }
13
15
  }
16
+ // Untyped read: the `volta` field is not part of the package.json schema the
17
+ // bundler uses. Missing or malformed files resolve to undefined and are skipped.
18
+ async function readJsonIfExists(filePath) {
19
+ const file = await JsonSourceFile.loadFromFilePath(filePath);
20
+ return file?.data;
21
+ }
14
22
  function resolveNodeMajor(raw) {
15
23
  const stripped = raw.trim().replace(/^v/, '');
16
24
  const major = stripped.split('.')[0];
@@ -50,14 +58,66 @@ function parseToolVersions(content) {
50
58
  }
51
59
  return { nodeVersion, bunVersion };
52
60
  }
61
+ // semver.minVersion throws on values that are not a range at all (for
62
+ // example "lts"); such values are skipped so that detection falls through to
63
+ // the next source.
64
+ function minVersionOfRange(range) {
65
+ try {
66
+ return semver.minVersion(range) ?? undefined;
67
+ }
68
+ catch {
69
+ return undefined;
70
+ }
71
+ }
53
72
  function resolveEngineFromSemverRange(range) {
54
- const min = semver.minVersion(range);
73
+ const min = minVersionOfRange(range);
55
74
  return min ? String(min.major) : undefined;
56
75
  }
57
76
  function resolveBunFromSemverRange(range) {
58
- const min = semver.minVersion(range);
77
+ const min = minVersionOfRange(range);
59
78
  return min ? `${min.major}.${min.minor}` : undefined;
60
79
  }
80
+ // Volta manifests can delegate to another JSON file through `volta.extends`,
81
+ // which is resolved relative to the manifest that declares it. The chain is
82
+ // depth-bounded, which also terminates cyclic `extends` references.
83
+ const MAX_VOLTA_EXTENDS_DEPTH = 10;
84
+ /**
85
+ * Returns the raw `volta.node` value of an already-parsed Volta manifest,
86
+ * following its `volta.extends` chain when the manifest itself carries no
87
+ * `node` pin. Any JSON file can be extended, not only a package.json.
88
+ */
89
+ async function resolveVoltaNode(manifest, manifestPath, depth = 0) {
90
+ const volta = manifest?.volta;
91
+ if (!volta || typeof volta !== 'object')
92
+ return undefined;
93
+ if (typeof volta.node === 'string')
94
+ return volta.node;
95
+ if (typeof volta.extends === 'string' && depth < MAX_VOLTA_EXTENDS_DEPTH) {
96
+ const extendedPath = path.resolve(path.dirname(manifestPath), volta.extends);
97
+ return resolveVoltaNode(await readJsonIfExists(extendedPath), extendedPath, depth + 1);
98
+ }
99
+ return undefined;
100
+ }
101
+ /**
102
+ * Mirrors how Volta itself locates a pin: walk up from the config's package
103
+ * directory and use the nearest package.json that carries a `volta` key. That
104
+ * manifest is authoritative (including its `extends` chain), so the walk stops
105
+ * there even when it yields no Node version. The walk never leaves
106
+ * `projectRoot`; a start path outside it falls back to `projectRoot` alone.
107
+ */
108
+ async function detectVoltaNode(projectRoot, startPath) {
109
+ const root = path.resolve(projectRoot);
110
+ const start = path.resolve(startPath);
111
+ const contained = start === root || start.startsWith(root + path.sep);
112
+ for (const dir of lineage(contained ? start : root, { root })) {
113
+ const manifestPath = path.join(dir, 'package.json');
114
+ const manifest = await readJsonIfExists(manifestPath);
115
+ if (manifest?.volta && typeof manifest.volta === 'object') {
116
+ return resolveVoltaNode(manifest, manifestPath);
117
+ }
118
+ }
119
+ return undefined;
120
+ }
61
121
  async function resolveNode(rawVersion) {
62
122
  const major = resolveNodeMajor(rawVersion);
63
123
  if (!major)
@@ -72,7 +132,17 @@ async function resolveBun(rawVersion) {
72
132
  const res = await resolveEngineVersion(ver, 'bun');
73
133
  return { version: res.version, notices: res.notices, denied: res.denied };
74
134
  }
75
- export async function detectEngine(projectRoot) {
135
+ /**
136
+ * Detects the engine from the project's version files.
137
+ *
138
+ * @param projectRoot Directory holding the version files (the workspace root
139
+ * when the project is part of one).
140
+ * @param contextPath Directory of the package that contains the Checkly
141
+ * config. Only the Volta source uses it: mirroring Volta's own lookup, the
142
+ * pin is searched from here upwards to `projectRoot`. All other sources are
143
+ * read from `projectRoot` only.
144
+ */
145
+ export async function detectEngine(projectRoot, contextPath = projectRoot) {
76
146
  let nodeResult;
77
147
  let bunResult;
78
148
  // 1. .node-version
@@ -105,26 +175,28 @@ export async function detectEngine(projectRoot) {
105
175
  bunResult = await resolveBun(bunVersionFile);
106
176
  }
107
177
  }
108
- // 5. package.json engines
178
+ // 5. package.json volta.node (Volta pin; Volta does not manage Bun)
179
+ if (!nodeResult) {
180
+ const voltaNode = await detectVoltaNode(projectRoot, contextPath);
181
+ if (voltaNode) {
182
+ // Pins are normally exact versions, but Volta also accepts ranges.
183
+ const extracted = resolveEngineFromSemverRange(voltaNode);
184
+ if (extracted)
185
+ nodeResult = await resolveNode(extracted);
186
+ }
187
+ }
188
+ // 6. package.json engines
109
189
  if (!nodeResult || !bunResult) {
110
- const pkgJson = await readFileIfExists(path.join(projectRoot, 'package.json'));
111
- if (pkgJson) {
112
- try {
113
- const pkg = JSON.parse(pkgJson);
114
- if (!nodeResult && pkg.engines?.node) {
115
- const extracted = resolveEngineFromSemverRange(pkg.engines.node);
116
- if (extracted)
117
- nodeResult = await resolveNode(extracted);
118
- }
119
- if (!bunResult && pkg.engines?.bun) {
120
- const extracted = resolveBunFromSemverRange(pkg.engines.bun);
121
- if (extracted)
122
- bunResult = await resolveBun(extracted);
123
- }
124
- }
125
- catch {
126
- // malformed package.json, skip
127
- }
190
+ const pkg = await readJsonIfExists(path.join(projectRoot, 'package.json'));
191
+ if (!nodeResult && typeof pkg?.engines?.node === 'string') {
192
+ const extracted = resolveEngineFromSemverRange(pkg.engines.node);
193
+ if (extracted)
194
+ nodeResult = await resolveNode(extracted);
195
+ }
196
+ if (!bunResult && typeof pkg?.engines?.bun === 'string') {
197
+ const extracted = resolveBunFromSemverRange(pkg.engines.bun);
198
+ if (extracted)
199
+ bunResult = await resolveBun(extracted);
128
200
  }
129
201
  }
130
202
  const selected = nodeResult ?? bunResult;
@@ -1 +1 @@
1
- {"version":3,"file":"engine-detector.js","sourceRoot":"","sources":["../../src/services/engine-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine-detector.js","sourceRoot":"","sources":["../../src/services/engine-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Runs `fn` with `process.stderr.write` swapped for a collector and returns
3
+ * every chunk written meanwhile. Used to observe output that only goes to
4
+ * stderr, such as the `debug` channel, without a TTY.
5
+ */
6
+ export declare function captureStderr(fn: () => Promise<void>): Promise<string[]>;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Runs `fn` with `process.stderr.write` swapped for a collector and returns
3
+ * every chunk written meanwhile. Used to observe output that only goes to
4
+ * stderr, such as the `debug` channel, without a TTY.
5
+ */
6
+ export async function captureStderr(fn) {
7
+ const written = [];
8
+ const original = process.stderr.write.bind(process.stderr);
9
+ process.stderr.write = ((chunk) => {
10
+ written.push(String(chunk));
11
+ return true;
12
+ });
13
+ try {
14
+ await fn();
15
+ }
16
+ finally {
17
+ process.stderr.write = original;
18
+ }
19
+ return written;
20
+ }
21
+ //# sourceMappingURL=capture-stderr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-stderr.js","sourceRoot":"","sources":["../../src/testing/capture-stderr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAE,EAAuB;IAC1D,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE;QACxC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC,CAAU,CAAA;IACX,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,CAAA;IACZ,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAA;IACjC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -3866,5 +3866,5 @@
3866
3866
  ]
3867
3867
  }
3868
3868
  },
3869
- "version": "9.1.0"
3869
+ "version": "9.2.0-prerelease-2ea1376"
3870
3870
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "checkly",
3
- "version": "9.1.0",
3
+ "version": "9.2.0-prerelease-2ea1376",
4
4
  "type": "module",
5
5
  "description": "Checkly CLI",
6
6
  "main": "dist/index.js",