@dollhousemcp/mcp-server 1.3.0 → 1.3.2

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 (623) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +12 -12
  3. package/dist/server/tools/CollectionTools.d.ts.map +1 -1
  4. package/dist/server/tools/CollectionTools.js +47 -2
  5. package/package.json +1 -1
  6. package/dist/collection/MarketplaceBrowser.d.ts +0 -24
  7. package/dist/collection/MarketplaceBrowser.d.ts.map +0 -1
  8. package/dist/collection/MarketplaceBrowser.js +0 -115
  9. package/dist/collection/MarketplaceSearch.d.ts +0 -18
  10. package/dist/collection/MarketplaceSearch.d.ts.map +0 -1
  11. package/dist/collection/MarketplaceSearch.js +0 -48
  12. package/dist/collection/PersonaInstaller.d.ts +0 -26
  13. package/dist/collection/PersonaInstaller.d.ts.map +0 -1
  14. package/dist/collection/PersonaInstaller.js +0 -103
  15. package/dist/marketplace/GitHubClient.d.ts +0 -22
  16. package/dist/marketplace/GitHubClient.d.ts.map +0 -1
  17. package/dist/marketplace/GitHubClient.js +0 -112
  18. package/dist/marketplace/MarketplaceBrowser.d.ts +0 -24
  19. package/dist/marketplace/MarketplaceBrowser.d.ts.map +0 -1
  20. package/dist/marketplace/MarketplaceBrowser.js +0 -115
  21. package/dist/marketplace/MarketplaceSearch.d.ts +0 -18
  22. package/dist/marketplace/MarketplaceSearch.d.ts.map +0 -1
  23. package/dist/marketplace/MarketplaceSearch.js +0 -48
  24. package/dist/marketplace/PersonaDetails.d.ts +0 -22
  25. package/dist/marketplace/PersonaDetails.d.ts.map +0 -1
  26. package/dist/marketplace/PersonaDetails.js +0 -71
  27. package/dist/marketplace/PersonaInstaller.d.ts +0 -25
  28. package/dist/marketplace/PersonaInstaller.d.ts.map +0 -1
  29. package/dist/marketplace/PersonaInstaller.js +0 -100
  30. package/dist/marketplace/PersonaSubmitter.d.ts +0 -19
  31. package/dist/marketplace/PersonaSubmitter.d.ts.map +0 -1
  32. package/dist/marketplace/PersonaSubmitter.js +0 -57
  33. package/dist/marketplace/index.d.ts +0 -10
  34. package/dist/marketplace/index.d.ts.map +0 -1
  35. package/dist/marketplace/index.js +0 -10
  36. package/dist/server/tools/MarketplaceTools.d.ts +0 -10
  37. package/dist/server/tools/MarketplaceTools.d.ts.map +0 -1
  38. package/dist/server/tools/MarketplaceTools.js +0 -96
  39. package/dist/src/cache/APICache.d.ts +0 -23
  40. package/dist/src/cache/APICache.d.ts.map +0 -1
  41. package/dist/src/cache/APICache.js +0 -42
  42. package/dist/src/cache/index.d.ts +0 -5
  43. package/dist/src/cache/index.d.ts.map +0 -1
  44. package/dist/src/cache/index.js +0 -5
  45. package/dist/src/config/constants.d.ts +0 -25
  46. package/dist/src/config/constants.d.ts.map +0 -1
  47. package/dist/src/config/constants.js +0 -30
  48. package/dist/src/config/index.d.ts +0 -6
  49. package/dist/src/config/index.d.ts.map +0 -1
  50. package/dist/src/config/index.js +0 -6
  51. package/dist/src/config/indicator-config.d.ts +0 -107
  52. package/dist/src/config/indicator-config.d.ts.map +0 -1
  53. package/dist/src/config/indicator-config.js +0 -158
  54. package/dist/src/constants/defaultPersonas.d.ts +0 -10
  55. package/dist/src/constants/defaultPersonas.d.ts.map +0 -1
  56. package/dist/src/constants/defaultPersonas.js +0 -18
  57. package/dist/src/constants/limits.d.ts +0 -10
  58. package/dist/src/constants/limits.d.ts.map +0 -1
  59. package/dist/src/constants/limits.js +0 -13
  60. package/dist/src/errors/SecurityError.d.ts +0 -29
  61. package/dist/src/errors/SecurityError.d.ts.map +0 -1
  62. package/dist/src/errors/SecurityError.js +0 -47
  63. package/dist/src/errors/index.d.ts +0 -2
  64. package/dist/src/errors/index.d.ts.map +0 -1
  65. package/dist/src/errors/index.js +0 -2
  66. package/dist/src/index.barrel.d.ts +0 -21
  67. package/dist/src/index.barrel.d.ts.map +0 -1
  68. package/dist/src/index.barrel.js +0 -31
  69. package/dist/src/index.d.ts +0 -220
  70. package/dist/src/index.d.ts.map +0 -1
  71. package/dist/src/index.js +0 -1559
  72. package/dist/src/marketplace/GitHubClient.d.ts +0 -22
  73. package/dist/src/marketplace/GitHubClient.d.ts.map +0 -1
  74. package/dist/src/marketplace/GitHubClient.js +0 -112
  75. package/dist/src/marketplace/MarketplaceBrowser.d.ts +0 -21
  76. package/dist/src/marketplace/MarketplaceBrowser.d.ts.map +0 -1
  77. package/dist/src/marketplace/MarketplaceBrowser.js +0 -45
  78. package/dist/src/marketplace/MarketplaceSearch.d.ts +0 -18
  79. package/dist/src/marketplace/MarketplaceSearch.d.ts.map +0 -1
  80. package/dist/src/marketplace/MarketplaceSearch.js +0 -36
  81. package/dist/src/marketplace/PersonaDetails.d.ts +0 -22
  82. package/dist/src/marketplace/PersonaDetails.d.ts.map +0 -1
  83. package/dist/src/marketplace/PersonaDetails.js +0 -71
  84. package/dist/src/marketplace/PersonaInstaller.d.ts +0 -25
  85. package/dist/src/marketplace/PersonaInstaller.d.ts.map +0 -1
  86. package/dist/src/marketplace/PersonaInstaller.js +0 -100
  87. package/dist/src/marketplace/PersonaSubmitter.d.ts +0 -19
  88. package/dist/src/marketplace/PersonaSubmitter.d.ts.map +0 -1
  89. package/dist/src/marketplace/PersonaSubmitter.js +0 -57
  90. package/dist/src/marketplace/index.d.ts +0 -10
  91. package/dist/src/marketplace/index.d.ts.map +0 -1
  92. package/dist/src/marketplace/index.js +0 -10
  93. package/dist/src/persona/PersonaLoader.d.ts +0 -33
  94. package/dist/src/persona/PersonaLoader.d.ts.map +0 -1
  95. package/dist/src/persona/PersonaLoader.js +0 -139
  96. package/dist/src/persona/PersonaManager.d.ts +0 -112
  97. package/dist/src/persona/PersonaManager.d.ts.map +0 -1
  98. package/dist/src/persona/PersonaManager.js +0 -341
  99. package/dist/src/persona/PersonaValidator.d.ts +0 -33
  100. package/dist/src/persona/PersonaValidator.d.ts.map +0 -1
  101. package/dist/src/persona/PersonaValidator.js +0 -157
  102. package/dist/src/persona/export-import/PersonaExporter.d.ts +0 -43
  103. package/dist/src/persona/export-import/PersonaExporter.d.ts.map +0 -1
  104. package/dist/src/persona/export-import/PersonaExporter.js +0 -99
  105. package/dist/src/persona/export-import/PersonaImporter.d.ts +0 -65
  106. package/dist/src/persona/export-import/PersonaImporter.d.ts.map +0 -1
  107. package/dist/src/persona/export-import/PersonaImporter.js +0 -313
  108. package/dist/src/persona/export-import/PersonaSharer.d.ts +0 -60
  109. package/dist/src/persona/export-import/PersonaSharer.d.ts.map +0 -1
  110. package/dist/src/persona/export-import/PersonaSharer.js +0 -363
  111. package/dist/src/persona/export-import/index.d.ts +0 -10
  112. package/dist/src/persona/export-import/index.d.ts.map +0 -1
  113. package/dist/src/persona/export-import/index.js +0 -7
  114. package/dist/src/persona/index.d.ts +0 -7
  115. package/dist/src/persona/index.d.ts.map +0 -1
  116. package/dist/src/persona/index.js +0 -7
  117. package/dist/src/security/InputValidator.d.ts +0 -69
  118. package/dist/src/security/InputValidator.d.ts.map +0 -1
  119. package/dist/src/security/InputValidator.js +0 -381
  120. package/dist/src/security/commandValidator.d.ts +0 -7
  121. package/dist/src/security/commandValidator.d.ts.map +0 -1
  122. package/dist/src/security/commandValidator.js +0 -77
  123. package/dist/src/security/constants.d.ts +0 -21
  124. package/dist/src/security/constants.d.ts.map +0 -1
  125. package/dist/src/security/constants.js +0 -23
  126. package/dist/src/security/contentValidator.d.ts +0 -47
  127. package/dist/src/security/contentValidator.d.ts.map +0 -1
  128. package/dist/src/security/contentValidator.js +0 -188
  129. package/dist/src/security/fileLockManager.d.ts +0 -70
  130. package/dist/src/security/fileLockManager.d.ts.map +0 -1
  131. package/dist/src/security/fileLockManager.js +0 -187
  132. package/dist/src/security/index.d.ts +0 -12
  133. package/dist/src/security/index.d.ts.map +0 -1
  134. package/dist/src/security/index.js +0 -14
  135. package/dist/src/security/pathValidator.d.ts +0 -9
  136. package/dist/src/security/pathValidator.d.ts.map +0 -1
  137. package/dist/src/security/pathValidator.js +0 -97
  138. package/dist/src/security/secureYamlParser.d.ts +0 -46
  139. package/dist/src/security/secureYamlParser.d.ts.map +0 -1
  140. package/dist/src/security/secureYamlParser.js +0 -203
  141. package/dist/src/security/securityMonitor.d.ts +0 -58
  142. package/dist/src/security/securityMonitor.d.ts.map +0 -1
  143. package/dist/src/security/securityMonitor.js +0 -108
  144. package/dist/src/security/tokenManager.d.ts +0 -59
  145. package/dist/src/security/tokenManager.d.ts.map +0 -1
  146. package/dist/src/security/tokenManager.js +0 -216
  147. package/dist/src/security/yamlValidator.d.ts +0 -20
  148. package/dist/src/security/yamlValidator.d.ts.map +0 -1
  149. package/dist/src/security/yamlValidator.js +0 -138
  150. package/dist/src/server/ServerSetup.d.ts +0 -31
  151. package/dist/src/server/ServerSetup.d.ts.map +0 -1
  152. package/dist/src/server/ServerSetup.js +0 -79
  153. package/dist/src/server/index.d.ts +0 -7
  154. package/dist/src/server/index.d.ts.map +0 -1
  155. package/dist/src/server/index.js +0 -7
  156. package/dist/src/server/tools/ConfigTools.d.ts +0 -10
  157. package/dist/src/server/tools/ConfigTools.d.ts.map +0 -1
  158. package/dist/src/server/tools/ConfigTools.js +0 -63
  159. package/dist/src/server/tools/MarketplaceTools.d.ts +0 -10
  160. package/dist/src/server/tools/MarketplaceTools.d.ts.map +0 -1
  161. package/dist/src/server/tools/MarketplaceTools.js +0 -92
  162. package/dist/src/server/tools/PersonaTools.d.ts +0 -10
  163. package/dist/src/server/tools/PersonaTools.d.ts.map +0 -1
  164. package/dist/src/server/tools/PersonaTools.js +0 -257
  165. package/dist/src/server/tools/ToolRegistry.d.ts +0 -37
  166. package/dist/src/server/tools/ToolRegistry.d.ts.map +0 -1
  167. package/dist/src/server/tools/ToolRegistry.js +0 -40
  168. package/dist/src/server/tools/UpdateTools.d.ts +0 -10
  169. package/dist/src/server/tools/UpdateTools.d.ts.map +0 -1
  170. package/dist/src/server/tools/UpdateTools.js +0 -64
  171. package/dist/src/server/tools/UserTools.d.ts +0 -10
  172. package/dist/src/server/tools/UserTools.d.ts.map +0 -1
  173. package/dist/src/server/tools/UserTools.js +0 -51
  174. package/dist/src/server/tools/index.d.ts +0 -10
  175. package/dist/src/server/tools/index.d.ts.map +0 -1
  176. package/dist/src/server/tools/index.js +0 -10
  177. package/dist/src/server/types.d.ts +0 -34
  178. package/dist/src/server/types.d.ts.map +0 -1
  179. package/dist/src/server/types.js +0 -5
  180. package/dist/src/tools/debug.d.ts +0 -20
  181. package/dist/src/tools/debug.d.ts.map +0 -1
  182. package/dist/src/tools/debug.js +0 -37
  183. package/dist/src/types/cache.d.ts +0 -8
  184. package/dist/src/types/cache.d.ts.map +0 -1
  185. package/dist/src/types/cache.js +0 -5
  186. package/dist/src/types/index.d.ts +0 -8
  187. package/dist/src/types/index.d.ts.map +0 -1
  188. package/dist/src/types/index.js +0 -8
  189. package/dist/src/types/marketplace.d.ts +0 -23
  190. package/dist/src/types/marketplace.d.ts.map +0 -1
  191. package/dist/src/types/marketplace.js +0 -5
  192. package/dist/src/types/mcp.d.ts +0 -161
  193. package/dist/src/types/mcp.d.ts.map +0 -1
  194. package/dist/src/types/mcp.js +0 -75
  195. package/dist/src/types/persona.d.ts +0 -30
  196. package/dist/src/types/persona.d.ts.map +0 -1
  197. package/dist/src/types/persona.js +0 -5
  198. package/dist/src/update/BackupManager.d.ts +0 -46
  199. package/dist/src/update/BackupManager.d.ts.map +0 -1
  200. package/dist/src/update/BackupManager.js +0 -261
  201. package/dist/src/update/DependencyChecker.d.ts +0 -41
  202. package/dist/src/update/DependencyChecker.d.ts.map +0 -1
  203. package/dist/src/update/DependencyChecker.js +0 -132
  204. package/dist/src/update/RateLimiter.d.ts +0 -80
  205. package/dist/src/update/RateLimiter.d.ts.map +0 -1
  206. package/dist/src/update/RateLimiter.js +0 -172
  207. package/dist/src/update/SignatureVerifier.d.ts +0 -71
  208. package/dist/src/update/SignatureVerifier.d.ts.map +0 -1
  209. package/dist/src/update/SignatureVerifier.js +0 -214
  210. package/dist/src/update/UpdateChecker.d.ts +0 -127
  211. package/dist/src/update/UpdateChecker.d.ts.map +0 -1
  212. package/dist/src/update/UpdateChecker.js +0 -460
  213. package/dist/src/update/UpdateManager.d.ts +0 -41
  214. package/dist/src/update/UpdateManager.d.ts.map +0 -1
  215. package/dist/src/update/UpdateManager.js +0 -260
  216. package/dist/src/update/VersionManager.d.ts +0 -31
  217. package/dist/src/update/VersionManager.d.ts.map +0 -1
  218. package/dist/src/update/VersionManager.js +0 -134
  219. package/dist/src/update/index.d.ts +0 -9
  220. package/dist/src/update/index.d.ts.map +0 -1
  221. package/dist/src/update/index.js +0 -9
  222. package/dist/src/utils/filesystem.d.ts +0 -32
  223. package/dist/src/utils/filesystem.d.ts.map +0 -1
  224. package/dist/src/utils/filesystem.js +0 -73
  225. package/dist/src/utils/git.d.ts +0 -32
  226. package/dist/src/utils/git.d.ts.map +0 -1
  227. package/dist/src/utils/git.js +0 -65
  228. package/dist/src/utils/index.d.ts +0 -7
  229. package/dist/src/utils/index.d.ts.map +0 -1
  230. package/dist/src/utils/index.js +0 -7
  231. package/dist/src/utils/logger.d.ts +0 -45
  232. package/dist/src/utils/logger.d.ts.map +0 -1
  233. package/dist/src/utils/logger.js +0 -91
  234. package/dist/src/utils/version.d.ts +0 -25
  235. package/dist/src/utils/version.d.ts.map +0 -1
  236. package/dist/src/utils/version.js +0 -97
  237. package/dist/test/src/cache/APICache.d.ts +0 -23
  238. package/dist/test/src/cache/APICache.d.ts.map +0 -1
  239. package/dist/test/src/cache/APICache.js +0 -42
  240. package/dist/test/src/cache/index.d.ts +0 -5
  241. package/dist/test/src/cache/index.d.ts.map +0 -1
  242. package/dist/test/src/cache/index.js +0 -5
  243. package/dist/test/src/collection/CollectionBrowser.d.ts +0 -24
  244. package/dist/test/src/collection/CollectionBrowser.d.ts.map +0 -1
  245. package/dist/test/src/collection/CollectionBrowser.js +0 -115
  246. package/dist/test/src/collection/CollectionSearch.d.ts +0 -18
  247. package/dist/test/src/collection/CollectionSearch.d.ts.map +0 -1
  248. package/dist/test/src/collection/CollectionSearch.js +0 -48
  249. package/dist/test/src/collection/GitHubClient.d.ts +0 -22
  250. package/dist/test/src/collection/GitHubClient.d.ts.map +0 -1
  251. package/dist/test/src/collection/GitHubClient.js +0 -114
  252. package/dist/test/src/collection/PersonaDetails.d.ts +0 -22
  253. package/dist/test/src/collection/PersonaDetails.d.ts.map +0 -1
  254. package/dist/test/src/collection/PersonaDetails.js +0 -71
  255. package/dist/test/src/collection/PersonaInstaller.d.ts +0 -26
  256. package/dist/test/src/collection/PersonaInstaller.d.ts.map +0 -1
  257. package/dist/test/src/collection/PersonaInstaller.js +0 -103
  258. package/dist/test/src/collection/PersonaSubmitter.d.ts +0 -19
  259. package/dist/test/src/collection/PersonaSubmitter.d.ts.map +0 -1
  260. package/dist/test/src/collection/PersonaSubmitter.js +0 -57
  261. package/dist/test/src/collection/index.d.ts +0 -10
  262. package/dist/test/src/collection/index.d.ts.map +0 -1
  263. package/dist/test/src/collection/index.js +0 -10
  264. package/dist/test/src/config/constants.d.ts +0 -25
  265. package/dist/test/src/config/constants.d.ts.map +0 -1
  266. package/dist/test/src/config/constants.js +0 -30
  267. package/dist/test/src/config/index.d.ts +0 -6
  268. package/dist/test/src/config/index.d.ts.map +0 -1
  269. package/dist/test/src/config/index.js +0 -6
  270. package/dist/test/src/config/indicator-config.d.ts +0 -107
  271. package/dist/test/src/config/indicator-config.d.ts.map +0 -1
  272. package/dist/test/src/config/indicator-config.js +0 -158
  273. package/dist/test/src/constants/defaultPersonas.d.ts +0 -10
  274. package/dist/test/src/constants/defaultPersonas.d.ts.map +0 -1
  275. package/dist/test/src/constants/defaultPersonas.js +0 -18
  276. package/dist/test/src/constants/limits.d.ts +0 -10
  277. package/dist/test/src/constants/limits.d.ts.map +0 -1
  278. package/dist/test/src/constants/limits.js +0 -13
  279. package/dist/test/src/elements/BaseElement.d.ts +0 -81
  280. package/dist/test/src/elements/BaseElement.d.ts.map +0 -1
  281. package/dist/test/src/elements/BaseElement.js +0 -381
  282. package/dist/test/src/elements/FeedbackProcessor.d.ts +0 -57
  283. package/dist/test/src/elements/FeedbackProcessor.d.ts.map +0 -1
  284. package/dist/test/src/elements/FeedbackProcessor.js +0 -418
  285. package/dist/test/src/elements/agents/Agent.d.ts +0 -145
  286. package/dist/test/src/elements/agents/Agent.d.ts.map +0 -1
  287. package/dist/test/src/elements/agents/Agent.js +0 -848
  288. package/dist/test/src/elements/agents/AgentManager.d.ts +0 -125
  289. package/dist/test/src/elements/agents/AgentManager.d.ts.map +0 -1
  290. package/dist/test/src/elements/agents/AgentManager.js +0 -608
  291. package/dist/test/src/elements/agents/constants.d.ts +0 -42
  292. package/dist/test/src/elements/agents/constants.d.ts.map +0 -1
  293. package/dist/test/src/elements/agents/constants.js +0 -45
  294. package/dist/test/src/elements/agents/goalTemplates.d.ts +0 -44
  295. package/dist/test/src/elements/agents/goalTemplates.d.ts.map +0 -1
  296. package/dist/test/src/elements/agents/goalTemplates.js +0 -297
  297. package/dist/test/src/elements/agents/index.d.ts +0 -8
  298. package/dist/test/src/elements/agents/index.d.ts.map +0 -1
  299. package/dist/test/src/elements/agents/index.js +0 -8
  300. package/dist/test/src/elements/agents/ruleEngineConfig.d.ts +0 -76
  301. package/dist/test/src/elements/agents/ruleEngineConfig.d.ts.map +0 -1
  302. package/dist/test/src/elements/agents/ruleEngineConfig.js +0 -143
  303. package/dist/test/src/elements/agents/types.d.ts +0 -97
  304. package/dist/test/src/elements/agents/types.d.ts.map +0 -1
  305. package/dist/test/src/elements/agents/types.js +0 -5
  306. package/dist/test/src/elements/index.d.ts +0 -6
  307. package/dist/test/src/elements/index.d.ts.map +0 -1
  308. package/dist/test/src/elements/index.js +0 -6
  309. package/dist/test/src/elements/memories/Memory.d.ts +0 -110
  310. package/dist/test/src/elements/memories/Memory.d.ts.map +0 -1
  311. package/dist/test/src/elements/memories/Memory.js +0 -470
  312. package/dist/test/src/elements/memories/MemoryManager.d.ts +0 -86
  313. package/dist/test/src/elements/memories/MemoryManager.d.ts.map +0 -1
  314. package/dist/test/src/elements/memories/MemoryManager.js +0 -435
  315. package/dist/test/src/elements/memories/constants.d.ts +0 -42
  316. package/dist/test/src/elements/memories/constants.d.ts.map +0 -1
  317. package/dist/test/src/elements/memories/constants.js +0 -49
  318. package/dist/test/src/elements/memories/index.d.ts +0 -6
  319. package/dist/test/src/elements/memories/index.d.ts.map +0 -1
  320. package/dist/test/src/elements/memories/index.js +0 -6
  321. package/dist/test/src/elements/skills/Skill.d.ts +0 -109
  322. package/dist/test/src/elements/skills/Skill.d.ts.map +0 -1
  323. package/dist/test/src/elements/skills/Skill.js +0 -381
  324. package/dist/test/src/elements/templates/Template.d.ts +0 -138
  325. package/dist/test/src/elements/templates/Template.d.ts.map +0 -1
  326. package/dist/test/src/elements/templates/Template.js +0 -673
  327. package/dist/test/src/elements/templates/TemplateManager.d.ts +0 -104
  328. package/dist/test/src/elements/templates/TemplateManager.d.ts.map +0 -1
  329. package/dist/test/src/elements/templates/TemplateManager.js +0 -496
  330. package/dist/test/src/elements/templates/index.d.ts +0 -6
  331. package/dist/test/src/elements/templates/index.d.ts.map +0 -1
  332. package/dist/test/src/elements/templates/index.js +0 -6
  333. package/dist/test/src/errors/SecurityError.d.ts +0 -29
  334. package/dist/test/src/errors/SecurityError.d.ts.map +0 -1
  335. package/dist/test/src/errors/SecurityError.js +0 -47
  336. package/dist/test/src/errors/index.d.ts +0 -2
  337. package/dist/test/src/errors/index.d.ts.map +0 -1
  338. package/dist/test/src/errors/index.js +0 -2
  339. package/dist/test/src/index.barrel.d.ts +0 -21
  340. package/dist/test/src/index.barrel.d.ts.map +0 -1
  341. package/dist/test/src/index.barrel.js +0 -31
  342. package/dist/test/src/index.d.ts +0 -223
  343. package/dist/test/src/index.d.ts.map +0 -1
  344. package/dist/test/src/index.js +0 -1594
  345. package/dist/test/src/marketplace/GitHubClient.d.ts +0 -22
  346. package/dist/test/src/marketplace/GitHubClient.d.ts.map +0 -1
  347. package/dist/test/src/marketplace/GitHubClient.js +0 -112
  348. package/dist/test/src/marketplace/MarketplaceBrowser.d.ts +0 -21
  349. package/dist/test/src/marketplace/MarketplaceBrowser.d.ts.map +0 -1
  350. package/dist/test/src/marketplace/MarketplaceBrowser.js +0 -45
  351. package/dist/test/src/marketplace/MarketplaceSearch.d.ts +0 -18
  352. package/dist/test/src/marketplace/MarketplaceSearch.d.ts.map +0 -1
  353. package/dist/test/src/marketplace/MarketplaceSearch.js +0 -36
  354. package/dist/test/src/marketplace/PersonaDetails.d.ts +0 -22
  355. package/dist/test/src/marketplace/PersonaDetails.d.ts.map +0 -1
  356. package/dist/test/src/marketplace/PersonaDetails.js +0 -71
  357. package/dist/test/src/marketplace/PersonaInstaller.d.ts +0 -25
  358. package/dist/test/src/marketplace/PersonaInstaller.d.ts.map +0 -1
  359. package/dist/test/src/marketplace/PersonaInstaller.js +0 -100
  360. package/dist/test/src/marketplace/PersonaSubmitter.d.ts +0 -19
  361. package/dist/test/src/marketplace/PersonaSubmitter.d.ts.map +0 -1
  362. package/dist/test/src/marketplace/PersonaSubmitter.js +0 -57
  363. package/dist/test/src/marketplace/index.d.ts +0 -10
  364. package/dist/test/src/marketplace/index.d.ts.map +0 -1
  365. package/dist/test/src/marketplace/index.js +0 -10
  366. package/dist/test/src/persona/PersonaElement.d.ts +0 -64
  367. package/dist/test/src/persona/PersonaElement.d.ts.map +0 -1
  368. package/dist/test/src/persona/PersonaElement.js +0 -223
  369. package/dist/test/src/persona/PersonaElementManager.d.ts +0 -97
  370. package/dist/test/src/persona/PersonaElementManager.d.ts.map +0 -1
  371. package/dist/test/src/persona/PersonaElementManager.js +0 -342
  372. package/dist/test/src/persona/PersonaLoader.d.ts +0 -34
  373. package/dist/test/src/persona/PersonaLoader.d.ts.map +0 -1
  374. package/dist/test/src/persona/PersonaLoader.js +0 -145
  375. package/dist/test/src/persona/PersonaManager.d.ts +0 -112
  376. package/dist/test/src/persona/PersonaManager.d.ts.map +0 -1
  377. package/dist/test/src/persona/PersonaManager.js +0 -341
  378. package/dist/test/src/persona/PersonaValidator.d.ts +0 -33
  379. package/dist/test/src/persona/PersonaValidator.d.ts.map +0 -1
  380. package/dist/test/src/persona/PersonaValidator.js +0 -157
  381. package/dist/test/src/persona/export-import/PersonaExporter.d.ts +0 -43
  382. package/dist/test/src/persona/export-import/PersonaExporter.d.ts.map +0 -1
  383. package/dist/test/src/persona/export-import/PersonaExporter.js +0 -99
  384. package/dist/test/src/persona/export-import/PersonaImporter.d.ts +0 -65
  385. package/dist/test/src/persona/export-import/PersonaImporter.d.ts.map +0 -1
  386. package/dist/test/src/persona/export-import/PersonaImporter.js +0 -315
  387. package/dist/test/src/persona/export-import/PersonaSharer.d.ts +0 -60
  388. package/dist/test/src/persona/export-import/PersonaSharer.d.ts.map +0 -1
  389. package/dist/test/src/persona/export-import/PersonaSharer.js +0 -502
  390. package/dist/test/src/persona/export-import/index.d.ts +0 -10
  391. package/dist/test/src/persona/export-import/index.d.ts.map +0 -1
  392. package/dist/test/src/persona/export-import/index.js +0 -7
  393. package/dist/test/src/persona/index.d.ts +0 -7
  394. package/dist/test/src/persona/index.d.ts.map +0 -1
  395. package/dist/test/src/persona/index.js +0 -7
  396. package/dist/test/src/portfolio/MigrationManager.d.ts +0 -44
  397. package/dist/test/src/portfolio/MigrationManager.d.ts.map +0 -1
  398. package/dist/test/src/portfolio/MigrationManager.js +0 -163
  399. package/dist/test/src/portfolio/PortfolioManager.d.ts +0 -54
  400. package/dist/test/src/portfolio/PortfolioManager.d.ts.map +0 -1
  401. package/dist/test/src/portfolio/PortfolioManager.js +0 -224
  402. package/dist/test/src/portfolio/types.d.ts +0 -18
  403. package/dist/test/src/portfolio/types.d.ts.map +0 -1
  404. package/dist/test/src/portfolio/types.js +0 -13
  405. package/dist/test/src/security/InputValidator.d.ts +0 -80
  406. package/dist/test/src/security/InputValidator.d.ts.map +0 -1
  407. package/dist/test/src/security/InputValidator.js +0 -436
  408. package/dist/test/src/security/audit/SecurityAuditor.d.ts +0 -44
  409. package/dist/test/src/security/audit/SecurityAuditor.d.ts.map +0 -1
  410. package/dist/test/src/security/audit/SecurityAuditor.js +0 -274
  411. package/dist/test/src/security/audit/config/suppressions.d.ts +0 -34
  412. package/dist/test/src/security/audit/config/suppressions.d.ts.map +0 -1
  413. package/dist/test/src/security/audit/config/suppressions.js +0 -575
  414. package/dist/test/src/security/audit/index.d.ts +0 -14
  415. package/dist/test/src/security/audit/index.d.ts.map +0 -1
  416. package/dist/test/src/security/audit/index.js +0 -15
  417. package/dist/test/src/security/audit/reporters/ConsoleReporter.d.ts +0 -46
  418. package/dist/test/src/security/audit/reporters/ConsoleReporter.d.ts.map +0 -1
  419. package/dist/test/src/security/audit/reporters/ConsoleReporter.js +0 -174
  420. package/dist/test/src/security/audit/reporters/JsonReporter.d.ts +0 -13
  421. package/dist/test/src/security/audit/reporters/JsonReporter.d.ts.map +0 -1
  422. package/dist/test/src/security/audit/reporters/JsonReporter.js +0 -25
  423. package/dist/test/src/security/audit/reporters/MarkdownReporter.d.ts +0 -13
  424. package/dist/test/src/security/audit/reporters/MarkdownReporter.d.ts.map +0 -1
  425. package/dist/test/src/security/audit/reporters/MarkdownReporter.js +0 -79
  426. package/dist/test/src/security/audit/rules/SecurityRules.d.ts +0 -20
  427. package/dist/test/src/security/audit/rules/SecurityRules.d.ts.map +0 -1
  428. package/dist/test/src/security/audit/rules/SecurityRules.js +0 -244
  429. package/dist/test/src/security/audit/scanners/CodeScanner.d.ts +0 -47
  430. package/dist/test/src/security/audit/scanners/CodeScanner.d.ts.map +0 -1
  431. package/dist/test/src/security/audit/scanners/CodeScanner.js +0 -174
  432. package/dist/test/src/security/audit/scanners/ConfigurationScanner.d.ts +0 -13
  433. package/dist/test/src/security/audit/scanners/ConfigurationScanner.d.ts.map +0 -1
  434. package/dist/test/src/security/audit/scanners/ConfigurationScanner.js +0 -22
  435. package/dist/test/src/security/audit/scanners/DependencyScanner.d.ts +0 -13
  436. package/dist/test/src/security/audit/scanners/DependencyScanner.d.ts.map +0 -1
  437. package/dist/test/src/security/audit/scanners/DependencyScanner.js +0 -22
  438. package/dist/test/src/security/audit/types.d.ts +0 -94
  439. package/dist/test/src/security/audit/types.d.ts.map +0 -1
  440. package/dist/test/src/security/audit/types.js +0 -6
  441. package/dist/test/src/security/commandValidator.d.ts +0 -7
  442. package/dist/test/src/security/commandValidator.d.ts.map +0 -1
  443. package/dist/test/src/security/commandValidator.js +0 -78
  444. package/dist/test/src/security/constants.d.ts +0 -24
  445. package/dist/test/src/security/constants.d.ts.map +0 -1
  446. package/dist/test/src/security/constants.js +0 -26
  447. package/dist/test/src/security/contentValidator.d.ts +0 -47
  448. package/dist/test/src/security/contentValidator.d.ts.map +0 -1
  449. package/dist/test/src/security/contentValidator.js +0 -301
  450. package/dist/test/src/security/errors.d.ts +0 -14
  451. package/dist/test/src/security/errors.d.ts.map +0 -1
  452. package/dist/test/src/security/errors.js +0 -28
  453. package/dist/test/src/security/fileLockManager.d.ts +0 -70
  454. package/dist/test/src/security/fileLockManager.d.ts.map +0 -1
  455. package/dist/test/src/security/fileLockManager.js +0 -187
  456. package/dist/test/src/security/index.d.ts +0 -12
  457. package/dist/test/src/security/index.d.ts.map +0 -1
  458. package/dist/test/src/security/index.js +0 -14
  459. package/dist/test/src/security/pathValidator.d.ts +0 -9
  460. package/dist/test/src/security/pathValidator.d.ts.map +0 -1
  461. package/dist/test/src/security/pathValidator.js +0 -98
  462. package/dist/test/src/security/regexValidator.d.ts +0 -59
  463. package/dist/test/src/security/regexValidator.d.ts.map +0 -1
  464. package/dist/test/src/security/regexValidator.js +0 -214
  465. package/dist/test/src/security/secureYamlParser.d.ts +0 -46
  466. package/dist/test/src/security/secureYamlParser.d.ts.map +0 -1
  467. package/dist/test/src/security/secureYamlParser.js +0 -203
  468. package/dist/test/src/security/securityMonitor.d.ts +0 -58
  469. package/dist/test/src/security/securityMonitor.d.ts.map +0 -1
  470. package/dist/test/src/security/securityMonitor.js +0 -108
  471. package/dist/test/src/security/tokenManager.d.ts +0 -85
  472. package/dist/test/src/security/tokenManager.d.ts.map +0 -1
  473. package/dist/test/src/security/tokenManager.js +0 -286
  474. package/dist/test/src/security/validators/unicodeValidator.d.ts +0 -97
  475. package/dist/test/src/security/validators/unicodeValidator.d.ts.map +0 -1
  476. package/dist/test/src/security/validators/unicodeValidator.js +0 -312
  477. package/dist/test/src/security/yamlValidator.d.ts +0 -21
  478. package/dist/test/src/security/yamlValidator.d.ts.map +0 -1
  479. package/dist/test/src/security/yamlValidator.js +0 -164
  480. package/dist/test/src/server/ServerSetup.d.ts +0 -35
  481. package/dist/test/src/server/ServerSetup.d.ts.map +0 -1
  482. package/dist/test/src/server/ServerSetup.js +0 -116
  483. package/dist/test/src/server/index.d.ts +0 -7
  484. package/dist/test/src/server/index.d.ts.map +0 -1
  485. package/dist/test/src/server/index.js +0 -7
  486. package/dist/test/src/server/startup.d.ts +0 -31
  487. package/dist/test/src/server/startup.d.ts.map +0 -1
  488. package/dist/test/src/server/startup.js +0 -67
  489. package/dist/test/src/server/tools/CollectionTools.d.ts +0 -10
  490. package/dist/test/src/server/tools/CollectionTools.d.ts.map +0 -1
  491. package/dist/test/src/server/tools/CollectionTools.js +0 -96
  492. package/dist/test/src/server/tools/ConfigTools.d.ts +0 -10
  493. package/dist/test/src/server/tools/ConfigTools.d.ts.map +0 -1
  494. package/dist/test/src/server/tools/ConfigTools.js +0 -63
  495. package/dist/test/src/server/tools/MarketplaceTools.d.ts +0 -10
  496. package/dist/test/src/server/tools/MarketplaceTools.d.ts.map +0 -1
  497. package/dist/test/src/server/tools/MarketplaceTools.js +0 -92
  498. package/dist/test/src/server/tools/PersonaTools.d.ts +0 -10
  499. package/dist/test/src/server/tools/PersonaTools.d.ts.map +0 -1
  500. package/dist/test/src/server/tools/PersonaTools.js +0 -257
  501. package/dist/test/src/server/tools/ToolRegistry.d.ts +0 -37
  502. package/dist/test/src/server/tools/ToolRegistry.d.ts.map +0 -1
  503. package/dist/test/src/server/tools/ToolRegistry.js +0 -40
  504. package/dist/test/src/server/tools/UpdateTools.d.ts +0 -10
  505. package/dist/test/src/server/tools/UpdateTools.d.ts.map +0 -1
  506. package/dist/test/src/server/tools/UpdateTools.js +0 -64
  507. package/dist/test/src/server/tools/UserTools.d.ts +0 -10
  508. package/dist/test/src/server/tools/UserTools.d.ts.map +0 -1
  509. package/dist/test/src/server/tools/UserTools.js +0 -51
  510. package/dist/test/src/server/tools/index.d.ts +0 -10
  511. package/dist/test/src/server/tools/index.d.ts.map +0 -1
  512. package/dist/test/src/server/tools/index.js +0 -10
  513. package/dist/test/src/server/types.d.ts +0 -34
  514. package/dist/test/src/server/types.d.ts.map +0 -1
  515. package/dist/test/src/server/types.js +0 -5
  516. package/dist/test/src/tools/debug.d.ts +0 -20
  517. package/dist/test/src/tools/debug.d.ts.map +0 -1
  518. package/dist/test/src/tools/debug.js +0 -37
  519. package/dist/test/src/types/cache.d.ts +0 -8
  520. package/dist/test/src/types/cache.d.ts.map +0 -1
  521. package/dist/test/src/types/cache.js +0 -5
  522. package/dist/test/src/types/collection.d.ts +0 -23
  523. package/dist/test/src/types/collection.d.ts.map +0 -1
  524. package/dist/test/src/types/collection.js +0 -5
  525. package/dist/test/src/types/elements/IElement.d.ts +0 -123
  526. package/dist/test/src/types/elements/IElement.d.ts.map +0 -1
  527. package/dist/test/src/types/elements/IElement.js +0 -30
  528. package/dist/test/src/types/elements/IElementManager.d.ts +0 -65
  529. package/dist/test/src/types/elements/IElementManager.d.ts.map +0 -1
  530. package/dist/test/src/types/elements/IElementManager.js +0 -6
  531. package/dist/test/src/types/elements/IRatingManager.d.ts +0 -109
  532. package/dist/test/src/types/elements/IRatingManager.d.ts.map +0 -1
  533. package/dist/test/src/types/elements/IRatingManager.js +0 -6
  534. package/dist/test/src/types/elements/IReferenceResolver.d.ts +0 -52
  535. package/dist/test/src/types/elements/IReferenceResolver.d.ts.map +0 -1
  536. package/dist/test/src/types/elements/IReferenceResolver.js +0 -6
  537. package/dist/test/src/types/elements/RatingBreakdowns.d.ts +0 -49
  538. package/dist/test/src/types/elements/RatingBreakdowns.d.ts.map +0 -1
  539. package/dist/test/src/types/elements/RatingBreakdowns.js +0 -6
  540. package/dist/test/src/types/elements/index.d.ts +0 -9
  541. package/dist/test/src/types/elements/index.d.ts.map +0 -1
  542. package/dist/test/src/types/elements/index.js +0 -11
  543. package/dist/test/src/types/index.d.ts +0 -9
  544. package/dist/test/src/types/index.d.ts.map +0 -1
  545. package/dist/test/src/types/index.js +0 -9
  546. package/dist/test/src/types/marketplace.d.ts +0 -23
  547. package/dist/test/src/types/marketplace.d.ts.map +0 -1
  548. package/dist/test/src/types/marketplace.js +0 -5
  549. package/dist/test/src/types/mcp.d.ts +0 -84
  550. package/dist/test/src/types/mcp.d.ts.map +0 -1
  551. package/dist/test/src/types/mcp.js +0 -80
  552. package/dist/test/src/types/persona.d.ts +0 -30
  553. package/dist/test/src/types/persona.d.ts.map +0 -1
  554. package/dist/test/src/types/persona.js +0 -5
  555. package/dist/test/src/update/BackupManager.d.ts +0 -46
  556. package/dist/test/src/update/BackupManager.d.ts.map +0 -1
  557. package/dist/test/src/update/BackupManager.js +0 -261
  558. package/dist/test/src/update/DependencyChecker.d.ts +0 -41
  559. package/dist/test/src/update/DependencyChecker.d.ts.map +0 -1
  560. package/dist/test/src/update/DependencyChecker.js +0 -132
  561. package/dist/test/src/update/RateLimiter.d.ts +0 -80
  562. package/dist/test/src/update/RateLimiter.d.ts.map +0 -1
  563. package/dist/test/src/update/RateLimiter.js +0 -172
  564. package/dist/test/src/update/SignatureVerifier.d.ts +0 -71
  565. package/dist/test/src/update/SignatureVerifier.d.ts.map +0 -1
  566. package/dist/test/src/update/SignatureVerifier.js +0 -214
  567. package/dist/test/src/update/UpdateChecker.d.ts +0 -127
  568. package/dist/test/src/update/UpdateChecker.d.ts.map +0 -1
  569. package/dist/test/src/update/UpdateChecker.js +0 -469
  570. package/dist/test/src/update/UpdateManager.d.ts +0 -41
  571. package/dist/test/src/update/UpdateManager.d.ts.map +0 -1
  572. package/dist/test/src/update/UpdateManager.js +0 -260
  573. package/dist/test/src/update/VersionManager.d.ts +0 -31
  574. package/dist/test/src/update/VersionManager.d.ts.map +0 -1
  575. package/dist/test/src/update/VersionManager.js +0 -134
  576. package/dist/test/src/update/index.d.ts +0 -9
  577. package/dist/test/src/update/index.d.ts.map +0 -1
  578. package/dist/test/src/update/index.js +0 -9
  579. package/dist/test/src/utils/filesystem.d.ts +0 -29
  580. package/dist/test/src/utils/filesystem.d.ts.map +0 -1
  581. package/dist/test/src/utils/filesystem.js +0 -94
  582. package/dist/test/src/utils/git.d.ts +0 -32
  583. package/dist/test/src/utils/git.d.ts.map +0 -1
  584. package/dist/test/src/utils/git.js +0 -65
  585. package/dist/test/src/utils/index.d.ts +0 -7
  586. package/dist/test/src/utils/index.d.ts.map +0 -1
  587. package/dist/test/src/utils/index.js +0 -7
  588. package/dist/test/src/utils/logger.d.ts +0 -45
  589. package/dist/test/src/utils/logger.d.ts.map +0 -1
  590. package/dist/test/src/utils/logger.js +0 -91
  591. package/dist/test/src/utils/version.d.ts +0 -25
  592. package/dist/test/src/utils/version.d.ts.map +0 -1
  593. package/dist/test/src/utils/version.js +0 -97
  594. package/dist/test/test/__tests__/integration/helpers/file-utils.d.ts +0 -33
  595. package/dist/test/test/__tests__/integration/helpers/file-utils.d.ts.map +0 -1
  596. package/dist/test/test/__tests__/integration/helpers/file-utils.js +0 -83
  597. package/dist/test/test/__tests__/integration/helpers/test-fixtures.d.ts +0 -26
  598. package/dist/test/test/__tests__/integration/helpers/test-fixtures.d.ts.map +0 -1
  599. package/dist/test/test/__tests__/integration/helpers/test-fixtures.js +0 -95
  600. package/dist/test/test/__tests__/integration/helpers/test-server.d.ts +0 -26
  601. package/dist/test/test/__tests__/integration/helpers/test-server.d.ts.map +0 -1
  602. package/dist/test/test/__tests__/integration/helpers/test-server.js +0 -41
  603. package/dist/test/test/__tests__/integration/setup.d.ts +0 -8
  604. package/dist/test/test/__tests__/integration/setup.d.ts.map +0 -1
  605. package/dist/test/test/__tests__/integration/setup.js +0 -31
  606. package/dist/test/test/__tests__/integration/teardown.d.ts +0 -5
  607. package/dist/test/test/__tests__/integration/teardown.d.ts.map +0 -1
  608. package/dist/test/test/__tests__/integration/teardown.js +0 -23
  609. package/dist/test/test/__tests__/security/framework/RapidSecurityTesting.d.ts +0 -34
  610. package/dist/test/test/__tests__/security/framework/RapidSecurityTesting.d.ts.map +0 -1
  611. package/dist/test/test/__tests__/security/framework/RapidSecurityTesting.js +0 -224
  612. package/dist/test/test/__tests__/security/framework/SecurityTestFramework.d.ts +0 -89
  613. package/dist/test/test/__tests__/security/framework/SecurityTestFramework.d.ts.map +0 -1
  614. package/dist/test/test/__tests__/security/framework/SecurityTestFramework.js +0 -543
  615. package/dist/test/test/__tests__/security/index.d.ts +0 -46
  616. package/dist/test/test/__tests__/security/index.d.ts.map +0 -1
  617. package/dist/test/test/__tests__/security/index.js +0 -98
  618. package/dist/test/test/__tests__/security/setup.d.ts +0 -3
  619. package/dist/test/test/__tests__/security/setup.d.ts.map +0 -1
  620. package/dist/test/test/__tests__/security/setup.js +0 -23
  621. package/dist/types/marketplace.d.ts +0 -23
  622. package/dist/types/marketplace.d.ts.map +0 -1
  623. package/dist/types/marketplace.js +0 -5
