@pan-sec/notebooklm-mcp 2026.2.11 → 2026.3.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 (305) hide show
  1. package/README.md +62 -19
  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 +117 -44
  6. package/dist/auth/auth-manager.js.map +1 -1
  7. package/dist/auth/mcp-auth.d.ts +24 -4
  8. package/dist/auth/mcp-auth.d.ts.map +1 -1
  9. package/dist/auth/mcp-auth.js +149 -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 +24 -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 +8 -31
  68. package/dist/config.d.ts.map +1 -1
  69. package/dist/config.js +26 -64
  70. package/dist/config.js.map +1 -1
  71. package/dist/errors.d.ts +22 -2
  72. package/dist/errors.d.ts.map +1 -1
  73. package/dist/errors.js +55 -4
  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 +412 -89
  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 +20 -21
  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 -1
  122. package/dist/notebook-creation/index.d.ts.map +1 -1
  123. package/dist/notebook-creation/index.js +2 -1
  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 +240 -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 +23 -37
  140. package/dist/notebook-creation/selectors.d.ts.map +1 -1
  141. package/dist/notebook-creation/selectors.js +56 -60
  142. package/dist/notebook-creation/selectors.js.map +1 -1
  143. package/dist/notebook-creation/source-manager.d.ts +25 -0
  144. package/dist/notebook-creation/source-manager.d.ts.map +1 -1
  145. package/dist/notebook-creation/source-manager.js +689 -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 +33 -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 +39 -17
  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.d.ts.map +1 -1
  173. package/dist/tools/annotations.js +9 -56
  174. package/dist/tools/annotations.js.map +1 -1
  175. package/dist/tools/definitions/ask-question.d.ts.map +1 -1
  176. package/dist/tools/definitions/ask-question.js +35 -100
  177. package/dist/tools/definitions/ask-question.js.map +1 -1
  178. package/dist/tools/definitions/chat-history.d.ts +47 -1
  179. package/dist/tools/definitions/chat-history.d.ts.map +1 -1
  180. package/dist/tools/definitions/chat-history.js +10 -1
  181. package/dist/tools/definitions/chat-history.js.map +1 -1
  182. package/dist/tools/definitions/data-tables.d.ts.map +1 -1
  183. package/dist/tools/definitions/data-tables.js +2 -0
  184. package/dist/tools/definitions/data-tables.js.map +1 -1
  185. package/dist/tools/definitions/gemini.d.ts.map +1 -1
  186. package/dist/tools/definitions/gemini.js +54 -11
  187. package/dist/tools/definitions/gemini.js.map +1 -1
  188. package/dist/tools/definitions/notebook-management.d.ts.map +1 -1
  189. package/dist/tools/definitions/notebook-management.js +100 -70
  190. package/dist/tools/definitions/notebook-management.js.map +1 -1
  191. package/dist/tools/definitions/query-history.d.ts +47 -1
  192. package/dist/tools/definitions/query-history.d.ts.map +1 -1
  193. package/dist/tools/definitions/query-history.js +7 -0
  194. package/dist/tools/definitions/query-history.js.map +1 -1
  195. package/dist/tools/definitions/session-management.d.ts.map +1 -1
  196. package/dist/tools/definitions/session-management.js +5 -0
  197. package/dist/tools/definitions/session-management.js.map +1 -1
  198. package/dist/tools/definitions/system.d.ts.map +1 -1
  199. package/dist/tools/definitions/system.js +71 -100
  200. package/dist/tools/definitions/system.js.map +1 -1
  201. package/dist/tools/definitions/video.d.ts.map +1 -1
  202. package/dist/tools/definitions/video.js +4 -1
  203. package/dist/tools/definitions/video.js.map +1 -1
  204. package/dist/tools/definitions.d.ts.map +1 -1
  205. package/dist/tools/definitions.js +4 -0
  206. package/dist/tools/definitions.js.map +1 -1
  207. package/dist/tools/handlers/ask-question.d.ts +1 -1
  208. package/dist/tools/handlers/ask-question.d.ts.map +1 -1
  209. package/dist/tools/handlers/ask-question.js +57 -13
  210. package/dist/tools/handlers/ask-question.js.map +1 -1
  211. package/dist/tools/handlers/audio-video.d.ts.map +1 -1
  212. package/dist/tools/handlers/audio-video.js +22 -161
  213. package/dist/tools/handlers/audio-video.js.map +1 -1
  214. package/dist/tools/handlers/auth.d.ts +14 -19
  215. package/dist/tools/handlers/auth.d.ts.map +1 -1
  216. package/dist/tools/handlers/auth.js +77 -121
  217. package/dist/tools/handlers/auth.js.map +1 -1
  218. package/dist/tools/handlers/error-utils.d.ts +16 -0
  219. package/dist/tools/handlers/error-utils.d.ts.map +1 -0
  220. package/dist/tools/handlers/error-utils.js +39 -0
  221. package/dist/tools/handlers/error-utils.js.map +1 -0
  222. package/dist/tools/handlers/gemini.d.ts +2 -0
  223. package/dist/tools/handlers/gemini.d.ts.map +1 -1
  224. package/dist/tools/handlers/gemini.js +88 -51
  225. package/dist/tools/handlers/gemini.js.map +1 -1
  226. package/dist/tools/handlers/index.d.ts +39 -47
  227. package/dist/tools/handlers/index.d.ts.map +1 -1
  228. package/dist/tools/handlers/index.js +15 -4
  229. package/dist/tools/handlers/index.js.map +1 -1
  230. package/dist/tools/handlers/notebook-creation.d.ts.map +1 -1
  231. package/dist/tools/handlers/notebook-creation.js +102 -86
  232. package/dist/tools/handlers/notebook-creation.js.map +1 -1
  233. package/dist/tools/handlers/notebook-management.d.ts +8 -8
  234. package/dist/tools/handlers/notebook-management.d.ts.map +1 -1
  235. package/dist/tools/handlers/notebook-management.js +34 -80
  236. package/dist/tools/handlers/notebook-management.js.map +1 -1
  237. package/dist/tools/handlers/session-management.d.ts +8 -10
  238. package/dist/tools/handlers/session-management.d.ts.map +1 -1
  239. package/dist/tools/handlers/session-management.js +34 -63
  240. package/dist/tools/handlers/session-management.js.map +1 -1
  241. package/dist/tools/handlers/system.d.ts.map +1 -1
  242. package/dist/tools/handlers/system.js +45 -10
  243. package/dist/tools/handlers/system.js.map +1 -1
  244. package/dist/tools/handlers/types.d.ts +1 -1
  245. package/dist/tools/handlers/types.d.ts.map +1 -1
  246. package/dist/tools/handlers/webhooks.d.ts.map +1 -1
  247. package/dist/tools/handlers/webhooks.js +15 -13
  248. package/dist/tools/handlers/webhooks.js.map +1 -1
  249. package/dist/types.d.ts +7 -17
  250. package/dist/types.d.ts.map +1 -1
  251. package/dist/utils/audit-logger.d.ts +19 -1
  252. package/dist/utils/audit-logger.d.ts.map +1 -1
  253. package/dist/utils/audit-logger.js +198 -30
  254. package/dist/utils/audit-logger.js.map +1 -1
  255. package/dist/utils/cleanup-manager.d.ts.map +1 -1
  256. package/dist/utils/cleanup-manager.js +6 -3
  257. package/dist/utils/cleanup-manager.js.map +1 -1
  258. package/dist/utils/crypto.d.ts +4 -1
  259. package/dist/utils/crypto.d.ts.map +1 -1
  260. package/dist/utils/crypto.js +32 -21
  261. package/dist/utils/crypto.js.map +1 -1
  262. package/dist/utils/file-lock.d.ts.map +1 -1
  263. package/dist/utils/file-lock.js +87 -16
  264. package/dist/utils/file-lock.js.map +1 -1
  265. package/dist/utils/file-permissions.d.ts +2 -0
  266. package/dist/utils/file-permissions.d.ts.map +1 -1
  267. package/dist/utils/file-permissions.js +2 -1
  268. package/dist/utils/file-permissions.js.map +1 -1
  269. package/dist/utils/logger.d.ts +4 -0
  270. package/dist/utils/logger.d.ts.map +1 -1
  271. package/dist/utils/logger.js +16 -0
  272. package/dist/utils/logger.js.map +1 -1
  273. package/dist/utils/page-utils.d.ts +13 -0
  274. package/dist/utils/page-utils.d.ts.map +1 -1
  275. package/dist/utils/page-utils.js +61 -39
  276. package/dist/utils/page-utils.js.map +1 -1
  277. package/dist/utils/response-validator.d.ts.map +1 -1
  278. package/dist/utils/response-validator.js +27 -22
  279. package/dist/utils/response-validator.js.map +1 -1
  280. package/dist/utils/secrets-scanner.d.ts +11 -0
  281. package/dist/utils/secrets-scanner.d.ts.map +1 -1
  282. package/dist/utils/secrets-scanner.js +65 -17
  283. package/dist/utils/secrets-scanner.js.map +1 -1
  284. package/dist/utils/secure-memory.d.ts +9 -31
  285. package/dist/utils/secure-memory.d.ts.map +1 -1
  286. package/dist/utils/secure-memory.js +17 -102
  287. package/dist/utils/secure-memory.js.map +1 -1
  288. package/dist/utils/security.d.ts +4 -3
  289. package/dist/utils/security.d.ts.map +1 -1
  290. package/dist/utils/security.js +43 -13
  291. package/dist/utils/security.js.map +1 -1
  292. package/dist/utils/stealth-utils.d.ts.map +1 -1
  293. package/dist/utils/stealth-utils.js +4 -4
  294. package/dist/utils/stealth-utils.js.map +1 -1
  295. package/dist/webhooks/types.d.ts +4 -0
  296. package/dist/webhooks/types.d.ts.map +1 -1
  297. package/dist/webhooks/webhook-dispatcher.d.ts +80 -12
  298. package/dist/webhooks/webhook-dispatcher.d.ts.map +1 -1
  299. package/dist/webhooks/webhook-dispatcher.js +497 -74
  300. package/dist/webhooks/webhook-dispatcher.js.map +1 -1
  301. package/docs/archive/ISSUES-legacy-2026-04-24.md +644 -0
  302. package/docs/dependency-risk.md +25 -0
  303. package/docs/testing-runbook.md +166 -0
  304. package/docs/usage-guide.md +2 -1
  305. package/package.json +34 -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.1-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)
