@winspan/claude-forge 8.54.3 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (879) hide show
  1. package/DEVELOPMENT.md +649 -33
  2. package/README.md +155 -17
  3. package/dist/catalogs/agents.json +72 -0
  4. package/dist/catalogs/skills.json +194 -0
  5. package/dist/claudemd/claudemd-generator.d.ts +45 -45
  6. package/dist/claudemd/claudemd-generator.d.ts.map +1 -1
  7. package/dist/claudemd/claudemd-generator.js +128 -449
  8. package/dist/claudemd/claudemd-generator.js.map +1 -1
  9. package/dist/claudemd/index.d.ts +14 -4
  10. package/dist/claudemd/index.d.ts.map +1 -1
  11. package/dist/claudemd/index.js +15 -4
  12. package/dist/claudemd/index.js.map +1 -1
  13. package/dist/claudemd/resume-manager.d.ts.map +1 -1
  14. package/dist/claudemd/resume-manager.js +37 -9
  15. package/dist/claudemd/resume-manager.js.map +1 -1
  16. package/dist/claudemd/templates/swarm-protocol.md +35 -186
  17. package/dist/claudemd/violations-manager.d.ts +40 -0
  18. package/dist/claudemd/violations-manager.d.ts.map +1 -0
  19. package/dist/claudemd/violations-manager.js +106 -0
  20. package/dist/claudemd/violations-manager.js.map +1 -0
  21. package/dist/cli/commands/admin.d.ts +15 -0
  22. package/dist/cli/commands/admin.d.ts.map +1 -0
  23. package/dist/cli/commands/admin.js +177 -0
  24. package/dist/cli/commands/admin.js.map +1 -0
  25. package/dist/cli/commands/agents.d.ts +18 -0
  26. package/dist/cli/commands/agents.d.ts.map +1 -0
  27. package/dist/cli/commands/agents.js +160 -0
  28. package/dist/cli/commands/agents.js.map +1 -0
  29. package/dist/cli/commands/bypass.d.ts +18 -0
  30. package/dist/cli/commands/bypass.d.ts.map +1 -0
  31. package/dist/cli/commands/bypass.js +87 -0
  32. package/dist/cli/commands/bypass.js.map +1 -0
  33. package/dist/cli/commands/claudemd.d.ts +60 -0
  34. package/dist/cli/commands/claudemd.d.ts.map +1 -1
  35. package/dist/cli/commands/claudemd.js +174 -37
  36. package/dist/cli/commands/claudemd.js.map +1 -1
  37. package/dist/cli/commands/config.d.ts.map +1 -1
  38. package/dist/cli/commands/config.js +94 -1
  39. package/dist/cli/commands/config.js.map +1 -1
  40. package/dist/cli/commands/daemon.d.ts +39 -0
  41. package/dist/cli/commands/daemon.d.ts.map +1 -1
  42. package/dist/cli/commands/daemon.js +167 -20
  43. package/dist/cli/commands/daemon.js.map +1 -1
  44. package/dist/cli/commands/decisions.d.ts +129 -0
  45. package/dist/cli/commands/decisions.d.ts.map +1 -0
  46. package/dist/cli/commands/decisions.js +669 -0
  47. package/dist/cli/commands/decisions.js.map +1 -0
  48. package/dist/cli/commands/doctor.d.ts +29 -0
  49. package/dist/cli/commands/doctor.d.ts.map +1 -0
  50. package/dist/cli/commands/doctor.js +124 -0
  51. package/dist/cli/commands/doctor.js.map +1 -0
  52. package/dist/cli/commands/entropy.d.ts +35 -0
  53. package/dist/cli/commands/entropy.d.ts.map +1 -0
  54. package/dist/cli/commands/entropy.js +121 -0
  55. package/dist/cli/commands/entropy.js.map +1 -0
  56. package/dist/cli/commands/executions.d.ts +1 -0
  57. package/dist/cli/commands/executions.d.ts.map +1 -1
  58. package/dist/cli/commands/executions.js +10 -1
  59. package/dist/cli/commands/executions.js.map +1 -1
  60. package/dist/cli/commands/fix.d.ts +31 -0
  61. package/dist/cli/commands/fix.d.ts.map +1 -0
  62. package/dist/cli/commands/fix.js +108 -0
  63. package/dist/cli/commands/fix.js.map +1 -0
  64. package/dist/cli/commands/governance.d.ts +21 -0
  65. package/dist/cli/commands/governance.d.ts.map +1 -0
  66. package/dist/cli/commands/governance.js +60 -0
  67. package/dist/cli/commands/governance.js.map +1 -0
  68. package/dist/cli/commands/init.d.ts +27 -0
  69. package/dist/cli/commands/init.d.ts.map +1 -1
  70. package/dist/cli/commands/init.js +158 -146
  71. package/dist/cli/commands/init.js.map +1 -1
  72. package/dist/cli/commands/insights-goal-check.d.ts +50 -0
  73. package/dist/cli/commands/insights-goal-check.d.ts.map +1 -0
  74. package/dist/cli/commands/insights-goal-check.js +318 -0
  75. package/dist/cli/commands/insights-goal-check.js.map +1 -0
  76. package/dist/cli/commands/insights.d.ts +15 -0
  77. package/dist/cli/commands/insights.d.ts.map +1 -0
  78. package/dist/cli/commands/insights.js +127 -0
  79. package/dist/cli/commands/insights.js.map +1 -0
  80. package/dist/cli/commands/knowledge.d.ts +66 -0
  81. package/dist/cli/commands/knowledge.d.ts.map +1 -0
  82. package/dist/cli/commands/knowledge.js +897 -0
  83. package/dist/cli/commands/knowledge.js.map +1 -0
  84. package/dist/cli/commands/mcp.d.ts +0 -12
  85. package/dist/cli/commands/mcp.d.ts.map +1 -1
  86. package/dist/cli/commands/mcp.js +11 -5
  87. package/dist/cli/commands/mcp.js.map +1 -1
  88. package/dist/cli/commands/menu.d.ts.map +1 -1
  89. package/dist/cli/commands/menu.js +10 -184
  90. package/dist/cli/commands/menu.js.map +1 -1
  91. package/dist/cli/commands/project.d.ts +98 -0
  92. package/dist/cli/commands/project.d.ts.map +1 -0
  93. package/dist/cli/commands/project.js +382 -0
  94. package/dist/cli/commands/project.js.map +1 -0
  95. package/dist/cli/commands/skills.d.ts.map +1 -1
  96. package/dist/cli/commands/skills.js +14 -128
  97. package/dist/cli/commands/skills.js.map +1 -1
  98. package/dist/cli/commands/spec.d.ts +40 -0
  99. package/dist/cli/commands/spec.d.ts.map +1 -0
  100. package/dist/cli/commands/spec.js +49 -0
  101. package/dist/cli/commands/spec.js.map +1 -0
  102. package/dist/cli/commands/stats.d.ts.map +1 -1
  103. package/dist/cli/commands/stats.js +3 -2
  104. package/dist/cli/commands/stats.js.map +1 -1
  105. package/dist/cli/commands/status.d.ts.map +1 -1
  106. package/dist/cli/commands/status.js +17 -2
  107. package/dist/cli/commands/status.js.map +1 -1
  108. package/dist/cli/commands/trace.d.ts.map +1 -1
  109. package/dist/cli/commands/trace.js +4 -9
  110. package/dist/cli/commands/trace.js.map +1 -1
  111. package/dist/cli/commands/violations.d.ts +14 -0
  112. package/dist/cli/commands/violations.d.ts.map +1 -0
  113. package/dist/cli/commands/violations.js +43 -0
  114. package/dist/cli/commands/violations.js.map +1 -0
  115. package/dist/cli/index.js +26 -0
  116. package/dist/cli/index.js.map +1 -1
  117. package/dist/cli/init/hook-manager.d.ts +1 -1
  118. package/dist/cli/init/hook-manager.d.ts.map +1 -1
  119. package/dist/cli/init/hook-manager.js +6 -0
  120. package/dist/cli/init/hook-manager.js.map +1 -1
  121. package/dist/cli/utils/resolve-session.d.ts +32 -0
  122. package/dist/cli/utils/resolve-session.d.ts.map +1 -0
  123. package/dist/cli/utils/resolve-session.js +39 -0
  124. package/dist/cli/utils/resolve-session.js.map +1 -0
  125. package/dist/core/config.d.ts +4 -1
  126. package/dist/core/config.d.ts.map +1 -1
  127. package/dist/core/config.js +11 -23
  128. package/dist/core/config.js.map +1 -1
  129. package/dist/core/constants.d.ts +14 -13
  130. package/dist/core/constants.d.ts.map +1 -1
  131. package/dist/core/constants.js +20 -13
  132. package/dist/core/constants.js.map +1 -1
  133. package/dist/core/diagnostics/checks.d.ts +151 -0
  134. package/dist/core/diagnostics/checks.d.ts.map +1 -0
  135. package/dist/core/diagnostics/checks.js +765 -0
  136. package/dist/core/diagnostics/checks.js.map +1 -0
  137. package/dist/core/diagnostics/daemon-status.d.ts +77 -0
  138. package/dist/core/diagnostics/daemon-status.d.ts.map +1 -0
  139. package/dist/core/diagnostics/daemon-status.js +113 -0
  140. package/dist/core/diagnostics/daemon-status.js.map +1 -0
  141. package/dist/core/diagnostics/entropy-checks.d.ts +82 -0
  142. package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -0
  143. package/dist/core/diagnostics/entropy-checks.js +395 -0
  144. package/dist/core/diagnostics/entropy-checks.js.map +1 -0
  145. package/dist/core/diagnostics/fix-runner.d.ts +54 -0
  146. package/dist/core/diagnostics/fix-runner.d.ts.map +1 -0
  147. package/dist/core/diagnostics/fix-runner.js +90 -0
  148. package/dist/core/diagnostics/fix-runner.js.map +1 -0
  149. package/dist/core/diagnostics/knip-runner.d.ts +49 -0
  150. package/dist/core/diagnostics/knip-runner.d.ts.map +1 -0
  151. package/dist/core/diagnostics/knip-runner.js +100 -0
  152. package/dist/core/diagnostics/knip-runner.js.map +1 -0
  153. package/dist/core/diagnostics/markers.d.ts +96 -0
  154. package/dist/core/diagnostics/markers.d.ts.map +1 -0
  155. package/dist/core/diagnostics/markers.js +153 -0
  156. package/dist/core/diagnostics/markers.js.map +1 -0
  157. package/dist/core/governance/global-inject.d.ts +60 -0
  158. package/dist/core/governance/global-inject.d.ts.map +1 -0
  159. package/dist/core/governance/global-inject.js +129 -0
  160. package/dist/core/governance/global-inject.js.map +1 -0
  161. package/dist/core/queue/index.d.ts +16 -3
  162. package/dist/core/queue/index.d.ts.map +1 -1
  163. package/dist/core/queue/index.js +14 -3
  164. package/dist/core/queue/index.js.map +1 -1
  165. package/dist/core/storage/base.d.ts +158 -0
  166. package/dist/core/storage/base.d.ts.map +1 -1
  167. package/dist/core/storage/base.js +570 -0
  168. package/dist/core/storage/base.js.map +1 -1
  169. package/dist/core/storage/codec/tool-input-codec.d.ts +93 -0
  170. package/dist/core/storage/codec/tool-input-codec.d.ts.map +1 -0
  171. package/dist/core/storage/codec/tool-input-codec.js +159 -0
  172. package/dist/core/storage/codec/tool-input-codec.js.map +1 -0
  173. package/dist/core/storage/decisions.d.ts +362 -0
  174. package/dist/core/storage/decisions.d.ts.map +1 -0
  175. package/dist/core/storage/decisions.js +502 -0
  176. package/dist/core/storage/decisions.js.map +1 -0
  177. package/dist/core/storage/events.d.ts +112 -8
  178. package/dist/core/storage/events.d.ts.map +1 -1
  179. package/dist/core/storage/events.js +390 -39
  180. package/dist/core/storage/events.js.map +1 -1
  181. package/dist/core/storage/feedback.d.ts +131 -0
  182. package/dist/core/storage/feedback.d.ts.map +1 -0
  183. package/dist/core/storage/feedback.js +187 -0
  184. package/dist/core/storage/feedback.js.map +1 -0
  185. package/dist/core/storage/forge-config.d.ts +40 -0
  186. package/dist/core/storage/forge-config.d.ts.map +1 -0
  187. package/dist/core/storage/forge-config.js +65 -0
  188. package/dist/core/storage/forge-config.js.map +1 -0
  189. package/dist/core/storage/injections.d.ts +28 -0
  190. package/dist/core/storage/injections.d.ts.map +1 -1
  191. package/dist/core/storage/injections.js +62 -5
  192. package/dist/core/storage/injections.js.map +1 -1
  193. package/dist/core/storage/knowledge.d.ts +106 -0
  194. package/dist/core/storage/knowledge.d.ts.map +1 -0
  195. package/dist/core/storage/knowledge.js +202 -0
  196. package/dist/core/storage/knowledge.js.map +1 -0
  197. package/dist/core/storage/maintenance.d.ts +36 -9
  198. package/dist/core/storage/maintenance.d.ts.map +1 -1
  199. package/dist/core/storage/maintenance.js +56 -24
  200. package/dist/core/storage/maintenance.js.map +1 -1
  201. package/dist/core/storage/pipeline-rollup.d.ts +117 -0
  202. package/dist/core/storage/pipeline-rollup.d.ts.map +1 -0
  203. package/dist/core/storage/pipeline-rollup.js +471 -0
  204. package/dist/core/storage/pipeline-rollup.js.map +1 -0
  205. package/dist/core/storage/routing.d.ts +16 -3
  206. package/dist/core/storage/routing.d.ts.map +1 -1
  207. package/dist/core/storage/routing.js +39 -8
  208. package/dist/core/storage/routing.js.map +1 -1
  209. package/dist/core/storage/rows.d.ts +50 -7
  210. package/dist/core/storage/rows.d.ts.map +1 -1
  211. package/dist/core/storage/schema.sql +302 -23
  212. package/dist/core/storage/sessions.d.ts +136 -0
  213. package/dist/core/storage/sessions.d.ts.map +1 -1
  214. package/dist/core/storage/sessions.js +351 -15
  215. package/dist/core/storage/sessions.js.map +1 -1
  216. package/dist/core/storage/skills.d.ts +1 -0
  217. package/dist/core/storage/skills.d.ts.map +1 -1
  218. package/dist/core/storage/skills.js +21 -6
  219. package/dist/core/storage/skills.js.map +1 -1
  220. package/dist/core/storage/sqlite.d.ts +253 -20
  221. package/dist/core/storage/sqlite.d.ts.map +1 -1
  222. package/dist/core/storage/sqlite.js +425 -16
  223. package/dist/core/storage/sqlite.js.map +1 -1
  224. package/dist/core/storage/tasks.d.ts +474 -2
  225. package/dist/core/storage/tasks.d.ts.map +1 -1
  226. package/dist/core/storage/tasks.js +1213 -18
  227. package/dist/core/storage/tasks.js.map +1 -1
  228. package/dist/core/storage/tool-intercepts.d.ts +69 -0
  229. package/dist/core/storage/tool-intercepts.d.ts.map +1 -0
  230. package/dist/core/storage/tool-intercepts.js +116 -0
  231. package/dist/core/storage/tool-intercepts.js.map +1 -0
  232. package/dist/core/storage/workflow-recommendations.d.ts +124 -0
  233. package/dist/core/storage/workflow-recommendations.d.ts.map +1 -0
  234. package/dist/core/storage/workflow-recommendations.js +274 -0
  235. package/dist/core/storage/workflow-recommendations.js.map +1 -0
  236. package/dist/core/types.d.ts +112 -17
  237. package/dist/core/types.d.ts.map +1 -1
  238. package/dist/core/types.js +12 -0
  239. package/dist/core/types.js.map +1 -1
  240. package/dist/core/utils/backup.d.ts +81 -0
  241. package/dist/core/utils/backup.d.ts.map +1 -0
  242. package/dist/core/utils/backup.js +98 -0
  243. package/dist/core/utils/backup.js.map +1 -0
  244. package/dist/core/utils/binary-paths.d.ts +92 -0
  245. package/dist/core/utils/binary-paths.d.ts.map +1 -0
  246. package/dist/core/utils/binary-paths.js +166 -0
  247. package/dist/core/utils/binary-paths.js.map +1 -0
  248. package/dist/core/utils/bypass-token.d.ts +75 -0
  249. package/dist/core/utils/bypass-token.d.ts.map +1 -0
  250. package/dist/core/utils/bypass-token.js +133 -0
  251. package/dist/core/utils/bypass-token.js.map +1 -0
  252. package/dist/core/utils/cc-builtin-agents.d.ts +3 -0
  253. package/dist/core/utils/cc-builtin-agents.d.ts.map +1 -0
  254. package/dist/core/utils/cc-builtin-agents.js +29 -0
  255. package/dist/core/utils/cc-builtin-agents.js.map +1 -0
  256. package/dist/core/utils/claude-cli-spawn.d.ts +106 -0
  257. package/dist/core/utils/claude-cli-spawn.d.ts.map +1 -0
  258. package/dist/core/utils/claude-cli-spawn.js +219 -0
  259. package/dist/core/utils/claude-cli-spawn.js.map +1 -0
  260. package/dist/core/utils/forge-resume-block.d.ts.map +1 -1
  261. package/dist/core/utils/forge-resume-block.js +3 -2
  262. package/dist/core/utils/forge-resume-block.js.map +1 -1
  263. package/dist/core/utils/logger.d.ts +15 -3
  264. package/dist/core/utils/logger.d.ts.map +1 -1
  265. package/dist/core/utils/logger.js +20 -2
  266. package/dist/core/utils/logger.js.map +1 -1
  267. package/dist/core/utils/noise-prompt.d.ts +97 -0
  268. package/dist/core/utils/noise-prompt.d.ts.map +1 -0
  269. package/dist/core/utils/noise-prompt.js +127 -0
  270. package/dist/core/utils/noise-prompt.js.map +1 -0
  271. package/dist/core/utils/path.d.ts +0 -4
  272. package/dist/core/utils/path.d.ts.map +1 -1
  273. package/dist/core/utils/path.js +0 -7
  274. package/dist/core/utils/path.js.map +1 -1
  275. package/dist/core/utils/time.d.ts +41 -0
  276. package/dist/core/utils/time.d.ts.map +1 -1
  277. package/dist/core/utils/time.js +114 -0
  278. package/dist/core/utils/time.js.map +1 -1
  279. package/dist/daemon/agent-sync.d.ts +24 -0
  280. package/dist/daemon/agent-sync.d.ts.map +1 -0
  281. package/dist/daemon/agent-sync.js +114 -0
  282. package/dist/daemon/agent-sync.js.map +1 -0
  283. package/dist/daemon/config-store.d.ts +55 -0
  284. package/dist/daemon/config-store.d.ts.map +1 -0
  285. package/dist/daemon/config-store.js +137 -0
  286. package/dist/daemon/config-store.js.map +1 -0
  287. package/dist/daemon/event-parser.d.ts +22 -0
  288. package/dist/daemon/event-parser.d.ts.map +1 -1
  289. package/dist/daemon/event-parser.js +49 -3
  290. package/dist/daemon/event-parser.js.map +1 -1
  291. package/dist/daemon/handlers/history-exporter.d.ts.map +1 -1
  292. package/dist/daemon/handlers/history-exporter.js +9 -8
  293. package/dist/daemon/handlers/history-exporter.js.map +1 -1
  294. package/dist/daemon/handlers/post-tool-use.d.ts +58 -4
  295. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
  296. package/dist/daemon/handlers/post-tool-use.js +261 -8
  297. package/dist/daemon/handlers/post-tool-use.js.map +1 -1
  298. package/dist/daemon/handlers/pre-tool-use.d.ts +156 -0
  299. package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -0
  300. package/dist/daemon/handlers/pre-tool-use.js +585 -0
  301. package/dist/daemon/handlers/pre-tool-use.js.map +1 -0
  302. package/dist/daemon/handlers/stop.d.ts +35 -7
  303. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  304. package/dist/daemon/handlers/stop.js +157 -8
  305. package/dist/daemon/handlers/stop.js.map +1 -1
  306. package/dist/daemon/handlers/user-prompt.d.ts +36 -14
  307. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  308. package/dist/daemon/handlers/user-prompt.js +135 -48
  309. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  310. package/dist/daemon/hook-sync.d.ts.map +1 -1
  311. package/dist/daemon/hook-sync.js +2 -1
  312. package/dist/daemon/hook-sync.js.map +1 -1
  313. package/dist/daemon/index.d.ts.map +1 -1
  314. package/dist/daemon/index.js +471 -43
  315. package/dist/daemon/index.js.map +1 -1
  316. package/dist/daemon/lifecycle.d.ts +48 -1
  317. package/dist/daemon/lifecycle.d.ts.map +1 -1
  318. package/dist/daemon/lifecycle.js +98 -2
  319. package/dist/daemon/lifecycle.js.map +1 -1
  320. package/dist/daemon/router.d.ts +4 -1
  321. package/dist/daemon/router.d.ts.map +1 -1
  322. package/dist/daemon/router.js +4 -2
  323. package/dist/daemon/router.js.map +1 -1
  324. package/dist/daemon/rules/defaults.d.ts +20 -0
  325. package/dist/daemon/rules/defaults.d.ts.map +1 -0
  326. package/dist/daemon/rules/defaults.js +692 -0
  327. package/dist/daemon/rules/defaults.js.map +1 -0
  328. package/dist/daemon/rules/registry.d.ts +47 -0
  329. package/dist/daemon/rules/registry.d.ts.map +1 -0
  330. package/dist/daemon/rules/registry.js +84 -0
  331. package/dist/daemon/rules/registry.js.map +1 -0
  332. package/dist/daemon/rules/types.d.ts +170 -0
  333. package/dist/daemon/rules/types.d.ts.map +1 -0
  334. package/dist/daemon/rules/types.js +15 -0
  335. package/dist/daemon/rules/types.js.map +1 -0
  336. package/dist/daemon/rules/whitelist.d.ts +101 -0
  337. package/dist/daemon/rules/whitelist.d.ts.map +1 -0
  338. package/dist/daemon/rules/whitelist.js +210 -0
  339. package/dist/daemon/rules/whitelist.js.map +1 -0
  340. package/dist/daemon/rules/workflow-defaults.d.ts +52 -0
  341. package/dist/daemon/rules/workflow-defaults.d.ts.map +1 -0
  342. package/dist/daemon/rules/workflow-defaults.js +521 -0
  343. package/dist/daemon/rules/workflow-defaults.js.map +1 -0
  344. package/dist/daemon/server.d.ts +11 -1
  345. package/dist/daemon/server.d.ts.map +1 -1
  346. package/dist/daemon/server.js +7 -1
  347. package/dist/daemon/server.js.map +1 -1
  348. package/dist/daemon/services/context-injector.d.ts +34 -0
  349. package/dist/daemon/services/context-injector.d.ts.map +1 -0
  350. package/dist/daemon/services/context-injector.js +61 -0
  351. package/dist/daemon/services/context-injector.js.map +1 -0
  352. package/dist/daemon/services/decision-hint.d.ts +203 -0
  353. package/dist/daemon/services/decision-hint.d.ts.map +1 -0
  354. package/dist/daemon/services/decision-hint.js +487 -0
  355. package/dist/daemon/services/decision-hint.js.map +1 -0
  356. package/dist/daemon/services/event-ttl-sweep.d.ts +86 -0
  357. package/dist/daemon/services/event-ttl-sweep.d.ts.map +1 -0
  358. package/dist/daemon/services/event-ttl-sweep.js +123 -0
  359. package/dist/daemon/services/event-ttl-sweep.js.map +1 -0
  360. package/dist/daemon/services/experience-extractor.d.ts +67 -0
  361. package/dist/daemon/services/experience-extractor.d.ts.map +1 -0
  362. package/dist/daemon/services/experience-extractor.js +323 -0
  363. package/dist/daemon/services/experience-extractor.js.map +1 -0
  364. package/dist/daemon/services/feedback-aggregator.d.ts +179 -0
  365. package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -0
  366. package/dist/daemon/services/feedback-aggregator.js +455 -0
  367. package/dist/daemon/services/feedback-aggregator.js.map +1 -0
  368. package/dist/daemon/services/heartbeat-writer.d.ts +55 -0
  369. package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -0
  370. package/dist/daemon/services/heartbeat-writer.js +111 -0
  371. package/dist/daemon/services/heartbeat-writer.js.map +1 -0
  372. package/dist/daemon/services/idle-session-sweeper.d.ts +61 -0
  373. package/dist/daemon/services/idle-session-sweeper.d.ts.map +1 -0
  374. package/dist/daemon/services/idle-session-sweeper.js +94 -0
  375. package/dist/daemon/services/idle-session-sweeper.js.map +1 -0
  376. package/dist/daemon/services/idle-task-budget.d.ts +50 -0
  377. package/dist/daemon/services/idle-task-budget.d.ts.map +1 -0
  378. package/dist/daemon/services/idle-task-budget.js +72 -0
  379. package/dist/daemon/services/idle-task-budget.js.map +1 -0
  380. package/dist/daemon/services/intercept-revive.d.ts +60 -0
  381. package/dist/daemon/services/intercept-revive.d.ts.map +1 -0
  382. package/dist/daemon/services/intercept-revive.js +86 -0
  383. package/dist/daemon/services/intercept-revive.js.map +1 -0
  384. package/dist/daemon/services/intercept-rollback-guard.d.ts +105 -0
  385. package/dist/daemon/services/intercept-rollback-guard.d.ts.map +1 -0
  386. package/dist/daemon/services/intercept-rollback-guard.js +152 -0
  387. package/dist/daemon/services/intercept-rollback-guard.js.map +1 -0
  388. package/dist/daemon/services/intercept-timeout-sweeper.d.ts +58 -0
  389. package/dist/daemon/services/intercept-timeout-sweeper.d.ts.map +1 -0
  390. package/dist/daemon/services/intercept-timeout-sweeper.js +83 -0
  391. package/dist/daemon/services/intercept-timeout-sweeper.js.map +1 -0
  392. package/dist/daemon/services/kb-injector.d.ts +57 -0
  393. package/dist/daemon/services/kb-injector.d.ts.map +1 -0
  394. package/dist/daemon/services/kb-injector.js +140 -0
  395. package/dist/daemon/services/kb-injector.js.map +1 -0
  396. package/dist/daemon/services/outcome-classification-service.d.ts +49 -0
  397. package/dist/daemon/services/outcome-classification-service.d.ts.map +1 -0
  398. package/dist/daemon/services/outcome-classification-service.js +214 -0
  399. package/dist/daemon/services/outcome-classification-service.js.map +1 -0
  400. package/dist/daemon/services/outcome-classifier.d.ts +136 -0
  401. package/dist/daemon/services/outcome-classifier.d.ts.map +1 -0
  402. package/dist/daemon/services/outcome-classifier.js +178 -0
  403. package/dist/daemon/services/outcome-classifier.js.map +1 -0
  404. package/dist/daemon/services/outcome-nudge.d.ts +107 -0
  405. package/dist/daemon/services/outcome-nudge.d.ts.map +1 -0
  406. package/dist/daemon/services/outcome-nudge.js +242 -0
  407. package/dist/daemon/services/outcome-nudge.js.map +1 -0
  408. package/dist/daemon/services/spec-approval.d.ts +127 -0
  409. package/dist/daemon/services/spec-approval.d.ts.map +1 -0
  410. package/dist/daemon/services/spec-approval.js +216 -0
  411. package/dist/daemon/services/spec-approval.js.map +1 -0
  412. package/dist/daemon/services/spec-gate.d.ts +54 -0
  413. package/dist/daemon/services/spec-gate.d.ts.map +1 -0
  414. package/dist/daemon/services/spec-gate.js +113 -0
  415. package/dist/daemon/services/spec-gate.js.map +1 -0
  416. package/dist/daemon/services/task-boundary-classifier.d.ts +78 -0
  417. package/dist/daemon/services/task-boundary-classifier.d.ts.map +1 -0
  418. package/dist/daemon/services/task-boundary-classifier.js +202 -0
  419. package/dist/daemon/services/task-boundary-classifier.js.map +1 -0
  420. package/dist/daemon/services/task-segmenter.d.ts +219 -1
  421. package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
  422. package/dist/daemon/services/task-segmenter.js +481 -17
  423. package/dist/daemon/services/task-segmenter.js.map +1 -1
  424. package/dist/daemon/services/violation-reporter.d.ts +130 -0
  425. package/dist/daemon/services/violation-reporter.d.ts.map +1 -0
  426. package/dist/daemon/services/violation-reporter.js +339 -0
  427. package/dist/daemon/services/violation-reporter.js.map +1 -0
  428. package/dist/daemon/skill-sync.d.ts +7 -2
  429. package/dist/daemon/skill-sync.d.ts.map +1 -1
  430. package/dist/daemon/skill-sync.js +114 -9
  431. package/dist/daemon/skill-sync.js.map +1 -1
  432. package/dist/daemon/templates/agents/claudemd-writer.md +101 -0
  433. package/dist/daemon/templates/agents/coder.md +105 -0
  434. package/dist/daemon/templates/agents/decision-maker.md +460 -0
  435. package/dist/daemon/templates/agents/doc-reviewer.md +115 -0
  436. package/dist/daemon/templates/agents/harness-debug-full.md +114 -0
  437. package/dist/daemon/templates/agents/harness-hotfix.md +99 -0
  438. package/dist/daemon/templates/agents/hybrid-feature-with-safety.md +104 -0
  439. package/dist/daemon/templates/agents/knowledge-builder.md +119 -0
  440. package/dist/daemon/templates/agents/patch-applier.md +144 -0
  441. package/dist/daemon/templates/agents/planner.md +165 -0
  442. package/dist/daemon/templates/agents/refactor-specialist.md +98 -0
  443. package/dist/daemon/templates/agents/skill-distiller.md +113 -0
  444. package/dist/daemon/templates/agents/task-boundary-classifier.md +64 -0
  445. package/dist/daemon/templates/agents/verify-agent.md +136 -0
  446. package/dist/daemon/utils/inject-block.d.ts +39 -0
  447. package/dist/daemon/utils/inject-block.d.ts.map +1 -0
  448. package/dist/daemon/utils/inject-block.js +25 -0
  449. package/dist/daemon/utils/inject-block.js.map +1 -0
  450. package/dist/hooks/hook-lib.sh +8 -0
  451. package/dist/hooks/notification.sh +19 -8
  452. package/dist/hooks/post-tool-use.sh +41 -23
  453. package/dist/hooks/pre-tool-use.sh +54 -23
  454. package/dist/hooks/session-start.sh +68 -0
  455. package/dist/hooks/stop.sh +24 -10
  456. package/dist/hooks/user-prompt-submit.sh +37 -21
  457. package/dist/knowledge/adapters/go-adapter.d.ts +65 -0
  458. package/dist/knowledge/adapters/go-adapter.d.ts.map +1 -0
  459. package/dist/knowledge/adapters/go-adapter.js +294 -0
  460. package/dist/knowledge/adapters/go-adapter.js.map +1 -0
  461. package/dist/knowledge/adapters/index.d.ts +41 -0
  462. package/dist/knowledge/adapters/index.d.ts.map +1 -0
  463. package/dist/knowledge/adapters/index.js +71 -0
  464. package/dist/knowledge/adapters/index.js.map +1 -0
  465. package/dist/knowledge/adapters/java-adapter.d.ts +66 -0
  466. package/dist/knowledge/adapters/java-adapter.d.ts.map +1 -0
  467. package/dist/knowledge/adapters/java-adapter.js +260 -0
  468. package/dist/knowledge/adapters/java-adapter.js.map +1 -0
  469. package/dist/knowledge/adapters/js-vue-adapter.d.ts +56 -0
  470. package/dist/knowledge/adapters/js-vue-adapter.d.ts.map +1 -0
  471. package/dist/knowledge/adapters/js-vue-adapter.js +203 -0
  472. package/dist/knowledge/adapters/js-vue-adapter.js.map +1 -0
  473. package/dist/knowledge/adapters/kotlin-adapter.d.ts +55 -0
  474. package/dist/knowledge/adapters/kotlin-adapter.d.ts.map +1 -0
  475. package/dist/knowledge/adapters/kotlin-adapter.js +209 -0
  476. package/dist/knowledge/adapters/kotlin-adapter.js.map +1 -0
  477. package/dist/knowledge/adapters/monorepo-adapter.d.ts +77 -0
  478. package/dist/knowledge/adapters/monorepo-adapter.d.ts.map +1 -0
  479. package/dist/knowledge/adapters/monorepo-adapter.js +170 -0
  480. package/dist/knowledge/adapters/monorepo-adapter.js.map +1 -0
  481. package/dist/knowledge/adapters/python-adapter.d.ts +89 -0
  482. package/dist/knowledge/adapters/python-adapter.d.ts.map +1 -0
  483. package/dist/knowledge/adapters/python-adapter.js +358 -0
  484. package/dist/knowledge/adapters/python-adapter.js.map +1 -0
  485. package/dist/knowledge/adapters/rust-adapter.d.ts +73 -0
  486. package/dist/knowledge/adapters/rust-adapter.d.ts.map +1 -0
  487. package/dist/knowledge/adapters/rust-adapter.js +329 -0
  488. package/dist/knowledge/adapters/rust-adapter.js.map +1 -0
  489. package/dist/knowledge/adapters/types.d.ts +99 -0
  490. package/dist/knowledge/adapters/types.d.ts.map +1 -0
  491. package/dist/knowledge/adapters/types.js +17 -0
  492. package/dist/knowledge/adapters/types.js.map +1 -0
  493. package/dist/knowledge/adapters/typescript-adapter.d.ts +57 -0
  494. package/dist/knowledge/adapters/typescript-adapter.d.ts.map +1 -0
  495. package/dist/knowledge/adapters/typescript-adapter.js +171 -0
  496. package/dist/knowledge/adapters/typescript-adapter.js.map +1 -0
  497. package/dist/knowledge/audit-applier.d.ts +70 -0
  498. package/dist/knowledge/audit-applier.d.ts.map +1 -0
  499. package/dist/knowledge/audit-applier.js +251 -0
  500. package/dist/knowledge/audit-applier.js.map +1 -0
  501. package/dist/knowledge/builder.d.ts +261 -0
  502. package/dist/knowledge/builder.d.ts.map +1 -0
  503. package/dist/knowledge/builder.js +937 -0
  504. package/dist/knowledge/builder.js.map +1 -0
  505. package/dist/knowledge/cli-provider.d.ts +151 -0
  506. package/dist/knowledge/cli-provider.d.ts.map +1 -0
  507. package/dist/knowledge/cli-provider.js +313 -0
  508. package/dist/knowledge/cli-provider.js.map +1 -0
  509. package/dist/knowledge/constants.d.ts +73 -0
  510. package/dist/knowledge/constants.d.ts.map +1 -0
  511. package/dist/knowledge/constants.js +93 -0
  512. package/dist/knowledge/constants.js.map +1 -0
  513. package/dist/knowledge/cross-module.d.ts +139 -0
  514. package/dist/knowledge/cross-module.d.ts.map +1 -0
  515. package/dist/knowledge/cross-module.js +370 -0
  516. package/dist/knowledge/cross-module.js.map +1 -0
  517. package/dist/knowledge/git-hooks.d.ts +67 -0
  518. package/dist/knowledge/git-hooks.d.ts.map +1 -0
  519. package/dist/knowledge/git-hooks.js +258 -0
  520. package/dist/knowledge/git-hooks.js.map +1 -0
  521. package/dist/knowledge/module-hash.d.ts +88 -0
  522. package/dist/knowledge/module-hash.d.ts.map +1 -0
  523. package/dist/knowledge/module-hash.js +162 -0
  524. package/dist/knowledge/module-hash.js.map +1 -0
  525. package/dist/knowledge/project-detector.d.ts +101 -0
  526. package/dist/knowledge/project-detector.d.ts.map +1 -0
  527. package/dist/knowledge/project-detector.js +223 -0
  528. package/dist/knowledge/project-detector.js.map +1 -0
  529. package/dist/knowledge/prompt.d.ts +228 -0
  530. package/dist/knowledge/prompt.d.ts.map +1 -0
  531. package/dist/knowledge/prompt.js +404 -0
  532. package/dist/knowledge/prompt.js.map +1 -0
  533. package/dist/knowledge/query.d.ts +105 -0
  534. package/dist/knowledge/query.d.ts.map +1 -0
  535. package/dist/knowledge/query.js +341 -0
  536. package/dist/knowledge/query.js.map +1 -0
  537. package/dist/knowledge/repo-map.d.ts +91 -0
  538. package/dist/knowledge/repo-map.d.ts.map +1 -0
  539. package/dist/knowledge/repo-map.js +408 -0
  540. package/dist/knowledge/repo-map.js.map +1 -0
  541. package/dist/knowledge/tools/index.d.ts +14 -0
  542. package/dist/knowledge/tools/index.d.ts.map +1 -0
  543. package/dist/knowledge/tools/index.js +11 -0
  544. package/dist/knowledge/tools/index.js.map +1 -0
  545. package/dist/knowledge/tools/knowledge-get-page.d.ts +46 -0
  546. package/dist/knowledge/tools/knowledge-get-page.d.ts.map +1 -0
  547. package/dist/knowledge/tools/knowledge-get-page.js +101 -0
  548. package/dist/knowledge/tools/knowledge-get-page.js.map +1 -0
  549. package/dist/knowledge/tools/knowledge-query.d.ts +77 -0
  550. package/dist/knowledge/tools/knowledge-query.d.ts.map +1 -0
  551. package/dist/knowledge/tools/knowledge-query.js +104 -0
  552. package/dist/knowledge/tools/knowledge-query.js.map +1 -0
  553. package/dist/knowledge/tools/repo-map-lookup.d.ts +45 -0
  554. package/dist/knowledge/tools/repo-map-lookup.d.ts.map +1 -0
  555. package/dist/knowledge/tools/repo-map-lookup.js +82 -0
  556. package/dist/knowledge/tools/repo-map-lookup.js.map +1 -0
  557. package/dist/knowledge/types.d.ts +269 -0
  558. package/dist/knowledge/types.d.ts.map +1 -0
  559. package/dist/knowledge/types.js +10 -0
  560. package/dist/knowledge/types.js.map +1 -0
  561. package/dist/knowledge/validator.d.ts +90 -0
  562. package/dist/knowledge/validator.d.ts.map +1 -0
  563. package/dist/knowledge/validator.js +288 -0
  564. package/dist/knowledge/validator.js.map +1 -0
  565. package/dist/mcp/server.d.ts.map +1 -1
  566. package/dist/mcp/server.js +222 -1
  567. package/dist/mcp/server.js.map +1 -1
  568. package/dist/skills/builtin-skills.d.ts +35 -0
  569. package/dist/skills/builtin-skills.d.ts.map +1 -0
  570. package/dist/skills/builtin-skills.js +68 -0
  571. package/dist/skills/builtin-skills.js.map +1 -0
  572. package/dist/skills/distill/attribution.d.ts +59 -0
  573. package/dist/skills/distill/attribution.d.ts.map +1 -0
  574. package/dist/skills/distill/attribution.js +101 -0
  575. package/dist/skills/distill/attribution.js.map +1 -0
  576. package/dist/skills/distill/claude-cli-resolver.d.ts +26 -0
  577. package/dist/skills/distill/claude-cli-resolver.d.ts.map +1 -0
  578. package/dist/skills/distill/claude-cli-resolver.js +115 -0
  579. package/dist/skills/distill/claude-cli-resolver.js.map +1 -0
  580. package/dist/skills/distill/distiller.d.ts +161 -0
  581. package/dist/skills/distill/distiller.d.ts.map +1 -0
  582. package/dist/skills/distill/distiller.js +461 -0
  583. package/dist/skills/distill/distiller.js.map +1 -0
  584. package/dist/skills/distill/index.d.ts +223 -0
  585. package/dist/skills/distill/index.d.ts.map +1 -0
  586. package/dist/skills/distill/index.js +466 -0
  587. package/dist/skills/distill/index.js.map +1 -0
  588. package/dist/skills/distill/project-anchor-guard.d.ts +116 -0
  589. package/dist/skills/distill/project-anchor-guard.d.ts.map +1 -0
  590. package/dist/skills/distill/project-anchor-guard.js +334 -0
  591. package/dist/skills/distill/project-anchor-guard.js.map +1 -0
  592. package/dist/skills/distill/topic-deduper.d.ts +77 -0
  593. package/dist/skills/distill/topic-deduper.d.ts.map +1 -0
  594. package/dist/skills/distill/topic-deduper.js +119 -0
  595. package/dist/skills/distill/topic-deduper.js.map +1 -0
  596. package/dist/skills/distill/upstream-fetcher.d.ts +71 -0
  597. package/dist/skills/distill/upstream-fetcher.d.ts.map +1 -0
  598. package/dist/skills/distill/upstream-fetcher.js +202 -0
  599. package/dist/skills/distill/upstream-fetcher.js.map +1 -0
  600. package/dist/skills/distilled/distilled-api-design.md +491 -0
  601. package/dist/skills/distilled/distilled-architecture-decision.md +173 -0
  602. package/dist/skills/distilled/distilled-creator.md +178 -0
  603. package/dist/skills/distilled/distilled-db-schema-design.md +245 -0
  604. package/dist/skills/distilled/distilled-defi-amm-security.md +293 -0
  605. package/dist/skills/distilled/distilled-executing-plans.md +113 -0
  606. package/dist/skills/distilled/distilled-harness-engineering.md +242 -0
  607. package/dist/skills/distilled/distilled-karpathy-guidelines.md +104 -0
  608. package/dist/skills/distilled/distilled-performance-optimization.md +175 -0
  609. package/dist/skills/distilled/distilled-spec-driven-design.md +193 -0
  610. package/dist/skills/distilled/distilled-systematic-debugging.md +306 -0
  611. package/dist/skills/distilled/distilled-verification-before-completion.md +203 -0
  612. package/dist/skills/keyword-score.d.ts +29 -0
  613. package/dist/skills/keyword-score.d.ts.map +1 -0
  614. package/dist/skills/keyword-score.js +54 -0
  615. package/dist/skills/keyword-score.js.map +1 -0
  616. package/dist/skills/registry.d.ts +64 -20
  617. package/dist/skills/registry.d.ts.map +1 -1
  618. package/dist/skills/registry.js +102 -105
  619. package/dist/skills/registry.js.map +1 -1
  620. package/dist/skills/tools/pipeline-suggest.js +14 -14
  621. package/dist/skills/tools/skill-invoke.d.ts +1 -1
  622. package/dist/skills/tools/skill-invoke.js +1 -1
  623. package/dist/web/routes/agent-content.d.ts +30 -0
  624. package/dist/web/routes/agent-content.d.ts.map +1 -0
  625. package/dist/web/routes/agent-content.js +139 -0
  626. package/dist/web/routes/agent-content.js.map +1 -0
  627. package/dist/web/routes/decisions.d.ts +15 -0
  628. package/dist/web/routes/decisions.d.ts.map +1 -0
  629. package/dist/web/routes/decisions.js +181 -0
  630. package/dist/web/routes/decisions.js.map +1 -0
  631. package/dist/web/routes/diagnostics.d.ts +61 -0
  632. package/dist/web/routes/diagnostics.d.ts.map +1 -0
  633. package/dist/web/routes/diagnostics.js +203 -0
  634. package/dist/web/routes/diagnostics.js.map +1 -0
  635. package/dist/web/routes/events.d.ts.map +1 -1
  636. package/dist/web/routes/events.js +24 -0
  637. package/dist/web/routes/events.js.map +1 -1
  638. package/dist/web/routes/health.d.ts +33 -0
  639. package/dist/web/routes/health.d.ts.map +1 -0
  640. package/dist/web/routes/health.js +37 -0
  641. package/dist/web/routes/health.js.map +1 -0
  642. package/dist/web/routes/insights.d.ts +0 -5
  643. package/dist/web/routes/insights.d.ts.map +1 -1
  644. package/dist/web/routes/insights.js +783 -2
  645. package/dist/web/routes/insights.js.map +1 -1
  646. package/dist/web/routes/knowledge.d.ts +16 -0
  647. package/dist/web/routes/knowledge.d.ts.map +1 -0
  648. package/dist/web/routes/knowledge.js +661 -0
  649. package/dist/web/routes/knowledge.js.map +1 -0
  650. package/dist/web/routes/patch.d.ts +60 -1
  651. package/dist/web/routes/patch.d.ts.map +1 -1
  652. package/dist/web/routes/patch.js +170 -64
  653. package/dist/web/routes/patch.js.map +1 -1
  654. package/dist/web/routes/pipeline.d.ts +37 -0
  655. package/dist/web/routes/pipeline.d.ts.map +1 -0
  656. package/dist/web/routes/pipeline.js +149 -0
  657. package/dist/web/routes/pipeline.js.map +1 -0
  658. package/dist/web/routes/rules.d.ts.map +1 -1
  659. package/dist/web/routes/rules.js +6 -1
  660. package/dist/web/routes/rules.js.map +1 -1
  661. package/dist/web/routes/sessions.d.ts.map +1 -1
  662. package/dist/web/routes/sessions.js +9 -1
  663. package/dist/web/routes/sessions.js.map +1 -1
  664. package/dist/web/routes/skill-content.d.ts +30 -0
  665. package/dist/web/routes/skill-content.d.ts.map +1 -0
  666. package/dist/web/routes/skill-content.js +117 -0
  667. package/dist/web/routes/skill-content.js.map +1 -0
  668. package/dist/web/routes/skills-distill.d.ts +29 -0
  669. package/dist/web/routes/skills-distill.d.ts.map +1 -0
  670. package/dist/web/routes/skills-distill.js +552 -0
  671. package/dist/web/routes/skills-distill.js.map +1 -0
  672. package/dist/web/routes/skills.js +7 -7
  673. package/dist/web/routes/skills.js.map +1 -1
  674. package/dist/web/routes/task-timeline.d.ts +102 -0
  675. package/dist/web/routes/task-timeline.d.ts.map +1 -0
  676. package/dist/web/routes/task-timeline.js +274 -0
  677. package/dist/web/routes/task-timeline.js.map +1 -0
  678. package/dist/web/routes/tasks.d.ts.map +1 -1
  679. package/dist/web/routes/tasks.js +355 -8
  680. package/dist/web/routes/tasks.js.map +1 -1
  681. package/dist/web/routes/trace.d.ts.map +1 -1
  682. package/dist/web/routes/trace.js +3 -2
  683. package/dist/web/routes/trace.js.map +1 -1
  684. package/dist/web/routes/types.d.ts +0 -4
  685. package/dist/web/routes/types.d.ts.map +1 -1
  686. package/dist/web/routes/types.js +1 -1
  687. package/dist/web/routes/types.js.map +1 -1
  688. package/dist/web/routes/violations.d.ts +14 -0
  689. package/dist/web/routes/violations.d.ts.map +1 -0
  690. package/dist/web/routes/violations.js +111 -0
  691. package/dist/web/routes/violations.js.map +1 -0
  692. package/dist/web/server.d.ts.map +1 -1
  693. package/dist/web/server.js +79 -19
  694. package/dist/web/server.js.map +1 -1
  695. package/dist/web/services/build-manager.d.ts +72 -0
  696. package/dist/web/services/build-manager.d.ts.map +1 -0
  697. package/dist/web/services/build-manager.js +189 -0
  698. package/dist/web/services/build-manager.js.map +1 -0
  699. package/dist/web/services/distill-manager.d.ts +125 -0
  700. package/dist/web/services/distill-manager.d.ts.map +1 -0
  701. package/dist/web/services/distill-manager.js +308 -0
  702. package/dist/web/services/distill-manager.js.map +1 -0
  703. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js +2 -0
  704. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js.map +1 -0
  705. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js +2 -0
  706. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js.map +1 -0
  707. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js +3 -0
  708. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js.map +1 -0
  709. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js +2 -0
  710. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js.map +1 -0
  711. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js +2 -0
  712. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js.map +1 -0
  713. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js +2 -0
  714. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js.map +1 -0
  715. package/dist/web/static/assets/DriftTab-DqpepOhI.js +2 -0
  716. package/dist/web/static/assets/DriftTab-DqpepOhI.js.map +1 -0
  717. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js +3 -0
  718. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js.map +1 -0
  719. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js +2 -0
  720. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js.map +1 -0
  721. package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js +3 -0
  722. package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js.map +1 -0
  723. package/dist/web/static/assets/NotFound-BQPh0vaF.js +2 -0
  724. package/dist/web/static/assets/NotFound-BQPh0vaF.js.map +1 -0
  725. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js +2 -0
  726. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js.map +1 -0
  727. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js +2 -0
  728. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js.map +1 -0
  729. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js +2 -0
  730. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js.map +1 -0
  731. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js +2 -0
  732. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js.map +1 -0
  733. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js +2 -0
  734. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js.map +1 -0
  735. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js +6 -0
  736. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js.map +1 -0
  737. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js +3 -0
  738. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js.map +1 -0
  739. package/dist/web/static/assets/arco-Bhi3a6Qp.js +14 -0
  740. package/dist/web/static/assets/arco-Bhi3a6Qp.js.map +1 -0
  741. package/dist/web/static/assets/arco-DFQA6dO_.css +1 -0
  742. package/dist/web/static/assets/charts-BuHQWDbQ.js +37 -0
  743. package/dist/web/static/assets/charts-BuHQWDbQ.js.map +1 -0
  744. package/dist/web/static/assets/date-fns-sbWH3_uq.js +2 -0
  745. package/dist/web/static/assets/date-fns-sbWH3_uq.js.map +1 -0
  746. package/dist/web/static/assets/index-7bl3kbcx.css +1 -0
  747. package/dist/web/static/assets/index-BIYnq1Dx.js +4 -0
  748. package/dist/web/static/assets/index-BIYnq1Dx.js.map +1 -0
  749. package/dist/web/static/assets/lucide-CnlPQoG8.js +72 -0
  750. package/dist/web/static/assets/lucide-CnlPQoG8.js.map +1 -0
  751. package/dist/web/static/assets/outcome-DUn1NjlC.js +2 -0
  752. package/dist/web/static/assets/outcome-DUn1NjlC.js.map +1 -0
  753. package/dist/web/static/assets/query-S6X1S7K9.js +2 -0
  754. package/dist/web/static/assets/{query-C99w429o.js.map → query-S6X1S7K9.js.map} +1 -1
  755. package/dist/web/static/assets/{react-router-r79dBVy4.js → react-router-JVUrkhdd.js} +3 -3
  756. package/dist/web/static/assets/{react-router-r79dBVy4.js.map → react-router-JVUrkhdd.js.map} +1 -1
  757. package/dist/web/static/assets/react-vendor-tkvCrao7.js +57 -0
  758. package/dist/web/static/assets/react-vendor-tkvCrao7.js.map +1 -0
  759. package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js +6 -0
  760. package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js.map +1 -0
  761. package/dist/web/static/assets/useTabsParam-k8qte_0C.js +2 -0
  762. package/dist/web/static/assets/useTabsParam-k8qte_0C.js.map +1 -0
  763. package/dist/web/static/assets/vendor-DWgdB1eY.js +65 -0
  764. package/dist/web/static/assets/vendor-DWgdB1eY.js.map +1 -0
  765. package/dist/web/static/index.html +12 -8
  766. package/package.json +14 -3
  767. package/dist/core/ai/provider.d.ts +0 -63
  768. package/dist/core/ai/provider.d.ts.map +0 -1
  769. package/dist/core/ai/provider.js +0 -241
  770. package/dist/core/ai/provider.js.map +0 -1
  771. package/dist/core/ai/types.d.ts +0 -43
  772. package/dist/core/ai/types.d.ts.map +0 -1
  773. package/dist/core/ai/types.js +0 -5
  774. package/dist/core/ai/types.js.map +0 -1
  775. package/dist/core/storage/token-usage.d.ts +0 -36
  776. package/dist/core/storage/token-usage.d.ts.map +0 -1
  777. package/dist/core/storage/token-usage.js +0 -59
  778. package/dist/core/storage/token-usage.js.map +0 -1
  779. package/dist/core/utils/token-tracker.d.ts +0 -39
  780. package/dist/core/utils/token-tracker.d.ts.map +0 -1
  781. package/dist/core/utils/token-tracker.js +0 -69
  782. package/dist/core/utils/token-tracker.js.map +0 -1
  783. package/dist/skills/index.d.ts +0 -3
  784. package/dist/skills/index.d.ts.map +0 -1
  785. package/dist/skills/index.js +0 -3
  786. package/dist/skills/index.js.map +0 -1
  787. package/dist/skills/matcher.d.ts +0 -26
  788. package/dist/skills/matcher.d.ts.map +0 -1
  789. package/dist/skills/matcher.js +0 -113
  790. package/dist/skills/matcher.js.map +0 -1
  791. package/dist/skills/official/code-simplifier.md +0 -52
  792. package/dist/skills/official/find-skills.md +0 -142
  793. package/dist/skills/official/official-api-design.md +0 -30
  794. package/dist/skills/official/official-architecture-decision.md +0 -41
  795. package/dist/skills/official/official-bmad.md +0 -118
  796. package/dist/skills/official/official-db-schema-design.md +0 -34
  797. package/dist/skills/official/official-debug.md +0 -25
  798. package/dist/skills/official/official-doc-driven.md +0 -31
  799. package/dist/skills/official/official-harness-engineering.md +0 -108
  800. package/dist/skills/official/official-performance-optimization.md +0 -30
  801. package/dist/skills/official/official-pr-review.md +0 -35
  802. package/dist/skills/official/official-release-checklist.md +0 -30
  803. package/dist/skills/official/official-security-hardening.md +0 -32
  804. package/dist/skills/official/official-spec-driven-design.md +0 -31
  805. package/dist/skills/official/planning-with-files.md +0 -241
  806. package/dist/skills/official/ui-ux-pro-max.md +0 -105
  807. package/dist/skills/official/webapp-testing.md +0 -96
  808. package/dist/skills/official-skills.d.ts +0 -26
  809. package/dist/skills/official-skills.d.ts.map +0 -1
  810. package/dist/skills/official-skills.js +0 -73
  811. package/dist/skills/official-skills.js.map +0 -1
  812. package/dist/skills/semantic-matcher.d.ts +0 -60
  813. package/dist/skills/semantic-matcher.d.ts.map +0 -1
  814. package/dist/skills/semantic-matcher.js +0 -192
  815. package/dist/skills/semantic-matcher.js.map +0 -1
  816. package/dist/skills/upgrade-engine.d.ts +0 -93
  817. package/dist/skills/upgrade-engine.d.ts.map +0 -1
  818. package/dist/skills/upgrade-engine.js +0 -447
  819. package/dist/skills/upgrade-engine.js.map +0 -1
  820. package/dist/skills/upgrade-prompt.d.ts +0 -20
  821. package/dist/skills/upgrade-prompt.d.ts.map +0 -1
  822. package/dist/skills/upgrade-prompt.js +0 -75
  823. package/dist/skills/upgrade-prompt.js.map +0 -1
  824. package/dist/web/routes/ai.d.ts +0 -10
  825. package/dist/web/routes/ai.d.ts.map +0 -1
  826. package/dist/web/routes/ai.js +0 -186
  827. package/dist/web/routes/ai.js.map +0 -1
  828. package/dist/web/routes/token-usage.d.ts +0 -7
  829. package/dist/web/routes/token-usage.d.ts.map +0 -1
  830. package/dist/web/routes/token-usage.js +0 -18
  831. package/dist/web/routes/token-usage.js.map +0 -1
  832. package/dist/web/ssrf-guard.d.ts +0 -35
  833. package/dist/web/ssrf-guard.d.ts.map +0 -1
  834. package/dist/web/ssrf-guard.js +0 -93
  835. package/dist/web/ssrf-guard.js.map +0 -1
  836. package/dist/web/static/assets/AIConfig-CdDWzJyO.js +0 -2
  837. package/dist/web/static/assets/AIConfig-CdDWzJyO.js.map +0 -1
  838. package/dist/web/static/assets/Dashboard-CoEmmIDt.js +0 -2
  839. package/dist/web/static/assets/Dashboard-CoEmmIDt.js.map +0 -1
  840. package/dist/web/static/assets/Drawer-DdRTzlLB.js +0 -2
  841. package/dist/web/static/assets/Drawer-DdRTzlLB.js.map +0 -1
  842. package/dist/web/static/assets/Events-DrIq1SUS.js +0 -2
  843. package/dist/web/static/assets/Events-DrIq1SUS.js.map +0 -1
  844. package/dist/web/static/assets/Reports-DFBM3MDK.js +0 -2
  845. package/dist/web/static/assets/Reports-DFBM3MDK.js.map +0 -1
  846. package/dist/web/static/assets/SearchInput-qCj_jAcf.js +0 -2
  847. package/dist/web/static/assets/SearchInput-qCj_jAcf.js.map +0 -1
  848. package/dist/web/static/assets/SessionDetail-CCzwdoT7.js +0 -2
  849. package/dist/web/static/assets/SessionDetail-CCzwdoT7.js.map +0 -1
  850. package/dist/web/static/assets/Sessions-FfLYkAw9.js +0 -2
  851. package/dist/web/static/assets/Sessions-FfLYkAw9.js.map +0 -1
  852. package/dist/web/static/assets/Skills-C8Gvs3Qa.js +0 -2
  853. package/dist/web/static/assets/Skills-C8Gvs3Qa.js.map +0 -1
  854. package/dist/web/static/assets/TaskDetail-BS8pYhaR.js +0 -2
  855. package/dist/web/static/assets/TaskDetail-BS8pYhaR.js.map +0 -1
  856. package/dist/web/static/assets/Tasks-CyuhizG8.js +0 -2
  857. package/dist/web/static/assets/Tasks-CyuhizG8.js.map +0 -1
  858. package/dist/web/static/assets/charts-CLrM0_uM.js +0 -37
  859. package/dist/web/static/assets/charts-CLrM0_uM.js.map +0 -1
  860. package/dist/web/static/assets/date-fns-CZ_bHujz.js +0 -2
  861. package/dist/web/static/assets/date-fns-CZ_bHujz.js.map +0 -1
  862. package/dist/web/static/assets/export-L_VBD2p1.js +0 -4
  863. package/dist/web/static/assets/export-L_VBD2p1.js.map +0 -1
  864. package/dist/web/static/assets/index-CBX47X8l.js +0 -3
  865. package/dist/web/static/assets/index-CBX47X8l.js.map +0 -1
  866. package/dist/web/static/assets/index-DjIoMdoR.css +0 -1
  867. package/dist/web/static/assets/lucide-Bs_edTLa.js +0 -232
  868. package/dist/web/static/assets/lucide-Bs_edTLa.js.map +0 -1
  869. package/dist/web/static/assets/query-C99w429o.js +0 -2
  870. package/dist/web/static/assets/react-vendor-CSp-GLFF.js +0 -49
  871. package/dist/web/static/assets/react-vendor-CSp-GLFF.js.map +0 -1
  872. package/dist/web/static/assets/syntax-highlighter-44FakypI.js +0 -9
  873. package/dist/web/static/assets/syntax-highlighter-44FakypI.js.map +0 -1
  874. package/dist/web/static/assets/task-title-BhOcemuR.js +0 -2
  875. package/dist/web/static/assets/task-title-BhOcemuR.js.map +0 -1
  876. package/dist/web/static/assets/time-Bxuk0M-C.js +0 -2
  877. package/dist/web/static/assets/time-Bxuk0M-C.js.map +0 -1
  878. package/dist/web/static/assets/vendor-CMMjVdZs.js +0 -64
  879. package/dist/web/static/assets/vendor-CMMjVdZs.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntax-highlighter-BkZfCDsz.js","sources":["../../node_modules/react-syntax-highlighter/dist/esm/create-element.js","../../node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../../node_modules/react-syntax-highlighter/dist/esm/highlight.js","../../node_modules/refractor/lib/prism-core.js","../../node_modules/refractor/lib/core.js","../../node_modules/react-syntax-highlighter/dist/esm/prism-light.js","../../node_modules/react-syntax-highlighter/dist/esm/styles/prism/one-dark.js","../../node_modules/refractor/lang/clike.js","../../node_modules/refractor/lang/javascript.js","../../node_modules/refractor/lang/typescript.js","../../node_modules/refractor/lang/markup.js","../../node_modules/refractor/lang/jsx.js","../../node_modules/refractor/lang/tsx.js","../../node_modules/refractor/lang/json.js","../../node_modules/refractor/lang/bash.js","../../node_modules/refractor/lang/markdown.js","../../node_modules/refractor/lang/sql.js","../../node_modules/refractor/lang/python.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport React from 'react';\n\n// Get all possible permutations of all power sets\n//\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\nfunction powerSetPermutations(arr) {\n var arrLength = arr.length;\n if (arrLength === 0 || arrLength === 1) return arr;\n if (arrLength === 2) {\n // prettier-ignore\n return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n }\n if (arrLength === 3) {\n return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n if (arrLength >= 4) {\n // Currently does not support more than 4 extra\n // class names (after `.token` has been removed)\n return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n}\nvar classNameCombinations = {};\nfunction getClassNameCombinations(classNames) {\n if (classNames.length === 0 || classNames.length === 1) return classNames;\n var key = classNames.join('.');\n if (!classNameCombinations[key]) {\n classNameCombinations[key] = powerSetPermutations(classNames);\n }\n return classNameCombinations[key];\n}\nexport function createStyleObject(classNames) {\n var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n var nonTokenClassNames = classNames.filter(function (className) {\n return className !== 'token';\n });\n var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n return classNamesCombinations.reduce(function (styleObject, className) {\n return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);\n }, elementStyle);\n}\nexport function createClassNameString(classNames) {\n return classNames.join(' ');\n}\nexport function createChildren(stylesheet, useInlineStyles) {\n var childrenCount = 0;\n return function (children) {\n childrenCount += 1;\n return children.map(function (child, i) {\n return createElement({\n node: child,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n });\n });\n };\n}\nexport default function createElement(_ref) {\n var node = _ref.node,\n stylesheet = _ref.stylesheet,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n useInlineStyles = _ref.useInlineStyles,\n key = _ref.key;\n var properties = node.properties,\n type = node.type,\n TagName = node.tagName,\n value = node.value;\n if (type === 'text') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var props;\n if (!useInlineStyles) {\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(properties.className)\n });\n } else {\n var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n selector.split('.').forEach(function (className) {\n if (!classes.includes(className)) classes.push(className);\n });\n return classes;\n }, []);\n\n // For compatibility with older versions of react-syntax-highlighter\n var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n return !allStylesheetSelectors.includes(className);\n }));\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(className) || undefined,\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n });\n }\n var children = childrenCreator(node.children);\n return /*#__PURE__*/React.createElement(TagName, _extends({\n key: key\n }, props), children);\n }\n}","export default (function (astGenerator, language) {\n var langs = astGenerator.listLanguages();\n return langs.indexOf(language) !== -1;\n});","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport React from 'react';\nimport createElement from \"./create-element.js\";\nimport checkForListedLanguage from \"./checkForListedLanguage.js\";\nvar newLineRegex = /\\n/g;\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\nfunction getAllLineNumbers(_ref) {\n var lines = _ref.lines,\n startingLineNumber = _ref.startingLineNumber,\n style = _ref.style;\n return lines.map(function (_, i) {\n var number = i + startingLineNumber;\n return /*#__PURE__*/React.createElement(\"span\", {\n key: \"line-\".concat(i),\n className: \"react-syntax-highlighter-line-number\",\n style: typeof style === 'function' ? style(number) : style\n }, \"\".concat(number, \"\\n\"));\n });\n}\nfunction AllLineNumbers(_ref2) {\n var codeString = _ref2.codeString,\n codeStyle = _ref2.codeStyle,\n _ref2$containerStyle = _ref2.containerStyle,\n containerStyle = _ref2$containerStyle === void 0 ? {\n \"float\": 'left',\n paddingRight: '10px'\n } : _ref2$containerStyle,\n _ref2$numberStyle = _ref2.numberStyle,\n numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n startingLineNumber = _ref2.startingLineNumber;\n return /*#__PURE__*/React.createElement(\"code\", {\n style: Object.assign({}, codeStyle, containerStyle)\n }, getAllLineNumbers({\n lines: codeString.replace(/\\n$/, '').split('\\n'),\n style: numberStyle,\n startingLineNumber: startingLineNumber\n }));\n}\nfunction getEmWidthOfNumber(num) {\n return \"\".concat(num.toString().length, \".25em\");\n}\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n return {\n type: 'element',\n tagName: 'span',\n properties: {\n key: \"line-number--\".concat(lineNumber),\n className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n style: inlineLineNumberStyle\n },\n children: [{\n type: 'text',\n value: lineNumber\n }]\n };\n}\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n // minimally necessary styling for line numbers\n var defaultLineNumberStyle = {\n display: 'inline-block',\n minWidth: getEmWidthOfNumber(largestLineNumber),\n paddingRight: '1em',\n textAlign: 'right',\n userSelect: 'none'\n };\n // prep custom styling\n var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle;\n // combine\n var assembledStyle = _objectSpread(_objectSpread({}, defaultLineNumberStyle), customLineNumberStyle);\n return assembledStyle;\n}\nfunction createLineElement(_ref3) {\n var children = _ref3.children,\n lineNumber = _ref3.lineNumber,\n lineNumberStyle = _ref3.lineNumberStyle,\n largestLineNumber = _ref3.largestLineNumber,\n showInlineLineNumbers = _ref3.showInlineLineNumbers,\n _ref3$lineProps = _ref3.lineProps,\n lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n _ref3$className = _ref3.className,\n className = _ref3$className === void 0 ? [] : _ref3$className,\n showLineNumbers = _ref3.showLineNumbers,\n wrapLongLines = _ref3.wrapLongLines,\n _ref3$wrapLines = _ref3.wrapLines,\n wrapLines = _ref3$wrapLines === void 0 ? false : _ref3$wrapLines;\n var properties = wrapLines ? _objectSpread({}, typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps) : {};\n properties['className'] = properties['className'] ? [].concat(_toConsumableArray(properties['className'].trim().split(/\\s+/)), _toConsumableArray(className)) : className;\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n if (wrapLongLines & showLineNumbers) {\n properties.style = _objectSpread({\n display: 'flex'\n }, properties.style);\n }\n return {\n type: 'element',\n tagName: 'span',\n properties: properties,\n children: children\n };\n}\nfunction flattenCodeTree(tree) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n if (tree.length === undefined) {\n tree = [tree];\n }\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n if (node.type === 'text') {\n newTree.push(createLineElement({\n children: [node],\n className: _toConsumableArray(new Set(className))\n }));\n } else if (node.children) {\n var _node$properties;\n var classNames = className.concat(((_node$properties = node.properties) === null || _node$properties === void 0 ? void 0 : _node$properties.className) || []);\n flattenCodeTree(node.children, classNames).forEach(function (i) {\n return newTree.push(i);\n });\n }\n }\n return newTree;\n}\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n var _ref4;\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n function createWrappedLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return createLineElement({\n children: children,\n lineNumber: lineNumber,\n lineNumberStyle: lineNumberStyle,\n largestLineNumber: largestLineNumber,\n showInlineLineNumbers: showInlineLineNumbers,\n lineProps: lineProps,\n className: className,\n showLineNumbers: showLineNumbers,\n wrapLongLines: wrapLongLines,\n wrapLines: wrapLines\n });\n }\n function createUnwrappedLine(children, lineNumber) {\n if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n return children;\n }\n function createLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n }\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n if (newLines) {\n var splitValue = value.split('\\n');\n splitValue.forEach(function (text, i) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var newChild = {\n type: 'text',\n value: \"\".concat(text, \"\\n\")\n };\n\n // if it's the first line\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n var _line = createLine(_children, lineNumber);\n newTree.push(_line);\n\n // if it's the last line\n } else if (i === splitValue.length - 1) {\n var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n var lastLineInPreviousSpan = {\n type: 'text',\n value: \"\".concat(text)\n };\n if (stringChild) {\n var newElem = createLineElement({\n children: [lastLineInPreviousSpan],\n className: node.properties.className\n });\n tree.splice(index + 1, 0, newElem);\n } else {\n var _children2 = [lastLineInPreviousSpan];\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n newTree.push(_line2);\n }\n\n // if it's neither the first nor the last line\n } else {\n var _children3 = [newChild];\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n index++;\n };\n while (index < tree.length) {\n _loop();\n }\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n if (children && children.length) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var line = createLine(children, lineNumber);\n newTree.push(line);\n }\n }\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\nfunction defaultRenderer(_ref5) {\n var rows = _ref5.rows,\n stylesheet = _ref5.stylesheet,\n useInlineStyles = _ref5.useInlineStyles;\n return rows.map(function (node, i) {\n return createElement({\n node: node,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segment-\".concat(i)\n });\n });\n}\n\n// only highlight.js has the highlightAuto method\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue;\n // figure out whether we're using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n\n // lowlight/highlight?\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n if (language === 'text') {\n return {\n value: defaultCodeValue,\n language: 'text'\n };\n } else if (hasLanguage) {\n return astGenerator.highlight(language, code);\n } else {\n return astGenerator.highlightAuto(code);\n }\n }\n\n // must be refractor/prism, then\n try {\n return language && language !== 'text' ? {\n value: astGenerator.highlight(code, language)\n } : {\n value: defaultCodeValue\n };\n } catch (e) {\n return {\n value: defaultCodeValue\n };\n }\n}\nexport default function (defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\n var _code$match$length, _code$match;\n var language = _ref7.language,\n children = _ref7.children,\n _ref7$style = _ref7.style,\n style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n _ref7$customStyle = _ref7.customStyle,\n customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n _ref7$codeTagProps = _ref7.codeTagProps,\n codeTagProps = _ref7$codeTagProps === void 0 ? {\n className: language ? \"language-\".concat(language) : undefined,\n style: _objectSpread(_objectSpread({}, style['code[class*=\"language-\"]']), style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n } : _ref7$codeTagProps,\n _ref7$useInlineStyles = _ref7.useInlineStyles,\n useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n _ref7$showLineNumbers = _ref7.showLineNumbers,\n showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n _ref7$startingLineNum = _ref7.startingLineNumber,\n startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n wrapLines = _ref7.wrapLines,\n _ref7$wrapLongLines = _ref7.wrapLongLines,\n wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n _ref7$lineProps = _ref7.lineProps,\n lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n renderer = _ref7.renderer,\n _ref7$PreTag = _ref7.PreTag,\n PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n _ref7$CodeTag = _ref7.CodeTag,\n CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n _ref7$code = _ref7.code,\n code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,\n astGenerator = _ref7.astGenerator,\n rest = _objectWithoutProperties(_ref7, _excluded);\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? /*#__PURE__*/React.createElement(AllLineNumbers, {\n containerStyle: lineNumberContainerStyle,\n codeStyle: codeTagProps.style || {},\n numberStyle: lineNumberStyle,\n startingLineNumber: startingLineNumber,\n codeString: code\n }) : null;\n var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n backgroundColor: '#fff'\n };\n var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n var preProps = useInlineStyles ? Object.assign({}, rest, {\n style: Object.assign({}, defaultPreStyle, customStyle)\n }) : Object.assign({}, rest, {\n className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n style: Object.assign({}, customStyle)\n });\n if (wrapLongLines) {\n codeTagProps.style = _objectSpread({\n whiteSpace: 'pre-wrap'\n }, codeTagProps.style);\n } else {\n codeTagProps.style = _objectSpread({\n whiteSpace: 'pre'\n }, codeTagProps.style);\n }\n if (!astGenerator) {\n return /*#__PURE__*/React.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, code));\n }\n\n /*\n * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n * if renderer is provided and wrapLines is undefined.\n */\n if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n renderer = renderer || defaultRenderer;\n var defaultCodeValue = [{\n type: 'text',\n value: code\n }];\n var codeTree = getCodeTree({\n astGenerator: astGenerator,\n language: language,\n code: code,\n defaultCodeValue: defaultCodeValue\n });\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n }\n\n // pre-determine largest line number so that we can force minWidth on all linenumber elements\n var lineBreakCount = (_code$match$length = (_code$match = code.match(/\\n/g)) === null || _code$match === void 0 ? void 0 : _code$match.length) !== null && _code$match$length !== void 0 ? _code$match$length : 0;\n var largestLineNumber = startingLineNumber + lineBreakCount;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n return /*#__PURE__*/React.createElement(PreTag, preProps, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n}","// @ts-nocheck\n\n// This is a slimmed down version of `prism-core.js`, to remove globals,\n// document, workers, `util.encode`, `Token.stringify`\n\n// Private helper vars\nvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i\nvar uniqueId = 0\n\n// The grammar object for plaintext\nvar plainTextGrammar = {}\n\nvar _ = {\n /**\n * A namespace for utility methods.\n *\n * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n * change or disappear at any time.\n *\n * @namespace\n * @memberof Prism\n */\n util: {\n /**\n * Returns the name of the type of the given value.\n *\n * @param {any} o\n * @returns {string}\n * @example\n * type(null) === 'Null'\n * type(undefined) === 'Undefined'\n * type(123) === 'Number'\n * type('foo') === 'String'\n * type(true) === 'Boolean'\n * type([1, 2]) === 'Array'\n * type({}) === 'Object'\n * type(String) === 'Function'\n * type(/abc+/) === 'RegExp'\n */\n type: function (o) {\n return Object.prototype.toString.call(o).slice(8, -1)\n },\n\n /**\n * Returns a unique number for the given object. Later calls will still return the same number.\n *\n * @param {Object} obj\n * @returns {number}\n */\n objId: function (obj) {\n if (!obj['__id']) {\n Object.defineProperty(obj, '__id', {value: ++uniqueId})\n }\n return obj['__id']\n },\n\n /**\n * Creates a deep clone of the given object.\n *\n * The main intended use of this function is to clone language definitions.\n *\n * @param {T} o\n * @param {Record<number, any>} [visited]\n * @returns {T}\n * @template T\n */\n clone: function deepClone(o, visited) {\n visited = visited || {}\n\n var clone\n var id\n switch (_.util.type(o)) {\n case 'Object':\n id = _.util.objId(o)\n if (visited[id]) {\n return visited[id]\n }\n clone = /** @type {Record<string, any>} */ ({})\n visited[id] = clone\n\n for (var key in o) {\n if (o.hasOwnProperty(key)) {\n clone[key] = deepClone(o[key], visited)\n }\n }\n\n return /** @type {any} */ (clone)\n\n case 'Array':\n id = _.util.objId(o)\n if (visited[id]) {\n return visited[id]\n }\n clone = []\n visited[id] = clone\n\n ;/** @type {Array} */ (/** @type {any} */ (o)).forEach(\n function (v, i) {\n clone[i] = deepClone(v, visited)\n }\n )\n\n return /** @type {any} */ (clone)\n\n default:\n return o\n }\n }\n },\n\n /**\n * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n *\n * @namespace\n * @memberof Prism\n * @public\n */\n languages: {\n /**\n * The grammar for plain, unformatted text.\n */\n plain: plainTextGrammar,\n plaintext: plainTextGrammar,\n text: plainTextGrammar,\n txt: plainTextGrammar,\n\n /**\n * Creates a deep copy of the language with the given id and appends the given tokens.\n *\n * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n * will be overwritten at its original position.\n *\n * ## Best practices\n *\n * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n *\n * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n *\n * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n * @param {Grammar} redef The new tokens to append.\n * @returns {Grammar} The new language created.\n * @public\n * @example\n * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n * // at its original position\n * 'comment': { ... },\n * // CSS doesn't have a 'color' token, so this token will be appended\n * 'color': /\\b(?:red|green|blue)\\b/\n * });\n */\n extend: function (id, redef) {\n var lang = _.util.clone(_.languages[id])\n\n for (var key in redef) {\n lang[key] = redef[key]\n }\n\n return lang\n },\n\n /**\n * Inserts tokens _before_ another token in a language definition or any other grammar.\n *\n * ## Usage\n *\n * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n * this:\n *\n * ```js\n * Prism.languages.markup.style = {\n * // token\n * };\n * ```\n *\n * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n * before existing tokens. For the CSS example above, you would use it like this:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'cdata', {\n * 'style': {\n * // token\n * }\n * });\n * ```\n *\n * ## Special cases\n *\n * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n * will be ignored.\n *\n * This behavior can be used to insert tokens after `before`:\n *\n * ```js\n * Prism.languages.insertBefore('markup', 'comment', {\n * 'comment': Prism.languages.markup.comment,\n * // tokens after 'comment'\n * });\n * ```\n *\n * ## Limitations\n *\n * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n * deleting properties which is necessary to insert at arbitrary positions.\n *\n * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n * Instead, it will create a new object and replace all references to the target object with the new one. This\n * can be done without temporarily deleting properties, so the iteration order is well-defined.\n *\n * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n * you hold the target object in a variable, then the value of the variable will not change.\n *\n * ```js\n * var oldMarkup = Prism.languages.markup;\n * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n *\n * assert(oldMarkup !== Prism.languages.markup);\n * assert(newMarkup === Prism.languages.markup);\n * ```\n *\n * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n * object to be modified.\n * @param {string} before The key to insert before.\n * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n * object to be modified.\n *\n * Defaults to `Prism.languages`.\n * @returns {Grammar} The new grammar object.\n * @public\n */\n insertBefore: function (inside, before, insert, root) {\n root = root || /** @type {any} */ (_.languages)\n var grammar = root[inside]\n /** @type {Grammar} */\n var ret = {}\n\n for (var token in grammar) {\n if (grammar.hasOwnProperty(token)) {\n if (token == before) {\n for (var newToken in insert) {\n if (insert.hasOwnProperty(newToken)) {\n ret[newToken] = insert[newToken]\n }\n }\n }\n\n // Do not insert token which also occur in insert. See #1525\n if (!insert.hasOwnProperty(token)) {\n ret[token] = grammar[token]\n }\n }\n }\n\n var old = root[inside]\n root[inside] = ret\n\n // Update references in other language definitions\n _.languages.DFS(_.languages, function (key, value) {\n if (value === old && key != inside) {\n this[key] = ret\n }\n })\n\n return ret\n },\n\n // Traverse a language definition with Depth First Search\n DFS: function DFS(o, callback, type, visited) {\n visited = visited || {}\n\n var objId = _.util.objId\n\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n callback.call(o, i, o[i], type || i)\n\n var property = o[i]\n var propertyType = _.util.type(property)\n\n if (propertyType === 'Object' && !visited[objId(property)]) {\n visited[objId(property)] = true\n DFS(property, callback, null, visited)\n } else if (propertyType === 'Array' && !visited[objId(property)]) {\n visited[objId(property)] = true\n DFS(property, callback, i, visited)\n }\n }\n }\n }\n },\n\n plugins: {},\n\n /**\n * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n * and the language definitions to use, and returns a string with the HTML produced.\n *\n * The following hooks will be run:\n * 1. `before-tokenize`\n * 2. `after-tokenize`\n * 3. `wrap`: On each {@link Token}.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @param {string} language The name of the language definition passed to `grammar`.\n * @returns {string} The highlighted HTML.\n * @memberof Prism\n * @public\n * @example\n * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n */\n highlight: function (text, grammar, language) {\n var env = {\n code: text,\n grammar: grammar,\n language: language\n }\n _.hooks.run('before-tokenize', env)\n if (!env.grammar) {\n throw new Error('The language \"' + env.language + '\" has no grammar.')\n }\n env.tokens = _.tokenize(env.code, env.grammar)\n _.hooks.run('after-tokenize', env)\n return Token.stringify(_.util.encode(env.tokens), env.language)\n },\n\n /**\n * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n * and the language definitions to use, and returns an array with the tokenized code.\n *\n * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n *\n * This method could be useful in other contexts as well, as a very crude parser.\n *\n * @param {string} text A string with the code to be highlighted.\n * @param {Grammar} grammar An object containing the tokens to use.\n *\n * Usually a language definition like `Prism.languages.markup`.\n * @returns {TokenStream} An array of strings and tokens, a token stream.\n * @memberof Prism\n * @public\n * @example\n * let code = `var foo = 0;`;\n * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n * tokens.forEach(token => {\n * if (token instanceof Prism.Token && token.type === 'number') {\n * console.log(`Found numeric literal: ${token.content}`);\n * }\n * });\n */\n tokenize: function (text, grammar) {\n var rest = grammar.rest\n if (rest) {\n for (var token in rest) {\n grammar[token] = rest[token]\n }\n\n delete grammar.rest\n }\n\n var tokenList = new LinkedList()\n addAfter(tokenList, tokenList.head, text)\n\n matchGrammar(text, tokenList, grammar, tokenList.head, 0)\n\n return toArray(tokenList)\n },\n\n /**\n * @namespace\n * @memberof Prism\n * @public\n */\n hooks: {\n all: {},\n\n /**\n * Adds the given callback to the list of callbacks for the given hook.\n *\n * The callback will be invoked when the hook it is registered for is run.\n * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n *\n * One callback function can be registered to multiple hooks and the same hook multiple times.\n *\n * @param {string} name The name of the hook.\n * @param {HookCallback} callback The callback function which is given environment variables.\n * @public\n */\n add: function (name, callback) {\n var hooks = _.hooks.all\n\n hooks[name] = hooks[name] || []\n\n hooks[name].push(callback)\n },\n\n /**\n * Runs a hook invoking all registered callbacks with the given environment variables.\n *\n * Callbacks will be invoked synchronously and in the order in which they were registered.\n *\n * @param {string} name The name of the hook.\n * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n * @public\n */\n run: function (name, env) {\n var callbacks = _.hooks.all[name]\n\n if (!callbacks || !callbacks.length) {\n return\n }\n\n for (var i = 0, callback; (callback = callbacks[i++]); ) {\n callback(env)\n }\n }\n },\n\n Token: Token\n}\n\n// Typescript note:\n// The following can be used to import the Token type in JSDoc:\n//\n// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n/**\n * Creates a new token.\n *\n * @param {string} type See {@link Token#type type}\n * @param {string | TokenStream} content See {@link Token#content content}\n * @param {string|string[]} [alias] The alias(es) of the token.\n * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n * @class\n * @global\n * @public\n */\nfunction Token(type, content, alias, matchedStr) {\n /**\n * The type of the token.\n *\n * This is usually the key of a pattern in a {@link Grammar}.\n *\n * @type {string}\n * @see GrammarToken\n * @public\n */\n this.type = type\n /**\n * The strings or tokens contained by this token.\n *\n * This will be a token stream if the pattern matched also defined an `inside` grammar.\n *\n * @type {string | TokenStream}\n * @public\n */\n this.content = content\n /**\n * The alias(es) of the token.\n *\n * @type {string|string[]}\n * @see GrammarToken\n * @public\n */\n this.alias = alias\n // Copy of the full string this token was created from\n this.length = (matchedStr || '').length | 0\n}\n\n/**\n * A token stream is an array of strings and {@link Token Token} objects.\n *\n * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n * them.\n *\n * 1. No adjacent strings.\n * 2. No empty strings.\n *\n * The only exception here is the token stream that only contains the empty string and nothing else.\n *\n * @typedef {Array<string | Token>} TokenStream\n * @global\n * @public\n */\n\n/**\n * @param {RegExp} pattern\n * @param {number} pos\n * @param {string} text\n * @param {boolean} lookbehind\n * @returns {RegExpExecArray | null}\n */\nfunction matchPattern(pattern, pos, text, lookbehind) {\n pattern.lastIndex = pos\n var match = pattern.exec(text)\n if (match && lookbehind && match[1]) {\n // change the match to remove the text matched by the Prism lookbehind group\n var lookbehindLength = match[1].length\n match.index += lookbehindLength\n match[0] = match[0].slice(lookbehindLength)\n }\n return match\n}\n\n/**\n * @param {string} text\n * @param {LinkedList<string | Token>} tokenList\n * @param {any} grammar\n * @param {LinkedListNode<string | Token>} startNode\n * @param {number} startPos\n * @param {RematchOptions} [rematch]\n * @returns {void}\n * @private\n *\n * @typedef RematchOptions\n * @property {string} cause\n * @property {number} reach\n */\nfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n for (var token in grammar) {\n if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n continue\n }\n\n var patterns = grammar[token]\n patterns = Array.isArray(patterns) ? patterns : [patterns]\n\n for (var j = 0; j < patterns.length; ++j) {\n if (rematch && rematch.cause == token + ',' + j) {\n return\n }\n\n var patternObj = patterns[j]\n var inside = patternObj.inside\n var lookbehind = !!patternObj.lookbehind\n var greedy = !!patternObj.greedy\n var alias = patternObj.alias\n\n if (greedy && !patternObj.pattern.global) {\n // Without the global flag, lastIndex won't work\n var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0]\n patternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g')\n }\n\n /** @type {RegExp} */\n var pattern = patternObj.pattern || patternObj\n\n for (\n // iterate the token list and keep track of the current token/string position\n var currentNode = startNode.next, pos = startPos;\n currentNode !== tokenList.tail;\n pos += currentNode.value.length, currentNode = currentNode.next\n ) {\n if (rematch && pos >= rematch.reach) {\n break\n }\n\n var str = currentNode.value\n\n if (tokenList.length > text.length) {\n // Something went terribly wrong, ABORT, ABORT!\n return\n }\n\n if (str instanceof Token) {\n continue\n }\n\n var removeCount = 1 // this is the to parameter of removeBetween\n var match\n\n if (greedy) {\n match = matchPattern(pattern, pos, text, lookbehind)\n if (!match || match.index >= text.length) {\n break\n }\n\n var from = match.index\n var to = match.index + match[0].length\n var p = pos\n\n // find the node that contains the match\n p += currentNode.value.length\n while (from >= p) {\n currentNode = currentNode.next\n p += currentNode.value.length\n }\n // adjust pos (and p)\n p -= currentNode.value.length\n pos = p\n\n // the current node is a Token, then the match starts inside another Token, which is invalid\n if (currentNode.value instanceof Token) {\n continue\n }\n\n // find the last node which is affected by this match\n for (\n var k = currentNode;\n k !== tokenList.tail && (p < to || typeof k.value === 'string');\n k = k.next\n ) {\n removeCount++\n p += k.value.length\n }\n removeCount--\n\n // replace with the new match\n str = text.slice(pos, p)\n match.index -= pos\n } else {\n match = matchPattern(pattern, 0, str, lookbehind)\n if (!match) {\n continue\n }\n }\n\n // eslint-disable-next-line no-redeclare\n var from = match.index\n var matchStr = match[0]\n var before = str.slice(0, from)\n var after = str.slice(from + matchStr.length)\n\n var reach = pos + str.length\n if (rematch && reach > rematch.reach) {\n rematch.reach = reach\n }\n\n var removeFrom = currentNode.prev\n\n if (before) {\n removeFrom = addAfter(tokenList, removeFrom, before)\n pos += before.length\n }\n\n removeRange(tokenList, removeFrom, removeCount)\n\n var wrapped = new Token(\n token,\n inside ? _.tokenize(matchStr, inside) : matchStr,\n alias,\n matchStr\n )\n currentNode = addAfter(tokenList, removeFrom, wrapped)\n\n if (after) {\n addAfter(tokenList, currentNode, after)\n }\n\n if (removeCount > 1) {\n // at least one Token object was removed, so we have to do some rematching\n // this can only happen if the current pattern is greedy\n\n /** @type {RematchOptions} */\n var nestedRematch = {\n cause: token + ',' + j,\n reach: reach\n }\n matchGrammar(\n text,\n tokenList,\n grammar,\n currentNode.prev,\n pos,\n nestedRematch\n )\n\n // the reach might have been extended because of the rematching\n if (rematch && nestedRematch.reach > rematch.reach) {\n rematch.reach = nestedRematch.reach\n }\n }\n }\n }\n }\n}\n\n/**\n * @typedef LinkedListNode\n * @property {T} value\n * @property {LinkedListNode<T> | null} prev The previous node.\n * @property {LinkedListNode<T> | null} next The next node.\n * @template T\n * @private\n */\n\n/**\n * @template T\n * @private\n */\nfunction LinkedList() {\n /** @type {LinkedListNode<T>} */\n var head = {value: null, prev: null, next: null}\n /** @type {LinkedListNode<T>} */\n var tail = {value: null, prev: head, next: null}\n head.next = tail\n\n /** @type {LinkedListNode<T>} */\n this.head = head\n /** @type {LinkedListNode<T>} */\n this.tail = tail\n this.length = 0\n}\n\n/**\n * Adds a new node with the given value to the list.\n *\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {T} value\n * @returns {LinkedListNode<T>} The added node.\n * @template T\n */\nfunction addAfter(list, node, value) {\n // assumes that node != list.tail && values.length >= 0\n var next = node.next\n\n var newNode = {value: value, prev: node, next: next}\n node.next = newNode\n next.prev = newNode\n list.length++\n\n return newNode\n}\n/**\n * Removes `count` nodes after the given node. The given node will not be removed.\n *\n * @param {LinkedList<T>} list\n * @param {LinkedListNode<T>} node\n * @param {number} count\n * @template T\n */\nfunction removeRange(list, node, count) {\n var next = node.next\n for (var i = 0; i < count && next !== list.tail; i++) {\n next = next.next\n }\n node.next = next\n next.prev = node\n list.length -= i\n}\n/**\n * @param {LinkedList<T>} list\n * @returns {T[]}\n * @template T\n */\nfunction toArray(list) {\n var array = []\n var node = list.head.next\n while (node !== list.tail) {\n array.push(node.value)\n node = node.next\n }\n return array\n}\n\nexport const Prism = _\n","/**\n * @import {Element, Root, Text} from 'hast'\n * @import {Grammar, Languages} from 'prismjs'\n */\n\n/**\n * @typedef _Token\n * Hidden Prism token.\n * @property {string} alias\n * Alias.\n * @property {string} content\n * Content.\n * @property {number} length\n * Length.\n * @property {string} type\n * Type.\n */\n\n/**\n * @typedef _Env\n * Hidden Prism environment.\n * @property {Record<string, string>} attributes\n * Attributes.\n * @property {Array<string>} classes\n * Classes.\n * @property {Array<Element | Text> | Element | Text} content\n * Content.\n * @property {string} language\n * Language.\n * @property {string} tag\n * Tag.\n * @property {string} type\n * Type.\n */\n\n/**\n * @typedef {((prism: Refractor) => undefined | void) & {aliases?: Array<string> | undefined, displayName: string}} Syntax\n * Refractor syntax function.\n */\n\n/**\n * @typedef Refractor\n * Virtual syntax highlighting\n * @property {typeof alias} alias\n * @property {Languages} languages\n * @property {typeof listLanguages} listLanguages\n * @property {typeof highlight} highlight\n * @property {typeof registered} registered\n * @property {typeof register} register\n */\n\n// Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prism’s originals.\nimport {h} from 'hastscript'\nimport {parseEntities} from 'parse-entities'\nimport {Prism} from './prism-core.js'\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n/** @type {Refractor} */\n// @ts-expect-error: TS is wrong.\nexport const refractor = new Refractor()\n\n// Create.\nrefractor.highlight = highlight\nrefractor.register = register\nrefractor.alias = alias\nrefractor.registered = registered\nrefractor.listLanguages = listLanguages\n\n// @ts-expect-error Overwrite Prism.\nrefractor.util.encode = encode\n// @ts-expect-error Overwrite Prism.\nrefractor.Token.stringify = stringify\n\n/**\n * Highlight `value` (code) as `language` (programming language).\n *\n * @param {string} value\n * Code to highlight.\n * @param {Grammar | string} language\n * Programming language name, alias, or grammar.\n * @returns {Root}\n * Node representing highlighted code.\n */\nfunction highlight(value, language) {\n if (typeof value !== 'string') {\n throw new TypeError('Expected `string` for `value`, got `' + value + '`')\n }\n\n /** @type {Grammar} */\n let grammar\n /** @type {string | undefined} */\n let name\n\n // `name` is a grammar object.\n // This was called internally by Prism.js before 1.28.0.\n /* c8 ignore next 2 */\n if (language && typeof language === 'object') {\n grammar = language\n } else {\n name = language\n\n if (typeof name !== 'string') {\n throw new TypeError('Expected `string` for `name`, got `' + name + '`')\n }\n\n if (Object.hasOwn(refractor.languages, name)) {\n grammar = refractor.languages[name]\n } else {\n throw new Error('Unknown language: `' + name + '` is not registered')\n }\n }\n\n return {\n type: 'root',\n // @ts-expect-error: we hacked Prism to accept and return the things we want.\n children: Prism.highlight.call(refractor, value, grammar, name)\n }\n}\n\n/**\n * Register a syntax.\n *\n * @param {Syntax} syntax\n * Language function made for refractor, as in, the files in\n * `refractor/lang/*.js`.\n * @returns {undefined}\n * Nothing.\n */\nfunction register(syntax) {\n if (typeof syntax !== 'function' || !syntax.displayName) {\n throw new Error('Expected `function` for `syntax`, got `' + syntax + '`')\n }\n\n // Do not duplicate registrations.\n if (!Object.hasOwn(refractor.languages, syntax.displayName)) {\n syntax(refractor)\n }\n}\n\n/**\n * Register aliases for already registered languages.\n *\n * @param {Record<string, ReadonlyArray<string> | string> | string} language\n * Language to alias.\n * @param {ReadonlyArray<string> | string | null | undefined} [alias]\n * Aliases.\n * @returns {undefined}\n * Nothing.\n */\nfunction alias(language, alias) {\n const languages = refractor.languages\n /** @type {Record<string, ReadonlyArray<string> | string>} */\n let map = {}\n\n if (typeof language === 'string') {\n if (alias) {\n map[language] = alias\n }\n } else {\n map = language\n }\n\n /** @type {string} */\n let key\n\n for (key in map) {\n if (Object.hasOwn(map, key)) {\n const value = map[key]\n const list = typeof value === 'string' ? [value] : value\n let index = -1\n\n while (++index < list.length) {\n languages[list[index]] = languages[key]\n }\n }\n }\n}\n\n/**\n * Check whether an `alias` or `language` is registered.\n *\n * @param {string} aliasOrLanguage\n * Language or alias to check.\n * @returns {boolean}\n * Whether the language is registered.\n */\nfunction registered(aliasOrLanguage) {\n if (typeof aliasOrLanguage !== 'string') {\n throw new TypeError(\n 'Expected `string` for `aliasOrLanguage`, got `' + aliasOrLanguage + '`'\n )\n }\n\n return Object.hasOwn(refractor.languages, aliasOrLanguage)\n}\n\n/**\n * List all registered languages (names and aliases).\n *\n * @returns {Array<string>}\n * List of language names.\n */\nfunction listLanguages() {\n const languages = refractor.languages\n /** @type {Array<string>} */\n const list = []\n /** @type {string} */\n let language\n\n for (language in languages) {\n if (\n Object.hasOwn(languages, language) &&\n typeof languages[language] === 'object'\n ) {\n list.push(language)\n }\n }\n\n return list\n}\n\n/**\n * @param {Array<_Token | string> | _Token | string} value\n * Token to stringify.\n * @param {string} language\n * Language of the token.\n * @returns {Array<Element | Text> | Element | Text}\n * Node representing the token.\n */\nfunction stringify(value, language) {\n if (typeof value === 'string') {\n return {type: 'text', value}\n }\n\n if (Array.isArray(value)) {\n /** @type {Array<Element | Text>} */\n const result = []\n let index = -1\n\n while (++index < value.length) {\n if (\n value[index] !== null &&\n value[index] !== undefined &&\n value[index] !== ''\n ) {\n // Cast because we assume no sub-arrays.\n result.push(\n /** @type {Element | Text} */ (stringify(value[index], language))\n )\n }\n }\n\n return result\n }\n\n /** @type {_Env} */\n const env = {\n attributes: {},\n classes: ['token', value.type],\n content: stringify(value.content, language),\n language,\n tag: 'span',\n type: value.type\n }\n\n if (value.alias) {\n env.classes.push(\n ...(typeof value.alias === 'string' ? [value.alias] : value.alias)\n )\n }\n\n // @ts-expect-error Prism.\n refractor.hooks.run('wrap', env)\n\n return h(\n env.tag + '.' + env.classes.join('.'),\n attributes(env.attributes),\n env.content\n )\n}\n\n/**\n * @template {unknown} T\n * Tokens.\n * @param {T} tokens\n * Input.\n * @returns {T}\n * Output, same as input.\n */\nfunction encode(tokens) {\n return tokens\n}\n\n/**\n * @param {Record<string, string>} record\n * Attributes.\n * @returns {Record<string, string>}\n * Attributes.\n */\nfunction attributes(record) {\n /** @type {string} */\n let key\n\n for (key in record) {\n if (Object.hasOwn(record, key)) {\n record[key] = parseEntities(record[key])\n }\n }\n\n return record\n}\n","import highlight from \"./highlight.js\";\nimport { refractor } from 'refractor/core';\nvar SyntaxHighlighter = highlight(refractor, {});\nSyntaxHighlighter.registerLanguage = function (_, language) {\n return refractor.register(language);\n};\nSyntaxHighlighter.alias = function (name, aliases) {\n return refractor.alias(name, aliases);\n};\nexport default SyntaxHighlighter;","export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"background\": \"hsl(220, 13%, 18%)\",\n \"color\": \"hsl(220, 14%, 71%)\",\n \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n \"fontFamily\": \"\\\"Fira Code\\\", \\\"Fira Mono\\\", Menlo, Consolas, \\\"DejaVu Sans Mono\\\", monospace\",\n \"direction\": \"ltr\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"2\",\n \"OTabSize\": \"2\",\n \"tabSize\": \"2\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"background\": \"hsl(220, 13%, 18%)\",\n \"color\": \"hsl(220, 14%, 71%)\",\n \"textShadow\": \"0 1px rgba(0, 0, 0, 0.3)\",\n \"fontFamily\": \"\\\"Fira Code\\\", \\\"Fira Mono\\\", Menlo, Consolas, \\\"DejaVu Sans Mono\\\", monospace\",\n \"direction\": \"ltr\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"2\",\n \"OTabSize\": \"2\",\n \"tabSize\": \"2\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \"0.5em 0\",\n \"overflow\": \"auto\",\n \"borderRadius\": \"0.3em\"\n },\n \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"inherit\",\n \"textShadow\": \"none\"\n },\n \"code[class*=\\\"language-\\\"] *::-moz-selection\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"inherit\",\n \"textShadow\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"] *::-moz-selection\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"inherit\",\n \"textShadow\": \"none\"\n },\n \"code[class*=\\\"language-\\\"]::selection\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"inherit\",\n \"textShadow\": \"none\"\n },\n \"code[class*=\\\"language-\\\"] *::selection\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"inherit\",\n \"textShadow\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"] *::selection\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"inherit\",\n \"textShadow\": \"none\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"padding\": \"0.2em 0.3em\",\n \"borderRadius\": \"0.3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"hsl(220, 10%, 40%)\",\n \"fontStyle\": \"italic\"\n },\n \"prolog\": {\n \"color\": \"hsl(220, 10%, 40%)\"\n },\n \"cdata\": {\n \"color\": \"hsl(220, 10%, 40%)\"\n },\n \"doctype\": {\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \"punctuation\": {\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \"entity\": {\n \"color\": \"hsl(220, 14%, 71%)\",\n \"cursor\": \"help\"\n },\n \"attr-name\": {\n \"color\": \"hsl(29, 54%, 61%)\"\n },\n \"class-name\": {\n \"color\": \"hsl(29, 54%, 61%)\"\n },\n \"boolean\": {\n \"color\": \"hsl(29, 54%, 61%)\"\n },\n \"constant\": {\n \"color\": \"hsl(29, 54%, 61%)\"\n },\n \"number\": {\n \"color\": \"hsl(29, 54%, 61%)\"\n },\n \"atrule\": {\n \"color\": \"hsl(29, 54%, 61%)\"\n },\n \"keyword\": {\n \"color\": \"hsl(286, 60%, 67%)\"\n },\n \"property\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \"tag\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \"symbol\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \"deleted\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \"important\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \"selector\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \"string\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \"char\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \"builtin\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \"inserted\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \"regex\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \"attr-value\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \"attr-value > .token.punctuation\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \"variable\": {\n \"color\": \"hsl(207, 82%, 66%)\"\n },\n \"operator\": {\n \"color\": \"hsl(207, 82%, 66%)\"\n },\n \"function\": {\n \"color\": \"hsl(207, 82%, 66%)\"\n },\n \"url\": {\n \"color\": \"hsl(187, 47%, 55%)\"\n },\n \"attr-value > .token.punctuation.attr-equals\": {\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \"special-attr > .token.attr-value > .token.value.css\": {\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \".language-css .token.selector\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \".language-css .token.property\": {\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \".language-css .token.function\": {\n \"color\": \"hsl(187, 47%, 55%)\"\n },\n \".language-css .token.url > .token.function\": {\n \"color\": \"hsl(187, 47%, 55%)\"\n },\n \".language-css .token.url > .token.string.url\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \".language-css .token.important\": {\n \"color\": \"hsl(286, 60%, 67%)\"\n },\n \".language-css .token.atrule .token.rule\": {\n \"color\": \"hsl(286, 60%, 67%)\"\n },\n \".language-javascript .token.operator\": {\n \"color\": \"hsl(286, 60%, 67%)\"\n },\n \".language-javascript .token.template-string > .token.interpolation > .token.interpolation-punctuation.punctuation\": {\n \"color\": \"hsl(5, 48%, 51%)\"\n },\n \".language-json .token.operator\": {\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \".language-json .token.null.keyword\": {\n \"color\": \"hsl(29, 54%, 61%)\"\n },\n \".language-markdown .token.url\": {\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \".language-markdown .token.url > .token.operator\": {\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \".language-markdown .token.url-reference.url > .token.string\": {\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \".language-markdown .token.url > .token.content\": {\n \"color\": \"hsl(207, 82%, 66%)\"\n },\n \".language-markdown .token.url > .token.url\": {\n \"color\": \"hsl(187, 47%, 55%)\"\n },\n \".language-markdown .token.url-reference.url\": {\n \"color\": \"hsl(187, 47%, 55%)\"\n },\n \".language-markdown .token.blockquote.punctuation\": {\n \"color\": \"hsl(220, 10%, 40%)\",\n \"fontStyle\": \"italic\"\n },\n \".language-markdown .token.hr.punctuation\": {\n \"color\": \"hsl(220, 10%, 40%)\",\n \"fontStyle\": \"italic\"\n },\n \".language-markdown .token.code-snippet\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \".language-markdown .token.bold .token.content\": {\n \"color\": \"hsl(29, 54%, 61%)\"\n },\n \".language-markdown .token.italic .token.content\": {\n \"color\": \"hsl(286, 60%, 67%)\"\n },\n \".language-markdown .token.strike .token.content\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \".language-markdown .token.strike .token.punctuation\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \".language-markdown .token.list.punctuation\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \".language-markdown .token.title.important > .token.punctuation\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n },\n \"namespace\": {\n \"Opacity\": \"0.8\"\n },\n \"token.tab:not(:empty):before\": {\n \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n \"textShadow\": \"none\"\n },\n \"token.cr:before\": {\n \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n \"textShadow\": \"none\"\n },\n \"token.lf:before\": {\n \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n \"textShadow\": \"none\"\n },\n \"token.space:before\": {\n \"color\": \"hsla(220, 14%, 71%, 0.15)\",\n \"textShadow\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item\": {\n \"marginRight\": \"0.4em\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n \"background\": \"hsl(220, 13%, 26%)\",\n \"color\": \"hsl(220, 9%, 55%)\",\n \"padding\": \"0.1em 0.4em\",\n \"borderRadius\": \"0.3em\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n \"background\": \"hsl(220, 13%, 26%)\",\n \"color\": \"hsl(220, 9%, 55%)\",\n \"padding\": \"0.1em 0.4em\",\n \"borderRadius\": \"0.3em\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n \"background\": \"hsl(220, 13%, 26%)\",\n \"color\": \"hsl(220, 9%, 55%)\",\n \"padding\": \"0.1em 0.4em\",\n \"borderRadius\": \"0.3em\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n \"background\": \"hsl(220, 13%, 28%)\",\n \"color\": \"hsl(220, 14%, 71%)\"\n },\n \".line-highlight.line-highlight\": {\n \"background\": \"hsla(220, 100%, 80%, 0.04)\"\n },\n \".line-highlight.line-highlight:before\": {\n \"background\": \"hsl(220, 13%, 26%)\",\n \"color\": \"hsl(220, 14%, 71%)\",\n \"padding\": \"0.1em 0.6em\",\n \"borderRadius\": \"0.3em\",\n \"boxShadow\": \"0 2px 0 0 rgba(0, 0, 0, 0.2)\"\n },\n \".line-highlight.line-highlight[data-end]:after\": {\n \"background\": \"hsl(220, 13%, 26%)\",\n \"color\": \"hsl(220, 14%, 71%)\",\n \"padding\": \"0.1em 0.6em\",\n \"borderRadius\": \"0.3em\",\n \"boxShadow\": \"0 2px 0 0 rgba(0, 0, 0, 0.2)\"\n },\n \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n \"backgroundColor\": \"hsla(220, 100%, 80%, 0.04)\"\n },\n \".line-numbers.line-numbers .line-numbers-rows\": {\n \"borderRightColor\": \"hsla(220, 14%, 71%, 0.15)\"\n },\n \".command-line .command-line-prompt\": {\n \"borderRightColor\": \"hsla(220, 14%, 71%, 0.15)\"\n },\n \".line-numbers .line-numbers-rows > span:before\": {\n \"color\": \"hsl(220, 14%, 45%)\"\n },\n \".command-line .command-line-prompt > span:before\": {\n \"color\": \"hsl(220, 14%, 45%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n \"color\": \"hsl(355, 65%, 65%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n \"color\": \"hsl(95, 38%, 62%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n \"color\": \"hsl(207, 82%, 66%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n \"color\": \"hsl(207, 82%, 66%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n \"color\": \"hsl(207, 82%, 66%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n \"color\": \"hsl(286, 60%, 67%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n \"color\": \"hsl(286, 60%, 67%)\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n \"color\": \"hsl(286, 60%, 67%)\"\n },\n \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n \"backgroundColor\": \"hsla(353, 100%, 66%, 0.15)\"\n },\n \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n \"backgroundColor\": \"hsla(353, 100%, 66%, 0.15)\"\n },\n \"pre.diff-highlight > code .token.token.deleted:not(.prefix)::-moz-selection\": {\n \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n },\n \"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::-moz-selection\": {\n \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n },\n \"pre > code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection\": {\n \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n },\n \"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection\": {\n \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n },\n \"pre.diff-highlight > code .token.token.deleted:not(.prefix)::selection\": {\n \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n },\n \"pre.diff-highlight > code .token.token.deleted:not(.prefix) *::selection\": {\n \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n },\n \"pre > code.diff-highlight .token.token.deleted:not(.prefix)::selection\": {\n \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n },\n \"pre > code.diff-highlight .token.token.deleted:not(.prefix) *::selection\": {\n \"backgroundColor\": \"hsla(353, 95%, 66%, 0.25)\"\n },\n \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n \"backgroundColor\": \"hsla(137, 100%, 55%, 0.15)\"\n },\n \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n \"backgroundColor\": \"hsla(137, 100%, 55%, 0.15)\"\n },\n \"pre.diff-highlight > code .token.token.inserted:not(.prefix)::-moz-selection\": {\n \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n },\n \"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::-moz-selection\": {\n \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n },\n \"pre > code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection\": {\n \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n },\n \"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection\": {\n \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n },\n \"pre.diff-highlight > code .token.token.inserted:not(.prefix)::selection\": {\n \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n },\n \"pre.diff-highlight > code .token.token.inserted:not(.prefix) *::selection\": {\n \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n },\n \"pre > code.diff-highlight .token.token.inserted:not(.prefix)::selection\": {\n \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n },\n \"pre > code.diff-highlight .token.token.inserted:not(.prefix) *::selection\": {\n \"backgroundColor\": \"hsla(135, 73%, 55%, 0.25)\"\n },\n \".prism-previewer.prism-previewer:before\": {\n \"borderColor\": \"hsl(224, 13%, 17%)\"\n },\n \".prism-previewer-gradient.prism-previewer-gradient div\": {\n \"borderColor\": \"hsl(224, 13%, 17%)\",\n \"borderRadius\": \"0.3em\"\n },\n \".prism-previewer-color.prism-previewer-color:before\": {\n \"borderRadius\": \"0.3em\"\n },\n \".prism-previewer-easing.prism-previewer-easing:before\": {\n \"borderRadius\": \"0.3em\"\n },\n \".prism-previewer.prism-previewer:after\": {\n \"borderTopColor\": \"hsl(224, 13%, 17%)\"\n },\n \".prism-previewer-flipped.prism-previewer-flipped.after\": {\n \"borderBottomColor\": \"hsl(224, 13%, 17%)\"\n },\n \".prism-previewer-angle.prism-previewer-angle:before\": {\n \"background\": \"hsl(219, 13%, 22%)\"\n },\n \".prism-previewer-time.prism-previewer-time:before\": {\n \"background\": \"hsl(219, 13%, 22%)\"\n },\n \".prism-previewer-easing.prism-previewer-easing\": {\n \"background\": \"hsl(219, 13%, 22%)\"\n },\n \".prism-previewer-angle.prism-previewer-angle circle\": {\n \"stroke\": \"hsl(220, 14%, 71%)\",\n \"strokeOpacity\": \"1\"\n },\n \".prism-previewer-time.prism-previewer-time circle\": {\n \"stroke\": \"hsl(220, 14%, 71%)\",\n \"strokeOpacity\": \"1\"\n },\n \".prism-previewer-easing.prism-previewer-easing circle\": {\n \"stroke\": \"hsl(220, 14%, 71%)\",\n \"fill\": \"transparent\"\n },\n \".prism-previewer-easing.prism-previewer-easing path\": {\n \"stroke\": \"hsl(220, 14%, 71%)\"\n },\n \".prism-previewer-easing.prism-previewer-easing line\": {\n \"stroke\": \"hsl(220, 14%, 71%)\"\n }\n};","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nclike.displayName = 'clike'\nclike.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function clike(Prism) {\n Prism.languages.clike = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b\\w+(?=\\()/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorClike from './clike.js'\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\n\n/** @param {Refractor} Prism */\nexport default function javascript(Prism) {\n Prism.register(refractorClike)\n Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [\n Prism.languages.clike['class-name'],\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /((?:^|\\})\\s*)catch\\b/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }\n ],\n // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n function:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n number: {\n pattern: RegExp(\n /(^|[^\\w$])/.source +\n '(?:' +\n // constant\n (/NaN|Infinity/.source +\n '|' +\n // binary integer\n /0[bB][01]+(?:_[01]+)*n?/.source +\n '|' +\n // octal integer\n /0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n '|' +\n // hexadecimal integer\n /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n '|' +\n // decimal bigint\n /\\d+(?:_\\d+)*n/.source +\n '|' +\n // decimal number (integer or float) but no bigint\n /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/\n .source) +\n ')' +\n /(?![\\w$])/.source\n ),\n lookbehind: true\n },\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n })\n Prism.languages.javascript['class-name'][0].pattern =\n /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/\n Prism.languages.insertBefore('javascript', 'keyword', {\n regex: {\n pattern: RegExp(\n // lookbehind\n // eslint-disable-next-line regexp/no-dupe-characters-character-class\n /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n // Regex pattern:\n // There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n // classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n // with the only syntax, so we have to define 2 different regex patterns.\n /\\//.source +\n '(?:' +\n /(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/\n .source +\n '|' +\n // `v` flag syntax. This supports 3 levels of nested character classes.\n /(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/\n .source +\n ')' +\n // lookahead\n /(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\/|\\/$/,\n 'regex-flags': /^[a-z]+$/\n }\n },\n // This must be declared before keyword because we use \"function\" inside the look-forward\n 'function-variable': {\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n parameter: [\n {\n pattern:\n /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n })\n Prism.languages.insertBefore('javascript', 'string', {\n hashbang: {\n pattern: /^#!.*/,\n greedy: true,\n alias: 'comment'\n },\n 'template-string': {\n pattern:\n /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'string-property': {\n pattern:\n /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n }\n })\n Prism.languages.insertBefore('javascript', 'operator', {\n 'literal-property': {\n pattern:\n /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n lookbehind: true,\n alias: 'property'\n }\n })\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript')\n\n // add attribute support for all DOM events.\n // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n Prism.languages.markup.tag.addAttribute(\n /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/\n .source,\n 'javascript'\n )\n }\n Prism.languages.js = Prism.languages.javascript\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\n\n/** @param {Refractor} Prism */\nexport default function typescript(Prism) {\n Prism.register(refractorJavascript)\n ;(function (Prism) {\n Prism.languages.typescript = Prism.languages.extend('javascript', {\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n builtin:\n /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n })\n\n // The keywords TypeScript adds to JavaScript\n Prism.languages.typescript.keyword.push(\n /\\b(?:abstract|declare|is|keyof|readonly|require)\\b/,\n // keywords that have to be followed by an identifier\n /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/,\n // This is for `import type *, {}`\n /\\btype\\b(?=\\s*(?:[\\{*]|$))/\n )\n\n // doesn't work with TS because TS is too complex\n delete Prism.languages.typescript['parameter']\n delete Prism.languages.typescript['literal-property']\n\n // a version of typescript specifically for highlighting types\n var typeInside = Prism.languages.extend('typescript', {})\n delete typeInside['class-name']\n Prism.languages.typescript['class-name'].inside = typeInside\n Prism.languages.insertBefore('typescript', 'function', {\n decorator: {\n pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n inside: {\n at: {\n pattern: /^@/,\n alias: 'operator'\n },\n function: /^[\\s\\S]+/\n }\n },\n 'generic-function': {\n // e.g. foo<T extends \"bar\" | \"baz\">( ...\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n greedy: true,\n inside: {\n function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n generic: {\n pattern: /<[\\s\\S]+/,\n // everything after the first <\n alias: 'class-name',\n inside: typeInside\n }\n }\n }\n })\n Prism.languages.ts = Prism.languages.typescript\n })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nmarkup.displayName = 'markup'\nmarkup.aliases = ['atom', 'html', 'mathml', 'rss', 'ssml', 'svg', 'xml']\n\n/** @param {Refractor} Prism */\nexport default function markup(Prism) {\n Prism.languages.markup = {\n comment: {\n pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n greedy: true\n },\n prolog: {\n pattern: /<\\?[\\s\\S]+?\\?>/,\n greedy: true\n },\n doctype: {\n // https://www.w3.org/TR/xml/#NT-doctypedecl\n pattern:\n /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n punctuation: /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/i,\n name: /[^\\s<>'\"]+/\n }\n },\n cdata: {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n greedy: true\n },\n tag: {\n pattern:\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n tag: {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n punctuation: /^<\\/?/,\n namespace: /^[^\\s>\\/:]+:/\n }\n },\n 'special-attr': [],\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ]\n }\n },\n punctuation: /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: {\n namespace: /^[^\\s>\\/:]+:/\n }\n }\n }\n },\n entity: [\n {\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n },\n /&#x?[\\da-f]{1,8};/i\n ]\n }\n Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n Prism.languages.markup['entity']\n Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n Prism.languages.markup\n\n // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n /**\n * Adds an inlined language to markup.\n *\n * An example of an inlined language is CSS with `<style>` tags.\n *\n * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addInlined('style', 'css');\n */\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {}\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n }\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n }\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n }\n var def = {}\n def[tagName] = {\n pattern: RegExp(\n /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n /__/g,\n function () {\n return tagName\n }\n ),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: inside\n }\n Prism.languages.insertBefore('markup', 'cdata', def)\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n /**\n * Adds an pattern to highlight languages embedded in HTML attributes.\n *\n * An example of an inlined language is CSS with `style` attributes.\n *\n * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addAttribute('style', 'css');\n */\n value: function (attrName, lang) {\n Prism.languages.markup.tag.inside['special-attr'].push({\n pattern: RegExp(\n /(^|[\"'\\s])/.source +\n '(?:' +\n attrName +\n ')' +\n /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n 'i'\n ),\n lookbehind: true,\n inside: {\n 'attr-name': /^[^\\s=]+/,\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n value: {\n pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n lookbehind: true,\n alias: [lang, 'language-' + lang],\n inside: Prism.languages[lang]\n },\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n }\n }\n })\n }\n })\n Prism.languages.html = Prism.languages.markup\n Prism.languages.mathml = Prism.languages.markup\n Prism.languages.svg = Prism.languages.markup\n Prism.languages.xml = Prism.languages.extend('markup', {})\n Prism.languages.ssml = Prism.languages.xml\n Prism.languages.atom = Prism.languages.xml\n Prism.languages.rss = Prism.languages.xml\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJavascript from './javascript.js'\nimport refractorMarkup from './markup.js'\njsx.displayName = 'jsx'\njsx.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function jsx(Prism) {\n Prism.register(refractorJavascript)\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n var javascript = Prism.util.clone(Prism.languages.javascript)\n var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source\n var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source\n var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source\n\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function re(source, flags) {\n source = source\n .replace(/<S>/g, function () {\n return space\n })\n .replace(/<BRACES>/g, function () {\n return braces\n })\n .replace(/<SPREAD>/g, function () {\n return spread\n })\n return RegExp(source, flags)\n }\n spread = re(spread).source\n Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n Prism.languages.jsx.tag.pattern = re(\n /<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/\n .source\n )\n Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/\n Prism.languages.jsx.tag.inside['attr-value'].pattern =\n /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/\n Prism.languages.jsx.tag.inside['tag'].inside['class-name'] =\n /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n Prism.languages.jsx.tag.inside['comment'] = javascript['comment']\n Prism.languages.insertBefore(\n 'inside',\n 'attr-name',\n {\n spread: {\n pattern: re(/<SPREAD>/.source),\n inside: Prism.languages.jsx\n }\n },\n Prism.languages.jsx.tag\n )\n Prism.languages.insertBefore(\n 'inside',\n 'special-attr',\n {\n script: {\n // Allow for two levels of nesting\n pattern: re(/=<BRACES>/.source),\n alias: 'language-javascript',\n inside: {\n 'script-punctuation': {\n pattern: /^=(?=\\{)/,\n alias: 'punctuation'\n },\n rest: Prism.languages.jsx\n }\n }\n },\n Prism.languages.jsx.tag\n )\n\n // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (!token) {\n return ''\n }\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{'\n ) {\n // Here we might have entered a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside a JSX context.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token)\n\n // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'jsx' && env.language !== 'tsx') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorJsx from './jsx.js'\nimport refractorTypescript from './typescript.js'\ntsx.displayName = 'tsx'\ntsx.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function tsx(Prism) {\n Prism.register(refractorJsx)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var typescript = Prism.util.clone(Prism.languages.typescript)\n Prism.languages.tsx = Prism.languages.extend('jsx', typescript)\n\n // doesn't work with TS because TS is too complex\n delete Prism.languages.tsx['parameter']\n delete Prism.languages.tsx['literal-property']\n\n // This will prevent collisions between TSX tags and TS generic types.\n // Idea by https://github.com/karlhorky\n // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n var tag = Prism.languages.tsx.tag\n tag.pattern = RegExp(\n /(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')',\n tag.pattern.flags\n )\n tag.lookbehind = true\n })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\njson.displayName = 'json'\njson.aliases = ['webmanifest']\n\n/** @param {Refractor} Prism */\nexport default function json(Prism) {\n // https://www.json.org/json-en.html\n Prism.languages.json = {\n property: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\],]/,\n operator: /:/,\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n }\n }\n Prism.languages.webmanifest = Prism.languages.json\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nbash.displayName = 'bash'\nbash.aliases = ['sh', 'shell']\n\n/** @param {Refractor} Prism */\nexport default function bash(Prism) {\n ;(function (Prism) {\n // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n // + LC_ALL, RANDOM, REPLY, SECONDS.\n // + make sure PS1..4 are here as they are not always set,\n // - some useless things.\n var envVars =\n '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n var commandAfterHeredoc = {\n pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n lookbehind: true,\n alias: 'punctuation',\n // this looks reasonably well in all themes\n inside: null // see below\n }\n var insideString = {\n bash: commandAfterHeredoc,\n environment: {\n pattern: RegExp('\\\\$' + envVars),\n alias: 'constant'\n },\n variable: [\n // [0]: Arithmetic Environment\n {\n pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n greedy: true,\n inside: {\n // If there is a $ sign at the beginning highlight $(( and )) as variable\n variable: [\n {\n pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n lookbehind: true\n },\n /^\\$\\(\\(/\n ],\n number:\n /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n operator:\n /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n // If there is no $ sign at the beginning highlight (( and )) as punctuation\n punctuation: /\\(\\(?|\\)\\)?|,|;/\n }\n },\n // [1]: Command Substitution\n {\n pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n greedy: true,\n inside: {\n variable: /^\\$\\(|^`|\\)$|`$/\n }\n },\n // [2]: Brace expansion\n {\n pattern: /\\$\\{[^}]+\\}/,\n greedy: true,\n inside: {\n operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n punctuation: /[\\[\\]]/,\n environment: {\n pattern: RegExp('(\\\\{)' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n }\n },\n /\\$(?:\\w+|[#?*!@$])/\n ],\n // Escape sequences from echo and printf's manuals, and escaped quotes.\n entity:\n /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n }\n Prism.languages.bash = {\n shebang: {\n pattern: /^#!\\s*\\/.*/,\n alias: 'important'\n },\n comment: {\n pattern: /(^|[^\"{\\\\$])#.*/,\n lookbehind: true\n },\n 'function-name': [\n // a) function foo {\n // b) foo() {\n // c) function foo() {\n // but not “foo {”\n {\n // a) and c)\n pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n lookbehind: true,\n alias: 'function'\n },\n {\n // b)\n pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n alias: 'function'\n }\n ],\n // Highlight variable names as variables in for and select beginnings.\n 'for-or-select': {\n pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n alias: 'variable',\n lookbehind: true\n },\n // Highlight variable names as variables in the left-hand part\n // of assignments (“=” and “+=”).\n 'assign-left': {\n pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?:\\.\\w+)*(?=\\+?=)/,\n inside: {\n environment: {\n pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n },\n alias: 'variable',\n lookbehind: true\n },\n // Highlight parameter names as variables\n parameter: {\n pattern: /(^|\\s)-{1,2}(?:\\w+:[+-]?)?\\w+(?:\\.\\w+)*(?=[=\\s]|$)/,\n alias: 'variable',\n lookbehind: true\n },\n string: [\n // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n {\n pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n },\n // Here-document with quotes around the tag\n // → No expansion (so no “inside”).\n {\n pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n lookbehind: true,\n greedy: true,\n inside: {\n bash: commandAfterHeredoc\n }\n },\n // “Normal” string\n {\n // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n pattern: /(^|[^$\\\\])'[^']*'/,\n lookbehind: true,\n greedy: true\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n entity: insideString.entity\n }\n }\n ],\n environment: {\n pattern: RegExp('\\\\$?' + envVars),\n alias: 'constant'\n },\n variable: insideString.variable,\n function: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n keyword: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n builtin: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n lookbehind: true,\n // Alias added to make those easier to distinguish from strings.\n alias: 'class-name'\n },\n boolean: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n 'file-descriptor': {\n pattern: /\\B&\\d\\b/,\n alias: 'important'\n },\n operator: {\n // Lots of redirections here, but not just that.\n pattern:\n /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n inside: {\n 'file-descriptor': {\n pattern: /^\\d/,\n alias: 'important'\n }\n }\n },\n punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n number: {\n pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n lookbehind: true\n }\n }\n commandAfterHeredoc.inside = Prism.languages.bash\n\n /* Patterns in command substitution. */\n var toBeCopied = [\n 'comment',\n 'function-name',\n 'for-or-select',\n 'assign-left',\n 'parameter',\n 'string',\n 'environment',\n 'function',\n 'keyword',\n 'builtin',\n 'boolean',\n 'file-descriptor',\n 'operator',\n 'punctuation',\n 'number'\n ]\n var inside = insideString.variable[1].inside\n for (var i = 0; i < toBeCopied.length; i++) {\n inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n }\n Prism.languages.sh = Prism.languages.bash\n Prism.languages.shell = Prism.languages.bash\n })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nimport refractorMarkup from './markup.js'\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\n\n/** @param {Refractor} Prism */\nexport default function markdown(Prism) {\n Prism.register(refractorMarkup)\n ;(function (Prism) {\n // Allow only one line break\n var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source\n\n /**\n * This function is intended for the creation of the bold or italic pattern.\n *\n * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n *\n * _Note:_ Keep in mind that this adds a capturing group.\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function createInline(pattern) {\n pattern = pattern.replace(/<inner>/g, function () {\n return inner\n })\n return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')')\n }\n var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/\n .source\n var tableRow =\n /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(\n /__/g,\n function () {\n return tableCell\n }\n )\n var tableLine =\n /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/\n .source\n Prism.languages.markdown = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore('markdown', 'prolog', {\n 'front-matter-block': {\n pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^---|---$/,\n 'front-matter': {\n pattern: /\\S+(?:\\s+\\S+)*/,\n alias: ['yaml', 'language-yaml'],\n inside: Prism.languages.yaml\n }\n }\n },\n blockquote: {\n // > ...\n pattern: /^>(?:[\\t ]*>)*/m,\n alias: 'punctuation'\n },\n table: {\n pattern: RegExp(\n '^' + tableRow + tableLine + '(?:' + tableRow + ')*',\n 'm'\n ),\n inside: {\n 'table-data-rows': {\n pattern: RegExp(\n '^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'\n ),\n lookbehind: true,\n inside: {\n 'table-data': {\n pattern: RegExp(tableCell),\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n },\n 'table-line': {\n pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n lookbehind: true,\n inside: {\n punctuation: /\\||:?-{3,}:?/\n }\n },\n 'table-header-row': {\n pattern: RegExp('^' + tableRow + '$'),\n inside: {\n 'table-header': {\n pattern: RegExp(tableCell),\n alias: 'important',\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n }\n }\n },\n code: [\n {\n // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n pattern:\n /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n lookbehind: true,\n alias: 'keyword'\n },\n {\n // ```optional language\n // code block\n // ```\n pattern: /^```[\\s\\S]*?^```$/m,\n greedy: true,\n inside: {\n 'code-block': {\n pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n lookbehind: true\n },\n 'code-language': {\n pattern: /^(```).+/,\n lookbehind: true\n },\n punctuation: /```/\n }\n }\n ],\n title: [\n {\n // title 1\n // =======\n\n // title 2\n // -------\n pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n alias: 'important',\n inside: {\n punctuation: /==+$|--+$/\n }\n },\n {\n // # title 1\n // ###### title 6\n pattern: /(^\\s*)#.+/m,\n lookbehind: true,\n alias: 'important',\n inside: {\n punctuation: /^#+|#+$/\n }\n }\n ],\n hr: {\n // ***\n // ---\n // * * *\n // -----------\n pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n list: {\n // * item\n // + item\n // - item\n // 1. item\n pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'url-reference': {\n // [id]: http://example.com \"Optional title\"\n // [id]: http://example.com 'Optional title'\n // [id]: http://example.com (Optional title)\n // [id]: <http://example.com> \"Optional title\"\n pattern:\n /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n inside: {\n variable: {\n pattern: /^(!?\\[)[^\\]]+/,\n lookbehind: true\n },\n string:\n /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n punctuation: /^[\\[\\]!:]|[<>]/\n },\n alias: 'url'\n },\n bold: {\n // **strong**\n // __strong__\n\n // allow one nested instance of italic text using the same delimiter\n pattern: createInline(\n /\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^..)[\\s\\S]+(?=..$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /\\*\\*|__/\n }\n },\n italic: {\n // *em*\n // _em_\n\n // allow one nested instance of bold text using the same delimiter\n pattern: createInline(\n /\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^.)[\\s\\S]+(?=.$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /[*_]/\n }\n },\n strike: {\n // ~~strike through~~\n // ~strike~\n // eslint-disable-next-line regexp/strict\n pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /~~?/\n }\n },\n 'code-snippet': {\n // `code`\n // ``code``\n pattern:\n /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n lookbehind: true,\n greedy: true,\n alias: ['code', 'keyword']\n },\n url: {\n // [example](http://example.com \"Optional title\")\n // [example][id]\n // [example] [id]\n pattern: createInline(\n /!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n operator: /^!/,\n content: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true,\n inside: {} // see below\n },\n variable: {\n pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\]\\()[^\\s)]+/,\n lookbehind: true\n },\n string: {\n pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n lookbehind: true\n }\n }\n }\n })\n ;['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n ;['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(\n function (inside) {\n if (token !== inside) {\n Prism.languages.markdown[token].inside.content.inside[inside] =\n Prism.languages.markdown[inside]\n }\n }\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'markdown' && env.language !== 'md') {\n return\n }\n function walkTokens(tokens) {\n if (!tokens || typeof tokens === 'string') {\n return\n }\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (token.type !== 'code') {\n walkTokens(token.content)\n continue\n }\n\n /*\n * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n * is optional. But the grammar is defined so that there is only one case we have to handle:\n *\n * token.content = [\n * <span class=\"punctuation\">```</span>,\n * <span class=\"code-language\">xxxx</span>,\n * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n * <span class=\"code-block\">...</span>,\n * '\\n', // exactly one new lines again\n * <span class=\"punctuation\">```</span>\n * ];\n */\n\n var codeLang = token.content[1]\n var codeBlock = token.content[3]\n if (\n codeLang &&\n codeBlock &&\n codeLang.type === 'code-language' &&\n codeBlock.type === 'code-block' &&\n typeof codeLang.content === 'string'\n ) {\n // this might be a language that Prism does not support\n\n // do some replacements to support C++, C#, and F#\n var lang = codeLang.content\n .replace(/\\b#/g, 'sharp')\n .replace(/\\b\\+\\+/g, 'pp')\n // only use the first word\n lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n var alias = 'language-' + lang\n\n // add alias\n if (!codeBlock.alias) {\n codeBlock.alias = [alias]\n } else if (typeof codeBlock.alias === 'string') {\n codeBlock.alias = [codeBlock.alias, alias]\n } else {\n codeBlock.alias.push(alias)\n }\n }\n }\n }\n walkTokens(env.tokens)\n })\n Prism.hooks.add('wrap', function (env) {\n if (env.type !== 'code-block') {\n return\n }\n var codeLang = ''\n for (var i = 0, l = env.classes.length; i < l; i++) {\n var cls = env.classes[i]\n var match = /language-(.+)/.exec(cls)\n if (match) {\n codeLang = match[1]\n break\n }\n }\n var grammar = Prism.languages[codeLang]\n if (!grammar) {\n if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n var id =\n 'md-' +\n new Date().valueOf() +\n '-' +\n Math.floor(Math.random() * 1e16)\n env.attributes['id'] = id\n Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n var ele = document.getElementById(id)\n if (ele) {\n ele.innerHTML = Prism.highlight(\n ele.textContent,\n Prism.languages[codeLang],\n codeLang\n )\n }\n })\n }\n } else {\n env.content = Prism.highlight(env.content.value, grammar, codeLang)\n }\n })\n var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi')\n\n /**\n * A list of known entity names.\n *\n * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n *\n * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n */\n var KNOWN_ENTITY_NAMES = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"'\n }\n\n // IE 11 doesn't support `String.fromCodePoint`\n var fromCodePoint = String.fromCodePoint || String.fromCharCode\n\n /**\n * Returns the text content of a given HTML source code string.\n *\n * @param {string} html\n * @returns {string}\n */\n function textContent(html) {\n // remove all tags\n var text = html.replace(tagPattern, '')\n\n // decode known entities\n text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n code = code.toLowerCase()\n if (code[0] === '#') {\n var value\n if (code[1] === 'x') {\n value = parseInt(code.slice(2), 16)\n } else {\n value = Number(code.slice(1))\n }\n return fromCodePoint(value)\n } else {\n var known = KNOWN_ENTITY_NAMES[code]\n if (known) {\n return known\n }\n\n // unable to decode\n return m\n }\n })\n return text\n }\n Prism.languages.md = Prism.languages.markdown\n })(Prism)\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\nsql.displayName = 'sql'\nsql.aliases = []\n\n/** @param {Refractor} Prism */\nexport default function sql(Prism) {\n Prism.languages.sql = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true\n },\n variable: [\n {\n pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n greedy: true\n },\n /@[\\w.$]+/\n ],\n string: {\n pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n greedy: true,\n lookbehind: true\n },\n identifier: {\n pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/,\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /^`|`$/\n }\n },\n function:\n /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,\n // Should we highlight user defined functions too?\n keyword:\n /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator:\n /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n punctuation: /[;[\\]()`,.]/\n }\n}\n","// @ts-nocheck\n/**\n * @import {Refractor} from '../lib/core.js'\n */\npython.displayName = 'python'\npython.aliases = ['py']\n\n/** @param {Refractor} Prism */\nexport default function python(Prism) {\n Prism.languages.python = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n 'string-interpolation': {\n pattern:\n /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n greedy: true,\n inside: {\n interpolation: {\n // \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n pattern:\n /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n lookbehind: true,\n inside: {\n 'format-spec': {\n pattern: /(:)[^:(){}]+(?=\\}$)/,\n lookbehind: true\n },\n 'conversion-option': {\n pattern: /![sra](?=[:}]$)/,\n alias: 'punctuation'\n },\n rest: null\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'triple-quoted-string': {\n pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n greedy: true\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n lookbehind: true\n },\n 'class-name': {\n pattern: /(\\bclass\\s+)\\w+/i,\n lookbehind: true\n },\n decorator: {\n pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n lookbehind: true,\n alias: ['annotation', 'punctuation'],\n inside: {\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n builtin:\n /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n boolean: /\\b(?:False|None|True)\\b/,\n number:\n /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.python['string-interpolation'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.python\n Prism.languages.py = Prism.languages.python\n}\n"],"names":["ownKeys","r","t","o","_objectSpread","_defineProperty","powerSetPermutations","arr","arrLength","classNameCombinations","getClassNameCombinations","classNames","key","createStyleObject","elementStyle","stylesheet","nonTokenClassNames","className","classNamesCombinations","styleObject","createClassNameString","createChildren","useInlineStyles","childrenCount","children","child","i","createElement","_ref","node","_ref$style","style","properties","type","TagName","value","childrenCreator","props","allStylesheetSelectors","classes","selector","startingClassName","React","_extends","checkForListedLanguage","astGenerator","language","langs","_excluded","newLineRegex","getNewLines","str","getAllLineNumbers","lines","startingLineNumber","_","number","AllLineNumbers","_ref2","codeString","codeStyle","_ref2$containerStyle","containerStyle","_ref2$numberStyle","numberStyle","getEmWidthOfNumber","num","getInlineLineNumber","lineNumber","inlineLineNumberStyle","assembleLineNumberStyles","lineNumberStyle","largestLineNumber","defaultLineNumberStyle","customLineNumberStyle","assembledStyle","createLineElement","_ref3","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","showLineNumbers","wrapLongLines","_ref3$wrapLines","wrapLines","_toConsumableArray","flattenCodeTree","tree","newTree","_node$properties","processLines","codeTree","_ref4","lastLineBreakIndex","index","createWrappedLine","createUnwrappedLine","createLine","_loop","newLines","splitValue","text","newChild","_children","_line","stringChild","lastLineInPreviousSpan","newElem","_children2","_line2","_children3","_line3","line","defaultRenderer","_ref5","rows","isHighlightJs","getCodeTree","_ref6","code","defaultCodeValue","hasLanguage","highlight$1","defaultAstGenerator","defaultStyle","_ref7","_code$match$length","_code$match","_ref7$style","_ref7$customStyle","customStyle","_ref7$codeTagProps","codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","lineNumberContainerStyle","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","renderer","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","rest","_objectWithoutProperties","allLineNumbers","defaultPreStyle","generatorClassName","preProps","lineBreakCount","uniqueId","plainTextGrammar","obj","deepClone","visited","clone","id","v","redef","lang","inside","before","insert","root","grammar","ret","token","newToken","old","DFS","callback","objId","property","propertyType","env","Token","tokenList","LinkedList","addAfter","matchGrammar","toArray","name","hooks","callbacks","content","alias","matchedStr","matchPattern","pattern","pos","lookbehind","match","lookbehindLength","startNode","startPos","rematch","patterns","j","patternObj","greedy","flags","currentNode","removeCount","from","to","p","k","matchStr","after","reach","removeFrom","removeRange","wrapped","nestedRematch","head","tail","list","next","newNode","count","array","Prism","Refractor","refractor","highlight","register","registered","listLanguages","encode","stringify","syntax","languages","map","aliasOrLanguage","result","h","attributes","tokens","record","parseEntities","SyntaxHighlighter","aliases","oneDark","clike","javascript","refractorClike","typescript","refractorJavascript","typeInside","markup","tagName","includedCdataInside","def","attrName","jsx","refractorMarkup","space","braces","spread","re","source","stringifyToken","walkTokens","openedTags","notTagNorBrace","plainText","tsx","refractorJsx","refractorTypescript","tag","json","bash","envVars","commandAfterHeredoc","insideString","toBeCopied","markdown","inner","createInline","tableCell","tableRow","tableLine","l","codeLang","codeBlock","cls","ele","sql","python"],"mappings":"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AG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CA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,uCAA0C,CACxC,WAAc,qBACd,MAAS,UACT,WAAc,MAClB,EACE,uCAA0C,CACxC,QAAW,cACX,aAAgB,QAChB,WAAc,QAClB,EACE,QAAW,CACT,MAAS,qBACT,UAAa,QACjB,EACE,OAAU,CACR,MAAS,oBACb,EACE,MAAS,CACP,MAAS,oBACb,EACE,QAAW,CACT,MAAS,oBACb,EACE,YAAe,CACb,MAAS,oBACb,EACE,OAAU,CACR,MAAS,qBACT,OAAU,MACd,EACE,YAAa,CACX,MAAS,mBACb,EACE,aAAc,CACZ,MAAS,mBACb,EACE,QAAW,CACT,MAAS,mBACb,EACE,SAAY,CACV,MAAS,mBACb,EACE,OAAU,CACR,MAAS,mBACb,EACE,OAAU,CACR,MAAS,mBACb,EACE,QAAW,CACT,MAAS,oBACb,EACE,SAAY,CACV,MAAS,oBACb,EACE,IAAO,CACL,MAAS,oBACb,EACE,OAAU,CACR,MAAS,oBACb,EACE,QAAW,CACT,MAAS,oBACb,EACE,UAAa,CACX,MAAS,oBACb,EACE,SAAY,CACV,MAAS,mBACb,EACE,OAAU,CACR,MAAS,mBACb,EACE,KAAQ,CACN,MAAS,mBACb,EACE,QAAW,CACT,MAAS,mBACb,EACE,SAAY,CACV,MAAS,mBACb,EACE,MAAS,CACP,MAAS,mBACb,EACE,aAAc,CACZ,MAAS,mBACb,EACE,kCAAmC,CACjC,MAAS,mBACb,EACE,SAAY,CACV,MAAS,oBACb,EACE,SAAY,CACV,MAAS,oBACb,EACE,SAAY,CACV,MAAS,oBACb,EACE,IAAO,CACL,MAAS,oBACb,EACE,8CAA+C,CAC7C,MAAS,oBACb,EACE,sDAAuD,CACrD,MAAS,oBACb,EACE,gCAAiC,CAC/B,MAAS,oBACb,EACE,gCAAiC,CAC/B,MAAS,oBACb,EACE,gCAAiC,CAC/B,MAAS,oBACb,EACE,6CAA8C,CAC5C,MAAS,oBACb,EACE,+CAAgD,CAC9C,MAAS,mBACb,EACE,iCAAkC,CAChC,MAAS,oBACb,EACE,0CAA2C,CACzC,MAAS,oBACb,EACE,uCAAwC,CACtC,MAAS,oBACb,EACE,oHAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}
