@pan-sec/notebooklm-mcp 2026.2.10 → 2026.3.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 (302) hide show
  1. package/README.md +71 -27
  2. package/SECURITY.md +31 -61
  3. package/dist/auth/auth-manager.d.ts +2 -1
  4. package/dist/auth/auth-manager.d.ts.map +1 -1
  5. package/dist/auth/auth-manager.js +97 -42
  6. package/dist/auth/auth-manager.js.map +1 -1
  7. package/dist/auth/mcp-auth.d.ts +22 -4
  8. package/dist/auth/mcp-auth.d.ts.map +1 -1
  9. package/dist/auth/mcp-auth.js +120 -19
  10. package/dist/auth/mcp-auth.js.map +1 -1
  11. package/dist/compliance/alert-manager.d.ts.map +1 -1
  12. package/dist/compliance/alert-manager.js +7 -4
  13. package/dist/compliance/alert-manager.js.map +1 -1
  14. package/dist/compliance/breach-detection.d.ts.map +1 -1
  15. package/dist/compliance/breach-detection.js +14 -7
  16. package/dist/compliance/breach-detection.js.map +1 -1
  17. package/dist/compliance/change-log.d.ts.map +1 -1
  18. package/dist/compliance/change-log.js +7 -4
  19. package/dist/compliance/change-log.js.map +1 -1
  20. package/dist/compliance/compliance-logger.d.ts.map +1 -1
  21. package/dist/compliance/compliance-logger.js +11 -6
  22. package/dist/compliance/compliance-logger.js.map +1 -1
  23. package/dist/compliance/consent-manager.d.ts.map +1 -1
  24. package/dist/compliance/consent-manager.js +5 -3
  25. package/dist/compliance/consent-manager.js.map +1 -1
  26. package/dist/compliance/data-erasure.d.ts +1 -1
  27. package/dist/compliance/data-erasure.d.ts.map +1 -1
  28. package/dist/compliance/data-erasure.js +142 -83
  29. package/dist/compliance/data-erasure.js.map +1 -1
  30. package/dist/compliance/data-export.d.ts.map +1 -1
  31. package/dist/compliance/data-export.js +23 -12
  32. package/dist/compliance/data-export.js.map +1 -1
  33. package/dist/compliance/data-inventory.d.ts.map +1 -1
  34. package/dist/compliance/data-inventory.js +7 -6
  35. package/dist/compliance/data-inventory.js.map +1 -1
  36. package/dist/compliance/dsar-handler.d.ts +7 -1
  37. package/dist/compliance/dsar-handler.d.ts.map +1 -1
  38. package/dist/compliance/dsar-handler.js +74 -61
  39. package/dist/compliance/dsar-handler.js.map +1 -1
  40. package/dist/compliance/evidence-collector.d.ts.map +1 -1
  41. package/dist/compliance/evidence-collector.js +10 -6
  42. package/dist/compliance/evidence-collector.js.map +1 -1
  43. package/dist/compliance/health-monitor.d.ts.map +1 -1
  44. package/dist/compliance/health-monitor.js +15 -9
  45. package/dist/compliance/health-monitor.js.map +1 -1
  46. package/dist/compliance/incident-manager.d.ts.map +1 -1
  47. package/dist/compliance/incident-manager.js +5 -3
  48. package/dist/compliance/incident-manager.js.map +1 -1
  49. package/dist/compliance/policy-docs.d.ts.map +1 -1
  50. package/dist/compliance/policy-docs.js +14 -11
  51. package/dist/compliance/policy-docs.js.map +1 -1
  52. package/dist/compliance/privacy-notice-text.d.ts.map +1 -1
  53. package/dist/compliance/privacy-notice-text.js +3 -4
  54. package/dist/compliance/privacy-notice-text.js.map +1 -1
  55. package/dist/compliance/privacy-notice.d.ts.map +1 -1
  56. package/dist/compliance/privacy-notice.js +5 -3
  57. package/dist/compliance/privacy-notice.js.map +1 -1
  58. package/dist/compliance/report-generator.d.ts.map +1 -1
  59. package/dist/compliance/report-generator.js +5 -3
  60. package/dist/compliance/report-generator.js.map +1 -1
  61. package/dist/compliance/retention-engine.d.ts.map +1 -1
  62. package/dist/compliance/retention-engine.js +18 -10
  63. package/dist/compliance/retention-engine.js.map +1 -1
  64. package/dist/compliance/siem-exporter.d.ts.map +1 -1
  65. package/dist/compliance/siem-exporter.js +40 -16
  66. package/dist/compliance/siem-exporter.js.map +1 -1
  67. package/dist/config.d.ts +4 -31
  68. package/dist/config.d.ts.map +1 -1
  69. package/dist/config.js +25 -63
  70. package/dist/config.js.map +1 -1
  71. package/dist/errors.d.ts +21 -0
  72. package/dist/errors.d.ts.map +1 -1
  73. package/dist/errors.js +54 -1
  74. package/dist/errors.js.map +1 -1
  75. package/dist/gemini/gemini-client.d.ts +1 -0
  76. package/dist/gemini/gemini-client.d.ts.map +1 -1
  77. package/dist/gemini/gemini-client.js +50 -49
  78. package/dist/gemini/gemini-client.js.map +1 -1
  79. package/dist/gemini/types.d.ts +3 -1
  80. package/dist/gemini/types.d.ts.map +1 -1
  81. package/dist/gemini/types.js.map +1 -1
  82. package/dist/index.d.ts +52 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +399 -85
  85. package/dist/index.js.map +1 -1
  86. package/dist/library/notebook-library.d.ts.map +1 -1
  87. package/dist/library/notebook-library.js +2 -1
  88. package/dist/library/notebook-library.js.map +1 -1
  89. package/dist/logging/query-logger.d.ts +13 -1
  90. package/dist/logging/query-logger.d.ts.map +1 -1
  91. package/dist/logging/query-logger.js +62 -10
  92. package/dist/logging/query-logger.js.map +1 -1
  93. package/dist/notebook-creation/audio-manager.d.ts.map +1 -1
  94. package/dist/notebook-creation/audio-manager.js +19 -24
  95. package/dist/notebook-creation/audio-manager.js.map +1 -1
  96. package/dist/notebook-creation/browser-options.d.ts +28 -0
  97. package/dist/notebook-creation/browser-options.d.ts.map +1 -0
  98. package/dist/notebook-creation/browser-options.js +75 -0
  99. package/dist/notebook-creation/browser-options.js.map +1 -0
  100. package/dist/notebook-creation/data-table-manager.d.ts.map +1 -1
  101. package/dist/notebook-creation/data-table-manager.js +21 -22
  102. package/dist/notebook-creation/data-table-manager.js.map +1 -1
  103. package/dist/notebook-creation/discover-creation-flow.d.ts +0 -6
  104. package/dist/notebook-creation/discover-creation-flow.d.ts.map +1 -1
  105. package/dist/notebook-creation/discover-creation-flow.js +10 -10
  106. package/dist/notebook-creation/discover-creation-flow.js.map +1 -1
  107. package/dist/notebook-creation/discover-quota.d.ts +0 -6
  108. package/dist/notebook-creation/discover-quota.d.ts.map +1 -1
  109. package/dist/notebook-creation/discover-quota.js +12 -13
  110. package/dist/notebook-creation/discover-quota.js.map +1 -1
  111. package/dist/notebook-creation/discover-sources.js +15 -16
  112. package/dist/notebook-creation/discover-sources.js.map +1 -1
  113. package/dist/notebook-creation/dom-scripts.d.ts +10 -0
  114. package/dist/notebook-creation/dom-scripts.d.ts.map +1 -0
  115. package/dist/notebook-creation/dom-scripts.js +58 -0
  116. package/dist/notebook-creation/dom-scripts.js.map +1 -0
  117. package/dist/notebook-creation/errors.d.ts +18 -0
  118. package/dist/notebook-creation/errors.d.ts.map +1 -0
  119. package/dist/notebook-creation/errors.js +20 -0
  120. package/dist/notebook-creation/errors.js.map +1 -0
  121. package/dist/notebook-creation/index.d.ts +2 -0
  122. package/dist/notebook-creation/index.d.ts.map +1 -1
  123. package/dist/notebook-creation/index.js +2 -0
  124. package/dist/notebook-creation/index.js.map +1 -1
  125. package/dist/notebook-creation/notebook-creator.d.ts +6 -82
  126. package/dist/notebook-creation/notebook-creator.d.ts.map +1 -1
  127. package/dist/notebook-creation/notebook-creator.js +49 -835
  128. package/dist/notebook-creation/notebook-creator.js.map +1 -1
  129. package/dist/notebook-creation/notebook-nav.d.ts +19 -0
  130. package/dist/notebook-creation/notebook-nav.d.ts.map +1 -0
  131. package/dist/notebook-creation/notebook-nav.js +239 -0
  132. package/dist/notebook-creation/notebook-nav.js.map +1 -0
  133. package/dist/notebook-creation/notebook-sync.d.ts.map +1 -1
  134. package/dist/notebook-creation/notebook-sync.js +36 -38
  135. package/dist/notebook-creation/notebook-sync.js.map +1 -1
  136. package/dist/notebook-creation/selector-discovery.d.ts.map +1 -1
  137. package/dist/notebook-creation/selector-discovery.js +17 -24
  138. package/dist/notebook-creation/selector-discovery.js.map +1 -1
  139. package/dist/notebook-creation/selectors.d.ts +26 -21
  140. package/dist/notebook-creation/selectors.d.ts.map +1 -1
  141. package/dist/notebook-creation/selectors.js +79 -36
  142. package/dist/notebook-creation/selectors.js.map +1 -1
  143. package/dist/notebook-creation/source-manager.d.ts +22 -0
  144. package/dist/notebook-creation/source-manager.d.ts.map +1 -1
  145. package/dist/notebook-creation/source-manager.js +716 -50
  146. package/dist/notebook-creation/source-manager.js.map +1 -1
  147. package/dist/notebook-creation/types.d.ts +4 -0
  148. package/dist/notebook-creation/types.d.ts.map +1 -1
  149. package/dist/notebook-creation/video-manager.d.ts.map +1 -1
  150. package/dist/notebook-creation/video-manager.js +45 -35
  151. package/dist/notebook-creation/video-manager.js.map +1 -1
  152. package/dist/observability/metrics.d.ts +19 -0
  153. package/dist/observability/metrics.d.ts.map +1 -0
  154. package/dist/observability/metrics.js +35 -0
  155. package/dist/observability/metrics.js.map +1 -0
  156. package/dist/quota/quota-manager.d.ts +11 -3
  157. package/dist/quota/quota-manager.d.ts.map +1 -1
  158. package/dist/quota/quota-manager.js +139 -47
  159. package/dist/quota/quota-manager.js.map +1 -1
  160. package/dist/resources/resource-handlers.d.ts.map +1 -1
  161. package/dist/resources/resource-handlers.js +29 -12
  162. package/dist/resources/resource-handlers.js.map +1 -1
  163. package/dist/session/browser-session.d.ts.map +1 -1
  164. package/dist/session/browser-session.js +22 -22
  165. package/dist/session/browser-session.js.map +1 -1
  166. package/dist/session/session-timeout.d.ts.map +1 -1
  167. package/dist/session/session-timeout.js +4 -2
  168. package/dist/session/session-timeout.js.map +1 -1
  169. package/dist/session/shared-context-manager.d.ts.map +1 -1
  170. package/dist/session/shared-context-manager.js +31 -30
  171. package/dist/session/shared-context-manager.js.map +1 -1
  172. package/dist/tools/annotations.js +9 -9
  173. package/dist/tools/annotations.js.map +1 -1
  174. package/dist/tools/definitions/ask-question.d.ts.map +1 -1
  175. package/dist/tools/definitions/ask-question.js +35 -100
  176. package/dist/tools/definitions/ask-question.js.map +1 -1
  177. package/dist/tools/definitions/chat-history.d.ts +47 -1
  178. package/dist/tools/definitions/chat-history.d.ts.map +1 -1
  179. package/dist/tools/definitions/chat-history.js +10 -1
  180. package/dist/tools/definitions/chat-history.js.map +1 -1
  181. package/dist/tools/definitions/data-tables.d.ts.map +1 -1
  182. package/dist/tools/definitions/data-tables.js +2 -0
  183. package/dist/tools/definitions/data-tables.js.map +1 -1
  184. package/dist/tools/definitions/gemini.d.ts.map +1 -1
  185. package/dist/tools/definitions/gemini.js +40 -10
  186. package/dist/tools/definitions/gemini.js.map +1 -1
  187. package/dist/tools/definitions/notebook-management.d.ts.map +1 -1
  188. package/dist/tools/definitions/notebook-management.js +100 -70
  189. package/dist/tools/definitions/notebook-management.js.map +1 -1
  190. package/dist/tools/definitions/query-history.d.ts +47 -1
  191. package/dist/tools/definitions/query-history.d.ts.map +1 -1
  192. package/dist/tools/definitions/query-history.js +7 -0
  193. package/dist/tools/definitions/query-history.js.map +1 -1
  194. package/dist/tools/definitions/session-management.d.ts.map +1 -1
  195. package/dist/tools/definitions/session-management.js +5 -0
  196. package/dist/tools/definitions/session-management.js.map +1 -1
  197. package/dist/tools/definitions/system.d.ts.map +1 -1
  198. package/dist/tools/definitions/system.js +71 -100
  199. package/dist/tools/definitions/system.js.map +1 -1
  200. package/dist/tools/definitions/video.d.ts.map +1 -1
  201. package/dist/tools/definitions/video.js +3 -0
  202. package/dist/tools/definitions/video.js.map +1 -1
  203. package/dist/tools/definitions.d.ts.map +1 -1
  204. package/dist/tools/definitions.js +4 -0
  205. package/dist/tools/definitions.js.map +1 -1
  206. package/dist/tools/handlers/ask-question.d.ts +1 -1
  207. package/dist/tools/handlers/ask-question.d.ts.map +1 -1
  208. package/dist/tools/handlers/ask-question.js +56 -12
  209. package/dist/tools/handlers/ask-question.js.map +1 -1
  210. package/dist/tools/handlers/audio-video.d.ts.map +1 -1
  211. package/dist/tools/handlers/audio-video.js +15 -7
  212. package/dist/tools/handlers/audio-video.js.map +1 -1
  213. package/dist/tools/handlers/auth.d.ts +14 -19
  214. package/dist/tools/handlers/auth.d.ts.map +1 -1
  215. package/dist/tools/handlers/auth.js +77 -121
  216. package/dist/tools/handlers/auth.js.map +1 -1
  217. package/dist/tools/handlers/error-utils.d.ts +7 -0
  218. package/dist/tools/handlers/error-utils.d.ts.map +1 -0
  219. package/dist/tools/handlers/error-utils.js +17 -0
  220. package/dist/tools/handlers/error-utils.js.map +1 -0
  221. package/dist/tools/handlers/gemini.d.ts +1 -0
  222. package/dist/tools/handlers/gemini.d.ts.map +1 -1
  223. package/dist/tools/handlers/gemini.js +81 -51
  224. package/dist/tools/handlers/gemini.js.map +1 -1
  225. package/dist/tools/handlers/index.d.ts +39 -47
  226. package/dist/tools/handlers/index.d.ts.map +1 -1
  227. package/dist/tools/handlers/index.js +13 -2
  228. package/dist/tools/handlers/index.js.map +1 -1
  229. package/dist/tools/handlers/notebook-creation.d.ts.map +1 -1
  230. package/dist/tools/handlers/notebook-creation.js +99 -20
  231. package/dist/tools/handlers/notebook-creation.js.map +1 -1
  232. package/dist/tools/handlers/notebook-management.d.ts +8 -8
  233. package/dist/tools/handlers/notebook-management.d.ts.map +1 -1
  234. package/dist/tools/handlers/notebook-management.js +34 -80
  235. package/dist/tools/handlers/notebook-management.js.map +1 -1
  236. package/dist/tools/handlers/session-management.d.ts.map +1 -1
  237. package/dist/tools/handlers/session-management.js +12 -5
  238. package/dist/tools/handlers/session-management.js.map +1 -1
  239. package/dist/tools/handlers/system.d.ts.map +1 -1
  240. package/dist/tools/handlers/system.js +45 -10
  241. package/dist/tools/handlers/system.js.map +1 -1
  242. package/dist/tools/handlers/types.d.ts +1 -1
  243. package/dist/tools/handlers/types.d.ts.map +1 -1
  244. package/dist/tools/handlers/webhooks.d.ts.map +1 -1
  245. package/dist/tools/handlers/webhooks.js +15 -13
  246. package/dist/tools/handlers/webhooks.js.map +1 -1
  247. package/dist/types.d.ts +7 -17
  248. package/dist/types.d.ts.map +1 -1
  249. package/dist/utils/audit-logger.d.ts +19 -1
  250. package/dist/utils/audit-logger.d.ts.map +1 -1
  251. package/dist/utils/audit-logger.js +193 -27
  252. package/dist/utils/audit-logger.js.map +1 -1
  253. package/dist/utils/cleanup-manager.d.ts.map +1 -1
  254. package/dist/utils/cleanup-manager.js +6 -3
  255. package/dist/utils/cleanup-manager.js.map +1 -1
  256. package/dist/utils/crypto.d.ts +4 -1
  257. package/dist/utils/crypto.d.ts.map +1 -1
  258. package/dist/utils/crypto.js +32 -21
  259. package/dist/utils/crypto.js.map +1 -1
  260. package/dist/utils/file-lock.d.ts.map +1 -1
  261. package/dist/utils/file-lock.js +80 -16
  262. package/dist/utils/file-lock.js.map +1 -1
  263. package/dist/utils/file-permissions.d.ts +2 -0
  264. package/dist/utils/file-permissions.d.ts.map +1 -1
  265. package/dist/utils/file-permissions.js +2 -1
  266. package/dist/utils/file-permissions.js.map +1 -1
  267. package/dist/utils/logger.d.ts +4 -0
  268. package/dist/utils/logger.d.ts.map +1 -1
  269. package/dist/utils/logger.js +16 -0
  270. package/dist/utils/logger.js.map +1 -1
  271. package/dist/utils/page-utils.d.ts.map +1 -1
  272. package/dist/utils/page-utils.js +22 -39
  273. package/dist/utils/page-utils.js.map +1 -1
  274. package/dist/utils/response-validator.d.ts.map +1 -1
  275. package/dist/utils/response-validator.js +27 -22
  276. package/dist/utils/response-validator.js.map +1 -1
  277. package/dist/utils/secrets-scanner.d.ts +11 -0
  278. package/dist/utils/secrets-scanner.d.ts.map +1 -1
  279. package/dist/utils/secrets-scanner.js +63 -15
  280. package/dist/utils/secrets-scanner.js.map +1 -1
  281. package/dist/utils/secure-memory.d.ts +9 -31
  282. package/dist/utils/secure-memory.d.ts.map +1 -1
  283. package/dist/utils/secure-memory.js +17 -102
  284. package/dist/utils/secure-memory.js.map +1 -1
  285. package/dist/utils/security.d.ts +4 -3
  286. package/dist/utils/security.d.ts.map +1 -1
  287. package/dist/utils/security.js +41 -11
  288. package/dist/utils/security.js.map +1 -1
  289. package/dist/utils/stealth-utils.d.ts.map +1 -1
  290. package/dist/utils/stealth-utils.js +4 -4
  291. package/dist/utils/stealth-utils.js.map +1 -1
  292. package/dist/webhooks/types.d.ts +2 -0
  293. package/dist/webhooks/types.d.ts.map +1 -1
  294. package/dist/webhooks/webhook-dispatcher.d.ts +80 -12
  295. package/dist/webhooks/webhook-dispatcher.d.ts.map +1 -1
  296. package/dist/webhooks/webhook-dispatcher.js +472 -72
  297. package/dist/webhooks/webhook-dispatcher.js.map +1 -1
  298. package/docs/archive/ISSUES-legacy-2026-04-24.md +644 -0
  299. package/docs/dependency-risk.md +25 -0
  300. package/docs/testing-runbook.md +166 -0
  301. package/docs/usage-guide.md +2 -1
  302. package/package.json +33 -16
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  **Zero-hallucination answers • Gemini Deep Research • 17 Security Layers • Enterprise Compliance**
8
8
 