@@ -17,7 +17,7 @@
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
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-168%20Passing-brightgreen.svg)](./tests/)
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
 
@@ -44,10 +44,12 @@
44
44
 
45
45
  ## 🚀 What's New in 2026
46
46
 
47
- **Latest: v2026.2.10** — 17 security layers, handler architecture overhaul, secure-by-default auth
47
+ **Latest: v2026.3.1** — All 334 audit issues resolved. 631 tests. Full MCP protocol compliance.
48
48
 
49
49
  | Version | Highlights |
50
50
  |---------|------------|
51
+ | **v2026.3.1** | **Security Audit Complete** — All 334 issues from the independent audit resolved. Tests: 609 → 631. Code quality: URL resolution deduplicated, handler extraction, non-null assertions eliminated. Test gaps closed: `validateNotebookId`, error body shape, `delete_document` confirm guard, sanitized throws, log rotation, rate-limiter memory bound, range clamping. |
52
+ | **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). |
51
53
  | **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. |
52
54
  | **v2026.2.9** | `performSetup` no longer wipes credentials before Chrome opens — prevents auth destruction on failed launch |
53
55
  | **v2026.2.8** | `cleanup_data` never deletes auth dirs (`browser_state/`, `chrome_profile/`) — auth survives all cleanup paths |
