teams-api 1.5.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +128 -10
  2. package/dist/actions/definitions.d.ts.map +1 -1
  3. package/dist/actions/definitions.js +2 -0
  4. package/dist/actions/definitions.js.map +1 -1
  5. package/dist/actions/file-actions.d.ts.map +1 -1
  6. package/dist/actions/file-actions.js +3 -1
  7. package/dist/actions/file-actions.js.map +1 -1
  8. package/dist/actions/image-description-actions.d.ts +28 -0
  9. package/dist/actions/image-description-actions.d.ts.map +1 -0
  10. package/dist/actions/image-description-actions.js +148 -0
  11. package/dist/actions/image-description-actions.js.map +1 -0
  12. package/dist/actions/message-actions.d.ts.map +1 -1
  13. package/dist/actions/message-actions.js +153 -3
  14. package/dist/actions/message-actions.js.map +1 -1
  15. package/dist/api/chat-service.d.ts +0 -10
  16. package/dist/api/chat-service.d.ts.map +1 -1
  17. package/dist/api/chat-service.js +10 -38
  18. package/dist/api/chat-service.js.map +1 -1
  19. package/dist/api/common.d.ts +4 -0
  20. package/dist/api/common.d.ts.map +1 -1
  21. package/dist/api/common.js +10 -1
  22. package/dist/api/common.js.map +1 -1
  23. package/dist/api/image-description.d.ts +20 -0
  24. package/dist/api/image-description.d.ts.map +1 -0
  25. package/dist/api/image-description.js +77 -0
  26. package/dist/api/image-description.js.map +1 -0
  27. package/dist/audit.d.ts +17 -0
  28. package/dist/audit.d.ts.map +1 -0
  29. package/dist/audit.js +53 -0
  30. package/dist/audit.js.map +1 -0
  31. package/dist/auth/auto-login.d.ts.map +1 -1
  32. package/dist/auth/auto-login.js +1 -3
  33. package/dist/auth/auto-login.js.map +1 -1
  34. package/dist/auth/interactive.d.ts.map +1 -1
  35. package/dist/auth/interactive.js +7 -8
  36. package/dist/auth/interactive.js.map +1 -1
  37. package/dist/auth/token-capture.d.ts.map +1 -1
  38. package/dist/auth/token-capture.js +62 -8
  39. package/dist/auth/token-capture.js.map +1 -1
  40. package/dist/browser-runtime.d.ts +11 -0
  41. package/dist/browser-runtime.d.ts.map +1 -1
  42. package/dist/browser-runtime.js +106 -0
  43. package/dist/browser-runtime.js.map +1 -1
  44. package/dist/conversation-protection.d.ts +21 -0
  45. package/dist/conversation-protection.d.ts.map +1 -0
  46. package/dist/conversation-protection.js +47 -0
  47. package/dist/conversation-protection.js.map +1 -0
  48. package/dist/mcp-auth.d.ts +56 -0
  49. package/dist/mcp-auth.d.ts.map +1 -0
  50. package/dist/mcp-auth.js +207 -0
  51. package/dist/mcp-auth.js.map +1 -0
  52. package/dist/mcp-server.d.ts +1 -0
  53. package/dist/mcp-server.d.ts.map +1 -1
  54. package/dist/mcp-server.js +37 -213
  55. package/dist/mcp-server.js.map +1 -1
  56. package/dist/model-context-protocol-download-content.d.ts +7 -0
  57. package/dist/model-context-protocol-download-content.d.ts.map +1 -0
  58. package/dist/model-context-protocol-download-content.js +90 -0
  59. package/dist/model-context-protocol-download-content.js.map +1 -0
  60. package/dist/server-instructions.d.ts.map +1 -1
  61. package/dist/server-instructions.js +4 -0
  62. package/dist/server-instructions.js.map +1 -1
  63. package/dist/smart-login.d.ts.map +1 -1
  64. package/dist/smart-login.js +3 -3
  65. package/dist/smart-login.js.map +1 -1
  66. package/dist/teams-client.d.ts +10 -1
  67. package/dist/teams-client.d.ts.map +1 -1
  68. package/dist/teams-client.js +82 -23
  69. package/dist/teams-client.js.map +1 -1
  70. package/dist/types.d.ts +54 -0
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/types.js.map +1 -1
  73. package/package.json +8 -2
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/auth/interactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/auth/interactive.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"token-capture.d.ts","sourceRoot":"","sources":["../../src/auth/token-capture.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAClD,eAAO,MAAM,mBAAmB,QAAa,CAAC;AAC9C,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE7D;;;;;;GAMG;AAEH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,WAAW,EAChB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC,CAkND"}
1
+ {"version":3,"file":"token-capture.d.ts","sourceRoot":"","sources":["../../src/auth/token-capture.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAClD,eAAO,MAAM,mBAAmB,QAAa,CAAC;AAC9C,eAAO,MAAM,wBAAwB,QAAY,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAoB7D;;;;;;GAMG;AAEH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,GAAG,EACT,GAAG,EAAE,WAAW,EAChB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC,CAyPD"}
@@ -13,6 +13,22 @@ const page_diagnostics_js_1 = require("./page-diagnostics.js");
13
13
  exports.TOKEN_INTERCEPT_TIMEOUT = 90 * 1_000;
14
14
  exports.PAGE_RELOAD_TIMEOUT = 30 * 1_000;
15
15
  exports.PAGE_STATE_POLL_INTERVAL = 3 * 1_000;
16
+ const FALLBACK_SKYPE_TOKEN_GRACE_PERIOD = 5 * 1_000;
17
+ function isChatServiceRequest(requestUrl) {
18
+ try {
19
+ const url = new URL(requestUrl);
20
+ return url.hostname.toLowerCase().endsWith(".ng.msg.teams.microsoft.com");
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ }
26
+ function normalizeSkypeTokenHeader(value) {
27
+ const prefix = "skypetoken=";
28
+ return value.toLowerCase().startsWith(prefix)
29
+ ? value.slice(prefix.length)
30
+ : value;
31
+ }
16
32
  /**
17
33
  * Wait for the page to reach Teams and capture authentication tokens via CDP.
18
34
  *
@@ -24,6 +40,7 @@ exports.PAGE_STATE_POLL_INTERVAL = 3 * 1_000;
24
40
  async function captureTokensFromPage(page, log, interceptTimeout) {
25
41
  const cdpSession = (await page.context().newCDPSession(page));
26
42
  let skypeToken = null;
43
+ let fallbackSkypeToken = null;
27
44
  let region = null;
28
45
  let bearerToken = null;
29
46
  let substrateToken = null;
@@ -38,20 +55,60 @@ async function captureTokensFromPage(page, log, interceptTimeout) {
38
55
  const tokenPromise = new Promise((resolve) => {
39
56
  const timeout = setTimeout(() => {
40
57
  log("Token intercept timed out");
58
+ if (fallbackTimeout) {
59
+ clearTimeout(fallbackTimeout);
60
+ }
61
+ if (!skypeToken && fallbackSkypeToken) {
62
+ skypeToken = fallbackSkypeToken;
63
+ log("Using fallback Skype token from non-chat request headers");
64
+ }
41
65
  resolve();
42
66
  }, interceptTimeout);
67
+ let fallbackTimeout = null;
68
+ function resolveWithToken() {
69
+ if (resolved) {
70
+ return;
71
+ }
72
+ resolved = true;
73
+ if (fallbackTimeout) {
74
+ clearTimeout(fallbackTimeout);
75
+ }
76
+ log("Skype token captured from request headers");
77
+ clearTimeout(timeout);
78
+ resolve();
79
+ }
80
+ function scheduleFallbackResolution() {
81
+ if (fallbackTimeout) {
82
+ return;
83
+ }
84
+ fallbackTimeout = setTimeout(() => {
85
+ if (!skypeToken && fallbackSkypeToken) {
86
+ skypeToken = fallbackSkypeToken;
87
+ log("Using fallback Skype token from non-chat request headers");
88
+ resolveWithToken();
89
+ }
90
+ }, FALLBACK_SKYPE_TOKEN_GRACE_PERIOD);
91
+ }
43
92
  cdpSession.on("Fetch.requestPaused", async (event) => {
44
93
  const request = event.request;
45
94
  const requestId = event.requestId;
46
95
  const requestUrl = request.url ?? "";
96
+ const isChatService = isChatServiceRequest(requestUrl);
47
97
  const detectedRegion = (0, region_js_1.detectTeamsRegionFromUrl)(requestUrl);
48
- if (detectedRegion && !region) {
98
+ if (detectedRegion && (isChatService || !region)) {
49
99
  region = detectedRegion;
50
100
  log(`Detected Teams region from request URL: ${region}`);
51
101
  }
52
102
  for (const [name, value] of Object.entries(request.headers ?? {})) {
53
- if (name.toLowerCase() === "x-skypetoken" && !skypeToken) {
54
- skypeToken = value;
103
+ if (name.toLowerCase() === "x-skypetoken") {
104
+ const normalizedToken = normalizeSkypeTokenHeader(value);
105
+ if (isChatService && !skypeToken) {
106
+ skypeToken = normalizedToken;
107
+ }
108
+ else if (!fallbackSkypeToken) {
109
+ fallbackSkypeToken = normalizedToken;
110
+ scheduleFallbackResolution();
111
+ }
55
112
  }
56
113
  if (name.toLowerCase() === "authorization" &&
57
114
  value.startsWith("Bearer ")) {
@@ -70,11 +127,8 @@ async function captureTokensFromPage(page, log, interceptTimeout) {
70
127
  catch {
71
128
  // Request may have already been handled
72
129
  }
73
- if (skypeToken && !resolved) {
74
- resolved = true;
75
- log("Skype token captured from request headers");
76
- clearTimeout(timeout);
77
- resolve();
130
+ if (skypeToken) {
131
+ resolveWithToken();
78
132
  }
79
133
  });
80
134
  });
@@ -1 +1 @@
1
- {"version":3,"file":"token-capture.js","sourceRoot":"","sources":["../../src/auth/token-capture.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAmBH,sDA8NC;AA/OD,4CAAwD;AACxD,+DAA0D;AAE7C,QAAA,uBAAuB,GAAG,EAAE,GAAG,KAAK,CAAC;AACrC,QAAA,mBAAmB,GAAG,EAAE,GAAG,KAAK,CAAC;AACjC,QAAA,wBAAwB,GAAG,CAAC,GAAG,KAAK,CAAC;AAIlD;;;;;;GAMG;AACH,8DAA8D;AACvD,KAAK,UAAU,qBAAqB,CACzC,IAAS,EACT,GAAgB,EAChB,gBAAwB;IAUxB,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAU3D,CAAC;IACF,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;QACpC,QAAQ,EAAE;YACR,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YAClD,EAAE,UAAU,EAAE,wBAAwB,EAAE,YAAY,EAAE,SAAS,EAAE;SAClE;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,6CAA6C,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAErB,UAAU,CAAC,EAAE,CACX,qBAAqB,EACrB,KAAK,EAAE,KAA8B,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAGrB,CAAC;YACF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAmB,CAAC;YAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,IAAA,oCAAwB,EAAC,UAAU,CAAC,CAAC;YAE5D,IAAI,cAAc,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,GAAG,cAAc,CAAC;gBACxB,GAAG,CAAC,2CAA2C,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;gBAClE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC;oBACzD,UAAU,GAAG,KAAK,CAAC;gBACrB,CAAC;gBACD,IACE,IAAI,CAAC,WAAW,EAAE,KAAK,eAAe;oBACtC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAC3B,CAAC;oBACD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;wBACpD,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC9C,CAAC;oBACD,IACE,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC;wBAC3C,CAAC,cAAc,EACf,CAAC;wBACD,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;YAC1C,CAAC;YAED,IAAI,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAChB,GAAG,CAAC,2CAA2C,CAAC,CAAC;gBACjD,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAC5C,IAAI;SACD,MAAM,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,2BAAmB,EAAE,CAAC;SACvE,KAAK,CAAC,GAAG,EAAE;QACV,4DAA4D;IAC9D,CAAC,CAAC,CAAC;IAEL,MAAM,YAAY,CAAC;IAEnB,8DAA8D;IAC9D,mDAAmD;IACnD,IAAI,UAAU,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QACtC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;gBACrC,IAAI,cAAc,EAAE,CAAC;oBACnB,aAAa,CAAC,aAAa,CAAC,CAAC;oBAC7B,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;gBACnC,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;YACvB,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;IAE1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,MAAM,IAAA,uCAAiB,EAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,8CAA8C,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,MAAM,UAAU,KAAK,CAAC,GAAG,GAAG,CAClG,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAW,UAAU,CAAC;IAC9C,GAAG,CAAC,mBAAmB,kBAAkB,CAAC,MAAM,SAAS,CAAC,CAAC;IAC3D,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,GAAG,CAAC,sDAAsD,CAAC,CAAC;IAC9D,CAAC;IAED,0EAA0E;IAC1E,qFAAqF;IACrF,oFAAoF;IACpF,mFAAmF;IACnF,IAAI,QAA4B,CAAC;IACjC,IAAI,eAAmC,CAAC;IACxC,IAAI,cAAkC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC1C,IAAI,aAAa,GAAkB,IAAI,CAAC;YACxC,IAAI,oBAAoB,GAAkB,IAAI,CAAC;YAC/C,IAAI,mBAAmB,GAAkB,IAAI,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBACvC,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC1D,IACE,KAAK,CAAC,MAAM;4BACZ,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;4BAC7C,KAAK,CAAC,MAAM,EACZ,CAAC;4BACD,aAAa,GAAG,KAAK,CAAC,MAAgB,CAAC;wBACzC,CAAC;wBACD,IACE,KAAK,CAAC,MAAM;4BACZ,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;4BACvC,KAAK,CAAC,MAAM,EACZ,CAAC;4BACD,oBAAoB,GAAG,KAAK,CAAC,MAAgB,CAAC;4BAC9C,0DAA0D;4BAC1D,qEAAqE;4BACrE,+DAA+D;4BAC/D,sEAAsE;4BACtE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAgB,CAAC;4BAC5C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAClC,gCAAgC,CACjC,CAAC;4BACF,IAAI,SAAS,EAAE,CAAC;gCACd,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;4BACrC,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,yBAAyB;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,aAAa;gBACvB,eAAe,EAAE,oBAAoB;gBACrC,cAAc,EAAE,mBAAmB;aACpC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,QAAQ,GAAG,UAAU,EAAE,QAAQ,IAAI,SAAS,CAAC;QAC7C,eAAe,GAAG,UAAU,EAAE,eAAe,IAAI,SAAS,CAAC;QAC3D,cAAc,GAAG,UAAU,EAAE,cAAc,IAAI,SAAS,CAAC;QACzD,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,qDAAqD,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,GAAG,CAAC,6DAA6D,CAAC,CAAC;YACnE,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CAAC,oBAAoB,cAAc,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;IAC9D,CAAC;IAED,OAAO;QACL,UAAU;QACV,MAAM,EAAE,MAAM,IAAI,SAAS;QAC3B,WAAW,EAAE,WAAW,IAAI,SAAS;QACrC,cAAc,EAAE,cAAc,IAAI,SAAS;QAC3C,QAAQ,EAAE,QAAQ,IAAI,SAAS;QAC/B,eAAe,EAAE,eAAe,IAAI,SAAS;QAC7C,cAAc,EAAE,cAAc,IAAI,SAAS;KAC5C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"token-capture.js","sourceRoot":"","sources":["../../src/auth/token-capture.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAqCH,sDAqQC;AAxSD,4CAAwD;AACxD,+DAA0D;AAE7C,QAAA,uBAAuB,GAAG,EAAE,GAAG,KAAK,CAAC;AACrC,QAAA,mBAAmB,GAAG,EAAE,GAAG,KAAK,CAAC;AACjC,QAAA,wBAAwB,GAAG,CAAC,GAAG,KAAK,CAAC;AAIlD,MAAM,iCAAiC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpD,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAa;IAC9C,MAAM,MAAM,GAAG,aAAa,CAAC;IAC7B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAC3C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,8DAA8D;AACvD,KAAK,UAAU,qBAAqB,CACzC,IAAS,EACT,GAAgB,EAChB,gBAAwB;IAUxB,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAU3D,CAAC;IACF,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,kBAAkB,GAAkB,IAAI,CAAC;IAC7C,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE;QACpC,QAAQ,EAAE;YACR,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YAClD,EAAE,UAAU,EAAE,wBAAwB,EAAE,YAAY,EAAE,SAAS,EAAE;SAClE;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,6CAA6C,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACjC,IAAI,eAAe,EAAE,CAAC;gBACpB,YAAY,CAAC,eAAe,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,UAAU,IAAI,kBAAkB,EAAE,CAAC;gBACtC,UAAU,GAAG,kBAAkB,CAAC;gBAChC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACrB,IAAI,eAAe,GAA0B,IAAI,CAAC;QAElD,SAAS,gBAAgB;YACvB,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,eAAe,EAAE,CAAC;gBACpB,YAAY,CAAC,eAAe,CAAC,CAAC;YAChC,CAAC;YACD,GAAG,CAAC,2CAA2C,CAAC,CAAC;YACjD,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,SAAS,0BAA0B;YACjC,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,UAAU,IAAI,kBAAkB,EAAE,CAAC;oBACtC,UAAU,GAAG,kBAAkB,CAAC;oBAChC,GAAG,CAAC,0DAA0D,CAAC,CAAC;oBAChE,gBAAgB,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC,EAAE,iCAAiC,CAAC,CAAC;QACxC,CAAC;QAED,UAAU,CAAC,EAAE,CACX,qBAAqB,EACrB,KAAK,EAAE,KAA8B,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAGrB,CAAC;YACF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAmB,CAAC;YAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;YACrC,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,cAAc,GAAG,IAAA,oCAAwB,EAAC,UAAU,CAAC,CAAC;YAE5D,IAAI,cAAc,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjD,MAAM,GAAG,cAAc,CAAC;gBACxB,GAAG,CAAC,2CAA2C,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;gBAClE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE,CAAC;oBAC1C,MAAM,eAAe,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;oBACzD,IAAI,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;wBACjC,UAAU,GAAG,eAAe,CAAC;oBAC/B,CAAC;yBAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC/B,kBAAkB,GAAG,eAAe,CAAC;wBACrC,0BAA0B,EAAE,CAAC;oBAC/B,CAAC;gBACH,CAAC;gBACD,IACE,IAAI,CAAC,WAAW,EAAE,KAAK,eAAe;oBACtC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAC3B,CAAC;oBACD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;wBACpD,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC9C,CAAC;oBACD,IACE,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC;wBAC3C,CAAC,cAAc,EACf,CAAC;wBACD,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;YAC1C,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,gBAAgB,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAC5C,IAAI;SACD,MAAM,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,2BAAmB,EAAE,CAAC;SACvE,KAAK,CAAC,GAAG,EAAE;QACV,4DAA4D;IAC9D,CAAC,CAAC,CAAC;IAEL,MAAM,YAAY,CAAC;IAEnB,8DAA8D;IAC9D,mDAAmD;IACnD,IAAI,UAAU,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QACtC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;gBACrC,IAAI,cAAc,EAAE,CAAC;oBACnB,aAAa,CAAC,aAAa,CAAC,CAAC;oBAC7B,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;gBACnC,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;YACvB,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;IAE1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,MAAM,IAAA,uCAAiB,EAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,8CAA8C,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,MAAM,UAAU,KAAK,CAAC,GAAG,GAAG,CAClG,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAW,UAAU,CAAC;IAC9C,GAAG,CAAC,mBAAmB,kBAAkB,CAAC,MAAM,SAAS,CAAC,CAAC;IAC3D,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,GAAG,CAAC,sDAAsD,CAAC,CAAC;IAC9D,CAAC;IAED,0EAA0E;IAC1E,qFAAqF;IACrF,oFAAoF;IACpF,mFAAmF;IACnF,IAAI,QAA4B,CAAC;IACjC,IAAI,eAAmC,CAAC;IACxC,IAAI,cAAkC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC1C,IAAI,aAAa,GAAkB,IAAI,CAAC;YACxC,IAAI,oBAAoB,GAAkB,IAAI,CAAC;YAC/C,IAAI,mBAAmB,GAAkB,IAAI,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBACvC,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC1D,IACE,KAAK,CAAC,MAAM;4BACZ,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;4BAC7C,KAAK,CAAC,MAAM,EACZ,CAAC;4BACD,aAAa,GAAG,KAAK,CAAC,MAAgB,CAAC;wBACzC,CAAC;wBACD,IACE,KAAK,CAAC,MAAM;4BACZ,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;4BACvC,KAAK,CAAC,MAAM,EACZ,CAAC;4BACD,oBAAoB,GAAG,KAAK,CAAC,MAAgB,CAAC;4BAC9C,0DAA0D;4BAC1D,qEAAqE;4BACrE,+DAA+D;4BAC/D,sEAAsE;4BACtE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAgB,CAAC;4BAC5C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAClC,gCAAgC,CACjC,CAAC;4BACF,IAAI,SAAS,EAAE,CAAC;gCACd,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;4BACrC,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,yBAAyB;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,aAAa;gBACvB,eAAe,EAAE,oBAAoB;gBACrC,cAAc,EAAE,mBAAmB;aACpC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,QAAQ,GAAG,UAAU,EAAE,QAAQ,IAAI,SAAS,CAAC;QAC7C,eAAe,GAAG,UAAU,EAAE,eAAe,IAAI,SAAS,CAAC;QAC3D,cAAc,GAAG,UAAU,EAAE,cAAc,IAAI,SAAS,CAAC;QACzD,IAAI,QAAQ,EAAE,CAAC;YACb,GAAG,CAAC,qDAAqD,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,GAAG,CAAC,6DAA6D,CAAC,CAAC;YACnE,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CAAC,oBAAoB,cAAc,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;IAC9D,CAAC;IAED,OAAO;QACL,UAAU;QACV,MAAM,EAAE,MAAM,IAAI,SAAS;QAC3B,WAAW,EAAE,WAAW,IAAI,SAAS;QACrC,cAAc,EAAE,cAAc,IAAI,SAAS;QAC3C,QAAQ,EAAE,QAAQ,IAAI,SAAS;QAC/B,eAAe,EAAE,eAAe,IAAI,SAAS;QAC7C,cAAc,EAAE,cAAc,IAAI,SAAS;KAC5C,CAAC;AACJ,CAAC"}
@@ -24,6 +24,17 @@ export declare function getDefaultBrowserProfileDir(): string;
24
24
  export declare function getInteractiveBrowserChannels(platform?: NodeJS.Platform): InteractiveBrowserChannel[];
25
25
  export declare function isMissingPlaywrightBrowserError(error: unknown): boolean;
26
26
  export declare function installBundledChromium(log: LogFunction): void;
27
+ /**
28
+ * Detect whether a browser launch error is caused by a locked profile
29
+ * (Chromium exit code 21 or SingletonLock contention).
30
+ */
31
+ export declare function isProfileLockError(error: unknown): boolean;
32
+ /**
33
+ * Attempt to remove a stale SingletonLock file from a browser profile.
34
+ * Only removes the lock if the PID it references is not running.
35
+ * Returns true if the lock was successfully cleaned.
36
+ */
37
+ export declare function cleanStaleSingletonLock(profileDir: string, log: LogFunction): boolean;
27
38
  export declare function launchInteractiveBrowser(chromium: ChromiumBrowserLauncher, log: LogFunction, options?: {
28
39
  platform?: NodeJS.Platform;
29
40
  installBundledChromium?: (log: LogFunction) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"browser-runtime.d.ts","sourceRoot":"","sources":["../src/browser-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI1D,KAAK,WAAW,GAAG,CAAC,GAAG,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AACtD,KAAK,yBAAyB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,OAAO,EAAE;QACd,QAAQ,EAAE,KAAK,CAAC;QAChB,OAAO,CAAC,EAAE,yBAAyB,CAAC;KACrC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,uBAAuB,CACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;QACP,QAAQ,EAAE,KAAK,CAAC;QAChB,OAAO,CAAC,EAAE,yBAAyB,CAAC;KACrC,GACA,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAmBD,wBAAgB,6BAA6B,CAC3C,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,yBAAyB,EAAE,CAE7B;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIvE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAgC7D;AAED,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,uBAAuB,EACjC,GAAG,EAAE,WAAW,EAChB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,sBAAsB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CACrD,GACA,OAAO,CAAC,OAAO,CAAC,CAoClB;AAED,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,yBAAyB,EACnC,GAAG,EAAE,WAAW,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,sBAAsB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CACrD,GACA,OAAO,CAAC,cAAc,CAAC,CAsCzB"}
1
+ {"version":3,"file":"browser-runtime.d.ts","sourceRoot":"","sources":["../src/browser-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI1D,KAAK,WAAW,GAAG,CAAC,GAAG,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AACtD,KAAK,yBAAyB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,OAAO,EAAE;QACd,QAAQ,EAAE,KAAK,CAAC;QAChB,OAAO,CAAC,EAAE,yBAAyB,CAAC;KACrC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,uBAAuB,CACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;QACP,QAAQ,EAAE,KAAK,CAAC;QAChB,OAAO,CAAC,EAAE,yBAAyB,CAAC;KACrC,GACA,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAmBD,wBAAgB,6BAA6B,CAC3C,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,yBAAyB,EAAE,CAE7B;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIvE;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAgC7D;AAkBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAS1D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,WAAW,GACf,OAAO,CAkCT;AAWD,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,uBAAuB,EACjC,GAAG,EAAE,WAAW,EAChB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,sBAAsB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CACrD,GACA,OAAO,CAAC,OAAO,CAAC,CAoClB;AAED,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,yBAAyB,EACnC,GAAG,EAAE,WAAW,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,sBAAsB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CACrD,GACA,OAAO,CAAC,cAAc,CAAC,CA+BzB"}
@@ -11,9 +11,12 @@ exports.getDefaultBrowserProfileDir = getDefaultBrowserProfileDir;
11
11
  exports.getInteractiveBrowserChannels = getInteractiveBrowserChannels;
12
12
  exports.isMissingPlaywrightBrowserError = isMissingPlaywrightBrowserError;
13
13
  exports.installBundledChromium = installBundledChromium;
14
+ exports.isProfileLockError = isProfileLockError;
15
+ exports.cleanStaleSingletonLock = cleanStaleSingletonLock;
14
16
  exports.launchInteractiveBrowser = launchInteractiveBrowser;
15
17
  exports.launchInteractiveBrowserContext = launchInteractiveBrowserContext;
16
18
  const node_child_process_1 = require("node:child_process");
19
+ const node_fs_1 = require("node:fs");
17
20
  const node_module_1 = require("node:module");
18
21
  const node_os_1 = require("node:os");
19
22
  const node_path_1 = require("node:path");
@@ -57,6 +60,84 @@ function installBundledChromium(log) {
57
60
  "Unknown error";
58
61
  throw new Error(`Failed to install Playwright Chromium automatically. ${detail}`);
59
62
  }
63
+ const PROFILE_LOCK_MAX_RETRIES = 3;
64
+ const PROFILE_LOCK_RETRY_DELAY_MS = 500;
65
+ /**
66
+ * Check if a file or symlink exists (without following the symlink).
67
+ * Unlike `existsSync`, this returns true for broken symlinks.
68
+ */
69
+ function fileOrSymlinkExists(path) {
70
+ try {
71
+ (0, node_fs_1.lstatSync)(path);
72
+ return true;
73
+ }
74
+ catch {
75
+ return false;
76
+ }
77
+ }
78
+ /**
79
+ * Detect whether a browser launch error is caused by a locked profile
80
+ * (Chromium exit code 21 or SingletonLock contention).
81
+ */
82
+ function isProfileLockError(error) {
83
+ if (!(error instanceof Error))
84
+ return false;
85
+ const message = error.message.toLowerCase();
86
+ return (message.includes("exit code 21") ||
87
+ message.includes("process singleton") ||
88
+ message.includes("profile directory is already in use") ||
89
+ message.includes("singletonlock"));
90
+ }
91
+ /**
92
+ * Attempt to remove a stale SingletonLock file from a browser profile.
93
+ * Only removes the lock if the PID it references is not running.
94
+ * Returns true if the lock was successfully cleaned.
95
+ */
96
+ function cleanStaleSingletonLock(profileDir, log) {
97
+ const lockPath = (0, node_path_1.join)(profileDir, "SingletonLock");
98
+ if (!fileOrSymlinkExists(lockPath)) {
99
+ log("No SingletonLock file found — nothing to clean.");
100
+ return false;
101
+ }
102
+ // SingletonLock is a symlink whose target contains the hostname and PID
103
+ // Format: "hostname-pid" (e.g., "MacBook-Pro.local-12345")
104
+ try {
105
+ const linkTarget = (0, node_fs_1.readlinkSync)(lockPath);
106
+ const pidMatch = linkTarget.match(/-(\d+)$/);
107
+ if (pidMatch) {
108
+ const pid = Number(pidMatch[1]);
109
+ if (isProcessRunning(pid)) {
110
+ log(`SingletonLock held by live process (PID ${pid}) — cannot remove.`);
111
+ return false;
112
+ }
113
+ log(`SingletonLock held by dead process (PID ${pid}) — removing.`);
114
+ }
115
+ else {
116
+ log("SingletonLock has unrecognized format — removing.");
117
+ }
118
+ }
119
+ catch {
120
+ log("Could not read SingletonLock — attempting removal anyway.");
121
+ }
122
+ try {
123
+ (0, node_fs_1.rmSync)(lockPath, { force: true });
124
+ log("Removed stale SingletonLock.");
125
+ return true;
126
+ }
127
+ catch (removeError) {
128
+ log(`Failed to remove SingletonLock: ${removeError.message}`);
129
+ return false;
130
+ }
131
+ }
132
+ function isProcessRunning(pid) {
133
+ try {
134
+ process.kill(pid, 0);
135
+ return true;
136
+ }
137
+ catch {
138
+ return false;
139
+ }
140
+ }
60
141
  async function launchInteractiveBrowser(chromium, log, options) {
61
142
  for (const channel of getInteractiveBrowserChannels(options?.platform)) {
62
143
  try {
@@ -89,6 +170,27 @@ async function launchInteractiveBrowser(chromium, log, options) {
89
170
  }
90
171
  }
91
172
  async function launchInteractiveBrowserContext(chromium, log, userDataDir, options) {
173
+ for (let attempt = 0; attempt <= PROFILE_LOCK_MAX_RETRIES; attempt++) {
174
+ try {
175
+ return await attemptLaunchPersistentContext(chromium, log, userDataDir, options);
176
+ }
177
+ catch (error) {
178
+ if (!isProfileLockError(error) || attempt === PROFILE_LOCK_MAX_RETRIES) {
179
+ throw error;
180
+ }
181
+ log(`Browser launch failed with profile lock error (attempt ${attempt + 1}/${PROFILE_LOCK_MAX_RETRIES + 1}): ${error.message}`);
182
+ const cleaned = cleanStaleSingletonLock(userDataDir, log);
183
+ if (!cleaned && attempt === PROFILE_LOCK_MAX_RETRIES - 1) {
184
+ throw new Error(`Browser profile at "${userDataDir}" is locked and could not be cleaned. ` +
185
+ `Try closing other browser instances or deleting "${(0, node_path_1.join)(userDataDir, "SingletonLock")}" manually.`);
186
+ }
187
+ await new Promise((resolve) => setTimeout(resolve, PROFILE_LOCK_RETRY_DELAY_MS));
188
+ }
189
+ }
190
+ // Unreachable, but satisfies TypeScript
191
+ throw new Error("Browser launch failed after all retries");
192
+ }
193
+ async function attemptLaunchPersistentContext(chromium, log, userDataDir, options) {
92
194
  for (const channel of getInteractiveBrowserChannels(options?.platform)) {
93
195
  try {
94
196
  log(`Trying installed ${formatChannelName(channel)}...`);
@@ -100,6 +202,8 @@ async function launchInteractiveBrowserContext(chromium, log, userDataDir, optio
100
202
  return context;
101
203
  }
102
204
  catch (error) {
205
+ if (isProfileLockError(error))
206
+ throw error;
103
207
  log(`Could not launch ${formatChannelName(channel)}: ${error.message}`);
104
208
  }
105
209
  }
@@ -112,6 +216,8 @@ async function launchInteractiveBrowserContext(chromium, log, userDataDir, optio
112
216
  return context;
113
217
  }
114
218
  catch (error) {
219
+ if (isProfileLockError(error))
220
+ throw error;
115
221
  if (!isMissingPlaywrightBrowserError(error)) {
116
222
  throw error;
117
223
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser-runtime.js","sourceRoot":"","sources":["../src/browser-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-runtime.js","sourceRoot":"","sources":["../src/browser-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Conversation protection — restricts edit/delete in sensitive conversations.
3
+ *
4
+ * Reads `TEAMS_PROTECTED_CONVERSATIONS` (comma-separated glob patterns).
5
+ * When a conversation label matches any pattern, edit and delete actions
6
+ * are blocked with an informative error.
7
+ *
8
+ * Glob wildcards: `*` matches any characters. Matching is case-insensitive.
9
+ */
10
+ /**
11
+ * Parse the `TEAMS_PROTECTED_CONVERSATIONS` env var (or a raw string)
12
+ * into a trimmed array of non-empty patterns.
13
+ */
14
+ export declare function resolveProtectedPatterns(raw?: string | null): readonly string[];
15
+ /**
16
+ * Check whether a conversation label matches any of the protected patterns.
17
+ *
18
+ * Returns the first matching pattern, or `undefined` if no match.
19
+ */
20
+ export declare function matchProtectedConversation(conversationLabel: string, patterns: readonly string[]): string | undefined;
21
+ //# sourceMappingURL=conversation-protection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-protection.d.ts","sourceRoot":"","sources":["../src/conversation-protection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAClB,SAAS,MAAM,EAAE,CAMnB;AAcD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,GAAG,SAAS,CAOpB"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ /**
3
+ * Conversation protection — restricts edit/delete in sensitive conversations.
4
+ *
5
+ * Reads `TEAMS_PROTECTED_CONVERSATIONS` (comma-separated glob patterns).
6
+ * When a conversation label matches any pattern, edit and delete actions
7
+ * are blocked with an informative error.
8
+ *
9
+ * Glob wildcards: `*` matches any characters. Matching is case-insensitive.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.resolveProtectedPatterns = resolveProtectedPatterns;
13
+ exports.matchProtectedConversation = matchProtectedConversation;
14
+ /**
15
+ * Parse the `TEAMS_PROTECTED_CONVERSATIONS` env var (or a raw string)
16
+ * into a trimmed array of non-empty patterns.
17
+ */
18
+ function resolveProtectedPatterns(raw) {
19
+ const value = raw ?? process.env.TEAMS_PROTECTED_CONVERSATIONS ?? "";
20
+ return value
21
+ .split(",")
22
+ .map((pattern) => pattern.trim())
23
+ .filter(Boolean);
24
+ }
25
+ /**
26
+ * Convert a glob pattern (supporting `*`) into a case-insensitive RegExp.
27
+ *
28
+ * Every character except `*` is escaped; `*` becomes `.*`.
29
+ */
30
+ function globToRegExp(pattern) {
31
+ const escaped = pattern.replace(/[.*+?^${}()|[\]\\]/g, (character) => character === "*" ? ".*" : `\\${character}`);
32
+ return new RegExp(`^${escaped}$`, "i");
33
+ }
34
+ /**
35
+ * Check whether a conversation label matches any of the protected patterns.
36
+ *
37
+ * Returns the first matching pattern, or `undefined` if no match.
38
+ */
39
+ function matchProtectedConversation(conversationLabel, patterns) {
40
+ for (const pattern of patterns) {
41
+ if (globToRegExp(pattern).test(conversationLabel)) {
42
+ return pattern;
43
+ }
44
+ }
45
+ return undefined;
46
+ }
47
+ //# sourceMappingURL=conversation-protection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-protection.js","sourceRoot":"","sources":["../src/conversation-protection.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAMH,4DAQC;AAmBD,gEAUC;AAzCD;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,GAAmB;IAEnB,MAAM,KAAK,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC;IACrE,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAChC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,SAAS,EAAE,EAAE,CACnE,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAC5C,CAAC;IACF,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CACxC,iBAAyB,EACzB,QAA2B;IAE3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { recordAuth as defaultRecordAuth } from "./telemetry.js";
2
+ import type { AuthLogFunction, AutoLoginOptions, InteractiveLoginOptions, ManualTokenOptions, SmartLoginOptions } from "./types.js";
3
+ interface AuthenticatedTeamsClient {
4
+ setEmail(email: string): void;
5
+ }
6
+ interface TeamsClientAuthFactory<Client extends AuthenticatedTeamsClient> {
7
+ create(options: AutoLoginOptions): Promise<Client>;
8
+ connect(options?: SmartLoginOptions): Promise<Client>;
9
+ fromInteractiveLogin(options?: InteractiveLoginOptions): Promise<Client>;
10
+ fromDebugSession(options?: ManualTokenOptions): Promise<Client>;
11
+ fromToken(skypeToken: string, region: string, bearerToken?: string, substrateToken?: string): Client;
12
+ }
13
+ type AuthRecord = Parameters<typeof defaultRecordAuth>[0];
14
+ type RecordAuthFunction = (record: AuthRecord) => void;
15
+ type CanAttemptAutoLoginFunction = () => boolean;
16
+ interface McpAuthEnvironment {
17
+ TEAMS_AUTO?: string;
18
+ TEAMS_BEARER_TOKEN?: string;
19
+ TEAMS_DEBUG?: string;
20
+ TEAMS_DEBUG_PORT?: string;
21
+ TEAMS_EMAIL?: string;
22
+ TEAMS_LOGIN?: string;
23
+ TEAMS_REGION?: string;
24
+ TEAMS_SUBSTRATE_TOKEN?: string;
25
+ TEAMS_TOKEN?: string;
26
+ }
27
+ export interface McpAuthManagerOptions<Client extends AuthenticatedTeamsClient> {
28
+ canAttemptAutoLogin?: CanAttemptAutoLoginFunction;
29
+ clientFactory: TeamsClientAuthFactory<Client>;
30
+ environment?: McpAuthEnvironment;
31
+ log?: AuthLogFunction;
32
+ recordAuth?: RecordAuthFunction;
33
+ }
34
+ export declare class NeedsEmailError extends Error {
35
+ constructor();
36
+ }
37
+ export declare class AuthenticationInProgressError extends Error {
38
+ constructor();
39
+ }
40
+ export declare class McpAuthManager<Client extends AuthenticatedTeamsClient> {
41
+ private readonly canAttemptAutoLogin;
42
+ private readonly clientFactory;
43
+ private readonly environment;
44
+ private readonly log;
45
+ private readonly recordAuth;
46
+ private authenticationPromise;
47
+ private clientInstance;
48
+ constructor(options: McpAuthManagerOptions<Client>);
49
+ authenticateOnStartup(): Promise<void>;
50
+ getClient(toolEmail?: string): Promise<Client>;
51
+ private shouldUseTwoPhaseAuthentication;
52
+ private startAuthentication;
53
+ private authenticate;
54
+ }
55
+ export {};
56
+ //# sourceMappingURL=mcp-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-auth.d.ts","sourceRoot":"","sources":["../src/mcp-auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,UAAU,wBAAwB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,UAAU,sBAAsB,CAAC,MAAM,SAAS,wBAAwB;IACtE,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,oBAAoB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzE,gBAAgB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAAC;CACX;AAED,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,KAAK,kBAAkB,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;AACvD,KAAK,2BAA2B,GAAG,MAAM,OAAO,CAAC;AAEjD,UAAU,kBAAkB;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAcD,MAAM,WAAW,qBAAqB,CACpC,MAAM,SAAS,wBAAwB;IAEvC,mBAAmB,CAAC,EAAE,2BAA2B,CAAC;IAClD,aAAa,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED,qBAAa,eAAgB,SAAQ,KAAK;;CAQzC;AAED,qBAAa,6BAA8B,SAAQ,KAAK;;CAQvD;AAgCD,qBAAa,cAAc,CAAC,MAAM,SAAS,wBAAwB;IACjE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA8B;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,qBAAqB,CAAgC;IAC7D,OAAO,CAAC,cAAc,CAAuB;gBAEjC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC;IAS5C,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBtC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBpD,OAAO,CAAC,+BAA+B;IAwBvC,OAAO,CAAC,mBAAmB;YAab,YAAY;CAiG3B"}