@@ -0,0 +1,2 @@
1
+ import{r as i}from"./react-vendor-tkvCrao7.js";import{d as m}from"./react-router-JVUrkhdd.js";function P(r,t,s){return r&&t.includes(r)?r:s}function l(r,t,s="tab"){const[e,a]=m(),n=e.get(s),u=i.useMemo(()=>P(n,r,t),[n,r,t]),b=i.useCallback(o=>{const c=new URLSearchParams(e);o===t?c.delete(s):c.set(s,o),a(c,{replace:!1})},[e,a,t,s]);return{tab:u,setTab:b}}export{l as u};
2
+ //# sourceMappingURL=useTabsParam-k8qte_0C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTabsParam-k8qte_0C.js","sources":["../../src/hooks/useTabsParam.ts"],"sourcesContent":["/**\n * useTabsParam — generic ?tab=<key> URL-param state hook.\n *\n * Three v4 IA pages (Context / Violations / Settings) all reimplemented the\n * same scaffold: a `KNOWN[]` array, a `parseTab` clamp, and a `handleChange`\n * that wrote/deleted the URL param. This hook consolidates that logic so the\n * pages keep their own `<Tabs>` JSX but share the URL-state plumbing.\n *\n * Design notes:\n * - We DO NOT wrap Arco `<Tabs>` — that's over-abstraction. Each page still\n * owns its tab JSX (tab titles, lazy-loading, icons differ per page).\n * - When `tab === defaultKey`, the URL param is DELETED (clean URLs) — this\n * matches existing behavior in all 3 call sites pre-refactor.\n * - The `paramName` arg defaults to `'tab'`. SettingsPage passes `'section'`.\n *\n * Pure logic (`clampTab`) is exported separately so unit tests can cover it\n * without mounting React / react-router.\n */\n\nimport { useCallback, useMemo } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\n/**\n * Clamp an arbitrary string (or null) to the known tab set.\n * Returns `defaultKey` if `raw` is null, empty, or not in `known`.\n */\nexport function clampTab<K extends string>(\n raw: string | null,\n known: readonly K[],\n defaultKey: K,\n): K {\n if (!raw) return defaultKey\n if ((known as readonly string[]).includes(raw)) return raw as K\n return defaultKey\n}\n\nexport interface UseTabsParamResult<K extends string> {\n tab: K\n setTab: (key: K) => void\n}\n\nexport function useTabsParam<K extends string>(\n known: readonly K[],\n defaultKey: K,\n paramName: string = 'tab',\n): UseTabsParamResult<K> {\n const [searchParams, setSearchParams] = useSearchParams()\n const raw = searchParams.get(paramName)\n const tab = useMemo(() => clampTab(raw, known, defaultKey), [raw, known, defaultKey])\n\n const setTab = useCallback(\n (key: K) => {\n const next = new URLSearchParams(searchParams)\n if (key === defaultKey) next.delete(paramName)\n else next.set(paramName, key)\n setSearchParams(next, { replace: false })\n },\n // searchParams identity is stable per render from react-router; setSearchParams is also stable.\n [searchParams, setSearchParams, defaultKey, paramName],\n )\n\n return { tab, setTab }\n}\n"],"names":["clampTab","raw","known","defaultKey","useTabsParam","paramName","searchParams","setSearchParams","useSearchParams","tab","useMemo","setTab","useCallback","key","next"],"mappings":"8FA0BO,SAASA,EACdC,EACAC,EACAC,EACG,CACH,OAAKF,GACAC,EAA4B,SAASD,CAAG,EAAUA,EADtCE,CAGnB,CAOO,SAASC,EACdF,EACAC,EACAE,EAAoB,MACG,CACvB,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAA,EAClCP,EAAMK,EAAa,IAAID,CAAS,EAChCI,EAAMC,EAAAA,QAAQ,IAAMV,EAASC,EAAKC,EAAOC,CAAU,EAAG,CAACF,EAAKC,EAAOC,CAAU,CAAC,EAE9EQ,EAASC,EAAAA,YACZC,GAAW,CACV,MAAMC,EAAO,IAAI,gBAAgBR,CAAY,EACzCO,IAAQV,EAAYW,EAAK,OAAOT,CAAS,EACxCS,EAAK,IAAIT,EAAWQ,CAAG,EAC5BN,EAAgBO,EAAM,CAAE,QAAS,EAAA,CAAO,CAC1C,EAEA,CAACR,EAAcC,EAAiBJ,EAAYE,CAAS,CAAA,EAGvD,MAAO,CAAE,IAAAI,EAAK,OAAAE,CAAA,CAChB"}