@@ -80,13 +82,50 @@ claude mcp add notebooklm -- npx @pan-sec/notebooklm-mcp@latest
80
82
  | Create notebooks programmatically | ❌ | ✅ **UNIQUE** |
81
83
  | Gemini Deep Research | ❌ | ✅ **EXCLUSIVE** |
82
84
  | Document API (no browser) | ❌ | ✅ **EXCLUSIVE** |
83
- | Post-quantum encryption | ❌ | ✅ **Future-proof** |
85
+ | Post-quantum encryption | ❌ | ✅ **Hybrid PQ at-rest** |
84
86
  | Enterprise compliance | ❌ | ✅ **GDPR/SOC2/CSSF-ready** |
85
87
  | Video Overview generation | ❌ | ✅ **NEW** |
86
88
  | Data Table extraction | ❌ | ✅ **NEW** |
87
89
  | Chat history extraction | ❌ | ✅ |
88
90
  | Deep health verification | ❌ | ✅ |
89
91
 
92
+ ---
93
+
94
+ ## 🔬 Security Audit 2026 — What We Found and Fixed
95
+
96
+ 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 334 issues are resolved across v2026.3.0 and v2026.3.1.
97
+
98
+ ### Audit by the Numbers
99
+
100
+ | Metric | Before (v2026.2.11) | After (v2026.3.1) |
101
+ |--------|---------------------|--------------------|
102
+ | Tests | 139 | **631 across 50 files** |
103
+ | Test suites | ~6 | **50** |
104
+ | TypeScript errors (`tsc --noEmit`) | 0 | **0 (maintained)** |
105
+ | npm audit vulnerabilities | 0 | **0 (maintained)** |
106
+ | MCP protocol compliance | Partial | **Full** (structuredContent, isError, transport tags) |
107
+ | Audit log integrity | Basic | **Hash-chain verified on read** |
108
+ | Concurrent write safety | ❌ | **✅ Write-locked** |
109
+ | Webhook SSRF | ❌ | **✅ Blocked** |
110
+
111
+ ### What the Four Reviewers Found
112
+
113
+ **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).
114
+
115
+ **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.
116
+
117
+ **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.
118
+
119
+ **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.
120
+
121
+ ### Key Fixes
122
+
123
+ - **17 security vulnerabilities** addressed (auth bypass, SSRF, audit integrity, race conditions, selector injection vectors)
124
+ - **MCP protocol fully compliant** — all 48 tools return correct `structuredContent`/`isError` shapes; annotations accurate; schema bounds enforced
125
+ - **Architecture decomposed** — `handlers.ts` split into 9 domain modules with HandlerContext dependency injection; 100% unit-testable without process mocks
126
+ - **Test coverage** — 15 new security-critical test suites including browser session, auth, prompt injection, audit log, webhook, DSAR, and compliance
127
+ - **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"
128
+
90
129
  <details>
