teams-api 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +138 -20
  2. package/dist/actions/conversation-actions.d.ts.map +1 -1
  3. package/dist/actions/conversation-actions.js.map +1 -1
  4. package/dist/actions/definitions.d.ts.map +1 -1
  5. package/dist/actions/definitions.js +2 -0
  6. package/dist/actions/definitions.js.map +1 -1
  7. package/dist/actions/file-actions.d.ts.map +1 -1
  8. package/dist/actions/file-actions.js +3 -1
  9. package/dist/actions/file-actions.js.map +1 -1
  10. package/dist/actions/image-description-actions.d.ts +28 -0
  11. package/dist/actions/image-description-actions.d.ts.map +1 -0
  12. package/dist/actions/image-description-actions.js +148 -0
  13. package/dist/actions/image-description-actions.js.map +1 -0
  14. package/dist/actions/message-actions.d.ts.map +1 -1
  15. package/dist/actions/message-actions.js +175 -9
  16. package/dist/actions/message-actions.js.map +1 -1
  17. package/dist/actions/utility-actions.d.ts.map +1 -1
  18. package/dist/actions/utility-actions.js.map +1 -1
  19. package/dist/api/chat-service.d.ts +2 -12
  20. package/dist/api/chat-service.d.ts.map +1 -1
  21. package/dist/api/chat-service.js +33 -41
  22. package/dist/api/chat-service.js.map +1 -1
  23. package/dist/api/common.d.ts +4 -0
  24. package/dist/api/common.d.ts.map +1 -1
  25. package/dist/api/common.js +10 -1
  26. package/dist/api/common.js.map +1 -1
  27. package/dist/api/image-description.d.ts +20 -0
  28. package/dist/api/image-description.d.ts.map +1 -0
  29. package/dist/api/image-description.js +77 -0
  30. package/dist/api/image-description.js.map +1 -0
  31. package/dist/audit.d.ts +17 -0
  32. package/dist/audit.d.ts.map +1 -0
  33. package/dist/audit.js +53 -0
  34. package/dist/audit.js.map +1 -0
  35. package/dist/auth/auto-login.d.ts.map +1 -1
  36. package/dist/auth/auto-login.js +1 -3
  37. package/dist/auth/auto-login.js.map +1 -1
  38. package/dist/auth/interactive.d.ts.map +1 -1
  39. package/dist/auth/interactive.js +7 -8
  40. package/dist/auth/interactive.js.map +1 -1
  41. package/dist/auth/token-capture.d.ts.map +1 -1
  42. package/dist/auth/token-capture.js +62 -8
  43. package/dist/auth/token-capture.js.map +1 -1
  44. package/dist/browser-runtime.d.ts +11 -0
  45. package/dist/browser-runtime.d.ts.map +1 -1
  46. package/dist/browser-runtime.js +106 -0
  47. package/dist/browser-runtime.js.map +1 -1
  48. package/dist/cli.js.map +1 -1
  49. package/dist/conversation-protection.d.ts +21 -0
  50. package/dist/conversation-protection.d.ts.map +1 -0
  51. package/dist/conversation-protection.js +47 -0
  52. package/dist/conversation-protection.js.map +1 -0
  53. package/dist/credential-store.d.ts.map +1 -1
  54. package/dist/credential-store.js +10 -2
  55. package/dist/credential-store.js.map +1 -1
  56. package/dist/emoji-map.d.ts.map +1 -1
  57. package/dist/emoji-map.js.map +1 -1
  58. package/dist/html-utils.d.ts +23 -3
  59. package/dist/html-utils.d.ts.map +1 -1
  60. package/dist/html-utils.js +34 -3
  61. package/dist/html-utils.js.map +1 -1
  62. package/dist/mcp-auth.d.ts +56 -0
  63. package/dist/mcp-auth.d.ts.map +1 -0
  64. package/dist/mcp-auth.js +207 -0
  65. package/dist/mcp-auth.js.map +1 -0
  66. package/dist/mcp-server.d.ts +1 -0
  67. package/dist/mcp-server.d.ts.map +1 -1
  68. package/dist/mcp-server.js +37 -213
  69. package/dist/mcp-server.js.map +1 -1
  70. package/dist/model-context-protocol-download-content.d.ts +7 -0
  71. package/dist/model-context-protocol-download-content.d.ts.map +1 -0
  72. package/dist/model-context-protocol-download-content.js +90 -0
  73. package/dist/model-context-protocol-download-content.js.map +1 -0
  74. package/dist/server-instructions.d.ts.map +1 -1
  75. package/dist/server-instructions.js +4 -0
  76. package/dist/server-instructions.js.map +1 -1
  77. package/dist/smart-login.d.ts.map +1 -1
  78. package/dist/smart-login.js +3 -3
  79. package/dist/smart-login.js.map +1 -1
  80. package/dist/teams-client.d.ts +20 -3
  81. package/dist/teams-client.d.ts.map +1 -1
  82. package/dist/teams-client.js +117 -29
  83. package/dist/teams-client.js.map +1 -1
  84. package/dist/telemetry.d.ts.map +1 -1
  85. package/dist/telemetry.js +5 -1
  86. package/dist/telemetry.js.map +1 -1
  87. package/dist/token-store.d.ts.map +1 -1
  88. package/dist/token-store.js.map +1 -1
  89. package/dist/types.d.ts +54 -0
  90. package/dist/types.d.ts.map +1 -1
  91. package/dist/types.js.map +1 -1
  92. package/package.json +8 -2
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/api/common.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,sBAAsB,EAAE,MAAM,CAAC;gBAEnC,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM;CAK5D;AAqBD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,CAAC,CAsBnB"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/api/common.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,sBAAsB,EAAE,MAAM,CAAC;gBAEnC,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM;CAK5D;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAKhD;AAqBD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAC7B,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,QAAQ,CAAC,CAsBnB"}
@@ -6,7 +6,7 @@
6
6
  * used by chat-service, middle-tier, substrate, and transcript modules.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ApiRateLimitError = exports.ApiAuthError = void 0;
