playwright-ms-auth 0.0.11 → 0.0.12
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/README.md +226 -5
- package/lib/authenticate.d.ts.map +1 -1
- package/lib/authenticate.js +25 -4
- package/lib/authenticate.js.map +1 -1
- package/lib/cli.js +4 -0
- package/lib/cli.js.map +1 -1
- package/lib/types.d.ts +4 -2
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +15 -15
- package/lib/types.js.map +1 -1
- package/lib/utils.d.ts +5 -0
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +33 -5
- package/lib/utils.js.map +1 -1
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -60,11 +60,17 @@ npm install playwright-ms-auth
|
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
62
|
# Simple password authentication (for testing/development)
|
|
63
|
+
npx ms-auth login \
|
|
64
|
+
--url https://your-app.com \
|
|
65
|
+
--email user@company.com \
|
|
66
|
+
--password "your-password"
|
|
67
|
+
|
|
68
|
+
# Run in headful mode (visible browser window)
|
|
63
69
|
npx ms-auth login \
|
|
64
70
|
--url https://your-app.com \
|
|
65
71
|
--email user@company.com \
|
|
66
72
|
--password "your-password" \
|
|
67
|
-
--
|
|
73
|
+
--headful
|
|
68
74
|
|
|
69
75
|
# Authenticate with Azure KeyVault (recommended for production)
|
|
70
76
|
npx ms-auth login \
|
|
@@ -72,8 +78,7 @@ npx ms-auth login \
|
|
|
72
78
|
--email user@company.com \
|
|
73
79
|
--credential-provider azure-keyvault \
|
|
74
80
|
--keyvault-endpoint https://your-vault.vault.azure.net \
|
|
75
|
-
--keyvault-secret your-secret-name
|
|
76
|
-
--debug
|
|
81
|
+
--keyvault-secret your-secret-name
|
|
77
82
|
|
|
78
83
|
# Authenticate with local certificate file
|
|
79
84
|
npx ms-auth login \
|
|
@@ -242,10 +247,35 @@ All configuration can be provided via environment variables. Run `npx ms-auth en
|
|
|
242
247
|
- `MS_AUTH_EMAIL` - User email address
|
|
243
248
|
- `MS_AUTH_CREDENTIAL_TYPE` - `password` or `certificate`
|
|
244
249
|
- `MS_AUTH_CREDENTIAL_PROVIDER` - Provider type (auto-set to `environment` when using `--password`)
|
|
245
|
-
- `MS_AUTH_OUTPUT_DIR` - Directory for storage state files
|
|
250
|
+
- `MS_AUTH_OUTPUT_DIR` - Directory for storage state files (defaults to project root)
|
|
246
251
|
- `MS_AUTH_LOGIN_ENDPOINT` - Entra endpoint (default: `login.microsoftonline.com`)
|
|
247
252
|
- `MS_AUTH_STORAGE_STATE_EXPIRATION` - Hours until state expires (default: 24)
|
|
248
|
-
- `SYSTEM_DEBUG` - Enable debug logging (`true`/`false`)
|
|
253
|
+
- `SYSTEM_DEBUG` - Enable detailed debug logging (`true`/`false`, default: `false`)
|
|
254
|
+
|
|
255
|
+
### Debugging
|
|
256
|
+
|
|
257
|
+
Enable detailed logging to troubleshoot authentication issues:
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# Enable debug logging via environment variable
|
|
261
|
+
export SYSTEM_DEBUG=true
|
|
262
|
+
npx ms-auth login --url https://your-app.com --email user@company.com --password "your-password"
|
|
263
|
+
|
|
264
|
+
# Or inline
|
|
265
|
+
SYSTEM_DEBUG=true npx ms-auth login --url https://your-app.com --email user@company.com --password "your-password"
|
|
266
|
+
|
|
267
|
+
# In .env file
|
|
268
|
+
SYSTEM_DEBUG=true
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
When `SYSTEM_DEBUG=true`, you'll see detailed logs including:
|
|
272
|
+
|
|
273
|
+
- Authentication flow steps
|
|
274
|
+
- Credential provider operations
|
|
275
|
+
- Browser launch parameters
|
|
276
|
+
- Storage state paths
|
|
277
|
+
- Screenshot locations
|
|
278
|
+
- URL redirects and navigation events
|
|
249
279
|
|
|
250
280
|
### Quick Reference
|
|
251
281
|
|
|
@@ -511,6 +541,11 @@ playwright-ms-auth/
|
|
|
511
541
|
│ ├── GitHubSecretsProvider.ts # GitHub secrets implementation
|
|
512
542
|
│ ├── CredentialProviderFactory.ts # Factory pattern
|
|
513
543
|
│ └── index.ts # Provider exports
|
|
544
|
+
├── examples/
|
|
545
|
+
│ ├── msLogin.ts # Example authentication helper
|
|
546
|
+
│ ├── .env.example # Environment template
|
|
547
|
+
│ ├── package.json # Example dependencies
|
|
548
|
+
│ └── README.md # Example documentation
|
|
514
549
|
├── bin/
|
|
515
550
|
│ └── ms-auth # CLI executable
|
|
516
551
|
├── package.json
|
|
@@ -518,6 +553,25 @@ playwright-ms-auth/
|
|
|
518
553
|
└── README.md
|
|
519
554
|
```
|
|
520
555
|
|
|
556
|
+
## Examples
|
|
557
|
+
|
|
558
|
+
Check out the [`examples/`](./examples) directory for a complete working example:
|
|
559
|
+
|
|
560
|
+
```bash
|
|
561
|
+
cd examples
|
|
562
|
+
npm install
|
|
563
|
+
npm run login
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
The example includes:
|
|
567
|
+
|
|
568
|
+
- 📝 Ready-to-use authentication helper (`msLogin.ts`)
|
|
569
|
+
- 🔧 Pre-configured environment file
|
|
570
|
+
- 📚 Complete documentation
|
|
571
|
+
- ⚡ NPM scripts for easy execution
|
|
572
|
+
|
|
573
|
+
See [`examples/README.md`](./examples/README.md) for details.
|
|
574
|
+
|
|
521
575
|
## Abstract Factory Pattern
|
|
522
576
|
|
|
523
577
|
The package uses the **Abstract Factory Pattern** for extensibility:
|
|
@@ -557,6 +611,173 @@ class MyCustomProvider extends CredentialProvider {
|
|
|
557
611
|
}
|
|
558
612
|
```
|
|
559
613
|
|
|
614
|
+
## Troubleshooting & FAQ
|
|
615
|
+
|
|
616
|
+
### Authentication Issues
|
|
617
|
+
|
|
618
|
+
**Q: Browser is not visible when using `--headful` flag**
|
|
619
|
+
|
|
620
|
+
A: Make sure you're running the latest version and that Microsoft Edge is installed. The package uses Edge for better Windows compatibility.
|
|
621
|
+
|
|
622
|
+
```bash
|
|
623
|
+
# Verify Edge channel is working
|
|
624
|
+
npx playwright install msedge
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
**Q: Authentication times out waiting for redirect**
|
|
628
|
+
|
|
629
|
+
A: This usually happens when SharePoint redirects to a different page after login. The package automatically handles redirects to any page on the same domain. Enable debug logging to see the actual redirect:
|
|
630
|
+
|
|
631
|
+
```bash
|
|
632
|
+
SYSTEM_DEBUG=true npx ms-auth login --url https://your-site.com --email user@company.com --password "pwd"
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
**Q: "page.waitForURL: Timeout exceeded" error**
|
|
636
|
+
|
|
637
|
+
A: The authentication may have succeeded but redirected to a different page than expected. Check the logs for "navigated to" message. This is normal for SharePoint sites that redirect to home pages.
|
|
638
|
+
|
|
639
|
+
**Q: Screenshot saved to wrong location**
|
|
640
|
+
|
|
641
|
+
A: Screenshots are saved to `<project-root>/screenshots/` by default. To change this, set `MS_AUTH_OUTPUT_DIR`:
|
|
642
|
+
|
|
643
|
+
```bash
|
|
644
|
+
export MS_AUTH_OUTPUT_DIR=/path/to/custom/dir
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
### Storage State Issues
|
|
648
|
+
|
|
649
|
+
**Q: Where are storage state files saved?**
|
|
650
|
+
|
|
651
|
+
A: By default, storage state files are saved to `<project-root>/.playwright-ms-auth/state-{email}.json`. You can customize this with the `MS_AUTH_OUTPUT_DIR` environment variable.
|
|
652
|
+
|
|
653
|
+
**Q: How long do storage states last?**
|
|
654
|
+
|
|
655
|
+
A: Storage states expire after 24 hours by default. Configure with `MS_AUTH_STORAGE_STATE_EXPIRATION` (in hours):
|
|
656
|
+
|
|
657
|
+
```bash
|
|
658
|
+
export MS_AUTH_STORAGE_STATE_EXPIRATION=48 # 48 hours
|
|
659
|
+
```
|
|
660
|
+
|
|
661
|
+
**Q: How do I force re-authentication?**
|
|
662
|
+
|
|
663
|
+
A: Delete the storage state file or use the CLI:
|
|
664
|
+
|
|
665
|
+
```bash
|
|
666
|
+
# Find and delete the storage state file
|
|
667
|
+
rm .playwright-ms-auth/state-your-email@company.com.json
|
|
668
|
+
|
|
669
|
+
# Or use clearAuth from examples
|
|
670
|
+
npm run clear-auth
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
### Debugging
|
|
674
|
+
|
|
675
|
+
**Q: How do I enable detailed logging?**
|
|
676
|
+
|
|
677
|
+
A: Set `SYSTEM_DEBUG=true` to see detailed authentication flow:
|
|
678
|
+
|
|
679
|
+
```bash
|
|
680
|
+
# Temporary (command line)
|
|
681
|
+
SYSTEM_DEBUG=true npx ms-auth login --url https://site.com --email user@company.com --password "pwd"
|
|
682
|
+
|
|
683
|
+
# Permanent (in .env file)
|
|
684
|
+
SYSTEM_DEBUG=true
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
Debug logs include:
|
|
688
|
+
|
|
689
|
+
- Credential provider operations
|
|
690
|
+
- Browser launch parameters (headless/headful)
|
|
691
|
+
- Storage state paths
|
|
692
|
+
- Screenshot locations
|
|
693
|
+
- Navigation events and redirects
|
|
694
|
+
- Authentication flow steps
|
|
695
|
+
|
|
696
|
+
**Q: Authentication succeeds but I get errors in my tests**
|
|
697
|
+
|
|
698
|
+
A: Verify the storage state file exists and check its timestamp:
|
|
699
|
+
|
|
700
|
+
```bash
|
|
701
|
+
# Check if file exists and when it was created
|
|
702
|
+
ls -la .playwright-ms-auth/state-*.json
|
|
703
|
+
|
|
704
|
+
# View file contents (check cookies)
|
|
705
|
+
cat .playwright-ms-auth/state-*.json
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
**Q: Getting "Cannot find module" errors**
|
|
709
|
+
|
|
710
|
+
A: Make sure to rebuild after making changes:
|
|
711
|
+
|
|
712
|
+
```bash
|
|
713
|
+
npm run build
|
|
714
|
+
|
|
715
|
+
# If using examples directory
|
|
716
|
+
cd examples
|
|
717
|
+
rm -rf node_modules/playwright-ms-auth
|
|
718
|
+
npm install
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
### Certificate Authentication
|
|
722
|
+
|
|
723
|
+
**Q: Certificate authentication fails with validation error**
|
|
724
|
+
|
|
725
|
+
A: Ensure:
|
|
726
|
+
|
|
727
|
+
1. Certificate is in PFX/P12 format
|
|
728
|
+
2. Certificate is not expired
|
|
729
|
+
3. Certificate password is correct (if encrypted)
|
|
730
|
+
4. Certificate is trusted by the Entra tenant
|
|
731
|
+
|
|
732
|
+
**Q: How do I convert PEM to PFX?**
|
|
733
|
+
|
|
734
|
+
```bash
|
|
735
|
+
openssl pkcs12 -export -out cert.pfx -inkey private.key -in certificate.crt
|
|
736
|
+
```
|
|
737
|
+
|
|
738
|
+
### Production Issues
|
|
739
|
+
|
|
740
|
+
**Q: Should I use `--password` flag in production?**
|
|
741
|
+
|
|
742
|
+
A: No. Use Azure KeyVault or other secure credential providers for production:
|
|
743
|
+
|
|
744
|
+
```bash
|
|
745
|
+
# Production (Azure KeyVault)
|
|
746
|
+
npx ms-auth login \
|
|
747
|
+
--url https://your-site.com \
|
|
748
|
+
--email user@company.com \
|
|
749
|
+
--credential-provider azure-keyvault \
|
|
750
|
+
--keyvault-endpoint https://vault.vault.azure.net \
|
|
751
|
+
--keyvault-secret secret-name
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
**Q: How do I handle multiple environments?**
|
|
755
|
+
|
|
756
|
+
A: Use different `.env` files or environment-specific configuration:
|
|
757
|
+
|
|
758
|
+
```bash
|
|
759
|
+
# Development
|
|
760
|
+
SYSTEM_DEBUG=true npm run login
|
|
761
|
+
|
|
762
|
+
# Production
|
|
763
|
+
MS_AUTH_CREDENTIAL_PROVIDER=azure-keyvault npm run login
|
|
764
|
+
```
|
|
765
|
+
|
|
766
|
+
**Q: Can I use this in CI/CD pipelines?**
|
|
767
|
+
|
|
768
|
+
A: Yes! Use GitHub Secrets or Azure KeyVault providers:
|
|
769
|
+
|
|
770
|
+
```yaml
|
|
771
|
+
# GitHub Actions example
|
|
772
|
+
- name: Authenticate
|
|
773
|
+
env:
|
|
774
|
+
MS_AUTH_EMAIL: ${{ secrets.MS_AUTH_EMAIL }}
|
|
775
|
+
MS_USER_PASSWORD: ${{ secrets.MS_USER_PASSWORD }}
|
|
776
|
+
MS_AUTH_CREDENTIAL_PROVIDER: environment
|
|
777
|
+
MS_AUTH_ENV_VARIABLE_NAME: MS_USER_PASSWORD
|
|
778
|
+
run: npx ms-auth login --url https://your-site.com
|
|
779
|
+
```
|
|
780
|
+
|
|
560
781
|
## License
|
|
561
782
|
|
|
562
783
|
MIT
|
|
@@ -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,
|
|
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;AAiPD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAe5E"}
|
package/lib/authenticate.js
CHANGED
|
@@ -18,6 +18,9 @@ export async function authenticate(config, targetUrl) {
|
|
|
18
18
|
log(`[MsAuth] Starting authentication for '${config.email}'`);
|
|
19
19
|
log(`[MsAuth] Credential provider: ${config.credentialProvider}`);
|
|
20
20
|
log(`[MsAuth] Credential type: ${config.credentialType}`);
|
|
21
|
+
if (config.headless === false) {
|
|
22
|
+
log(`[MsAuth] Running in headful mode (visible browser)`);
|
|
23
|
+
}
|
|
21
24
|
// Create credential provider and retrieve credential
|
|
22
25
|
const provider = CredentialProviderFactory.createProvider(config.credentialProvider, config.providerConfig);
|
|
23
26
|
const credential = await provider.getCredential();
|
|
@@ -26,10 +29,16 @@ export async function authenticate(config, targetUrl) {
|
|
|
26
29
|
log(`[MsAuth] ##[warning]Credential type mismatch: expected '${config.credentialType}' but got '${credential.type}'`);
|
|
27
30
|
}
|
|
28
31
|
// Launch browser and perform authentication
|
|
32
|
+
const headlessMode = config.headless !== false;
|
|
33
|
+
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})`);
|
|
29
35
|
const browser = await chromium.launch({
|
|
30
|
-
headless:
|
|
36
|
+
headless: headlessMode,
|
|
37
|
+
channel: "msedge", // Use Microsoft Edge for better Windows compatibility
|
|
31
38
|
args: ["--no-sandbox", "--disable-setuid-sandbox"],
|
|
32
39
|
});
|
|
40
|
+
console.log(`[CONSOLE] Browser launched successfully with headless=${headlessMode}`);
|
|
41
|
+
log(`[MsAuth] Browser launched successfully`);
|
|
33
42
|
try {
|
|
34
43
|
await performAuthenticationFlow(browser, config, targetUrl, credential, storagePath);
|
|
35
44
|
log(`[MsAuth] ##[section]Authentication completed successfully for '${config.email}'`);
|
|
@@ -69,9 +78,21 @@ async function performAuthenticationFlow(browser, config, targetUrl, credential,
|
|
|
69
78
|
}
|
|
70
79
|
// Handle "Stay signed in?" prompt
|
|
71
80
|
await handleStaySignedIn(page);
|
|
72
|
-
// Wait for redirect to target URL
|
|
73
|
-
log(`[MsAuth] Waiting for redirect to target
|
|
74
|
-
|
|
81
|
+
// Wait for redirect to target URL or any page on the same domain
|
|
82
|
+
log(`[MsAuth] Waiting for redirect to target domain`);
|
|
83
|
+
const targetDomain = new URL(targetUrl).origin;
|
|
84
|
+
try {
|
|
85
|
+
// Try to wait for the exact URL first
|
|
86
|
+
await page.waitForURL(targetUrl, { timeout: 5000 });
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// If exact URL doesn't match, check if we're on the same domain (authentication succeeded)
|
|
90
|
+
const currentUrl = page.url();
|
|
91
|
+
if (!currentUrl.startsWith(targetDomain)) {
|
|
92
|
+
throw new Error(`Authentication may have failed. Expected to be on ${targetDomain}, but got ${currentUrl}`);
|
|
93
|
+
}
|
|
94
|
+
log(`[MsAuth] Redirected to ${currentUrl} (authentication successful)`);
|
|
95
|
+
}
|
|
75
96
|
// Give it a bit more time for cookies to settle
|
|
76
97
|
await page.waitForTimeout(2000);
|
|
77
98
|
// Save storage state
|
package/lib/authenticate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../src/authenticate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EACL,GAAG,EACH,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAoB,EACpB,SAAiB;IAEjB,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,iDAAiD;IACjD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CACvC,WAAW,EACX,MAAM,CAAC,sBAAsB,CAC9B,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,GAAG,CACD,+BAA+B,MAAM,CAAC,KAAK,2CAA2C,CACvF,CAAC;QACF,OAAO;IACT,CAAC;IAED,GAAG,CAAC,yCAAyC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAC9D,GAAG,CAAC,iCAAiC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAClE,GAAG,CAAC,6BAA6B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../src/authenticate.ts"],"names":[],"mappings":"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"}
|
package/lib/cli.js
CHANGED
|
@@ -24,6 +24,7 @@ program
|
|
|
24
24
|
.option("--github-repo <repo>", `GitHub repository owner/repo (or set ${EnvVars.GITHUB_REPOSITORY})`)
|
|
25
25
|
.option("--github-secret <secret>", `GitHub secret name (or set ${EnvVars.GITHUB_SECRET_NAME})`)
|
|
26
26
|
.option("--output-dir <dir>", `Output directory for storage state (or set ${EnvVars.OUTPUT_DIR})`)
|
|
27
|
+
.option("--headful", "Run browser in headful mode (visible browser window)")
|
|
27
28
|
.option("--debug", "Enable debug logging")
|
|
28
29
|
.action(async (options) => {
|
|
29
30
|
try {
|
|
@@ -63,10 +64,13 @@ program
|
|
|
63
64
|
process.env[EnvVars.OUTPUT_DIR] = options.outputDir;
|
|
64
65
|
// Load configuration from environment
|
|
65
66
|
const config = loadConfigFromEnv();
|
|
67
|
+
// Set headless mode based on --headful flag
|
|
68
|
+
config.headless = !options.headful; // If --headful is set, headless = false
|
|
66
69
|
validateConfig(config);
|
|
67
70
|
log(`[CLI] Email: ${config.email}`);
|
|
68
71
|
log(`[CLI] Credential type: ${config.credentialType}`);
|
|
69
72
|
log(`[CLI] Credential provider: ${config.credentialProvider}`);
|
|
73
|
+
log(`[CLI] Browser mode: ${config.headless ? "headless" : "headful"}`);
|
|
70
74
|
// Perform authentication
|
|
71
75
|
await authenticate(config, options.url);
|
|
72
76
|
console.log("✅ Authentication successful!");
|
package/lib/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Authentication configuration types for playwright-ms-auth
|
|
3
3
|
*/
|
|
4
4
|
/** Supported credential types */
|
|
5
|
-
export type CredentialType =
|
|
5
|
+
export type CredentialType = "password" | "certificate";
|
|
6
6
|
/** Supported credential provider types */
|
|
7
|
-
export type CredentialProviderType =
|
|
7
|
+
export type CredentialProviderType = "azure-keyvault" | "local-file" | "environment" | "github-secrets";
|
|
8
8
|
/** Base configuration for authentication */
|
|
9
9
|
export interface AuthConfig {
|
|
10
10
|
/** User email/username */
|
|
@@ -19,6 +19,8 @@ export interface AuthConfig {
|
|
|
19
19
|
storageStateExpiration?: number;
|
|
20
20
|
/** Entra login endpoint (default: login.microsoftonline.com) */
|
|
21
21
|
loginEndpoint?: string;
|
|
22
|
+
/** Run browser in headless mode (default: true) */
|
|
23
|
+
headless?: boolean;
|
|
22
24
|
}
|
|
23
25
|
/** Configuration for Azure KeyVault credential provider */
|
|
24
26
|
export interface AzureKeyVaultConfig {
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,aAAa,CAAC;AAExD,0CAA0C;AAC1C,MAAM,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,aAAa,CAAC;AAExD,0CAA0C;AAC1C,MAAM,MAAM,sBAAsB,GAC9B,gBAAgB,GAChB,YAAY,GACZ,aAAa,GACb,gBAAgB,CAAC;AAErB,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,wCAAwC;IACxC,cAAc,EAAE,cAAc,CAAC;IAE/B,wCAAwC;IACxC,kBAAkB,EAAE,sBAAsB,CAAC;IAE3C,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sDAAsD;IACtD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,4BAA4B;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IAEjB,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,iEAAiE;AACjE,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IAErB,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IAEnB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,GACtB,mBAAmB,GACnB,eAAe,GACf,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,4CAA4C;AAC5C,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,sCAAsC;IACtC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,qCAAqC;AACrC,eAAO,MAAM,OAAO;IAClB,iBAAiB;;IAGjB,6CAA6C;;IAG7C,+BAA+B;;IAG/B,8BAA8B;;IAG9B,2BAA2B;;IAG3B,sBAAsB;;IAGtB,2BAA2B;;IAG3B,+CAA+C;;IAG/C,yCAAyC;;IAGzC,2BAA2B;;IAG3B,qCAAqC;;IAGrC,wBAAwB;;IAGxB,yBAAyB;;IAGzB,mBAAmB;;IAGnB,oBAAoB;;CAEZ,CAAC;AAEX,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,IAAI,EAAE,cAAc,CAAC;IAErB,mEAAmE;IACnE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,0CAA0C;AAC1C,MAAM,WAAW,QAAQ;IACvB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
package/lib/types.js
CHANGED
|
@@ -4,34 +4,34 @@
|
|
|
4
4
|
/** CLI environment variable names */
|
|
5
5
|
export const EnvVars = {
|
|
6
6
|
/** User email */
|
|
7
|
-
EMAIL:
|
|
7
|
+
EMAIL: "MS_AUTH_EMAIL",
|
|
8
8
|
/** Credential type (password|certificate) */
|
|
9
|
-
CREDENTIAL_TYPE:
|
|
9
|
+
CREDENTIAL_TYPE: "MS_AUTH_CREDENTIAL_TYPE",
|
|
10
10
|
/** Credential provider type */
|
|
11
|
-
CREDENTIAL_PROVIDER:
|
|
11
|
+
CREDENTIAL_PROVIDER: "MS_AUTH_CREDENTIAL_PROVIDER",
|
|
12
12
|
/** Azure KeyVault endpoint */
|
|
13
|
-
KEYVAULT_ENDPOINT:
|
|
13
|
+
KEYVAULT_ENDPOINT: "MS_AUTH_KEYVAULT_ENDPOINT",
|
|
14
14
|
/** KeyVault secret name */
|
|
15
|
-
KEYVAULT_SECRET_NAME:
|
|
15
|
+
KEYVAULT_SECRET_NAME: "MS_AUTH_KEYVAULT_SECRET_NAME",
|
|
16
16
|
/** Local file path */
|
|
17
|
-
LOCAL_FILE_PATH:
|
|
17
|
+
LOCAL_FILE_PATH: "MS_AUTH_LOCAL_FILE_PATH",
|
|
18
18
|
/** Certificate password */
|
|
19
|
-
CERTIFICATE_PASSWORD:
|
|
19
|
+
CERTIFICATE_PASSWORD: "MS_AUTH_CERTIFICATE_PASSWORD",
|
|
20
20
|
/** Environment variable name for credential */
|
|
21
|
-
ENV_VARIABLE_NAME:
|
|
21
|
+
ENV_VARIABLE_NAME: "MS_AUTH_ENV_VARIABLE_NAME",
|
|
22
22
|
/** Output directory for storage state */
|
|
23
|
-
OUTPUT_DIR:
|
|
23
|
+
OUTPUT_DIR: "MS_AUTH_OUTPUT_DIR",
|
|
24
24
|
/** Entra login endpoint */
|
|
25
|
-
LOGIN_ENDPOINT:
|
|
25
|
+
LOGIN_ENDPOINT: "MS_AUTH_LOGIN_ENDPOINT",
|
|
26
26
|
/** Storage state expiration hours */
|
|
27
|
-
STORAGE_STATE_EXPIRATION:
|
|
27
|
+
STORAGE_STATE_EXPIRATION: "MS_AUTH_STORAGE_STATE_EXPIRATION",
|
|
28
28
|
/** GitHub repository */
|
|
29
|
-
GITHUB_REPOSITORY:
|
|
29
|
+
GITHUB_REPOSITORY: "MS_AUTH_GITHUB_REPOSITORY",
|
|
30
30
|
/** GitHub secret name */
|
|
31
|
-
GITHUB_SECRET_NAME:
|
|
31
|
+
GITHUB_SECRET_NAME: "MS_AUTH_GITHUB_SECRET_NAME",
|
|
32
32
|
/** GitHub token */
|
|
33
|
-
GITHUB_TOKEN:
|
|
33
|
+
GITHUB_TOKEN: "MS_AUTH_GITHUB_TOKEN",
|
|
34
34
|
/** Debug logging */
|
|
35
|
-
SYSTEM_DEBUG:
|
|
35
|
+
SYSTEM_DEBUG: "SYSTEM_DEBUG",
|
|
36
36
|
};
|
|
37
37
|
//# sourceMappingURL=types.js.map
|
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2FH,qCAAqC;AACrC,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,iBAAiB;IACjB,KAAK,EAAE,eAAe;IAEtB,6CAA6C;IAC7C,eAAe,EAAE,yBAAyB;IAE1C,+BAA+B;IAC/B,mBAAmB,EAAE,6BAA6B;IAElD,8BAA8B;IAC9B,iBAAiB,EAAE,2BAA2B;IAE9C,2BAA2B;IAC3B,oBAAoB,EAAE,8BAA8B;IAEpD,sBAAsB;IACtB,eAAe,EAAE,yBAAyB;IAE1C,2BAA2B;IAC3B,oBAAoB,EAAE,8BAA8B;IAEpD,+CAA+C;IAC/C,iBAAiB,EAAE,2BAA2B;IAE9C,yCAAyC;IACzC,UAAU,EAAE,oBAAoB;IAEhC,2BAA2B;IAC3B,cAAc,EAAE,wBAAwB;IAExC,qCAAqC;IACrC,wBAAwB,EAAE,kCAAkC;IAE5D,wBAAwB;IACxB,iBAAiB,EAAE,2BAA2B;IAE9C,yBAAyB;IACzB,kBAAkB,EAAE,4BAA4B;IAEhD,mBAAmB;IACnB,YAAY,EAAE,sBAAsB;IAEpC,oBAAoB;IACpB,YAAY,EAAE,cAAc;CACpB,CAAC"}
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the calling project's root directory
|
|
3
|
+
*/
|
|
4
|
+
export declare function getProjectRoot(): string;
|
|
1
5
|
/**
|
|
2
6
|
* Logging function that checks SYSTEM_DEBUG at runtime
|
|
3
7
|
*/
|
|
@@ -5,6 +9,7 @@ export declare function log(message: string): void;
|
|
|
5
9
|
/**
|
|
6
10
|
* Get the base directory for authentication files
|
|
7
11
|
* Can be overridden via MS_AUTH_OUTPUT_DIR environment variable
|
|
12
|
+
* Defaults to project root/.playwright-ms-auth
|
|
8
13
|
*/
|
|
9
14
|
export declare function getAuthBaseDir(): string;
|
|
10
15
|
/**
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAyBA;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKzC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAQvC;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAC3B,MAAM,CAcR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,eAAe,GAAE,MAAW,GAC3B,OAAO,CAAC,OAAO,CAAC,CAalB"}
|
package/lib/utils.js
CHANGED
|
@@ -1,8 +1,29 @@
|
|
|
1
|
-
import { resolve, join } from "node:path";
|
|
2
|
-
import { homedir } from "node:os";
|
|
1
|
+
import { resolve, join, dirname, parse } from "node:path";
|
|
3
2
|
import { mkdir } from "node:fs/promises";
|
|
4
3
|
import { existsSync } from "node:fs";
|
|
5
4
|
import { EnvVars } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* Find the project root by looking for package.json file
|
|
7
|
+
* @param startDir - The directory to start searching from
|
|
8
|
+
* @returns The project root directory
|
|
9
|
+
*/
|
|
10
|
+
function findProjectRoot(startDir) {
|
|
11
|
+
let currentDir = startDir;
|
|
12
|
+
while (currentDir !== parse(currentDir).root) {
|
|
13
|
+
if (existsSync(join(currentDir, "package.json"))) {
|
|
14
|
+
return currentDir;
|
|
15
|
+
}
|
|
16
|
+
currentDir = dirname(currentDir);
|
|
17
|
+
}
|
|
18
|
+
// Fall back to the current working directory if project root isn't found
|
|
19
|
+
return process.cwd();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get the calling project's root directory
|
|
23
|
+
*/
|
|
24
|
+
export function getProjectRoot() {
|
|
25
|
+
return findProjectRoot(process.cwd());
|
|
26
|
+
}
|
|
6
27
|
/**
|
|
7
28
|
* Logging function that checks SYSTEM_DEBUG at runtime
|
|
8
29
|
*/
|
|
@@ -15,13 +36,16 @@ export function log(message) {
|
|
|
15
36
|
/**
|
|
16
37
|
* Get the base directory for authentication files
|
|
17
38
|
* Can be overridden via MS_AUTH_OUTPUT_DIR environment variable
|
|
39
|
+
* Defaults to project root/.playwright-ms-auth
|
|
18
40
|
*/
|
|
19
41
|
export function getAuthBaseDir() {
|
|
20
42
|
const customDir = process.env[EnvVars.OUTPUT_DIR];
|
|
21
43
|
if (customDir) {
|
|
22
44
|
return resolve(customDir);
|
|
23
45
|
}
|
|
24
|
-
|
|
46
|
+
// Use project root instead of user home directory
|
|
47
|
+
const projectRoot = getProjectRoot();
|
|
48
|
+
return resolve(projectRoot, ".playwright-ms-auth");
|
|
25
49
|
}
|
|
26
50
|
/**
|
|
27
51
|
* Ensure a directory exists
|
|
@@ -44,9 +68,13 @@ export function getStorageStatePath(email) {
|
|
|
44
68
|
*/
|
|
45
69
|
export function getAuthScreenshotPath(email, status) {
|
|
46
70
|
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
47
|
-
const authDir = getAuthBaseDir();
|
|
48
71
|
const sanitizedEmail = email.replace(/[^a-zA-Z0-9@.-]/g, "_");
|
|
49
|
-
|
|
72
|
+
// If MS_AUTH_OUTPUT_DIR is set, use that directory
|
|
73
|
+
// Otherwise find the calling project's root directory
|
|
74
|
+
const outputDir = process.env[EnvVars.OUTPUT_DIR];
|
|
75
|
+
const baseDir = outputDir ? resolve(outputDir) : getProjectRoot();
|
|
76
|
+
const screenshotDir = join(baseDir, "screenshots");
|
|
77
|
+
return join(screenshotDir, `auth-${sanitizedEmail}-${status}-${timestamp}.png`);
|
|
50
78
|
}
|
|
51
79
|
/**
|
|
52
80
|
* Sanitize email for use in filenames
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "playwright-ms-auth",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12",
|
|
4
4
|
"description": "Flexible authentication framework for Playwright tests supporting password and certificate auth with multiple credential providers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"build": "tsc",
|
|
26
26
|
"clean": "rimraf lib",
|
|
27
27
|
"prepublishOnly": "npm run clean && npm run build",
|
|
28
|
-
"test": "playwright test"
|
|
28
|
+
"test": "playwright test",
|
|
29
|
+
"example:login": "tsx examples/msLogin.ts"
|
|
29
30
|
},
|
|
30
31
|
"keywords": [
|
|
31
32
|
"playwright",
|
|
@@ -54,7 +55,9 @@
|
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@playwright/test": "^1.44.1",
|
|
56
57
|
"@types/node": "^20.12.6",
|
|
58
|
+
"dotenv": "^16.4.5",
|
|
57
59
|
"rimraf": "^5.0.0",
|
|
60
|
+
"tsx": "^4.7.0",
|
|
58
61
|
"typescript": "^5.4.4"
|
|
59
62
|
},
|
|
60
63
|
"dependencies": {
|