@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,59 +0,0 @@
1
- /**
2
- * Secure GitHub token management and validation
3
- */
4
- export interface TokenScopes {
5
- required: string[];
6
- optional?: string[];
7
- }
8
- export interface TokenValidationResult {
9
- isValid: boolean;
10
- scopes?: string[];
11
- rateLimit?: {
12
- remaining: number;
13
- resetTime: Date;
14
- };
15
- error?: string;
16
- }
17
- /**
18
- * Secure GitHub token manager with validation and protection
19
- */
20
- export declare class TokenManager {
21
- private static readonly GITHUB_TOKEN_PATTERNS;
22
- /**
23
- * Validate GitHub token format
24
- */
25
- static validateTokenFormat(token: string): boolean;
26
- /**
27
- * Get GitHub token from environment with validation
28
- */
29
- static getGitHubToken(): string | null;
30
- /**
31
- * Redact token for safe logging
32
- */
33
- static redactToken(token: string): string;
34
- /**
35
- * Get token type from format
36
- */
37
- static getTokenType(token: string): string;
38
- /**
39
- * Get safe token prefix for logging
40
- */
41
- static getTokenPrefix(token: string): string;
42
- /**
43
- * Validate token scopes via GitHub API
44
- */
45
- static validateTokenScopes(token: string, requiredScopes: TokenScopes): Promise<TokenValidationResult>;
46
- /**
47
- * Create safe error message without token exposure
48
- */
49
- static createSafeErrorMessage(error: string, token?: string): string;
50
- /**
51
- * Get minimum required scopes for different operations
52
- */
53
- static getRequiredScopes(operation: 'read' | 'write' | 'marketplace' | 'gist'): TokenScopes;
54
- /**
55
- * Check if token has sufficient permissions for operation
56
- */
57
- static ensureTokenPermissions(operation: 'read' | 'write' | 'marketplace' | 'gist'): Promise<TokenValidationResult>;
58
- }
59
- //# sourceMappingURL=tokenManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenManager.d.ts","sourceRoot":"","sources":["../../../src/security/tokenManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,IAAI,CAAC;KACjB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAK3C;IAEF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAWlD;;OAEG;IACH,MAAM,CAAC,cAAc,IAAI,MAAM,GAAG,IAAI;IAwBtC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQzC;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAgB1C;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAO5C;;OAEG;WACU,mBAAmB,CAC9B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,WAAW,GAC1B,OAAO,CAAC,qBAAqB,CAAC;IAoFjC;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAgBpE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW;IAiC3F;;OAEG;WACU,sBAAsB,CACjC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,GACnD,OAAO,CAAC,qBAAqB,CAAC;CAalC"}
@@ -1,216 +0,0 @@
1
- /**
2
- * Secure GitHub token management and validation
3
- */
4
- import { logger } from '../utils/logger.js';
5
- /**
6
- * Secure GitHub token manager with validation and protection
7
- */
8
- export class TokenManager {
9
- static GITHUB_TOKEN_PATTERNS = {
10
- PERSONAL_ACCESS_TOKEN: /^ghp_[A-Za-z0-9_]{36,}$/,
11
- INSTALLATION_TOKEN: /^ghs_[A-Za-z0-9_]{36,}$/,
12
- USER_ACCESS_TOKEN: /^ghu_[A-Za-z0-9_]{36,}$/,
13
- REFRESH_TOKEN: /^ghr_[A-Za-z0-9_]{36,}$/
14
- };
15
- /**
16
- * Validate GitHub token format
17
- */
18
- static validateTokenFormat(token) {
19
- if (!token || typeof token !== 'string') {
20
- return false;
21
- }
22
- // Check against all known GitHub token patterns
23
- return Object.values(this.GITHUB_TOKEN_PATTERNS).some(pattern => pattern.test(token));
24
- }
25
- /**
26
- * Get GitHub token from environment with validation
27
- */
28
- static getGitHubToken() {
29
- const token = process.env.GITHUB_TOKEN;
30
- if (!token) {
31
- logger.debug('No GitHub token found in environment');
32
- return null;
33
- }
34
- if (!this.validateTokenFormat(token)) {
35
- logger.warn('Invalid GitHub token format detected', {
36
- tokenPrefix: this.getTokenPrefix(token),
37
- length: token.length
38
- });
39
- return null;
40
- }
41
- logger.debug('Valid GitHub token found', {
42
- tokenType: this.getTokenType(token),
43
- tokenPrefix: this.getTokenPrefix(token)
44
- });
45
- return token;
46
- }
47
- /**
48
- * Redact token for safe logging
49
- */
50
- static redactToken(token) {
51
- if (!token || token.length < 8) {
52
- return '[REDACTED]';
53
- }
54
- return token.substring(0, 4) + '...' + token.substring(token.length - 4);
55
- }
56
- /**
57
- * Get token type from format
58
- */
59
- static getTokenType(token) {
60
- if (this.GITHUB_TOKEN_PATTERNS.PERSONAL_ACCESS_TOKEN.test(token)) {
61
- return 'Personal Access Token';
62
- }
63
- if (this.GITHUB_TOKEN_PATTERNS.INSTALLATION_TOKEN.test(token)) {
64
- return 'Installation Token';
65
- }
66
- if (this.GITHUB_TOKEN_PATTERNS.USER_ACCESS_TOKEN.test(token)) {
67
- return 'User Access Token';
68
- }
69
- if (this.GITHUB_TOKEN_PATTERNS.REFRESH_TOKEN.test(token)) {
70
- return 'Refresh Token';
71
- }
72
- return 'Unknown';
73
- }
74
- /**
75
- * Get safe token prefix for logging
76
- */
77
- static getTokenPrefix(token) {
78
- if (!token || token.length < 4) {
79
- return '[INVALID]';
80
- }
81
- return token.substring(0, 4) + '...';
82
- }
83
- /**
84
- * Validate token scopes via GitHub API
85
- */
86
- static async validateTokenScopes(token, requiredScopes) {
87
- try {
88
- // Make a test API call to check token validity and scopes
89
- const response = await fetch('https://api.github.com/user', {
90
- headers: {
91
- 'Authorization': `Bearer ${token}`,
92
- 'Accept': 'application/vnd.github.v3+json',
93
- 'User-Agent': 'DollhouseMCP/1.0'
94
- }
95
- });
96
- const rateLimitRemaining = parseInt(response.headers.get('x-ratelimit-remaining') || '0');
97
- const rateLimitReset = parseInt(response.headers.get('x-ratelimit-reset') || '0');
98
- if (!response.ok) {
99
- const error = `GitHub API error: ${response.status} ${response.statusText}`;
100
- logger.warn('Token validation failed', {
101
- status: response.status,
102
- tokenPrefix: this.getTokenPrefix(token)
103
- });
104
- return {
105
- isValid: false,
106
- error: error
107
- };
108
- }
109
- // Extract scopes from response headers
110
- const scopesHeader = response.headers.get('x-oauth-scopes') || '';
111
- const tokenScopes = scopesHeader.split(',').map(s => s.trim()).filter(s => s);
112
- // Check if required scopes are present
113
- const hasRequiredScopes = requiredScopes.required.every(scope => tokenScopes.includes(scope));
114
- if (!hasRequiredScopes) {
115
- const missingScopes = requiredScopes.required.filter(scope => !tokenScopes.includes(scope));
116
- logger.warn('Token missing required scopes', {
117
- tokenPrefix: this.getTokenPrefix(token),
118
- missingScopes: missingScopes,
119
- currentScopes: tokenScopes
120
- });
121
- return {
122
- isValid: false,
123
- scopes: tokenScopes,
124
- error: `Missing required scopes: ${missingScopes.join(', ')}`
125
- };
126
- }
127
- logger.info('Token validation successful', {
128
- tokenType: this.getTokenType(token),
129
- tokenPrefix: this.getTokenPrefix(token),
130
- scopes: tokenScopes,
131
- rateLimitRemaining: rateLimitRemaining
132
- });
133
- return {
134
- isValid: true,
135
- scopes: tokenScopes,
136
- rateLimit: {
137
- remaining: rateLimitRemaining,
138
- resetTime: new Date(rateLimitReset * 1000)
139
- }
140
- };
141
- }
142
- catch (error) {
143
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
144
- logger.error('Token validation error', {
145
- error: errorMessage,
146
- tokenPrefix: this.getTokenPrefix(token)
147
- });
148
- return {
149
- isValid: false,
150
- error: `Validation error: ${errorMessage}`
151
- };
152
- }
153
- }
154
- /**
155
- * Create safe error message without token exposure
156
- */
157
- static createSafeErrorMessage(error, token) {
158
- // Remove any potential token data from error messages
159
- let safeMessage = error
160
- .replace(/ghp_[A-Za-z0-9_]{36,}/g, '[REDACTED_PAT]')
161
- .replace(/ghs_[A-Za-z0-9_]{36,}/g, '[REDACTED_INSTALL]')
162
- .replace(/ghu_[A-Za-z0-9_]{36,}/g, '[REDACTED_USER]')
163
- .replace(/ghr_[A-Za-z0-9_]{36,}/g, '[REDACTED_REFRESH]');
164
- if (token) {
165
- const tokenPrefix = this.getTokenPrefix(token);
166
- safeMessage += ` (Token: ${tokenPrefix})`;
167
- }
168
- return safeMessage;
169
- }
170
- /**
171
- * Get minimum required scopes for different operations
172
- */
173
- static getRequiredScopes(operation) {
174
- switch (operation) {
175
- case 'read':
176
- return {
177
- required: ['repo'],
178
- optional: ['user:email']
179
- };
180
- case 'write':
181
- return {
182
- required: ['repo'],
183
- optional: ['user:email']
184
- };
185
- case 'marketplace':
186
- return {
187
- required: ['repo'],
188
- optional: ['user:email']
189
- };
190
- case 'gist':
191
- return {
192
- required: ['gist'],
193
- optional: ['user:email']
194
- };
195
- default:
196
- return {
197
- required: ['repo']
198
- };
199
- }
200
- }
201
- /**
202
- * Check if token has sufficient permissions for operation
203
- */
204
- static async ensureTokenPermissions(operation) {
205
- const token = this.getGitHubToken();
206
- if (!token) {
207
- return {
208
- isValid: false,
209
- error: 'No GitHub token available'
210
- };
211
- }
212
- const requiredScopes = this.getRequiredScopes(operation);
213
- return this.validateTokenScopes(token, requiredScopes);
214
- }
215
- }
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5NYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlY3VyaXR5L3Rva2VuTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWlCNUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUNmLE1BQU0sQ0FBVSxxQkFBcUIsR0FBRztRQUM5QyxxQkFBcUIsRUFBRSx5QkFBeUI7UUFDaEQsa0JBQWtCLEVBQUUseUJBQXlCO1FBQzdDLGlCQUFpQixFQUFFLHlCQUF5QjtRQUM1QyxhQUFhLEVBQUUseUJBQXlCO0tBQ3pDLENBQUM7SUFFRjs7T0FFRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsZ0RBQWdEO1FBQ2hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDOUQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjO1FBQ25CLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO1FBRXZDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUNyRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsTUFBTSxDQUFDLElBQUksQ0FB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QU0sQ0FBQztpQkFDbkIsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUNqQyxTQUFvRDtRQUVwRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFcEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsMkJBQTJCO2FBQ25DLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZWN1cmUgR2l0SHViIHRva2VuIG1hbmFnZW1lbnQgYW5kIHZhbGlkYXRpb25cbiAqL1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRva2VuU2NvcGVzIHtcbiAgcmVxdWlyZWQ6IHN0cmluZ1tdO1xuICBvcHRpb25hbD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRva2VuVmFsaWRhdGlvblJlc3VsdCB7XG4gIGlzVmFsaWQ6IGJvb2xlYW47XG4gIHNjb3Blcz86IHN0cmluZ1tdO1xuICByYXRlTGltaXQ/OiB7XG4gICAgcmVtYWluaW5nOiBudW1iZXI7XG4gICAgcmVzZXRUaW1lOiBEYXRlO1xuICB9O1xuICBlcnJvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZWN1cmUgR2l0SHViIHRva2VuIG1hbmFnZXIgd2l0aCB2YWxpZGF0aW9uIGFuZCBwcm90ZWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBUb2tlbk1hbmFnZXIge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBHSVRIVUJfVE9LRU5fUEFUVEVSTlMgPSB7XG4gICAgUEVSU09OQUxfQUNDRVNTX1RPS0VOOiAvXmdocF9bQS1aYS16MC05X117MzYsfSQvLFxuICAgIElOU1RBTExBVElPTl9UT0tFTjogL15naHNfW0EtWmEtejAtOV9dezM2LH0kLyxcbiAgICBVU0VSX0FDQ0VTU19UT0tFTjogL15naHVfW0EtWmEtejAtOV9dezM2LH0kLyxcbiAgICBSRUZSRVNIX1RPS0VOOiAvXmdocl9bQS1aYS16MC05X117MzYsfSQvXG4gIH07XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIEdpdEh1YiB0b2tlbiBmb3JtYXRcbiAgICovXG4gIHN0YXRpYyB2YWxpZGF0ZVRva2VuRm9ybWF0KHRva2VuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRva2VuIHx8IHR5cGVvZiB0b2tlbiAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBhZ2FpbnN0IGFsbCBrbm93biBHaXRIdWIgdG9rZW4gcGF0dGVybnNcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLkdJVEhVQl9UT0tFTl9QQVRURVJOUykuc29tZShwYXR0ZXJuID0+IFxuICAgICAgcGF0dGVybi50ZXN0KHRva2VuKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IEdpdEh1YiB0b2tlbiBmcm9tIGVudmlyb25tZW50IHdpdGggdmFsaWRhdGlvblxuICAgKi9cbiAgc3RhdGljIGdldEdpdEh1YlRva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHRva2VuID0gcHJvY2Vzcy5lbnYuR0lUSFVCX1RPS0VOO1xuICAgIFxuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZygnTm8gR2l0SHViIHRva2VuIGZvdW5kIGluIGVudmlyb25tZW50Jyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudmFsaWRhdGVUb2tlbkZvcm1hdCh0b2tlbikpIHtcbiAgICAgIGxvZ2dlci53YXJuKCdJbnZhbGlkIEdpdEh1YiB0b2tlbiBmb3JtYXQgZGV0ZWN0ZWQnLCB7XG4gICAgICAgIHRva2VuUHJlZml4OiB0aGlzLmdldFRva2VuUHJlZml4KHRva2VuKSxcbiAgICAgICAgbGVuZ3RoOiB0b2tlbi5sZW5ndGhcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbG9nZ2VyLmRlYnVnKCdWYWxpZCBHaXRIdWIgdG9rZW4gZm91bmQnLCB7XG4gICAgICB0b2tlblR5cGU6IHRoaXMuZ2V0VG9rZW5UeXBlKHRva2VuKSxcbiAgICAgIHRva2VuUHJlZml4OiB0aGlzLmdldFRva2VuUHJlZml4KHRva2VuKVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZGFjdCB0b2tlbiBmb3Igc2FmZSBsb2dnaW5nXG4gICAqL1xuICBzdGF0aWMgcmVkYWN0VG9rZW4odG9rZW46IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF0b2tlbiB8fCB0b2tlbi5sZW5ndGggPCA4KSB7XG4gICAgICByZXR1cm4gJ1tSRURBQ1RFRF0nO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gdG9rZW4uc3Vic3RyaW5nKDAsIDQpICsgJy4uLicgKyB0b2tlbi5zdWJzdHJpbmcodG9rZW4ubGVuZ3RoIC0gNCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRva2VuIHR5cGUgZnJvbSBmb3JtYXRcbiAgICovXG4gIHN0YXRpYyBnZXRUb2tlblR5cGUodG9rZW46IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuR0lUSFVCX1RPS0VOX1BBVFRFUk5TLlBFUlNPTkFMX0FDQ0VTU19UT0tFTi50ZXN0KHRva2VuKSkge1xuICAgICAgcmV0dXJuICdQZXJzb25hbCBBY2Nlc3MgVG9rZW4nO1xuICAgIH1cbiAgICBpZiAodGhpcy5HSVRIVUJfVE9LRU5fUEFUVEVSTlMuSU5TVEFMTEFUSU9OX1RPS0VOLnRlc3QodG9rZW4pKSB7XG4gICAgICByZXR1cm4gJ0luc3RhbGxhdGlvbiBUb2tlbic7XG4gICAgfVxuICAgIGlmICh0aGlzLkdJVEhVQl9UT0tFTl9QQVRURVJOUy5VU0VSX0FDQ0VTU19UT0tFTi50ZXN0KHRva2VuKSkge1xuICAgICAgcmV0dXJuICdVc2VyIEFjY2VzcyBUb2tlbic7XG4gICAgfVxuICAgIGlmICh0aGlzLkdJVEhVQl9UT0tFTl9QQVRURVJOUy5SRUZSRVNIX1RPS0VOLnRlc3QodG9rZW4pKSB7XG4gICAgICByZXR1cm4gJ1JlZnJlc2ggVG9rZW4nO1xuICAgIH1cbiAgICByZXR1cm4gJ1Vua25vd24nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzYWZlIHRva2VuIHByZWZpeCBmb3IgbG9nZ2luZ1xuICAgKi9cbiAgc3RhdGljIGdldFRva2VuUHJlZml4KHRva2VuOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdG9rZW4gfHwgdG9rZW4ubGVuZ3RoIDwgNCkge1xuICAgICAgcmV0dXJuICdbSU5WQUxJRF0nO1xuICAgIH1cbiAgICByZXR1cm4gdG9rZW4uc3Vic3RyaW5nKDAsIDQpICsgJy4uLic7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdG9rZW4gc2NvcGVzIHZpYSBHaXRIdWIgQVBJXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgdmFsaWRhdGVUb2tlblNjb3BlcyhcbiAgICB0b2tlbjogc3RyaW5nLCBcbiAgICByZXF1aXJlZFNjb3BlczogVG9rZW5TY29wZXNcbiAgKTogUHJvbWlzZTxUb2tlblZhbGlkYXRpb25SZXN1bHQ+IHtcbiAgICB0cnkge1xuICAgICAgLy8gTWFrZSBhIHRlc3QgQVBJIGNhbGwgdG8gY2hlY2sgdG9rZW4gdmFsaWRpdHkgYW5kIHNjb3Blc1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2VyJywge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7dG9rZW59YCxcbiAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL3ZuZC5naXRodWIudjMranNvbicsXG4gICAgICAgICAgJ1VzZXItQWdlbnQnOiAnRG9sbGhvdXNlTUNQLzEuMCdcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJhdGVMaW1pdFJlbWFpbmluZyA9IHBhcnNlSW50KHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LXJhdGVsaW1pdC1yZW1haW5pbmcnKSB8fCAnMCcpO1xuICAgICAgY29uc3QgcmF0ZUxpbWl0UmVzZXQgPSBwYXJzZUludChyZXNwb25zZS5oZWFkZXJzLmdldCgneC1yYXRlbGltaXQtcmVzZXQnKSB8fCAnMCcpO1xuXG4gICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gYEdpdEh1YiBBUEkgZXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfSAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICAgICAgbG9nZ2VyLndhcm4oJ1Rva2VuIHZhbGlkYXRpb24gZmFpbGVkJywge1xuICAgICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgIHRva2VuUHJlZml4OiB0aGlzLmdldFRva2VuUHJlZml4KHRva2VuKVxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIEV4dHJhY3Qgc2NvcGVzIGZyb20gcmVzcG9uc2UgaGVhZGVyc1xuICAgICAgY29uc3Qgc2NvcGVzSGVhZGVyID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ3gtb2F1dGgtc2NvcGVzJykgfHwgJyc7XG4gICAgICBjb25zdCB0b2tlblNjb3BlcyA9IHNjb3Blc0hlYWRlci5zcGxpdCgnLCcpLm1hcChzID0+IHMudHJpbSgpKS5maWx0ZXIocyA9PiBzKTtcblxuICAgICAgLy8gQ2hlY2sgaWYgcmVxdWlyZWQgc2NvcGVzIGFyZSBwcmVzZW50XG4gICAgICBjb25zdCBoYXNSZXF1aXJlZFNjb3BlcyA9IHJlcXVpcmVkU2NvcGVzLnJlcXVpcmVkLmV2ZXJ5KHNjb3BlID0+IFxuICAgICAgICB0b2tlblNjb3Blcy5pbmNsdWRlcyhzY29wZSlcbiAgICAgICk7XG5cbiAgICAgIGlmICghaGFzUmVxdWlyZWRTY29wZXMpIHtcbiAgICAgICAgY29uc3QgbWlzc2luZ1Njb3BlcyA9IHJlcXVpcmVkU2NvcGVzLnJlcXVpcmVkLmZpbHRlcihzY29wZSA9PiBcbiAgICAgICAgICAhdG9rZW5TY29wZXMuaW5jbHVkZXMoc2NvcGUpXG4gICAgICAgICk7XG4gICAgICAgIFxuICAgICAgICBsb2dnZXIud2FybignVG9rZW4gbWlzc2luZyByZXF1aXJlZCBzY29wZXMnLCB7XG4gICAgICAgICAgdG9rZW5QcmVmaXg6IHRoaXMuZ2V0VG9rZW5QcmVmaXgodG9rZW4pLFxuICAgICAgICAgIG1pc3NpbmdTY29wZXM6IG1pc3NpbmdTY29wZXMsXG4gICAgICAgICAgY3VycmVudFNjb3BlczogdG9rZW5TY29wZXNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICBzY29wZXM6IHRva2VuU2NvcGVzLFxuICAgICAgICAgIGVycm9yOiBgTWlzc2luZyByZXF1aXJlZCBzY29wZXM6ICR7bWlzc2luZ1Njb3Blcy5qb2luKCcsICcpfWBcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgbG9nZ2VyLmluZm8oJ1Rva2VuIHZhbGlkYXRpb24gc3VjY2Vzc2Z1bCcsIHtcbiAgICAgICAgdG9rZW5UeXBlOiB0aGlzLmdldFRva2VuVHlwZSh0b2tlbiksXG4gICAgICAgIHRva2VuUHJlZml4OiB0aGlzLmdldFRva2VuUHJlZml4KHRva2VuKSxcbiAgICAgICAgc2NvcGVzOiB0b2tlblNjb3BlcyxcbiAgICAgICAgcmF0ZUxpbWl0UmVtYWluaW5nOiByYXRlTGltaXRSZW1haW5pbmdcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpc1ZhbGlkOiB0cnVlLFxuICAgICAgICBzY29wZXM6IHRva2VuU2NvcGVzLFxuICAgICAgICByYXRlTGltaXQ6IHtcbiAgICAgICAgICByZW1haW5pbmc6IHJhdGVMaW1pdFJlbWFpbmluZyxcbiAgICAgICAgICByZXNldFRpbWU6IG5ldyBEYXRlKHJhdGVMaW1pdFJlc2V0ICogMTAwMClcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJztcbiAgICAgIGxvZ2dlci5lcnJvcignVG9rZW4gdmFsaWRhdGlvbiBlcnJvcicsIHtcbiAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgdG9rZW5QcmVmaXg6IHRoaXMuZ2V0VG9rZW5QcmVmaXgodG9rZW4pXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBgVmFsaWRhdGlvbiBlcnJvcjogJHtlcnJvck1lc3NhZ2V9YFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHNhZmUgZXJyb3IgbWVzc2FnZSB3aXRob3V0IHRva2VuIGV4cG9zdXJlXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlU2FmZUVycm9yTWVzc2FnZShlcnJvcjogc3RyaW5nLCB0b2tlbj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gUmVtb3ZlIGFueSBwb3RlbnRpYWwgdG9rZW4gZGF0YSBmcm9tIGVycm9yIG1lc3NhZ2VzXG4gICAgbGV0IHNhZmVNZXNzYWdlID0gZXJyb3JcbiAgICAgIC5yZXBsYWNlKC9naHBfW0EtWmEtejAtOV9dezM2LH0vZywgJ1tSRURBQ1RFRF9QQVRdJylcbiAgICAgIC5yZXBsYWNlKC9naHNfW0EtWmEtejAtOV9dezM2LH0vZywgJ1tSRURBQ1RFRF9JTlNUQUxMXScpXG4gICAgICAucmVwbGFjZSgvZ2h1X1tBLVphLXowLTlfXXszNix9L2csICdbUkVEQUNURURfVVNFUl0nKVxuICAgICAgLnJlcGxhY2UoL2docl9bQS1aYS16MC05X117MzYsfS9nLCAnW1JFREFDVEVEX1JFRlJFU0hdJyk7XG5cbiAgICBpZiAodG9rZW4pIHtcbiAgICAgIGNvbnN0IHRva2VuUHJlZml4ID0gdGhpcy5nZXRUb2tlblByZWZpeCh0b2tlbik7XG4gICAgICBzYWZlTWVzc2FnZSArPSBgIChUb2tlbjogJHt0b2tlblByZWZpeH0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gc2FmZU1lc3NhZ2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG1pbmltdW0gcmVxdWlyZWQgc2NvcGVzIGZvciBkaWZmZXJlbnQgb3BlcmF0aW9uc1xuICAgKi9cbiAgc3RhdGljIGdldFJlcXVpcmVkU2NvcGVzKG9wZXJhdGlvbjogJ3JlYWQnIHwgJ3dyaXRlJyB8ICdtYXJrZXRwbGFjZScgfCAnZ2lzdCcpOiBUb2tlblNjb3BlcyB7XG4gICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgIGNhc2UgJ3JlYWQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlcXVpcmVkOiBbJ3JlcG8nXSxcbiAgICAgICAgICBvcHRpb25hbDogWyd1c2VyOmVtYWlsJ11cbiAgICAgICAgfTtcbiAgICAgIFxuICAgICAgY2FzZSAnd3JpdGUnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlcXVpcmVkOiBbJ3JlcG8nXSxcbiAgICAgICAgICBvcHRpb25hbDogWyd1c2VyOmVtYWlsJ11cbiAgICAgICAgfTtcbiAgICAgIFxuICAgICAgY2FzZSAnbWFya2V0cGxhY2UnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlcXVpcmVkOiBbJ3JlcG8nXSxcbiAgICAgICAgICBvcHRpb25hbDogWyd1c2VyOmVtYWlsJ11cbiAgICAgICAgfTtcbiAgICAgIFxuICAgICAgY2FzZSAnZ2lzdCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVxdWlyZWQ6IFsnZ2lzdCddLFxuICAgICAgICAgIG9wdGlvbmFsOiBbJ3VzZXI6ZW1haWwnXVxuICAgICAgICB9O1xuICAgICAgXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlcXVpcmVkOiBbJ3JlcG8nXVxuICAgICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0b2tlbiBoYXMgc3VmZmljaWVudCBwZXJtaXNzaW9ucyBmb3Igb3BlcmF0aW9uXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZW5zdXJlVG9rZW5QZXJtaXNzaW9ucyhcbiAgICBvcGVyYXRpb246ICdyZWFkJyB8ICd3cml0ZScgfCAnbWFya2V0cGxhY2UnIHwgJ2dpc3QnXG4gICk6IFByb21pc2U8VG9rZW5WYWxpZGF0aW9uUmVzdWx0PiB7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmdldEdpdEh1YlRva2VuKCk7XG4gICAgXG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiAnTm8gR2l0SHViIHRva2VuIGF2YWlsYWJsZSdcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWlyZWRTY29wZXMgPSB0aGlzLmdldFJlcXVpcmVkU2NvcGVzKG9wZXJhdGlvbik7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVUb2tlblNjb3Blcyh0b2tlbiwgcmVxdWlyZWRTY29wZXMpO1xuICB9XG59Il19
@@ -1,20 +0,0 @@
1
- export declare class YamlValidator {
2
- private static purifyWindow;
3
- private static purify;
4
- static parsePersonaMetadataSafely(yamlContent: string): any;
5
- private static sanitizeMetadata;
6
- /**
7
- * Initialize DOMPurify instance if not already initialized
8
- */
9
- private static initializePurify;
10
- /**
11
- * Sanitize string input using DOMPurify to prevent XSS attacks
12
- * This replaces the regex-based approach with a more robust solution
13
- */
14
- private static sanitizeString;
15
- /**
16
- * Reset static DOMPurify cache (useful for long-running processes)
17
- */
18
- static resetCache(): void;
19
- }
20
- //# sourceMappingURL=yamlValidator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yamlValidator.d.ts","sourceRoot":"","sources":["../../../src/security/yamlValidator.ts"],"names":[],"mappings":"AA0BA,qBAAa,aAAa;IAExB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAa;IACxC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAkC;IAEvD,MAAM,CAAC,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG;IA6C3D,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAmB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAQ/B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IA4C7B;;OAEG;WACW,UAAU,IAAI,IAAI;CAIjC"}
@@ -1,138 +0,0 @@
1
- import yaml from 'js-yaml';
2
- import { z } from 'zod';
3
- import { logger } from '../utils/logger.js';
4
- import DOMPurify from 'dompurify';
5
- import { JSDOM } from 'jsdom';
6
- const PersonaMetadataSchema = z.object({
7
- name: z.string().min(1).max(100),
8
- description: z.string().min(1).max(1000),
9
- unique_id: z.string().optional(),
10
- author: z.string().max(50).optional(),
11
- triggers: z.array(z.string().max(50)).max(20).optional(),
12
- version: z.string().regex(/^\d+\.\d+\.\d+$/).optional(),
13
- category: z.enum(['creative', 'professional', 'educational', 'gaming', 'personal']).optional(),
14
- age_rating: z.enum(['all', '13+', '18+']).optional(),
15
- content_flags: z.array(z.string()).optional(),
16
- ai_generated: z.boolean().optional(),
17
- generation_method: z.string().max(50).optional(),
18
- price: z.string().max(20).optional(),
19
- license: z.string().max(100).optional(),
20
- created_date: z.string().optional()
21
- });
22
- export class YamlValidator {
23
- // Static cache for DOMPurify to improve performance
24
- static purifyWindow = null;
25
- static purify = null;
26
- static parsePersonaMetadataSafely(yamlContent) {
27
- if (!yamlContent || typeof yamlContent !== 'string') {
28
- throw new Error('YAML content must be a non-empty string');
29
- }
30
- // Size check
31
- if (yamlContent.length > 50000) { // 50KB
32
- throw new Error('YAML content too large');
33
- }
34
- // Check for dangerous tags
35
- if (yamlContent.includes('!!js/') || yamlContent.includes('!!python/')) {
36
- throw new Error('Dangerous YAML tags detected');
37
- }
38
- // Check for excessive anchors/aliases (YAML bomb protection)
39
- const anchorCount = (yamlContent.match(/&\w+/g) || []).length;
40
- const aliasCount = (yamlContent.match(/\*\w+/g) || []).length;
41
- if (anchorCount > 10 || aliasCount > 20) {
42
- throw new Error('Potential YAML bomb detected');
43
- }
44
- try {
45
- // Use safe load with restricted schema
46
- const rawData = yaml.load(yamlContent, {
47
- schema: yaml.CORE_SCHEMA, // No functions, only basic types
48
- onWarning: (warning) => {
49
- logger.warn('YAML parsing warning:', warning);
50
- }
51
- });
52
- // Validate against schema
53
- const validatedData = PersonaMetadataSchema.parse(rawData);
54
- // Additional sanitization
55
- return this.sanitizeMetadata(validatedData);
56
- }
57
- catch (error) {
58
- if (error instanceof Error && error.name === 'YAMLException') {
59
- throw new Error(`Invalid YAML syntax: ${error.message}`);
60
- }
61
- throw new Error(`Invalid persona metadata: ${error instanceof Error ? error.message : String(error)}`);
62
- }
63
- }
64
- static sanitizeMetadata(data) {
65
- const sanitized = { ...data };
66
- // Sanitize string fields
67
- const stringFields = ['name', 'description', 'author', 'unique_id'];
68
- for (const field of stringFields) {
69
- if (sanitized[field]) {
70
- sanitized[field] = this.sanitizeString(sanitized[field]);
71
- }
72
- }
73
- // Sanitize array fields
74
- if (sanitized.triggers) {
75
- sanitized.triggers = sanitized.triggers.map((t) => this.sanitizeString(t));
76
- }
77
- return sanitized;
78
- }
79
- /**
80
- * Initialize DOMPurify instance if not already initialized
81
- */
82
- static initializePurify() {
83
- if (!this.purifyWindow || !this.purify) {
84
- const dom = new JSDOM('');
85
- this.purifyWindow = dom.window;
86
- this.purify = DOMPurify(this.purifyWindow);
87
- }
88
- }
89
- /**
90
- * Sanitize string input using DOMPurify to prevent XSS attacks
91
- * This replaces the regex-based approach with a more robust solution
92
- */
93
- static sanitizeString(input) {
94
- // Limit input length to prevent DoS
95
- if (input.length > 10000) {
96
- input = input.substring(0, 10000);
97
- }
98
- // Initialize DOMPurify if needed
99
- this.initializePurify();
100
- // Use DOMPurify with strict configuration
101
- // ALLOWED_TAGS: [] strips all HTML tags
102
- // ALLOWED_ATTR: [] strips all attributes
103
- // FORBID_TAGS/FORBID_ATTR provide additional protection
104
- let sanitized = this.purify.sanitize(input, {
105
- ALLOWED_TAGS: [], // Strip all HTML tags
106
- ALLOWED_ATTR: [], // Strip all attributes
107
- FORBID_TAGS: ['style', 'script', 'iframe', 'object', 'embed', 'link'],
108
- FORBID_ATTR: ['onerror', 'onload', 'onclick', 'onmouseover', 'style', 'href', 'src']
109
- });
110
- // Additional protection against command injection patterns
111
- // These patterns might not be caught by DOMPurify
112
- const commandInjectionPatterns = [
113
- /`[^`]{0,1000}`/g, // Backtick expressions
114
- /\$\([^)]{0,1000}\)/g, // Command substitution
115
- /\$\{[^}]{0,1000}\}/g, // Variable expansion
116
- /\\x[0-9a-fA-F]{2}/g, // Hex escapes
117
- /\\u[0-9a-fA-F]{4}/g, // Unicode escapes
118
- /\\[0-7]{1,3}/g // Octal escapes
119
- ];
120
- for (const pattern of commandInjectionPatterns) {
121
- sanitized = sanitized.replace(pattern, '');
122
- }
123
- // Remove null bytes and normalize whitespace
124
- sanitized = sanitized
125
- .replace(/\x00/g, '') // Remove null bytes
126
- .replace(/[\r\n]+/g, ' ') // Replace newlines with spaces
127
- .trim();
128
- return sanitized;
129
- }
130
- /**
131
- * Reset static DOMPurify cache (useful for long-running processes)
132
- */
133
- static resetCache() {
134
- this.purifyWindow = null;
135
- this.purify = null;
136
- }
137
- }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZWN1cml0eS95YW1sVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFNBQVMsQ0FBQztBQUMzQixPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU5QixNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDckMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUNoQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3hDLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN4RCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN2RCxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxD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QkFBcUIsRUFBUSx1QkFBdUI7WUFDcEQscUJBQXFCLEVBQVEscUJBQXFCO1lBQ2xELG9CQUFvQixFQUFTLGNBQWM7WUFDM0Msb0JBQW9CLEVBQVMsa0JBQWtCO1lBQy9DLGVBQWUsQ0FBYyxnQkFBZ0I7U0FDOUMsQ0FBQztRQUVGLEtBQUssTUFBTSxPQUFPLElBQUksd0JBQXdCLEVBQUUsQ0FBQztZQUMvQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELDZDQUE2QztRQUM3QyxTQUFTLEdBQUcsU0FBUzthQUNsQixPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFVLG9CQUFvQjthQUNsRCxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFNLCtCQUErQjthQUM3RCxJQUFJLEVBQUUsQ0FBQztRQUVWLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxVQUFVO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeWFtbCBmcm9tICdqcy15YW1sJztcbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvbG9nZ2VyLmpzJztcbmltcG9ydCBET01QdXJpZnkgZnJvbSAnZG9tcHVyaWZ5JztcbmltcG9ydCB7IEpTRE9NIH0gZnJvbSAnanNkb20nO1xuXG5jb25zdCBQZXJzb25hTWV0YWRhdGFTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG5hbWU6IHouc3RyaW5nKCkubWluKDEpLm1heCgxMDApLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5taW4oMSkubWF4KDEwMDApLFxuICB1bmlxdWVfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYXV0aG9yOiB6LnN0cmluZygpLm1heCg1MCkub3B0aW9uYWwoKSxcbiAgdHJpZ2dlcnM6IHouYXJyYXkoei5zdHJpbmcoKS5tYXgoNTApKS5tYXgoMjApLm9wdGlvbmFsKCksXG4gIHZlcnNpb246IHouc3RyaW5nKCkucmVnZXgoL15cXGQrXFwuXFxkK1xcLlxcZCskLykub3B0aW9uYWwoKSxcbiAgY2F0ZWdvcnk6IHouZW51bShbJ2NyZWF0aXZlJywgJ3Byb2Zlc3Npb25hbCcsICdlZHVjYXRpb25hbCcsICdnYW1pbmcnLCAncGVyc29uYWwnXSkub3B0aW9uYWwoKSxcbiAgYWdlX3JhdGluZzogei5lbnVtKFsnYWxsJywgJzEzKycsICcxOCsnXSkub3B0aW9uYWwoKSxcbiAgY29udGVudF9mbGFnczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBhaV9nZW5lcmF0ZWQ6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGdlbmVyYXRpb25fbWV0aG9kOiB6LnN0cmluZygpLm1heCg1MCkub3B0aW9uYWwoKSxcbiAgcHJpY2U6IHouc3RyaW5nKCkubWF4KDIwKS5vcHRpb25hbCgpLFxuICBsaWNlbnNlOiB6LnN0cmluZygpLm1heCgxMDApLm9wdGlvbmFsKCksXG4gIGNyZWF0ZWRfZGF0ZTogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KTtcblxuLy8gVHlwZSBkZWNsYXJhdGlvbnMgZm9yIGJldHRlciB0eXBlIHNhZmV0eVxudHlwZSBET01QdXJpZnlJbnN0YW5jZSA9IFJldHVyblR5cGU8dHlwZW9mIERPTVB1cmlmeT47XG5cbmV4cG9ydCBjbGFzcyBZYW1sVmFsaWRhdG9yIHtcbiAgLy8gU3RhdGljIGNhY2hlIGZvciBET01QdXJpZnkgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZVxuICBwcml2YXRlIHN0YXRpYyBwdXJpZnlXaW5kb3c6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgc3RhdGljIHB1cmlmeTogRE9NUHVyaWZ5SW5zdGFuY2UgfCBudWxsID0gbnVsbDtcblxuICBzdGF0aWMgcGFyc2VQZXJzb25hTWV0YWRhdGFTYWZlbHkoeWFtbENvbnRlbnQ6IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKCF5YW1sQ29udGVudCB8fCB0eXBlb2YgeWFtbENvbnRlbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lBTUwgY29udGVudCBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuICAgIH1cbiAgICBcbiAgICAvLyBTaXplIGNoZWNrXG4gICAgaWYgKHlhbWxDb250ZW50Lmxlbmd0aCA+IDUwMDAwKSB7IC8vIDUwS0JcbiAgICAgIHRocm93IG5ldyBFcnJvcignWUFNTCBjb250ZW50IHRvbyBsYXJnZScpO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBmb3IgZGFuZ2Vyb3VzIHRhZ3NcbiAgICBpZiAoeWFtbENvbnRlbnQuaW5jbHVkZXMoJyEhanMvJykgfHwgeWFtbENvbnRlbnQuaW5jbHVkZXMoJyEhcHl0aG9uLycpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Rhbmdlcm91cyBZQU1MIHRhZ3MgZGV0ZWN0ZWQnKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ2hlY2sgZm9yIGV4Y2Vzc2l2ZSBhbmNob3JzL2FsaWFzZXMgKFlBTUwgYm9tYiBwcm90ZWN0aW9uKVxuICAgIGNvbnN0IGFuY2hvckNvdW50ID0gKHlhbWxDb250ZW50Lm1hdGNoKC8mXFx3Ky9nKSB8fCBbXSkubGVuZ3RoO1xuICAgIGNvbnN0IGFsaWFzQ291bnQgPSAoeWFtbENvbnRlbnQubWF0Y2goL1xcKlxcdysvZykgfHwgW10pLmxlbmd0aDtcbiAgICBcbiAgICBpZiAoYW5jaG9yQ291bnQgPiAxMCB8fCBhbGlhc0NvdW50ID4gMjApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUG90ZW50aWFsIFlBTUwgYm9tYiBkZXRlY3RlZCcpO1xuICAgIH1cbiAgICBcbiAgICB0cnkge1xuICAgICAgLy8gVXNlIHNhZmUgbG9hZCB3aXRoIHJlc3RyaWN0ZWQgc2NoZW1hXG4gICAgICBjb25zdCByYXdEYXRhID0geWFtbC5sb2FkKHlhbWxDb250ZW50LCB7XG4gICAgICAgIHNjaGVtYTogeWFtbC5DT1JFX1NDSEVNQSwgLy8gTm8gZnVuY3Rpb25zLCBvbmx5IGJhc2ljIHR5cGVzXG4gICAgICAgIG9uV2FybmluZzogKHdhcm5pbmcpID0+IHtcbiAgICAgICAgICBsb2dnZXIud2FybignWUFNTCBwYXJzaW5nIHdhcm5pbmc6Jywgd2FybmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgXG4gICAgICAvLyBWYWxpZGF0ZSBhZ2FpbnN0IHNjaGVtYVxuICAgICAgY29uc3QgdmFsaWRhdGVkRGF0YSA9IFBlcnNvbmFNZXRhZGF0YVNjaGVtYS5wYXJzZShyYXdEYXRhKTtcbiAgICAgIFxuICAgICAgLy8gQWRkaXRpb25hbCBzYW5pdGl6YXRpb25cbiAgICAgIHJldHVybiB0aGlzLnNhbml0aXplTWV0YWRhdGEodmFsaWRhdGVkRGF0YSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm5hbWUgPT09ICdZQU1MRXhjZXB0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgWUFNTCBzeW50YXg6ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwZXJzb25hIG1ldGFkYXRhOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzYW5pdGl6ZU1ldGFkYXRhKGRhdGE6IGFueSk6IGFueSB7XG4gICAgY29uc3Qgc2FuaXRpemVkID0geyAuLi5kYXRhIH07XG4gICAgXG4gICAgLy8gU2FuaXRpemUgc3RyaW5nIGZpZWxkc1xuICAgIGNvbnN0IHN0cmluZ0ZpZWxkcyA9IFsnbmFtZScsICdkZXNjcmlwdGlvbicsICdhdXRob3InLCAndW5pcXVlX2lkJ107XG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBzdHJpbmdGaWVsZHMpIHtcbiAgICAgIGlmIChzYW5pdGl6ZWRbZmllbGRdKSB7XG4gICAgICAgIHNhbml0aXplZFtmaWVsZF0gPSB0aGlzLnNhbml0aXplU3RyaW5nKHNhbml0aXplZFtmaWVsZF0pO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBTYW5pdGl6ZSBhcnJheSBmaWVsZHNcbiAgICBpZiAoc2FuaXRpemVkLnRyaWdnZXJzKSB7XG4gICAgICBzYW5pdGl6ZWQudHJpZ2dlcnMgPSBzYW5pdGl6ZWQudHJpZ2dlcnMubWFwKCh0OiBzdHJpbmcpID0+IHRoaXMuc2FuaXRpemVTdHJpbmcodCkpO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gc2FuaXRpemVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgRE9NUHVyaWZ5IGluc3RhbmNlIGlmIG5vdCBhbHJlYWR5IGluaXRpYWxpemVkXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBpbml0aWFsaXplUHVyaWZ5KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wdXJpZnlXaW5kb3cgfHwgIXRoaXMucHVyaWZ5KSB7XG4gICAgICBjb25zdCBkb20gPSBuZXcgSlNET00oJycpO1xuICAgICAgdGhpcy5wdXJpZnlXaW5kb3cgPSBkb20ud2luZG93O1xuICAgICAgdGhpcy5wdXJpZnkgPSBET01QdXJpZnkodGhpcy5wdXJpZnlXaW5kb3cpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTYW5pdGl6ZSBzdHJpbmcgaW5wdXQgdXNpbmcgRE9NUHVyaWZ5IHRvIHByZXZlbnQgWFNTIGF0dGFja3NcbiAgICogVGhpcyByZXBsYWNlcyB0aGUgcmVnZXgtYmFzZWQgYXBwcm9hY2ggd2l0aCBhIG1vcmUgcm9idXN0IHNvbHV0aW9uXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBzYW5pdGl6ZVN0cmluZyhpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBMaW1pdCBpbnB1dCBsZW5ndGggdG8gcHJldmVudCBEb1NcbiAgICBpZiAoaW5wdXQubGVuZ3RoID4gMTAwMDApIHtcbiAgICAgIGlucHV0ID0gaW5wdXQuc3Vic3RyaW5nKDAsIDEwMDAwKTtcbiAgICB9XG4gICAgXG4gICAgLy8gSW5pdGlhbGl6ZSBET01QdXJpZnkgaWYgbmVlZGVkXG4gICAgdGhpcy5pbml0aWFsaXplUHVyaWZ5KCk7XG4gICAgXG4gICAgLy8gVXNlIERPTVB1cmlmeSB3aXRoIHN0cmljdCBjb25maWd1cmF0aW9uXG4gICAgLy8gQUxMT1dFRF9UQUdTOiBbXSBzdHJpcHMgYWxsIEhUTUwgdGFnc1xuICAgIC8vIEFMTE9XRURfQVRUUjogW10gc3RyaXBzIGFsbCBhdHRyaWJ1dGVzXG4gICAgLy8gRk9SQklEX1RBR1MvRk9SQklEX0FUVFIgcHJvdmlkZSBhZGRpdGlvbmFsIHByb3RlY3Rpb25cbiAgICBsZXQgc2FuaXRpemVkID0gdGhpcy5wdXJpZnkhLnNhbml0aXplKGlucHV0LCB7XG4gICAgICBBTExPV0VEX1RBR1M6IFtdLCAgICAgIC8vIFN0cmlwIGFsbCBIVE1MIHRhZ3NcbiAgICAgIEFMTE9XRURfQVRUUjogW10sICAgICAgLy8gU3RyaXAgYWxsIGF0dHJpYnV0ZXNcbiAgICAgIEZPUkJJRF9UQUdTOiBbJ3N0eWxlJywgJ3NjcmlwdCcsICdpZnJhbWUnLCAnb2JqZWN0JywgJ2VtYmVkJywgJ2xpbmsnXSxcbiAgICAgIEZPUkJJRF9BVFRSOiBbJ29uZXJyb3InLCAnb25sb2FkJywgJ29uY2xpY2snLCAnb25tb3VzZW92ZXInLCAnc3R5bGUnLCAnaHJlZicsICdzcmMnXVxuICAgIH0pO1xuICAgIFxuICAgIC8vIEFkZGl0aW9uYWwgcHJvdGVjdGlvbiBhZ2FpbnN0IGNvbW1hbmQgaW5qZWN0aW9uIHBhdHRlcm5zXG4gICAgLy8gVGhlc2UgcGF0dGVybnMgbWlnaHQgbm90IGJlIGNhdWdodCBieSBET01QdXJpZnlcbiAgICBjb25zdCBjb21tYW5kSW5qZWN0aW9uUGF0dGVybnMgPSBbXG4gICAgICAvYFteYF17MCwxMDAwfWAvZywgICAgICAgICAgIC8vIEJhY2t0aWNrIGV4cHJlc3Npb25zXG4gICAgICAvXFwkXFwoW14pXXswLDEwMDB9XFwpL2csICAgICAgIC8vIENvbW1hbmQgc3Vic3RpdHV0aW9uXG4gICAgICAvXFwkXFx7W159XXswLDEwMDB9XFx9L2csICAgICAgIC8vIFZhcmlhYmxlIGV4cGFuc2lvblxuICAgICAgL1xcXFx4WzAtOWEtZkEtRl17Mn0vZywgICAgICAgIC8vIEhleCBlc2NhcGVzXG4gICAgICAvXFxcXHVbMC05YS1mQS1GXXs0fS9nLCAgICAgICAgLy8gVW5pY29kZSBlc2NhcGVzXG4gICAgICAvXFxcXFswLTddezEsM30vZyAgICAgICAgICAgICAgLy8gT2N0YWwgZXNjYXBlc1xuICAgIF07XG4gICAgXG4gICAgZm9yIChjb25zdCBwYXR0ZXJuIG9mIGNvbW1hbmRJbmplY3Rpb25QYXR0ZXJucykge1xuICAgICAgc2FuaXRpemVkID0gc2FuaXRpemVkLnJlcGxhY2UocGF0dGVybiwgJycpO1xuICAgIH1cbiAgICBcbiAgICAvLyBSZW1vdmUgbnVsbCBieXRlcyBhbmQgbm9ybWFsaXplIHdoaXRlc3BhY2VcbiAgICBzYW5pdGl6ZWQgPSBzYW5pdGl6ZWRcbiAgICAgIC5yZXBsYWNlKC9cXHgwMC9nLCAnJykgICAgICAgICAgLy8gUmVtb3ZlIG51bGwgYnl0ZXNcbiAgICAgIC5yZXBsYWNlKC9bXFxyXFxuXSsvZywgJyAnKSAgICAgIC8vIFJlcGxhY2UgbmV3bGluZXMgd2l0aCBzcGFjZXNcbiAgICAgIC50cmltKCk7XG4gICAgXG4gICAgcmV0dXJuIHNhbml0aXplZDtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFJlc2V0IHN0YXRpYyBET01QdXJpZnkgY2FjaGUgKHVzZWZ1bCBmb3IgbG9uZy1ydW5uaW5nIHByb2Nlc3NlcylcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVzZXRDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLnB1cmlmeVdpbmRvdyA9IG51bGw7XG4gICAgdGhpcy5wdXJpZnkgPSBudWxsO1xuICB9XG59Il19
@@ -1,31 +0,0 @@
1
- /**
2
- * Server setup and initialization
3
- */
4
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
5
- import { ToolRegistry } from './tools/ToolRegistry.js';
6
- import { IToolHandler } from './types.js';
7
- export declare class ServerSetup {
8
- private toolRegistry;
9
- constructor();
10
- /**
11
- * Initialize the server with all tools and handlers
12
- */
13
- setupServer(server: Server, instance: IToolHandler): void;
14
- /**
15
- * Register all tool categories
16
- */
17
- private registerTools;
18
- /**
19
- * Setup the ListToolsRequest handler
20
- */
21
- private setupListToolsHandler;
22
- /**
23
- * Setup the CallToolRequest handler
24
- */
25
- private setupCallToolHandler;
26
- /**
27
- * Get the tool registry
28
- */
29
- getToolRegistry(): ToolRegistry;
30
- }
31
- //# sourceMappingURL=ServerSetup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServerSetup.d.ts","sourceRoot":"","sources":["../../../src/server/ServerSetup.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMvD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAe;;IAMnC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IASzD;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;IACH,eAAe,IAAI,YAAY;CAGhC"}
@@ -1,79 +0,0 @@
1
- /**
2
- * Server setup and initialization
3
- */
4
- import { CallToolRequestSchema, ErrorCode, ListToolsRequestSchema, McpError } from "@modelcontextprotocol/sdk/types.js";
5
- import { ToolRegistry } from './tools/ToolRegistry.js';
6
- import { getPersonaTools } from './tools/PersonaTools.js';
7
- import { getMarketplaceTools } from './tools/MarketplaceTools.js';
8
- import { getUserTools } from './tools/UserTools.js';
9
- import { getUpdateTools } from './tools/UpdateTools.js';
10
- import { getConfigTools } from './tools/ConfigTools.js';
11
- export class ServerSetup {
12
- toolRegistry;
13
- constructor() {
14
- this.toolRegistry = new ToolRegistry();
15
- }
16
- /**
17
- * Initialize the server with all tools and handlers
18
- */
19
- setupServer(server, instance) {
20
- // Register all tools
21
- this.registerTools(instance);
22
- // Setup request handlers
23
- this.setupListToolsHandler(server);
24
- this.setupCallToolHandler(server);
25
- }
26
- /**
27
- * Register all tool categories
28
- */
29
- registerTools(instance) {
30
- // Register persona tools
31
- this.toolRegistry.registerMany(getPersonaTools(instance));
32
- // Register marketplace tools
33
- this.toolRegistry.registerMany(getMarketplaceTools(instance));
34
- // Register user tools
35
- this.toolRegistry.registerMany(getUserTools(instance));
36
- // Register update tools
37
- this.toolRegistry.registerMany(getUpdateTools(instance));
38
- // Register config tools
39
- this.toolRegistry.registerMany(getConfigTools(instance));
40
- }
41
- /**
42
- * Setup the ListToolsRequest handler
43
- */
44
- setupListToolsHandler(server) {
45
- server.setRequestHandler(ListToolsRequestSchema, async () => {
46
- return {
47
- tools: this.toolRegistry.getAllTools()
48
- };
49
- });
50
- }
51
- /**
52
- * Setup the CallToolRequest handler
53
- */
54
- setupCallToolHandler(server) {
55
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
56
- const { name, arguments: args } = request.params;
57
- try {
58
- const handler = this.toolRegistry.getHandler(name);
59
- if (!handler) {
60
- throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
61
- }
62
- return await handler(args);
63
- }
64
- catch (error) {
65
- if (error instanceof McpError) {
66
- throw error;
67
- }
68
- throw new McpError(ErrorCode.InternalError, `Error executing tool ${name}: ${error}`);
69
- }
70
- });
71
- }
72
- /**
73
- * Get the tool registry
74
- */
75
- getToolRegistry() {
76
- return this.toolRegistry;
77
- }
78
- }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmVyU2V0dXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL1NlcnZlclNldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBR0gsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3hELE1BQU0sT0FBTyxXQUFXO0lBQ2QsWUFBWSxDQUFlO0lBRW5DO1FBQ0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVcsQ0FBQyxNQUFjLEVBQUUsUUFBc0I7UUFDaEQscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0IseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYSxDQUFDLFFBQXNCO1FBQzFDLHlCQUF5QjtRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUUxRCw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUU5RCxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFdkQsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXpELHdCQUF3QjtRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUIsQ0FBQyxNQUFjO1FBQzFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMxRCxPQUFPO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRTthQUN2QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0IsQ0FBQyxNQUFjO1FBQ3pDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUVqRCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRW5ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDYixNQUFNLElBQUksUUFBUSxDQUNoQixTQUFTLENBQUMsY0FBYyxFQUN4QixpQkFBaUIsSUFBSSxFQUFFLENBQ3hCLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCxPQUFPLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksS0FBSyxZQUFZLFFBQVEsRUFBRSxDQUFDO29CQUM5QixNQUFNLEtBQUssQ0FBQztnQkFDZCxDQUFDO2dCQUVELE1BQU0sSUFBSSxRQUFRLENBQ2hCLFNBQVMsQ0FBQyxhQUFhLEVBQ3ZCLHdCQUF3QixJQUFJLEtBQUssS0FBSyxFQUFFLENBQ3pDLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VydmVyIHNldHVwIGFuZCBpbml0aWFsaXphdGlvblxuICovXG5cbmltcG9ydCB7IFNlcnZlciB9IGZyb20gXCJAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NlcnZlci9pbmRleC5qc1wiO1xuaW1wb3J0IHsgQ2FsbFRvb2xSZXF1ZXN0U2NoZW1hLCBFcnJvckNvZGUsIExpc3RUb29sc1JlcXVlc3RTY2hlbWEsIE1jcEVycm9yIH0gZnJvbSBcIkBtb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvdHlwZXMuanNcIjtcbmltcG9ydCB7IFRvb2xSZWdpc3RyeSB9IGZyb20gJy4vdG9vbHMvVG9vbFJlZ2lzdHJ5LmpzJztcbmltcG9ydCB7IGdldFBlcnNvbmFUb29scyB9IGZyb20gJy4vdG9vbHMvUGVyc29uYVRvb2xzLmpzJztcbmltcG9ydCB7IGdldE1hcmtldHBsYWNlVG9vbHMgfSBmcm9tICcuL3Rvb2xzL01hcmtldHBsYWNlVG9vbHMuanMnO1xuaW1wb3J0IHsgZ2V0VXNlclRvb2xzIH0gZnJvbSAnLi90b29scy9Vc2VyVG9vbHMuanMnO1xuaW1wb3J0IHsgZ2V0VXBkYXRlVG9vbHMgfSBmcm9tICcuL3Rvb2xzL1VwZGF0ZVRvb2xzLmpzJztcbmltcG9ydCB7IGdldENvbmZpZ1Rvb2xzIH0gZnJvbSAnLi90b29scy9Db25maWdUb29scy5qcyc7XG5pbXBvcnQgeyBJVG9vbEhhbmRsZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFNlcnZlclNldHVwIHtcbiAgcHJpdmF0ZSB0b29sUmVnaXN0cnk6IFRvb2xSZWdpc3RyeTtcbiAgXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudG9vbFJlZ2lzdHJ5ID0gbmV3IFRvb2xSZWdpc3RyeSgpO1xuICB9XG4gIFxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgc2VydmVyIHdpdGggYWxsIHRvb2xzIGFuZCBoYW5kbGVyc1xuICAgKi9cbiAgc2V0dXBTZXJ2ZXIoc2VydmVyOiBTZXJ2ZXIsIGluc3RhbmNlOiBJVG9vbEhhbmRsZXIpOiB2b2lkIHtcbiAgICAvLyBSZWdpc3RlciBhbGwgdG9vbHNcbiAgICB0aGlzLnJlZ2lzdGVyVG9vbHMoaW5zdGFuY2UpO1xuICAgIFxuICAgIC8vIFNldHVwIHJlcXVlc3QgaGFuZGxlcnNcbiAgICB0aGlzLnNldHVwTGlzdFRvb2xzSGFuZGxlcihzZXJ2ZXIpO1xuICAgIHRoaXMuc2V0dXBDYWxsVG9vbEhhbmRsZXIoc2VydmVyKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGFsbCB0b29sIGNhdGVnb3JpZXNcbiAgICovXG4gIHByaXZhdGUgcmVnaXN0ZXJUb29scyhpbnN0YW5jZTogSVRvb2xIYW5kbGVyKTogdm9pZCB7XG4gICAgLy8gUmVnaXN0ZXIgcGVyc29uYSB0b29sc1xuICAgIHRoaXMudG9vbFJlZ2lzdHJ5LnJlZ2lzdGVyTWFueShnZXRQZXJzb25hVG9vbHMoaW5zdGFuY2UpKTtcbiAgICBcbiAgICAvLyBSZWdpc3RlciBtYXJrZXRwbGFjZSB0b29sc1xuICAgIHRoaXMudG9vbFJlZ2lzdHJ5LnJlZ2lzdGVyTWFueShnZXRNYXJrZXRwbGFjZVRvb2xzKGluc3RhbmNlKSk7XG4gICAgXG4gICAgLy8gUmVnaXN0ZXIgdXNlciB0b29sc1xuICAgIHRoaXMudG9vbFJlZ2lzdHJ5LnJlZ2lzdGVyTWFueShnZXRVc2VyVG9vbHMoaW5zdGFuY2UpKTtcbiAgICBcbiAgICAvLyBSZWdpc3RlciB1cGRhdGUgdG9vbHNcbiAgICB0aGlzLnRvb2xSZWdpc3RyeS5yZWdpc3Rlck1hbnkoZ2V0VXBkYXRlVG9vbHMoaW5zdGFuY2UpKTtcbiAgICBcbiAgICAvLyBSZWdpc3RlciBjb25maWcgdG9vbHNcbiAgICB0aGlzLnRvb2xSZWdpc3RyeS5yZWdpc3Rlck1hbnkoZ2V0Q29uZmlnVG9vbHMoaW5zdGFuY2UpKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIFNldHVwIHRoZSBMaXN0VG9vbHNSZXF1ZXN0IGhhbmRsZXJcbiAgICovXG4gIHByaXZhdGUgc2V0dXBMaXN0VG9vbHNIYW5kbGVyKHNlcnZlcjogU2VydmVyKTogdm9pZCB7XG4gICAgc2VydmVyLnNldFJlcXVlc3RIYW5kbGVyKExpc3RUb29sc1JlcXVlc3RTY2hlbWEsIGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRvb2xzOiB0aGlzLnRvb2xSZWdpc3RyeS5nZXRBbGxUb29scygpXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG4gIFxuICAvKipcbiAgICogU2V0dXAgdGhlIENhbGxUb29sUmVxdWVzdCBoYW5kbGVyXG4gICAqL1xuICBwcml2YXRlIHNldHVwQ2FsbFRvb2xIYW5kbGVyKHNlcnZlcjogU2VydmVyKTogdm9pZCB7XG4gICAgc2VydmVyLnNldFJlcXVlc3RIYW5kbGVyKENhbGxUb29sUmVxdWVzdFNjaGVtYSwgYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgYXJndW1lbnRzOiBhcmdzIH0gPSByZXF1ZXN0LnBhcmFtcztcbiAgICAgIFxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMudG9vbFJlZ2lzdHJ5LmdldEhhbmRsZXIobmFtZSk7XG4gICAgICAgIFxuICAgICAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTWNwRXJyb3IoXG4gICAgICAgICAgICBFcnJvckNvZGUuTWV0aG9kTm90Rm91bmQsXG4gICAgICAgICAgICBgVW5rbm93biB0b29sOiAke25hbWV9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHJldHVybiBhd2FpdCBoYW5kbGVyKGFyZ3MpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgTWNwRXJyb3IpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhyb3cgbmV3IE1jcEVycm9yKFxuICAgICAgICAgIEVycm9yQ29kZS5JbnRlcm5hbEVycm9yLFxuICAgICAgICAgIGBFcnJvciBleGVjdXRpbmcgdG9vbCAke25hbWV9OiAke2Vycm9yfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCB0aGUgdG9vbCByZWdpc3RyeVxuICAgKi9cbiAgZ2V0VG9vbFJlZ2lzdHJ5KCk6IFRvb2xSZWdpc3RyeSB7XG4gICAgcmV0dXJuIHRoaXMudG9vbFJlZ2lzdHJ5O1xuICB9XG59Il19
@@ -1,7 +0,0 @@
1
- /**
2
- * Server module exports
3
- */
4
- export * from './ServerSetup.js';
5
- export * from './tools/index.js';
6
- export * from './types.js';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Server module exports
3
- */
4
- export * from './ServerSetup.js';
5
- export * from './tools/index.js';
6
- export * from './types.js';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXJ2ZXIgbW9kdWxlIGV4cG9ydHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL1NlcnZlclNldHVwLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbHMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy5qcyc7Il19