checkly 8.19.0 → 8.20.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 +0 -6
- package/dist/ai-context/context.js +0 -9
- package/dist/ai-context/context.js.map +1 -1
- package/dist/ai-context/public-skills/checkly/SKILL.md +2 -2
- package/dist/ai-context/skills-command/references/configure-playwright-checks.md +1 -0
- package/dist/ai-context/skills-command/references/configure.md +1 -4
- package/dist/ai-context/skills-command/references/initialize.md +1 -1
- package/dist/ai-context/skills-command/references/investigate-test-sessions.md +1 -1
- package/dist/ai-context/skills-command/references/manage-plan.md +1 -1
- package/dist/ai-context/skills-command/references/manage.md +3 -3
- package/dist/commands/account/plan.d.ts +13 -0
- package/dist/commands/account/plan.js +3 -2
- package/dist/commands/account/plan.js.map +1 -1
- package/dist/commands/debug/parse-project.js +3 -1
- package/dist/commands/debug/parse-project.js.map +1 -1
- package/dist/commands/deploy.js +3 -1
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/pw-test.js +3 -1
- package/dist/commands/pw-test.js.map +1 -1
- package/dist/commands/test.js +3 -1
- package/dist/commands/test.js.map +1 -1
- package/dist/formatters/account-plan.d.ts +2 -2
- package/dist/formatters/account-plan.js +6 -6
- package/dist/formatters/account-plan.js.map +1 -1
- package/dist/rest/account-members.d.ts +3 -3
- package/dist/rest/accounts.d.ts +2 -2
- package/dist/rest/api.d.ts +1 -1
- package/dist/rest/batch-analytics.d.ts +1 -1
- package/dist/rest/cancel.d.ts +6 -2
- package/dist/rest/check-groups.d.ts +1 -1
- package/dist/rest/check-results.d.ts +2 -2
- package/dist/rest/check-statuses.d.ts +2 -2
- package/dist/rest/checkly-storage.d.ts +5 -3
- package/dist/rest/checks.d.ts +3 -3
- package/dist/rest/entitlements.d.ts +1 -1
- package/dist/rest/environment-variables.d.ts +14 -5
- package/dist/rest/error-groups.d.ts +2 -2
- package/dist/rest/heartbeat-checks.d.ts +1 -1
- package/dist/rest/locations.d.ts +1 -1
- package/dist/rest/private-locations.d.ts +1 -1
- package/dist/rest/projects.d.ts +11 -11
- package/dist/rest/rca.d.ts +3 -3
- package/dist/rest/test-session-error-groups.d.ts +1 -1
- package/dist/rest/test-sessions.d.ts +9 -9
- package/dist/rest/users.d.ts +1 -1
- package/dist/services/check-parser/bundler.d.ts +2 -1
- package/dist/services/check-parser/bundler.js +112 -17
- package/dist/services/check-parser/bundler.js.map +1 -1
- package/dist/services/check-parser/cache-hash.d.ts +29 -1
- package/dist/services/check-parser/cache-hash.js +30 -1
- package/dist/services/check-parser/cache-hash.js.map +1 -1
- package/dist/services/check-parser/parser.d.ts +18 -0
- package/dist/services/check-parser/parser.js +9 -2
- package/dist/services/check-parser/parser.js.map +1 -1
- package/dist/services/check-parser/playwright-config-expander.d.ts +10 -1
- package/dist/services/check-parser/playwright-config-expander.js +87 -8
- package/dist/services/check-parser/playwright-config-expander.js.map +1 -1
- package/dist/services/checkly-config-loader.d.ts +28 -0
- package/dist/services/checkly-config-loader.js +10 -0
- package/dist/services/checkly-config-loader.js.map +1 -1
- package/dist/services/playwright-config.d.ts +14 -0
- package/dist/services/playwright-config.js +62 -9
- package/dist/services/playwright-config.js.map +1 -1
- package/dist/services/playwright-project-bundler.js +42 -5
- package/dist/services/playwright-project-bundler.js.map +1 -1
- package/dist/services/symlink-resolver.d.ts +56 -0
- package/dist/services/symlink-resolver.js +860 -0
- package/dist/services/symlink-resolver.js.map +1 -0
- package/oclif.manifest.json +447 -447
- package/package.json +14 -14
- package/dist/ai-context/skills-command/references/configure-agentic-checks.md +0 -65
|
@@ -1,6 +1,27 @@
|
|
|
1
|
+
import { realpathSync } from 'node:fs';
|
|
1
2
|
import * as path from 'node:path';
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Resolves a config-relative path and canonicalizes it through any symlinks.
|
|
5
|
+
*
|
|
6
|
+
* Canonicalizing here — at construction, for every path the config names — is
|
|
7
|
+
* load-bearing. Test files are found by globbing with testDir as the working
|
|
8
|
+
* directory, and glob returns nothing at all when that directory is a symlink
|
|
9
|
+
* (as it is when testDir points into node_modules under pnpm). Snapshot
|
|
10
|
+
* patterns are then built by mixing testDir, snapshotDir and the discovered
|
|
11
|
+
* file paths; if those lived in different namespaces — one spelled through a
|
|
12
|
+
* link, another resolved — the arithmetic produces `..`-laden glob patterns
|
|
13
|
+
* that match nothing. Everything the config names must therefore resolve into
|
|
14
|
+
* the one canonical namespace.
|
|
15
|
+
*
|
|
16
|
+
* A path that does not exist is kept as spelled; there is nothing to resolve.
|
|
17
|
+
*/
|
|
18
|
+
function canonicalize(absolute) {
|
|
19
|
+
try {
|
|
20
|
+
return realpathSync(absolute);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return absolute;
|
|
24
|
+
}
|
|
4
25
|
}
|
|
5
26
|
function parseBrowsers(config) {
|
|
6
27
|
const browsers = new Set();
|
|
@@ -41,17 +62,35 @@ export class PlaywrightConfig {
|
|
|
41
62
|
browsers;
|
|
42
63
|
projects;
|
|
43
64
|
files;
|
|
65
|
+
/**
|
|
66
|
+
* The paths this config names, keyed by the exact spelling the config uses
|
|
67
|
+
* (resolved against the config directory, but not through symlinks), with the
|
|
68
|
+
* canonical path as the value. The canonicalized properties above are what
|
|
69
|
+
* discovery uses; the spellings are what the config file will still say when
|
|
70
|
+
* it runs from the extracted bundle. Any symlink a spelling traverses must
|
|
71
|
+
* therefore exist in the bundle too, or the reference resolves to nothing
|
|
72
|
+
* there — the bundler walks these to find which links to carry. And when a
|
|
73
|
+
* spelling's canonical path leaves the bundle root, the spelled-to-canonical
|
|
74
|
+
* pair is what lets discovery fall back to bundling at the spelling.
|
|
75
|
+
*/
|
|
76
|
+
referencedPaths;
|
|
44
77
|
constructor(filePath, playwrightConfig) {
|
|
45
78
|
const dir = path.dirname(filePath);
|
|
46
79
|
this.projectName = '';
|
|
47
80
|
this.platform = 'linux';
|
|
48
|
-
this.
|
|
49
|
-
this.
|
|
81
|
+
this.referencedPaths = new Map();
|
|
82
|
+
this.testDir = this.reference(dir, playwrightConfig.testDir ?? '.');
|
|
83
|
+
this.snapshotDir = playwrightConfig.snapshotDir ? this.reference(dir, playwrightConfig.snapshotDir) : this.testDir;
|
|
50
84
|
this.files = new Set();
|
|
51
85
|
this.snapshotTemplates = new Set();
|
|
52
86
|
const testMatch = playwrightConfig.testMatch ?? ['**/*.@(spec|test).?(c|m)[jt]s?(x)'];
|
|
53
87
|
this.testMatch = new Set(Array.isArray(testMatch) ? testMatch : [testMatch]);
|
|
54
|
-
|
|
88
|
+
// The config's own location is a spelled reference like any other: the
|
|
89
|
+
// check runs it by this spelling, and its content must live in the same
|
|
90
|
+
// canonical namespace as everything the config names — a config reached
|
|
91
|
+
// through a symlink would otherwise be archived beneath a carried link,
|
|
92
|
+
// which forces the link out of the archive.
|
|
93
|
+
this.configFilePath = this.reference(dir, path.basename(filePath));
|
|
55
94
|
const fileDefinitions = ['tsconfig', 'globalSetup', 'globalTeardown'];
|
|
56
95
|
for (const fileDefinition of fileDefinitions) {
|
|
57
96
|
const definition = playwrightConfig[fileDefinition];
|
|
@@ -59,10 +98,10 @@ export class PlaywrightConfig {
|
|
|
59
98
|
continue;
|
|
60
99
|
}
|
|
61
100
|
if (Array.isArray(definition)) {
|
|
62
|
-
definition.forEach((file) => this.files.add(
|
|
101
|
+
definition.forEach((file) => this.files.add(this.reference(dir, file)));
|
|
63
102
|
}
|
|
64
103
|
else {
|
|
65
|
-
this.files.add(
|
|
104
|
+
this.files.add(this.reference(dir, definition));
|
|
66
105
|
}
|
|
67
106
|
}
|
|
68
107
|
if (playwrightConfig.snapshotPathTemplate) {
|
|
@@ -83,6 +122,13 @@ export class PlaywrightConfig {
|
|
|
83
122
|
this.projects = playwrightConfig.projects.map((project) => new PlaywrightProject(dir, this, project));
|
|
84
123
|
}
|
|
85
124
|
}
|
|
125
|
+
/** Records the spelled path and returns the canonical one. */
|
|
126
|
+
reference(dir, file) {
|
|
127
|
+
const spelled = path.resolve(dir, file);
|
|
128
|
+
const canonical = canonicalize(spelled);
|
|
129
|
+
this.referencedPaths.set(spelled, canonical);
|
|
130
|
+
return canonical;
|
|
131
|
+
}
|
|
86
132
|
getBrowsers() {
|
|
87
133
|
const browsers = new Set(this.browsers);
|
|
88
134
|
this.projects?.forEach(project => project.browsers.forEach(browser => browsers.add(browser)));
|
|
@@ -105,12 +151,19 @@ export class PlaywrightProject {
|
|
|
105
151
|
expect;
|
|
106
152
|
snapshotTemplates;
|
|
107
153
|
browsers;
|
|
154
|
+
// playwrightConfig is the enclosing PlaywrightConfig instance; typed loosely
|
|
155
|
+
// because this constructor also probes raw-config fields on it that the class
|
|
156
|
+
// does not carry (a long-standing quirk this change leaves as-is).
|
|
108
157
|
constructor(dir, playwrightConfig, playwrightProject) {
|
|
109
158
|
this.projectName = playwrightProject.name;
|
|
110
159
|
this.platform = 'linux';
|
|
111
|
-
|
|
160
|
+
// Project-specific paths are recorded on the parent config, which is where
|
|
161
|
+
// the bundler collects the spellings from.
|
|
162
|
+
this.testDir = playwrightProject.testDir
|
|
163
|
+
? playwrightConfig.reference(dir, playwrightProject.testDir)
|
|
164
|
+
: playwrightConfig.testDir;
|
|
112
165
|
this.snapshotDir = playwrightProject.snapshotDir
|
|
113
|
-
?
|
|
166
|
+
? playwrightConfig.reference(dir, playwrightProject.snapshotDir)
|
|
114
167
|
: (playwrightConfig.snapshotDir ?? this.testDir);
|
|
115
168
|
this.snapshotTemplates = new Set();
|
|
116
169
|
const testMatch = playwrightProject.testMatch ?? Array.from(playwrightConfig.testMatch);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-config.js","sourceRoot":"","sources":["../../src/services/playwright-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,SAAS,
|
|
1
|
+
{"version":3,"file":"playwright-config.js","sourceRoot":"","sources":["../../src/services/playwright-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,25 @@ import { detectNearestPackageJson } from './check-parser/package-files/package-m
|
|
|
6
6
|
import { PackageJsonFile } from './check-parser/package-files/package-json-file.js';
|
|
7
7
|
import { lineage } from './check-parser/package-files/walk.js';
|
|
8
8
|
import { PlaywrightConfig } from './playwright-config.js';
|
|
9
|
+
import { resolveBundleFiles } from './symlink-resolver.js';
|
|
9
10
|
import { findFilesWithPattern, pathToPosix } from './util.js';
|
|
10
11
|
import { Session } from '../constructs/session.js';
|
|
12
|
+
/**
|
|
13
|
+
* The directory archive paths are relative to — the workspace root, which is
|
|
14
|
+
* also the bundler's strip prefix (see Bundler.createForWorkspace) — together
|
|
15
|
+
* with the workspace's member directories.
|
|
16
|
+
*/
|
|
17
|
+
function workspaceBundleInfo() {
|
|
18
|
+
const workspace = Session.workspace;
|
|
19
|
+
if (!workspace.isOk()) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
const { root, packages } = workspace.unwrap();
|
|
23
|
+
return {
|
|
24
|
+
bundleRoot: root.path,
|
|
25
|
+
members: [root, ...packages].map(({ path, name }) => ({ path, name })),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
11
28
|
export class PlaywrightProjectBundler {
|
|
12
29
|
// Cache the in-flight bundle promise keyed by (config, include). Many checks
|
|
13
30
|
// are generated from one shared Playwright codebase, so they call bundle()
|
|
@@ -65,11 +82,31 @@ export class PlaywrightProjectBundler {
|
|
|
65
82
|
const autoIncludes = getAutoIncludes(Session.basePath, dir, Session.packageManager, include);
|
|
66
83
|
const effectiveIncludes = [...include, ...autoIncludes];
|
|
67
84
|
const includedFiles = await findFilesWithPattern(dir, effectiveIncludes, ignoredFiles);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
85
|
+
// Included paths may run through symlinks — under pnpm every package in
|
|
86
|
+
// node_modules is one. Left alone they produce an archive that tar cannot
|
|
87
|
+
// extract, so resolve them into entries that can be.
|
|
88
|
+
const workspaceInfo = workspaceBundleInfo();
|
|
89
|
+
if (workspaceInfo === undefined) {
|
|
90
|
+
for (const filePath of includedFiles) {
|
|
91
|
+
files.push({
|
|
92
|
+
filePath,
|
|
93
|
+
physical: true,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
files.push(...await resolveBundleFiles({
|
|
99
|
+
matchedPaths: includedFiles,
|
|
100
|
+
bundleRoot: workspaceInfo.bundleRoot,
|
|
101
|
+
ignoreCwd: dir,
|
|
102
|
+
ignorePatterns: ignoredFiles,
|
|
103
|
+
// The config's own path references (testDir, globalSetup, ...) are
|
|
104
|
+
// discovered at their real paths, but the config file still spells them
|
|
105
|
+
// as written — through any symlink on the way. Those links must travel
|
|
106
|
+
// with the bundle or the spellings resolve to nothing on the runner.
|
|
107
|
+
referencedPaths: Array.from(pwConfigParsed.referencedPaths.keys()),
|
|
108
|
+
workspaceMembers: workspaceInfo.members,
|
|
109
|
+
}));
|
|
73
110
|
}
|
|
74
111
|
return {
|
|
75
112
|
browsers: pwConfigParsed.getBrowsers(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright-project-bundler.js","sourceRoot":"","sources":["../../src/services/playwright-project-bundler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,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,eAAe,EAAE,MAAM,mDAAmD,CAAA;AAEnF,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AAC9D,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;
|
|
1
|
+
{"version":3,"file":"playwright-project-bundler.js","sourceRoot":"","sources":["../../src/services/playwright-project-bundler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { PhysicalFile } from './check-parser/parser.js';
|
|
2
|
+
export interface ResolveBundleFilesOptions {
|
|
3
|
+
/** Absolute paths matched by the include globs. */
|
|
4
|
+
matchedPaths: string[];
|
|
5
|
+
/** Archive root. Every archive path is relative to this. */
|
|
6
|
+
bundleRoot: string;
|
|
7
|
+
/** Directory the ignore patterns are relative to (the include glob's cwd). */
|
|
8
|
+
ignoreCwd: string;
|
|
9
|
+
ignorePatterns: string[];
|
|
10
|
+
/**
|
|
11
|
+
* Paths that files in the bundle refer to by spelling — e.g. a Playwright
|
|
12
|
+
* config's testDir or globalSetup, exactly as written. Content discovery
|
|
13
|
+
* resolves such paths through any symlinks and bundles the real files, but
|
|
14
|
+
* the reference itself still reads the original spelling at run time, so
|
|
15
|
+
* every symlink it traverses must exist in the archive for it to resolve.
|
|
16
|
+
* The links are carried as symlink entries only; what they point at is
|
|
17
|
+
* bundled by whoever discovered the content.
|
|
18
|
+
*/
|
|
19
|
+
referencedPaths?: string[];
|
|
20
|
+
/**
|
|
21
|
+
* The workspace's member packages, in any order. A package link whose target
|
|
22
|
+
* is a member directory — and whose node_modules name matches the member's
|
|
23
|
+
* package name, so the import parser can resolve it — gets selective
|
|
24
|
+
* treatment: link + manifest + whatever was matched through it, instead of
|
|
25
|
+
* whole-directory expansion, mirroring how non-linked workspace dependencies
|
|
26
|
+
* are bundled. Empty or absent means no workspace: every in-root link target
|
|
27
|
+
* keeps the expansion behaviour.
|
|
28
|
+
*/
|
|
29
|
+
workspaceMembers?: Array<{
|
|
30
|
+
path: string;
|
|
31
|
+
name: string;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Turns the paths matched by the include globs into archive entries, resolving
|
|
36
|
+
* symlinks so that the resulting archive is both extractable and usable.
|
|
37
|
+
*
|
|
38
|
+
* Two problems make this necessary.
|
|
39
|
+
*
|
|
40
|
+
* Extractability: glob's `nodir` option filters on lstat, so a symlink pointing
|
|
41
|
+
* at a directory is reported as if it were a regular file, while glob separately
|
|
42
|
+
* walks *through* that same symlink and reports the files beneath it. Archiving
|
|
43
|
+
* both yields a path that is simultaneously a symlink and a directory, which tar
|
|
44
|
+
* refuses to extract. Package managers that link packages out of a shared store
|
|
45
|
+
* (pnpm) make that the ordinary shape of node_modules.
|
|
46
|
+
*
|
|
47
|
+
* Usability: simply dereferencing the symlink does not work either. Under pnpm a
|
|
48
|
+
* package's dependencies are siblings of it inside the store, not children, so a
|
|
49
|
+
* flattened copy of node_modules/<pkg> cannot resolve anything it depends on.
|
|
50
|
+
*
|
|
51
|
+
* The archive therefore keeps symlinks as symlinks and brings their targets
|
|
52
|
+
* along, which reproduces the layout the package manager built. The invariant
|
|
53
|
+
* that makes it extractable: an entry is either a symlink, which by construction
|
|
54
|
+
* never has children, or a regular file at a symlink-free archive path.
|
|
55
|
+
*/
|
|
56
|
+
export declare function resolveBundleFiles(options: ResolveBundleFilesOptions): Promise<PhysicalFile[]>;
|