lib-e2e-cypress-for-dummys-ts 0.8.0 → 0.10.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
@@ -37,6 +37,7 @@ declare class RecordingService {
37
37
  private readonly selectorNotFound$;
38
38
  private readonly inputDebounceTimers;
39
39
  private readonly fixtures;
40
+ private readonly uploadedFiles;
40
41
  private readonly abort;
41
42
  selectorStrategy: SelectorStrategy;
42
43
  /** Stable id of the current live session (null when none has started). */
@@ -73,6 +74,12 @@ declare class RecordingService {
73
74
  name: string;
74
75
  content: string;
75
76
  }>;
77
+ addUploadedFile(filename: string, bytes: ArrayBuffer): void;
78
+ getUploadedFilesSnapshot(): Array<{
79
+ filename: string;
80
+ bytes: ArrayBuffer;
81
+ }>;
82
+ clearUploadedFiles(): void;
76
83
  clearCommands(): void;
77
84
  clearInterceptors(): void;
78
85
  getCommandsSnapshot(): string[];
@@ -106,6 +113,8 @@ declare class RecordingService {
106
113
  private listenToKeys;
107
114
  private listenToInput;
108
115
  private listenToSelect;
116
+ private handleFileInputChange;
117
+ private readFileAsArrayBuffer;
109
118
  private listenToRouteChanges;
110
119
  private handleClickEvent;
111
120
  private handleMatOptionClick;
@@ -153,48 +162,6 @@ declare const RESUME_TTL_CONFIG_KEY = "resumeRecencyTtlMinutes";
153
162
  /** Default minutes within which an active session resumes silently. */
154
163
  declare const DEFAULT_RESUME_TTL_MINUTES = 30;
155
164
 
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
165
  declare class TranslationService {
199
166
  private readonly lang$;
200
167
  private readonly translations;
@@ -232,13 +199,13 @@ declare class AdvancedTestTransformationService {
232
199
  }
233
200
  declare const advancedTestTransformationService: AdvancedTestTransformationService;
234
201
 
235
- declare class Subject<T> {
236
- private _value;
237
- private listeners;
238
- constructor(initialValue: T);
239
- next(value: T): void;
240
- getValue(): T;
241
- subscribe(fn: (v: T) => void): () => void;
202
+ interface LoginSetupConfig {
203
+ enabled: boolean;
204
+ filePath: string;
205
+ fileContent: string;
206
+ detectedFunctions: string[];
207
+ beforeFn: string | null;
208
+ beforeEachFn: string | null;
242
209
  }
243
210
 
244
211
  interface TestRecord {
@@ -282,12 +249,6 @@ declare class PersistenceService {
282
249
  insertTest(name: string, commands?: string[], interceptors?: string[], tags?: string[], notes?: string, ticketId?: string): Promise<number>;
283
250
  getAllTests(): Promise<TestWithDetails[]>;
284
251
  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
252
  deleteTest(id: number): Promise<void>;
292
253
  insertCommands(commands: string[], testId: number): Promise<void>;
293
254
  getCommandsByTestId(testId: number): Promise<CommandRecord[]>;
@@ -301,6 +262,10 @@ declare class PersistenceService {
301
262
  setConfigKey(key: string, value: unknown): Promise<void>;
302
263
  getConfig(key: string): Promise<Record<string, unknown> | null>;
303
264
  getGeneralConfig(): Promise<ConfigRecord | null>;
265
+ private static readonly LOGIN_SETUP_KEY;
266
+ saveLoginSetup(config: LoginSetupConfig): Promise<void>;
267
+ getLoginSetup(): Promise<LoginSetupConfig | null>;
268
+ clearLoginSetup(): Promise<void>;
304
269
  /** Upserts the live recording session (single record, fixed key). */
305
270
  saveActiveSession(state: ActiveSessionState): Promise<void>;
306
271
  /** Returns the persisted live session, or null when none is stored. */
@@ -309,6 +274,8 @@ declare class PersistenceService {
309
274
  clearActiveSession(): Promise<void>;
310
275
  clearAllData(): Promise<void>;
311
276
  ingestFileData(tests: Record<string, unknown>[], interceptors: Record<string, unknown>[]): Promise<void>;
277
+ hasDirectoryAccess(): Promise<boolean>;
278
+ writeUploadedFile(filename: string, bytes: ArrayBuffer): Promise<void>;
312
279
  requestDirectoryPermissions(): Promise<void>;
313
280
  /**
314
281
  * Writes captured fixtures into `cypress/fixtures/` using the configured Cypress
@@ -321,24 +288,17 @@ declare class PersistenceService {
321
288
  }>): Promise<number>;
322
289
  private bulkInsertWithoutId;
323
290
  }
324
- declare const persistenceService: PersistenceService;
325
291
 
326
292
  declare function generateAlias(method: string, url: string): string;
293
+ /** @internal — resets singleton state between test suites; do not use in production code */
294
+ declare function _resetHttpMonitorState(): void;
327
295
  declare class HttpMonitor {
328
296
  private readonly recording;
329
- private originalFetch;
330
- private originalXHR;
331
297
  constructor(recording: RecordingService);
332
298
  install(): void;
333
299
  uninstall(): void;
334
300
  isExtendedHttpEnabled(): boolean;
335
301
  isFixtureModeEnabled(): boolean;
336
- private installFetch;
337
- private uninstallFetch;
338
- private installXhr;
339
- private uninstallXhr;
340
- private handleFetchInterception;
341
- private handleXhrInterception;
342
302
  }
343
303
 
344
304
  declare const SCROLLBAR_STYLES = "\n.swal2-popup::-webkit-scrollbar,\n.swal2-html-container::-webkit-scrollbar,\n.swal2-content::-webkit-scrollbar,\n.swal2-container::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n}\n.swal2-popup::-webkit-scrollbar-thumb,\n.swal2-html-container::-webkit-scrollbar-thumb,\n.swal2-content::-webkit-scrollbar-thumb,\n.swal2-container::-webkit-scrollbar-thumb {\n background: #30363d;\n border-radius: 3px;\n}\n.swal2-popup::-webkit-scrollbar-thumb:hover,\n.swal2-html-container::-webkit-scrollbar-thumb:hover,\n.swal2-content::-webkit-scrollbar-thumb:hover {\n background: #484f58;\n}\n.swal2-popup::-webkit-scrollbar-track,\n.swal2-html-container::-webkit-scrollbar-track,\n.swal2-content::-webkit-scrollbar-track,\n.swal2-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.swal2-popup, .swal2-html-container, .swal2-content, .swal2-container {\n scrollbar-width: thin;\n scrollbar-color: #30363d transparent;\n}\n";
@@ -352,6 +312,7 @@ declare function makeModalResizable(modal: HTMLElement, options?: {
352
312
  declare function makeSwalDraggable(): void;
353
313
  declare function makeSwalDraggableByContentId(contentId: string): void;
354
314
  declare function setSwal2DataCyAttribute(dataCy?: string): void;
315
+ declare function ensurePopupDimensions(popup: HTMLElement | null, heightPx: number): void;
355
316
 
356
317
  declare function showToast(message: string, isSuccess?: boolean): void;
357
318
 
@@ -431,71 +392,6 @@ declare function boxTopLeftFor(toggleCentre: Point, dir: ExpandDirection): Point
431
392
  */
432
393
  declare function inferAssertionCommand(el: HTMLElement, selector: string): string;
433
394
 
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
395
  declare class SelectorPickerElement extends HTMLElement {
500
396
  targetElement: HTMLElement | null;
501
397
  recording: RecordingService;
@@ -547,29 +443,37 @@ declare class TestPrevisualizerElement extends HTMLElement {
547
443
  private render;
548
444
  }
549
445
 
446
+ type IssueTrackerProvider = 'jira' | 'github' | 'gitlab' | 'azure' | 'bitbucket' | 'custom';
447
+ interface IssueTrackerConfig {
448
+ enabled: boolean;
449
+ provider: IssueTrackerProvider;
450
+ baseUrl: string;
451
+ }
452
+
550
453
  declare class SaveTestElement extends HTMLElement {
551
454
  private shadow;
552
455
  private _step;
456
+ private _stepBeforeDiscard;
553
457
  description: string;
554
458
  notes: string;
555
459
  tags: string[];
556
460
  ticketId: string;
557
- /** Set by the host from config so the ticket placeholder/validation is provider-aware. */
558
- issueTrackerProviderId: string;
461
+ issueTrackerConfig: IssueTrackerConfig;
559
462
  translation: TranslationService;
560
463
  constructor();
561
464
  connectedCallback(): void;
562
- get step(): 'ask' | 'desc';
465
+ get step(): 'ask' | 'desc' | 'confirm-discard';
563
466
  askSave(): void;
564
467
  confirmSave(): void;
565
468
  confirmSaveAndExport(): void;
566
469
  cancel(): void;
470
+ confirmDiscard(): void;
471
+ backFromDiscard(): void;
567
472
  restartComponent(): void;
568
473
  addTag(tag: string): void;
569
474
  removeTag(tag: string): void;
570
475
  private t;
571
- /** Builds the ticket field view: provider-aware placeholder + soft (non-blocking) format check. */
572
- private ticketView;
476
+ get ticketIdWarning(): boolean;
573
477
  private dispatch;
574
478
  private render;
575
479
  }
@@ -586,15 +490,14 @@ declare class TestEditorElement extends HTMLElement {
586
490
  selectedIds: Set<number>;
587
491
  describeName: string;
588
492
  groupByTicket: boolean;
589
- issueTrackerProviderId: string;
590
- issueTrackerParams: Record<string, Record<string, string>>;
493
+ issueTrackerConfig: IssueTrackerConfig;
591
494
  constructor();
592
495
  connectedCallback(): void;
593
496
  loadTests(): Promise<void>;
594
- toggleGroupByTicket(): void;
595
497
  deleteTest(id: number): Promise<void>;
596
498
  toggleExpand(index: number): void;
597
499
  hasInterceptors(testId: number): boolean;
500
+ toggleGroupByTicket(): void;
598
501
  toggleSelectMode(): void;
599
502
  toggleSelectTest(id: number): void;
600
503
  generateDescribe(): void;
@@ -616,13 +519,21 @@ declare class ConfigurationElement extends HTMLElement {
616
519
  smartSelectorEnabled: boolean;
617
520
  startHidden: boolean;
618
521
  resumeTtlMinutes: number;
619
- issueTrackerProviderId: string;
620
- issueTrackerParams: Record<string, Record<string, string>>;
621
522
  isExporting: boolean;
622
523
  exportMode: ExportMode;
623
524
  exportTests: TestWithDetails[];
624
525
  exportSelectedIds: Set<number>;
625
526
  exportSelectedTags: Set<string>;
527
+ issueTrackerConfig: IssueTrackerConfig;
528
+ isLoginSetupOpen: boolean;
529
+ loginSetupConfig: LoginSetupConfig | null;
530
+ loginSetupDraftPath: string;
531
+ loginSetupDraftFunctions: string[];
532
+ loginSetupDraftBeforeFn: string | null;
533
+ loginSetupDraftBeforeEachFn: string | null;
534
+ loginSetupDraftHasContent: boolean;
535
+ private loginSetupDraftHandle;
536
+ private loginSetupDraftContent;
626
537
  private filesystemGranted;
627
538
  private cypressFolderName;
628
539
  constructor();
@@ -634,13 +545,19 @@ declare class ConfigurationElement extends HTMLElement {
634
545
  onFixtureModeChange(checked: boolean): void;
635
546
  onStartHiddenChange(checked: boolean): Promise<void>;
636
547
  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
548
  onResetWidgetPosition(): void;
642
549
  onSmartSelectorChange(enabled: boolean): Promise<void>;
643
550
  onSelectorStrategyChange(strategy: SelectorStrategy): Promise<void>;
551
+ onIssueTrackerEnabledChange(enabled: boolean): Promise<void>;
552
+ onIssueTrackerProviderChange(provider: IssueTrackerProvider): Promise<void>;
553
+ onIssueTrackerBaseUrlChange(baseUrl: string): Promise<void>;
554
+ openLoginSetupPanel(): void;
555
+ closeLoginSetupPanel(): void;
556
+ saveLoginSetupConfig(config: LoginSetupConfig): Promise<void>;
557
+ clearLoginSetupConfig(): Promise<void>;
558
+ loginSetupPickFile(): Promise<void>;
559
+ loginSetupCreateScaffold(): Promise<void>;
560
+ loginSetupRescan(): Promise<void>;
644
561
  changeFolder(): Promise<void>;
645
562
  revokeAccess(): Promise<void>;
646
563
  private downloadTests;
@@ -679,6 +596,7 @@ declare class AdvancedTestEditorElement extends HTMLElement {
679
596
  isCreatingFolder: boolean;
680
597
  collapsedDirs: Set<string>;
681
598
  sidebarWidth: number;
599
+ loginSetupConfig: LoginSetupConfig | null;
682
600
  private hasPermission;
683
601
  private needsReauth;
684
602
  private _dirHandle;
@@ -706,7 +624,6 @@ declare class AdvancedTestEditorElement extends HTMLElement {
706
624
  declare class FilePreviewElement extends HTMLElement {
707
625
  private shadow;
708
626
  private textarea;
709
- private editor;
710
627
  fileName: string | null;
711
628
  closeLabel: string;
712
629
  translation: TranslationService;
@@ -726,10 +643,7 @@ declare class FilePreviewElement extends HTMLElement {
726
643
  private _runOutput;
727
644
  constructor();
728
645
  connectedCallback(): void;
729
- disconnectedCallback(): void;
730
646
  private t;
731
- /** Current editor content (CodeMirror if upgraded, else the textarea/fallback). */
732
- private currentValue;
733
647
  get fileContent(): string | null;
734
648
  set fileContent(v: string | null);
735
649
  saveFile(): void;
@@ -750,12 +664,6 @@ declare class FilePreviewElement extends HTMLElement {
750
664
  */
751
665
  insertBlocks(): void;
752
666
  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
667
  }
760
668
 
761
669
  /**
@@ -796,6 +704,7 @@ declare class LibE2eRecorderElement extends HTMLElement {
796
704
  private httpMonitor?;
797
705
  private smartSelectorEnabled;
798
706
  private _needsRecordingRebuild;
707
+ private issueTrackerConfig;
799
708
  recording: RecordingService;
800
709
  persistence: PersistenceService;
801
710
  translation: TranslationService;
@@ -873,13 +782,12 @@ declare class LibE2eRecorderElement extends HTMLElement {
873
782
  private showFileEditorDialog;
874
783
  private onSaveTest;
875
784
  private onSaveAndExportTest;
876
- /** Writes captured fixtures to cypress/fixtures and toasts the outcome (spec 012). */
877
- private writeFixturesIfAny;
878
785
  private toggleModal;
879
786
  private resizePopup;
787
+ private openSwalDialog;
880
788
  private render;
881
789
  }
882
790
 
883
- declare const VERSION = "0.8.0";
791
+ declare const VERSION = "0.10.0";
884
792
 
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 };
793
+ 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, TOGGLE_MARGIN, type TestDetail, TestEditorElement, TestPrevisualizerElement, type TestWithDetails, TransformationService, TranslationService, VERSION, _resetHttpMonitorState, advancedTestTransformationService, boxOffsetForDirection, boxTopLeftFor, clampTogglePosition, defaultTogglePosition, ensurePopupDimensions, generateAlias, inferAssertionCommand, injectStyles, isLang, isLocalHost, localeForLang, makeModalResizable, makeSwalDraggable, makeSwalDraggableByContentId, resolveExpandDirection, selectTestsForExport, setSwal2DataCyAttribute, showToast, transformationService, translationService };