9
9
  [![npm](https://img.shields.io/npm/v/@pan-sec/notebooklm-mcp?color=blue)](https://www.npmjs.com/package/@pan-sec/notebooklm-mcp)
10
- [![CalVer](https://img.shields.io/badge/CalVer-2026.x.x-blue.svg)](https://calver.org/)
10
+ [![CalVer](https://img.shields.io/badge/CalVer-2026.3.0-blue.svg)](https://calver.org/)
11
11
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue.svg)](https://www.typescriptlang.org/)
12
12
  [![MCP](https://img.shields.io/badge/MCP-2026-green.svg)](https://modelcontextprotocol.io/)
13
13
  [![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey.svg)](#cross-platform-support)
@@ -16,8 +16,8 @@
16
16
  [![Gemini](https://img.shields.io/badge/Gemini-Deep%20Research-4285F4.svg)](#-gemini-deep-research-v180)
17
17
  [![Documents](https://img.shields.io/badge/Documents-API%20Upload-34A853.svg)](#-document-api-v190)
18
18
  [![Notebooks](https://img.shields.io/badge/Notebooks-Create%20%26%20Manage-orange.svg)](#programmatic-notebook-creation-v170)
19
- [![Compliance](https://img.shields.io/badge/Compliance-GDPR%20%7C%20SOC2%20%7C%20CSSF-blue.svg)](./docs/COMPLIANCE-SPEC.md)
20
- [![Tests](https://img.shields.io/badge/Tests-168%20Passing-brightgreen.svg)](./tests/)
19
+ [![Compliance](https://img.shields.io/badge/Compliance%20Ready-GDPR%20%7C%20SOC2%20%7C%20CSSF-blue.svg)](./docs/COMPLIANCE-SPEC.md)
20
+ [![Tests](https://img.shields.io/badge/Tests-609%20Passing-brightgreen.svg)](./tests/)
21
21
 
22
22
  [**What's New 2026**](#-whats-new-in-2026) • [**Deep Research**](#-gemini-deep-research) • [**Document API**](#-document-api) • [**Create Notebooks**](#programmatic-notebook-creation) • [**Security**](#security-features) • [**Install**](#installation)
23
23
 
@@ -37,17 +37,19 @@
37
37
  - 🔬 **Gemini 3 + Deep Research** — latest models with thinking control (optional API) **NEW**
38
38
  - 📄 **Document API** — upload & query PDFs without browser (optional API)
39
39
  - 🔐 **17 security layers** — post-quantum encryption, audit logs, secrets scanning
40
- - ✅ **Enterprise compliance** — GDPR, SOC2, CSSF ready
40
+ - ✅ **Compliance-ready architecture** — built to GDPR, SOC2, and CSSF standards (controls implemented; formal certification requires third-party audit)
41
41
  - 💡 **No API key required** — core features work with just browser auth
42
42
 
43
43
  ---
44
44
 
45
45
  ## 🚀 What's New in 2026
46
46
 
47
- **Latest: v2026.2.9** — Auth stability series complete: credentials now survive restarts, cleanups, and headless calls
47
+ **Latest: v2026.3.0** — The Security Audit Release. 334-issue independent audit closed. 609 tests. Full MCP protocol compliance.
48
48
 
49
49
  | Version | Highlights |
50
50
  |---------|------------|
51
+ | **v2026.3.0** | **The Security Audit Release** — Four parallel AI code reviews (security, protocol, architecture, testing) against 334 issues. All highs and mediums resolved. Tests: 139 → 609 across 50 files (4.4×). Full MCP protocol compliance: structuredContent, isError, transport tags. Schema bounds on all 48 tools. Annotation correctness. Webhook SSRF fix. Audit log integrity (hash chain, concurrent write lock, rotation continuity). Per-page mutex. HandlerContext DI. Cert pinning retracted (claims aligned with implementation). |
52
+ | **v2026.2.10** | **The Hardening Release** — 3 new security layers (14→17): secure-by-default auth, exponential backoff lockout, credential isolation. Architecture overhaul: 3,611-line handler split into 9 domain modules, tool registry pattern. Gemini API retry with backoff. Multi-stage Docker build. Token CLI (`token show/rotate`). 168 tests. |
51
53
  | **v2026.2.9** | `performSetup` no longer wipes credentials before Chrome opens — prevents auth destruction on failed launch |
52
54
  | **v2026.2.8** | `cleanup_data` never deletes auth dirs (`browser_state/`, `chrome_profile/`) — auth survives all cleanup paths |
53
55
  | **v2026.2.7** | Block headless `setup_auth` calls; robust `auth-now.mjs` standalone script with Chrome profile lock handling |
@@ -79,13 +81,50 @@ claude mcp add notebooklm -- npx @pan-sec/notebooklm-mcp@latest
79
81
  | Create notebooks programmatically | ❌ | ✅ **UNIQUE** |
80
82
  | Gemini Deep Research | ❌ | ✅ **EXCLUSIVE** |
81
83
  | Document API (no browser) | ❌ | ✅ **EXCLUSIVE** |
82
- | Post-quantum encryption | ❌ | ✅ **Future-proof** |
83
- | Enterprise compliance | ❌ | ✅ **GDPR/SOC2/CSSF** |
84
+ | Post-quantum encryption | ❌ | ✅ **Hybrid PQ at-rest** |
85
+ | Enterprise compliance | ❌ | ✅ **GDPR/SOC2/CSSF-ready** |
84
86
  | Video Overview generation | ❌ | ✅ **NEW** |
85
87
  | Data Table extraction | ❌ | ✅ **NEW** |
86
88
  | Chat history extraction | ❌ | ✅ |
87
89
  | Deep health verification | ❌ | ✅ |
88
90
 
91
+ ---
92
+
93
+ ## 🔬 Security Audit 2026 — What We Found and Fixed
94
+
95
+ In April 2026, we commissioned a parallel deep-audit of v2026.2.11 (`main @ 2973097`) using four specialised AI code reviewers, each focused on a different attack surface: **security vulnerabilities**, **protocol correctness**, **architecture quality**, and **testing gaps and edge cases**. The four reviewers operated independently so their findings wouldn't influence each other. Together they produced a **334-item master issue list** covering protocol correctness, security vulnerabilities, architecture flaws, test gaps, and documentation accuracy. All high and medium issues are now resolved in v2026.3.0.
96
+
97
+ ### Audit by the Numbers
98
+
99
+ | Metric | Before (v2026.2.11) | After (v2026.3.0) |
100
+ |--------|---------------------|--------------------|
101
+ | Tests | 139 | **609 across 50 files** |
102
+ | Test suites | ~6 | **50** |
103
+ | TypeScript errors (`tsc --noEmit`) | 0 | **0 (maintained)** |
104
+ | npm audit vulnerabilities | 0 | **0 (maintained)** |
105
+ | MCP protocol compliance | Partial | **Full** (structuredContent, isError, transport tags) |
106
+ | Audit log integrity | Basic | **Hash-chain verified on read** |
107
+ | Concurrent write safety | ❌ | **✅ Write-locked** |
108
+ | Webhook SSRF | ❌ | **✅ Blocked** |
109
+
110
+ ### What the Four Reviewers Found
111
+
112
+ **Security reviewer:** Identified the `forceAuth` bypass in `validateToken()` allowing unauthenticated access to filesystem tools; webhook SSRF via unvalidated delivery targets; audit log hash chain not verified on read; concurrent audit writes interleaving entries; auth token salt not persisted (tokens invalidated on restart).
113
+
114
+ **Protocol reviewer:** Found 38 tools returning incorrect response shapes (missing `structuredContent`, wrong `isError` semantics, transport tags leaking into content); all 48 tools had incorrect or missing `readOnlyHint`/`idempotentHint`/`destructiveHint` annotations; 9 tool schemas lacked numeric bounds, enabling out-of-range inputs.
115
+
116
+ **Architecture reviewer:** Flagged the 3,611-line `handlers.ts` as a maintenance liability; singleton imports throughout domain functions preventing unit testing; the 500-line `switch/case` dispatch adding O(n) overhead and making tool registration error-prone.
117
+
118
+ **Testing & edge-case reviewer:** Found test suite at 139 tests with minimal coverage of security-critical modules; `mcp-auth.ts` at near-zero coverage; no tests for prompt injection patterns, audit log tampering, or concurrent browser session state; the DSAR handler had an undetected race condition.
119
+
120
+ ### Key Fixes
121
+
122
+ - **17 security vulnerabilities** addressed (auth bypass, SSRF, audit integrity, race conditions, selector injection vectors)
123
+ - **MCP protocol fully compliant** — all 48 tools return correct `structuredContent`/`isError` shapes; annotations accurate; schema bounds enforced
124
+ - **Architecture decomposed** — `handlers.ts` split into 9 domain modules with HandlerContext dependency injection; 100% unit-testable without process mocks
125
+ - **Test coverage** — 15 new security-critical test suites including browser session, auth, prompt injection, audit log, webhook, DSAR, and compliance
126
+ - **Claims aligned** — certificate pinning removed (implementation was retracted in Day 1 of the audit); PQ encryption scope documented accurately; compliance language uses "controls implemented" not "certified"
127
+
89
128
  <details>
90
129
  <summary><b>📋 Full Feature List (48 Tools)</b></summary>
91
130
 
@@ -207,7 +246,7 @@ Run deep research in the background and check progress:
207
246
 
208
247
  ```
209
248
  ┌──────────────────────────────────────────────────────────────────────────────┐
210
- │ NotebookLM MCP Server v2026.2.x │
249
+ │ NotebookLM MCP Server v2026.3.x │
211
250
  ├──────────────────────────────────────────────────────────────────────────────┤
212
251
  │ │
213
252
  │ ┌────────────────────────────────┐ ┌──────────────────────────────────┐ │
@@ -236,8 +275,8 @@ Run deep research in the background and check progress:
236
275
  │ ┌─────────────────────────────────┐ │
237
276
  │ │ 17 SECURITY LAYERS │ │
238
277
  │ │ Post-Quantum • Audit Logs │ │
239
- │ │ Cert Pinning • Memory Wipe │ │
240
- │ │ GDPR • SOC2 • CSSF Ready │ │
278
+ │ │ Secrets Scan • Memory Wipe │ │
279
+ │ │ GDPR • SOC2 • CSSF Ready* │ │
241
280
  │ └─────────────────────────────────┘ │
242
281
  └──────────────────────────────────────────────────────────────────────────────┘
243
282
  ```
@@ -643,9 +682,8 @@ This fork adds **17 security hardening layers** to protect that data.
643
682
 
644
683
  | Layer | Feature | Protection |
645
684
  |-------|---------|------------|
646
- | 🔐 | **Post-Quantum Encryption** | ML-KEM-768 + ChaCha20-Poly1305 hybrid |
685
+ | 🔐 | **Post-Quantum Encryption** | ML-KEM-768 + ChaCha20-Poly1305 hybrid (local at-rest) |
647
686
  | 🔍 | **Secrets Scanning** | Detects 30+ credential patterns (AWS, GitHub, Slack...) |
648
- | 📌 | **Certificate Pinning** | Blocks MITM attacks on Google connections |
649
687
  | 🧹 | **Memory Scrubbing** | Zeros sensitive data after use |
650
688
  | 📝 | **Audit Logging** | Tamper-evident logs with hash chains |
651
689
  | ⏱️ | **Session Timeout** | 8h hard limit + 30m inactivity auto-logout |
@@ -660,9 +698,9 @@ This fork adds **17 security hardening layers** to protect that data.
660
698
  | 📈 | **Exponential Backoff** | Lockout escalation: 5min → 15min → 45min → 4hr cap |
661
699
  | 🗝️ | **Credential Isolation** | SecureCredential TTL + env var scrubbing from process.env |
662
700
 
663
- ### Post-Quantum Ready
701
+ ### Post-Quantum Primitives (Local At-Rest)
664
702
 
665
- Traditional encryption (RSA, ECDH) will be broken by quantum computers. This fork uses **hybrid encryption**:
703
+ Encryption of secrets on disk uses hybrid post-quantum primitives:
666
704
 
667
705
  ```
668
706
  ML-KEM-768 (Kyber) + ChaCha20-Poly1305
@@ -671,7 +709,12 @@ ML-KEM-768 (Kyber) + ChaCha20-Poly1305
671
709
  - **ML-KEM-768**: NIST-standardized post-quantum key encapsulation
672
710
  - **ChaCha20-Poly1305**: Modern stream cipher (immune to timing attacks)
673
711
 
674
- Even if one algorithm is broken, the other remains secure.
712
+ **Scope, honestly:** this is **local at-rest** encryption. Both keys live
713
+ on the same machine — the PQ secret key is wrapped with a classical key
714
+ derived from a machine-bound secret, not held by a remote recipient.
715
+ This protects against offline theft of individual encrypted files, not
716
+ against Harvest-Now-Decrypt-Later attacks (those require a remote PQ
717
+ recipient holding the unwrap key).
675
718
 
676
719
  ### Cross-Platform Support
677
720
 
@@ -685,11 +728,11 @@ Full native support for all major operating systems:
685
728
 
686
729
  All sensitive files (encryption keys, auth tokens, audit logs) are automatically protected with owner-only permissions on every platform.
687
730
 
688
- ### Enterprise Compliance (v1.6.0+)
731
+ ### Enterprise Compliance-Ready Architecture (v1.6.0+)
689
732
 
690
- Full compliance support for regulated industries:
733
+ Built to the standards required for regulated industries. All controls are implemented — formal certification (SOC2 Type II report, GDPR registration, CSSF submission) requires a third-party audit engagement.
691
734
 
692
- | Regulation | Features |
735
+ | Regulation | Controls Implemented |
693
736
  |------------|----------|
694
737
  | **GDPR** | Consent management, DSAR handling, right to erasure, data portability |
695
738
  | **SOC2 Type II** | Hash-chained audit logs, incident response, availability monitoring |
@@ -732,6 +775,8 @@ All core NotebookLM features work immediately with just browser authentication:
732
775
 
733
776
  **Optional:** Add `GEMINI_API_KEY` for bonus features like `deep_research`, `gemini_query`, and `upload_document`.
734
777
 
778
+ For repeatable authenticated validation, see the [Authenticated Testing Runbook](./docs/testing-runbook.md).
779
+
735
780
  ---
736
781
 
737
782
  ### Claude Code
@@ -988,7 +1033,7 @@ Go to [notebooklm.google.com](https://notebooklm.google.com) → Create notebook
988
1033
  | Browser cookies | Post-quantum encrypted at rest |
989
1034
  | Session tokens | Auto-expire + memory scrubbing |
990
1035
  | Query history | Audit logged with tamper detection |
991
- | Google connection | Certificate pinned (MITM blocked) |
1036
+ | Google connection | TLS with response validation |
992
1037
  | Log output | Credentials auto-redacted |
993
1038
  | API responses | Scanned for leaked secrets |
994
1039
  | Gemini API key | Secure memory handling |
@@ -1028,9 +1073,6 @@ NLMCP_SECRETS_SCANNING=true
1028
1073
  NLMCP_SECRETS_BLOCK=false # Block on detection
1029
1074
  NLMCP_SECRETS_REDACT=true # Auto-redact
1030
1075
 
1031
- # Certificate Pinning
1032
- NLMCP_CERT_PINNING=true
1033
-
1034
1076
  # Audit Logging
1035
1077
  NLMCP_AUDIT_ENABLED=true
1036
1078
 
@@ -1110,16 +1152,17 @@ Or integrate in CI/CD:
1110
1152
  | Feature | Others | @pan-sec/notebooklm-mcp |
1111
1153
  |---------|--------|-------------------------|
1112
1154
  | Cross-platform (Linux/macOS/Windows) | ⚠️ Partial | ✅ Full |
1113
- | **Post-quantum encryption** | ❌ | ✅ ML-KEM-768 + ChaCha20 |
1155
+ | **Post-quantum encryption** | ❌ | ✅ ML-KEM-768 + ChaCha20 (local at-rest) |
1114
1156
  | **Secrets scanning** | ❌ | ✅ 30+ patterns |
1115
- | **Certificate pinning** | ❌ | ✅ Google MITM protection |
1116
1157
  | **Memory scrubbing** | ❌ | ✅ Zero-on-free |
1117
1158
  | **Audit logging** | ❌ | ✅ Hash-chained |
1118
1159
  | **MCP authentication** | ❌ | ✅ Token + lockout |
1119
1160
  | **Prompt injection detection** | ❌ | ✅ Response validation |
1120
- | **GDPR Compliance** | ❌ | ✅ Full |
1121
- | **SOC2 Type II** | ❌ | ✅ Full |
1122
- | **CSSF (Luxembourg)** | ❌ | ✅ Full |
1161
+ | **GDPR Compliance** | ❌ | ✅ Controls implemented* |
1162
+ | **SOC2 Type II** | ❌ | ✅ Controls implemented* |
1163
+ | **CSSF (Luxembourg)** | ❌ | ✅ Controls implemented* |
1164
+
1165
+ > \* Compliance-ready: all required controls are implemented. Formal certification (SOC2 Type II report, GDPR registration, CSSF submission) requires a third-party audit engagement.
1123
1166
 
1124
1167
  > **Bottom line**: If you need more than basic queries, or care about security, there's only one choice.
1125
1168
 
@@ -1129,6 +1172,7 @@ Or integrate in CI/CD:
1129
1172
 
1130
1173
  | Version | Highlights |
1131
1174
  |---------|------------|
1175
+ | **v2026.3.0** | 🔬 **Security Audit Release** — 334-issue independent audit. Tests 139→609 (50 files). Full MCP protocol compliance. Webhook SSRF fix. Audit log hash-chain verified on read. Per-page mutex. HandlerContext DI. Cert pinning retracted. |
1132
1176
  | **v2026.2.9** | 🔐 `performSetup` no longer destroys credentials before Chrome opens — last root cause of auth loop fixed |
1133
1177
  | **v2026.2.8** | 🛡️ `cleanup_data` excludes `browser_state/` and `chrome_profile/` from all deletion paths — auth survives cleanup |
1134
1178
  | **v2026.2.7** | 🚫 Block headless `setup_auth`; `auth-now.mjs` standalone script handles Chrome profile locks and silent save failures |
package/SECURITY.md CHANGED
@@ -2,27 +2,33 @@
2
2
 
3
3
  This is a security-hardened fork of [PleasePrompto/notebooklm-mcp](https://github.com/PleasePrompto/notebooklm-mcp), maintained by [Pantheon Security](https://pantheonsecurity.io).
4
4
 
5
- **Version**: 1.5.1
6
- **Security Features**: 14 hardening layers
5
+ **Version**: 2026.3.0
6
+ **Security Features**: 17 hardening layers
7
7
  **Platforms**: Linux, macOS, Windows
8
8
 
9
+ > **v2026.3.0 — Security Audit Release.** In April 2026 we ran a parallel deep-audit of this codebase using four specialised AI code reviewers, each independently focused on a different attack surface. They produced a 334-item master issue list. Every high and medium issue is resolved in this release. See [CHANGELOG.md](./CHANGELOG.md#20263.0---2026-04-25) for the full list.
10
+
9
11
  ## Security Features Overview
10
12
 
11
13
  | Feature | Status | Description |
12
14
  |---------|--------|-------------|
13
- | Input Validation | ✅ | URL whitelisting, sanitization |
15
+ | Input Validation | ✅ | URL whitelisting, Zod schemas, injection prevention |
14
16
  | Rate Limiting | ✅ | Per-session request throttling |
15
- | Log Sanitization | ✅ | Credential masking |
16
- | Audit Logging | ✅ | Tamper-evident event logging |
17
+ | Log Sanitization | ✅ | Credential masking, PII redaction |
18
+ | Audit Logging | ✅ | Hash-chained tamper-evident logs, verified on read |
17
19
  | Session Timeout | ✅ | Hard lifetime + inactivity limits |
18
- | MCP Authentication | ✅ | Token-based auth with lockout |
19
- | Response Validation | ✅ | Prompt injection detection |
20
- | **Post-Quantum Encryption** | ✅ | ML-KEM-768 + ChaCha20-Poly1305 |
21
- | **Secrets Scanning** | ✅ | Detect API keys, tokens, passwords |
22
- | **Certificate Pinning** | ✅ | Google TLS MITM protection |
23
- | **Memory Scrubbing** | ✅ | Zero sensitive data after use |
24
- | **MEDUSA Integration** | ✅ | Automated security scanning |
20
+ | MCP Authentication | ✅ | Token-based auth with persistent salt + lockout |
21
+ | Response Validation | ✅ | Prompt injection detection, suspicious URL blocking |
22
+ | **Post-Quantum Encryption** | ✅ | ML-KEM-768 + ChaCha20-Poly1305 (local at-rest) |
23
+ | **Secrets Scanning** | ✅ | Detect 30+ credential patterns (AWS, GitHub, Slack…) |
24
+ | **Memory Scrubbing** | ✅ | Zero sensitive data after use, FinalizationRegistry cleanup |
25
+ | **MEDUSA Integration** | ✅ | Automated security scanning in CI |
25
26
  | **Cross-Platform Permissions** | ✅ | Secure file permissions on all OSes |
27
+ | **Secure-by-Default Auth** | ✅ | Auth enabled without configuration; explicit opt-out via `NLMCP_AUTH_DISABLED=true` |
28
+ | **Exponential Backoff Lockout** | ✅ | Failed auth lockouts escalate 5min → 15min → 45min → 4hr; `lockoutCount` persists |
29
+ | **Credential Isolation** | ✅ | `LOGIN_PASSWORD` and `GEMINI_API_KEY` wrapped in `SecureCredential` with 30-min TTL; env vars scrubbed from `process.env` |
30
+ | **Webhook SSRF Protection** | ✅ | Delivery targets validated against SSRF blocklist; HMAC signing on all deliveries |
31
+ | **Per-Page Mutex** | ✅ | Browser page operations serialised per-page to prevent race conditions |
26
32
 
27
33
  ---
28
34
 
@@ -58,16 +64,23 @@ All sensitive files are automatically protected with owner-only permissions:
58
64
 
59
65
  ---
60
66
 
61
- ## Post-Quantum Encryption
62
-
63
- ### Why Post-Quantum?
67
+ ## Post-Quantum Encryption (Local At-Rest)
64
68
 
65
- Recent events (including alleged quantum computer attacks on major infrastructure) highlight the urgency of preparing for "Q-Day" - when quantum computers can break classical encryption.
69
+ ### Scope
66
70
 
67
- This MCP uses **hybrid post-quantum encryption** that combines:
71
+ Secrets written to disk (cookies, session state, auth tokens, PQ key pair) are encrypted with hybrid post-quantum primitives:
68
72
  - **ML-KEM-768 (Kyber)** - NIST-standardized post-quantum key encapsulation
69
73
  - **ChaCha20-Poly1305** - Modern stream cipher (NOT AES-GCM)
70
74
 
75
+ ### What this does and does not protect against
76
+
77
+ This is **local at-rest** encryption. Both keys live on the same machine: the PQ secret key is wrapped with a classical key derived from a machine-bound secret, not held by a remote recipient.
78
+
79
+ - ✅ Protects against **offline theft** of individual encrypted files (backup leak, misplaced disk)
80
+ - ✅ Defence-in-depth on top of the underlying filesystem permissions
81
+ - ❌ Does **NOT** protect against Harvest-Now-Decrypt-Later attacks — that threat model requires a remote PQ recipient holding the unwrap key, which this implementation does not have
82
+ - ❌ Does **NOT** protect against an attacker who compromises the host — they can read the machine-derived key and unwrap the PQ secret key in the same step
83
+
71
84
  ### Why ChaCha20-Poly1305 over AES-GCM?
72
85
 
73
86
  | Property | ChaCha20-Poly1305 | AES-GCM |
@@ -158,41 +171,6 @@ NLMCP_SECRETS_IGNORE=pattern1,pattern2 # Ignore specific patterns
158
171
 
159
172
  ---
160
173
 
161
- ## Certificate Pinning
162
-
163
- Protects HTTPS connections to Google by validating server certificate chains against known-good SPKI hashes.
164
-
165
- ### Why Certificate Pinning?
166
-
167
- Prevents man-in-the-middle attacks even if:
168
- - A rogue CA certificate is installed on the system
169
- - Corporate proxies attempt SSL inspection
170
- - DNS is compromised
171
-
172
- ### Pinned Certificates
173
-
174
- - **GTS Root R1-R4** - Google Trust Services roots
175
- - **GlobalSign Root CA R2** - Backup root
176
- - **DigiCert Global Root G2** - Backup root
177
-
178
- ### Configuration
179
-
180
- ```bash
181
- NLMCP_CERT_PINNING=true # Enable pinning (default: true)
182
- NLMCP_CERT_FAIL_OPEN=false # Allow on failure (default: false)
183
- NLMCP_CERT_REPORT_ONLY=false # Log but don't block (default: false)
184
- ```
185
-
186
- ### Violation Response
187
-
188
- ```
189
- 🔒 Certificate pinning violation for notebooklm.google.com
190
- Chain hashes: abc123...
191
- Expected one of: hxqRlP..., Vfd95B...
192
- ```
193
-
194
- ---
195
-
196
174
  ## Memory Scrubbing
197
175
 
198
176
  Sensitive data is securely wiped from memory after use to prevent:
@@ -431,7 +409,7 @@ This MCP uses browser automation (Patchright) which:
431
409
  The Chrome profile directory itself is not fully encrypted:
432
410
  - `~/.local/share/notebooklm-mcp/chrome_profile/`
433
411
 
434
- The sensitive state files (cookies, session) ARE encrypted with post-quantum cryptography.
412
+ The sensitive state files (cookies, session) ARE encrypted with hybrid post-quantum primitives for at-rest protection. See [Post-Quantum Encryption (Local At-Rest)](#post-quantum-encryption-local-at-rest) above for the exact threat model this covers.
435
413
 
436
414
  ---
437
415
 
@@ -493,18 +471,10 @@ import {
493
471
  scanAndRedactSecrets,
494
472
  } from './utils/secrets-scanner.js';
495
473
 
496
- // Certificate pinning
497
- import {
498
- CertificatePinningManager,
499
- getCertificatePinningManager,
500
- validateCertificatePin,
501
- } from './utils/cert-pinning.js';
502
-
503
474
  // Memory security
504
475
  import {
505
476
  SecureString,
506
477
  SecureCredential,
507
- SecureObject,
508
478
  zeroBuffer,
509
479
  withSecureCredential,
510
480
  secureCompare,
@@ -11,6 +11,7 @@
11
11
  *
12
12
  * Based on the Python implementation from auth.py
13
13
  */
14
+ /// <reference types="node" resolution-mode="require"/>
14
15
  import type { BrowserContext, Page } from "patchright";
15
16
  import type { ProgressCallback } from "../types.js";
16
17
  export declare class AuthManager {
@@ -94,7 +95,7 @@ export declare class AuthManager {
94
95
  *
95
96
  * SIMPLE & RELIABLE: Just wait for URL to change to notebooklm.google.com
96
97
  */
97
- performLogin(page: Page, sendProgress?: ProgressCallback): Promise<boolean>;
98
+ performLogin(page: Page, sendProgress?: ProgressCallback, signal?: AbortSignal): Promise<boolean>;
98
99
  /**
99
100
  * Attempt to authenticate using configured credentials
100
101
  */
@@ -1 +1 @@
1
- {"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../src/auth/auth-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAYvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoBpD,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;;IAa7B;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAsD9E;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAKvC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAQ7B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAejD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAuBlE;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAoC9D;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDtE;;;;;;;;;;;;;;;;OAgBG;IACG,iBAAiB,CACrB,OAAO,EAAE,cAAc,EACvB,UAAU,SAAI,GACb,OAAO,CAAC,OAAO,CAAC;IAmDnB;;;OAGG;YACW,mBAAmB;IAYjC;;;;OAIG;YACW,cAAc;IAa5B;;;;OAIG;YACW,sBAAsB;IAoBpC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IA+BxC;;;;;OAKG;IACG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmFjF;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IA2InB;;;;;OAKG;YACW,yBAAyB;IA4BvC;;;;;OAKG;YACW,eAAe;IAsB7B;;OAEG;YACW,oBAAoB;IA+BlC;;OAEG;YACW,cAAc;IA2H5B;;OAEG;YACW,YAAY;IA+F1B;;OAEG;YACW,SAAS;IAuBvB;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiCjF;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAmFjG;;;;;;;;;;OAUG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmDvC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAkBpC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAgDzC"}
1
+ {"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../src/auth/auth-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAYvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA6BpD,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;;IAa7B;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAoD9E;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAKvC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAQ7B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAejD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAyBlE;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAoC9D;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDtE;;;;;;;;;;;;;;;;OAgBG;IACG,iBAAiB,CACrB,OAAO,EAAE,cAAc,EACvB,UAAU,SAAI,GACb,OAAO,CAAC,OAAO,CAAC;IAmDnB;;;OAGG;YACW,mBAAmB;IAajC;;;;OAIG;YACW,cAAc;IAc5B;;;;OAIG;YACW,sBAAsB;IAmBpC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAgCxC;;;;;OAKG;IACG,YAAY,CAChB,IAAI,EAAE,IAAI,EACV,YAAY,CAAC,EAAE,gBAAgB,EAC/B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;IAmGnB;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IAqJnB;;;;;OAKG;YACW,yBAAyB;IA6BvC;;;;;OAKG;YACW,eAAe;IAuB7B;;OAEG;YACW,oBAAoB;IAgClC;;OAEG;YACW,cAAc;IAiI5B;;OAEG;YACW,YAAY;IAkG1B;;OAEG;YACW,SAAS;IAwBvB;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiCjF;;;;;;;;;;;;;;;;OAgBG;IACG,YAAY,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA6FjG;;;;;;;;;;OAUG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoDvC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAkBpC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAmDzC"}