91
130
  <summary><b>📋 Full Feature List (48 Tools)</b></summary>
92
131
 
@@ -208,7 +247,7 @@ Run deep research in the background and check progress:
208
247
 
209
248
  ```
210
249
  ┌──────────────────────────────────────────────────────────────────────────────┐
211
- │ NotebookLM MCP Server v2026.2.x │
250
+ │ NotebookLM MCP Server v2026.3.x │
212
251
  ├──────────────────────────────────────────────────────────────────────────────┤
213
252
  │ │
214
253
  │ ┌────────────────────────────────┐ ┌──────────────────────────────────┐ │
@@ -237,7 +276,7 @@ Run deep research in the background and check progress:
237
276
  │ ┌─────────────────────────────────┐ │
238
277
  │ │ 17 SECURITY LAYERS │ │
239
278
  │ │ Post-Quantum • Audit Logs │ │
240
- │ │ Cert Pinning • Memory Wipe │ │
279
+ │ │ Secrets Scan • Memory Wipe │ │
241
280
  │ │ GDPR • SOC2 • CSSF Ready* │ │
242
281
  │ └─────────────────────────────────┘ │
243
282
  └──────────────────────────────────────────────────────────────────────────────┘
@@ -644,9 +683,8 @@ This fork adds **17 security hardening layers** to protect that data.
644
683
 
645
684
  | Layer | Feature | Protection |
646
685
  |-------|---------|------------|
647
- | 🔐 | **Post-Quantum Encryption** | ML-KEM-768 + ChaCha20-Poly1305 hybrid |
686
+ | 🔐 | **Post-Quantum Encryption** | ML-KEM-768 + ChaCha20-Poly1305 hybrid (local at-rest) |
648
687
  | 🔍 | **Secrets Scanning** | Detects 30+ credential patterns (AWS, GitHub, Slack...) |
649
- | 📌 | **Certificate Pinning** | Blocks MITM attacks on Google connections |
650
688
  | 🧹 | **Memory Scrubbing** | Zeros sensitive data after use |
651
689
  | 📝 | **Audit Logging** | Tamper-evident logs with hash chains |
652
690
  | ⏱️ | **Session Timeout** | 8h hard limit + 30m inactivity auto-logout |
@@ -661,9 +699,9 @@ This fork adds **17 security hardening layers** to protect that data.
661
699
  | 📈 | **Exponential Backoff** | Lockout escalation: 5min → 15min → 45min → 4hr cap |
662
700
  | 🗝️ | **Credential Isolation** | SecureCredential TTL + env var scrubbing from process.env |
663
701
 
664
- ### Post-Quantum Ready
702
+ ### Post-Quantum Primitives (Local At-Rest)
665
703
 
666
- Traditional encryption (RSA, ECDH) will be broken by quantum computers. This fork uses **hybrid encryption**:
704
+ Encryption of secrets on disk uses hybrid post-quantum primitives:
667
705
 
668
706
  ```
