ccqa 1.36.0 → 1.37.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.
@@ -682,6 +682,32 @@ declare const ReportSpecResultSchema: z.ZodObject<{
682
682
  }>;
683
683
  sizeBytes: z.ZodNumber;
684
684
  }, z.core.$strip>>>;
685
+ coverage: z.ZodOptional<z.ZodObject<{
686
+ files: z.ZodArray<z.ZodString>;
687
+ frontendFiles: z.ZodNumber;
688
+ backendFiles: z.ZodNumber;
689
+ backendReported: z.ZodBoolean;
690
+ frontendReported: z.ZodBoolean;
691
+ frontendStopped: z.ZodBoolean;
692
+ actorWindows: z.ZodDefault<z.ZodArray<z.ZodObject<{
693
+ key: z.ZodString;
694
+ events: z.ZodNumber;
695
+ }, z.core.$strip>>>;
696
+ excludedDependencies: z.ZodNumber;
697
+ gaps: z.ZodObject<{
698
+ unattributed: z.ZodNumber;
699
+ unmappedScripts: z.ZodNumber;
700
+ unmappedRanges: z.ZodNumber;
701
+ outsideProject: z.ZodNumber;
702
+ unresolvedSources: z.ZodNumber;
703
+ uninstrumentedFiles: z.ZodNumber;
704
+ uninstrumentedProcesses: z.ZodNumber;
705
+ droppedPushes: z.ZodNumber;
706
+ unmappedActorEvents: z.ZodDefault<z.ZodNumber>;
707
+ outsideWindowEvents: z.ZodDefault<z.ZodNumber>;
708
+ }, z.core.$strip>;
709
+ }, z.core.$strip>>;
710
+ coverageUnavailable: z.ZodOptional<z.ZodString>;
685
711
  liveRun: z.ZodNullable<z.ZodObject<{
686
712
  runId: z.ZodString;
687
713
  sessionName: z.ZodString;
@@ -762,6 +788,10 @@ declare const RunReportDataSchema: z.ZodObject<{
762
788
  outputTokens: z.ZodNullable<z.ZodNumber>;
763
789
  models: z.ZodArray<z.ZodString>;
764
790
  }, z.core.$strip>>>;
791
+ coverageUniverse: z.ZodOptional<z.ZodObject<{
792
+ include: z.ZodArray<z.ZodString>;
793
+ files: z.ZodArray<z.ZodString>;
794
+ }, z.core.$strip>>;
765
795
  results: z.ZodArray<z.ZodObject<{
766
796
  feature: z.ZodString;
767
797
  spec: z.ZodString;
@@ -866,6 +896,32 @@ declare const RunReportDataSchema: z.ZodObject<{
866
896
  }>;
867
897
  sizeBytes: z.ZodNumber;
868
898
  }, z.core.$strip>>>;
899
+ coverage: z.ZodOptional<z.ZodObject<{
900
+ files: z.ZodArray<z.ZodString>;
901
+ frontendFiles: z.ZodNumber;
902
+ backendFiles: z.ZodNumber;
903
+ backendReported: z.ZodBoolean;
904
+ frontendReported: z.ZodBoolean;
905
+ frontendStopped: z.ZodBoolean;
906
+ actorWindows: z.ZodDefault<z.ZodArray<z.ZodObject<{
907
+ key: z.ZodString;
908
+ events: z.ZodNumber;
909
+ }, z.core.$strip>>>;
910
+ excludedDependencies: z.ZodNumber;
911
+ gaps: z.ZodObject<{
912
+ unattributed: z.ZodNumber;
913
+ unmappedScripts: z.ZodNumber;
914
+ unmappedRanges: z.ZodNumber;
915
+ outsideProject: z.ZodNumber;
916
+ unresolvedSources: z.ZodNumber;
917
+ uninstrumentedFiles: z.ZodNumber;
918
+ uninstrumentedProcesses: z.ZodNumber;
919
+ droppedPushes: z.ZodNumber;
920
+ unmappedActorEvents: z.ZodDefault<z.ZodNumber>;
921
+ outsideWindowEvents: z.ZodDefault<z.ZodNumber>;
922
+ }, z.core.$strip>;
923
+ }, z.core.$strip>>;
924
+ coverageUnavailable: z.ZodOptional<z.ZodString>;
869
925
  liveRun: z.ZodNullable<z.ZodObject<{
870
926
  runId: z.ZodString;
871
927
  sessionName: z.ZodString;
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccqa",
3
- "version": "1.36.0",
3
+ "version": "1.37.0",
4
4
  "type": "module",
5
5
  "description": "Browser test recorder powered by Claude Code and agent-browser",
6
6
  "repository": {
@@ -1,23 +1,22 @@
1
1
  /// <reference types="node" />
2
2
  import * as fs from "node:fs";
3
3
  import { URL as URL$1 } from "node:url";
4
- import { ZlibOptions } from "node:zlib";
5
4
  import * as http from "node:http";
6
5
  import { Agent, ClientRequest, ClientRequestArgs, OutgoingHttpHeaders } from "node:http";
6
+ import { ZlibOptions } from "node:zlib";
7
+ import * as net from "node:net";
7
8
  import { Http2SecureServer } from "node:http2";
8
9
  import { EventEmitter } from "node:events";
9
10
  import { Server as Server$1, ServerOptions as ServerOptions$1 } from "node:https";
10
- import * as net from "node:net";
11
11
  import { Duplex, DuplexOptions, Stream } from "node:stream";
12
12
  import esbuild from "esbuild";
13
13
  import { SecureContextOptions } from "node:tls";
14
- import * as Terser from "terser";
15
14
  import DartSass from "sass";
16
15
  import SassEmbedded from "sass-embedded";
17
16
  import Less from "less";
18
17
  import Stylus from "stylus";
19
18
 
20
- //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_yaml@2.9.0/node_modules/vite/types/hmrPayload.d.ts
19
+ //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_terser@5.50.0_yaml@2.9.0/node_modules/vite/types/hmrPayload.d.ts
21
20
  type HotPayload = ConnectedPayload | PingPayload | UpdatePayload | FullReloadPayload | CustomPayload | ErrorPayload | PrunePayload;
22
21
  interface ConnectedPayload {
23
22
  type: 'connected';
@@ -82,7 +81,7 @@ interface ErrorPayload {
82
81
  };
83
82
  }
84
83
  //#endregion
85
- //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_yaml@2.9.0/node_modules/vite/dist/node/chunks/moduleRunnerTransport.d.ts
84
+ //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_terser@5.50.0_yaml@2.9.0/node_modules/vite/dist/node/chunks/moduleRunnerTransport.d.ts
86
85
  //#region src/shared/invokeMethods.d.ts
87
86
  interface FetchFunctionOptions {
88
87
  cached?: boolean;
@@ -135,7 +134,7 @@ interface ViteFetchResult {
135
134
  invalidate: boolean;
136
135
  }
137
136
  //#endregion
138
- //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_yaml@2.9.0/node_modules/vite/types/customEvent.d.ts
137
+ //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_terser@5.50.0_yaml@2.9.0/node_modules/vite/types/customEvent.d.ts
139
138
  interface CustomEventMap {
140
139
  // client events
141
140
  'vite:beforeUpdate': UpdatePayload;
@@ -1554,7 +1553,7 @@ interface CodegenOptions {
1554
1553
  */
1555
1554
  removeWhitespace?: boolean;
1556
1555
  }
1557
- interface CompressOptions {
1556
+ interface CompressOptions$1 {
1558
1557
  /**
1559
1558
  * Set desired EcmaScript standard version for output.
1560
1559
  *
@@ -1636,7 +1635,7 @@ interface CompressOptionsKeepNames {
1636
1635
  */
1637
1636
  class: boolean;
1638
1637
  }
1639
- interface MangleOptions {
1638
+ interface MangleOptions$1 {
1640
1639
  /**
1641
1640
  * Pass `true` to mangle names declared in the top level scope.
1642
1641
  *
@@ -1666,11 +1665,11 @@ interface MangleOptionsKeepNames {
1666
1665
  */
1667
1666
  class: boolean;
1668
1667
  }
1669
- interface MinifyOptions$1 {
1668
+ interface MinifyOptions$2 {
1670
1669
  /** Use when minifying an ES module. */
1671
1670
  module?: boolean;
1672
- compress?: boolean | CompressOptions;
1673
- mangle?: boolean | MangleOptions;
1671
+ compress?: boolean | CompressOptions$1;
1672
+ mangle?: boolean | MangleOptions$1;
1674
1673
  codegen?: boolean | CodegenOptions;
1675
1674
  sourcemap?: boolean;
1676
1675
  }
@@ -1765,7 +1764,7 @@ interface ParserOptions {
1765
1764
  */
1766
1765
  showSemanticErrors?: boolean;
1767
1766
  }
1768
- interface SourceMap$2 {
1767
+ interface SourceMap$3 {
1769
1768
  file?: string;
1770
1769
  mappings: string;
1771
1770
  names: Array<string>;
@@ -2454,7 +2453,7 @@ interface BindingEnhancedTransformOptions {
2454
2453
  */
2455
2454
  tsconfig?: boolean | BindingTsconfigRawOptions;
2456
2455
  /** An input source map to collapse with the output source map. */
2457
- inputMap?: SourceMap$2;
2456
+ inputMap?: SourceMap$3;
2458
2457
  }
2459
2458
  /** Result of the enhanced transform API. */
2460
2459
  interface BindingHookResolveIdExtraArgs {
@@ -2781,7 +2780,7 @@ interface OutputAsset extends ExternalMemoryHandle {
2781
2780
  names: string[];
2782
2781
  }
2783
2782
  /** @category Plugin APIs */
2784
- interface SourceMap$1 {
2783
+ interface SourceMap$2 {
2785
2784
  file: string;
2786
2785
  mappings: string;
2787
2786
  names: string[];
@@ -2863,7 +2862,7 @@ interface OutputChunk extends ExternalMemoryHandle {
2863
2862
  isDynamicEntry: boolean;
2864
2863
  moduleIds: string[];
2865
2864
  /** The source map of this chunk if present. */
2866
- map: SourceMap$1 | null;
2865
+ map: SourceMap$2 | null;
2867
2866
  sourcemapFileName: string | null;
2868
2867
  /** The preliminary file name of this chunk with hash placeholders. */
2869
2868
  preliminaryFileName: string;
@@ -2963,7 +2962,7 @@ type GlobalsFunction = (name: string) => string;
2963
2962
  type CodeSplittingNameFunction = (moduleId: string, ctx: ChunkingContext) => string | NullValue;
2964
2963
  /** @inline */
2965
2964
  type CodeSplittingTestFunction = (id: string) => boolean | undefined | void;
2966
- type MinifyOptions = Omit<MinifyOptions$1, "module" | "sourcemap">;
2965
+ type MinifyOptions$1 = Omit<MinifyOptions$2, "module" | "sourcemap">;
2967
2966
  interface CommentsOptions {
2968
2967
  /**
2969
2968
  * Comments that contain `@license`, `@preserve` or start with `//!` or `/*!`
@@ -3252,7 +3251,7 @@ interface OutputOptions {
3252
3251
  *
3253
3252
  * @default 'dce-only'
3254
3253
  */
3255
- minify?: boolean | "dce-only" | MinifyOptions;
3254
+ minify?: boolean | "dce-only" | MinifyOptions$1;
3256
3255
  /**
3257
3256
  * Specifies the global variable name that contains the exports of `umd` / `iife` {@link OutputOptions.format | formats}.
3258
3257
  *
@@ -4291,7 +4290,7 @@ interface NormalizedOutputOptions {
4291
4290
  /** @see {@linkcode OutputOptions.sourcemapPathTransform | sourcemapPathTransform} */
4292
4291
  sourcemapPathTransform: SourcemapPathTransformOption | undefined;
4293
4292
  /** @see {@linkcode OutputOptions.minify | minify} */
4294
- minify: false | MinifyOptions | "dce-only";
4293
+ minify: false | MinifyOptions$1 | "dce-only";
4295
4294
  /**
4296
4295
  * @deprecated Use `comments.legal` instead.
4297
4296
  * @see {@linkcode OutputOptions.legalComments | legalComments}
@@ -4626,7 +4625,7 @@ interface EmittedPrebuiltChunk {
4626
4625
  /**
4627
4626
  * The corresponding source map for this chunk.
4628
4627
  */
4629
- map?: SourceMap$1;
4628
+ map?: SourceMap$2;
4630
4629
  sourcemapFileName?: string;
4631
4630
  /**
4632
4631
  * The module id of the facade module for this chunk, if any.
@@ -4797,7 +4796,7 @@ interface TransformPluginContext extends PluginContext {
4797
4796
  /**
4798
4797
  * Get the combined source maps of all previous plugins.
4799
4798
  */
4800
- getCombinedSourcemap(): SourceMap$1;
4799
+ getCombinedSourcemap(): SourceMap$2;
4801
4800
  } //#endregion
4802
4801
  //#region src/types/module-side-effects.d.ts
4803
4802
  interface ModuleSideEffectsRule {
@@ -4972,7 +4971,7 @@ interface ExistingRawSourceMap {
4972
4971
  x_google_ignoreList?: number[];
4973
4972
  }
4974
4973
  /** @inline @category Plugin APIs */
4975
- type SourceMapInput = ExistingRawSourceMap | string | null; //#endregion
4974
+ type SourceMapInput$1 = ExistingRawSourceMap | string | null; //#endregion
4976
4975
  //#region src/utils/error.d.ts
4977
4976
  /**
4978
4977
  * The error type that is thrown by Rolldown for the whole build.
@@ -5083,7 +5082,7 @@ interface SourceDescription extends SpecifiedModuleOptions, Partial<PartialNull<
5083
5082
  *
5084
5083
  * See [Source Code Transformations section](https://rolldown.rs/apis/plugin-api/transformations#source-code-transformations) for more details.
5085
5084
  */
5086
- map?: SourceMapInput;
5085
+ map?: SourceMapInput$1;
5087
5086
  moduleType?: ModuleType;
5088
5087
  }
5089
5088
  /** @inline */
@@ -5294,7 +5293,7 @@ interface FunctionPluginHooks {
5294
5293
  */
5295
5294
  [DEFINED_HOOK_NAMES.renderChunk]: (this: PluginContext, code: string, chunk: RenderedChunk, outputOptions: NormalizedOutputOptions, meta: RenderedChunkMeta) => NullValue | string | RolldownMagicString | {
5296
5295
  code: string | RolldownMagicString;
5297
- map?: SourceMapInput;
5296
+ map?: SourceMapInput$1;
5298
5297
  };
5299
5298
  /**
5300
5299
  * Can be used to augment the hash of individual chunks. Called for each Rolldown output chunk.
@@ -6230,13 +6229,13 @@ interface TransformOptions$1 extends BindingEnhancedTransformOptions {}
6230
6229
  * @category Utilities
6231
6230
  */
6232
6231
  //#endregion
6233
- //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_yaml@2.9.0/node_modules/vite/types/internal/esbuildOptions.d.ts
6232
+ //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_terser@5.50.0_yaml@2.9.0/node_modules/vite/types/internal/esbuildOptions.d.ts
6234
6233
  /* eslint-enable @typescript-eslint/ban-ts-comment */
6235
6234
  type EsbuildTarget = string | string[];
6236
6235
  type EsbuildTransformOptions = esbuild.TransformOptions;
6237
6236
  type DepsOptimizerEsbuildOptions = Omit<esbuild.BuildOptions, 'bundle' | 'entryPoints' | 'external' | 'write' | 'watch' | 'outdir' | 'outfile' | 'outbase' | 'outExtension' | 'metafile'>;
6238
6237
  //#endregion
6239
- //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_yaml@2.9.0/node_modules/vite/types/metadata.d.ts
6238
+ //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_terser@5.50.0_yaml@2.9.0/node_modules/vite/types/metadata.d.ts
6240
6239
  interface AssetMetadata {
6241
6240
  importedAssets: Set<string>;
6242
6241
  importedCss: Set<string>;
@@ -6279,16 +6278,293 @@ declare module 'rolldown' {
6279
6278
  }
6280
6279
  }
6281
6280
  //#endregion
6282
- //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_yaml@2.9.0/node_modules/vite/types/internal/terserOptions.d.ts
6281
+ //#region node_modules/.pnpm/@jridgewell+trace-mapping@0.3.31/node_modules/@jridgewell/trace-mapping/types/sourcemap-segment.d.mts
6282
+ type GeneratedColumn = number;
6283
+ type SourcesIndex = number;
6284
+ type SourceLine = number;
6285
+ type SourceColumn = number;
6286
+ type NamesIndex = number;
6287
+ type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];
6288
+ //#endregion
6289
+ //#region node_modules/.pnpm/@jridgewell+trace-mapping@0.3.31/node_modules/@jridgewell/trace-mapping/types/types.d.mts
6290
+ interface SourceMapV3 {
6291
+ file?: string | null;
6292
+ names: string[];
6293
+ sourceRoot?: string;
6294
+ sources: (string | null)[];
6295
+ sourcesContent?: (string | null)[];
6296
+ version: 3;
6297
+ ignoreList?: number[];
6298
+ }
6299
+ interface EncodedSourceMap extends SourceMapV3 {
6300
+ mappings: string;
6301
+ }
6302
+ interface DecodedSourceMap extends SourceMapV3 {
6303
+ mappings: SourceMapSegment[][];
6304
+ }
6305
+ interface Section {
6306
+ offset: {
6307
+ line: number;
6308
+ column: number;
6309
+ };
6310
+ map: EncodedSourceMap | DecodedSourceMap | SectionedSourceMap;
6311
+ }
6312
+ interface SectionedSourceMap {
6313
+ file?: string | null;
6314
+ sections: Section[];
6315
+ version: 3;
6316
+ }
6317
+ type XInput = {
6318
+ x_google_ignoreList?: SourceMapV3['ignoreList'];
6319
+ };
6320
+ type EncodedSourceMapXInput = EncodedSourceMap & XInput;
6321
+ type DecodedSourceMapXInput = DecodedSourceMap & XInput;
6322
+ type SectionedSourceMapXInput = Omit<SectionedSourceMap, 'sections'> & {
6323
+ sections: SectionXInput[];
6324
+ };
6325
+ type SectionXInput = Omit<Section, 'map'> & {
6326
+ map: SectionedSourceMapInput;
6327
+ };
6328
+ type SourceMapInput = string | EncodedSourceMapXInput | DecodedSourceMapXInput | TraceMap;
6329
+ type SectionedSourceMapInput = SourceMapInput | SectionedSourceMapXInput;
6330
+ declare abstract class SourceMap$1 {
6331
+ version: SourceMapV3['version'];
6332
+ file: SourceMapV3['file'];
6333
+ names: SourceMapV3['names'];
6334
+ sourceRoot: SourceMapV3['sourceRoot'];
6335
+ sources: SourceMapV3['sources'];
6336
+ sourcesContent: SourceMapV3['sourcesContent'];
6337
+ resolvedSources: SourceMapV3['sources'];
6338
+ ignoreList: SourceMapV3['ignoreList'];
6339
+ }
6340
+ type Ro<T> = T extends Array<infer V> ? V[] | Readonly<V[]> | RoArray<V> | Readonly<RoArray<V>> : T extends object ? T | Readonly<T> | RoObject<T> | Readonly<RoObject<T>> : T;
6341
+ type RoArray<T> = Ro<T>[];
6342
+ type RoObject<T> = { [K in keyof T]: T[K] | Ro<T[K]> };
6343
+ //#endregion
6344
+ //#region node_modules/.pnpm/@jridgewell+trace-mapping@0.3.31/node_modules/@jridgewell/trace-mapping/types/trace-mapping.d.mts
6345
+ declare class TraceMap implements SourceMap$1 {
6346
+ version: SourceMapV3['version'];
6347
+ file: SourceMapV3['file'];
6348
+ names: SourceMapV3['names'];
6349
+ sourceRoot: SourceMapV3['sourceRoot'];
6350
+ sources: SourceMapV3['sources'];
6351
+ sourcesContent: SourceMapV3['sourcesContent'];
6352
+ ignoreList: SourceMapV3['ignoreList'];
6353
+ resolvedSources: string[];
6354
+ private _encoded;
6355
+ private _decoded;
6356
+ private _decodedMemo;
6357
+ private _bySources;
6358
+ private _bySourceMemos;
6359
+ constructor(map: Ro<SourceMapInput>, mapUrl?: string | null);
6360
+ }
6361
+ //#endregion
6362
+ //#region node_modules/.pnpm/terser@5.50.0/node_modules/terser/tools/terser.d.ts
6363
+ type ECMA = 5 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025;
6364
+ type ConsoleProperty = keyof typeof console;
6365
+ type DropConsoleOption = boolean | ConsoleProperty[];
6366
+ interface ParseOptions {
6367
+ bare_returns?: boolean;
6368
+ /** @deprecated legacy option. Currently, all supported EcmaScript is valid to parse. */
6369
+ ecma?: ECMA;
6370
+ html5_comments?: boolean;
6371
+ shebang?: boolean;
6372
+ }
6373
+ interface CompressOptions {
6374
+ arguments?: boolean;
6375
+ arrows?: boolean;
6376
+ booleans_as_integers?: boolean;
6377
+ booleans?: boolean;
6378
+ collapse_vars?: boolean;
6379
+ comparisons?: boolean;
6380
+ computed_props?: boolean;
6381
+ conditionals?: boolean;
6382
+ dead_code?: boolean;
6383
+ defaults?: boolean;
6384
+ directives?: boolean;
6385
+ drop_console?: DropConsoleOption;
6386
+ drop_debugger?: boolean;
6387
+ ecma?: ECMA;
6388
+ builtins_ecma?: ECMA;
6389
+ builtins_pure?: boolean;
6390
+ evaluate?: boolean;
6391
+ expression?: boolean;
6392
+ global_defs?: object;
6393
+ hoist_funs?: boolean;
6394
+ hoist_props?: boolean;
6395
+ hoist_vars?: boolean;
6396
+ ie8?: boolean;
6397
+ if_return?: boolean;
6398
+ inline?: boolean | InlineFunctions;
6399
+ join_vars?: boolean;
6400
+ keep_classnames?: boolean | RegExp;
6401
+ keep_fargs?: boolean;
6402
+ keep_fnames?: boolean | RegExp;
6403
+ keep_infinity?: boolean;
6404
+ lhs_constants?: boolean;
6405
+ loops?: boolean;
6406
+ module?: boolean;
6407
+ negate_iife?: boolean;
6408
+ passes?: number;
6409
+ properties?: boolean;
6410
+ pure_funcs?: string[];
6411
+ pure_new?: boolean;
6412
+ pure_getters?: boolean | 'strict';
6413
+ reduce_funcs?: boolean;
6414
+ reduce_vars?: boolean;
6415
+ sequences?: boolean | number;
6416
+ side_effects?: boolean;
6417
+ switches?: boolean;
6418
+ toplevel?: boolean;
6419
+ top_retain?: null | string | string[] | RegExp;
6420
+ typeofs?: boolean;
6421
+ unsafe_arrows?: boolean;
6422
+ unsafe?: boolean;
6423
+ unsafe_comps?: boolean;
6424
+ unsafe_Function?: boolean;
6425
+ unsafe_math?: boolean;
6426
+ unsafe_symbols?: boolean;
6427
+ unsafe_methods?: boolean;
6428
+ unsafe_proto?: boolean;
6429
+ unsafe_regexp?: boolean;
6430
+ unsafe_undefined?: boolean;
6431
+ unused?: boolean;
6432
+ }
6433
+ declare enum InlineFunctions {
6434
+ Disabled = 0,
6435
+ SimpleFunctions = 1,
6436
+ WithArguments = 2,
6437
+ WithArgumentsAndVariables = 3
6438
+ }
6439
+ interface MangleOptions {
6440
+ eval?: boolean;
6441
+ keep_classnames?: boolean | RegExp;
6442
+ keep_fnames?: boolean | RegExp;
6443
+ module?: boolean;
6444
+ nth_identifier?: SimpleIdentifierMangler | WeightedIdentifierMangler;
6445
+ properties?: boolean | ManglePropertiesOptions;
6446
+ reserved?: string[];
6447
+ safari10?: boolean;
6448
+ toplevel?: boolean;
6449
+ }
6450
+ /**
6451
+ * An identifier mangler for which the output is invariant with respect to the source code.
6452
+ */
6453
+ interface SimpleIdentifierMangler {
6454
+ /**
6455
+ * Obtains the nth most favored (usually shortest) identifier to rename a variable to.
6456
+ * The mangler will increment n and retry until the return value is not in use in scope, and is not a reserved word.
6457
+ * This function is expected to be stable; Evaluating get(n) === get(n) should always return true.
6458
+ * @param n The ordinal of the identifier.
6459
+ */
6460
+ get(n: number): string;
6461
+ }
6462
+ /**
6463
+ * An identifier mangler that leverages character frequency analysis to determine identifier precedence.
6464
+ */
6465
+ interface WeightedIdentifierMangler extends SimpleIdentifierMangler {
6466
+ /**
6467
+ * Modifies the internal weighting of the input characters by the specified delta.
6468
+ * Will be invoked on the entire printed AST, and then deduct mangleable identifiers.
6469
+ * @param chars The characters to modify the weighting of.
6470
+ * @param delta The numeric weight to add to the characters.
6471
+ */
6472
+ consider(chars: string, delta: number): number;
6473
+ /**
6474
+ * Resets character weights.
6475
+ */
6476
+ reset(): void;
6477
+ /**
6478
+ * Sorts identifiers by character frequency, in preparation for calls to get(n).
6479
+ */
6480
+ sort(): void;
6481
+ }
6482
+ interface ManglePropertiesOptions {
6483
+ builtins?: boolean;
6484
+ debug?: boolean;
6485
+ keep_quoted?: boolean | 'strict';
6486
+ nth_identifier?: SimpleIdentifierMangler | WeightedIdentifierMangler;
6487
+ regex?: RegExp | string;
6488
+ reserved?: string[];
6489
+ }
6490
+ interface FormatOptions {
6491
+ ascii_only?: boolean;
6492
+ /** @deprecated Not implemented anymore */
6493
+ beautify?: boolean;
6494
+ braces?: boolean;
6495
+ comments?: boolean | 'all' | 'some' | RegExp | ((node: any, comment: {
6496
+ value: string;
6497
+ type: 'comment1' | 'comment2' | 'comment3' | 'comment4';
6498
+ pos: number;
6499
+ line: number;
6500
+ col: number;
6501
+ }) => boolean);
6502
+ ecma?: ECMA;
6503
+ ie8?: boolean;
6504
+ keep_numbers?: boolean;
6505
+ indent_level?: number;
6506
+ indent_start?: number;
6507
+ inline_script?: boolean;
6508
+ keep_quoted_props?: boolean;
6509
+ max_line_len?: number | false;
6510
+ preamble?: string;
6511
+ preserve_annotations?: boolean;
6512
+ quote_keys?: boolean;
6513
+ quote_style?: OutputQuoteStyle;
6514
+ safari10?: boolean;
6515
+ semicolons?: boolean;
6516
+ shebang?: boolean;
6517
+ shorthand?: boolean;
6518
+ source_map?: SourceMapOptions$1;
6519
+ webkit?: boolean;
6520
+ width?: number;
6521
+ wrap_iife?: boolean;
6522
+ wrap_func_args?: boolean;
6523
+ }
6524
+ declare enum OutputQuoteStyle {
6525
+ PreferDouble = 0,
6526
+ AlwaysSingle = 1,
6527
+ AlwaysDouble = 2,
6528
+ AlwaysOriginal = 3
6529
+ }
6530
+ interface MinifyOptions {
6531
+ compress?: boolean | CompressOptions;
6532
+ ecma?: ECMA;
6533
+ enclose?: boolean | string;
6534
+ ie8?: boolean;
6535
+ keep_classnames?: boolean | RegExp;
6536
+ keep_fnames?: boolean | RegExp;
6537
+ mangle?: boolean | MangleOptions;
6538
+ module?: boolean;
6539
+ nameCache?: object;
6540
+ format?: FormatOptions;
6541
+ /** @deprecated */
6542
+ output?: FormatOptions;
6543
+ parse?: ParseOptions;
6544
+ safari10?: boolean;
6545
+ sourceMap?: boolean | SourceMapOptions$1;
6546
+ toplevel?: boolean;
6547
+ }
6548
+ interface SourceMapOptions$1 {
6549
+ /** Source map object, 'inline' or source map file content */
6550
+ content?: SectionedSourceMapInput | string;
6551
+ includeSources?: boolean;
6552
+ filename?: string;
6553
+ root?: string;
6554
+ asObject?: boolean;
6555
+ url?: string | 'inline';
6556
+ }
6557
+ //#endregion
6558
+ //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_terser@5.50.0_yaml@2.9.0/node_modules/vite/types/internal/terserOptions.d.ts
6283
6559
  /* eslint-enable @typescript-eslint/ban-ts-comment */
6284
- type TerserMinifyOptions = Terser.MinifyOptions;
6560
+ type TerserMinifyOptions = MinifyOptions;
6285
6561
  //#endregion
6286
- //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_yaml@2.9.0/node_modules/vite/types/internal/lightningcssOptions.d.ts
6562
+ //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_terser@5.50.0_yaml@2.9.0/node_modules/vite/types/internal/lightningcssOptions.d.ts
6287
6563
  /* eslint-enable @typescript-eslint/ban-ts-comment */
6288
6564
  type LightningCSSOptions = Omit<Lightningcss.BundleAsyncOptions<Lightningcss.CustomAtRules>, 'filename' | 'resolver' | 'minify' | 'sourceMap' | 'analyzeDependencies' // properties not overridden by Vite, but does not make sense to set by end users
6289
6565
  | 'inputSourceMap' | 'projectRoot'>;
6290
6566
  //#endregion
6291
- //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_yaml@2.9.0/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts
6567
+ //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_terser@5.50.0_yaml@2.9.0/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts
6292
6568
  /* eslint-enable @typescript-eslint/ban-ts-comment */
6293
6569
  // https://github.com/type-challenges/type-challenges/issues/29285
6294
6570
  type IsAny<T> = boolean extends (T extends never ? true : false) ? true : false;
@@ -6307,7 +6583,7 @@ declare global {
6307
6583
  interface HTMLLinkElement {}
6308
6584
  }
6309
6585
  //#endregion
6310
- //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_yaml@2.9.0/node_modules/vite/types/importGlob.d.ts
6586
+ //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_terser@5.50.0_yaml@2.9.0/node_modules/vite/types/importGlob.d.ts
6311
6587
  /**
6312
6588
  * Declare Worker in case DOM is not added to the tsconfig lib causing
6313
6589
  * Worker interface is not defined. For developers with DOM lib added,
@@ -6318,7 +6594,7 @@ declare global {
6318
6594
  interface Worker {}
6319
6595
  }
6320
6596
  //#endregion
6321
- //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_yaml@2.9.0/node_modules/vite/dist/node/index.d.ts
6597
+ //#region node_modules/.pnpm/vite@8.0.9_@types+node@22.19.17_terser@5.50.0_yaml@2.9.0/node_modules/vite/dist/node/index.d.ts
6322
6598
  //#region \0rolldown/runtime.js
6323
6599
  //#endregion
6324
6600
  //#region ../../node_modules/.pnpm/@vitejs+devtools@0.1.14_typescript@6.0.2_vite@packages+vite/node_modules/@vitejs/devtools/dist/cli-commands.d.ts
@@ -7253,7 +7529,7 @@ interface DepOptimizationMetadata {
7253
7529
  //#region src/node/server/transformRequest.d.ts
7254
7530
  interface TransformResult {
7255
7531
  code: string;
7256
- map: SourceMap$1 | {
7532
+ map: SourceMap$2 | {
7257
7533
  mappings: "";
7258
7534
  } | null;
7259
7535
  ssr?: boolean;
@@ -8583,7 +8859,7 @@ declare class EnvironmentPluginContainer<Env extends Environment = Environment>
8583
8859
  moduleType?: string;
8584
8860
  }): Promise<{
8585
8861
  code: string;
8586
- map: SourceMap$1 | {
8862
+ map: SourceMap$2 | {
8587
8863
  mappings: "";
8588
8864
  } | null;
8589
8865
  moduleType?: ModuleType;
@@ -8636,7 +8912,7 @@ declare class PluginContainer {
8636
8912
  inMap?: SourceDescription["map"];
8637
8913
  }): Promise<{
8638
8914
  code: string;
8639
- map: SourceMap$1 | {
8915
+ map: SourceMap$2 | {
8640
8916
  mappings: "";
8641
8917
  } | null;
8642
8918
  }>;
@@ -8843,7 +9119,7 @@ interface ViteDevServer {
8843
9119
  /**
8844
9120
  * Transform module code into SSR format.
8845
9121
  */
8846
- ssrTransform(code: string, inMap: SourceMap$1 | {
9122
+ ssrTransform(code: string, inMap: SourceMap$2 | {
8847
9123
  mappings: "";
8848
9124
  } | null, url: string, originalCode?: string): Promise<TransformResult | null>;
8849
9125
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccqa",
3
- "version": "1.36.0",
3
+ "version": "1.37.0",
4
4
  "type": "module",
5
5
  "description": "Browser test recorder powered by Claude Code and agent-browser",
6
6
  "repository": {
@@ -67,11 +67,11 @@
67
67
  "vitest": "^4.1.2"
68
68
  },
69
69
  "scripts": {
70
- "build": "tsdown",
70
+ "build": "tsdown && pnpm --filter ccqa-tools build",
71
71
  "dev": "node --experimental-strip-types ./bin/ccqa.ts",
72
- "typecheck": "tsc --noEmit",
72
+ "typecheck": "tsc --noEmit && tsc --noEmit -p packages/tools",
73
73
  "test": "vitest run",
74
- "test:unit": "vitest run src/",
74
+ "test:unit": "vitest run src/ packages/",
75
75
  "test:e2e": "vitest run tests/e2e",
76
76
  "release:check": "node --experimental-strip-types src/release/check.ts",
77
77
  "prepublishOnly": "pnpm typecheck && pnpm test && pnpm build"