checkly 8.22.0 → 8.23.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/skills-command/references/configure-playwright-checks.md +24 -19
- package/dist/commands/debug/parse-project.js +3 -0
- package/dist/commands/debug/parse-project.js.map +1 -1
- package/dist/commands/deploy.js +3 -0
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/pw-test.js +3 -0
- package/dist/commands/pw-test.js.map +1 -1
- package/dist/commands/test.js +3 -0
- package/dist/commands/test.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constructs/playwright-check-bundle.d.ts +5 -5
- package/dist/constructs/playwright-check-bundle.js.map +1 -1
- package/dist/constructs/project.js +5 -2
- package/dist/constructs/project.js.map +1 -1
- package/dist/constructs/session.d.ts +2 -1
- package/dist/constructs/session.js +2 -1
- package/dist/constructs/session.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/services/check-parser/bundler.d.ts +79 -8
- package/dist/services/check-parser/bundler.js +567 -9
- package/dist/services/check-parser/bundler.js.map +1 -1
- package/dist/services/check-parser/cache-hash.d.ts +141 -17
- package/dist/services/check-parser/cache-hash.js +78 -12
- package/dist/services/check-parser/cache-hash.js.map +1 -1
- package/dist/services/check-parser/faux-package.d.ts +5 -0
- package/dist/services/check-parser/faux-package.js +9 -1
- package/dist/services/check-parser/faux-package.js.map +1 -1
- package/dist/services/check-parser/lockfile-pruner.d.ts +104 -0
- package/dist/services/check-parser/lockfile-pruner.js +1107 -0
- package/dist/services/check-parser/lockfile-pruner.js.map +1 -0
- package/dist/services/check-parser/package-files/package-manager.d.ts +34 -0
- package/dist/services/check-parser/package-files/package-manager.js +131 -3
- package/dist/services/check-parser/package-files/package-manager.js.map +1 -1
- package/dist/services/check-parser/package-files/pnpmfile.d.ts +40 -0
- package/dist/services/check-parser/package-files/pnpmfile.js +322 -0
- package/dist/services/check-parser/package-files/pnpmfile.js.map +1 -0
- package/dist/services/check-parser/package-files/resolver.d.ts +6 -1
- package/dist/services/check-parser/package-files/resolver.js +34 -0
- package/dist/services/check-parser/package-files/resolver.js.map +1 -1
- package/dist/services/check-parser/package-files/workspace.d.ts +16 -1
- package/dist/services/check-parser/package-files/workspace.js +17 -2
- package/dist/services/check-parser/package-files/workspace.js.map +1 -1
- package/dist/services/check-parser/package-prune.d.ts +68 -0
- package/dist/services/check-parser/package-prune.js +274 -0
- package/dist/services/check-parser/package-prune.js.map +1 -0
- package/dist/services/check-parser/parser.js +9 -0
- package/dist/services/check-parser/parser.js.map +1 -1
- package/dist/services/check-parser/patched-dependencies.d.ts +133 -0
- package/dist/services/check-parser/patched-dependencies.js +428 -0
- package/dist/services/check-parser/patched-dependencies.js.map +1 -0
- package/dist/services/checkly-config-loader.d.ts +164 -10
- package/dist/services/checkly-config-loader.js +39 -0
- package/dist/services/checkly-config-loader.js.map +1 -1
- package/dist/services/embedded-packages/cache.d.ts +8 -4
- package/dist/services/embedded-packages/cache.js +27 -6
- package/dist/services/embedded-packages/cache.js.map +1 -1
- package/dist/services/embedded-packages/diagnostics.d.ts +129 -0
- package/dist/services/embedded-packages/diagnostics.js +212 -0
- package/dist/services/embedded-packages/diagnostics.js.map +1 -0
- package/dist/services/embedded-packages/lockfile-filter.d.ts +20 -0
- package/dist/services/embedded-packages/lockfile-filter.js +40 -0
- package/dist/services/embedded-packages/lockfile-filter.js.map +1 -0
- package/dist/services/embedded-packages/lockfile-packages.d.ts +31 -2
- package/dist/services/embedded-packages/lockfile-packages.js +234 -30
- package/dist/services/embedded-packages/lockfile-packages.js.map +1 -1
- package/dist/services/embedded-packages/materializer.d.ts +19 -5
- package/dist/services/embedded-packages/materializer.js +445 -91
- package/dist/services/embedded-packages/materializer.js.map +1 -1
- package/dist/services/embedded-packages/npmrc.d.ts +163 -21
- package/dist/services/embedded-packages/npmrc.js +440 -75
- package/dist/services/embedded-packages/npmrc.js.map +1 -1
- package/dist/services/embedded-packages/spec.d.ts +89 -17
- package/dist/services/embedded-packages/spec.js +199 -30
- package/dist/services/embedded-packages/spec.js.map +1 -1
- package/dist/services/embedded-packages/url.d.ts +39 -0
- package/dist/services/embedded-packages/url.js +60 -0
- package/dist/services/embedded-packages/url.js.map +1 -0
- package/dist/services/playwright-project-bundler.js +27 -23
- package/dist/services/playwright-project-bundler.js.map +1 -1
- package/dist/services/runner/registries.d.ts +144 -0
- package/dist/services/runner/registries.js +232 -0
- package/dist/services/runner/registries.js.map +1 -0
- package/oclif.manifest.json +1 -1
- package/package.json +5 -5
|
@@ -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;
|
|
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,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The file inside the code bundle that carries the `runner.registries`
|
|
3
|
+
* configuration. This path is a contract with Checkly runners: when the
|
|
4
|
+
* file is present, the runner routes package installs through a local
|
|
5
|
+
* registry that selects upstreams according to the routing rules within.
|
|
6
|
+
*
|
|
7
|
+
* Pattern matching semantics are defined by the matcher in
|
|
8
|
+
* `services/embedded-packages/spec.ts` (single `*` never crosses the `/`
|
|
9
|
+
* scope separator, `**` does, and a `**` directly before a `/` may match
|
|
10
|
+
* zero segments); runners must reproduce them exactly — off-the-shelf
|
|
11
|
+
* glob matchers differ, e.g. on a `**` that is not a whole segment.
|
|
12
|
+
*
|
|
13
|
+
* When the file is present it is authoritative for the runner's package
|
|
14
|
+
* installs: registries, credentials and TLS settings in the bundle's own
|
|
15
|
+
* config files (`.npmrc`, `pnpm-workspace.yaml`, `.yarnrc.yml`) are not
|
|
16
|
+
* consulted — the runner only scans them for scoped registry routes the
|
|
17
|
+
* package manager itself would follow, so it can override those
|
|
18
|
+
* client-side. Upstream TLS trust extends via the `NODE_EXTRA_CA_CERTS`
|
|
19
|
+
* environment variable, and proxying honors `HTTP(S)_PROXY`/`NO_PROXY`.
|
|
20
|
+
* Embedded packages (`.checkly/embedded-packages/`) always take priority
|
|
21
|
+
* over any routing.
|
|
22
|
+
*
|
|
23
|
+
* Runner support must be deployed before a CLI release starts writing
|
|
24
|
+
* this file: a runner that predates the feature ignores the file
|
|
25
|
+
* entirely and installs from the bundle's own registry configuration,
|
|
26
|
+
* with no error anywhere.
|
|
27
|
+
*/
|
|
28
|
+
export declare const REGISTRIES_ARCHIVE_PATH = ".checkly/config/registries.json";
|
|
29
|
+
/**
|
|
30
|
+
* The format version written into {@link REGISTRIES_ARCHIVE_PATH}. Runners
|
|
31
|
+
* reject versions they do not know, so the version only changes when the
|
|
32
|
+
* file's meaning changes in a way an older runner must not silently
|
|
33
|
+
* misread.
|
|
34
|
+
*/
|
|
35
|
+
export declare const REGISTRIES_FILE_VERSION = 1;
|
|
36
|
+
/**
|
|
37
|
+
* Credentials the runner presents to an upstream registry. The token must
|
|
38
|
+
* be exactly one `${VAR}` environment variable reference: the value is
|
|
39
|
+
* resolved from the check's environment variables on the runner, never on
|
|
40
|
+
* the machine running the CLI, so the secret value appears in neither the
|
|
41
|
+
* configuration nor the uploaded code bundle. Anything else — a literal
|
|
42
|
+
* token, or a literal mixed with a reference — is rejected at config load.
|
|
43
|
+
*/
|
|
44
|
+
export type UpstreamAuth = {
|
|
45
|
+
type: 'bearer';
|
|
46
|
+
/**
|
|
47
|
+
* A `${VAR}` reference to the environment variable holding the token,
|
|
48
|
+
* e.g. `'${NPM_TOKEN}'` (in single quotes, so no shell or template
|
|
49
|
+
* expansion happens locally).
|
|
50
|
+
*/
|
|
51
|
+
token: string;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* An npm registry the runner may install packages from.
|
|
55
|
+
*/
|
|
56
|
+
export interface Upstream {
|
|
57
|
+
/**
|
|
58
|
+
* The registry base URL, e.g. `'https://registry.npmjs.org/'`. Package
|
|
59
|
+
* paths are appended to it, so the URL must not carry a query, fragment
|
|
60
|
+
* or inline `user:password` credentials — use `auth` for credentials. A
|
|
61
|
+
* missing trailing slash is added when the configuration is shipped,
|
|
62
|
+
* since `https://host/npm` and `https://host/npm/` compose differently.
|
|
63
|
+
*/
|
|
64
|
+
url: string;
|
|
65
|
+
auth?: UpstreamAuth;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Routes packages matching `pattern` to one or more upstreams. The runner
|
|
69
|
+
* tries the listed upstreams in order and uses the first one that serves
|
|
70
|
+
* the package; a 404 or an unreachable upstream moves on to the next.
|
|
71
|
+
*
|
|
72
|
+
* Fallthrough is deliberately confined to the rule's own upstream list:
|
|
73
|
+
* when every listed upstream misses, the install fails rather than
|
|
74
|
+
* falling through to a later, broader rule. Falling back to a broader
|
|
75
|
+
* rule would silently send private package names to whatever upstream
|
|
76
|
+
* that rule names — the dependency-confusion attack in one move. To allow
|
|
77
|
+
* a fallback registry for a scope, list it in the scope's own rule.
|
|
78
|
+
*/
|
|
79
|
+
/**
|
|
80
|
+
* Equivalent of TypeScript 5.4's `NoInfer` intrinsic, spelled as a
|
|
81
|
+
* deferred conditional so the published declarations do not force
|
|
82
|
+
* consumer projects onto TypeScript 5.4+.
|
|
83
|
+
*/
|
|
84
|
+
type NoInferCompat<T> = [T][T extends unknown ? 0 : never];
|
|
85
|
+
export interface PackageRoutingRule<UpstreamName extends string = string> {
|
|
86
|
+
/**
|
|
87
|
+
* A package name pattern with the same wildcard syntax as
|
|
88
|
+
* `bundle.packages.embed`: a single `*` never crosses the `/` scope
|
|
89
|
+
* separator, a `**` does, and a `**` directly before a `/` may together
|
|
90
|
+
* with it match nothing, so `'**' + '/utils'` matches both `utils` and
|
|
91
|
+
* `@acme/utils`. Exclusion (`!`) patterns are not supported here — each
|
|
92
|
+
* rule stands alone, so there is nothing for an exclusion to subtract
|
|
93
|
+
* from.
|
|
94
|
+
*/
|
|
95
|
+
pattern: string;
|
|
96
|
+
/**
|
|
97
|
+
* Names of upstreams to try in order; each must be a key of
|
|
98
|
+
* {@link Registries.upstreams}.
|
|
99
|
+
*/
|
|
100
|
+
upstreams: NoInferCompat<UpstreamName>[];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Registry routing configuration for Checkly runners
|
|
104
|
+
* (`runner.registries` in `checkly.config.ts`). Rules apply first-match-
|
|
105
|
+
* wins, top-down: specific rules first, and the last rule must be the
|
|
106
|
+
* `'**'` match-all fallback — a rule placed after it could never match.
|
|
107
|
+
*/
|
|
108
|
+
export interface Registries<UpstreamName extends string = string> {
|
|
109
|
+
upstreams: Record<UpstreamName, Upstream>;
|
|
110
|
+
packages: PackageRoutingRule<UpstreamName>[];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The literal pattern the final routing rule must have so that all
|
|
114
|
+
* packages have a route. Only this exact spelling is recognized: an
|
|
115
|
+
* equivalent wildcard pattern (`'***'`, or a broad pattern that happens
|
|
116
|
+
* to match everything) neither satisfies the requirement nor triggers
|
|
117
|
+
* the dead-rule check for rules placed after it.
|
|
118
|
+
*/
|
|
119
|
+
export declare const MATCH_ALL_PATTERN = "**";
|
|
120
|
+
/**
|
|
121
|
+
* Validates the value of `runner.registries` and returns it typed. All
|
|
122
|
+
* failures throw a plain `Error` whose message names the offending part
|
|
123
|
+
* relative to `runner.registries`; the config loader wraps it with the
|
|
124
|
+
* full config path. Invalid URLs and tokens are deliberately never echoed
|
|
125
|
+
* back — a malformed registry URL may carry an inline credential.
|
|
126
|
+
*
|
|
127
|
+
* Plain-JS configs bypass the TypeScript type, so the shape must be
|
|
128
|
+
* enforced at runtime, exactly as `validateBundle` does for
|
|
129
|
+
* `bundle.packages`.
|
|
130
|
+
*/
|
|
131
|
+
export declare function validateRegistries(value: unknown): Registries;
|
|
132
|
+
/**
|
|
133
|
+
* Serializes a validated configuration into the canonical contents of
|
|
134
|
+
* {@link REGISTRIES_ARCHIVE_PATH}. Only known fields are written, and
|
|
135
|
+
* upstream names are sorted so the output (and with it the dependency
|
|
136
|
+
* cache hash) does not change when the config file merely reorders
|
|
137
|
+
* entries. Rule order is semantic (first match wins) and is preserved
|
|
138
|
+
* as-is. Upstream URLs are written in WHATWG-normalized form with a
|
|
139
|
+
* trailing slash guaranteed, so runners can compose package paths onto
|
|
140
|
+
* them by concatenation. Auth tokens are written unexpanded: the `${VAR}`
|
|
141
|
+
* reference is resolved on the runner.
|
|
142
|
+
*/
|
|
143
|
+
export declare function serializeRegistries(registries: Registries): string;
|
|
144
|
+
export {};
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { parsePackageNamePattern } from '../embedded-packages/spec.js';
|
|
2
|
+
import { COMPOSABLE_URL_REQUIREMENT, parseComposableUrl } from '../embedded-packages/url.js';
|
|
3
|
+
/**
|
|
4
|
+
* The file inside the code bundle that carries the `runner.registries`
|
|
5
|
+
* configuration. This path is a contract with Checkly runners: when the
|
|
6
|
+
* file is present, the runner routes package installs through a local
|
|
7
|
+
* registry that selects upstreams according to the routing rules within.
|
|
8
|
+
*
|
|
9
|
+
* Pattern matching semantics are defined by the matcher in
|
|
10
|
+
* `services/embedded-packages/spec.ts` (single `*` never crosses the `/`
|
|
11
|
+
* scope separator, `**` does, and a `**` directly before a `/` may match
|
|
12
|
+
* zero segments); runners must reproduce them exactly — off-the-shelf
|
|
13
|
+
* glob matchers differ, e.g. on a `**` that is not a whole segment.
|
|
14
|
+
*
|
|
15
|
+
* When the file is present it is authoritative for the runner's package
|
|
16
|
+
* installs: registries, credentials and TLS settings in the bundle's own
|
|
17
|
+
* config files (`.npmrc`, `pnpm-workspace.yaml`, `.yarnrc.yml`) are not
|
|
18
|
+
* consulted — the runner only scans them for scoped registry routes the
|
|
19
|
+
* package manager itself would follow, so it can override those
|
|
20
|
+
* client-side. Upstream TLS trust extends via the `NODE_EXTRA_CA_CERTS`
|
|
21
|
+
* environment variable, and proxying honors `HTTP(S)_PROXY`/`NO_PROXY`.
|
|
22
|
+
* Embedded packages (`.checkly/embedded-packages/`) always take priority
|
|
23
|
+
* over any routing.
|
|
24
|
+
*
|
|
25
|
+
* Runner support must be deployed before a CLI release starts writing
|
|
26
|
+
* this file: a runner that predates the feature ignores the file
|
|
27
|
+
* entirely and installs from the bundle's own registry configuration,
|
|
28
|
+
* with no error anywhere.
|
|
29
|
+
*/
|
|
30
|
+
export const REGISTRIES_ARCHIVE_PATH = '.checkly/config/registries.json';
|
|
31
|
+
/**
|
|
32
|
+
* The format version written into {@link REGISTRIES_ARCHIVE_PATH}. Runners
|
|
33
|
+
* reject versions they do not know, so the version only changes when the
|
|
34
|
+
* file's meaning changes in a way an older runner must not silently
|
|
35
|
+
* misread.
|
|
36
|
+
*/
|
|
37
|
+
export const REGISTRIES_FILE_VERSION = 1;
|
|
38
|
+
/**
|
|
39
|
+
* The literal pattern the final routing rule must have so that all
|
|
40
|
+
* packages have a route. Only this exact spelling is recognized: an
|
|
41
|
+
* equivalent wildcard pattern (`'***'`, or a broad pattern that happens
|
|
42
|
+
* to match everything) neither satisfies the requirement nor triggers
|
|
43
|
+
* the dead-rule check for rules placed after it.
|
|
44
|
+
*/
|
|
45
|
+
export const MATCH_ALL_PATTERN = '**';
|
|
46
|
+
/**
|
|
47
|
+
* Exactly one environment variable reference and nothing else. Anchored
|
|
48
|
+
* on both ends so a literal secret cannot ride along with a reference
|
|
49
|
+
* (`'secret${VAR}'`), and restricted to plausible variable names so an
|
|
50
|
+
* unresolvable reference like `'${ }'` fails here rather than as an
|
|
51
|
+
* authentication error on the runner.
|
|
52
|
+
*/
|
|
53
|
+
const ENV_VAR_REFERENCE_RE = /^\$\{[A-Za-z_][A-Za-z0-9_]*\}$/;
|
|
54
|
+
/**
|
|
55
|
+
* Upstream names are plain labels: leading alphanumeric, then
|
|
56
|
+
* alphanumerics, `-` and `_`. Anything fancier serves no purpose and
|
|
57
|
+
* invites trouble — an own `__proto__` key, for one, cannot round-trip
|
|
58
|
+
* through a plain object rebuild.
|
|
59
|
+
*/
|
|
60
|
+
const UPSTREAM_NAME_RE = /^[A-Za-z0-9][A-Za-z0-9_-]*$/;
|
|
61
|
+
function isPlainObject(value) {
|
|
62
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A key the schema does not define is more likely a typo (`authh`) than
|
|
66
|
+
* an intention, and ignoring it silently disables whatever the user meant
|
|
67
|
+
* to configure, surfacing only as an install failure on the runner.
|
|
68
|
+
*/
|
|
69
|
+
function rejectUnknownKeys(context, value, known) {
|
|
70
|
+
for (const key of Object.keys(value)) {
|
|
71
|
+
if (!known.includes(key)) {
|
|
72
|
+
throw new Error(`${context}: unknown field '${key}' (expected only: ${known.map(k => `'${k}'`).join(', ')})`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Validates the value of `runner.registries` and returns it typed. All
|
|
78
|
+
* failures throw a plain `Error` whose message names the offending part
|
|
79
|
+
* relative to `runner.registries`; the config loader wraps it with the
|
|
80
|
+
* full config path. Invalid URLs and tokens are deliberately never echoed
|
|
81
|
+
* back — a malformed registry URL may carry an inline credential.
|
|
82
|
+
*
|
|
83
|
+
* Plain-JS configs bypass the TypeScript type, so the shape must be
|
|
84
|
+
* enforced at runtime, exactly as `validateBundle` does for
|
|
85
|
+
* `bundle.packages`.
|
|
86
|
+
*/
|
|
87
|
+
export function validateRegistries(value) {
|
|
88
|
+
if (!isPlainObject(value)) {
|
|
89
|
+
throw new Error(`must be an object`);
|
|
90
|
+
}
|
|
91
|
+
rejectUnknownKeys(`'runner.registries'`, value, ['upstreams', 'packages']);
|
|
92
|
+
const { upstreams, packages } = value;
|
|
93
|
+
if (!isPlainObject(upstreams)) {
|
|
94
|
+
throw new Error(`'upstreams' must be an object mapping upstream names to { url, auth? }`);
|
|
95
|
+
}
|
|
96
|
+
const upstreamNames = Object.keys(upstreams);
|
|
97
|
+
if (upstreamNames.length === 0) {
|
|
98
|
+
throw new Error(`'upstreams' must define at least one upstream`);
|
|
99
|
+
}
|
|
100
|
+
for (const name of upstreamNames) {
|
|
101
|
+
validateUpstream(name, upstreams[name]);
|
|
102
|
+
}
|
|
103
|
+
if (!Array.isArray(packages)) {
|
|
104
|
+
throw new Error(`'packages' must be an array of { pattern, upstreams } routing rules`);
|
|
105
|
+
}
|
|
106
|
+
let lastPattern;
|
|
107
|
+
for (const [index, rule] of packages.entries()) {
|
|
108
|
+
const { pattern } = validatePackageRoutingRule(index, rule, upstreamNames);
|
|
109
|
+
// First match wins, so nothing past a match-all rule could ever
|
|
110
|
+
// apply. Requiring the match-all to be the final rule both guarantees
|
|
111
|
+
// every package a route and keeps silently dead rules out of the
|
|
112
|
+
// config. The final-rule check below also rejects an empty rule list.
|
|
113
|
+
if (pattern === MATCH_ALL_PATTERN && index !== packages.length - 1) {
|
|
114
|
+
throw new Error(`packages[${index}]: rules after a '${MATCH_ALL_PATTERN}' match-all rule can never apply `
|
|
115
|
+
+ `(the first matching rule wins); move the match-all rule last`);
|
|
116
|
+
}
|
|
117
|
+
lastPattern = pattern;
|
|
118
|
+
}
|
|
119
|
+
if (lastPattern !== MATCH_ALL_PATTERN) {
|
|
120
|
+
throw new Error(`'packages' must end with a match-all rule ({ pattern: '${MATCH_ALL_PATTERN}', ... }) `
|
|
121
|
+
+ `so that every package has a route`);
|
|
122
|
+
}
|
|
123
|
+
return value;
|
|
124
|
+
}
|
|
125
|
+
function validateUpstream(name, value) {
|
|
126
|
+
if (!UPSTREAM_NAME_RE.test(name)) {
|
|
127
|
+
throw new Error(`upstream name '${name}' is invalid: names must start with a letter or digit `
|
|
128
|
+
+ `and contain only letters, digits, '-' and '_'`);
|
|
129
|
+
}
|
|
130
|
+
if (!isPlainObject(value)) {
|
|
131
|
+
throw new Error(`upstream '${name}' must be an object with a 'url'`);
|
|
132
|
+
}
|
|
133
|
+
rejectUnknownKeys(`upstream '${name}'`, value, ['url', 'auth']);
|
|
134
|
+
const { url, auth } = value;
|
|
135
|
+
const parsedUrl = typeof url === 'string' ? parseComposableUrl(url) : undefined;
|
|
136
|
+
if (parsedUrl === undefined) {
|
|
137
|
+
throw new Error(`upstream '${name}': 'url' must be ${COMPOSABLE_URL_REQUIREMENT}`);
|
|
138
|
+
}
|
|
139
|
+
// An inline credential would ship in plaintext inside the uploaded code
|
|
140
|
+
// bundle — the exact outcome the ${VAR}-only rule on auth tokens exists
|
|
141
|
+
// to prevent. The URL is not echoed for the same reason.
|
|
142
|
+
if (parsedUrl.username !== '' || parsedUrl.password !== '') {
|
|
143
|
+
throw new Error(`upstream '${name}': 'url' must not contain credentials; `
|
|
144
|
+
+ `use auth: { type: 'bearer', token: '\${VAR}' } instead`);
|
|
145
|
+
}
|
|
146
|
+
if (auth === undefined) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (!isPlainObject(auth)) {
|
|
150
|
+
throw new Error(`upstream '${name}': 'auth' must be an object if set`);
|
|
151
|
+
}
|
|
152
|
+
rejectUnknownKeys(`upstream '${name}': 'auth'`, auth, ['type', 'token']);
|
|
153
|
+
if (auth.type !== 'bearer') {
|
|
154
|
+
throw new Error(`upstream '${name}': 'auth.type' must be 'bearer'`);
|
|
155
|
+
}
|
|
156
|
+
if (typeof auth.token !== 'string' || !ENV_VAR_REFERENCE_RE.test(auth.token)) {
|
|
157
|
+
throw new Error(`upstream '${name}': 'auth.token' must be exactly one environment variable reference in \${VAR} syntax `
|
|
158
|
+
+ `(e.g. '\${NPM_TOKEN}'). The variable is resolved from the check's environment variables on the `
|
|
159
|
+
+ `Checkly runner; any literal content would bake a secret into the code bundle`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
function validatePackageRoutingRule(index, value, upstreamNames) {
|
|
163
|
+
if (!isPlainObject(value)) {
|
|
164
|
+
throw new Error(`packages[${index}] must be an object with 'pattern' and 'upstreams'`);
|
|
165
|
+
}
|
|
166
|
+
rejectUnknownKeys(`packages[${index}]`, value, ['pattern', 'upstreams']);
|
|
167
|
+
const { pattern, upstreams } = value;
|
|
168
|
+
if (typeof pattern !== 'string') {
|
|
169
|
+
throw new Error(`packages[${index}]: 'pattern' must be a string`);
|
|
170
|
+
}
|
|
171
|
+
let parsed;
|
|
172
|
+
try {
|
|
173
|
+
parsed = parsePackageNamePattern(pattern);
|
|
174
|
+
}
|
|
175
|
+
catch (cause) {
|
|
176
|
+
throw new Error(`packages[${index}]: ${cause.message}`, { cause });
|
|
177
|
+
}
|
|
178
|
+
if (parsed.exclude) {
|
|
179
|
+
throw new Error(`packages[${index}]: exclusion patterns ('!') are not supported in routing rules; `
|
|
180
|
+
+ `each rule stands alone, so there is nothing for an exclusion to subtract from`);
|
|
181
|
+
}
|
|
182
|
+
if (!Array.isArray(upstreams) || upstreams.length === 0) {
|
|
183
|
+
throw new Error(`packages[${index}]: 'upstreams' must be a non-empty array of upstream names`);
|
|
184
|
+
}
|
|
185
|
+
for (const name of upstreams) {
|
|
186
|
+
if (typeof name !== 'string' || !upstreamNames.includes(name)) {
|
|
187
|
+
throw new Error(`packages[${index}]: upstream '${String(name)}' is not defined under 'upstreams' `
|
|
188
|
+
+ `(defined: ${upstreamNames.map(known => `'${known}'`).join(', ')})`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return value;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Serializes a validated configuration into the canonical contents of
|
|
195
|
+
* {@link REGISTRIES_ARCHIVE_PATH}. Only known fields are written, and
|
|
196
|
+
* upstream names are sorted so the output (and with it the dependency
|
|
197
|
+
* cache hash) does not change when the config file merely reorders
|
|
198
|
+
* entries. Rule order is semantic (first match wins) and is preserved
|
|
199
|
+
* as-is. Upstream URLs are written in WHATWG-normalized form with a
|
|
200
|
+
* trailing slash guaranteed, so runners can compose package paths onto
|
|
201
|
+
* them by concatenation. Auth tokens are written unexpanded: the `${VAR}`
|
|
202
|
+
* reference is resolved on the runner.
|
|
203
|
+
*/
|
|
204
|
+
export function serializeRegistries(registries) {
|
|
205
|
+
const upstreams = {};
|
|
206
|
+
for (const name of Object.keys(registries.upstreams).sort()) {
|
|
207
|
+
const { url, auth } = registries.upstreams[name];
|
|
208
|
+
const upstream = { url: normalizeUpstreamUrl(url) };
|
|
209
|
+
if (auth !== undefined) {
|
|
210
|
+
upstream.auth = { type: auth.type, token: auth.token };
|
|
211
|
+
}
|
|
212
|
+
upstreams[name] = upstream;
|
|
213
|
+
}
|
|
214
|
+
const packages = registries.packages.map(({ pattern, upstreams }) => ({
|
|
215
|
+
pattern,
|
|
216
|
+
upstreams: [...upstreams],
|
|
217
|
+
}));
|
|
218
|
+
return JSON.stringify({
|
|
219
|
+
version: REGISTRIES_FILE_VERSION,
|
|
220
|
+
upstreams,
|
|
221
|
+
packages,
|
|
222
|
+
}, null, 2) + '\n';
|
|
223
|
+
}
|
|
224
|
+
function normalizeUpstreamUrl(url) {
|
|
225
|
+
const parsed = parseComposableUrl(url);
|
|
226
|
+
if (parsed === undefined) {
|
|
227
|
+
// Serialization only runs on validated configurations.
|
|
228
|
+
throw new Error(`upstream URL must be ${COMPOSABLE_URL_REQUIREMENT}`);
|
|
229
|
+
}
|
|
230
|
+
return parsed.href.endsWith('/') ? parsed.href : `${parsed.href}/`;
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=registries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registries.js","sourceRoot":"","sources":["../../../src/services/runner/registries.ts"],"names":[],"mappings":"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"}
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "checkly",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.23.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Checkly CLI",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
},
|
|
97
97
|
"homepage": "https://github.com/checkly/checkly-cli#readme",
|
|
98
98
|
"dependencies": {
|
|
99
|
-
"@oclif/core": "^4.
|
|
99
|
+
"@oclif/core": "^4.14.0",
|
|
100
100
|
"@oclif/plugin-help": "^6.2.58",
|
|
101
101
|
"@oclif/plugin-warn-if-update-available": "^3.1.73",
|
|
102
102
|
"@typescript-eslint/typescript-estree": "^8.67.0",
|
|
@@ -132,19 +132,19 @@
|
|
|
132
132
|
"semver": "^7.8.5",
|
|
133
133
|
"socks-proxy-agent": "^10.1.0",
|
|
134
134
|
"string-width": "^8.2.2",
|
|
135
|
-
"uuid": "^14.0.
|
|
135
|
+
"uuid": "^14.0.2",
|
|
136
136
|
"yaml": "^2.9.0"
|
|
137
137
|
},
|
|
138
138
|
"devDependencies": {
|
|
139
139
|
"@playwright/test": "^1.62.1",
|
|
140
140
|
"@types/archiver": "^8.0.0",
|
|
141
141
|
"@types/debug": "^4.1.13",
|
|
142
|
-
"@types/luxon": "^3.7.
|
|
142
|
+
"@types/luxon": "^3.7.5",
|
|
143
143
|
"@types/node": "^22.19.17",
|
|
144
144
|
"@types/prompts": "^2.4.9",
|
|
145
145
|
"@types/semver": "^7.8.0",
|
|
146
146
|
"@types/ws": "^8.5.5",
|
|
147
|
-
"config": "^5.0.
|
|
147
|
+
"config": "^5.0.1",
|
|
148
148
|
"cross-env": "^10.1.0",
|
|
149
149
|
"nanoid": "^5.1.16",
|
|
150
150
|
"oclif": "^4.23.30",
|