669
707
  ML-KEM-768 (Kyber) + ChaCha20-Poly1305
@@ -672,7 +710,12 @@ ML-KEM-768 (Kyber) + ChaCha20-Poly1305
672
710
  - **ML-KEM-768**: NIST-standardized post-quantum key encapsulation
673
711
  - **ChaCha20-Poly1305**: Modern stream cipher (immune to timing attacks)
674
712
 
675
- Even if one algorithm is broken, the other remains secure.
713
+ **Scope, honestly:** this is **local at-rest** encryption. Both keys live
714
+ on the same machine — the PQ secret key is wrapped with a classical key
715
+ derived from a machine-bound secret, not held by a remote recipient.
716
+ This protects against offline theft of individual encrypted files, not
717
+ against Harvest-Now-Decrypt-Later attacks (those require a remote PQ
718
+ recipient holding the unwrap key).
676
719
 
677
720
  ### Cross-Platform Support
678
721
 
@@ -688,7 +731,7 @@ All sensitive files (encryption keys, auth tokens, audit logs) are automatically
688
731
 
689
732
  ### Enterprise Compliance-Ready Architecture (v1.6.0+)
690
733
 
691
- 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.
734
+ Built to the standards required for regulated industries. All code-level technical controls are implemented — full compliance also requires organizational process controls (policies, training, vendor management). Formal certification (SOC2 Type II report, GDPR registration, CSSF submission) requires a third-party audit engagement.
692
735
 
693
736
  | Regulation | Controls Implemented |
694
737
  |------------|----------|
@@ -733,6 +776,8 @@ All core NotebookLM features work immediately with just browser authentication:
733
776
 
734
777
  **Optional:** Add `GEMINI_API_KEY` for bonus features like `deep_research`, `gemini_query`, and `upload_document`.
735
778
 
779
+ For repeatable authenticated validation, see the [Authenticated Testing Runbook](./docs/testing-runbook.md).
780
+
736
781
  ---
737
782
 
738
783
  ### Claude Code
