lib-e2e-cypress-for-dummys-ts 0.8.0 → 0.9.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/index.d.cts CHANGED
@@ -153,48 +153,6 @@ declare const RESUME_TTL_CONFIG_KEY = "resumeRecencyTtlMinutes";
153
153
  /** Default minutes within which an active session resumes silently. */
154
154
  declare const DEFAULT_RESUME_TTL_MINUTES = 30;
155
155
 
156
- /**
157
- * Issue-tracker presets for the *link-only* ticket reference (spec 014).
158
- *
159
- * These are static, data-driven descriptors — there is NO API call, no auth and
160
- * no synchronisation. A provider only knows how to turn a ticket id plus a few
161
- * user-supplied fields into a deep link. Adding a new tracker is a single entry
162
- * in {@link ISSUE_TRACKER_PROVIDERS}; no new code paths are required.
163
- */
164
- /** A single user-configured field a provider needs to build its links. */
165
- interface IssueTrackerField {
166
- /** Token used in {@link IssueTrackerProvider.urlTemplate}, e.g. `org`. */
167
- key: string;
168
- /** i18n key for the field's label in the configuration panel. */
169
- labelKey: string;
170
- /** i18n key for the field's input placeholder. */
171
- placeholderKey: string;
172
- }
173
- /** A link-only issue-tracker descriptor. */
174
- interface IssueTrackerProvider {
175
- /** Stable id persisted in configuration, e.g. `jira`. */
176
- id: string;
177
- /** Display name — a proper noun (Jira, GitHub…), not translated. */
178
- labelKey: string;
179
- /**
180
- * URL template with `{id}` plus one token per field. For `custom` the template
181
- * itself comes from a field (`{template}`), so a single substitution path serves
182
- * every provider.
183
- */
184
- urlTemplate: string;
185
- /** Structured fields the user fills in Settings for this provider. */
186
- fields: IssueTrackerField[];
187
- /** Regex source used for a soft (non-blocking) id-format warning. */
188
- idPattern: string;
189
- /** i18n key for the ticket-id input placeholder in the save dialog. */
190
- idPlaceholderKey: string;
191
- }
192
- declare const ISSUE_TRACKER_PROVIDERS: IssueTrackerProvider[];
193
- /** Feature is inert until configured: default to a custom, empty template. */
194
- declare const DEFAULT_ISSUE_TRACKER_PROVIDER_ID = "custom";
195
- /** Looks up a provider by id, or `undefined` when unknown. */
196
- declare function findIssueTrackerProvider(id: string): IssueTrackerProvider | undefined;
197
-
198
156
  declare class TranslationService {
199
157
  private readonly lang$;
200
158
  private readonly translations;
@@ -282,12 +240,6 @@ declare class PersistenceService {
282
240
  insertTest(name: string, commands?: string[], interceptors?: string[], tags?: string[], notes?: string, ticketId?: string): Promise<number>;
283
241
  getAllTests(): Promise<TestWithDetails[]>;
284
242
  getTestById(testId: number): Promise<TestDetail | null>;
285
- /**
286
- * Builds the traceability comment for a test record (spec 014), reading the
287
- * configured issue-tracker provider/params so the link — when resolvable — is
288
- * embedded. Returns `null` when the record has no ticket id.
289
- */
290
- private ticketCommentFor;
291
243
  deleteTest(id: number): Promise<void>;
292
244
  insertCommands(commands: string[], testId: number): Promise<void>;
293
245
  getCommandsByTestId(testId: number): Promise<CommandRecord[]>;
@@ -431,71 +383,6 @@ declare function boxTopLeftFor(toggleCentre: Point, dir: ExpandDirection): Point
431
383
  */
432
384
  declare function inferAssertionCommand(el: HTMLElement, selector: string): string;
433
385
 
434
- /**
435
- * Ticket-reference helpers for the link-only issue-tracker feature (spec 014).
436
- *
437
- * Pure functions: no DOM, no network. `buildTicketUrl` never trusts its inputs —
438
- * it only returns a URL when the result parses to a safe `http(s)` link, which is
439
- * what guards a user-supplied custom template from `javascript:`/`data:` injection.
440
- */
441
- /**
442
- * Resolves a provider template into a deep link for `id`.
443
- *
444
- * Substitutes each `{fieldKey}` (custom's `{template}` first, so a template that
445
- * itself contains `{id}` is handled by the same path) and then `{id}` (URL-encoded).
446
- * Returns `null` when a required field is missing, a token is left unresolved, or
447
- * the result is not a valid `http:`/`https:` URL.
448
- */
449
- declare function buildTicketUrl(provider: IssueTrackerProvider, params: Record<string, string>, id: string): string | null;
450
- /**
451
- * Convenience wrapper for the configuration shape: looks up the provider by id and
452
- * picks its field values out of the per-provider `allParams` map before delegating
453
- * to {@link buildTicketUrl}. Returns `null` for an unknown provider, an empty id, or
454
- * any input that would not resolve to a safe `http(s)` link.
455
- */
456
- declare function resolveTicketUrl(providerId: string, allParams: Record<string, Record<string, string>>, ticketId?: string): string | null;
457
- /**
458
- * Builds the traceability comment emitted above the generated `it()` block:
459
- * `// {id} — {url}` when a link is available, otherwise `// {id}`.
460
- */
461
- declare function buildTicketComment(id: string, url: string | null): string;
462
-
463
- /**
464
- * Hand-authored Cypress autocomplete data (spec 013). Pure — no CodeMirror — so
465
- * it is unit-testable; `code-editor.ts` wraps it into a CodeMirror CompletionSource.
466
- */
467
- /** Methods offered after typing `cy.` */
468
- declare const CY_METHODS: string[];
469
- /** Methods offered after a chained `.` (e.g. `cy.get('x').`). */
470
- declare const CHAIN_METHODS: string[];
471
- /** Top-level identifiers offered at the start of a statement. */
472
- declare const TOP_LEVEL: string[];
473
- /** All completion labels (used for the pure filter and tests). */
474
- declare const CYPRESS_COMPLETIONS: string[];
475
- /** Case-insensitive substring filter over a label list. */
476
- declare function filterCompletions(list: string[], prefix: string): string[];
477
- /** Convenience filter over the full completion set. */
478
- declare function filterCypressCompletions(prefix: string): string[];
479
-
480
- /**
481
- * Lazy CodeMirror 6 factory for the code editor (spec 013). CodeMirror is loaded
482
- * on demand (its own chunk) via dynamic import, so it never bloats the initial
483
- * bundle. Browser-only; not exercised in jsdom (see the file-preview fallback).
484
- */
485
- interface CodeEditorHandle {
486
- getValue(): string;
487
- setValue(value: string): void;
488
- focus(): void;
489
- destroy(): void;
490
- }
491
- interface CreateCodeEditorOptions {
492
- parent: HTMLElement;
493
- root?: Document | ShadowRoot;
494
- doc: string;
495
- onChange?: (value: string) => void;
496
- }
497
- declare function createCodeEditor(opts: CreateCodeEditorOptions): Promise<CodeEditorHandle>;
498
-
499
386
  declare class SelectorPickerElement extends HTMLElement {
500
387
  targetElement: HTMLElement | null;
501
388
  recording: RecordingService;
@@ -547,6 +434,13 @@ declare class TestPrevisualizerElement extends HTMLElement {
547
434
  private render;
548
435
  }
549
436
 
437
+ type IssueTrackerProvider = 'jira' | 'github' | 'gitlab' | 'azure' | 'bitbucket' | 'custom';
438
+ interface IssueTrackerConfig {
439
+ enabled: boolean;
440
+ provider: IssueTrackerProvider;
441
+ baseUrl: string;
442
+ }
443
+
550
444
  declare class SaveTestElement extends HTMLElement {
551
445
  private shadow;
552
446
  private _step;
@@ -554,8 +448,7 @@ declare class SaveTestElement extends HTMLElement {
554
448
  notes: string;
555
449
  tags: string[];
556
450
  ticketId: string;
557
- /** Set by the host from config so the ticket placeholder/validation is provider-aware. */
558
- issueTrackerProviderId: string;
451
+ issueTrackerConfig: IssueTrackerConfig;
559
452
  translation: TranslationService;
560
453
  constructor();
561
454
  connectedCallback(): void;
@@ -568,8 +461,7 @@ declare class SaveTestElement extends HTMLElement {
568
461
  addTag(tag: string): void;
569
462
  removeTag(tag: string): void;
570
463
  private t;
571
- /** Builds the ticket field view: provider-aware placeholder + soft (non-blocking) format check. */
572
- private ticketView;
464
+ get ticketIdWarning(): boolean;
573
465
  private dispatch;
574
466
  private render;
575
467
  }
@@ -586,15 +478,14 @@ declare class TestEditorElement extends HTMLElement {
586
478
  selectedIds: Set<number>;
587
479
  describeName: string;
588
480
  groupByTicket: boolean;
589
- issueTrackerProviderId: string;
590
- issueTrackerParams: Record<string, Record<string, string>>;
481
+ issueTrackerConfig: IssueTrackerConfig;
591
482
  constructor();
592
483
  connectedCallback(): void;
593
484
  loadTests(): Promise<void>;
594
- toggleGroupByTicket(): void;
595
485
  deleteTest(id: number): Promise<void>;
596
486
  toggleExpand(index: number): void;
597
487
  hasInterceptors(testId: number): boolean;
488
+ toggleGroupByTicket(): void;
598
489
  toggleSelectMode(): void;
599
490
  toggleSelectTest(id: number): void;
600
491
  generateDescribe(): void;
@@ -616,13 +507,12 @@ declare class ConfigurationElement extends HTMLElement {
616
507
  smartSelectorEnabled: boolean;
617
508
  startHidden: boolean;
618
509
  resumeTtlMinutes: number;
619
- issueTrackerProviderId: string;
620
- issueTrackerParams: Record<string, Record<string, string>>;
621
510
  isExporting: boolean;
622
511
  exportMode: ExportMode;
623
512
  exportTests: TestWithDetails[];
624
513
  exportSelectedIds: Set<number>;
625
514
  exportSelectedTags: Set<string>;
515
+ issueTrackerConfig: IssueTrackerConfig;
626
516
  private filesystemGranted;
627
517
  private cypressFolderName;
628
518
  constructor();
@@ -634,13 +524,12 @@ declare class ConfigurationElement extends HTMLElement {
634
524
  onFixtureModeChange(checked: boolean): void;
635
525
  onStartHiddenChange(checked: boolean): Promise<void>;
636
526
  onResumeTtlChange(minutes: number): Promise<void>;
637
- /** Selects the issue-tracker provider (link-only, no sync — spec 014). */
638
- onIssueTrackerProviderChange(id: string): Promise<void>;
639
- /** Stores a provider field value, scoped to the active provider so switching keeps values. */
640
- onIssueTrackerParamChange(fieldKey: string, value: string): Promise<void>;
641
527
  onResetWidgetPosition(): void;
642
528
  onSmartSelectorChange(enabled: boolean): Promise<void>;
643
529
  onSelectorStrategyChange(strategy: SelectorStrategy): Promise<void>;
530
+ onIssueTrackerEnabledChange(enabled: boolean): Promise<void>;
531
+ onIssueTrackerProviderChange(provider: IssueTrackerProvider): Promise<void>;
532
+ onIssueTrackerBaseUrlChange(baseUrl: string): Promise<void>;
644
533
  changeFolder(): Promise<void>;
645
534
  revokeAccess(): Promise<void>;
646
535
  private downloadTests;
@@ -706,7 +595,6 @@ declare class AdvancedTestEditorElement extends HTMLElement {
706
595
  declare class FilePreviewElement extends HTMLElement {
707
596
  private shadow;
708
597
  private textarea;
709
- private editor;
710
598
  fileName: string | null;
711
599
  closeLabel: string;
712
600
  translation: TranslationService;
@@ -726,10 +614,7 @@ declare class FilePreviewElement extends HTMLElement {
726
614
  private _runOutput;
727
615
  constructor();
728
616
  connectedCallback(): void;
729
- disconnectedCallback(): void;
730
617
  private t;
731
- /** Current editor content (CodeMirror if upgraded, else the textarea/fallback). */
732
- private currentValue;
733
618
  get fileContent(): string | null;
734
619
  set fileContent(v: string | null);
735
620
  saveFile(): void;
@@ -750,12 +635,6 @@ declare class FilePreviewElement extends HTMLElement {
750
635
  */
751
636
  insertBlocks(): void;
752
637
  private render;
753
- /**
754
- * Lazily upgrades the textarea to a CodeMirror editor (syntax highlight +
755
- * Cypress autocomplete). On any failure the textarea is left in place, so the
756
- * editor degrades gracefully when CodeMirror can't load.
757
- */
758
- private upgradeEditor;
759
638
  }
760
639
 
761
640
  /**
@@ -796,6 +675,7 @@ declare class LibE2eRecorderElement extends HTMLElement {
796
675
  private httpMonitor?;
797
676
  private smartSelectorEnabled;
798
677
  private _needsRecordingRebuild;
678
+ private issueTrackerConfig;
799
679
  recording: RecordingService;
800
680
  persistence: PersistenceService;
801
681
  translation: TranslationService;
@@ -873,13 +753,11 @@ declare class LibE2eRecorderElement extends HTMLElement {
873
753
  private showFileEditorDialog;
874
754
  private onSaveTest;
875
755
  private onSaveAndExportTest;
876
- /** Writes captured fixtures to cypress/fixtures and toasts the outcome (spec 012). */
877
- private writeFixturesIfAny;
878
756
  private toggleModal;
879
757
  private resizePopup;
880
758
  private render;
881
759
  }
882
760
 
883
- declare const VERSION = "0.8.0";
761
+ declare const VERSION = "0.9.0";
884
762
 
885
- export { ACTIVE_SESSION_BREADCRUMB_KEY, type ActiveSessionState, AdvancedTestEditorElement, AdvancedTestTransformationService, CHAIN_METHODS, CYPRESS_COMPLETIONS, CY_METHODS, type CodeEditorHandle, ConfigurationElement, type CreateCodeEditorOptions, type DBSchema, type DBStore, type DBStoreIndex, DB_SCHEMA, DB_STORE_NAMES, DEFAULT_ISSUE_TRACKER_PROVIDER_ID, DEFAULT_RESUME_TTL_MINUTES, DRAG_THRESHOLD, type DirectoryNode, type ExpandDirection, type ExportMode, type ExportSelectionOptions, type FileNode, FilePreviewElement, HelpPanelElement, HttpMonitor, INPUT_TYPES, ISSUE_TRACKER_PROVIDERS, type InputType, type IssueTrackerField, type IssueTrackerProvider, LIB_E2E_CYPRESS_FOR_DUMMYS_SWAL2_STYLES, LOCALE_BY_LANG, type Lang, LibE2eRecorderElement, PersistenceService, type Point, RESUME_TTL_CONFIG_KEY, RecordingService, SCROLLBAR_STYLES, SUPPORTED_LANGS, SaveTestElement, SelectorPickerElement, type SelectorStrategy, Subject, TOGGLE_MARGIN, TOP_LEVEL, type TestDetail, TestEditorElement, TestPrevisualizerElement, type TestWithDetails, TransformationService, TranslationService, VERSION, advancedTestTransformationService, boxOffsetForDirection, boxTopLeftFor, buildTicketComment, buildTicketUrl, clampTogglePosition, createCodeEditor, defaultTogglePosition, filterCompletions, filterCypressCompletions, findIssueTrackerProvider, generateAlias, inferAssertionCommand, injectStyles, isLang, isLocalHost, localeForLang, makeModalResizable, makeSwalDraggable, makeSwalDraggableByContentId, persistenceService, resolveExpandDirection, resolveTicketUrl, selectTestsForExport, setSwal2DataCyAttribute, showToast, transformationService, translationService };
763
+ export { ACTIVE_SESSION_BREADCRUMB_KEY, type ActiveSessionState, AdvancedTestEditorElement, AdvancedTestTransformationService, ConfigurationElement, type DBSchema, type DBStore, type DBStoreIndex, DB_SCHEMA, DB_STORE_NAMES, DEFAULT_RESUME_TTL_MINUTES, DRAG_THRESHOLD, type DirectoryNode, type ExpandDirection, type ExportMode, type ExportSelectionOptions, type FileNode, FilePreviewElement, HelpPanelElement, HttpMonitor, INPUT_TYPES, type InputType, LIB_E2E_CYPRESS_FOR_DUMMYS_SWAL2_STYLES, LOCALE_BY_LANG, type Lang, LibE2eRecorderElement, PersistenceService, type Point, RESUME_TTL_CONFIG_KEY, RecordingService, SCROLLBAR_STYLES, SUPPORTED_LANGS, SaveTestElement, SelectorPickerElement, type SelectorStrategy, Subject, TOGGLE_MARGIN, type TestDetail, TestEditorElement, TestPrevisualizerElement, type TestWithDetails, TransformationService, TranslationService, VERSION, advancedTestTransformationService, boxOffsetForDirection, boxTopLeftFor, clampTogglePosition, defaultTogglePosition, generateAlias, inferAssertionCommand, injectStyles, isLang, isLocalHost, localeForLang, makeModalResizable, makeSwalDraggable, makeSwalDraggableByContentId, persistenceService, resolveExpandDirection, selectTestsForExport, setSwal2DataCyAttribute, showToast, transformationService, translationService };
package/dist/index.d.ts CHANGED
@@ -153,48 +153,6 @@ declare const RESUME_TTL_CONFIG_KEY = "resumeRecencyTtlMinutes";
153
153
  /** Default minutes within which an active session resumes silently. */
154
154
  declare const DEFAULT_RESUME_TTL_MINUTES = 30;
155
155
 
156
- /**
157
- * Issue-tracker presets for the *link-only* ticket reference (spec 014).
158
- *
159
- * These are static, data-driven descriptors — there is NO API call, no auth and
160
- * no synchronisation. A provider only knows how to turn a ticket id plus a few
161
- * user-supplied fields into a deep link. Adding a new tracker is a single entry
162
- * in {@link ISSUE_TRACKER_PROVIDERS}; no new code paths are required.
163
- */
164
- /** A single user-configured field a provider needs to build its links. */
165
- interface IssueTrackerField {
166
- /** Token used in {@link IssueTrackerProvider.urlTemplate}, e.g. `org`. */
167
- key: string;
168
- /** i18n key for the field's label in the configuration panel. */
169
- labelKey: string;
170
- /** i18n key for the field's input placeholder. */
171
- placeholderKey: string;
172
- }
173
- /** A link-only issue-tracker descriptor. */
174
- interface IssueTrackerProvider {
175
- /** Stable id persisted in configuration, e.g. `jira`. */
176
- id: string;
177
- /** Display name — a proper noun (Jira, GitHub…), not translated. */
178
- labelKey: string;
179
- /**
180
- * URL template with `{id}` plus one token per field. For `custom` the template
181
- * itself comes from a field (`{template}`), so a single substitution path serves
182
- * every provider.
183
- */
184
- urlTemplate: string;
185
- /** Structured fields the user fills in Settings for this provider. */
186
- fields: IssueTrackerField[];
187
- /** Regex source used for a soft (non-blocking) id-format warning. */
188
- idPattern: string;
189
- /** i18n key for the ticket-id input placeholder in the save dialog. */
190
- idPlaceholderKey: string;
191
- }
192
- declare const ISSUE_TRACKER_PROVIDERS: IssueTrackerProvider[];
193
- /** Feature is inert until configured: default to a custom, empty template. */
194
- declare const DEFAULT_ISSUE_TRACKER_PROVIDER_ID = "custom";
195
- /** Looks up a provider by id, or `undefined` when unknown. */
196
- declare function findIssueTrackerProvider(id: string): IssueTrackerProvider | undefined;
197
-
198
156
  declare class TranslationService {
199
157
  private readonly lang$;
200
158
  private readonly translations;
@@ -282,12 +240,6 @@ declare class PersistenceService {
282
240
  insertTest(name: string, commands?: string[], interceptors?: string[], tags?: string[], notes?: string, ticketId?: string): Promise<number>;
283
241
  getAllTests(): Promise<TestWithDetails[]>;
284
242
  getTestById(testId: number): Promise<TestDetail | null>;
285
- /**
286
- * Builds the traceability comment for a test record (spec 014), reading the
287
- * configured issue-tracker provider/params so the link — when resolvable — is
288
- * embedded. Returns `null` when the record has no ticket id.
289
- */
290
- private ticketCommentFor;
291
243
  deleteTest(id: number): Promise<void>;
292
244
  insertCommands(commands: string[], testId: number): Promise<void>;
293
245
  getCommandsByTestId(testId: number): Promise<CommandRecord[]>;
@@ -431,71 +383,6 @@ declare function boxTopLeftFor(toggleCentre: Point, dir: ExpandDirection): Point
431
383
  */
432
384
  declare function inferAssertionCommand(el: HTMLElement, selector: string): string;
433
385
 
434
- /**
435
- * Ticket-reference helpers for the link-only issue-tracker feature (spec 014).
436
- *
437
- * Pure functions: no DOM, no network. `buildTicketUrl` never trusts its inputs —
438
- * it only returns a URL when the result parses to a safe `http(s)` link, which is
439
- * what guards a user-supplied custom template from `javascript:`/`data:` injection.
440
- */
441
- /**
442
- * Resolves a provider template into a deep link for `id`.
443
- *
444
- * Substitutes each `{fieldKey}` (custom's `{template}` first, so a template that
445
- * itself contains `{id}` is handled by the same path) and then `{id}` (URL-encoded).
446
- * Returns `null` when a required field is missing, a token is left unresolved, or
447
- * the result is not a valid `http:`/`https:` URL.
448
- */
449
- declare function buildTicketUrl(provider: IssueTrackerProvider, params: Record<string, string>, id: string): string | null;
450
- /**
451
- * Convenience wrapper for the configuration shape: looks up the provider by id and
452
- * picks its field values out of the per-provider `allParams` map before delegating
453
- * to {@link buildTicketUrl}. Returns `null` for an unknown provider, an empty id, or
454
- * any input that would not resolve to a safe `http(s)` link.
455
- */
456
- declare function resolveTicketUrl(providerId: string, allParams: Record<string, Record<string, string>>, ticketId?: string): string | null;
457
- /**
458
- * Builds the traceability comment emitted above the generated `it()` block:
459
- * `// {id} — {url}` when a link is available, otherwise `// {id}`.
460
- */
461
- declare function buildTicketComment(id: string, url: string | null): string;
462
-
463
- /**
464
- * Hand-authored Cypress autocomplete data (spec 013). Pure — no CodeMirror — so
465
- * it is unit-testable; `code-editor.ts` wraps it into a CodeMirror CompletionSource.
466
- */
467
- /** Methods offered after typing `cy.` */
468
- declare const CY_METHODS: string[];
469
- /** Methods offered after a chained `.` (e.g. `cy.get('x').`). */
470
- declare const CHAIN_METHODS: string[];
471
- /** Top-level identifiers offered at the start of a statement. */
472
- declare const TOP_LEVEL: string[];
473
- /** All completion labels (used for the pure filter and tests). */
474
- declare const CYPRESS_COMPLETIONS: string[];
475
- /** Case-insensitive substring filter over a label list. */
476
- declare function filterCompletions(list: string[], prefix: string): string[];
477
- /** Convenience filter over the full completion set. */
478
- declare function filterCypressCompletions(prefix: string): string[];
479
-
480
- /**
481
- * Lazy CodeMirror 6 factory for the code editor (spec 013). CodeMirror is loaded
482
- * on demand (its own chunk) via dynamic import, so it never bloats the initial
483
- * bundle. Browser-only; not exercised in jsdom (see the file-preview fallback).
484
- */
485
- interface CodeEditorHandle {
486
- getValue(): string;
487
- setValue(value: string): void;
488
- focus(): void;
489
- destroy(): void;
490
- }
491
- interface CreateCodeEditorOptions {
492
- parent: HTMLElement;
493
- root?: Document | ShadowRoot;
494
- doc: string;
495
- onChange?: (value: string) => void;
496
- }
497
- declare function createCodeEditor(opts: CreateCodeEditorOptions): Promise<CodeEditorHandle>;
498
-
499
386
  declare class SelectorPickerElement extends HTMLElement {
500
387
  targetElement: HTMLElement | null;
501
388
  recording: RecordingService;
@@ -547,6 +434,13 @@ declare class TestPrevisualizerElement extends HTMLElement {
547
434
  private render;
548
435
  }
549
436
 
437
+ type IssueTrackerProvider = 'jira' | 'github' | 'gitlab' | 'azure' | 'bitbucket' | 'custom';
438
+ interface IssueTrackerConfig {
439
+ enabled: boolean;
440
+ provider: IssueTrackerProvider;
441
+ baseUrl: string;
442
+ }
443
+
550
444
  declare class SaveTestElement extends HTMLElement {
551
445
  private shadow;
552
446
  private _step;
@@ -554,8 +448,7 @@ declare class SaveTestElement extends HTMLElement {
554
448
  notes: string;
555
449
  tags: string[];
556
450
  ticketId: string;
557
- /** Set by the host from config so the ticket placeholder/validation is provider-aware. */
558
- issueTrackerProviderId: string;
451
+ issueTrackerConfig: IssueTrackerConfig;
559
452
  translation: TranslationService;
560
453
  constructor();
561
454
  connectedCallback(): void;
@@ -568,8 +461,7 @@ declare class SaveTestElement extends HTMLElement {
568
461
  addTag(tag: string): void;
569
462
  removeTag(tag: string): void;
570
463
  private t;
571
- /** Builds the ticket field view: provider-aware placeholder + soft (non-blocking) format check. */
572
- private ticketView;
464
+ get ticketIdWarning(): boolean;
573
465
  private dispatch;
574
466
  private render;
575
467
  }
@@ -586,15 +478,14 @@ declare class TestEditorElement extends HTMLElement {
586
478
  selectedIds: Set<number>;
587
479
  describeName: string;
588
480
  groupByTicket: boolean;
589
- issueTrackerProviderId: string;
590
- issueTrackerParams: Record<string, Record<string, string>>;
481
+ issueTrackerConfig: IssueTrackerConfig;
591
482
  constructor();
592
483
  connectedCallback(): void;
593
484
  loadTests(): Promise<void>;
594
- toggleGroupByTicket(): void;
595
485
  deleteTest(id: number): Promise<void>;
596
486
  toggleExpand(index: number): void;
597
487
  hasInterceptors(testId: number): boolean;
488
+ toggleGroupByTicket(): void;
598
489
  toggleSelectMode(): void;
599
490
  toggleSelectTest(id: number): void;
600
491
  generateDescribe(): void;
@@ -616,13 +507,12 @@ declare class ConfigurationElement extends HTMLElement {
616
507
  smartSelectorEnabled: boolean;
617
508
  startHidden: boolean;
618
509
  resumeTtlMinutes: number;
619
- issueTrackerProviderId: string;
620
- issueTrackerParams: Record<string, Record<string, string>>;
621
510
  isExporting: boolean;
622
511
  exportMode: ExportMode;
623
512
  exportTests: TestWithDetails[];
624
513
  exportSelectedIds: Set<number>;
625
514
  exportSelectedTags: Set<string>;
515
+ issueTrackerConfig: IssueTrackerConfig;
626
516
  private filesystemGranted;
627
517
  private cypressFolderName;
628
518
  constructor();
@@ -634,13 +524,12 @@ declare class ConfigurationElement extends HTMLElement {
634
524
  onFixtureModeChange(checked: boolean): void;
635
525
  onStartHiddenChange(checked: boolean): Promise<void>;
636
526
  onResumeTtlChange(minutes: number): Promise<void>;
637
- /** Selects the issue-tracker provider (link-only, no sync — spec 014). */
638
- onIssueTrackerProviderChange(id: string): Promise<void>;
639
- /** Stores a provider field value, scoped to the active provider so switching keeps values. */
640
- onIssueTrackerParamChange(fieldKey: string, value: string): Promise<void>;
641
527
  onResetWidgetPosition(): void;
642
528
  onSmartSelectorChange(enabled: boolean): Promise<void>;
643
529
  onSelectorStrategyChange(strategy: SelectorStrategy): Promise<void>;
530
+ onIssueTrackerEnabledChange(enabled: boolean): Promise<void>;
531
+ onIssueTrackerProviderChange(provider: IssueTrackerProvider): Promise<void>;
532
+ onIssueTrackerBaseUrlChange(baseUrl: string): Promise<void>;
644
533
  changeFolder(): Promise<void>;
645
534
  revokeAccess(): Promise<void>;
646
535
  private downloadTests;
@@ -706,7 +595,6 @@ declare class AdvancedTestEditorElement extends HTMLElement {
706
595
  declare class FilePreviewElement extends HTMLElement {
707
596
  private shadow;
708
597
  private textarea;
709
- private editor;
710
598
  fileName: string | null;
711
599
  closeLabel: string;
712
600
  translation: TranslationService;
@@ -726,10 +614,7 @@ declare class FilePreviewElement extends HTMLElement {
726
614
  private _runOutput;
727
615
  constructor();
728
616
  connectedCallback(): void;
729
- disconnectedCallback(): void;
730
617
  private t;
731
- /** Current editor content (CodeMirror if upgraded, else the textarea/fallback). */
732
- private currentValue;
733
618
  get fileContent(): string | null;
734
619
  set fileContent(v: string | null);
735
620
  saveFile(): void;
@@ -750,12 +635,6 @@ declare class FilePreviewElement extends HTMLElement {
750
635
  */
751
636
  insertBlocks(): void;
752
637
  private render;
753
- /**
754
- * Lazily upgrades the textarea to a CodeMirror editor (syntax highlight +
755
- * Cypress autocomplete). On any failure the textarea is left in place, so the
756
- * editor degrades gracefully when CodeMirror can't load.
757
- */
758
- private upgradeEditor;
759
638
  }
760
639
 
761
640
  /**
@@ -796,6 +675,7 @@ declare class LibE2eRecorderElement extends HTMLElement {
796
675
  private httpMonitor?;
797
676
  private smartSelectorEnabled;
798
677
  private _needsRecordingRebuild;
678
+ private issueTrackerConfig;
799
679
  recording: RecordingService;
800
680
  persistence: PersistenceService;
801
681
  translation: TranslationService;
@@ -873,13 +753,11 @@ declare class LibE2eRecorderElement extends HTMLElement {
873
753
  private showFileEditorDialog;
874
754
  private onSaveTest;
875
755
  private onSaveAndExportTest;
876
- /** Writes captured fixtures to cypress/fixtures and toasts the outcome (spec 012). */
877
- private writeFixturesIfAny;
878
756
  private toggleModal;
879
757
  private resizePopup;
880
758
  private render;
881
759
  }
882
760
 
883
- declare const VERSION = "0.8.0";
761
+ declare const VERSION = "0.9.0";
884
762
 
885
- export { ACTIVE_SESSION_BREADCRUMB_KEY, type ActiveSessionState, AdvancedTestEditorElement, AdvancedTestTransformationService, CHAIN_METHODS, CYPRESS_COMPLETIONS, CY_METHODS, type CodeEditorHandle, ConfigurationElement, type CreateCodeEditorOptions, type DBSchema, type DBStore, type DBStoreIndex, DB_SCHEMA, DB_STORE_NAMES, DEFAULT_ISSUE_TRACKER_PROVIDER_ID, DEFAULT_RESUME_TTL_MINUTES, DRAG_THRESHOLD, type DirectoryNode, type ExpandDirection, type ExportMode, type ExportSelectionOptions, type FileNode, FilePreviewElement, HelpPanelElement, HttpMonitor, INPUT_TYPES, ISSUE_TRACKER_PROVIDERS, type InputType, type IssueTrackerField, type IssueTrackerProvider, LIB_E2E_CYPRESS_FOR_DUMMYS_SWAL2_STYLES, LOCALE_BY_LANG, type Lang, LibE2eRecorderElement, PersistenceService, type Point, RESUME_TTL_CONFIG_KEY, RecordingService, SCROLLBAR_STYLES, SUPPORTED_LANGS, SaveTestElement, SelectorPickerElement, type SelectorStrategy, Subject, TOGGLE_MARGIN, TOP_LEVEL, type TestDetail, TestEditorElement, TestPrevisualizerElement, type TestWithDetails, TransformationService, TranslationService, VERSION, advancedTestTransformationService, boxOffsetForDirection, boxTopLeftFor, buildTicketComment, buildTicketUrl, clampTogglePosition, createCodeEditor, defaultTogglePosition, filterCompletions, filterCypressCompletions, findIssueTrackerProvider, generateAlias, inferAssertionCommand, injectStyles, isLang, isLocalHost, localeForLang, makeModalResizable, makeSwalDraggable, makeSwalDraggableByContentId, persistenceService, resolveExpandDirection, resolveTicketUrl, selectTestsForExport, setSwal2DataCyAttribute, showToast, transformationService, translationService };
763
+ export { ACTIVE_SESSION_BREADCRUMB_KEY, type ActiveSessionState, AdvancedTestEditorElement, AdvancedTestTransformationService, ConfigurationElement, type DBSchema, type DBStore, type DBStoreIndex, DB_SCHEMA, DB_STORE_NAMES, DEFAULT_RESUME_TTL_MINUTES, DRAG_THRESHOLD, type DirectoryNode, type ExpandDirection, type ExportMode, type ExportSelectionOptions, type FileNode, FilePreviewElement, HelpPanelElement, HttpMonitor, INPUT_TYPES, type InputType, LIB_E2E_CYPRESS_FOR_DUMMYS_SWAL2_STYLES, LOCALE_BY_LANG, type Lang, LibE2eRecorderElement, PersistenceService, type Point, RESUME_TTL_CONFIG_KEY, RecordingService, SCROLLBAR_STYLES, SUPPORTED_LANGS, SaveTestElement, SelectorPickerElement, type SelectorStrategy, Subject, TOGGLE_MARGIN, type TestDetail, TestEditorElement, TestPrevisualizerElement, type TestWithDetails, TransformationService, TranslationService, VERSION, advancedTestTransformationService, boxOffsetForDirection, boxTopLeftFor, clampTogglePosition, defaultTogglePosition, generateAlias, inferAssertionCommand, injectStyles, isLang, isLocalHost, localeForLang, makeModalResizable, makeSwalDraggable, makeSwalDraggableByContentId, persistenceService, resolveExpandDirection, selectTestsForExport, setSwal2DataCyAttribute, showToast, transformationService, translationService };