@@ -1,244 +0,0 @@
1
- /**
2
- * Security Rules - Defines security patterns and checks
3
- * Based on OWASP Top 10, CWE Top 25, and DollhouseMCP-specific security requirements
4
- */
5
- export class SecurityRules {
6
- /**
7
- * OWASP Top 10 security rules
8
- */
9
- getOWASPRules() {
10
- return [
11
- {
12
- id: 'OWASP-A01-001',
13
- name: 'Hardcoded Secrets',
14
- description: 'Potential hardcoded secret or API key detected',
15
- severity: 'critical',
16
- category: 'code',
17
- pattern: /(?:api[_-]?key|secret|password|token|private[_-]?key)\s*[:=]\s*["'][a-zA-Z0-9+/=_-]{10,}["']/gi,
18
- remediation: 'Use environment variables or secure key management services instead of hardcoding secrets',
19
- references: ['https://owasp.org/Top10/A01_2021-Broken_Access_Control/'],
20
- tags: ['high-confidence']
21
- },
22
- {
23
- id: 'OWASP-A03-001',
24
- name: 'SQL Injection',
25
- description: 'Potential SQL injection vulnerability',
26
- severity: 'critical',
27
- category: 'code',
28
- pattern: /(?:query|execute)\s*\(\s*['"`].*\$\{[^}]+\}.*['"`]|['"`].*\+\s*[a-zA-Z_]\w*\s*\+.*['"`]\s*\)/g,
29
- remediation: 'Use parameterized queries or prepared statements',
30
- references: ['https://owasp.org/Top10/A03_2021-Injection/']
31
- },
32
- {
33
- id: 'OWASP-A03-002',
34
- name: 'Command Injection',
35
- description: 'Potential command injection vulnerability',
36
- severity: 'critical',
37
- category: 'code',
38
- pattern: /(?:exec|spawn|execSync|spawnSync)\s*\([^)]*(?:\$\{[^}]+\}|\+\s*[a-zA-Z_]\w*)/g,
39
- remediation: 'Validate and sanitize all user input before using in system commands',
40
- references: ['https://owasp.org/Top10/A03_2021-Injection/']
41
- },
42
- {
43
- id: 'OWASP-A03-003',
44
- name: 'Path Traversal',
45
- description: 'Potential path traversal vulnerability',
46
- severity: 'high',
47
- category: 'code',
48
- pattern: /(?:readFile|writeFile|readdir|mkdir|rm|unlink)[^(]*\([^)]*(?:\.\.[/\\].*\+|\+.*\.\.[/\\])/g,
49
- remediation: 'Validate and sanitize file paths, use path.resolve() and check against allowed directories',
50
- references: ['https://owasp.org/Top10/A03_2021-Injection/']
51
- },
52
- {
53
- id: 'OWASP-A03-004',
54
- name: 'XSS - Direct HTML Injection',
55
- description: 'Potential XSS vulnerability through direct HTML injection',
56
- severity: 'high',
57
- category: 'code',
58
- pattern: /innerHTML\s*=\s*[^'"`]*\$\{|dangerouslySetInnerHTML/g,
59
- remediation: 'Use textContent or proper HTML escaping functions',
60
- references: ['https://owasp.org/Top10/A03_2021-Injection/']
61
- },
62
- {
63
- id: 'OWASP-A05-001',
64
- name: 'Insecure Configuration',
65
- description: 'Security-sensitive configuration detected',
66
- severity: 'medium',
67
- category: 'code',
68
- pattern: /(?:NODE_TLS_REJECT_UNAUTHORIZED|strictSSL|rejectUnauthorized)\s*[:=]\s*(?:false|0|["']false["']|["']0["'])/gi,
69
- remediation: 'Enable SSL/TLS certificate validation in production',
70
- references: ['https://owasp.org/Top10/A05_2021-Security_Misconfiguration/']
71
- },
72
- {
73
- id: 'OWASP-A07-001',
74
- name: 'Weak Authentication',
75
- description: 'Potential weak authentication mechanism',
76
- severity: 'high',
77
- category: 'code',
78
- pattern: /(?:md5|sha1)\s*\(/gi,
79
- remediation: 'Use strong hashing algorithms like bcrypt, scrypt, or Argon2 for passwords',
80
- references: ['https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures/']
81
- }
82
- ];
83
- }
84
- /**
85
- * CWE Top 25 security rules
86
- */
87
- getCWERules() {
88
- return [
89
- {
90
- id: 'CWE-79-001',
91
- name: 'Reflected XSS',
92
- description: 'User input reflected without encoding',
93
- severity: 'high',
94
- category: 'code',
95
- pattern: /res\.(?:send|write|end)\s*\([^)]*(?:req\.(?:query|params|body)|request\.)/g,
96
- remediation: 'Encode all user input before reflecting in responses',
97
- references: ['https://cwe.mitre.org/data/definitions/79.html']
98
- },
99
- {
100
- id: 'CWE-89-001',
101
- name: 'SQL String Concatenation',
102
- description: 'SQL query built using string concatenation',
103
- severity: 'critical',
104
- category: 'code',
105
- pattern: /["'`].*(?:SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER).*["'`]\s*\+\s*\w+/gi,
106
- remediation: 'Use parameterized queries instead of string concatenation',
107
- references: ['https://cwe.mitre.org/data/definitions/89.html']
108
- },
109
- {
110
- id: 'CWE-22-001',
111
- name: 'Path Manipulation',
112
- description: 'File path constructed from user input',
113
- severity: 'high',
114
- category: 'code',
115
- pattern: /path\.join\s*\([^)]*(?:req\.|request\.|params|query|body)/g,
116
- remediation: 'Validate paths against a whitelist and use path.resolve()',
117
- references: ['https://cwe.mitre.org/data/definitions/22.html']
118
- },
119
- {
120
- id: 'CWE-798-001',
121
- name: 'Hardcoded Credentials',
122
- description: 'Credentials hardcoded in source',
123
- severity: 'critical',
124
- category: 'code',
125
- pattern: /(?:username|user|login)\s*[:=]\s*["'][^"']+["'].*(?:password|pass|pwd)\s*[:=]\s*["'][^"']+["']/gi,
126
- remediation: 'Store credentials in environment variables or secure vaults',
127
- references: ['https://cwe.mitre.org/data/definitions/798.html']
128
- }
129
- ];
130
- }
131
- /**
132
- * DollhouseMCP-specific security rules
133
- */
134
- getDollhouseMCPRules() {
135
- return [
136
- {
137
- id: 'DMCP-SEC-001',
138
- name: 'Unsafe Persona Loading',
139
- description: 'Persona loaded without validation',
140
- severity: 'high',
141
- category: 'custom',
142
- pattern: /loadPersona\s*\([^)]*\)\s*(?!.*validate)/g,
143
- remediation: 'Always validate personas before loading using PersonaValidator',
144
- references: ['DollhouseMCP Security Guidelines']
145
- },
146
- {
147
- id: 'DMCP-SEC-002',
148
- name: 'Token Validation Bypass',
149
- description: 'Token used without validation',
150
- severity: 'critical',
151
- category: 'custom',
152
- pattern: /(?:getToken|useToken|token\.use)\s*\([^)]*\)(?!.*(?:validate|verify|check))/gi,
153
- remediation: 'Always validate tokens using TokenManager.validateToken()',
154
- references: ['DollhouseMCP Security Guidelines']
155
- },
156
- {
157
- id: 'DMCP-SEC-003',
158
- name: 'Rate Limiting Missing',
159
- description: 'API endpoint without rate limiting',
160
- severity: 'medium',
161
- category: 'custom',
162
- check: (content, context) => {
163
- const findings = [];
164
- // Check for MCP tool handlers without rate limiting
165
- const toolPattern = /name:\s*["']([^"']+)["'].*handle:/gs;
166
- const hasRateLimit = /rateLimiter|checkRateLimit|tokenBucket/i.test(content);
167
- if (toolPattern.test(content) && !hasRateLimit) {
168
- findings.push({
169
- ruleId: 'DMCP-SEC-003',
170
- severity: 'medium',
171
- message: 'MCP tool handler without rate limiting',
172
- remediation: 'Add rate limiting to prevent abuse',
173
- confidence: 'high'
174
- });
175
- }
176
- return findings;
177
- },
178
- remediation: 'Implement rate limiting for all MCP tools',
179
- references: ['Issue #174 - Rate Limiting Implementation']
180
- },
181
- {
182
- id: 'DMCP-SEC-004',
183
- name: 'Unicode Validation Missing',
184
- description: 'User input processed without Unicode normalization',
185
- severity: 'medium',
186
- category: 'custom',
187
- check: (content, context) => {
188
- const findings = [];
189
- // Check for user input processing without Unicode validation
190
- const inputPattern = /(?:req\.|request\.|params|query|body|content)/;
191
- const hasUnicodeCheck = /UnicodeValidator|normalizeUnicode/i.test(content);
192
- if (inputPattern.test(content) && !hasUnicodeCheck) {
193
- findings.push({
194
- ruleId: 'DMCP-SEC-004',
195
- severity: 'medium',
196
- message: 'User input processed without Unicode normalization',
197
- remediation: 'Use UnicodeValidator.normalize() on all user input',
198
- confidence: 'medium'
199
- });
200
- }
201
- return findings;
202
- },
203
- remediation: 'Apply Unicode normalization to prevent bypass attacks',
204
- references: ['Issue #162 - Unicode Normalization']
205
- },
206
- {
207
- id: 'DMCP-SEC-005',
208
- name: 'Unvalidated YAML Content',
209
- description: 'YAML content parsed without security validation',
210
- severity: 'high',
211
- category: 'custom',
212
- pattern: /yaml\.load\s*\(|parse\s*\([^)]*\.ya?ml/gi,
213
- remediation: 'Use SecureYamlParser for all YAML parsing',
214
- references: ['DollhouseMCP Security Guidelines']
215
- },
216
- {
217
- id: 'DMCP-SEC-006',
218
- name: 'Security Event Not Logged',
219
- description: 'Security-relevant operation without logging',
220
- severity: 'low',
221
- category: 'custom',
222
- check: (content, context) => {
223
- const findings = [];
224
- // Check for security operations without logging
225
- const securityOps = /(?:authenticate|authorize|validate|sanitize|encrypt|decrypt)/i;
226
- const hasLogging = /SecurityMonitor\.log|logSecurityEvent/i.test(content);
227
- if (securityOps.test(content) && !hasLogging) {
228
- findings.push({
229
- ruleId: 'DMCP-SEC-006',
230
- severity: 'low',
231
- message: 'Security operation without audit logging',
232
- remediation: 'Add SecurityMonitor.logSecurityEvent() for audit trail',
233
- confidence: 'medium'
234
- });
235
- }
236
- return findings;
237
- },
238
- remediation: 'Log all security-relevant operations for audit trail',
239
- references: ['DollhouseMCP Security Guidelines']
240
- }
241
- ];
242
- }
243
- }
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjdXJpdHlSdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZWN1cml0eS9hdWRpdC9ydWxlcy9TZWN1cml0eVJ1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBQ3hCOztPQUVHO0lBQ0gsYUFBYTtRQUNYLE9BQU87WUFDTDtnQkFDRSxFQUFFLEVBQUUsZUFBZTtnQkFDbkIsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsV0FBVyxFQUFFLGdEQUFnRDtnQkFDN0QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixPQUFPLEVBQUUsZ0dBQWdHO2dCQUN6RyxXQUFXLEVBQUUsMkZBQTJGO2dCQUN4RyxVQUFVLEVBQUUsQ0FBQyx5REFBeUQsQ0FBQztnQkFDdkUsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDMUI7WUFDRDtnQkFDRSxFQUFFLEVBQUUsZUFBZTtnQkFDbkIsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLFdBQVcsRUFBRSx1Q0FBdUM7Z0JBQ3BELFFBQVEsRUFBRSxVQUFVO2dCQUNwQixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsT0FBTyxFQUFFLCtGQUErRjtnQkFDeEcsV0FBVyxFQUFFLGtEQUFrRDtnQkFDL0QsVUFBVSxFQUFFLENBQUMsNkNBQTZDLENBQUM7YUFDNUQ7WUFDRDtnQkFDRSxFQUFFLEVBQUUsZUFBZTtnQkFDbkIsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsV0FBVyxFQUFFLDJDQUEyQztnQkFDeEQsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixPQUFPLEVBQUUsK0VBQStFO2dCQUN4RixXQUFXLEVBQUUsc0VBQXNFO2dCQUNuRixVQUFVLEVBQUUsQ0FBQyw2Q0FBNkMsQ0FBQzthQUM1RDtZQUNEO2dCQUNFLEVBQUUsRUFBRSxlQUFlO2dCQUNuQixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixXQUFXLEVBQUUsd0NBQXdDO2dCQUNyRCxRQUFRLEVBQUUsTUFBTTtnQkFDaEIsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLE9BQU8sRUFBRSw0RkFBNEY7Z0JBQ3JHLFdBQVcsRUFBRSw0RkFBNEY7Z0JBQ3pHLFVBQVUsRUFBRSxDQUFDLDZDQUE2QyxDQUFDO2FBQzVEO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLGVBQWU7Z0JBQ25CLElBQUksRUFBRSw2QkFBNkI7Z0JBQ25DLFdBQVcsRUFBRSwyREFBMkQ7Z0JBQ3hFLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsT0FBTyxFQUFFLHNEQUFzRDtnQkFDL0QsV0FBVyxFQUFFLG1EQUFtRDtnQkFDaEUsVUFBVSxFQUFFLENBQUMsNkNBQTZDLENBQUM7YUFDNUQ7WUFDRDtnQkFDRSxFQUFFLEVBQUUsZUFBZTtnQkFDbkIsSUFBSSxFQUFFLHdCQUF3QjtnQkFDOUIsV0FBVyxFQUFFLDJDQUEyQztnQkFDeEQsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixPQUFPLEVBQUUsOEdBQThHO2dCQUN2SCxXQUFXLEVBQUUscURBQXFEO2dCQUNsRSxVQUFVLEVBQUUsQ0FBQyw2REFBNkQsQ0FBQzthQUM1RTtZQUNEO2dCQUNFLEVBQUUsRUFBRSxlQUFlO2dCQUNuQixJQUFJLEVBQUUscUJBQXFCO2dCQUMzQixXQUFXLEVBQUUseUNBQXlDO2dCQUN0RCxRQUFRLEVBQUUsTUFBTTtnQkFDaEIsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSw0RUFBNEU7Z0JBQ3pGLFVBQVUsRUFBRSxDQUFDLDhFQUE4RSxDQUFDO2FBQzdGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxPQUFPO1lBQ0w7Z0JBQ0UsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLElBQUksRUFBRSxlQUFlO2dCQUNyQixXQUFXLEVBQUUsdUNBQXVDO2dCQUNwRCxRQUFRLEVBQUUsTUFBTTtnQkFDaEIsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLE9BQU8sRUFBRSw0RUFBNEU7Z0JBQ3JGLFdBQVcsRUFBRSxzREFBc0Q7Z0JBQ25FLFVBQVUsRUFBRSxDQUFDLGdEQUFnRCxDQUFDO2FBQy9EO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLElBQUksRUFBRSwwQkFBMEI7Z0JBQ2hDLFdBQVcsRUFBRSw0Q0FBNEM7Z0JBQ3pELFFBQVEsRUFBRSxVQUFVO2dCQUNwQixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsT0FBTyxFQUFFLDhFQUE4RTtnQkFDdkYsV0FBVyxFQUFFLDJEQUEyRDtnQkFDeEUsVUFBVSxFQUFFLENBQUMsZ0RBQWdELENBQUM7YUFDL0Q7WUFDRDtnQkFDRSxFQUFFLEVBQUUsWUFBWTtnQkFDaEIsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsV0FBVyxFQUFFLHVDQUF1QztnQkFDcEQsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixPQUFPLEVBQUUsNERBQTREO2dCQUNyRSxXQUFXLEVBQUUsMkRBQTJEO2dCQUN4RSxVQUFVLEVBQUUsQ0FBQyxnREFBZ0QsQ0FBQzthQUMvRDtZQUNEO2dCQUNFLEVBQUUsRUFBRSxhQUFhO2dCQUNqQixJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLE9BQU8sRUFBRSxrR0FBa0c7Z0JBQzNHLFdBQVcsRUFBRSw2REFBNkQ7Z0JBQzFFLFVBQVUsRUFBRSxDQUFDLGlEQUFpRCxDQUFDO2FBQ2hFO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQjtRQUNsQixPQUFPO1lBQ0w7Z0JBQ0UsRUFBRSxFQUFFLGNBQWM7Z0JBQ2xCLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLFdBQVcsRUFBRSxtQ0FBbUM7Z0JBQ2hELFFBQVEsRUFBRSxNQUFNO2dCQUNoQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsT0FBTyxFQUFFLDJDQUEyQztnQkFDcEQsV0FBVyxFQUFFLGdFQUFnRTtnQkFDN0UsVUFBVSxFQUFFLENBQUMsa0NBQWtDLENBQUM7YUFDakQ7WUFDRDtnQkFDRSxFQUFFLEVBQUUsY0FBYztnQkFDbEIsSUFBSSxFQUFFLHlCQUF5QjtnQkFDL0IsV0FBVyxFQUFFLCtCQUErQjtnQkFDNUMsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixPQUFPLEVBQUUsK0VBQStFO2dCQUN4RixXQUFXLEVBQUUsMkRBQTJEO2dCQUN4RSxVQUFVLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQzthQUNqRDtZQUNEO2dCQUNFLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixXQUFXLEVBQUUsb0NBQW9DO2dCQUNqRCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtvQkFDMUIsTUFBTSxRQUFRLEdBQXNCLEVBQUUsQ0FBQztvQkFDdkMsb0RBQW9EO29CQUNwRCxNQUFNLFdBQVcsR0FBRyxxQ0FBcUMsQ0FBQztvQkFDMUQsTUFBTSxZQUFZLEdBQUcseUNBQXlDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUU3RSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzt3QkFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQzs0QkFDWixNQUFNLEVBQUUsY0FBYzs0QkFDdEIsUUFBUSxFQUFFLFFBQWlCOzRCQUMzQixPQUFPLEVBQUUsd0NBQXdDOzRCQUNqRCxXQUFXLEVBQUUsb0NBQW9DOzRCQUNqRCxVQUFVLEVBQUUsTUFBZTt5QkFDNUIsQ0FBQyxDQUFDO29CQUNMLENBQUM7b0JBRUQsT0FBTyxRQUFRLENBQUM7Z0JBQ2xCLENBQUM7Z0JBQ0QsV0FBVyxFQUFFLDJDQUEyQztnQkFDeEQsVUFBVSxFQUFFLENBQUMsMkNBQTJDLENBQUM7YUFDMUQ7WUFDRDtnQkFDRSxFQUFFLEVBQUUsY0FBYztnQkFDbEIsSUFBSSxFQUFFLDRCQUE0QjtnQkFDbEMsV0FBVyxFQUFFLG9EQUFvRDtnQkFDakUsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7b0JBQzFCLE1BQU0sUUFBUSxHQUFzQixFQUFFLENBQUM7b0JBQ3ZDLDZEQUE2RDtvQkFDN0QsTUFBTSxZQUFZLEdBQUcsK0NBQStDLENBQUM7b0JBQ3JFLE1BQU0sZUFBZSxHQUFHLG9DQUFvQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFFM0UsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7d0JBQ25ELFFBQVEsQ0FBQyxJQUFJLENBQUM7NEJBQ1osTUFBTSxFQUFFLGNBQWM7NEJBQ3RCLFFBQVEsRUFBRSxRQUFpQjs0QkFDM0IsT0FBTyxFQUFFLG9EQUFvRDs0QkFDN0QsV0FBVyxFQUFFLG9EQUFvRDs0QkFDakUsVUFBVSxFQUFFLFFBQWlCO3lCQUM5QixDQUFDLENBQUM7b0JBQ0wsQ0FBQztvQkFFRCxPQUFPLFFBQVEsQ0FBQztnQkFDbEIsQ0FBQztnQkFDRCxXQUFXLEVBQUUsdURBQXVEO2dCQUNwRSxVQUFVLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQzthQUNuRDtZQUNEO2dCQUNFLEVBQUUsRUFBRSxjQUFjO2dCQUNsQixJQUFJLEVBQUUsMEJBQTBCO2dCQUNoQyxXQUFXLEVBQUUsaURBQWlEO2dCQUM5RCxRQUFRLEVBQUUsTUFBTTtnQkFDaEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLE9BQU8sRUFBRSwwQ0FBMEM7Z0JBQ25ELFdBQVcsRUFBRSwyQ0FBMkM7Z0JBQ3hELFVBQVUsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2FBQ2pEO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLGNBQWM7Z0JBQ2xCLElBQUksRUFBRSwyQkFBMkI7Z0JBQ2pDLFdBQVcsRUFBRSw2Q0FBNkM7Z0JBQzFELFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7b0JBQzFCLE1BQU0sUUFBUSxHQUFzQixFQUFFLENBQUM7b0JBQ3ZDLGdEQUFnRDtvQkFDaEQsTUFBTSxXQUFXLEdBQUcsK0RBQStELENBQUM7b0JBQ3BGLE1BQU0sVUFBVSxHQUFHLHdDQUF3QyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFFMUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7d0JBQzdDLFFBQVEsQ0FBQyxJQUFJLENBQUM7NEJBQ1osTUFBTSxFQUFFLGNBQWM7NEJBQ3RCLFFBQVEsRUFBRSxLQUFjOzRCQUN4QixPQUFPLEVBQUUsMENBQTBDOzRCQUNuRCxXQUFXLEVBQUUsd0RBQXdEOzRCQUNyRSxVQUFVLEVBQUUsUUFBaUI7eUJBQzlCLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUVELE9BQU8sUUFBUSxDQUFDO2dCQUNsQixDQUFDO2dCQUNELFdBQVcsRUFBRSxzREFBc0Q7Z0JBQ25FLFVBQVUsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2FBQ2pEO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VjdXJpdHkgUnVsZXMgLSBEZWZpbmVzIHNlY3VyaXR5IHBhdHRlcm5zIGFuZCBjaGVja3NcbiAqIEJhc2VkIG9uIE9XQVNQIFRvcCAxMCwgQ1dFIFRvcCAyNSwgYW5kIERvbGxob3VzZU1DUC1zcGVjaWZpYyBzZWN1cml0eSByZXF1aXJlbWVudHNcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNlY3VyaXR5UnVsZSwgU2VjdXJpdHlGaW5kaW5nIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlSdWxlcyB7XG4gIC8qKlxuICAgKiBPV0FTUCBUb3AgMTAgc2VjdXJpdHkgcnVsZXNcbiAgICovXG4gIGdldE9XQVNQUnVsZXMoKTogU2VjdXJpdHlSdWxlW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnT1dBU1AtQTAxLTAwMScsXG4gICAgICAgIG5hbWU6ICdIYXJkY29kZWQgU2VjcmV0cycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUG90ZW50aWFsIGhhcmRjb2RlZCBzZWNyZXQgb3IgQVBJIGtleSBkZXRlY3RlZCcsXG4gICAgICAgIHNldmVyaXR5OiAnY3JpdGljYWwnLFxuICAgICAgICBjYXRlZ29yeTogJ2NvZGUnLFxuICAgICAgICBwYXR0ZXJuOiAvKD86YXBpW18tXT9rZXl8c2VjcmV0fHBhc3N3b3JkfHRva2VufHByaXZhdGVbXy1dP2tleSlcXHMqWzo9XVxccypbXCInXVthLXpBLVowLTkrLz1fLV17MTAsfVtcIiddL2dpLFxuICAgICAgICByZW1lZGlhdGlvbjogJ1VzZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb3Igc2VjdXJlIGtleSBtYW5hZ2VtZW50IHNlcnZpY2VzIGluc3RlYWQgb2YgaGFyZGNvZGluZyBzZWNyZXRzJyxcbiAgICAgICAgcmVmZXJlbmNlczogWydodHRwczovL293YXNwLm9yZy9Ub3AxMC9BMDFfMjAyMS1Ccm9rZW5fQWNjZXNzX0NvbnRyb2wvJ10sXG4gICAgICAgIHRhZ3M6IFsnaGlnaC1jb25maWRlbmNlJ11cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnT1dBU1AtQTAzLTAwMScsXG4gICAgICAgIG5hbWU6ICdTUUwgSW5qZWN0aW9uJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdQb3RlbnRpYWwgU1FMIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5JyxcbiAgICAgICAgc2V2ZXJpdHk6ICdjcml0aWNhbCcsXG4gICAgICAgIGNhdGVnb3J5OiAnY29kZScsXG4gICAgICAgIHBhdHRlcm46IC8oPzpxdWVyeXxleGVjdXRlKVxccypcXChcXHMqWydcImBdLipcXCRcXHtbXn1dK1xcfS4qWydcImBdfFsnXCJgXS4qXFwrXFxzKlthLXpBLVpfXVxcdypcXHMqXFwrLipbJ1wiYF1cXHMqXFwpL2csXG4gICAgICAgIHJlbWVkaWF0aW9uOiAnVXNlIHBhcmFtZXRlcml6ZWQgcXVlcmllcyBvciBwcmVwYXJlZCBzdGF0ZW1lbnRzJyxcbiAgICAgICAgcmVmZXJlbmNlczogWydodHRwczovL293YXNwLm9yZy9Ub3AxMC9BMDNfMjAyMS1JbmplY3Rpb24vJ11cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgICAgIG5hbWU6ICdDb21tYW5kIEluamVjdGlvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUG90ZW50aWFsIGNvbW1hbmQgaW5qZWN0aW9uIHZ1bG5lcmFiaWxpdHknLFxuICAgICAgICBzZXZlcml0eTogJ2NyaXRpY2FsJyxcbiAgICAgICAgY2F0ZWdvcnk6ICdjb2RlJyxcbiAgICAgICAgcGF0dGVybjogLyg/OmV4ZWN8c3Bhd258ZXhlY1N5bmN8c3Bhd25TeW5jKVxccypcXChbXildKig/OlxcJFxce1tefV0rXFx9fFxcK1xccypbYS16QS1aX11cXHcqKS9nLFxuICAgICAgICByZW1lZGlhdGlvbjogJ1ZhbGlkYXRlIGFuZCBzYW5pdGl6ZSBhbGwgdXNlciBpbnB1dCBiZWZvcmUgdXNpbmcgaW4gc3lzdGVtIGNvbW1hbmRzJyxcbiAgICAgICAgcmVmZXJlbmNlczogWydodHRwczovL293YXNwLm9yZy9Ub3AxMC9BMDNfMjAyMS1JbmplY3Rpb24vJ11cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnT1dBU1AtQTAzLTAwMycsXG4gICAgICAgIG5hbWU6ICdQYXRoIFRyYXZlcnNhbCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUG90ZW50aWFsIHBhdGggdHJhdmVyc2FsIHZ1bG5lcmFiaWxpdHknLFxuICAgICAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgICAgICBjYXRlZ29yeTogJ2NvZGUnLFxuICAgICAgICBwYXR0ZXJuOiAvKD86cmVhZEZpbGV8d3JpdGVGaWxlfHJlYWRkaXJ8bWtkaXJ8cm18dW5saW5rKVteKF0qXFwoW14pXSooPzpcXC5cXC5bL1xcXFxdLipcXCt8XFwrLipcXC5cXC5bL1xcXFxdKS9nLFxuICAgICAgICByZW1lZGlhdGlvbjogJ1ZhbGlkYXRlIGFuZCBzYW5pdGl6ZSBmaWxlIHBhdGhzLCB1c2UgcGF0aC5yZXNvbHZlKCkgYW5kIGNoZWNrIGFnYWluc3QgYWxsb3dlZCBkaXJlY3RvcmllcycsXG4gICAgICAgIHJlZmVyZW5jZXM6IFsnaHR0cHM6Ly9vd2FzcC5vcmcvVG9wMTAvQTAzXzIwMjEtSW5qZWN0aW9uLyddXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ09XQVNQLUEwMy0wMDQnLFxuICAgICAgICBuYW1lOiAnWFNTIC0gRGlyZWN0IEhUTUwgSW5qZWN0aW9uJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdQb3RlbnRpYWwgWFNTIHZ1bG5lcmFiaWxpdHkgdGhyb3VnaCBkaXJlY3QgSFRNTCBpbmplY3Rpb24nLFxuICAgICAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgICAgICBjYXRlZ29yeTogJ2NvZGUnLFxuICAgICAgICBwYXR0ZXJuOiAvaW5uZXJIVE1MXFxzKj1cXHMqW14nXCJgXSpcXCRcXHt8ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwvZyxcbiAgICAgICAgcmVtZWRpYXRpb246ICdVc2UgdGV4dENvbnRlbnQgb3IgcHJvcGVyIEhUTUwgZXNjYXBpbmcgZnVuY3Rpb25zJyxcbiAgICAgICAgcmVmZXJlbmNlczogWydodHRwczovL293YXNwLm9yZy9Ub3AxMC9BMDNfMjAyMS1JbmplY3Rpb24vJ11cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnT1dBU1AtQTA1LTAwMScsXG4gICAgICAgIG5hbWU6ICdJbnNlY3VyZSBDb25maWd1cmF0aW9uJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdTZWN1cml0eS1zZW5zaXRpdmUgY29uZmlndXJhdGlvbiBkZXRlY3RlZCcsXG4gICAgICAgIHNldmVyaXR5OiAnbWVkaXVtJyxcbiAgICAgICAgY2F0ZWdvcnk6ICdjb2RlJyxcbiAgICAgICAgcGF0dGVybjogLyg/Ok5PREVfVExTX1JFSkVDVF9VTkFVVEhPUklaRUR8c3RyaWN0U1NMfHJlamVjdFVuYXV0aG9yaXplZClcXHMqWzo9XVxccyooPzpmYWxzZXwwfFtcIiddZmFsc2VbXCInXXxbXCInXTBbXCInXSkvZ2ksXG4gICAgICAgIHJlbWVkaWF0aW9uOiAnRW5hYmxlIFNTTC9UTFMgY2VydGlmaWNhdGUgdmFsaWRhdGlvbiBpbiBwcm9kdWN0aW9uJyxcbiAgICAgICAgcmVmZXJlbmNlczogWydodHRwczovL293YXNwLm9yZy9Ub3AxMC9BMDVfMjAyMS1TZWN1cml0eV9NaXNjb25maWd1cmF0aW9uLyddXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ09XQVNQLUEwNy0wMDEnLFxuICAgICAgICBuYW1lOiAnV2VhayBBdXRoZW50aWNhdGlvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUG90ZW50aWFsIHdlYWsgYXV0aGVudGljYXRpb24gbWVjaGFuaXNtJyxcbiAgICAgICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICAgICAgY2F0ZWdvcnk6ICdjb2RlJyxcbiAgICAgICAgcGF0dGVybjogLyg/Om1kNXxzaGExKVxccypcXCgvZ2ksXG4gICAgICAgIHJlbWVkaWF0aW9uOiAnVXNlIHN0cm9uZyBoYXNoaW5nIGFsZ29yaXRobXMgbGlrZSBiY3J5cHQsIHNjcnlwdCwgb3IgQXJnb24yIGZvciBwYXNzd29yZHMnLFxuICAgICAgICByZWZlcmVuY2VzOiBbJ2h0dHBzOi8vb3dhc3Aub3JnL1RvcDEwL0EwN18yMDIxLUlkZW50aWZpY2F0aW9uX2FuZF9BdXRoZW50aWNhdGlvbl9GYWlsdXJlcy8nXVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogQ1dFIFRvcCAyNSBzZWN1cml0eSBydWxlc1xuICAgKi9cbiAgZ2V0Q1dFUnVsZXMoKTogU2VjdXJpdHlSdWxlW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnQ1dFLTc5LTAwMScsXG4gICAgICAgIG5hbWU6ICdSZWZsZWN0ZWQgWFNTJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHJlZmxlY3RlZCB3aXRob3V0IGVuY29kaW5nJyxcbiAgICAgICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICAgICAgY2F0ZWdvcnk6ICdjb2RlJyxcbiAgICAgICAgcGF0dGVybjogL3Jlc1xcLig/OnNlbmR8d3JpdGV8ZW5kKVxccypcXChbXildKig/OnJlcVxcLig/OnF1ZXJ5fHBhcmFtc3xib2R5KXxyZXF1ZXN0XFwuKS9nLFxuICAgICAgICByZW1lZGlhdGlvbjogJ0VuY29kZSBhbGwgdXNlciBpbnB1dCBiZWZvcmUgcmVmbGVjdGluZyBpbiByZXNwb25zZXMnLFxuICAgICAgICByZWZlcmVuY2VzOiBbJ2h0dHBzOi8vY3dlLm1pdHJlLm9yZy9kYXRhL2RlZmluaXRpb25zLzc5Lmh0bWwnXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdDV0UtODktMDAxJyxcbiAgICAgICAgbmFtZTogJ1NRTCBTdHJpbmcgQ29uY2F0ZW5hdGlvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnU1FMIHF1ZXJ5IGJ1aWx0IHVzaW5nIHN0cmluZyBjb25jYXRlbmF0aW9uJyxcbiAgICAgICAgc2V2ZXJpdHk6ICdjcml0aWNhbCcsXG4gICAgICAgIGNhdGVnb3J5OiAnY29kZScsXG4gICAgICAgIHBhdHRlcm46IC9bXCInYF0uKig/OlNFTEVDVHxJTlNFUlR8VVBEQVRFfERFTEVURXxEUk9QfENSRUFURXxBTFRFUikuKltcIidgXVxccypcXCtcXHMqXFx3Ky9naSxcbiAgICAgICAgcmVtZWRpYXRpb246ICdVc2UgcGFyYW1ldGVyaXplZCBxdWVyaWVzIGluc3RlYWQgb2Ygc3RyaW5nIGNvbmNhdGVuYXRpb24nLFxuICAgICAgICByZWZlcmVuY2VzOiBbJ2h0dHBzOi8vY3dlLm1pdHJlLm9yZy9kYXRhL2RlZmluaXRpb25zLzg5Lmh0bWwnXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdDV0UtMjItMDAxJyxcbiAgICAgICAgbmFtZTogJ1BhdGggTWFuaXB1bGF0aW9uJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWxlIHBhdGggY29uc3RydWN0ZWQgZnJvbSB1c2VyIGlucHV0JyxcbiAgICAgICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICAgICAgY2F0ZWdvcnk6ICdjb2RlJyxcbiAgICAgICAgcGF0dGVybjogL3BhdGhcXC5qb2luXFxzKlxcKFteKV0qKD86cmVxXFwufHJlcXVlc3RcXC58cGFyYW1zfHF1ZXJ5fGJvZHkpL2csXG4gICAgICAgIHJlbWVkaWF0aW9uOiAnVmFsaWRhdGUgcGF0aHMgYWdhaW5zdCBhIHdoaXRlbGlzdCBhbmQgdXNlIHBhdGgucmVzb2x2ZSgpJyxcbiAgICAgICAgcmVmZXJlbmNlczogWydodHRwczovL2N3ZS5taXRyZS5vcmcvZGF0YS9kZWZpbml0aW9ucy8yMi5odG1sJ11cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnQ1dFLTc5OC0wMDEnLFxuICAgICAgICBuYW1lOiAnSGFyZGNvZGVkIENyZWRlbnRpYWxzJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdDcmVkZW50aWFscyBoYXJkY29kZWQgaW4gc291cmNlJyxcbiAgICAgICAgc2V2ZXJpdHk6ICdjcml0aWNhbCcsXG4gICAgICAgIGNhdGVnb3J5OiAnY29kZScsXG4gICAgICAgIHBhdHRlcm46IC8oPzp1c2VybmFtZXx1c2VyfGxvZ2luKVxccypbOj1dXFxzKltcIiddW15cIiddK1tcIiddLiooPzpwYXNzd29yZHxwYXNzfHB3ZClcXHMqWzo9XVxccypbXCInXVteXCInXStbXCInXS9naSxcbiAgICAgICAgcmVtZWRpYXRpb246ICdTdG9yZSBjcmVkZW50aWFscyBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb3Igc2VjdXJlIHZhdWx0cycsXG4gICAgICAgIHJlZmVyZW5jZXM6IFsnaHR0cHM6Ly9jd2UubWl0cmUub3JnL2RhdGEvZGVmaW5pdGlvbnMvNzk4Lmh0bWwnXVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogRG9sbGhvdXNlTUNQLXNwZWNpZmljIHNlY3VyaXR5IHJ1bGVzXG4gICAqL1xuICBnZXREb2xsaG91c2VNQ1BSdWxlcygpOiBTZWN1cml0eVJ1bGVbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdETUNQLVNFQy0wMDEnLFxuICAgICAgICBuYW1lOiAnVW5zYWZlIFBlcnNvbmEgTG9hZGluZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUGVyc29uYSBsb2FkZWQgd2l0aG91dCB2YWxpZGF0aW9uJyxcbiAgICAgICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICAgICAgY2F0ZWdvcnk6ICdjdXN0b20nLFxuICAgICAgICBwYXR0ZXJuOiAvbG9hZFBlcnNvbmFcXHMqXFwoW14pXSpcXClcXHMqKD8hLip2YWxpZGF0ZSkvZyxcbiAgICAgICAgcmVtZWRpYXRpb246ICdBbHdheXMgdmFsaWRhdGUgcGVyc29uYXMgYmVmb3JlIGxvYWRpbmcgdXNpbmcgUGVyc29uYVZhbGlkYXRvcicsXG4gICAgICAgIHJlZmVyZW5jZXM6IFsnRG9sbGhvdXNlTUNQIFNlY3VyaXR5IEd1aWRlbGluZXMnXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdETUNQLVNFQy0wMDInLFxuICAgICAgICBuYW1lOiAnVG9rZW4gVmFsaWRhdGlvbiBCeXBhc3MnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1Rva2VuIHVzZWQgd2l0aG91dCB2YWxpZGF0aW9uJyxcbiAgICAgICAgc2V2ZXJpdHk6ICdjcml0aWNhbCcsXG4gICAgICAgIGNhdGVnb3J5OiAnY3VzdG9tJyxcbiAgICAgICAgcGF0dGVybjogLyg/OmdldFRva2VufHVzZVRva2VufHRva2VuXFwudXNlKVxccypcXChbXildKlxcKSg/IS4qKD86dmFsaWRhdGV8dmVyaWZ5fGNoZWNrKSkvZ2ksXG4gICAgICAgIHJlbWVkaWF0aW9uOiAnQWx3YXlzIHZhbGlkYXRlIHRva2VucyB1c2luZyBUb2tlbk1hbmFnZXIudmFsaWRhdGVUb2tlbigpJyxcbiAgICAgICAgcmVmZXJlbmNlczogWydEb2xsaG91c2VNQ1AgU2VjdXJpdHkgR3VpZGVsaW5lcyddXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0RNQ1AtU0VDLTAwMycsXG4gICAgICAgIG5hbWU6ICdSYXRlIExpbWl0aW5nIE1pc3NpbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0FQSSBlbmRwb2ludCB3aXRob3V0IHJhdGUgbGltaXRpbmcnLFxuICAgICAgICBzZXZlcml0eTogJ21lZGl1bScsXG4gICAgICAgIGNhdGVnb3J5OiAnY3VzdG9tJyxcbiAgICAgICAgY2hlY2s6IChjb250ZW50LCBjb250ZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmluZGluZ3M6IFNlY3VyaXR5RmluZGluZ1tdID0gW107XG4gICAgICAgICAgLy8gQ2hlY2sgZm9yIE1DUCB0b29sIGhhbmRsZXJzIHdpdGhvdXQgcmF0ZSBsaW1pdGluZ1xuICAgICAgICAgIGNvbnN0IHRvb2xQYXR0ZXJuID0gL25hbWU6XFxzKltcIiddKFteXCInXSspW1wiJ10uKmhhbmRsZTovZ3M7XG4gICAgICAgICAgY29uc3QgaGFzUmF0ZUxpbWl0ID0gL3JhdGVMaW1pdGVyfGNoZWNrUmF0ZUxpbWl0fHRva2VuQnVja2V0L2kudGVzdChjb250ZW50KTtcbiAgICAgICAgICBcbiAgICAgICAgICBpZiAodG9vbFBhdHRlcm4udGVzdChjb250ZW50KSAmJiAhaGFzUmF0ZUxpbWl0KSB7XG4gICAgICAgICAgICBmaW5kaW5ncy5wdXNoKHtcbiAgICAgICAgICAgICAgcnVsZUlkOiAnRE1DUC1TRUMtMDAzJyxcbiAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdtZWRpdW0nIGFzIGNvbnN0LFxuICAgICAgICAgICAgICBtZXNzYWdlOiAnTUNQIHRvb2wgaGFuZGxlciB3aXRob3V0IHJhdGUgbGltaXRpbmcnLFxuICAgICAgICAgICAgICByZW1lZGlhdGlvbjogJ0FkZCByYXRlIGxpbWl0aW5nIHRvIHByZXZlbnQgYWJ1c2UnLFxuICAgICAgICAgICAgICBjb25maWRlbmNlOiAnaGlnaCcgYXMgY29uc3RcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICByZXR1cm4gZmluZGluZ3M7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbWVkaWF0aW9uOiAnSW1wbGVtZW50IHJhdGUgbGltaXRpbmcgZm9yIGFsbCBNQ1AgdG9vbHMnLFxuICAgICAgICByZWZlcmVuY2VzOiBbJ0lzc3VlICMxNzQgLSBSYXRlIExpbWl0aW5nIEltcGxlbWVudGF0aW9uJ11cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnRE1DUC1TRUMtMDA0JyxcbiAgICAgICAgbmFtZTogJ1VuaWNvZGUgVmFsaWRhdGlvbiBNaXNzaW5nJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb2Nlc3NlZCB3aXRob3V0IFVuaWNvZGUgbm9ybWFsaXphdGlvbicsXG4gICAgICAgIHNldmVyaXR5OiAnbWVkaXVtJyxcbiAgICAgICAgY2F0ZWdvcnk6ICdjdXN0b20nLFxuICAgICAgICBjaGVjazogKGNvbnRlbnQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICBjb25zdCBmaW5kaW5nczogU2VjdXJpdHlGaW5kaW5nW10gPSBbXTtcbiAgICAgICAgICAvLyBDaGVjayBmb3IgdXNlciBpbnB1dCBwcm9jZXNzaW5nIHdpdGhvdXQgVW5pY29kZSB2YWxpZGF0aW9uXG4gICAgICAgICAgY29uc3QgaW5wdXRQYXR0ZXJuID0gLyg/OnJlcVxcLnxyZXF1ZXN0XFwufHBhcmFtc3xxdWVyeXxib2R5fGNvbnRlbnQpLztcbiAgICAgICAgICBjb25zdCBoYXNVbmljb2RlQ2hlY2sgPSAvVW5pY29kZVZhbGlkYXRvcnxub3JtYWxpemVVbmljb2RlL2kudGVzdChjb250ZW50KTtcbiAgICAgICAgICBcbiAgICAgICAgICBpZiAoaW5wdXRQYXR0ZXJuLnRlc3QoY29udGVudCkgJiYgIWhhc1VuaWNvZGVDaGVjaykge1xuICAgICAgICAgICAgZmluZGluZ3MucHVzaCh7XG4gICAgICAgICAgICAgIHJ1bGVJZDogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgICAgICAgICAgIHNldmVyaXR5OiAnbWVkaXVtJyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1VzZXIgaW5wdXQgcHJvY2Vzc2VkIHdpdGhvdXQgVW5pY29kZSBub3JtYWxpemF0aW9uJyxcbiAgICAgICAgICAgICAgcmVtZWRpYXRpb246ICdVc2UgVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUoKSBvbiBhbGwgdXNlciBpbnB1dCcsXG4gICAgICAgICAgICAgIGNvbmZpZGVuY2U6ICdtZWRpdW0nIGFzIGNvbnN0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgcmV0dXJuIGZpbmRpbmdzO1xuICAgICAgICB9LFxuICAgICAgICByZW1lZGlhdGlvbjogJ0FwcGx5IFVuaWNvZGUgbm9ybWFsaXphdGlvbiB0byBwcmV2ZW50IGJ5cGFzcyBhdHRhY2tzJyxcbiAgICAgICAgcmVmZXJlbmNlczogWydJc3N1ZSAjMTYyIC0gVW5pY29kZSBOb3JtYWxpemF0aW9uJ11cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnRE1DUC1TRUMtMDA1JyxcbiAgICAgICAgbmFtZTogJ1VudmFsaWRhdGVkIFlBTUwgQ29udGVudCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnWUFNTCBjb250ZW50IHBhcnNlZCB3aXRob3V0IHNlY3VyaXR5IHZhbGlkYXRpb24nLFxuICAgICAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgICAgICBjYXRlZ29yeTogJ2N1c3RvbScsXG4gICAgICAgIHBhdHRlcm46IC95YW1sXFwubG9hZFxccypcXCh8cGFyc2VcXHMqXFwoW14pXSpcXC55YT9tbC9naSxcbiAgICAgICAgcmVtZWRpYXRpb246ICdVc2UgU2VjdXJlWWFtbFBhcnNlciBmb3IgYWxsIFlBTUwgcGFyc2luZycsXG4gICAgICAgIHJlZmVyZW5jZXM6IFsnRG9sbGhvdXNlTUNQIFNlY3VyaXR5IEd1aWRlbGluZXMnXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdETUNQLVNFQy0wMDYnLFxuICAgICAgICBuYW1lOiAnU2VjdXJpdHkgRXZlbnQgTm90IExvZ2dlZCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnU2VjdXJpdHktcmVsZXZhbnQgb3BlcmF0aW9uIHdpdGhvdXQgbG9nZ2luZycsXG4gICAgICAgIHNldmVyaXR5OiAnbG93JyxcbiAgICAgICAgY2F0ZWdvcnk6ICdjdXN0b20nLFxuICAgICAgICBjaGVjazogKGNvbnRlbnQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICBjb25zdCBmaW5kaW5nczogU2VjdXJpdHlGaW5kaW5nW10gPSBbXTtcbiAgICAgICAgICAvLyBDaGVjayBmb3Igc2VjdXJpdHkgb3BlcmF0aW9ucyB3aXRob3V0IGxvZ2dpbmdcbiAgICAgICAgICBjb25zdCBzZWN1cml0eU9wcyA9IC8oPzphdXRoZW50aWNhdGV8YXV0aG9yaXplfHZhbGlkYXRlfHNhbml0aXplfGVuY3J5cHR8ZGVjcnlwdCkvaTtcbiAgICAgICAgICBjb25zdCBoYXNMb2dnaW5nID0gL1NlY3VyaXR5TW9uaXRvclxcLmxvZ3xsb2dTZWN1cml0eUV2ZW50L2kudGVzdChjb250ZW50KTtcbiAgICAgICAgICBcbiAgICAgICAgICBpZiAoc2VjdXJpdHlPcHMudGVzdChjb250ZW50KSAmJiAhaGFzTG9nZ2luZykge1xuICAgICAgICAgICAgZmluZGluZ3MucHVzaCh7XG4gICAgICAgICAgICAgIHJ1bGVJZDogJ0RNQ1AtU0VDLTAwNicsXG4gICAgICAgICAgICAgIHNldmVyaXR5OiAnbG93JyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1NlY3VyaXR5IG9wZXJhdGlvbiB3aXRob3V0IGF1ZGl0IGxvZ2dpbmcnLFxuICAgICAgICAgICAgICByZW1lZGlhdGlvbjogJ0FkZCBTZWN1cml0eU1vbml0b3IubG9nU2VjdXJpdHlFdmVudCgpIGZvciBhdWRpdCB0cmFpbCcsXG4gICAgICAgICAgICAgIGNvbmZpZGVuY2U6ICdtZWRpdW0nIGFzIGNvbnN0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgcmV0dXJuIGZpbmRpbmdzO1xuICAgICAgICB9LFxuICAgICAgICByZW1lZGlhdGlvbjogJ0xvZyBhbGwgc2VjdXJpdHktcmVsZXZhbnQgb3BlcmF0aW9ucyBmb3IgYXVkaXQgdHJhaWwnLFxuICAgICAgICByZWZlcmVuY2VzOiBbJ0RvbGxob3VzZU1DUCBTZWN1cml0eSBHdWlkZWxpbmVzJ11cbiAgICAgIH1cbiAgICBdO1xuICB9XG59Il19
@@ -1,47 +0,0 @@
1
- /**
2
- * Code Scanner - Static code analysis for security vulnerabilities
3
- * Detects common security issues in source code
4
- */
5
- import type { SecurityScanner, SecurityFinding, ScanContext } from '../types.js';
6
- interface CodeScannerConfig {
7
- enabled: boolean;
8
- rules: string[];
9
- exclude?: string[];
10
- }
11
- export declare class CodeScanner implements SecurityScanner {
12
- name: string;
13
- private config;
14
- private rules;
15
- constructor(config: CodeScannerConfig);
16
- /**
17
- * Load security rules based on configuration
18
- */
19
- private loadRules;
20
- /**
21
- * Scan files for security vulnerabilities
22
- */
23
- scan(context: ScanContext): Promise<SecurityFinding[]>;
24
- /**
25
- * Get list of files to scan
26
- */
27
- private getFilesToScan;
28
- /**
29
- * Scan a single file for vulnerabilities
30
- */
31
- private scanFile;
32
- /**
33
- * Find pattern matches in content
34
- */
35
- private findPatternMatches;
36
- /**
37
- * Convert string index to line and column
38
- */
39
- private getLineAndColumn;
40
- /**
41
- * Calculate confidence level for a finding
42
- */
43
- private calculateConfidence;
44
- isEnabled(): boolean;
45
- }
46
- export {};
47
- //# sourceMappingURL=CodeScanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeScanner.d.ts","sourceRoot":"","sources":["../../../../../../src/security/audit/scanners/CodeScanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAC;AAM/F,UAAU,iBAAiB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,WAAY,YAAW,eAAe;IACjD,IAAI,SAAiB;IACrB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,KAAK,CAAsB;gBAEvB,MAAM,EAAE,iBAAiB;IAKrC;;OAEG;IACH,OAAO,CAAC,SAAS;IAqBjB;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAkB5D;;OAEG;YACW,cAAc;IAiB5B;;OAEG;YACW,QAAQ;IAkDtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwB3B,SAAS,IAAI,OAAO;CAGrB"}
@@ -1,174 +0,0 @@
1
- /**
2
- * Code Scanner - Static code analysis for security vulnerabilities
3
- * Detects common security issues in source code
4
- */
5
- import { SecurityRules } from '../rules/SecurityRules.js';
6
- import fs from 'fs/promises';
7
- import path from 'path';
8
- import { glob } from 'glob';
9
- export class CodeScanner {
10
- name = 'CodeScanner';
11
- config;
12
- rules = [];
13
- constructor(config) {
14
- this.config = config;
15
- this.loadRules();
16
- }
17
- /**
18
- * Load security rules based on configuration
19
- */
20
- loadRules() {
21
- const ruleLoader = new SecurityRules();
22
- for (const ruleSet of this.config.rules) {
23
- switch (ruleSet) {
24
- case 'OWASP-Top-10':
25
- this.rules.push(...ruleLoader.getOWASPRules());
26
- break;
27
- case 'CWE-Top-25':
28
- this.rules.push(...ruleLoader.getCWERules());
29
- break;
30
- case 'DollhouseMCP-Security':
31
- this.rules.push(...ruleLoader.getDollhouseMCPRules());
32
- break;
33
- default:
34
- // Custom rule sets can be added here
35
- break;
36
- }
37
- }
38
- }
39
- /**
40
- * Scan files for security vulnerabilities
41
- */
42
- async scan(context) {
43
- const findings = [];
44
- const files = await this.getFilesToScan(context.projectRoot);
45
- for (const file of files) {
46
- try {
47
- const content = await fs.readFile(file, 'utf-8');
48
- const fileFindings = await this.scanFile(file, content, context);
49
- findings.push(...fileFindings);
50
- }
51
- catch (error) {
52
- // Skip files that can't be read
53
- continue;
54
- }
55
- }
56
- return findings;
57
- }
58
- /**
59
- * Get list of files to scan
60
- */
61
- async getFilesToScan(projectRoot) {
62
- const patterns = ['**/*.ts', '**/*.js', '**/*.jsx', '**/*.tsx', '**/*.json', '**/*.yml', '**/*.yaml'];
63
- const ignore = this.config.exclude || ['node_modules/**', 'dist/**', 'coverage/**'];
64
- const files = [];
65
- for (const pattern of patterns) {
66
- const matches = await glob(pattern, {
67
- cwd: projectRoot,
68
- ignore,
69
- absolute: true
70
- });
71
- files.push(...matches);
72
- }
73
- return files;
74
- }
75
- /**
76
- * Scan a single file for vulnerabilities
77
- */
78
- async scanFile(filePath, content, context) {
79
- const findings = [];
80
- const lines = content.split('\n');
81
- const fileContext = {
82
- ...context,
83
- fileType: path.extname(filePath),
84
- isTest: filePath.includes('test') || filePath.includes('spec')
85
- };
86
- for (const rule of this.rules) {
87
- // Skip test-specific rules in non-test files
88
- if (rule.tags?.includes('test-only') && !fileContext.isTest) {
89
- continue;
90
- }
91
- // Pattern-based detection
92
- if (rule.pattern) {
93
- const matches = this.findPatternMatches(content, lines, rule);
94
- for (const match of matches) {
95
- findings.push({
96
- ruleId: rule.id,
97
- severity: rule.severity,
98
- message: `${rule.name}: ${match.message}`,
99
- file: filePath,
100
- line: match.line,
101
- column: match.column,
102
- code: match.code,
103
- remediation: rule.remediation,
104
- confidence: this.calculateConfidence(match, rule, fileContext)
105
- });
106
- }
107
- }
108
- // Custom check function
109
- if (rule.check) {
110
- const customFindings = rule.check(content, fileContext);
111
- findings.push(...customFindings.map(f => ({
112
- ...f,
113
- file: filePath
114
- })));
115
- }
116
- }
117
- return findings;
118
- }
119
- /**
120
- * Find pattern matches in content
121
- */
122
- findPatternMatches(content, lines, rule) {
123
- const matches = [];
124
- if (!rule.pattern)
125
- return matches;
126
- // Reset regex state
127
- rule.pattern.lastIndex = 0;
128
- let match;
129
- while ((match = rule.pattern.exec(content)) !== null) {
130
- const position = this.getLineAndColumn(content, match.index);
131
- const code = lines[position.line - 1]?.trim() || '';
132
- matches.push({
133
- line: position.line,
134
- column: position.column,
135
- code: code.substring(0, 100), // Limit code snippet length
136
- message: rule.description
137
- });
138
- }
139
- return matches;
140
- }
141
- /**
142
- * Convert string index to line and column
143
- */
144
- getLineAndColumn(content, index) {
145
- const lines = content.substring(0, index).split('\n');
146
- return {
147
- line: lines.length,
148
- column: lines[lines.length - 1].length + 1
149
- };
150
- }
151
- /**
152
- * Calculate confidence level for a finding
153
- */
154
- calculateConfidence(match, rule, context) {
155
- // High confidence for exact pattern matches
156
- if (rule.tags?.includes('high-confidence')) {
157
- return 'high';
158
- }
159
- // Low confidence in test files
160
- if (context.isTest) {
161
- return 'low';
162
- }
163
- // Check for common false positive indicators
164
- const code = match.code.toLowerCase();
165
- if (code.includes('example') || code.includes('test') || code.includes('demo')) {
166
- return 'low';
167
- }
168
- return 'medium';
169
- }
170
- isEnabled() {
171
- return this.config.enabled;
172
- }
173
- }
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2VjdXJpdHkvYXVkaXQvc2Nhbm5lcnMvQ29kZVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVE1QixNQUFNLE9BQU8sV0FBVztJQUN0QixJQUFJLEdBQUcsYUFBYSxDQUFDO0lBQ2IsTUFBTSxDQUFvQjtJQUMxQixLQUFLLEdBQW1CLEVBQUUsQ0FBQztJQUVuQyxZQUFZLE1BQXlCO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxTQUFTO1FBQ2YsTUFBTSxVQUFVLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUV2QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsUUFBUSxPQUFPLEVBQUUsQ0FBQztnQkFDaEIsS0FBSyxjQUFjO29CQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO29CQUMvQyxNQUFNO2dCQUNSLEtBQUssWUFBWTtvQkFDZixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUM3QyxNQUFNO2dCQUNSLEtBQUssdUJBQXVCO29CQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFH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SSxFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDM0MsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELCtCQUErQjtRQUMvQixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0UsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29kZSBTY2FubmVyIC0gU3RhdGljIGNvZGUgYW5hbHlzaXMgZm9yIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllc1xuICogRGV0ZWN0cyBjb21tb24gc2VjdXJpdHkgaXNzdWVzIGluIHNvdXJjZSBjb2RlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBTZWN1cml0eVNjYW5uZXIsIFNlY3VyaXR5RmluZGluZywgU2NhbkNvbnRleHQsIFNlY3VyaXR5UnVsZSB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IFNlY3VyaXR5UnVsZXMgfSBmcm9tICcuLi9ydWxlcy9TZWN1cml0eVJ1bGVzLmpzJztcbmltcG9ydCBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGdsb2IgfSBmcm9tICdnbG9iJztcblxuaW50ZXJmYWNlIENvZGVTY2FubmVyQ29uZmlnIHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgcnVsZXM6IHN0cmluZ1tdO1xuICBleGNsdWRlPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBDb2RlU2Nhbm5lciBpbXBsZW1lbnRzIFNlY3VyaXR5U2Nhbm5lciB7XG4gIG5hbWUgPSAnQ29kZVNjYW5uZXInO1xuICBwcml2YXRlIGNvbmZpZzogQ29kZVNjYW5uZXJDb25maWc7XG4gIHByaXZhdGUgcnVsZXM6IFNlY3VyaXR5UnVsZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBDb2RlU2Nhbm5lckNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMubG9hZFJ1bGVzKCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBzZWN1cml0eSBydWxlcyBiYXNlZCBvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwcml2YXRlIGxvYWRSdWxlcygpOiB2b2lkIHtcbiAgICBjb25zdCBydWxlTG9hZGVyID0gbmV3IFNlY3VyaXR5UnVsZXMoKTtcbiAgICBcbiAgICBmb3IgKGNvbnN0IHJ1bGVTZXQgb2YgdGhpcy5jb25maWcucnVsZXMpIHtcbiAgICAgIHN3aXRjaCAocnVsZVNldCkge1xuICAgICAgICBjYXNlICdPV0FTUC1Ub3AtMTAnOlxuICAgICAgICAgIHRoaXMucnVsZXMucHVzaCguLi5ydWxlTG9hZGVyLmdldE9XQVNQUnVsZXMoKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0NXRS1Ub3AtMjUnOlxuICAgICAgICAgIHRoaXMucnVsZXMucHVzaCguLi5ydWxlTG9hZGVyLmdldENXRVJ1bGVzKCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdEb2xsaG91c2VNQ1AtU2VjdXJpdHknOlxuICAgICAgICAgIHRoaXMucnVsZXMucHVzaCguLi5ydWxlTG9hZGVyLmdldERvbGxob3VzZU1DUFJ1bGVzKCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIC8vIEN1c3RvbSBydWxlIHNldHMgY2FuIGJlIGFkZGVkIGhlcmVcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2NhbiBmaWxlcyBmb3Igc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzXG4gICAqL1xuICBhc3luYyBzY2FuKGNvbnRleHQ6IFNjYW5Db250ZXh0KTogUHJvbWlzZTxTZWN1cml0eUZpbmRpbmdbXT4ge1xuICAgIGNvbnN0IGZpbmRpbmdzOiBTZWN1cml0eUZpbmRpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgdGhpcy5nZXRGaWxlc1RvU2Nhbihjb250ZXh0LnByb2plY3RSb290KTtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKGZpbGUsICd1dGYtOCcpO1xuICAgICAgICBjb25zdCBmaWxlRmluZGluZ3MgPSBhd2FpdCB0aGlzLnNjYW5GaWxlKGZpbGUsIGNvbnRlbnQsIGNvbnRleHQpO1xuICAgICAgICBmaW5kaW5ncy5wdXNoKC4uLmZpbGVGaW5kaW5ncyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBTa2lwIGZpbGVzIHRoYXQgY2FuJ3QgYmUgcmVhZFxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmluZGluZ3M7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxpc3Qgb2YgZmlsZXMgdG8gc2NhblxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBnZXRGaWxlc1RvU2Nhbihwcm9qZWN0Um9vdDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IHBhdHRlcm5zID0gWycqKi8qLnRzJywgJyoqLyouanMnLCAnKiovKi5qc3gnLCAnKiovKi50c3gnLCAnKiovKi5qc29uJywgJyoqLyoueW1sJywgJyoqLyoueWFtbCddO1xuICAgIGNvbnN0IGlnbm9yZSA9IHRoaXMuY29uZmlnLmV4Y2x1ZGUgfHwgWydub2RlX21vZHVsZXMvKionLCAnZGlzdC8qKicsICdjb3ZlcmFnZS8qKiddO1xuICAgIFxuICAgIGNvbnN0IGZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcGF0dGVybiBvZiBwYXR0ZXJucykge1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGF3YWl0IGdsb2IocGF0dGVybiwge1xuICAgICAgICBjd2Q6IHByb2plY3RSb290LFxuICAgICAgICBpZ25vcmUsXG4gICAgICAgIGFic29sdXRlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIGZpbGVzLnB1c2goLi4ubWF0Y2hlcyk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBmaWxlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTY2FuIGEgc2luZ2xlIGZpbGUgZm9yIHZ1bG5lcmFiaWxpdGllc1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBzY2FuRmlsZShcbiAgICBmaWxlUGF0aDogc3RyaW5nLCBcbiAgICBjb250ZW50OiBzdHJpbmcsIFxuICAgIGNvbnRleHQ6IFNjYW5Db250ZXh0XG4gICk6IFByb21pc2U8U2VjdXJpdHlGaW5kaW5nW10+IHtcbiAgICBjb25zdCBmaW5kaW5nczogU2VjdXJpdHlGaW5kaW5nW10gPSBbXTtcbiAgICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICAgIGNvbnN0IGZpbGVDb250ZXh0ID0ge1xuICAgICAgLi4uY29udGV4dCxcbiAgICAgIGZpbGVUeXBlOiBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpLFxuICAgICAgaXNUZXN0OiBmaWxlUGF0aC5pbmNsdWRlcygndGVzdCcpIHx8IGZpbGVQYXRoLmluY2x1ZGVzKCdzcGVjJylcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBydWxlIG9mIHRoaXMucnVsZXMpIHtcbiAgICAgIC8vIFNraXAgdGVzdC1zcGVjaWZpYyBydWxlcyBpbiBub24tdGVzdCBmaWxlc1xuICAgICAgaWYgKHJ1bGUudGFncz8uaW5jbHVkZXMoJ3Rlc3Qtb25seScpICYmICFmaWxlQ29udGV4dC5pc1Rlc3QpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIFBhdHRlcm4tYmFzZWQgZGV0ZWN0aW9uXG4gICAgICBpZiAocnVsZS5wYXR0ZXJuKSB7XG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSB0aGlzLmZpbmRQYXR0ZXJuTWF0Y2hlcyhjb250ZW50LCBsaW5lcywgcnVsZSk7XG4gICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgbWF0Y2hlcykge1xuICAgICAgICAgIGZpbmRpbmdzLnB1c2goe1xuICAgICAgICAgICAgcnVsZUlkOiBydWxlLmlkLFxuICAgICAgICAgICAgc2V2ZXJpdHk6IHJ1bGUuc2V2ZXJpdHksXG4gICAgICAgICAgICBtZXNzYWdlOiBgJHtydWxlLm5hbWV9OiAke21hdGNoLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgIGZpbGU6IGZpbGVQYXRoLFxuICAgICAgICAgICAgbGluZTogbWF0Y2gubGluZSxcbiAgICAgICAgICAgIGNvbHVtbjogbWF0Y2guY29sdW1uLFxuICAgICAgICAgICAgY29kZTogbWF0Y2guY29kZSxcbiAgICAgICAgICAgIHJlbWVkaWF0aW9uOiBydWxlLnJlbWVkaWF0aW9uLFxuICAgICAgICAgICAgY29uZmlkZW5jZTogdGhpcy5jYWxjdWxhdGVDb25maWRlbmNlKG1hdGNoLCBydWxlLCBmaWxlQ29udGV4dClcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBDdXN0b20gY2hlY2sgZnVuY3Rpb25cbiAgICAgIGlmIChydWxlLmNoZWNrKSB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUZpbmRpbmdzID0gcnVsZS5jaGVjayhjb250ZW50LCBmaWxlQ29udGV4dCk7XG4gICAgICAgIGZpbmRpbmdzLnB1c2goLi4uY3VzdG9tRmluZGluZ3MubWFwKGYgPT4gKHtcbiAgICAgICAgICAuLi5mLFxuICAgICAgICAgIGZpbGU6IGZpbGVQYXRoXG4gICAgICAgIH0pKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmRpbmdzO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgcGF0dGVybiBtYXRjaGVzIGluIGNvbnRlbnRcbiAgICovXG4gIHByaXZhdGUgZmluZFBhdHRlcm5NYXRjaGVzKFxuICAgIGNvbnRlbnQ6IHN0cmluZywgXG4gICAgbGluZXM6IHN0cmluZ1tdLCBcbiAgICBydWxlOiBTZWN1cml0eVJ1bGVcbiAgKTogQXJyYXk8e2xpbmU6IG51bWJlcjsgY29sdW1uOiBudW1iZXI7IGNvZGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nfT4ge1xuICAgIGNvbnN0IG1hdGNoZXM6IEFycmF5PHtsaW5lOiBudW1iZXI7IGNvbHVtbjogbnVtYmVyOyBjb2RlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZ30+ID0gW107XG4gICAgXG4gICAgaWYgKCFydWxlLnBhdHRlcm4pIHJldHVybiBtYXRjaGVzO1xuXG4gICAgLy8gUmVzZXQgcmVnZXggc3RhdGVcbiAgICBydWxlLnBhdHRlcm4ubGFzdEluZGV4ID0gMDtcbiAgICBcbiAgICBsZXQgbWF0Y2g7XG4gICAgd2hpbGUgKChtYXRjaCA9IHJ1bGUucGF0dGVybi5leGVjKGNvbnRlbnQpKSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmdldExpbmVBbmRDb2x1bW4oY29udGVudCwgbWF0Y2guaW5kZXgpO1xuICAgICAgY29uc3QgY29kZSA9IGxpbmVzW3Bvc2l0aW9uLmxpbmUgLSAxXT8udHJpbSgpIHx8ICcnO1xuICAgICAgXG4gICAgICBtYXRjaGVzLnB1c2goe1xuICAgICAgICBsaW5lOiBwb3NpdGlvbi5saW5lLFxuICAgICAgICBjb2x1bW46IHBvc2l0aW9uLmNvbHVtbixcbiAgICAgICAgY29kZTogY29kZS5zdWJzdHJpbmcoMCwgMTAwKSwgLy8gTGltaXQgY29kZSBzbmlwcGV0IGxlbmd0aFxuICAgICAgICBtZXNzYWdlOiBydWxlLmRlc2NyaXB0aW9uXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHN0cmluZyBpbmRleCB0byBsaW5lIGFuZCBjb2x1bW5cbiAgICovXG4gIHByaXZhdGUgZ2V0TGluZUFuZENvbHVtbihjb250ZW50OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiB7bGluZTogbnVtYmVyOyBjb2x1bW46IG51bWJlcn0ge1xuICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zdWJzdHJpbmcoMCwgaW5kZXgpLnNwbGl0KCdcXG4nKTtcbiAgICByZXR1cm4ge1xuICAgICAgbGluZTogbGluZXMubGVuZ3RoLFxuICAgICAgY29sdW1uOiBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGggKyAxXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgY29uZmlkZW5jZSBsZXZlbCBmb3IgYSBmaW5kaW5nXG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZUNvbmZpZGVuY2UoXG4gICAgbWF0Y2g6IGFueSwgXG4gICAgcnVsZTogU2VjdXJpdHlSdWxlLCBcbiAgICBjb250ZXh0OiBTY2FuQ29udGV4dFxuICApOiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnIHtcbiAgICAvLyBIaWdoIGNvbmZpZGVuY2UgZm9yIGV4YWN0IHBhdHRlcm4gbWF0Y2hlc1xuICAgIGlmIChydWxlLnRhZ3M/LmluY2x1ZGVzKCdoaWdoLWNvbmZpZGVuY2UnKSkge1xuICAgICAgcmV0dXJuICdoaWdoJztcbiAgICB9XG5cbiAgICAvLyBMb3cgY29uZmlkZW5jZSBpbiB0ZXN0IGZpbGVzXG4gICAgaWYgKGNvbnRleHQuaXNUZXN0KSB7XG4gICAgICByZXR1cm4gJ2xvdyc7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZm9yIGNvbW1vbiBmYWxzZSBwb3NpdGl2ZSBpbmRpY2F0b3JzXG4gICAgY29uc3QgY29kZSA9IG1hdGNoLmNvZGUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoY29kZS5pbmNsdWRlcygnZXhhbXBsZScpIHx8IGNvZGUuaW5jbHVkZXMoJ3Rlc3QnKSB8fCBjb2RlLmluY2x1ZGVzKCdkZW1vJykpIHtcbiAgICAgIHJldHVybiAnbG93JztcbiAgICB9XG5cbiAgICByZXR1cm4gJ21lZGl1bSc7XG4gIH1cblxuICBpc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmVuYWJsZWQ7XG4gIH1cbn0iXX0=
@@ -1,13 +0,0 @@
1
- /**
2
- * Configuration Scanner - Scans configuration files for security issues
3
- * Placeholder implementation - to be completed
4
- */
5
- import type { SecurityScanner, SecurityFinding, ScanContext } from '../types.js';
6
- export declare class ConfigurationScanner implements SecurityScanner {
7
- name: string;
8
- private config;
9
- constructor(config: any);
10
- scan(context: ScanContext): Promise<SecurityFinding[]>;
11
- isEnabled(): boolean;
12
- }
13
- //# sourceMappingURL=ConfigurationScanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfigurationScanner.d.ts","sourceRoot":"","sources":["../../../../../../src/security/audit/scanners/ConfigurationScanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjF,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,IAAI,SAA0B;IAC9B,OAAO,CAAC,MAAM,CAAM;gBAER,MAAM,EAAE,GAAG;IAIjB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQ5D,SAAS,IAAI,OAAO;CAGrB"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Configuration Scanner - Scans configuration files for security issues
3
- * Placeholder implementation - to be completed
4
- */
5
- export class ConfigurationScanner {
6
- name = 'ConfigurationScanner';
7
- config;
8
- constructor(config) {
9
- this.config = config;
10
- }
11
- async scan(context) {
12
- // TODO: Implement configuration scanning
13
- // - Check for insecure defaults
14
- // - Validate security headers
15
- // - Check authentication settings
16
- return [];
17
- }
18
- isEnabled() {
19
- return this.config.enabled;
20
- }
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlndXJhdGlvblNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2VjdXJpdHkvYXVkaXQvc2Nhbm5lcnMvQ29uZmlndXJhdGlvblNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixJQUFJLEdBQUcsc0JBQXNCLENBQUM7SUFDdEIsTUFBTSxDQUFNO0lBRXBCLFlBQVksTUFBVztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFvQjtRQUM3Qix5Q0FBeUM7UUFDekMsZ0NBQWdDO1FBQ2hDLDhCQUE4QjtRQUM5QixrQ0FBa0M7UUFDbEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb25maWd1cmF0aW9uIFNjYW5uZXIgLSBTY2FucyBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBzZWN1cml0eSBpc3N1ZXNcbiAqIFBsYWNlaG9sZGVyIGltcGxlbWVudGF0aW9uIC0gdG8gYmUgY29tcGxldGVkXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBTZWN1cml0eVNjYW5uZXIsIFNlY3VyaXR5RmluZGluZywgU2NhbkNvbnRleHQgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uU2Nhbm5lciBpbXBsZW1lbnRzIFNlY3VyaXR5U2Nhbm5lciB7XG4gIG5hbWUgPSAnQ29uZmlndXJhdGlvblNjYW5uZXInO1xuICBwcml2YXRlIGNvbmZpZzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogYW55KSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gIH1cblxuICBhc3luYyBzY2FuKGNvbnRleHQ6IFNjYW5Db250ZXh0KTogUHJvbWlzZTxTZWN1cml0eUZpbmRpbmdbXT4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBjb25maWd1cmF0aW9uIHNjYW5uaW5nXG4gICAgLy8gLSBDaGVjayBmb3IgaW5zZWN1cmUgZGVmYXVsdHNcbiAgICAvLyAtIFZhbGlkYXRlIHNlY3VyaXR5IGhlYWRlcnNcbiAgICAvLyAtIENoZWNrIGF1dGhlbnRpY2F0aW9uIHNldHRpbmdzXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgaXNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5lbmFibGVkO1xuICB9XG59Il19
@@ -1,13 +0,0 @@
1
- /**
2
- * Dependency Scanner - Scans for vulnerabilities in dependencies
3
- * Placeholder implementation - to be completed
4
- */
5
- import type { SecurityScanner, SecurityFinding, ScanContext } from '../types.js';
6
- export declare class DependencyScanner implements SecurityScanner {
7
- name: string;
8
- private config;
9
- constructor(config: any);
10
- scan(context: ScanContext): Promise<SecurityFinding[]>;
11
- isEnabled(): boolean;
12
- }
13
- //# sourceMappingURL=DependencyScanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DependencyScanner.d.ts","sourceRoot":"","sources":["../../../../../../src/security/audit/scanners/DependencyScanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjF,qBAAa,iBAAkB,YAAW,eAAe;IACvD,IAAI,SAAuB;IAC3B,OAAO,CAAC,MAAM,CAAM;gBAER,MAAM,EAAE,GAAG;IAIjB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQ5D,SAAS,IAAI,OAAO;CAGrB"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Dependency Scanner - Scans for vulnerabilities in dependencies
3
- * Placeholder implementation - to be completed
4
- */
5
- export class DependencyScanner {
6
- name = 'DependencyScanner';
7
- config;
8
- constructor(config) {
9
- this.config = config;
10
- }
11
- async scan(context) {
12
- // TODO: Implement dependency scanning
13
- // - Run npm audit
14
- // - Check GitHub Advisory Database
15
- // - Validate licenses
16
- return [];
17
- }
18
- isEnabled() {
19
- return this.config.enabled;
20
- }
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwZW5kZW5jeVNjYW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2VjdXJpdHkvYXVkaXQvc2Nhbm5lcnMvRGVwZW5kZW5jeVNjYW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixJQUFJLEdBQUcsbUJBQW1CLENBQUM7SUFDbkIsTUFBTSxDQUFNO0lBRXBCLFlBQVksTUFBVztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFvQjtRQUM3QixzQ0FBc0M7UUFDdEMsa0JBQWtCO1FBQ2xCLG1DQUFtQztRQUNuQyxzQkFBc0I7UUFDdEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZXBlbmRlbmN5IFNjYW5uZXIgLSBTY2FucyBmb3IgdnVsbmVyYWJpbGl0aWVzIGluIGRlcGVuZGVuY2llc1xuICogUGxhY2Vob2xkZXIgaW1wbGVtZW50YXRpb24gLSB0byBiZSBjb21wbGV0ZWRcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNlY3VyaXR5U2Nhbm5lciwgU2VjdXJpdHlGaW5kaW5nLCBTY2FuQ29udGV4dCB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIERlcGVuZGVuY3lTY2FubmVyIGltcGxlbWVudHMgU2VjdXJpdHlTY2FubmVyIHtcbiAgbmFtZSA9ICdEZXBlbmRlbmN5U2Nhbm5lcic7XG4gIHByaXZhdGUgY29uZmlnOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBhbnkpIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgfVxuXG4gIGFzeW5jIHNjYW4oY29udGV4dDogU2NhbkNvbnRleHQpOiBQcm9taXNlPFNlY3VyaXR5RmluZGluZ1tdPiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGRlcGVuZGVuY3kgc2Nhbm5pbmdcbiAgICAvLyAtIFJ1biBucG0gYXVkaXRcbiAgICAvLyAtIENoZWNrIEdpdEh1YiBBZHZpc29yeSBEYXRhYmFzZVxuICAgIC8vIC0gVmFsaWRhdGUgbGljZW5zZXNcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmVuYWJsZWQ7XG4gIH1cbn0iXX0=