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.
- package/lib/authenticate.d.ts.map +1 -1
- package/lib/authenticate.js +70 -60
- package/lib/authenticate.js.map +1 -1
- package/lib/certAuth.d.ts +4 -1
- package/lib/certAuth.d.ts.map +1 -1
- package/lib/certAuth.js +18 -11
- package/lib/certAuth.js.map +1 -1
- package/lib/cli.js +55 -53
- package/lib/cli.js.map +1 -1
- package/lib/config.js +30 -26
- package/lib/config.js.map +1 -1
- package/lib/index.js +31 -9
- package/lib/index.js.map +1 -1
- package/lib/providers/AzureKeyVaultProvider.js +19 -15
- package/lib/providers/AzureKeyVaultProvider.js.map +1 -1
- package/lib/providers/CredentialProvider.js +5 -1
- package/lib/providers/CredentialProvider.js.map +1 -1
- package/lib/providers/CredentialProviderFactory.js +13 -9
- package/lib/providers/CredentialProviderFactory.js.map +1 -1
- package/lib/providers/EnvironmentProvider.js +10 -6
- package/lib/providers/EnvironmentProvider.js.map +1 -1
- package/lib/providers/GitHubSecretsProvider.js +10 -6
- package/lib/providers/GitHubSecretsProvider.js.map +1 -1
- package/lib/providers/LocalFileProvider.js +14 -10
- package/lib/providers/LocalFileProvider.js.map +1 -1
- package/lib/providers/index.js +22 -6
- package/lib/providers/index.js.map +1 -1
- package/lib/types.js +4 -1
- package/lib/types.js.map +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +68 -29
- package/lib/utils.js.map +1 -1
- package/package.json +1 -2
|
@@ -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;
|
|
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"}
|
package/lib/authenticate.js
CHANGED
|
@@ -1,47 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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.`);
|
package/lib/authenticate.js.map
CHANGED
|
@@ -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
|
package/lib/certAuth.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
package/lib/certAuth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"certAuth.js","sourceRoot":"","sources":["../src/certAuth.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
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
|