checkly 8.6.0 → 8.7.0
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.
- package/dist/ai-context/context.d.ts +2 -2
- package/dist/ai-context/context.js +1 -1
- package/dist/ai-context/context.js.map +1 -1
- package/dist/ai-context/skills-command/references/manage-account-members.md +26 -8
- package/dist/ai-context/skills-command/references/manage.md +1 -1
- package/dist/commands/checks/get.js +18 -17
- package/dist/commands/checks/get.js.map +1 -1
- package/dist/commands/members/delete.d.ts +18 -0
- package/dist/commands/members/delete.js +73 -0
- package/dist/commands/members/delete.js.map +1 -0
- package/dist/commands/members/update.d.ts +21 -0
- package/dist/commands/members/update.js +104 -0
- package/dist/commands/members/update.js.map +1 -0
- package/dist/commands/{account/members.d.ts → members.d.ts} +3 -2
- package/dist/commands/{account/members.js → members.js} +5 -4
- package/dist/commands/members.js.map +1 -0
- package/dist/commands/test-sessions/get.d.ts +3 -0
- package/dist/commands/test-sessions/get.js +45 -22
- package/dist/commands/test-sessions/get.js.map +1 -1
- package/dist/formatters/account-members.js +13 -14
- package/dist/formatters/account-members.js.map +1 -1
- package/dist/formatters/account-plan.js +19 -11
- package/dist/formatters/account-plan.js.map +1 -1
- package/dist/formatters/alert-channels.js +20 -22
- package/dist/formatters/alert-channels.js.map +1 -1
- package/dist/formatters/batch-stats.js +19 -17
- package/dist/formatters/batch-stats.js.map +1 -1
- package/dist/formatters/check-result-detail.d.ts +2 -1
- package/dist/formatters/check-result-detail.js +9 -1
- package/dist/formatters/check-result-detail.js.map +1 -1
- package/dist/formatters/checks.js +21 -14
- package/dist/formatters/checks.js.map +1 -1
- package/dist/formatters/incidents.js +7 -10
- package/dist/formatters/incidents.js.map +1 -1
- package/dist/formatters/render.d.ts +9 -0
- package/dist/formatters/render.js +13 -0
- package/dist/formatters/render.js.map +1 -1
- package/dist/formatters/status-pages.js +29 -36
- package/dist/formatters/status-pages.js.map +1 -1
- package/dist/formatters/test-sessions.js +32 -49
- package/dist/formatters/test-sessions.js.map +1 -1
- package/dist/helpers/account-member-target.d.ts +14 -0
- package/dist/helpers/account-member-target.js +37 -0
- package/dist/helpers/account-member-target.js.map +1 -0
- package/dist/rest/account-members.d.ts +6 -0
- package/dist/rest/account-members.js +7 -0
- package/dist/rest/account-members.js.map +1 -1
- package/dist/rest/test-sessions.d.ts +2 -0
- package/dist/rest/test-sessions.js +3 -0
- package/dist/rest/test-sessions.js.map +1 -1
- package/dist/services/check-parser/package-files/lockfile-package-version.d.ts +85 -0
- package/dist/services/check-parser/package-files/lockfile-package-version.js +317 -0
- package/dist/services/check-parser/package-files/lockfile-package-version.js.map +1 -0
- package/dist/services/check-parser/package-files/package-manager.d.ts +19 -0
- package/dist/services/check-parser/package-files/package-manager.js +52 -0
- package/dist/services/check-parser/package-files/package-manager.js.map +1 -1
- package/dist/services/playwright-project-bundler.d.ts +11 -0
- package/dist/services/playwright-project-bundler.js +120 -4
- package/dist/services/playwright-project-bundler.js.map +1 -1
- package/oclif.manifest.json +515 -351
- package/package.json +6 -2
- package/dist/commands/account/members.js.map +0 -1
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
1
2
|
import { createRequire } from 'node:module';
|
|
2
3
|
import path from 'node:path';
|
|
3
4
|
import semver from 'semver';
|
|
4
5
|
import { detectNearestPackageJson } from './check-parser/package-files/package-manager.js';
|
|
6
|
+
import { PackageJsonFile } from './check-parser/package-files/package-json-file.js';
|
|
7
|
+
import { lineage } from './check-parser/package-files/walk.js';
|
|
5
8
|
import { PlaywrightConfig } from './playwright-config.js';
|
|
6
9
|
import { findFilesWithPattern, pathToPosix } from './util.js';
|
|
7
10
|
import { Session } from '../constructs/session.js';
|
|
@@ -32,7 +35,7 @@ export class PlaywrightProjectBundler {
|
|
|
32
35
|
// No need of loading everything if there is no lockfile
|
|
33
36
|
const pwtConfig = await Session.loadFile(filePath);
|
|
34
37
|
const pwConfigParsed = new PlaywrightConfig(filePath, pwtConfig);
|
|
35
|
-
const playwrightVersion = await
|
|
38
|
+
const playwrightVersion = await resolvePlaywrightVersion(dir);
|
|
36
39
|
const parser = Session.getPlaywrightParser();
|
|
37
40
|
const { files, errors } = await parser.getFilesAndDependencies(pwConfigParsed);
|
|
38
41
|
if (errors.length) {
|
|
@@ -94,18 +97,131 @@ export function getAutoIncludes(basePath, globCwd, packageManager, existingInclu
|
|
|
94
97
|
}
|
|
95
98
|
return autoIncludes;
|
|
96
99
|
}
|
|
100
|
+
const PLAYWRIGHT_TEST = '@playwright/test';
|
|
101
|
+
/**
|
|
102
|
+
* Resolves the @playwright/test version that should run in the cloud.
|
|
103
|
+
*
|
|
104
|
+
* The project's lockfile is the source of truth: the version it pins is what
|
|
105
|
+
* CI and other developers resolve, and it stays correct even when the local
|
|
106
|
+
* node_modules has drifted (e.g. after switching branches without
|
|
107
|
+
* reinstalling). When no usable lockfile answer is available — no lockfile, an
|
|
108
|
+
* unsupported/unparseable format, or the package isn't pinned for the relevant
|
|
109
|
+
* workspace member — we fall back to reading the installed package.
|
|
110
|
+
*/
|
|
111
|
+
export async function resolvePlaywrightVersion(cwd) {
|
|
112
|
+
const lockfileVersion = await getPlaywrightVersionFromLockfile(cwd);
|
|
113
|
+
if (lockfileVersion !== undefined) {
|
|
114
|
+
return lockfileVersion;
|
|
115
|
+
}
|
|
116
|
+
return await getPlaywrightVersionFromPackage(cwd);
|
|
117
|
+
}
|
|
118
|
+
function playwrightRange(packageJson) {
|
|
119
|
+
return packageJson.dependencies?.[PLAYWRIGHT_TEST]
|
|
120
|
+
?? packageJson.devDependencies?.[PLAYWRIGHT_TEST];
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Resolves the @playwright/test version from the workspace lockfile, scoped to
|
|
124
|
+
* the workspace member that owns the Playwright config. Returns `undefined`
|
|
125
|
+
* when no answer can be derived from the lockfile, signalling the caller to
|
|
126
|
+
* fall back.
|
|
127
|
+
*/
|
|
128
|
+
async function getPlaywrightVersionFromLockfile(cwd) {
|
|
129
|
+
const workspaceResult = Session.workspace;
|
|
130
|
+
if (!workspaceResult.isOk()) {
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
const workspace = workspaceResult.unwrap();
|
|
134
|
+
if (!workspace.lockfile.isOk()) {
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
const lockfilePath = workspace.lockfile.unwrap();
|
|
138
|
+
const packageManager = Session.packageManager;
|
|
139
|
+
// Normalize both paths through realpath so the directory walk and the
|
|
140
|
+
// relative importer paths line up with the workspace root even when the
|
|
141
|
+
// config is reached through a symlink (e.g. macOS /tmp -> /private/tmp).
|
|
142
|
+
let configDir;
|
|
143
|
+
let workspaceRoot;
|
|
144
|
+
try {
|
|
145
|
+
configDir = await fs.realpath(cwd);
|
|
146
|
+
workspaceRoot = await fs.realpath(workspace.root.path);
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
// Walk from the config directory up to the workspace root, building the chain
|
|
152
|
+
// of candidate importers Node would consult when resolving the package from
|
|
153
|
+
// the config directory. Resolution must mirror that walk: a package required
|
|
154
|
+
// from a member that doesn't declare it resolves to a physically-enclosing
|
|
155
|
+
// member's copy, not necessarily the root's.
|
|
156
|
+
const importers = [];
|
|
157
|
+
let consumingRange;
|
|
158
|
+
let reachedRoot = false;
|
|
159
|
+
for (const dir of lineage(configDir, { root: workspaceRoot })) {
|
|
160
|
+
// A directory contributes a declared range only when it actually has a
|
|
161
|
+
// package.json declaring the dep. Intermediate directories still
|
|
162
|
+
// participate (by position) so npm's physical node_modules walk and pnpm's
|
|
163
|
+
// importer lookup see them.
|
|
164
|
+
const packageJson = await PackageJsonFile.loadFromFilePath(PackageJsonFile.filePath(dir));
|
|
165
|
+
const declaredRange = packageJson ? playwrightRange(packageJson) : undefined;
|
|
166
|
+
// The consuming package is the nearest package.json at or above the config;
|
|
167
|
+
// its declared range anchors the drift check below.
|
|
168
|
+
if (consumingRange === undefined && declaredRange !== undefined) {
|
|
169
|
+
consumingRange = declaredRange;
|
|
170
|
+
}
|
|
171
|
+
importers.push({ relPath: toImporterRelPath(workspaceRoot, dir), declaredRange });
|
|
172
|
+
if (dir === workspaceRoot) {
|
|
173
|
+
reachedRoot = true;
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// If the walk never reached the workspace root, the relative paths don't
|
|
178
|
+
// describe importers under this workspace — don't trust them.
|
|
179
|
+
if (!reachedRoot) {
|
|
180
|
+
return undefined;
|
|
181
|
+
}
|
|
182
|
+
const raw = await packageManager.resolvePackageVersionFromLockfile(lockfilePath, {
|
|
183
|
+
packageName: PLAYWRIGHT_TEST,
|
|
184
|
+
importers,
|
|
185
|
+
});
|
|
186
|
+
if (raw === undefined) {
|
|
187
|
+
return undefined;
|
|
188
|
+
}
|
|
189
|
+
const version = normalizeVersion(raw);
|
|
190
|
+
if (version === undefined) {
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
|
193
|
+
// Drift guard: if the consuming package declares a range the resolved version
|
|
194
|
+
// doesn't satisfy, its package.json was changed without re-resolving the
|
|
195
|
+
// lockfile (or the install is otherwise inconsistent). The cloud runs the
|
|
196
|
+
// resolved version, so warn rather than silently using a mismatched pin.
|
|
197
|
+
if (consumingRange !== undefined) {
|
|
198
|
+
const validRange = semver.validRange(consumingRange);
|
|
199
|
+
if (validRange && !semver.satisfies(version, validRange)) {
|
|
200
|
+
process.stderr.write(`Warning: resolved @playwright/test version ${version} does not satisfy the range `
|
|
201
|
+
+ `"${consumingRange}" declared in package.json. The lockfile may be out of date; run `
|
|
202
|
+
+ `your package manager's install command to update it.\n`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return version;
|
|
206
|
+
}
|
|
207
|
+
function toImporterRelPath(rootPath, packagePath) {
|
|
208
|
+
const rel = path.relative(rootPath, packagePath);
|
|
209
|
+
if (rel === '' || rel === '.') {
|
|
210
|
+
return '.';
|
|
211
|
+
}
|
|
212
|
+
return pathToPosix(rel);
|
|
213
|
+
}
|
|
97
214
|
export async function getPlaywrightVersionFromPackage(cwd) {
|
|
98
215
|
try {
|
|
99
216
|
const require = createRequire(path.join(cwd, 'noop.js'));
|
|
100
|
-
const playwrightPath = require.resolve(
|
|
217
|
+
const playwrightPath = require.resolve(`${PLAYWRIGHT_TEST}/package.json`);
|
|
101
218
|
const playwrightPkg = require(playwrightPath);
|
|
102
219
|
const version = normalizeVersion(playwrightPkg.version);
|
|
103
220
|
if (!version) {
|
|
104
221
|
throw new Error('Invalid version found in @playwright/test package.json');
|
|
105
222
|
}
|
|
106
223
|
const packageJson = await detectNearestPackageJson(cwd);
|
|
107
|
-
const range = packageJson
|
|
108
|
-
?? packageJson.devDependencies?.['@playwright/test'];
|
|
224
|
+
const range = playwrightRange(packageJson);
|
|
109
225
|
if (!range) {
|
|
110
226
|
return version;
|
|
111
227
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-project-bundler.js","sourceRoot":"","sources":["../../src/services/playwright-project-bundler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,MAAM,MAAM,QAAQ,CAAA;AAG3B,OAAO,EAAE,wBAAwB,EAAkB,MAAM,iDAAiD,CAAA;AAC1G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAUlD,MAAM,OAAO,wBAAwB;IACnC,6EAA6E;IAC7E,2EAA2E;IAC3E,4EAA4E;IAC5E,qEAAqE;IACrE,yEAAyE;IACzE,4EAA4E;IAC5E,kEAAkE;IAClE,MAAM,GAAG,IAAI,GAAG,EAA4C,CAAA;IAE5D,KAAK,CAAC,MAAM,CAAE,gBAAwB,EAAE,OAAiB;QACvD,MAAM,QAAQ,GAAG,GAAG,gBAAgB,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAA;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,MAAM,CAAA;QACrB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;QAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClC,OAAO,MAAM,OAAO,CAAA;IACtB,CAAC;IAED,2EAA2E;IAC3E,uDAAuD;IAC7C,KAAK,CAAC,aAAa,CAAE,gBAAwB,EAAE,OAAiB;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;QAEpD,wDAAwD;QACxD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAElD,MAAM,cAAc,GAAG,IAAI,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAEhE,MAAM,iBAAiB,GAAG,MAAM
|
|
1
|
+
{"version":3,"file":"playwright-project-bundler.js","sourceRoot":"","sources":["../../src/services/playwright-project-bundler.ts"],"names":[],"mappings":"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"}
|