@alwaysmeticulous/sdk-bundles-api 2.41.0 → 2.42.1

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.ts CHANGED
@@ -2,7 +2,7 @@ export { RecordConfig, RecordSettings, RecordState } from "./record";
2
2
  export { MeticulousWindowConfig, NetworkResponseSanitizer, } from "./record/record-settings";
3
3
  export { ReplayUserInteractionsResult, ReplayUserInteractionsResultFull, ReplayUserInteractionsResultShort, BeforeUserEventOptions, } from "./replay/bundle-to-sdk/index";
4
4
  export { BootstrapReplayUserInteractionsFn, BootstrapReplayUserInteractionsOptions, OnReplayTimelineEventFn, ReplayUserInteractionsFn, ReplayUserInteractionsOptions, VirtualTimeOptions, InstallVirtualEventLoopOpts, SetupReplayNetworkStubbingFn, NetworkStubbingOptions, BrowserContextSeedingOptions, SetupBrowserContextSeedingFn, ScreenshottingOptions, } from "./replay/sdk-to-bundle";
5
- export { ReplayAndStoreResultsOptions, ReplayTarget, SnapshottedAssetsReplayTarget, URLReplayTarget, OriginalRecordedURLReplayTarget, ReplayExecutionOptions, ReplayOrchestratorScreenshottingOptions, ScreenshottingEnabledOptions, StoryboardOptions, GeneratedBy, GeneratedByNotebookRun, GeneratedByTestRun, GeneratedByReplayCommand, ScreenshotComparisonOptions, ScreenshotComparisonEnabledOptions, CompareScreenshotsTo, CompareScreenshotsToSpecificReplay, CompareScreenshotsToTestRun, DoNotCompareScreenshots, } from "./replay-orchestrator/sdk-to-bundle/execute-replay";
5
+ export { ReplayAndStoreResultsOptions, ReplayTarget, SnapshottedAssetsReplayTarget, URLReplayTarget, OriginalRecordedURLReplayTarget, ReplayExecutionOptions, ReplayOrchestratorScreenshottingOptions, ScreenshottingEnabledOptions, StoryboardOptions, GeneratedBy, GeneratedByNotebookRun, GeneratedByTestRun, GeneratedByReplayCommand, ScreenshotComparisonOptions, ScreenshotComparisonEnabledOptions, CompareScreenshotsTo, CompareScreenshotsToSpecificReplay, CompareScreenshotsToTestRun, DoNotCompareScreenshots, OutOfDateClientError, } from "./replay-orchestrator/sdk-to-bundle/execute-replay";
6
6
  export { ExecuteTestRunOptions } from "./replay-orchestrator/sdk-to-bundle/execute-test-run";
7
7
  export { ExecuteTestRunResult, TestRunExecution, RunningTestRunExecution, FinishedTestRunExecution, TestRunProgress, DetailedTestCaseResult, } from "./replay-orchestrator/bundle-to-sdk/execute-test-run";
8
- export { ReplayAndStoreResultsResult } from "./replay-orchestrator/bundle-to-sdk/execute-replay";
8
+ export { ReplayAndStoreResultsResult, ReplayExecution, BeforeUserEventResult, } from "./replay-orchestrator/bundle-to-sdk/execute-replay";
@@ -1,4 +1,19 @@
1
- import { Replay, ScreenshotDiffResult } from "@alwaysmeticulous/api";
1
+ import { Replay, ReplayableEvent, ScreenshotDiffResult } from "@alwaysmeticulous/api";
2
+ export interface ReplayExecution {
3
+ /**
4
+ * Promise resolves when the replay is complete.
5
+ */
6
+ finalResult: Promise<ReplayAndStoreResultsResult>;
7
+ eventsBeingReplayed: ReplayableEvent[];
8
+ /**
9
+ * When called will log the target of the given event to the browser console.
10
+ */
11
+ logEventTarget: (event: ReplayableEvent) => Promise<void>;
12
+ /**
13
+ * Closes the browser window and stops the replay short.
14
+ */
15
+ closePage: () => Promise<void>;
16
+ }
2
17
  export interface ReplayAndStoreResultsResult {
3
18
  replay: Replay;
4
19
  /**
@@ -6,3 +21,12 @@ export interface ReplayAndStoreResultsResult {
6
21
  */
7
22
  screenshotDiffResultsByBaseReplayId: Record<string, ScreenshotDiffResult[]>;
8
23
  }
