playwright-ms-auth 0.0.13 → 0.0.15

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 +1 @@
1
- {"version":3,"file":"authenticate.d.ts","sourceRoot":"","sources":["../src/authenticate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,SAAS,CAAC;AAc9D;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAuEf;AAsRD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAe5E"}
1
+ {"version":3,"file":"authenticate.d.ts","sourceRoot":"","sources":["../src/authenticate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,SAAS,CAAC;AAc9D;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAuEf;AA6RD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAe5E"}
@@ -1,47 +1,51 @@
1
- import { expect, chromium } from "@playwright/test";
2
- import { CredentialProviderFactory } from "./providers";
3
- import { addCertAuthRoute, waitForCertAuthResponse } from "./certAuth";
4
- import { log, getStorageStatePath, getAuthScreenshotPath, ensureDirExists, isStorageStateValid, } from "./utils";
5
- import { createHash } from "node:crypto";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authenticate = authenticate;
4
+ exports.loadStorageState = loadStorageState;
5
+ const test_1 = require("@playwright/test");
6
+ const providers_1 = require("./providers");
7
+ const certAuth_1 = require("./certAuth");
8
+ const utils_1 = require("./utils");
9
+ const node_crypto_1 = require("node:crypto");
6
10
  const DEFAULT_LOGIN_ENDPOINT = "login.microsoftonline.com";
7
11
  /**
8
12
  * Perform Microsoft Entra authentication and save storage state
9
13
  */
10
- export async function authenticate(config, targetUrl) {
11
- const storagePath = getStorageStatePath(config.email);
14
+ async function authenticate(config, targetUrl) {
15
+ const storagePath = (0, utils_1.getStorageStatePath)(config.email);
12
16
  // Check if existing storage state is still valid
13
- const isValid = await isStorageStateValid(storagePath, config.storageStateExpiration);
17
+ const isValid = await (0, utils_1.isStorageStateValid)(storagePath, config.storageStateExpiration);
14
18
  if (isValid) {
15
- log(`[MsAuth] Storage state for '${config.email}' is still valid, skipping authentication`);
19
+ (0, utils_1.log)(`[MsAuth] Storage state for '${config.email}' is still valid, skipping authentication`);
16
20
  return;
17
21
  }
18
- log(`[MsAuth] Starting authentication for '${config.email}'`);
19
- log(`[MsAuth] Credential provider: ${config.credentialProvider}`);
20
- log(`[MsAuth] Credential type: ${config.credentialType}`);
22
+ (0, utils_1.log)(`[MsAuth] Starting authentication for '${config.email}'`);
23
+ (0, utils_1.log)(`[MsAuth] Credential provider: ${config.credentialProvider}`);
24
+ (0, utils_1.log)(`[MsAuth] Credential type: ${config.credentialType}`);
21
25
  if (config.headless === false) {
22
- log(`[MsAuth] Running in headful mode (visible browser)`);
26
+ (0, utils_1.log)(`[MsAuth] Running in headful mode (visible browser)`);
23
27
  }
24
28
  // Create credential provider and retrieve credential
25
- const provider = CredentialProviderFactory.createProvider(config.credentialProvider, config.providerConfig);
29
+ const provider = providers_1.CredentialProviderFactory.createProvider(config.credentialProvider, config.providerConfig);
26
30
  const credential = await provider.getCredential();
27
31
  // Validate credential type matches configuration
28
32
  if (credential.type !== config.credentialType) {
29
- log(`[MsAuth] ##[warning]Credential type mismatch: expected '${config.credentialType}' but got '${credential.type}'`);
33
+ (0, utils_1.log)(`[MsAuth] ##[warning]Credential type mismatch: expected '${config.credentialType}' but got '${credential.type}'`);
30
34
  }
31
35
  // Launch browser and perform authentication
32
36
  const headlessMode = config.headless !== false;
33
37
  console.log(`[CONSOLE] About to launch browser with headless=${headlessMode} (config.headless=${config.headless})`);
34
- log(`[MsAuth] About to launch browser with headless=${headlessMode} (config.headless=${config.headless})`);
35
- const browser = await chromium.launch({
38
+ (0, utils_1.log)(`[MsAuth] About to launch browser with headless=${headlessMode} (config.headless=${config.headless})`);
39
+ const browser = await test_1.chromium.launch({
36
40
  headless: headlessMode,
37
41
  channel: "msedge", // Use Microsoft Edge for better Windows compatibility
38
42
  args: ["--no-sandbox", "--disable-setuid-sandbox"],
39
43
  });
40
44
  console.log(`[CONSOLE] Browser launched successfully with headless=${headlessMode}`);
41
- log(`[MsAuth] Browser launched successfully`);
45
+ (0, utils_1.log)(`[MsAuth] Browser launched successfully`);
42
46
  try {
43
47
  await performAuthenticationFlow(browser, config, targetUrl, credential, storagePath);
44
- log(`[MsAuth] ##[section]Authentication completed successfully for '${config.email}'`);
48
+ (0, utils_1.log)(`[MsAuth] ##[section]Authentication completed successfully for '${config.email}'`);
45
49
  }
46
50
  finally {
47
51
  await browser.close();
@@ -57,16 +61,16 @@ async function performAuthenticationFlow(browser, config, targetUrl, credential,
57
61
  const page = await context.newPage();
58
62
  try {
59
63
  // Navigate to target URL which will redirect to login
60
- log(`[MsAuth] Navigating to ${targetUrl}`);
64
+ (0, utils_1.log)(`[MsAuth] Navigating to ${targetUrl}`);
61
65
  await page.goto(targetUrl, { waitUntil: "domcontentloaded" });
62
66
  // Verify we're on the Entra login page
63
67
  const loginEndpoint = config.loginEndpoint || DEFAULT_LOGIN_ENDPOINT;
64
68
  const loginUrlPattern = new RegExp(`https:\\/\\/${loginEndpoint.replace(/\./g, "\\.")}\\\/`);
65
- await expect(page, "Expected Entra sign-in page").toHaveURL(loginUrlPattern, { timeout: 30000 });
69
+ await (0, test_1.expect)(page, "Expected Entra sign-in page").toHaveURL(loginUrlPattern, { timeout: 30000 });
66
70
  const actualEndpoint = new URL(page.url()).hostname;
67
- log(`[MsAuth] On Entra login page: ${actualEndpoint}`);
71
+ (0, utils_1.log)(`[MsAuth] On Entra login page: ${actualEndpoint}`);
68
72
  // Enter email address
69
- log(`[MsAuth] Entering email: ${config.email}`);
73
+ (0, utils_1.log)(`[MsAuth] Entering email: ${config.email}`);
70
74
  await page.getByRole("textbox", { name: "email" }).fill(config.email);
71
75
  await page.getByRole("button", { name: "next" }).click();
72
76
  // Handle authentication based on credential type
@@ -79,7 +83,7 @@ async function performAuthenticationFlow(browser, config, targetUrl, credential,
79
83
  // Handle "Stay signed in?" prompt
80
84
  await handleStaySignedIn(page);
81
85
  // Wait for redirect to target URL or any page on the same domain
82
- log(`[MsAuth] Waiting for redirect to target domain`);
86
+ (0, utils_1.log)(`[MsAuth] Waiting for redirect to target domain`);
83
87
  const targetDomain = new URL(targetUrl).origin;
84
88
  const targetBaseDomain = new URL(targetUrl).hostname.split('.').slice(-3).join('.'); // e.g., "test.powerapps.com"
85
89
  try {
@@ -99,30 +103,30 @@ async function performAuthenticationFlow(browser, config, targetUrl, credential,
99
103
  if (!isOnTargetDomain && !isOffLoginPage) {
100
104
  throw new Error(`Authentication may have failed. Expected to be on ${targetDomain} or similar, but got ${currentUrl}`);
101
105
  }
102
- log(`[MsAuth] Redirected to ${currentUrl} (authentication successful)`);
106
+ (0, utils_1.log)(`[MsAuth] Redirected to ${currentUrl} (authentication successful)`);
103
107
  }
104
108
  // Give it a bit more time for cookies to settle
105
109
  await page.waitForTimeout(2000);
106
110
  // Save storage state
107
- await ensureDirExists(getStorageStatePath(config.email).replace(/[^/\\\\]+$/, ""));
111
+ await (0, utils_1.ensureDirExists)((0, utils_1.getStorageStatePath)(config.email).replace(/[^/\\\\]+$/, ""));
108
112
  await context.storageState({ path: storagePath });
109
- log(`[MsAuth] Saved storage state to ${storagePath}`);
113
+ (0, utils_1.log)(`[MsAuth] Saved storage state to ${storagePath}`);
110
114
  // Take success screenshot
111
- const screenshotPath = getAuthScreenshotPath(config.email, "success");
112
- await ensureDirExists(screenshotPath.replace(/[^/\\\\]+$/, ""));
115
+ const screenshotPath = (0, utils_1.getAuthScreenshotPath)(config.email, "success");
116
+ await (0, utils_1.ensureDirExists)(screenshotPath.replace(/[^/\\\\]+$/, ""));
113
117
  await page
114
118
  .screenshot({ path: screenshotPath, fullPage: true })
115
119
  .catch(() => { });
116
- log(`[MsAuth] Screenshot saved to ${screenshotPath}`);
120
+ (0, utils_1.log)(`[MsAuth] Screenshot saved to ${screenshotPath}`);
117
121
  }
118
122
  catch (error) {
119
123
  // Take failure screenshot
120
- const screenshotPath = getAuthScreenshotPath(config.email, "failed");
121
- await ensureDirExists(screenshotPath.replace(/[^/\\\\]+$/, ""));
124
+ const screenshotPath = (0, utils_1.getAuthScreenshotPath)(config.email, "failed");
125
+ await (0, utils_1.ensureDirExists)(screenshotPath.replace(/[^/\\\\]+$/, ""));
122
126
  await page
123
127
  .screenshot({ path: screenshotPath, fullPage: true })
124
128
  .catch(() => { });
125
- log(`[MsAuth] ##[error]Authentication failed. Screenshot: ${screenshotPath}`);
129
+ (0, utils_1.log)(`[MsAuth] ##[error]Authentication failed. Screenshot: ${screenshotPath}`);
126
130
  throw error;
127
131
  }
128
132
  finally {
@@ -133,21 +137,21 @@ async function performAuthenticationFlow(browser, config, targetUrl, credential,
133
137
  * Handle certificate-based authentication
134
138
  */
135
139
  async function handleCertificateAuth(page, certificate, endpoint, email) {
136
- log(`[MsAuth] Using certificate authentication`);
140
+ (0, utils_1.log)(`[MsAuth] Using certificate authentication`);
137
141
  // Log certificate fingerprint for debugging
138
- const fingerprint = createHash("sha256")
142
+ const fingerprint = (0, node_crypto_1.createHash)("sha256")
139
143
  .update(new Uint8Array(certificate))
140
144
  .digest("hex");
141
- log(`[MsAuth] Certificate fingerprint: ${fingerprint}`);
142
- log(`[MsAuth] Certificate size: ${certificate.byteLength} bytes`);
145
+ (0, utils_1.log)(`[MsAuth] Certificate fingerprint: ${fingerprint}`);
146
+ (0, utils_1.log)(`[MsAuth] Certificate size: ${certificate.byteLength} bytes`);
143
147
  // Add certificate authentication route
144
- await addCertAuthRoute(page, { pfx: certificate, authEndpoint: endpoint });
148
+ await (0, certAuth_1.addCertAuthRoute)(page, { pfx: certificate, authEndpoint: endpoint });
145
149
  // Handle account type selection if needed
146
150
  const workOrSchoolButton = page.getByRole("button", {
147
151
  name: "Work or school account",
148
152
  });
149
153
  if (await workOrSchoolButton.isVisible({ timeout: 5000 }).catch(() => false)) {
150
- log(`[MsAuth] Selecting 'Work or school account'`);
154
+ (0, utils_1.log)(`[MsAuth] Selecting 'Work or school account'`);
151
155
  await workOrSchoolButton.click();
152
156
  }
153
157
  // Handle certificate selection if needed
@@ -155,41 +159,47 @@ async function handleCertificateAuth(page, certificate, endpoint, email) {
155
159
  .getByRole("link", { name: "certificate" })
156
160
  .or(page.getByRole("button", { name: "certificate" }));
157
161
  if (await certButton.isVisible({ timeout: 5000 }).catch(() => false)) {
158
- log(`[MsAuth] Selecting certificate authentication`);
162
+ (0, utils_1.log)(`[MsAuth] Selecting certificate authentication`);
159
163
  await certButton.click();
160
164
  }
161
165
  // Wait for certificate authentication to complete
162
- log(`[MsAuth] Waiting for certificate authentication response`);
163
- await waitForCertAuthResponse(page, endpoint);
166
+ (0, utils_1.log)(`[MsAuth] Waiting for certificate authentication response`);
167
+ try {
168
+ await (0, certAuth_1.waitForCertAuthResponse)(page, endpoint, 10000);
169
+ }
170
+ catch (timeoutError) {
171
+ (0, utils_1.log)(`[MsAuth] ##[warning]Certificate authentication response not detected - this may be okay if auth flow changed`);
172
+ // Continue anyway - the cert auth might have succeeded without the expected response
173
+ }
164
174
  // Check for certificate validation errors
165
175
  const certFailure = page.getByRole("heading", {
166
176
  name: /Certificate validation failed|We couldn't sign you in with a certificate/i,
167
177
  });
168
- if (await certFailure.isVisible({ timeout: 2000 }).catch(() => false)) {
178
+ if (await certFailure.isVisible({ timeout: 5000 }).catch(() => false)) {
169
179
  const failureText = await certFailure.textContent();
170
- log(`[MsAuth] ##[error]Certificate authentication failed: ${failureText}`);
180
+ (0, utils_1.log)(`[MsAuth] ##[error]Certificate authentication failed: ${failureText}`);
171
181
  // Try to get error details
172
182
  const moreDetails = page.getByRole("button", { name: "More details" });
173
- if (await moreDetails.isVisible({ timeout: 1000 }).catch(() => false)) {
183
+ if (await moreDetails.isVisible({ timeout: 5000 }).catch(() => false)) {
174
184
  await moreDetails.click();
175
185
  await page
176
186
  .context()
177
187
  .grantPermissions(["clipboard-read"])
178
188
  .catch(() => { });
179
189
  const copyButton = page.getByRole("button", { name: "Copy" });
180
- if (await copyButton.isVisible({ timeout: 1000 }).catch(() => false)) {
190
+ if (await copyButton.isVisible({ timeout: 5000 }).catch(() => false)) {
181
191
  await copyButton.click();
182
192
  const errorDetails = await page
183
193
  .evaluate("navigator.clipboard.readText()")
184
194
  .catch(() => "");
185
195
  if (errorDetails) {
186
- log(`[MsAuth] ##[error]Error details: ${errorDetails}`);
196
+ (0, utils_1.log)(`[MsAuth] ##[error]Error details: ${errorDetails}`);
187
197
  }
188
198
  }
189
199
  }
190
200
  throw new Error(`Certificate authentication failed for ${email}. Check Entra sign-in logs.`);
191
201
  }
192
- log(`[MsAuth] Certificate authentication successful`);
202
+ (0, utils_1.log)(`[MsAuth] Certificate authentication successful`);
193
203
  // Wait a bit for any post-auth UI to load
194
204
  await page.waitForTimeout(2000);
195
205
  }
@@ -197,13 +207,13 @@ async function handleCertificateAuth(page, certificate, endpoint, email) {
197
207
  * Handle password-based authentication
198
208
  */
199
209
  async function handlePasswordAuth(page, password, email) {
200
- log(`[MsAuth] Using password authentication`);
210
+ (0, utils_1.log)(`[MsAuth] Using password authentication`);
201
211
  // Wait for password field
202
212
  await page
203
213
  .getByRole("textbox", { name: "password" })
204
214
  .waitFor({ timeout: 10000 });
205
215
  // Enter password
206
- log(`[MsAuth] Entering password`);
216
+ (0, utils_1.log)(`[MsAuth] Entering password`);
207
217
  await page.getByRole("textbox", { name: "password" }).fill(password);
208
218
  await page
209
219
  .getByRole("button", { name: "submit" })
@@ -214,16 +224,16 @@ async function handlePasswordAuth(page, password, email) {
214
224
  const passwordError = page.locator("#passwordError, .has-error");
215
225
  if (await passwordError.isVisible().catch(() => false)) {
216
226
  const errorText = await passwordError.textContent().catch(() => "");
217
- log(`[MsAuth] ##[error]Password authentication failed: ${errorText}`);
227
+ (0, utils_1.log)(`[MsAuth] ##[error]Password authentication failed: ${errorText}`);
218
228
  throw new Error(`Password authentication failed for ${email}. Please verify the password is correct.`);
219
229
  }
220
- log(`[MsAuth] Password authentication successful`);
230
+ (0, utils_1.log)(`[MsAuth] Password authentication successful`);
221
231
  }
222
232
  /**
223
233
  * Handle "Stay signed in?" prompt
224
234
  */
225
235
  async function handleStaySignedIn(page) {
226
- log(`[MsAuth] Checking for 'Stay signed in?' prompt...`);
236
+ (0, utils_1.log)(`[MsAuth] Checking for 'Stay signed in?' prompt...`);
227
237
  // Try multiple selectors for better compatibility
228
238
  const staySignedInHeading = page.getByRole("heading", { name: /stay signed in/i });
229
239
  const staySignedInText = page.getByText(/stay signed in/i);
@@ -235,26 +245,26 @@ async function handleStaySignedIn(page) {
235
245
  staySignedInText.isVisible({ timeout: 10000 }).catch(() => false),
236
246
  ]);
237
247
  if (isPromptVisible) {
238
- log(`[MsAuth] 'Stay signed in?' prompt detected - clicking Yes`);
248
+ (0, utils_1.log)(`[MsAuth] 'Stay signed in?' prompt detected - clicking Yes`);
239
249
  // Click Yes button
240
250
  await yesButton.click({ timeout: 5000 }).catch(async () => {
241
- log(`[MsAuth] Failed to click Yes button by role, trying alternative selector`);
251
+ (0, utils_1.log)(`[MsAuth] Failed to click Yes button by role, trying alternative selector`);
242
252
  await page.locator('input[type="submit"][value="Yes"]').click();
243
253
  });
244
- log(`[MsAuth] Clicked 'Yes' on stay signed in prompt`);
254
+ (0, utils_1.log)(`[MsAuth] Clicked 'Yes' on stay signed in prompt`);
245
255
  // Wait for navigation after clicking
246
256
  await page.waitForTimeout(2000);
247
257
  }
248
258
  else {
249
- log(`[MsAuth] No 'Stay signed in?' prompt detected`);
259
+ (0, utils_1.log)(`[MsAuth] No 'Stay signed in?' prompt detected`);
250
260
  }
251
261
  }
252
262
  /**
253
263
  * Load existing storage state into a browser context
254
264
  */
255
- export async function loadStorageState(config) {
256
- const storagePath = getStorageStatePath(config.email);
257
- const isValid = await isStorageStateValid(storagePath, config.storageStateExpiration);
265
+ async function loadStorageState(config) {
266
+ const storagePath = (0, utils_1.getStorageStatePath)(config.email);
267
+ const isValid = await (0, utils_1.isStorageStateValid)(storagePath, config.storageStateExpiration);
258
268
  if (!isValid) {
259
269
  throw new Error(`Storage state for '${config.email}' does not exist or has expired. ` +
260
270
  `Please run authentication first.`);
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../src/authenticate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../src/authenticate.ts"],"names":[],"mappings":"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"}
package/lib/certAuth.d.ts CHANGED
@@ -16,6 +16,9 @@ export interface CertAuthOptions {
16
16
  export declare function addCertAuthRoute(page: Page, options: CertAuthOptions): Promise<void>;
17
17
  /**
18
18
  * Wait for certificate authentication response
19
+ * @param page The page to wait on
20
+ * @param endpoint The authentication endpoint
21
+ * @param timeout Optional timeout in milliseconds (default: 60000)
19
22
  */
20
- export declare function waitForCertAuthResponse(page: Page, endpoint?: string): Promise<void>;
23
+ export declare function waitForCertAuthResponse(page: Page, endpoint?: string, timeout?: number): Promise<void>;
21
24
  //# sourceMappingURL=certAuth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"certAuth.d.ts","sourceRoot":"","sources":["../src/certAuth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAM7D,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAErB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CASf;AA0ED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,EACV,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf"}
1
+ {"version":3,"file":"certAuth.d.ts","sourceRoot":"","sources":["../src/certAuth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAM7D,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAErB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CASf;AA0ED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,EACV,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,MAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAIf"}
package/lib/certAuth.js CHANGED
@@ -1,14 +1,18 @@
1
- import { Agent, request as https } from "node:https";
2
- import { log } from "./utils";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addCertAuthRoute = addCertAuthRoute;
4
+ exports.waitForCertAuthResponse = waitForCertAuthResponse;
5
+ const node_https_1 = require("node:https");
6
+ const utils_1 = require("./utils");
3
7
  const DEFAULT_AUTH_ENDPOINT = "login.microsoftonline.com";
4
8
  /**
5
9
  * Add certificate authentication route handler to the page
6
10
  */
7
- export async function addCertAuthRoute(page, options) {
11
+ async function addCertAuthRoute(page, options) {
8
12
  const endpoint = options.authEndpoint || DEFAULT_AUTH_ENDPOINT;
9
13
  const uri = getCertAuthGlob(endpoint);
10
14
  const { pfx, passphrase } = options;
11
- log(`[CertAuth] Adding certificate authentication route for endpoint: ${endpoint}`);
15
+ (0, utils_1.log)(`[CertAuth] Adding certificate authentication route for endpoint: ${endpoint}`);
12
16
  await page.route(uri, certAuthHandler({ pfx, passphrase }));
13
17
  }
14
18
  /**
@@ -18,14 +22,14 @@ export async function addCertAuthRoute(page, options) {
18
22
  function certAuthHandler(options) {
19
23
  return async (route, request) => {
20
24
  try {
21
- log(`[CertAuth] Handling certificate authentication request to ${request.url()}`);
25
+ (0, utils_1.log)(`[CertAuth] Handling certificate authentication request to ${request.url()}`);
22
26
  const resp = await doCertAuthPost(request, options);
23
27
  await route.fulfill(resp);
24
- log(`[CertAuth] Certificate authentication request completed with status ${resp.status}`);
28
+ (0, utils_1.log)(`[CertAuth] Certificate authentication request completed with status ${resp.status}`);
25
29
  }
26
30
  catch (e) {
27
31
  const message = e instanceof Error ? e.message : String(e);
28
- log(`[CertAuth] ##[error]Failed to send cert auth request: ${message}`);
32
+ (0, utils_1.log)(`[CertAuth] ##[error]Failed to send cert auth request: ${message}`);
29
33
  await route.abort("failed");
30
34
  }
31
35
  };
@@ -35,8 +39,8 @@ function certAuthHandler(options) {
35
39
  */
36
40
  function doCertAuthPost(request, options) {
37
41
  return new Promise((resolve, reject) => {
38
- const agent = new Agent(options);
39
- const req = https(request.url(), {
42
+ const agent = new node_https_1.Agent(options);
43
+ const req = (0, node_https_1.request)(request.url(), {
40
44
  method: "POST",
41
45
  headers: request.headers(),
42
46
  agent,
@@ -67,11 +71,14 @@ function doCertAuthPost(request, options) {
67
71
  }
68
72
  /**
69
73
  * Wait for certificate authentication response
74
+ * @param page The page to wait on
75
+ * @param endpoint The authentication endpoint
76
+ * @param timeout Optional timeout in milliseconds (default: 60000)
70
77
  */
71
- export function waitForCertAuthResponse(page, endpoint) {
78
+ function waitForCertAuthResponse(page, endpoint, timeout = 60000) {
72
79
  const authEndpoint = endpoint || DEFAULT_AUTH_ENDPOINT;
73
80
  const glob = getCertAuthGlob(authEndpoint);
74
- return page.waitForResponse(glob).then(() => { });
81
+ return page.waitForResponse(glob, { timeout }).then(() => { });
75
82
  }
76
83
  /**
77
84
  * Get glob pattern for certificate authentication endpoint
@@ -1 +1 @@
1
- {"version":3,"file":"certAuth.js","sourceRoot":"","sources":["../src/certAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"certAuth.js","sourceRoot":"","sources":["../src/certAuth.ts"],"names":[],"mappings":"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"}
package/lib/cli.js CHANGED
@@ -1,10 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { Command } from "commander";
3
- import { authenticate } from "./authenticate";
4
- import { loadConfigFromEnv, validateConfig } from "./config";
5
- import { EnvVars } from "./types";
6
- import { log } from "./utils";
7
- const program = new Command();
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const commander_1 = require("commander");
5
+ const authenticate_1 = require("./authenticate");
6
+ const config_1 = require("./config");
7
+ const types_1 = require("./types");
8
+ const utils_1 = require("./utils");
9
+ const program = new commander_1.Command();
8
10
  program
9
11
  .name("ms-auth")
10
12
  .description("Microsoft Entra authentication CLI for Playwright")
@@ -13,66 +15,66 @@ program
13
15
  .command("login")
14
16
  .description("Perform Microsoft Entra authentication and save storage state")
15
17
  .requiredOption("-u, --url <url>", "Target URL to authenticate against")
16
- .option("-e, --email <email>", `User email (or set ${EnvVars.EMAIL})`)
17
- .option("-t, --credential-type <type>", `Credential type: password|certificate (or set ${EnvVars.CREDENTIAL_TYPE})`, "password")
18
- .option("-p, --credential-provider <provider>", `Credential provider: azure-keyvault|local-file|environment|github-secrets (or set ${EnvVars.CREDENTIAL_PROVIDER})`, "azure-keyvault")
19
- .option("--keyvault-endpoint <endpoint>", `Azure KeyVault endpoint (or set ${EnvVars.KEYVAULT_ENDPOINT})`)
20
- .option("--keyvault-secret <secret>", `Azure KeyVault secret name (or set ${EnvVars.KEYVAULT_SECRET_NAME})`)
21
- .option("--local-file <path>", `Local file path for credential (or set ${EnvVars.LOCAL_FILE_PATH})`)
22
- .option("--env-variable <name>", `Environment variable name (or set ${EnvVars.ENV_VARIABLE_NAME})`)
18
+ .option("-e, --email <email>", `User email (or set ${types_1.EnvVars.EMAIL})`)
19
+ .option("-t, --credential-type <type>", `Credential type: password|certificate (or set ${types_1.EnvVars.CREDENTIAL_TYPE})`, "password")
20
+ .option("-p, --credential-provider <provider>", `Credential provider: azure-keyvault|local-file|environment|github-secrets (or set ${types_1.EnvVars.CREDENTIAL_PROVIDER})`, "azure-keyvault")
21
+ .option("--keyvault-endpoint <endpoint>", `Azure KeyVault endpoint (or set ${types_1.EnvVars.KEYVAULT_ENDPOINT})`)
22
+ .option("--keyvault-secret <secret>", `Azure KeyVault secret name (or set ${types_1.EnvVars.KEYVAULT_SECRET_NAME})`)
23
+ .option("--local-file <path>", `Local file path for credential (or set ${types_1.EnvVars.LOCAL_FILE_PATH})`)
24
+ .option("--env-variable <name>", `Environment variable name (or set ${types_1.EnvVars.ENV_VARIABLE_NAME})`)
23
25
  .option("--password <password>", `Password for authentication (not recommended for production, use credential providers instead)`)
24
- .option("--github-repo <repo>", `GitHub repository owner/repo (or set ${EnvVars.GITHUB_REPOSITORY})`)
25
- .option("--github-secret <secret>", `GitHub secret name (or set ${EnvVars.GITHUB_SECRET_NAME})`)
26
- .option("--output-dir <dir>", `Output directory for storage state (or set ${EnvVars.OUTPUT_DIR})`)
26
+ .option("--github-repo <repo>", `GitHub repository owner/repo (or set ${types_1.EnvVars.GITHUB_REPOSITORY})`)
27
+ .option("--github-secret <secret>", `GitHub secret name (or set ${types_1.EnvVars.GITHUB_SECRET_NAME})`)
28
+ .option("--output-dir <dir>", `Output directory for storage state (or set ${types_1.EnvVars.OUTPUT_DIR})`)
27
29
  .option("--headful", "Run browser in headful mode (visible browser window)")
28
30
  .option("--debug", "Enable debug logging")
29
31
  .action(async (options) => {
30
32
  try {
31
33
  // Enable debug logging if requested
32
34
  if (options.debug) {
33
- process.env[EnvVars.SYSTEM_DEBUG] = "true";
35
+ process.env[types_1.EnvVars.SYSTEM_DEBUG] = "true";
34
36
  }
35
- log("[CLI] Starting authentication");
36
- log(`[CLI] Target URL: ${options.url}`);
37
+ (0, utils_1.log)("[CLI] Starting authentication");
38
+ (0, utils_1.log)(`[CLI] Target URL: ${options.url}`);
37
39
  // Set environment variables from CLI options
38
40
  if (options.email)
39
- process.env[EnvVars.EMAIL] = options.email;
41
+ process.env[types_1.EnvVars.EMAIL] = options.email;
40
42
  if (options.credentialType)
41
- process.env[EnvVars.CREDENTIAL_TYPE] = options.credentialType;
43
+ process.env[types_1.EnvVars.CREDENTIAL_TYPE] = options.credentialType;
42
44
  // Handle password option - automatically set provider to environment
43
45
  if (options.password) {
44
- process.env[EnvVars.CREDENTIAL_PROVIDER] = "environment";
45
- process.env[EnvVars.ENV_VARIABLE_NAME] = "MS_AUTH_PASSWORD_INLINE";
46
+ process.env[types_1.EnvVars.CREDENTIAL_PROVIDER] = "environment";
47
+ process.env[types_1.EnvVars.ENV_VARIABLE_NAME] = "MS_AUTH_PASSWORD_INLINE";
46
48
  process.env["MS_AUTH_PASSWORD_INLINE"] = options.password;
47
49
  }
48
50
  else if (options.credentialProvider) {
49
- process.env[EnvVars.CREDENTIAL_PROVIDER] = options.credentialProvider;
51
+ process.env[types_1.EnvVars.CREDENTIAL_PROVIDER] = options.credentialProvider;
50
52
  }
51
53
  if (options.keyvaultEndpoint)
52
- process.env[EnvVars.KEYVAULT_ENDPOINT] = options.keyvaultEndpoint;
54
+ process.env[types_1.EnvVars.KEYVAULT_ENDPOINT] = options.keyvaultEndpoint;
53
55
  if (options.keyvaultSecret)
54
- process.env[EnvVars.KEYVAULT_SECRET_NAME] = options.keyvaultSecret;
56
+ process.env[types_1.EnvVars.KEYVAULT_SECRET_NAME] = options.keyvaultSecret;
55
57
  if (options.localFile)
56
- process.env[EnvVars.LOCAL_FILE_PATH] = options.localFile;
58
+ process.env[types_1.EnvVars.LOCAL_FILE_PATH] = options.localFile;
57
59
  if (options.envVariable)
58
- process.env[EnvVars.ENV_VARIABLE_NAME] = options.envVariable;
60
+ process.env[types_1.EnvVars.ENV_VARIABLE_NAME] = options.envVariable;
59
61
  if (options.githubRepo)
60
- process.env[EnvVars.GITHUB_REPOSITORY] = options.githubRepo;
62
+ process.env[types_1.EnvVars.GITHUB_REPOSITORY] = options.githubRepo;
61
63
  if (options.githubSecret)
62
- process.env[EnvVars.GITHUB_SECRET_NAME] = options.githubSecret;
64
+ process.env[types_1.EnvVars.GITHUB_SECRET_NAME] = options.githubSecret;
63
65
  if (options.outputDir)
64
- process.env[EnvVars.OUTPUT_DIR] = options.outputDir;
66
+ process.env[types_1.EnvVars.OUTPUT_DIR] = options.outputDir;
65
67
  // Load configuration from environment
66
- const config = loadConfigFromEnv();
68
+ const config = (0, config_1.loadConfigFromEnv)();
67
69
  // Set headless mode based on --headful flag
68
70
  config.headless = !options.headful; // If --headful is set, headless = false
69
- validateConfig(config);
70
- log(`[CLI] Email: ${config.email}`);
71
- log(`[CLI] Credential type: ${config.credentialType}`);
72
- log(`[CLI] Credential provider: ${config.credentialProvider}`);
73
- log(`[CLI] Browser mode: ${config.headless ? "headless" : "headful"}`);
71
+ (0, config_1.validateConfig)(config);
72
+ (0, utils_1.log)(`[CLI] Email: ${config.email}`);
73
+ (0, utils_1.log)(`[CLI] Credential type: ${config.credentialType}`);
74
+ (0, utils_1.log)(`[CLI] Credential provider: ${config.credentialProvider}`);
75
+ (0, utils_1.log)(`[CLI] Browser mode: ${config.headless ? "headless" : "headful"}`);
74
76
  // Perform authentication
75
- await authenticate(config, options.url);
77
+ await (0, authenticate_1.authenticate)(config, options.url);
76
78
  console.log("✅ Authentication successful!");
77
79
  process.exit(0);
78
80
  }
@@ -91,31 +93,31 @@ program
91
93
  .action(() => {
92
94
  console.log("Supported Environment Variables:\n");
93
95
  console.log("Core Configuration:");
94
- console.log(` ${EnvVars.EMAIL} - User email address`);
95
- console.log(` ${EnvVars.CREDENTIAL_TYPE} - Credential type (password|certificate)`);
96
- console.log(` ${EnvVars.CREDENTIAL_PROVIDER} - Provider type (azure-keyvault|local-file|environment|github-secrets)`);
97
- console.log(` ${EnvVars.OUTPUT_DIR} - Output directory for storage state`);
98
- console.log(` ${EnvVars.LOGIN_ENDPOINT} - Entra login endpoint (default: login.microsoftonline.com)`);
99
- console.log(` ${EnvVars.STORAGE_STATE_EXPIRATION} - Hours until storage state expires (default: 24)`);
96
+ console.log(` ${types_1.EnvVars.EMAIL} - User email address`);
97
+ console.log(` ${types_1.EnvVars.CREDENTIAL_TYPE} - Credential type (password|certificate)`);
98
+ console.log(` ${types_1.EnvVars.CREDENTIAL_PROVIDER} - Provider type (azure-keyvault|local-file|environment|github-secrets)`);
99
+ console.log(` ${types_1.EnvVars.OUTPUT_DIR} - Output directory for storage state`);
100
+ console.log(` ${types_1.EnvVars.LOGIN_ENDPOINT} - Entra login endpoint (default: login.microsoftonline.com)`);
101
+ console.log(` ${types_1.EnvVars.STORAGE_STATE_EXPIRATION} - Hours until storage state expires (default: 24)`);
100
102
  console.log();
101
103
  console.log("Azure KeyVault Provider:");
102
- console.log(` ${EnvVars.KEYVAULT_ENDPOINT} - KeyVault endpoint URL`);
103
- console.log(` ${EnvVars.KEYVAULT_SECRET_NAME}- Secret name in KeyVault`);
104
+ console.log(` ${types_1.EnvVars.KEYVAULT_ENDPOINT} - KeyVault endpoint URL`);
105
+ console.log(` ${types_1.EnvVars.KEYVAULT_SECRET_NAME}- Secret name in KeyVault`);
104
106
  console.log();
105
107
  console.log("Local File Provider:");
106
- console.log(` ${EnvVars.LOCAL_FILE_PATH} - Path to credential file`);
107
- console.log(` ${EnvVars.CERTIFICATE_PASSWORD}- Password for encrypted certificate`);
108
+ console.log(` ${types_1.EnvVars.LOCAL_FILE_PATH} - Path to credential file`);
109
+ console.log(` ${types_1.EnvVars.CERTIFICATE_PASSWORD}- Password for encrypted certificate`);
108
110
  console.log();
109
111
  console.log("Environment Variable Provider:");
110
- console.log(` ${EnvVars.ENV_VARIABLE_NAME} - Name of environment variable containing credential`);
112
+ console.log(` ${types_1.EnvVars.ENV_VARIABLE_NAME} - Name of environment variable containing credential`);
111
113
  console.log();
112
114
  console.log("GitHub Secrets Provider:");
113
- console.log(` ${EnvVars.GITHUB_REPOSITORY} - GitHub repository (owner/repo)`);
114
- console.log(` ${EnvVars.GITHUB_SECRET_NAME} - GitHub secret name`);
115
- console.log(` ${EnvVars.GITHUB_TOKEN} - GitHub token (optional)`);
115
+ console.log(` ${types_1.EnvVars.GITHUB_REPOSITORY} - GitHub repository (owner/repo)`);
116
+ console.log(` ${types_1.EnvVars.GITHUB_SECRET_NAME} - GitHub secret name`);
117
+ console.log(` ${types_1.EnvVars.GITHUB_TOKEN} - GitHub token (optional)`);
116
118
  console.log();
117
119
  console.log("Debug:");
118
- console.log(` ${EnvVars.SYSTEM_DEBUG} - Enable debug logging (true|false)`);
120
+ console.log(` ${types_1.EnvVars.SYSTEM_DEBUG} - Enable debug logging (true|false)`);
119
121
  });
120
122
  program.parse();
121
123
  //# sourceMappingURL=cli.js.map