@alwaysmeticulous/record 2.100.0 → 2.102.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.
@@ -1,4 +1,4 @@
1
1
  import { RecordLoginFlowOptions } from "../types";
2
2
  export declare const LOGIN_FLOW_SESSION_RECORDING_SOURCE = "cli-login-flow";
3
3
  export declare const LOGIN_FLOW_DATA_SESSION_RECORDING_SOURCE = "cli-login-flow-application-storage";
4
- export declare const recordLoginFlowSession: ({ recordingToken, devTools, bypassCSP, recordingSnippetManualInit, width, height, uploadIntervalMs, captureHttpOnlyCookies, }: RecordLoginFlowOptions) => Promise<void>;
4
+ export declare const recordLoginFlowSession: ({ recordingToken, devTools, bypassCSP, recordingSnippetManualInit, width, height, uploadIntervalMs, captureHttpOnlyCookies, appUrl, }: RecordLoginFlowOptions) => Promise<void>;
@@ -30,7 +30,7 @@ const bootstrapLoginFlowRecordingPage = async ({ page, recordingToken, recording
30
30
  recordingSource,
31
31
  });
32
32
  };
33
- const recordLoginFlowSession = async ({ recordingToken, devTools, bypassCSP, recordingSnippetManualInit, width, height, uploadIntervalMs, captureHttpOnlyCookies, }) => {
33
+ const recordLoginFlowSession = async ({ recordingToken, devTools, bypassCSP, recordingSnippetManualInit, width, height, uploadIntervalMs, captureHttpOnlyCookies, appUrl, }) => {
34
34
  const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
35
35
  logger.info("Opening browser...");
36
36
  const defaultViewport = width && height ? { width, height } : null;
@@ -56,10 +56,12 @@ const recordLoginFlowSession = async ({ recordingToken, devTools, bypassCSP, rec
56
56
  }
57
57
  });
58
58
  // Expose login page functions
59
- await (0, expose_new_recording_callback_1.exposeNewRecordingCallback)(loginFlowPage, () => {
59
+ await (0, expose_new_recording_callback_1.exposeNewRecordingCallback)(loginFlowPage, ({ sessionId }) => {
60
60
  startedLoginSessionRecording = true;
61
+ logger.debug(`Recording login flow: ${sessionId}`);
61
62
  });
62
63
  await loginFlowPage.exposeFunction("__meticulousFinishRecording", async () => {
64
+ logger.debug("Finish recording button clicked");
63
65
  const loginDataPage = await context.newPage();
64
66
  const finalLoginUrl = loginFlowPage.url();
65
67
  loginDataPage.on("close", () => {
@@ -71,12 +73,12 @@ const recordLoginFlowSession = async ({ recordingToken, devTools, bypassCSP, rec
71
73
  const recordingSavingScreenPage = await context.newPage();
72
74
  await recordingSavingScreenPage.goto(constants_1.METICULOUS_RECORD_LOGIN_FLOW_SAVING_DOCS_URL);
73
75
  // Flush any pending payloads from the main login flow recording page and close it
74
- await loginFlowPage.evaluate(() => {
75
- var _a, _b;
76
- (_b = (_a = window.__meticulous) === null || _a === void 0 ? void 0 : _a.flushPendingPayloads) === null || _b === void 0 ? void 0 : _b.call(_a);
77
- });
76
+ await flushPendingPayloads(loginFlowPage, logger);
78
77
  isRecordingComplete = true;
79
78
  await loginFlowPage.close();
79
+ await (0, expose_new_recording_callback_1.exposeNewRecordingCallback)(loginDataPage, ({ sessionId }) => {
80
+ logger.debug(`Recording login data: ${sessionId}`);
81
+ });
80
82
  await bootstrapLoginFlowRecordingPage({
81
83
  page: loginDataPage,
82
84
  recordingToken,
@@ -87,11 +89,11 @@ const recordLoginFlowSession = async ({ recordingToken, devTools, bypassCSP, rec
87
89
  recordingSource: exports.LOGIN_FLOW_DATA_SESSION_RECORDING_SOURCE,
88
90
  });
89
91
  // Navigate to the final login flow url and flush any pending payloads
90
- await loginDataPage.goto(finalLoginUrl, { waitUntil: "networkidle0" });
91
- await loginDataPage.evaluate(() => {
92
- var _a, _b;
93
- (_b = (_a = window.__meticulous) === null || _a === void 0 ? void 0 : _a.flushPendingPayloads) === null || _b === void 0 ? void 0 : _b.call(_a);
92
+ logger.debug("Reloading page to capture application storage...");
93
+ await loginDataPage.goto(finalLoginUrl, {
94
+ waitUntil: "domcontentloaded",
94
95
  });
96
+ await flushPendingPayloads(loginDataPage, logger);
95
97
  onDataSessionSaved = true;
96
98
  await loginDataPage.close();
97
99
  }
@@ -112,7 +114,7 @@ const recordLoginFlowSession = async ({ recordingToken, devTools, bypassCSP, rec
112
114
  bypassCSP,
113
115
  recordingSource: exports.LOGIN_FLOW_SESSION_RECORDING_SOURCE,
114
116
  });
115
- await loginFlowPage.goto(constants_1.INITIAL_METICULOUS_RECORD_LOGIN_FLOW_DOCS_URL);
117
+ await loginFlowPage.goto(appUrl !== null && appUrl !== void 0 ? appUrl : constants_1.INITIAL_METICULOUS_RECORD_LOGIN_FLOW_DOCS_URL);
116
118
  // Wait for the recording to complete or the page to close.
117
119
  await recordingCompleteCallback.promise;
118
120
  if (!loginFlowPage.isClosed()) {
@@ -133,4 +135,18 @@ const recordLoginFlowSession = async ({ recordingToken, devTools, bypassCSP, rec
133
135
  chalk_1.default.green.bold("Return to https://app.meticulous.ai to finish setting up your project."));
134
136
  };
135
137
  exports.recordLoginFlowSession = recordLoginFlowSession;
138
+ const flushPendingPayloads = async (page, logger) => {
139
+ // evaluteHandle waits for the promise to resolve if the function returns a promise
140
+ logger.debug("Flushing pending payloads...");
141
+ const pendingPayloadsResult = await page.evaluateHandle(() => {
142
+ var _a;
143
+ const flushPendingPayloads = (_a = window.__meticulous) === null || _a === void 0 ? void 0 : _a.flushPendingPayloads;
144
+ if (flushPendingPayloads == null) {
145
+ throw new Error("Expected Meticulous recorder to be initialized");
146
+ }
147
+ return flushPendingPayloads();
148
+ });
149
+ await pendingPayloadsResult.dispose();
150
+ logger.debug("Finished flushing pending payloads");
151
+ };
136
152
  //# sourceMappingURL=record-login-flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"record-login-flow.js","sourceRoot":"","sources":["../../src/record/record-login-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record-login-flow.js","sourceRoot":"","sources":["../../src/record/record-login-flow.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { RecordSessionOptions } from "../types";
2
- export declare const recordSession: ({ recordingToken, appCommitHash, devTools, bypassCSP, recordingSnippetManualInit, width, height, uploadIntervalMs, incognito, cookieDir, debugLogger, onDetectedSession, captureHttpOnlyCookies, }: RecordSessionOptions) => Promise<void>;
2
+ export declare const recordSession: ({ recordingToken, appCommitHash, devTools, bypassCSP, recordingSnippetManualInit, width, height, uploadIntervalMs, incognito, cookieDir, debugLogger, onDetectedSession, captureHttpOnlyCookies, appUrl, }: RecordSessionOptions) => Promise<void>;
@@ -35,7 +35,7 @@ const puppeteer_1 = __importStar(require("puppeteer"));
35
35
  const constants_1 = require("./constants");
36
36
  const record_utils_1 = require("./record.utils");
37
37
  const COOKIE_FILENAME = "cookies.json";
38
- const recordSession = async ({ recordingToken, appCommitHash, devTools, bypassCSP, recordingSnippetManualInit, width, height, uploadIntervalMs, incognito, cookieDir, debugLogger, onDetectedSession, captureHttpOnlyCookies, }) => {
38
+ const recordSession = async ({ recordingToken, appCommitHash, devTools, bypassCSP, recordingSnippetManualInit, width, height, uploadIntervalMs, incognito, cookieDir, debugLogger, onDetectedSession, captureHttpOnlyCookies, appUrl, }) => {
39
39
  const logger = loglevel_1.default.getLogger(common_1.METICULOUS_LOGGER_NAME);
40
40
  logger.info("Opening browser...");
41
41
  debugLogger === null || debugLogger === void 0 ? void 0 : debugLogger.log("recordSession options:");
@@ -107,7 +107,7 @@ const recordSession = async ({ recordingToken, appCommitHash, devTools, bypassCS
107
107
  uploadIntervalMs: uploadIntervalMs || constants_1.DEFAULT_UPLOAD_INTERVAL_MS,
108
108
  captureHttpOnlyCookies: captureHttpOnlyCookies !== null && captureHttpOnlyCookies !== void 0 ? captureHttpOnlyCookies : true,
109
109
  });
110
- page.goto(constants_1.INITIAL_METICULOUS_RECORD_DOCS_URL);
110
+ page.goto(appUrl !== null && appUrl !== void 0 ? appUrl : constants_1.INITIAL_METICULOUS_RECORD_DOCS_URL);
111
111
  logger.info("Browser ready");
112
112
  // Collect and show recorded session ids
113
113
  // Also save page cookies if not in incognito context
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/record/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/record/record.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -12,6 +12,8 @@ export interface RecordSessionOptions {
12
12
  cookieDir?: string | null | undefined;
13
13
  debugLogger?: DebugLogger | null | undefined;
14
14
  captureHttpOnlyCookies?: boolean;
15
+ /** If set will jump straight to recording from this URL */
16
+ appUrl?: string | null | undefined;
15
17
  onDetectedSession?: (sessionId: string) => void;
16
18
  }
17
19
  export type RecordLoginFlowOptions = Omit<RecordSessionOptions, "appCommitHash" | "incognito" | "cookieDir" | "debugLogger" | "onDetectedSession">;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwaysmeticulous/record",
3
- "version": "2.100.0",
3
+ "version": "2.102.0",
4
4
  "description": "The Meticulous toolkit to record user sessions",
5
5
  "license": "ISC",
6
6
  "main": "dist/index.js",
@@ -42,5 +42,5 @@
42
42
  "bugs": {
43
43
  "url": "https://github.com/alwaysmeticulous/meticulous-sdk/issues"
44
44
  },
45
- "gitHead": "41b4b22d94164acf2ac07b1261c4edd03f0c7b4f"
45
+ "gitHead": "6f04b5728f428792c3b356a04e60a751840cc985"
46
46
  }