9
+ exports.ApiResponseError = exports.ApiRateLimitError = exports.ApiAuthError = void 0;
10
10
  exports.fetchWithRetry = fetchWithRetry;
11
11
  class ApiAuthError extends Error {
12
12
  constructor(message) {
@@ -24,6 +24,15 @@ class ApiRateLimitError extends Error {
24
24
  }
25
25
  }
26
26
  exports.ApiRateLimitError = ApiRateLimitError;
27
+ class ApiResponseError extends Error {
28
+ statusCode;
29
+ constructor(message, statusCode) {
30
+ super(message);
31
+ this.name = "ApiResponseError";
32
+ this.statusCode = statusCode;
33
+ }
34
+ }
35
+ exports.ApiResponseError = ApiResponseError;
27
36
  const MAX_RETRY_ATTEMPTS = 5;
28
37
  const INITIAL_BACKOFF_MILLISECONDS = 2_000;
29
38
  function parseRetryAfter(response) {
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/api/common.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA4CH,wCAyBC;AAnED,MAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AALD,oCAKC;AAED,MAAa,iBAAkB,SAAQ,KAAK;IAC1B,sBAAsB,CAAS;IAE/C,YAAY,OAAe,EAAE,sBAA8B;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACvD,CAAC;CACF;AARD,8CAQC;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAE3C,SAAS,eAAe,CAAC,QAAkB;IACzC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAClC,KAA6B,EAC7B,IAAkB;IAElB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,kBAAkB,EAAE,OAAO,EAAE,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,KAAK,kBAAkB,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,iBAAiB,CACzB,6BAA6B,kBAAkB,GAAG,CAAC,cAAc,QAAQ,CAAC,MAAM,IAAI,SAAS,EAAE,EAC/F,eAAe,CAAC,QAAQ,CAAC,CAC1B,CAAC;QACJ,CAAC;QAED,MAAM,sBAAsB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,mBAAmB,GAAG,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1E,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/api/common.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAsDH,wCAyBC;AA7ED,MAAa,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AALD,oCAKC;AAED,MAAa,iBAAkB,SAAQ,KAAK;IAC1B,sBAAsB,CAAS;IAE/C,YAAY,OAAe,EAAE,sBAA8B;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACvD,CAAC;CACF;AARD,8CAQC;AAED,MAAa,gBAAiB,SAAQ,KAAK;IACzB,UAAU,CAAS;IAEnC,YAAY,OAAe,EAAE,UAAkB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AARD,4CAQC;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAE3C,SAAS,eAAe,CAAC,QAAkB;IACzC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAClC,KAA6B,EAC7B,IAAkB;IAElB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,kBAAkB,EAAE,OAAO,EAAE,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,KAAK,kBAAkB,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,iBAAiB,CACzB,6BAA6B,kBAAkB,GAAG,CAAC,cAAc,QAAQ,CAAC,MAAM,IAAI,SAAS,EAAE,EAC/F,eAAe,CAAC,QAAQ,CAAC,CAC1B,CAAC;QACJ,CAAC;QAED,MAAM,sBAAsB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,mBAAmB,GAAG,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1E,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Image description utilities.
3
+ *
4
+ * The Teams API provides image bytes; this module sends those bytes to an
5
+ * OpenAI-compatible vision endpoint when the user has configured credentials.
6
+ */
7
+ export interface DescribeImageOptions {
8
+ imageData: Buffer;
9
+ contentType: string;
10
+ prompt?: string;
11
+ environment?: NodeJS.ProcessEnv;
12
+ fetchFunction?: typeof fetch;
13
+ }
14
+ export interface ImageDescriptionResult {
15
+ provider: "openai-compatible";
16
+ model: string;
17
+ description: string;
18
+ }
19
+ export declare function describeImageWithOpenAiCompatibleVision(options: DescribeImageOptions): Promise<ImageDescriptionResult>;
20
+ //# sourceMappingURL=image-description.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-description.d.ts","sourceRoot":"","sources":["../../src/api/image-description.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,KAAK,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAoCD,wBAAsB,uCAAuC,CAC3D,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,sBAAsB,CAAC,CAwDjC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * Image description utilities.
4
+ *
5
+ * The Teams API provides image bytes; this module sends those bytes to an
6
+ * OpenAI-compatible vision endpoint when the user has configured credentials.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.describeImageWithOpenAiCompatibleVision = describeImageWithOpenAiCompatibleVision;
10
+ const common_js_1 = require("./common.js");
11
+ const DEFAULT_OPENAI_COMPATIBLE_BASE_URL = "https://api.openai.com/v1";
12
+ const DEFAULT_OPENAI_COMPATIBLE_MODEL = "gpt-4o-mini";
13
+ const DEFAULT_IMAGE_DESCRIPTION_PROMPT = "Describe this Teams image for someone who cannot see it. Focus on visible text, UI state, diagrams, charts, and any actionable context. Be concise but complete.";
14
+ function readImageDescriptionConfig(environment) {
15
+ const apiKey = environment.TEAMS_IMAGE_DESCRIPTION_API_KEY ?? environment.OPENAI_API_KEY;
16
+ if (!apiKey) {
17
+ throw new Error("Image description requires TEAMS_IMAGE_DESCRIPTION_API_KEY or OPENAI_API_KEY to be set.");
18
+ }
19
+ const baseUrl = (environment.TEAMS_IMAGE_DESCRIPTION_BASE_URL ??
20
+ DEFAULT_OPENAI_COMPATIBLE_BASE_URL).replace(/\/+$/, "");
21
+ const model = environment.TEAMS_IMAGE_DESCRIPTION_MODEL ??
22
+ DEFAULT_OPENAI_COMPATIBLE_MODEL;
23
+ return {
24
+ endpointUrl: `${baseUrl}/chat/completions`,
25
+ apiKey,
26
+ model,
27
+ };
28
+ }
29
+ async function describeImageWithOpenAiCompatibleVision(options) {
30
+ const environment = options.environment ?? process.env;
31
+ const fetchFunction = options.fetchFunction ?? common_js_1.fetchWithRetry;
32
+ const config = readImageDescriptionConfig(environment);
33
+ const prompt = options.prompt ?? DEFAULT_IMAGE_DESCRIPTION_PROMPT;
34
+ const response = await fetchFunction(config.endpointUrl, {
35
+ method: "POST",
36
+ headers: {
37
+ Authorization: `Bearer ${config.apiKey}`,
38
+ "Content-Type": "application/json",
39
+ },
40
+ body: JSON.stringify({
41
+ model: config.model,
42
+ messages: [
43
+ {
44
+ role: "user",
45
+ content: [
46
+ {
47
+ type: "text",
48
+ text: prompt,
49
+ },
50
+ {
51
+ type: "image_url",
52
+ image_url: {
53
+ url: `data:${options.contentType};base64,${options.imageData.toString("base64")}`,
54
+ },
55
+ },
56
+ ],
57
+ },
58
+ ],
59
+ max_tokens: 500,
60
+ }),
61
+ });
62
+ if (!response.ok) {
63
+ const errorText = await response.text();
64
+ throw new Error(`Image description request failed: ${response.status} ${response.statusText} — ${errorText}`);
65
+ }
66
+ const responseBody = (await response.json());
67
+ const description = responseBody.choices?.[0]?.message?.content?.trim();
68
+ if (!description) {
69
+ throw new Error("Image description response did not include message content.");
70
+ }
71
+ return {
72
+ provider: "openai-compatible",
73
+ model: config.model,
74
+ description,
75
+ };
76
+ }
77
+ //# sourceMappingURL=image-description.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-description.js","sourceRoot":"","sources":["../../src/api/image-description.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+DH,0FA0DC;AAvHD,2CAA6C;AAE7C,MAAM,kCAAkC,GAAG,2BAA2B,CAAC;AACvE,MAAM,+BAA+B,GAAG,aAAa,CAAC;AACtD,MAAM,gCAAgC,GACpC,kKAAkK,CAAC;AA8BrK,SAAS,0BAA0B,CACjC,WAA8B;IAE9B,MAAM,MAAM,GACV,WAAW,CAAC,+BAA+B,IAAI,WAAW,CAAC,cAAc,CAAC;IAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CACd,WAAW,CAAC,gCAAgC;QAC5C,kCAAkC,CACnC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtB,MAAM,KAAK,GACT,WAAW,CAAC,6BAA6B;QACzC,+BAA+B,CAAC;IAElC,OAAO;QACL,WAAW,EAAE,GAAG,OAAO,mBAAmB;QAC1C,MAAM;QACN,KAAK;KACN,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,uCAAuC,CAC3D,OAA6B;IAE7B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IACvD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,0BAAc,CAAC;IAC9D,MAAM,MAAM,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gCAAgC,CAAC;IAElE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE;QACvD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;YACxC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,MAAM;yBACb;wBACD;4BACE,IAAI,EAAE,WAAW;4BACjB,SAAS,EAAE;gCACT,GAAG,EAAE,QAAQ,OAAO,CAAC,WAAW,WAAW,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;6BAClF;yBACF;qBACF;iBACF;aACF;YACD,UAAU,EAAE,GAAG;SAChB,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,qCAAqC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CAC7F,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAChB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmC,CAAC;IAC5D,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,mBAAmB;QAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW;KACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Audit logging for state-modifying Teams actions.
3
+ *
4
+ * Emits structured JSON Lines to stderr or a file for compliance and audit trails.
5
+ * Controlled by the TEAMS_AUDIT_LOG environment variable:
6
+ * - "off" or unset — no audit logging (default)
7
+ * - "stderr" — write to stderr
8
+ * - "file:/path/to/audit.jsonl" — append to file
9
+ *
10
+ * Audit failures are silent — they must never break the tool.
11
+ */
12
+ import type { AuditDestination, AuditEvent } from "./types.js";
13
+ /** Resolve the audit destination from the TEAMS_AUDIT_LOG environment variable. */
14
+ export declare function resolveAuditDestination(): AuditDestination;
15
+ /** Emit a structured audit event to the configured destination. */
16
+ export declare function emitAuditEvent(event: AuditEvent): void;
17
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D,mFAAmF;AACnF,wBAAgB,uBAAuB,IAAI,gBAAgB,CAM1D;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAuBtD"}
package/dist/audit.js ADDED
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * Audit logging for state-modifying Teams actions.
4
+ *
5
+ * Emits structured JSON Lines to stderr or a file for compliance and audit trails.
6
+ * Controlled by the TEAMS_AUDIT_LOG environment variable:
7
+ * - "off" or unset — no audit logging (default)
8
+ * - "stderr" — write to stderr
9
+ * - "file:/path/to/audit.jsonl" — append to file
10
+ *
11
+ * Audit failures are silent — they must never break the tool.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.resolveAuditDestination = resolveAuditDestination;
15
+ exports.emitAuditEvent = emitAuditEvent;
16
+ const node_fs_1 = require("node:fs");
17
+ const node_path_1 = require("node:path");
18
+ /** Resolve the audit destination from the TEAMS_AUDIT_LOG environment variable. */
19
+ function resolveAuditDestination() {
20
+ const value = process.env.TEAMS_AUDIT_LOG?.trim();
21
+ if (!value || value === "off")
22
+ return "off";
23
+ if (value === "stderr")
24
+ return "stderr";
25
+ if (value.startsWith("file:"))
26
+ return value;
27
+ return "off";
28
+ }
29
+ /** Emit a structured audit event to the configured destination. */
30
+ function emitAuditEvent(event) {
31
+ const destination = resolveAuditDestination();
32
+ if (destination === "off")
33
+ return;
34
+ try {
35
+ const line = JSON.stringify(event) + "\n";
36
+ if (destination === "stderr") {
37
+ process.stderr.write(line);
38
+ return;
39
+ }
40
+ if (destination.startsWith("file:")) {
41
+ const filePath = destination.slice("file:".length);
42
+ const directory = (0, node_path_1.dirname)(filePath);
43
+ if (!(0, node_fs_1.existsSync)(directory)) {
44
+ (0, node_fs_1.mkdirSync)(directory, { recursive: true });
45
+ }
46
+ (0, node_fs_1.appendFileSync)(filePath, line, "utf-8");
47
+ }
48
+ }
49
+ catch {
50
+ // Audit failures must never surface to the user
51
+ }
52
+ }
53
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAOH,0DAMC;AAGD,wCAuBC;AArCD,qCAAgE;AAChE,yCAAoC;AAGpC,mFAAmF;AACnF,SAAgB,uBAAuB;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACxC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,KAAyB,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mEAAmE;AACnE,SAAgB,cAAc,CAAC,KAAiB;IAC9C,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC;IAC9C,IAAI,WAAW,KAAK,KAAK;QAAE,OAAO;IAElC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAE1C,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,IAAA,oBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,IAAA,mBAAS,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAA,wBAAc,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-login.d.ts","sourceRoot":"","sources":["../../src/auth/auto-login.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAiBhE;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAsJrB"}
1
+ {"version":3,"file":"auto-login.d.ts","sourceRoot":"","sources":["../../src/auth/auto-login.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAiBhE;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAqJrB"}
@@ -34,9 +34,7 @@ async function acquireTokenViaAutoLogin(options) {
34
34
  const chromePath = options.chromePath ?? DEFAULT_SYSTEM_CHROME_PATH;
35
35
  const profileDirectory = options.profileDirectory ?? DEFAULT_PROFILE_DIRECTORY;
36
36
  const headless = options.headless ?? true;
37
- const log = options.verbose
38
- ? console.error.bind(console)
39
- : () => { };
37
+ const log = options.log ?? (options.verbose ? console.error.bind(console) : () => { });
40
38
  // Clean up any previous profile to ensure a fresh session
41
39
  const { rmSync } = await import("node:fs");
42
40
  rmSync(profileDirectory, { recursive: true, force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"auto-login.js","sourceRoot":"","sources":["../../src/auth/auto-login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-login.js","sourceRoot":"","sources":["../../src/auth/auto-login.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/auth/interactive.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAiBvE;;;;;;;;;;GAUG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,UAAU,CAAC,CAoGrB"}
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/auth/interactive.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAiBvE;;;;;;;;;;GAUG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,UAAU,CAAC,CAqGrB"}
@@ -27,18 +27,16 @@ const INTERACTIVE_LOGIN_TIMEOUT = 5 * 60 * 1_000;
27
27
  */
28
28
  async function acquireTokenViaInteractiveLogin(options) {
29
29
  const { chromium } = await import("playwright");
30
- const log = options?.verbose
31
- ? console.error.bind(console)
32
- : () => { };
30
+ const log = options?.log ?? (options?.verbose ? console.error.bind(console) : () => { });
33
31
  log("Launching browser for interactive login...");
34
32
  const profileDir = (0, browser_runtime_js_1.getDefaultBrowserProfileDir)();
35
33
  log(`Using browser profile: ${profileDir}`);
36
34
  const context = await (0, browser_runtime_js_1.launchInteractiveBrowserContext)(chromium, log, profileDir);
37
- // Close leftover tabs from previous sessions, then open a fresh page
38
- for (const stale of context.pages()) {
39
- await stale.close();
35
+ const existingPages = context.pages();
36
+ const page = existingPages[0] ?? (await context.newPage());
37
+ for (const stalePage of existingPages.slice(1)) {
38
+ await stalePage.close();
40
39
  }
41
- const page = await context.newPage();
42
40
  try {
43
41
  log("Navigating to Teams...");
44
42
  await page.goto(TEAMS_URL, {
@@ -80,7 +78,7 @@ async function acquireTokenViaInteractiveLogin(options) {
80
78
  `Current state: ${state.phase} — ${state.detail} (URL: ${state.url})`);
81
79
  }
82
80
  log("Login detected, capturing token...");
83
- const { skypeToken, region, bearerToken, substrateToken, amsToken, sharePointToken, } = await (0, token_capture_js_1.captureTokensFromPage)(page, log, token_capture_js_1.TOKEN_INTERCEPT_TIMEOUT);
81
+ const { skypeToken, region, bearerToken, substrateToken, amsToken, sharePointToken, sharePointHost, } = await (0, token_capture_js_1.captureTokensFromPage)(page, log, token_capture_js_1.TOKEN_INTERCEPT_TIMEOUT);
84
82
  return {
85
83
  skypeToken,
86
84
  region: (0, region_js_1.resolveTeamsRegion)(options?.region, region),
@@ -88,6 +86,7 @@ async function acquireTokenViaInteractiveLogin(options) {
88
86
  substrateToken,
89
87
  amsToken,
90
88
  sharePointToken,
89
+ sharePointHost,
91
90
  };
92
91
  }
93
92
  finally {
@@ -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":"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"}
@@ -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"}