24
+ export interface BeforeUserEventResult {
25
+ /**
26
+ * If provided then execution will continue, without calling onBeforeUserEvent, until
27
+ * the next event with this index is reached.
28
+ *
29
+ * If omitted then onBeforeUserEvent will be called again on the immediate next event.
30
+ */
31
+ nextEventIndexToPauseBefore?: number;
32
+ }
@@ -1,4 +1,6 @@
1
1
  import { ScreenshotDiffOptions } from "@alwaysmeticulous/api";
2
+ import { BeforeUserEventOptions } from "../../replay/bundle-to-sdk";
3
+ import { BeforeUserEventResult } from "../bundle-to-sdk/execute-replay";
2
4
  export interface ReplayAndStoreResultsOptions {
3
5
  replayTarget: ReplayTarget;
4
6
  executionOptions: ReplayExecutionOptions;
@@ -10,7 +12,31 @@ export interface ReplayAndStoreResultsOptions {
10
12
  commitSha: string | null | undefined;
11
13
  sessionId: string;
12
14
  cookiesFile: string | null | undefined;
13
- debugger: boolean;
15
+ /**
16
+ * Called when the user or runner closes the page or browser window
17
+ */
18
+ onClosePage?: () => void;
19
+ /**
20
+ * The replay runner will block on the promise returned before replaying the
21
+ * next event. This allows the caller to pause the replay, or control the playback.
22
+ */
23
+ onBeforeUserEvent?: (opts: BeforeUserEventOptions) => Promise<BeforeUserEventResult>;
24
+ /**
25
+ * The maximum version of the replayAndStoreResults schema (the types in this inferface
26
+ * and the return type) that the caller is compatible with.
27
+ *
28
+ * This version number is bumped on every API change, and allows the replayAndStoreResults
29
+ * code to detect if it's being called by client that is not compatible with the latest version,
30
+ * and if so throw an OutOfDateClientError. It is then up to the client to display a message to ask
31
+ * the user to update to a newer version.
32
+ */
33
+ maxSemanticVersionSupported: number;
34
+ }
35
+ /**
36
+ * See {@link ReplayAndStoreResultsOptions.maxSemanticVersionSupported} for more details.
37
+ */
38
+ export interface OutOfDateClientError extends Error {
39
+ name: "OutOfDateClient";
14
40
  }
15
41
  /**
16
42
  * Similar to ScreenshotAssertionsOptions, but also specifies the test run or base replay id
@@ -48,4 +48,14 @@ export interface ExecuteTestRunOptions {
48
48
  baseTestRunId: string | null;
49
49
  onTestRunCreated?: (testRun: RunningTestRunExecution) => void;
50
50
  onTestFinished?: (testRun: RunningTestRunExecution) => void;
51
+ /**
52
+ * The maximum version of the executeTestRun schema (the types in this inferface
53
+ * and the return type) that the caller is compatible with.
54
+ *
55
+ * This version number is bumped on every API change, and allows the executeTestRun
56
+ * code to detect if it's being called by client that is not compatible with the latest version,
57
+ * and if so throw an OutOfDateClientError. It is then up to the client to display a message to ask
58
+ * the user to update to a newer version.
59
+ */
60
+ maxSemanticVersionSupported: number;
51
61
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwaysmeticulous/sdk-bundles-api",
3
- "version": "2.41.0",
3
+ "version": "2.42.1",
4
4
  "description": "Meticulous common types",
5
5
  "license": "ISC",
6
6
  "main": "dist/index.js",
@@ -19,7 +19,7 @@
19
19
  "depcheck": "depcheck --ignore-patterns=dist"
20
20
  },
21
21
  "devDependencies": {
22
- "@alwaysmeticulous/api": "^2.41.0"
22
+ "@alwaysmeticulous/api": "^2.42.0"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "loglevel": "^1.8.0",
@@ -50,5 +50,5 @@
50
50
  "bugs": {
51
51
  "url": "https://github.com/alwaysmeticulous/meticulous-sdk/issues"
52
52
  },
53
- "gitHead": "778895a7cd6a010538e338f9b2da225e71c53f48"
53
+ "gitHead": "6c08f6e79f34f7efdc2ebd0e8e4e09baffeb8f04"
54
54
  }