@@ -989,7 +1034,7 @@ Go to [notebooklm.google.com](https://notebooklm.google.com) → Create notebook
989
1034
  | Browser cookies | Post-quantum encrypted at rest |
990
1035
  | Session tokens | Auto-expire + memory scrubbing |
991
1036
  | Query history | Audit logged with tamper detection |
992
- | Google connection | Certificate pinned (MITM blocked) |
1037
+ | Google connection | TLS with response validation |
993
1038
  | Log output | Credentials auto-redacted |
994
1039
  | API responses | Scanned for leaked secrets |
995
1040
  | Gemini API key | Secure memory handling |
@@ -1029,9 +1074,6 @@ NLMCP_SECRETS_SCANNING=true
1029
1074
  NLMCP_SECRETS_BLOCK=false # Block on detection
1030
1075
  NLMCP_SECRETS_REDACT=true # Auto-redact
1031
1076
 
1032
- # Certificate Pinning
1033
- NLMCP_CERT_PINNING=true
1034
-
1035
1077
  # Audit Logging
1036
1078
  NLMCP_AUDIT_ENABLED=true
1037
1079
 
@@ -1111,9 +1153,8 @@ Or integrate in CI/CD:
1111
1153
  | Feature | Others | @pan-sec/notebooklm-mcp |
1112
1154
  |---------|--------|-------------------------|
1113
1155
  | Cross-platform (Linux/macOS/Windows) | ⚠️ Partial | ✅ Full |
1114
- | **Post-quantum encryption** | ❌ | ✅ ML-KEM-768 + ChaCha20 |
1156
+ | **Post-quantum encryption** | ❌ | ✅ ML-KEM-768 + ChaCha20 (local at-rest) |
1115
1157
  | **Secrets scanning** | ❌ | ✅ 30+ patterns |
1116
- | **Certificate pinning** | ❌ | ✅ Google MITM protection |
1117
1158
  | **Memory scrubbing** | ❌ | ✅ Zero-on-free |
1118
1159
  | **Audit logging** | ❌ | ✅ Hash-chained |
1119
1160
  | **MCP authentication** | ❌ | ✅ Token + lockout |
@@ -1122,7 +1163,7 @@ Or integrate in CI/CD:
1122
1163
  | **SOC2 Type II** | ❌ | ✅ Controls implemented* |
1123
1164
  | **CSSF (Luxembourg)** | ❌ | ✅ Controls implemented* |
1124
1165
 
1125
- > \* Compliance-ready: all required controls are implemented. Formal certification (SOC2 Type II report, GDPR registration, CSSF submission) requires a third-party audit engagement.
1166
+ > \* Compliance-ready: code-level technical controls are implemented. Full compliance also requires organizational process controls and formal certification via third-party audit.
1126
1167
 
1127
1168
  > **Bottom line**: If you need more than basic queries, or care about security, there's only one choice.
1128
1169
 
@@ -1132,6 +1173,8 @@ Or integrate in CI/CD:
1132
1173
 
1133
1174
  | Version | Highlights |
1134
1175
  |---------|------------|
1176
+ | **v2026.3.1** | ✅ **Security Audit Complete** — All 334 issues resolved. Tests 609→631. Code quality + test gap phase. |
1177
+ | **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. |
1135
1178
  | **v2026.2.9** | 🔐 `performSetup` no longer destroys credentials before Chrome opens — last root cause of auth loop fixed |
1136
1179
  | **v2026.2.8** | 🛡️ `cleanup_data` excludes `browser_state/` and `chrome_profile/` from all deletion paths — auth survives cleanup |
1137
1180
  | **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.1
6
+ **Security Features**: 17 hardening layers
7
7
  **Platforms**: Linux, macOS, Windows
8
8
 
9
+ > **v2026.3.1 — Security Audit Complete.** 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. All 334 issues are resolved across v2026.3.0 and v2026.3.1. See [CHANGELOG.md](./CHANGELOG.md) 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;IA4BlE;;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;IAgHnB;;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"}