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.
Files changed (85) hide show
  1. package/dist/ai-context/skills-command/references/configure-playwright-checks.md +24 -19
  2. package/dist/commands/debug/parse-project.js +3 -0
  3. package/dist/commands/debug/parse-project.js.map +1 -1
  4. package/dist/commands/deploy.js +3 -0
  5. package/dist/commands/deploy.js.map +1 -1
  6. package/dist/commands/pw-test.js +3 -0
  7. package/dist/commands/pw-test.js.map +1 -1
  8. package/dist/commands/test.js +3 -0
  9. package/dist/commands/test.js.map +1 -1
  10. package/dist/config.d.ts +1 -1
  11. package/dist/config.js.map +1 -1
  12. package/dist/constructs/playwright-check-bundle.d.ts +5 -5
  13. package/dist/constructs/playwright-check-bundle.js.map +1 -1
  14. package/dist/constructs/project.js +5 -2
  15. package/dist/constructs/project.js.map +1 -1
  16. package/dist/constructs/session.d.ts +2 -1
  17. package/dist/constructs/session.js +2 -1
  18. package/dist/constructs/session.js.map +1 -1
  19. package/dist/index.d.ts +1 -0
  20. package/dist/services/check-parser/bundler.d.ts +79 -8
  21. package/dist/services/check-parser/bundler.js +567 -9
  22. package/dist/services/check-parser/bundler.js.map +1 -1
  23. package/dist/services/check-parser/cache-hash.d.ts +141 -17
  24. package/dist/services/check-parser/cache-hash.js +78 -12
  25. package/dist/services/check-parser/cache-hash.js.map +1 -1
  26. package/dist/services/check-parser/faux-package.d.ts +5 -0
  27. package/dist/services/check-parser/faux-package.js +9 -1
  28. package/dist/services/check-parser/faux-package.js.map +1 -1
  29. package/dist/services/check-parser/lockfile-pruner.d.ts +104 -0
  30. package/dist/services/check-parser/lockfile-pruner.js +1107 -0
  31. package/dist/services/check-parser/lockfile-pruner.js.map +1 -0
  32. package/dist/services/check-parser/package-files/package-manager.d.ts +34 -0
  33. package/dist/services/check-parser/package-files/package-manager.js +131 -3
  34. package/dist/services/check-parser/package-files/package-manager.js.map +1 -1
  35. package/dist/services/check-parser/package-files/pnpmfile.d.ts +40 -0
  36. package/dist/services/check-parser/package-files/pnpmfile.js +322 -0
  37. package/dist/services/check-parser/package-files/pnpmfile.js.map +1 -0
  38. package/dist/services/check-parser/package-files/resolver.d.ts +6 -1
  39. package/dist/services/check-parser/package-files/resolver.js +34 -0
  40. package/dist/services/check-parser/package-files/resolver.js.map +1 -1
  41. package/dist/services/check-parser/package-files/workspace.d.ts +16 -1
  42. package/dist/services/check-parser/package-files/workspace.js +17 -2
  43. package/dist/services/check-parser/package-files/workspace.js.map +1 -1
  44. package/dist/services/check-parser/package-prune.d.ts +68 -0
  45. package/dist/services/check-parser/package-prune.js +274 -0
  46. package/dist/services/check-parser/package-prune.js.map +1 -0
  47. package/dist/services/check-parser/parser.js +9 -0
  48. package/dist/services/check-parser/parser.js.map +1 -1
  49. package/dist/services/check-parser/patched-dependencies.d.ts +133 -0
  50. package/dist/services/check-parser/patched-dependencies.js +428 -0
  51. package/dist/services/check-parser/patched-dependencies.js.map +1 -0
  52. package/dist/services/checkly-config-loader.d.ts +164 -10
  53. package/dist/services/checkly-config-loader.js +39 -0
  54. package/dist/services/checkly-config-loader.js.map +1 -1
  55. package/dist/services/embedded-packages/cache.d.ts +8 -4
  56. package/dist/services/embedded-packages/cache.js +27 -6
  57. package/dist/services/embedded-packages/cache.js.map +1 -1
  58. package/dist/services/embedded-packages/diagnostics.d.ts +129 -0
  59. package/dist/services/embedded-packages/diagnostics.js +212 -0
  60. package/dist/services/embedded-packages/diagnostics.js.map +1 -0
  61. package/dist/services/embedded-packages/lockfile-filter.d.ts +20 -0
  62. package/dist/services/embedded-packages/lockfile-filter.js +40 -0
  63. package/dist/services/embedded-packages/lockfile-filter.js.map +1 -0
  64. package/dist/services/embedded-packages/lockfile-packages.d.ts +31 -2
  65. package/dist/services/embedded-packages/lockfile-packages.js +234 -30
  66. package/dist/services/embedded-packages/lockfile-packages.js.map +1 -1
  67. package/dist/services/embedded-packages/materializer.d.ts +19 -5
  68. package/dist/services/embedded-packages/materializer.js +445 -91
  69. package/dist/services/embedded-packages/materializer.js.map +1 -1
  70. package/dist/services/embedded-packages/npmrc.d.ts +163 -21
  71. package/dist/services/embedded-packages/npmrc.js +440 -75
  72. package/dist/services/embedded-packages/npmrc.js.map +1 -1
  73. package/dist/services/embedded-packages/spec.d.ts +89 -17
  74. package/dist/services/embedded-packages/spec.js +199 -30
  75. package/dist/services/embedded-packages/spec.js.map +1 -1
  76. package/dist/services/embedded-packages/url.d.ts +39 -0
  77. package/dist/services/embedded-packages/url.js +60 -0
  78. package/dist/services/embedded-packages/url.js.map +1 -0
  79. package/dist/services/playwright-project-bundler.js +27 -23
  80. package/dist/services/playwright-project-bundler.js.map +1 -1
  81. package/dist/services/runner/registries.d.ts +144 -0
  82. package/dist/services/runner/registries.js +232 -0
  83. package/dist/services/runner/registries.js.map +1 -0
  84. package/oclif.manifest.json +1 -1
  85. package/package.json +5 -5
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * as constructs from './constructs/index.js';
2
2
  export { defineConfig } from './config.js';
3
3
  export type { ChecklyConfig } from './services/checkly-config-loader.js';
4
+ export type { Registries as RunnerRegistries, Upstream as RunnerRegistryUpstream, UpstreamAuth as RunnerRegistryUpstreamAuth, PackageRoutingRule as RunnerRegistryPackageRoutingRule, } from './services/runner/registries.js';
@@ -1,6 +1,9 @@
1
- import { EmbeddedPackagesMaterializer } from '../embedded-packages/materializer.js';
2
- import { ComputeWorkspaceCacheHashOptions } from './cache-hash.js';
1
+ import { EmbeddedPackagesMaterializer, PlannedTarball } from '../embedded-packages/materializer.js';
2
+ import { ComputeWorkspaceCacheHashOptions, EmbeddedPackageInput } from './cache-hash.js';
3
+ import { BundlePackagesPrune } from './package-prune.js';
4
+ import { PackageManager } from './package-files/package-manager.js';
3
5
  import { File } from './parser.js';
6
+ import { Registries } from '../runner/registries.js';
4
7
  import { Workspace } from './package-files/workspace.js';
5
8
  export interface CreateBundleArchiveOptions {
6
9
  tempDir?: string;
@@ -60,23 +63,76 @@ export interface CreateBundlerOptions {
60
63
  stripPrefix?: string;
61
64
  }
62
65
  export type CreateBundlerForWorkspaceOptions = Omit<CreateBundlerOptions, 'cacheHash' | 'stripPrefix'> & Omit<ComputeWorkspaceCacheHashOptions, 'embeddedPackages'> & {
66
+ /**
67
+ * The project's `runner.registries` option, when set. Serialized into
68
+ * the bundle as {@link REGISTRIES_ARCHIVE_PATH} during finalize() so
69
+ * Checkly runners route the bundle's package installs through the
70
+ * configured upstreams, and mixed into the cache hash: repointing a
71
+ * registry changes the runner's install inputs without necessarily
72
+ * touching the lockfile.
73
+ */
74
+ runnerRegistries?: Registries;
63
75
  /**
64
76
  * The materializer for the project's `bundle.packages.embed` option,
65
- * when set. Its resolved tarball set (name, version, integrity) is mixed
66
- * into the cache hash: embedded tarballs change the runner's install-step
67
- * inputs without necessarily touching the lockfile, so a changed embed
68
- * set must invalidate the dependency cache.
77
+ * when set. The tarballs are materialized during finalize(), after the
78
+ * bundled lockfile has been pruned, so only tarballs the shipped
79
+ * lockfile still references are downloaded and shipped. That same
80
+ * filtered set (name, version, integrity) is mixed into the cache hash:
81
+ * embedded tarballs change the runner's install-step inputs without
82
+ * necessarily touching the lockfile, so a changed embed set must
83
+ * invalidate the dependency cache.
69
84
  */
70
85
  embeddedPackagesMaterializer?: EmbeddedPackagesMaterializer;
86
+ /**
87
+ * The workspace's package manager. When it supports a lockfile-only
88
+ * install, the bundled lockfile is pruned during finalize() to match the
89
+ * bundle's actual set of manifests.
90
+ */
91
+ packageManager: PackageManager;
92
+ /**
93
+ * The project's `bundle.packages.prune` option, when set. Matching
94
+ * entries are removed from the workspace manifests shipped in the
95
+ * bundle during finalize(), before lockfile pruning, so the removed
96
+ * dependencies fall out of the pruned lockfile too. The rewritten
97
+ * manifests are mixed into the cache hash the same way patch-rewritten
98
+ * manifests are. Because the rewritten manifests only make sense next
99
+ * to a matching lockfile, the rewrite is rolled back when a bundled
100
+ * lockfile cannot be pruned in the same run.
101
+ */
102
+ packagePrune?: BundlePackagesPrune;
71
103
  };
104
+ /**
105
+ * Maps planned tarballs to cache-hash records. yarn.lock plans carry no SRI
106
+ * tarball integrity (it is resolved from registry metadata only at
107
+ * materialization time), so their records use the lockfile's own checksum —
108
+ * an equally stable content pin that is known at plan time, keeping the
109
+ * eager placeholder hash and the finalize hash consistent. The parsers
110
+ * guarantee one of the two hashes is always present; the empty-string
111
+ * fallback only satisfies the type.
112
+ */
113
+ export declare function embeddedPackageHashInputs(tarballs: PlannedTarball[] | undefined): EmbeddedPackageInput[] | undefined;
72
114
  export declare class Bundler {
73
115
  #private;
74
116
  private constructor();
117
+ /**
118
+ * Creates a bundler without a workspace context. Workspace-dependent
119
+ * finalize() behavior — lockfile pruning, embedded package
120
+ * materialization (`bundle.packages.embed`) and the cache-hash recompute
121
+ * — only happens for bundlers built with {@link createForWorkspace}; a
122
+ * plain bundler archives exactly the files registered into it.
123
+ */
75
124
  static create(options: CreateBundlerOptions): Promise<Bundler>;
76
- static createForWorkspace(workspace: Workspace, options?: CreateBundlerForWorkspaceOptions): Promise<Bundler>;
125
+ static createForWorkspace(workspace: Workspace, options: CreateBundlerForWorkspaceOptions): Promise<Bundler>;
77
126
  get marker(): BundlePathMarker;
78
127
  updateMarker(newValue: string): void;
79
- get cacheHash(): string;
128
+ /**
129
+ * The dependency cache hash. A mutable holder rather than a plain string:
130
+ * consumers copy it into check payloads during bundle(), but the final
131
+ * value — reflecting faux manifests and a possibly pruned lockfile — is
132
+ * only known once finalize() has run, the same ordering problem
133
+ * {@link BundlePathMarker} solves for the archive path.
134
+ */
135
+ get cacheHash(): CacheHashMarker;
80
136
  /**
81
137
  * Whether any files have been registered for bundling. Only Playwright check
82
138
  * suites register files (see playwright-check.ts), so an empty bundler means the
@@ -92,3 +148,18 @@ export declare class BundlePathMarker {
92
148
  updateValue(newValue: string): void;
93
149
  toJSON(): string;
94
150
  }
151
+ /**
152
+ * Mutable holder for the dependency cache hash, serialized as a plain
153
+ * string. See {@link Bundler.cacheHash} for why a holder is needed.
154
+ *
155
+ * Deliberately a standalone class rather than a subclass of
156
+ * {@link BundlePathMarker}: the own `#value` field makes the two marker
157
+ * types nominally incompatible, so a bundle path cannot be passed where the
158
+ * cache hash is expected (or vice versa) without a compile error.
159
+ */
160
+ export declare class CacheHashMarker {
161
+ #private;
162
+ constructor(initialValue: string);
163
+ updateValue(newValue: string): void;
164
+ toJSON(): string;
165
+ }