@spotlightjs/spotlight 4.5.1 → 4.7.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 (859) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +18 -0
  2. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/dist/_virtual/_sentry-release-injection-file.js +11 -0
  4. package/dist/_virtual/_sentry-release-injection-file.js.map +1 -0
  5. package/dist/_virtual/cache.js +13 -0
  6. package/dist/_virtual/cache.js.map +1 -0
  7. package/dist/_virtual/index.js +13 -0
  8. package/dist/_virtual/index.js.map +1 -0
  9. package/dist/_virtual/re.js +13 -0
  10. package/dist/_virtual/re.js.map +1 -0
  11. package/dist/_virtual/uri.all.js +13 -0
  12. package/dist/_virtual/uri.all.js.map +1 -0
  13. package/dist/bootstrap.d.ts +0 -0
  14. package/dist/electron-index.d.ts +1 -0
  15. package/dist/index.d.ts +13 -0
  16. package/dist/instrument.js +83 -0
  17. package/dist/instrument.js.map +1 -0
  18. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js +241 -0
  19. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +1 -0
  20. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +64 -0
  21. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +1 -0
  22. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +196 -0
  23. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
  24. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +604 -0
  25. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -0
  26. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js +76 -0
  27. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map +1 -0
  28. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +391 -0
  29. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
  30. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js +41 -0
  31. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map +1 -0
  32. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1045 -0
  33. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
  34. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js +365 -0
  35. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js.map +1 -0
  36. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js +30 -0
  37. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js.map +1 -0
  38. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js +74 -0
  39. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js.map +1 -0
  40. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js +37 -0
  41. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js.map +1 -0
  42. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js +119 -0
  43. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js.map +1 -0
  44. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js +288 -0
  45. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js.map +1 -0
  46. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js +228 -0
  47. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js.map +1 -0
  48. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js +101 -0
  49. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js.map +1 -0
  50. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js +19 -0
  51. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js.map +1 -0
  52. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js +25 -0
  53. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js.map +1 -0
  54. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js +192 -0
  55. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js.map +1 -0
  56. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js +57 -0
  57. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js.map +1 -0
  58. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js +48 -0
  59. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js.map +1 -0
  60. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js +160 -0
  61. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js.map +1 -0
  62. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js +90 -0
  63. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js.map +1 -0
  64. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js +95 -0
  65. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js.map +1 -0
  66. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js +90 -0
  67. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js.map +1 -0
  68. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js +52 -0
  69. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js.map +1 -0
  70. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js +83 -0
  71. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js.map +1 -0
  72. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js +26 -0
  73. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js.map +1 -0
  74. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js +63 -0
  75. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js.map +1 -0
  76. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js +88 -0
  77. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js.map +1 -0
  78. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js +230 -0
  79. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js.map +1 -0
  80. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js +171 -0
  81. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js.map +1 -0
  82. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js +72 -0
  83. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js.map +1 -0
  84. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js +157 -0
  85. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js.map +1 -0
  86. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js +110 -0
  87. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js.map +1 -0
  88. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js +67 -0
  89. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js.map +1 -0
  90. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js +147 -0
  91. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js.map +1 -0
  92. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js +90 -0
  93. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js.map +1 -0
  94. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js +95 -0
  95. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js.map +1 -0
  96. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js +81 -0
  97. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js.map +1 -0
  98. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js +85 -0
  99. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js.map +1 -0
  100. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js +322 -0
  101. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js.map +1 -0
  102. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js +84 -0
  103. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js.map +1 -0
  104. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js +134 -0
  105. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js.map +1 -0
  106. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js +263 -0
  107. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js.map +1 -0
  108. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js +95 -0
  109. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js.map +1 -0
  110. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js +464 -0
  111. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js.map +1 -0
  112. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js +108 -0
  113. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js.map +1 -0
  114. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/data.json.js +49 -0
  115. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/data.json.js.map +1 -0
  116. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/json-schema-draft-07.json.js +265 -0
  117. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/json-schema-draft-07.json.js.map +1 -0
  118. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +41 -0
  119. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +1 -0
  120. package/dist/node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js +62 -0
  121. package/dist/node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js.map +1 -0
  122. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js +32 -0
  123. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js.map +1 -0
  124. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js +95 -0
  125. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js.map +1 -0
  126. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js +43 -0
  127. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js.map +1 -0
  128. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js +77 -0
  129. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js.map +1 -0
  130. package/dist/node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js +92 -0
  131. package/dist/node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js.map +1 -0
  132. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js +132 -0
  133. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js.map +1 -0
  134. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js +397 -0
  135. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js.map +1 -0
  136. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js +286 -0
  137. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js.map +1 -0
  138. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.js +20 -0
  139. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.js.map +1 -0
  140. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js +62 -0
  141. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js.map +1 -0
  142. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.js +55 -0
  143. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.js.map +1 -0
  144. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.js +21 -0
  145. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.js.map +1 -0
  146. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.js +17 -0
  147. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.js.map +1 -0
  148. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js +17 -0
  149. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js.map +1 -0
  150. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.js +51 -0
  151. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.js.map +1 -0
  152. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js +17 -0
  153. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js.map +1 -0
  154. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js +17 -0
  155. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js.map +1 -0
  156. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js +17 -0
  157. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js.map +1 -0
  158. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.js +31 -0
  159. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.js.map +1 -0
  160. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js +17 -0
  161. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js.map +1 -0
  162. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js +17 -0
  163. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js.map +1 -0
  164. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.js +17 -0
  165. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.js.map +1 -0
  166. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.js +17 -0
  167. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.js.map +1 -0
  168. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js +17 -0
  169. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js.map +1 -0
  170. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js +29 -0
  171. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js.map +1 -0
  172. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.js +17 -0
  173. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.js.map +1 -0
  174. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.js +20 -0
  175. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.js.map +1 -0
  176. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.js +17 -0
  177. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.js.map +1 -0
  178. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.js +17 -0
  179. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.js.map +1 -0
  180. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js +24 -0
  181. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js.map +1 -0
  182. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.js +17 -0
  183. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.js.map +1 -0
  184. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js +20 -0
  185. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js.map +1 -0
  186. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.js +143 -0
  187. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.js.map +1 -0
  188. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js +38 -0
  189. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js.map +1 -0
  190. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js +16 -0
  191. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js.map +1 -0
  192. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js +31 -0
  193. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js.map +1 -0
  194. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js +44 -0
  195. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js.map +1 -0
  196. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js +25 -0
  197. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js.map +1 -0
  198. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js +100 -0
  199. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js.map +1 -0
  200. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.js +17 -0
  201. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.js.map +1 -0
  202. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.js +21 -0
  203. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.js.map +1 -0
  204. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.js +17 -0
  205. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.js.map +1 -0
  206. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.js +37 -0
  207. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.js.map +1 -0
  208. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.js +37 -0
  209. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.js.map +1 -0
  210. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js +66 -0
  211. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js.map +1 -0
  212. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.js +83 -0
  213. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.js.map +1 -0
  214. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.js +58 -0
  215. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.js.map +1 -0
  216. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.js +172 -0
  217. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.js.map +1 -0
  218. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.js +17 -0
  219. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.js.map +1 -0
  220. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js +23 -0
  221. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js.map +1 -0
  222. package/dist/node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js +1035 -0
  223. package/dist/node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js.map +1 -0
  224. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js +46 -0
  225. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -0
  226. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js +32 -0
  227. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -0
  228. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +27 -0
  229. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -0
  230. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +20 -0
  231. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +1 -0
  232. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js +70 -0
  233. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -0
  234. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +27 -0
  235. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -0
  236. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +37 -0
  237. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -0
  238. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +57 -0
  239. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -0
  240. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +17 -0
  241. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -0
  242. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +16 -0
  243. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -0
  244. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +16 -0
  245. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -0
  246. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +70 -0
  247. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -0
  248. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +19 -0
  249. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -0
  250. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +17 -0
  251. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -0
  252. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +18 -0
  253. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -0
  254. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +53 -0
  255. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -0
  256. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +30 -0
  257. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -0
  258. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +38 -0
  259. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -0
  260. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +24 -0
  261. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -0
  262. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +21 -0
  263. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -0
  264. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +20 -0
  265. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -0
  266. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +44 -0
  267. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -0
  268. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +60 -0
  269. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -0
  270. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +81 -0
  271. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -0
  272. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +31 -0
  273. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -0
  274. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +31 -0
  275. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -0
  276. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +16 -0
  277. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -0
  278. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +16 -0
  279. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -0
  280. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +67 -0
  281. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -0
  282. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +32 -0
  283. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -0
  284. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +330 -0
  285. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  286. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +39 -0
  287. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -0
  288. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +18 -0
  289. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -0
  290. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +80 -0
  291. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -0
  292. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +16 -0
  293. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -0
  294. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js +117 -0
  295. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -0
  296. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +75 -0
  297. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -0
  298. package/dist/run.d.ts +0 -1
  299. package/dist/run.js +29 -51775
  300. package/dist/run.js.map +1 -0
  301. package/dist/sentry-config.d.ts +7 -0
  302. package/dist/sentry-config.js +20 -0
  303. package/dist/sentry-config.js.map +1 -0
  304. package/dist/server/cli/help.d.ts +1 -0
  305. package/dist/server/cli/help.js +55 -0
  306. package/dist/server/cli/help.js.map +1 -0
  307. package/dist/server/cli/mcp.d.ts +2 -0
  308. package/dist/server/cli/mcp.js +117 -0
  309. package/dist/server/cli/mcp.js.map +1 -0
  310. package/dist/server/cli/run.d.ts +2 -0
  311. package/dist/server/cli/run.js +296 -0
  312. package/dist/server/cli/run.js.map +1 -0
  313. package/dist/server/cli/server.d.ts +2 -0
  314. package/dist/server/cli/server.js +23 -0
  315. package/dist/server/cli/server.js.map +1 -0
  316. package/dist/server/cli/tail.d.ts +8 -0
  317. package/dist/server/cli/tail.js +113 -0
  318. package/dist/server/cli/tail.js.map +1 -0
  319. package/dist/server/cli.d.ts +17 -0
  320. package/dist/server/cli.js +146 -0
  321. package/dist/server/cli.js.map +1 -0
  322. package/dist/server/constants.d.ts +3 -0
  323. package/dist/server/constants.js +16 -0
  324. package/dist/server/constants.js.map +1 -0
  325. package/dist/server/formatters/human/errors.d.ts +6 -0
  326. package/dist/server/formatters/human/errors.js +37 -0
  327. package/dist/server/formatters/human/errors.js.map +1 -0
  328. package/dist/server/formatters/human/index.d.ts +2 -0
  329. package/dist/server/formatters/human/index.js +22 -0
  330. package/dist/server/formatters/human/index.js.map +1 -0
  331. package/dist/server/formatters/human/logs.d.ts +6 -0
  332. package/dist/server/formatters/human/logs.js +32 -0
  333. package/dist/server/formatters/human/logs.js.map +1 -0
  334. package/dist/server/formatters/human/traces.d.ts +6 -0
  335. package/dist/server/formatters/human/traces.js +38 -0
  336. package/dist/server/formatters/human/traces.js.map +1 -0
  337. package/dist/server/formatters/human/utils.d.ts +43 -0
  338. package/dist/server/formatters/human/utils.js +122 -0
  339. package/dist/server/formatters/human/utils.js.map +1 -0
  340. package/dist/server/formatters/index.d.ts +11 -0
  341. package/dist/server/formatters/index.js +28 -0
  342. package/dist/server/formatters/index.js.map +1 -0
  343. package/dist/server/formatters/json/errors.d.ts +3 -0
  344. package/dist/server/formatters/json/errors.js +17 -0
  345. package/dist/server/formatters/json/errors.js.map +1 -0
  346. package/dist/server/formatters/json/index.d.ts +2 -0
  347. package/dist/server/formatters/json/index.js +22 -0
  348. package/dist/server/formatters/json/index.js.map +1 -0
  349. package/dist/server/formatters/json/logs.d.ts +3 -0
  350. package/dist/server/formatters/json/logs.js +20 -0
  351. package/dist/server/formatters/json/logs.js.map +1 -0
  352. package/dist/server/formatters/json/traces.d.ts +3 -0
  353. package/dist/server/formatters/json/traces.js +17 -0
  354. package/dist/server/formatters/json/traces.js.map +1 -0
  355. package/dist/server/formatters/logfmt/errors.d.ts +3 -0
  356. package/dist/server/formatters/logfmt/errors.js +18 -0
  357. package/dist/server/formatters/logfmt/errors.js.map +1 -0
  358. package/dist/server/formatters/logfmt/index.d.ts +2 -0
  359. package/dist/server/formatters/logfmt/index.js +22 -0
  360. package/dist/server/formatters/logfmt/index.js.map +1 -0
  361. package/dist/server/formatters/logfmt/logs.d.ts +3 -0
  362. package/dist/server/formatters/logfmt/logs.js +36 -0
  363. package/dist/server/formatters/logfmt/logs.js.map +1 -0
  364. package/dist/server/formatters/logfmt/traces.d.ts +3 -0
  365. package/dist/server/formatters/logfmt/traces.js +18 -0
  366. package/dist/server/formatters/logfmt/traces.js.map +1 -0
  367. package/dist/server/formatters/md/errors.d.ts +10 -0
  368. package/dist/server/formatters/md/errors.js +86 -0
  369. package/dist/server/formatters/md/errors.js.map +1 -0
  370. package/dist/server/formatters/md/event.d.ts +11 -0
  371. package/dist/server/formatters/md/event.js +371 -0
  372. package/dist/server/formatters/md/event.js.map +1 -0
  373. package/dist/server/formatters/md/index.d.ts +2 -0
  374. package/dist/server/formatters/md/index.js +22 -0
  375. package/dist/server/formatters/md/index.js.map +1 -0
  376. package/dist/server/formatters/md/logs.d.ts +7 -0
  377. package/dist/server/formatters/md/logs.js +48 -0
  378. package/dist/server/formatters/md/logs.js.map +1 -0
  379. package/dist/server/formatters/md/traces.d.ts +87 -0
  380. package/dist/server/formatters/md/traces.js +309 -0
  381. package/dist/server/formatters/md/traces.js.map +1 -0
  382. package/dist/server/formatters/schema.d.ts +6810 -0
  383. package/dist/server/formatters/shared/data-builders.d.ts +15 -0
  384. package/dist/server/formatters/shared/data-builders.js +129 -0
  385. package/dist/server/formatters/shared/data-builders.js.map +1 -0
  386. package/dist/server/formatters/types.d.ts +33 -0
  387. package/dist/server/formatters/types.js +14 -0
  388. package/dist/server/formatters/types.js.map +1 -0
  389. package/dist/server/formatters/utils.d.ts +25 -0
  390. package/dist/server/formatters/utils.js +55 -0
  391. package/dist/server/formatters/utils.js.map +1 -0
  392. package/dist/server/handlers/fileToServe.d.ts +2 -0
  393. package/dist/server/handlers/fileToServe.js +36 -0
  394. package/dist/server/handlers/fileToServe.js.map +1 -0
  395. package/dist/server/handlers/index.d.ts +1 -0
  396. package/dist/server/logger.d.ts +5 -0
  397. package/dist/server/logger.js +40 -0
  398. package/dist/server/logger.js.map +1 -0
  399. package/dist/server/main.d.ts +6 -0
  400. package/dist/server/main.js +193 -0
  401. package/dist/server/main.js.map +1 -0
  402. package/dist/server/mcp/constants.d.ts +3 -0
  403. package/dist/server/mcp/constants.js +88 -0
  404. package/dist/server/mcp/constants.js.map +1 -0
  405. package/dist/server/mcp/mcp.d.ts +31 -0
  406. package/dist/server/mcp/mcp.js +404 -0
  407. package/dist/server/mcp/mcp.js.map +1 -0
  408. package/dist/server/messageBuffer.d.ts +40 -0
  409. package/dist/server/messageBuffer.js +288 -0
  410. package/dist/server/messageBuffer.js.map +1 -0
  411. package/dist/server/parser/helpers.d.ts +10 -0
  412. package/dist/server/parser/helpers.js +41 -0
  413. package/dist/server/parser/helpers.js.map +1 -0
  414. package/dist/server/parser/index.d.ts +3 -0
  415. package/dist/server/parser/processEnvelope.d.ts +17 -0
  416. package/dist/server/parser/processEnvelope.js +95 -0
  417. package/dist/server/parser/processEnvelope.js.map +1 -0
  418. package/dist/server/parser/types.d.ts +198 -0
  419. package/dist/server/routes/clear.d.ts +3 -0
  420. package/dist/server/routes/clear.js +27 -0
  421. package/dist/server/routes/clear.js.map +1 -0
  422. package/dist/server/routes/contextlines/index.d.ts +3 -0
  423. package/dist/server/routes/contextlines/index.js +53 -0
  424. package/dist/server/routes/contextlines/index.js.map +1 -0
  425. package/dist/server/routes/contextlines/utils.d.ts +20 -0
  426. package/dist/server/routes/contextlines/utils.js +92 -0
  427. package/dist/server/routes/contextlines/utils.js.map +1 -0
  428. package/dist/server/routes/health.d.ts +3 -0
  429. package/dist/server/routes/health.js +16 -0
  430. package/dist/server/routes/health.js.map +1 -0
  431. package/dist/server/routes/index.d.ts +3 -0
  432. package/dist/server/routes/index.js +28 -0
  433. package/dist/server/routes/index.js.map +1 -0
  434. package/dist/server/routes/mcp.d.ts +3 -0
  435. package/dist/server/routes/mcp.js +29 -0
  436. package/dist/server/routes/mcp.js.map +1 -0
  437. package/dist/server/routes/open.d.ts +4 -0
  438. package/dist/server/routes/open.js +34 -0
  439. package/dist/server/routes/open.js.map +1 -0
  440. package/dist/server/routes/stream/debugLogging.d.ts +11 -0
  441. package/dist/server/routes/stream/debugLogging.js +68 -0
  442. package/dist/server/routes/stream/debugLogging.js.map +1 -0
  443. package/dist/server/routes/stream/index.d.ts +34 -0
  444. package/dist/server/routes/stream/index.js +110 -0
  445. package/dist/server/routes/stream/index.js.map +1 -0
  446. package/dist/server/routes/stream/streaming.d.ts +3 -0
  447. package/dist/server/routes/stream/streaming.js +35 -0
  448. package/dist/server/routes/stream/streaming.js.map +1 -0
  449. package/dist/server/routes/stream/userAgent.d.ts +11 -0
  450. package/dist/server/routes/stream/userAgent.js +34 -0
  451. package/dist/server/routes/stream/userAgent.js.map +1 -0
  452. package/dist/server/sdk.d.ts +15 -0
  453. package/dist/server/sdk.js +41 -0
  454. package/dist/server/sdk.js.map +1 -0
  455. package/dist/server/types/cli.d.ts +15 -0
  456. package/dist/server/types/env.d.ts +10 -0
  457. package/dist/server/types/index.d.ts +2 -0
  458. package/dist/server/types/utils.d.ts +56 -0
  459. package/dist/server/utils/cors.d.ts +42 -0
  460. package/dist/server/utils/cors.js +195 -0
  461. package/dist/server/utils/cors.js.map +1 -0
  462. package/dist/server/utils/docker-compose-parser.d.ts +20 -0
  463. package/dist/server/utils/docker-compose-parser.js +70 -0
  464. package/dist/server/utils/docker-compose-parser.js.map +1 -0
  465. package/dist/server/utils/docker-compose.d.ts +30 -0
  466. package/dist/server/utils/docker-compose.js +140 -0
  467. package/dist/server/utils/docker-compose.js.map +1 -0
  468. package/dist/server/utils/eventContainer.d.ts +34 -0
  469. package/dist/server/utils/eventContainer.js +80 -0
  470. package/dist/server/utils/eventContainer.js.map +1 -0
  471. package/dist/server/utils/extras.d.ts +5 -0
  472. package/dist/server/utils/extras.js +72 -0
  473. package/dist/server/utils/extras.js.map +1 -0
  474. package/dist/server/utils/getBuffer.d.ts +1 -0
  475. package/dist/server/utils/getBuffer.js +18 -0
  476. package/dist/server/utils/getBuffer.js.map +1 -0
  477. package/dist/server/utils/index.d.ts +4 -0
  478. package/dist/shared/constants.d.ts +3 -0
  479. package/dist/shared/constants.js +18 -0
  480. package/dist/shared/constants.js.map +1 -0
  481. package/dist/ui/assets/andromeeda.js +2 -0
  482. package/dist/ui/assets/andromeeda.js.map +1 -0
  483. package/dist/ui/assets/angular-html.js +2 -0
  484. package/dist/ui/assets/angular-html.js.map +1 -0
  485. package/dist/ui/assets/angular-ts.js +2 -0
  486. package/dist/ui/assets/angular-ts.js.map +1 -0
  487. package/dist/ui/assets/astro.js +2 -0
  488. package/dist/ui/assets/astro.js.map +1 -0
  489. package/dist/ui/assets/aurora-x.js +2 -0
  490. package/dist/ui/assets/aurora-x.js.map +1 -0
  491. package/dist/ui/assets/ayu-dark.js +2 -0
  492. package/dist/ui/assets/ayu-dark.js.map +1 -0
  493. package/dist/ui/assets/blade.js +2 -0
  494. package/dist/ui/assets/blade.js.map +1 -0
  495. package/dist/ui/assets/c.js +2 -0
  496. package/dist/ui/assets/c.js.map +1 -0
  497. package/dist/ui/assets/catppuccin-frappe.js +2 -0
  498. package/dist/ui/assets/catppuccin-frappe.js.map +1 -0
  499. package/dist/ui/assets/catppuccin-latte.js +2 -0
  500. package/dist/ui/assets/catppuccin-latte.js.map +1 -0
  501. package/dist/ui/assets/catppuccin-macchiato.js +2 -0
  502. package/dist/ui/assets/catppuccin-macchiato.js.map +1 -0
  503. package/dist/ui/assets/catppuccin-mocha.js +2 -0
  504. package/dist/ui/assets/catppuccin-mocha.js.map +1 -0
  505. package/dist/ui/assets/coffee.js +2 -0
  506. package/dist/ui/assets/coffee.js.map +1 -0
  507. package/dist/ui/assets/cpp.js +2 -0
  508. package/dist/ui/assets/cpp.js.map +1 -0
  509. package/dist/ui/assets/css.js +2 -0
  510. package/dist/ui/assets/css.js.map +1 -0
  511. package/dist/ui/assets/dark-plus.js +2 -0
  512. package/dist/ui/assets/dark-plus.js.map +1 -0
  513. package/dist/ui/assets/dracula-soft.js +2 -0
  514. package/dist/ui/assets/dracula-soft.js.map +1 -0
  515. package/dist/ui/assets/dracula.js +2 -0
  516. package/dist/ui/assets/dracula.js.map +1 -0
  517. package/dist/ui/assets/everforest-dark.js +2 -0
  518. package/dist/ui/assets/everforest-dark.js.map +1 -0
  519. package/dist/ui/assets/everforest-light.js +2 -0
  520. package/dist/ui/assets/everforest-light.js.map +1 -0
  521. package/dist/ui/assets/firefox.svg +105 -0
  522. package/dist/ui/assets/github-dark-default.js +2 -0
  523. package/dist/ui/assets/github-dark-default.js.map +1 -0
  524. package/dist/ui/assets/github-dark-dimmed.js +2 -0
  525. package/dist/ui/assets/github-dark-dimmed.js.map +1 -0
  526. package/dist/ui/assets/github-dark-high-contrast.js +2 -0
  527. package/dist/ui/assets/github-dark-high-contrast.js.map +1 -0
  528. package/dist/ui/assets/github-dark.js +2 -0
  529. package/dist/ui/assets/github-dark.js.map +1 -0
  530. package/dist/ui/assets/github-light-default.js +2 -0
  531. package/dist/ui/assets/github-light-default.js.map +1 -0
  532. package/dist/ui/assets/github-light-high-contrast.js +2 -0
  533. package/dist/ui/assets/github-light-high-contrast.js.map +1 -0
  534. package/dist/ui/assets/github-light.js +2 -0
  535. package/dist/ui/assets/github-light.js.map +1 -0
  536. package/dist/ui/assets/glsl.js +2 -0
  537. package/dist/ui/assets/glsl.js.map +1 -0
  538. package/dist/ui/assets/graphql.js +2 -0
  539. package/dist/ui/assets/graphql.js.map +1 -0
  540. package/dist/ui/assets/gruvbox-dark-hard.js +2 -0
  541. package/dist/ui/assets/gruvbox-dark-hard.js.map +1 -0
  542. package/dist/ui/assets/gruvbox-dark-medium.js +2 -0
  543. package/dist/ui/assets/gruvbox-dark-medium.js.map +1 -0
  544. package/dist/ui/assets/gruvbox-dark-soft.js +2 -0
  545. package/dist/ui/assets/gruvbox-dark-soft.js.map +1 -0
  546. package/dist/ui/assets/gruvbox-light-hard.js +2 -0
  547. package/dist/ui/assets/gruvbox-light-hard.js.map +1 -0
  548. package/dist/ui/assets/gruvbox-light-medium.js +2 -0
  549. package/dist/ui/assets/gruvbox-light-medium.js.map +1 -0
  550. package/dist/ui/assets/gruvbox-light-soft.js +2 -0
  551. package/dist/ui/assets/gruvbox-light-soft.js.map +1 -0
  552. package/dist/ui/assets/haml.js +2 -0
  553. package/dist/ui/assets/haml.js.map +1 -0
  554. package/dist/ui/assets/handlebars.js +2 -0
  555. package/dist/ui/assets/handlebars.js.map +1 -0
  556. package/dist/ui/assets/houston.js +2 -0
  557. package/dist/ui/assets/houston.js.map +1 -0
  558. package/dist/ui/assets/html-derivative.js +2 -0
  559. package/dist/ui/assets/html-derivative.js.map +1 -0
  560. package/dist/ui/assets/html.js +2 -0
  561. package/dist/ui/assets/html.js.map +1 -0
  562. package/dist/ui/assets/http.js +2 -0
  563. package/dist/ui/assets/http.js.map +1 -0
  564. package/dist/ui/assets/imba.js +2 -0
  565. package/dist/ui/assets/imba.js.map +1 -0
  566. package/dist/ui/assets/index.js +153 -0
  567. package/dist/ui/assets/index.js.map +1 -0
  568. package/dist/ui/assets/index2.js +2 -0
  569. package/dist/ui/assets/index2.js.map +1 -0
  570. package/dist/ui/assets/instrumentation.js +25 -0
  571. package/dist/ui/assets/instrumentation.js.map +1 -0
  572. package/dist/ui/assets/java.js +2 -0
  573. package/dist/ui/assets/java.js.map +1 -0
  574. package/dist/ui/assets/javascript.js +2 -0
  575. package/dist/ui/assets/javascript.js.map +1 -0
  576. package/dist/ui/assets/jinja.js +2 -0
  577. package/dist/ui/assets/jinja.js.map +1 -0
  578. package/dist/ui/assets/jison.js +2 -0
  579. package/dist/ui/assets/jison.js.map +1 -0
  580. package/dist/ui/assets/json.js +2 -0
  581. package/dist/ui/assets/json.js.map +1 -0
  582. package/dist/ui/assets/json5.js +2 -0
  583. package/dist/ui/assets/json5.js.map +1 -0
  584. package/dist/ui/assets/jsonc.js +2 -0
  585. package/dist/ui/assets/jsonc.js.map +1 -0
  586. package/dist/ui/assets/jsonl.js +2 -0
  587. package/dist/ui/assets/jsonl.js.map +1 -0
  588. package/dist/ui/assets/jsx.js +2 -0
  589. package/dist/ui/assets/jsx.js.map +1 -0
  590. package/dist/ui/assets/julia.js +2 -0
  591. package/dist/ui/assets/julia.js.map +1 -0
  592. package/dist/ui/assets/kanagawa-dragon.js +2 -0
  593. package/dist/ui/assets/kanagawa-dragon.js.map +1 -0
  594. package/dist/ui/assets/kanagawa-lotus.js +2 -0
  595. package/dist/ui/assets/kanagawa-lotus.js.map +1 -0
  596. package/dist/ui/assets/kanagawa-wave.js +2 -0
  597. package/dist/ui/assets/kanagawa-wave.js.map +1 -0
  598. package/dist/ui/assets/laserwave.js +2 -0
  599. package/dist/ui/assets/laserwave.js.map +1 -0
  600. package/dist/ui/assets/less.js +2 -0
  601. package/dist/ui/assets/less.js.map +1 -0
  602. package/dist/ui/assets/light-plus.js +2 -0
  603. package/dist/ui/assets/light-plus.js.map +1 -0
  604. package/dist/ui/assets/main.css +1 -0
  605. package/dist/ui/assets/main.js +3 -0
  606. package/dist/ui/assets/main.js.map +1 -0
  607. package/dist/ui/assets/markdown.js +2 -0
  608. package/dist/ui/assets/markdown.js.map +1 -0
  609. package/dist/ui/assets/marko.js +2 -0
  610. package/dist/ui/assets/marko.js.map +1 -0
  611. package/dist/ui/assets/material-theme-darker.js +2 -0
  612. package/dist/ui/assets/material-theme-darker.js.map +1 -0
  613. package/dist/ui/assets/material-theme-lighter.js +2 -0
  614. package/dist/ui/assets/material-theme-lighter.js.map +1 -0
  615. package/dist/ui/assets/material-theme-ocean.js +2 -0
  616. package/dist/ui/assets/material-theme-ocean.js.map +1 -0
  617. package/dist/ui/assets/material-theme-palenight.js +2 -0
  618. package/dist/ui/assets/material-theme-palenight.js.map +1 -0
  619. package/dist/ui/assets/material-theme.js +2 -0
  620. package/dist/ui/assets/material-theme.js.map +1 -0
  621. package/dist/ui/assets/mdc.js +2 -0
  622. package/dist/ui/assets/mdc.js.map +1 -0
  623. package/dist/ui/assets/mdx.js +2 -0
  624. package/dist/ui/assets/mdx.js.map +1 -0
  625. package/dist/ui/assets/min-dark.js +2 -0
  626. package/dist/ui/assets/min-dark.js.map +1 -0
  627. package/dist/ui/assets/min-light.js +2 -0
  628. package/dist/ui/assets/min-light.js.map +1 -0
  629. package/dist/ui/assets/monokai.js +2 -0
  630. package/dist/ui/assets/monokai.js.map +1 -0
  631. package/dist/ui/assets/nestjs.svg +4 -0
  632. package/dist/ui/assets/night-owl.js +2 -0
  633. package/dist/ui/assets/night-owl.js.map +1 -0
  634. package/dist/ui/assets/nord.js +2 -0
  635. package/dist/ui/assets/nord.js.map +1 -0
  636. package/dist/ui/assets/one-dark-pro.js +2 -0
  637. package/dist/ui/assets/one-dark-pro.js.map +1 -0
  638. package/dist/ui/assets/one-light.js +2 -0
  639. package/dist/ui/assets/one-light.js.map +1 -0
  640. package/dist/ui/assets/php.js +2 -0
  641. package/dist/ui/assets/php.js.map +1 -0
  642. package/dist/ui/assets/plastic.js +2 -0
  643. package/dist/ui/assets/plastic.js.map +1 -0
  644. package/dist/ui/assets/poimandres.js +2 -0
  645. package/dist/ui/assets/poimandres.js.map +1 -0
  646. package/dist/ui/assets/postcss.js +2 -0
  647. package/dist/ui/assets/postcss.js.map +1 -0
  648. package/dist/ui/assets/pug.js +2 -0
  649. package/dist/ui/assets/pug.js.map +1 -0
  650. package/dist/ui/assets/python.js +2 -0
  651. package/dist/ui/assets/python.js.map +1 -0
  652. package/dist/ui/assets/r.js +2 -0
  653. package/dist/ui/assets/r.js.map +1 -0
  654. package/dist/ui/assets/raleway-cyrillic-400-normal.woff +0 -0
  655. package/dist/ui/assets/raleway-cyrillic-400-normal.woff2 +0 -0
  656. package/dist/ui/assets/raleway-cyrillic-ext-400-normal.woff +0 -0
  657. package/dist/ui/assets/raleway-cyrillic-ext-400-normal.woff2 +0 -0
  658. package/dist/ui/assets/raleway-latin-400-normal.woff +0 -0
  659. package/dist/ui/assets/raleway-latin-400-normal.woff2 +0 -0
  660. package/dist/ui/assets/raleway-latin-ext-400-normal.woff +0 -0
  661. package/dist/ui/assets/raleway-latin-ext-400-normal.woff2 +0 -0
  662. package/dist/ui/assets/raleway-vietnamese-400-normal.woff +0 -0
  663. package/dist/ui/assets/raleway-vietnamese-400-normal.woff2 +0 -0
  664. package/dist/ui/assets/red.js +2 -0
  665. package/dist/ui/assets/red.js.map +1 -0
  666. package/dist/ui/assets/regexp.js +2 -0
  667. package/dist/ui/assets/regexp.js.map +1 -0
  668. package/dist/ui/assets/rose-pine-dawn.js +2 -0
  669. package/dist/ui/assets/rose-pine-dawn.js.map +1 -0
  670. package/dist/ui/assets/rose-pine-moon.js +2 -0
  671. package/dist/ui/assets/rose-pine-moon.js.map +1 -0
  672. package/dist/ui/assets/rose-pine.js +2 -0
  673. package/dist/ui/assets/rose-pine.js.map +1 -0
  674. package/dist/ui/assets/safari.svg +38 -0
  675. package/dist/ui/assets/sass.js +2 -0
  676. package/dist/ui/assets/sass.js.map +1 -0
  677. package/dist/ui/assets/scss.js +2 -0
  678. package/dist/ui/assets/scss.js.map +1 -0
  679. package/dist/ui/assets/serverTimingMeta.js +51 -0
  680. package/dist/ui/assets/serverTimingMeta.js.map +1 -0
  681. package/dist/ui/assets/shellscript.js +2 -0
  682. package/dist/ui/assets/shellscript.js.map +1 -0
  683. package/dist/ui/assets/slack-dark.js +2 -0
  684. package/dist/ui/assets/slack-dark.js.map +1 -0
  685. package/dist/ui/assets/slack-ochin.js +2 -0
  686. package/dist/ui/assets/slack-ochin.js.map +1 -0
  687. package/dist/ui/assets/snazzy-light.js +2 -0
  688. package/dist/ui/assets/snazzy-light.js.map +1 -0
  689. package/dist/ui/assets/solarized-dark.js +2 -0
  690. package/dist/ui/assets/solarized-dark.js.map +1 -0
  691. package/dist/ui/assets/solarized-light.js +2 -0
  692. package/dist/ui/assets/solarized-light.js.map +1 -0
  693. package/dist/ui/assets/sql.js +2 -0
  694. package/dist/ui/assets/sql.js.map +1 -0
  695. package/dist/ui/assets/stylus.js +2 -0
  696. package/dist/ui/assets/stylus.js.map +1 -0
  697. package/dist/ui/assets/svelte.js +2 -0
  698. package/dist/ui/assets/svelte.js.map +1 -0
  699. package/dist/ui/assets/synthwave-84.js +2 -0
  700. package/dist/ui/assets/synthwave-84.js.map +1 -0
  701. package/dist/ui/assets/tokyo-night.js +2 -0
  702. package/dist/ui/assets/tokyo-night.js.map +1 -0
  703. package/dist/ui/assets/ts-tags.js +2 -0
  704. package/dist/ui/assets/ts-tags.js.map +1 -0
  705. package/dist/ui/assets/tsx.js +2 -0
  706. package/dist/ui/assets/tsx.js.map +1 -0
  707. package/dist/ui/assets/typescript.js +2 -0
  708. package/dist/ui/assets/typescript.js.map +1 -0
  709. package/dist/ui/assets/vesper.js +2 -0
  710. package/dist/ui/assets/vesper.js.map +1 -0
  711. package/dist/ui/assets/vitesse-black.js +2 -0
  712. package/dist/ui/assets/vitesse-black.js.map +1 -0
  713. package/dist/ui/assets/vitesse-dark.js +2 -0
  714. package/dist/ui/assets/vitesse-dark.js.map +1 -0
  715. package/dist/ui/assets/vitesse-light.js +2 -0
  716. package/dist/ui/assets/vitesse-light.js.map +1 -0
  717. package/dist/ui/assets/vue-html.js +2 -0
  718. package/dist/ui/assets/vue-html.js.map +1 -0
  719. package/dist/ui/assets/vue-vine.js +2 -0
  720. package/dist/ui/assets/vue-vine.js.map +1 -0
  721. package/dist/ui/assets/vue.js +2 -0
  722. package/dist/ui/assets/vue.js.map +1 -0
  723. package/dist/ui/assets/wasm.js +2 -0
  724. package/dist/ui/assets/wasm.js.map +1 -0
  725. package/dist/ui/assets/wasm2.js +2 -0
  726. package/dist/ui/assets/wasm2.js.map +1 -0
  727. package/dist/ui/assets/wgsl.js +2 -0
  728. package/dist/ui/assets/wgsl.js.map +1 -0
  729. package/dist/ui/assets/wit.js +2 -0
  730. package/dist/ui/assets/wit.js.map +1 -0
  731. package/dist/ui/assets/xml.js +2 -0
  732. package/dist/ui/assets/xml.js.map +1 -0
  733. package/dist/ui/assets/yaml.js +2 -0
  734. package/dist/ui/assets/yaml.js.map +1 -0
  735. package/dist/{overlay/src → ui}/index.html +34 -0
  736. package/dist/ui/manifest.json +1095 -0
  737. package/package.json +110 -20
  738. package/dist/overlay/assets/andromeeda-BIpZ7gaU.js +0 -1
  739. package/dist/overlay/assets/angular-html-BmadGEgW.js +0 -1
  740. package/dist/overlay/assets/angular-ts-D-QQnnGT.js +0 -1
  741. package/dist/overlay/assets/astro-DHnp0xIo.js +0 -1
  742. package/dist/overlay/assets/aurora-x-BwoVEUWZ.js +0 -1
  743. package/dist/overlay/assets/ayu-dark-CxPZkpb2.js +0 -1
  744. package/dist/overlay/assets/blade-OPzGcV14.js +0 -1
  745. package/dist/overlay/assets/c-eeMepfLm.js +0 -1
  746. package/dist/overlay/assets/catppuccin-frappe-5udUqgsX.js +0 -1
  747. package/dist/overlay/assets/catppuccin-latte-ufkS-HWv.js +0 -1
  748. package/dist/overlay/assets/catppuccin-macchiato-DzL2LPek.js +0 -1
  749. package/dist/overlay/assets/catppuccin-mocha-DDDDwkUT.js +0 -1
  750. package/dist/overlay/assets/coffee-Dl27lzbd.js +0 -1
  751. package/dist/overlay/assets/cpp-Cj177cuW.js +0 -1
  752. package/dist/overlay/assets/css-CECN5uSL.js +0 -1
  753. package/dist/overlay/assets/dark-plus-pUHDTVV0.js +0 -1
  754. package/dist/overlay/assets/dracula-BtZx2Kac.js +0 -1
  755. package/dist/overlay/assets/dracula-soft-BKa-aqBv.js +0 -1
  756. package/dist/overlay/assets/everforest-dark-DMCBqXCK.js +0 -1
  757. package/dist/overlay/assets/everforest-light-BbXl82Em.js +0 -1
  758. package/dist/overlay/assets/github-dark-DenFmJkN.js +0 -1
  759. package/dist/overlay/assets/github-dark-default-BJPUVz4H.js +0 -1
  760. package/dist/overlay/assets/github-dark-dimmed-DUshB20C.js +0 -1
  761. package/dist/overlay/assets/github-dark-high-contrast-D3aGCnF8.js +0 -1
  762. package/dist/overlay/assets/github-light-JYsPkUQd.js +0 -1
  763. package/dist/overlay/assets/github-light-default-D99KPAby.js +0 -1
  764. package/dist/overlay/assets/github-light-high-contrast-BbmZE-Mp.js +0 -1
  765. package/dist/overlay/assets/glsl-CkUcVZNK.js +0 -1
  766. package/dist/overlay/assets/graphql-BLaPX4fU.js +0 -1
  767. package/dist/overlay/assets/gruvbox-dark-hard-C2ND4cMr.js +0 -1
  768. package/dist/overlay/assets/gruvbox-dark-medium-C8k4c8au.js +0 -1
  769. package/dist/overlay/assets/gruvbox-dark-soft-xx9Q6FaG.js +0 -1
  770. package/dist/overlay/assets/gruvbox-light-hard-BpUXv5in.js +0 -1
  771. package/dist/overlay/assets/gruvbox-light-medium-D3XFCoU1.js +0 -1
  772. package/dist/overlay/assets/gruvbox-light-soft-u7hpfz6Z.js +0 -1
  773. package/dist/overlay/assets/haml-6FagfhCM.js +0 -1
  774. package/dist/overlay/assets/handlebars-Bd5Y4M6I.js +0 -1
  775. package/dist/overlay/assets/houston-BDYrDoDW.js +0 -1
  776. package/dist/overlay/assets/html-7XVNRwN7.js +0 -1
  777. package/dist/overlay/assets/html-derivative-BNxZ5Yf6.js +0 -1
  778. package/dist/overlay/assets/http-WC357zBG.js +0 -1
  779. package/dist/overlay/assets/imba-CimUv-Uh.js +0 -1
  780. package/dist/overlay/assets/index-BfFEknL3.js +0 -1
  781. package/dist/overlay/assets/java-DY6VlHhP.js +0 -1
  782. package/dist/overlay/assets/javascript-Dp1Jmi5H.js +0 -1
  783. package/dist/overlay/assets/jinja-WEhOU5ES.js +0 -1
  784. package/dist/overlay/assets/jison-c2JI40PB.js +0 -1
  785. package/dist/overlay/assets/json-DxJze_jm.js +0 -1
  786. package/dist/overlay/assets/json5-BT4Fjg39.js +0 -1
  787. package/dist/overlay/assets/jsonc-CHjZD8gR.js +0 -1
  788. package/dist/overlay/assets/jsonl-BGuvDmy9.js +0 -1
  789. package/dist/overlay/assets/jsx-BtKADgXT.js +0 -1
  790. package/dist/overlay/assets/julia-DcoDQokW.js +0 -1
  791. package/dist/overlay/assets/kanagawa-dragon-CiKur4Hl.js +0 -1
  792. package/dist/overlay/assets/kanagawa-lotus-BKu-smKu.js +0 -1
  793. package/dist/overlay/assets/kanagawa-wave-CQwozSzG.js +0 -1
  794. package/dist/overlay/assets/laserwave-6a00oqik.js +0 -1
  795. package/dist/overlay/assets/less-B1GLI2Di.js +0 -1
  796. package/dist/overlay/assets/light-plus-CZuVqSLX.js +0 -1
  797. package/dist/overlay/assets/main.js +0 -224
  798. package/dist/overlay/assets/markdown-CrScaQ96.js +0 -1
  799. package/dist/overlay/assets/marko-DDi9qpQP.js +0 -1
  800. package/dist/overlay/assets/material-theme-D6KBX41T.js +0 -1
  801. package/dist/overlay/assets/material-theme-darker-CkRroheE.js +0 -1
  802. package/dist/overlay/assets/material-theme-lighter-BUBw43Yz.js +0 -1
  803. package/dist/overlay/assets/material-theme-ocean-ClGX14Ja.js +0 -1
  804. package/dist/overlay/assets/material-theme-palenight-C1RVm8K1.js +0 -1
  805. package/dist/overlay/assets/mdc-FI2x3BiY.js +0 -1
  806. package/dist/overlay/assets/mdx-BOhZZUJ8.js +0 -1
  807. package/dist/overlay/assets/min-dark-C7ak0t6c.js +0 -1
  808. package/dist/overlay/assets/min-light-CKFxVcPp.js +0 -1
  809. package/dist/overlay/assets/monokai-C1KBYcO0.js +0 -1
  810. package/dist/overlay/assets/night-owl-Bm2rzalh.js +0 -1
  811. package/dist/overlay/assets/nord-CC5OiUXg.js +0 -1
  812. package/dist/overlay/assets/one-dark-pro-DTA3VF0_.js +0 -1
  813. package/dist/overlay/assets/one-light-D9sNaUtq.js +0 -1
  814. package/dist/overlay/assets/php-BRU9zhoN.js +0 -1
  815. package/dist/overlay/assets/plastic-CSTz3KZp.js +0 -1
  816. package/dist/overlay/assets/poimandres-C-VADXHD.js +0 -1
  817. package/dist/overlay/assets/postcss-05aHdL-n.js +0 -1
  818. package/dist/overlay/assets/pug-CJWI-qSo.js +0 -1
  819. package/dist/overlay/assets/python-BFNSHbwJ.js +0 -1
  820. package/dist/overlay/assets/r-Bm0uF0U2.js +0 -1
  821. package/dist/overlay/assets/red-7y8PH7HH.js +0 -1
  822. package/dist/overlay/assets/regexp-BazyLpPg.js +0 -1
  823. package/dist/overlay/assets/rose-pine-Cr4kwgAY.js +0 -1
  824. package/dist/overlay/assets/rose-pine-dawn-ClRRUdXX.js +0 -1
  825. package/dist/overlay/assets/rose-pine-moon-ucNn3Gm8.js +0 -1
  826. package/dist/overlay/assets/sass-DxHp5rTx.js +0 -1
  827. package/dist/overlay/assets/scss-B1FaCqwR.js +0 -1
  828. package/dist/overlay/assets/shellscript-InADTalH.js +0 -1
  829. package/dist/overlay/assets/slack-dark-i7wN4OET.js +0 -1
  830. package/dist/overlay/assets/slack-ochin-ndHf0LoP.js +0 -1
  831. package/dist/overlay/assets/snazzy-light-BlSJXAu4.js +0 -1
  832. package/dist/overlay/assets/solarized-dark-UTmkh7lw.js +0 -1
  833. package/dist/overlay/assets/solarized-light-BheCkDPT.js +0 -1
  834. package/dist/overlay/assets/sql-Cn_v3PB0.js +0 -1
  835. package/dist/overlay/assets/stylus-CyKEU1Ej.js +0 -1
  836. package/dist/overlay/assets/svelte-BjDUPxZ1.js +0 -1
  837. package/dist/overlay/assets/synthwave-84-NU3C_KFZ.js +0 -1
  838. package/dist/overlay/assets/tokyo-night-DP4TmcQl.js +0 -1
  839. package/dist/overlay/assets/ts-tags-CZMzuZh-.js +0 -1
  840. package/dist/overlay/assets/tsx-B8rCNbgL.js +0 -1
  841. package/dist/overlay/assets/typescript-mg6ATTE8.js +0 -1
  842. package/dist/overlay/assets/vesper-BckBta1U.js +0 -1
  843. package/dist/overlay/assets/vitesse-black-BoGvW84i.js +0 -1
  844. package/dist/overlay/assets/vitesse-dark-Cym-eLtO.js +0 -1
  845. package/dist/overlay/assets/vitesse-light-CcmG315c.js +0 -1
  846. package/dist/overlay/assets/vue-D-ba2-Rx.js +0 -1
  847. package/dist/overlay/assets/vue-html-Dn2ZoOSz.js +0 -1
  848. package/dist/overlay/assets/vue-vine-Jmfkm6lF.js +0 -1
  849. package/dist/overlay/assets/wasm-BBXxrAl7.js +0 -1
  850. package/dist/overlay/assets/wasm-DQxwEHae.js +0 -1
  851. package/dist/overlay/assets/wgsl-DY4iK1q1.js +0 -1
  852. package/dist/overlay/assets/wit-CQMQOlTg.js +0 -1
  853. package/dist/overlay/assets/xml-C2J0sS9M.js +0 -1
  854. package/dist/overlay/assets/yaml-DaO7k5B1.js +0 -1
  855. package/dist/overlay/manifest.json +0 -1000
  856. package/dist/run.cjs +0 -51848
  857. package/dist/sidecar.cjs +0 -7
  858. package/dist/sidecar.d.ts +0 -1
  859. package/dist/sidecar.js +0 -4
@@ -0,0 +1,2 @@
1
+ var dt=Object.defineProperty;var ut=(h,o,t)=>o in h?dt(h,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):h[o]=t;var l=(h,o,t)=>ut(h,typeof o!="symbol"?o+"":o,t);(function(){try{var h=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new h.Error().stack;o&&(h._sentryDebugIds=h._sentryDebugIds||{},h._sentryDebugIds[o]="9a7ef5e1-04ac-481c-9f61-91e222dc9bcb",h._sentryDebugIdIdentifier="sentry-dbid-9a7ef5e1-04ac-481c-9f61-91e222dc9bcb")}catch{}})();function ft(h,o=1,t=1){const e=(.6+.4*Math.max(0,Math.cos(h)))*o,i=(.5+.2*Math.max(0,Math.cos(h+Math.PI*2/3)))*t;return`hsl(${h*180/Math.PI}deg, ${Math.round(100*e)}%, ${Math.round(100*i)}%)`}let J,tt,et,W,S,x=1,E;function $(h,o,t,e,i){if(!Array.isArray(h))return h;const s=window.devicePixelRatio||1;if(J!==o||tt!==s||et!==i){const n=Math.round(64*s)/64;x=i,x=Math.log2(x),x-=Math.floor(x);const a=x,r=Math.min(1,8*a);x=2**x;const c=8*Math.SQRT2/x;J=o,tt=s,et=i,W||(W=document.createElement("canvas")),S||(S=W.getContext("2d")),W.width=W.height=Math.round(64*n),S.scale(n,n),S.fillStyle=h[0],S.fillRect(0,0,64,64),S.globalAlpha=.25,S.fillStyle=h[1],S.fillRect(0,0,64,64),S.globalAlpha=.67,S.strokeStyle=h[1],S.beginPath();for(let d=0;d<=64;d+=16)S.moveTo(d-32,d+32),S.lineTo(d+32,d-32);if(S.lineWidth=c*(1-(r-a)/2),S.stroke(),r+a>0){S.beginPath();for(let d=8;d<64;d+=16)S.moveTo(d-32,d+32),S.lineTo(d+32,d-32);S.lineWidth=c*(r+a)/2,S.stroke()}E=o.createPattern(W,"repeat"),x/=n}return t/=64*x*s,t-=Math.floor(t),t*=64*x*s,E.setTransform(new DOMMatrix([x,0,0,x,t,e])),E}function Ot(h){return Array.isArray(h)?`url('data:image/svg+xml,<svg width="26" height="26" xmlns="http://www.w3.org/2000/svg"><rect width="26" height="26" fill="${h[0]}"/><rect width="26" height="26" fill="${h[1]}" fill-opacity="25%"/><path d="M22.5 -3.5L-3.5 22.5M35.5 9.5L9.5 35.5" stroke="${h[1]}" stroke-opacity="67%" stroke-width="9.19239"/></svg>')`:h}function mt(h){return o=>o.id&&h[o.id]||o.color}function pt(h,o=1,t=1){const e={};return ot(e,h,0,Math.PI*2,o,t),mt(e)}function ot(h,o,t,e,i=1,s=1){const n=o.size;h[o.id]=ft(t+e/2,i,s);for(const a of o.children){const r=a.size/n*e;ot(h,a,t,r,i,s),t+=r}}const gt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";function vt(h=16,o=gt){let t="",e=h;const i=o.length;for(;e--;)t+=o[Math.random()*i|0];return t}function wt(h,o,t=(e,i)=>i.size-e.size){if(h.__nanovis)return h;const e={...h};return e.id||(e.id=vt()),e.parent||(e.parent=o),e.children||(e.children=[]),e.sizeSelf==null&&e.size!=null&&e.children.length===0?e.sizeSelf=e.size:e.sizeSelf||(e.sizeSelf=0),e.children=(e.children||[]).map(i=>wt(i,e,t)),e.size||(e.size=e.children.reduce((i,s)=>i+s.size,0)+e.sizeSelf),t&&e.children.sort(t),Object.defineProperty(e,"__nanovis",{enumerable:!1,value:!0}),e}function at(h){return h.children.length===0?1:Math.max(...h.children.map(o=>at(o)))+1}const Nt=/\bFirefox\//.test(navigator.userAgent);let I;function rt(h){return I?I.format(h):`${h}`}function D(){return(window.performance||Date).now()}function L(h){const o=h.toFixed(1).split(".",2);return`${rt(+o[0])}.${o[1]}`}function St(h){return h===1?"1 byte":h<1024?`${rt(h)} bytes`:h<1024*1024?`${L(h/1024)} kb`:h<1024*1024*1024?`${L(h/(1024*1024))} mb`:`${L(h/(1024*1024*1024))} gb`}function lt(h,o,t,e,i,s){if(Nt){const n=h.lineWidth,a=n/2;h.fillStyle=o,h.fillRect(t-a,e-a,i+n,n),h.fillRect(t-a,e+a,n,s-n),h.fillRect(t-a,e+s-a,i+n,n),h.fillRect(t+i-a,e+a,n,s-n);return}h.strokeStyle=o,h.strokeRect(t,e,i,s)}function G(h){return window.addEventListener("wheel",h,{passive:!1}),()=>window.removeEventListener("wheel",h)}function j(h){return window.addEventListener("resize",h),()=>window.removeEventListener("resize",h)}try{I=new Intl.NumberFormat}catch{}let yt=()=>({emit(h,...o){for(let t=this.events[h]||[],e=0,i=t.length;e<i;e++)t[e](...o)},events:{},on(h,o){var t;return((t=this.events)[h]||(t[h]=[])).push(o),()=>{var e;this.events[h]=(e=this.events[h])==null?void 0:e.filter(i=>o!==i)}}});const _={getText:h=>h.text,getSubtext:h=>h.subtext,animate:!0,animateDuration:350},Mt={fallback:"#CCC",stroke:"#0008",text:"#222",hover:"#fff5",shadow:"#0008",fg:"#fff",bg:"#222"},xt=46,V="14px sans-serif",ct=`bold ${V}`;class q{constructor(o,t){l(this,"el");l(this,"canvas");l(this,"c");l(this,"width",0);l(this,"height",0);l(this,"ratio",1);l(this,"root");l(this,"maxDepth");l(this,"events");l(this,"options");l(this,"palette");l(this,"disposables");l(this,"getColor");l(this,"getText");l(this,"getSubtext");l(this,"_animationFrame",null);l(this,"_font","14px sans-serif");l(this,"_fontWidthCache",new Map);l(this,"ellipsisWidth",0);this.options={..._,...t};const{getColor:e=pt(o),getText:i=()=>{},getSubtext:s=()=>{}}=this.options;this.palette={...Mt,...t.palette},this.el=document.createElement("div"),this.canvas=document.createElement("canvas"),this.c=this.canvas.getContext("2d"),this.root=o,this.maxDepth=at(o),this.disposables=[],this.events=yt(),this.getColor=e,this.getText=i,this.getSubtext=s,this.setFont(V),t.onClick&&this.events.on("click",t.onClick),t.onHover&&this.events.on("hover",t.onHover),t.onLeave&&this.events.on("leave",t.onLeave),t.onSelect&&this.events.on("select",t.onSelect),this.el.addEventListener("mouseleave",()=>{this.events.emit("leave")})}invalidate(){this._animationFrame===null&&(this._animationFrame=requestAnimationFrame(()=>{this._animationFrame=null,this.tick()}))}tick(){this.draw()}draw(){}resize(){this.ratio=window.devicePixelRatio||1,this.canvas.style.width=`${this.width}px`,this.canvas.style.height=`${this.height}px`,this.canvas.width=Math.round(this.width*this.ratio),this.canvas.height=Math.round(this.height*this.ratio),this.c.scale(this.ratio,this.ratio),this.draw()}select(o,t){this.events.emit("select",o)}dispose(){this.disposables.forEach(o=>o()),this.disposables.length=0,this.el.remove()}[Symbol.dispose](){this.dispose()}getFontCache(){return this._fontWidthCache.has(this._font)||this._fontWidthCache.set(this._font,{}),this._fontWidthCache.get(this._font)}setFont(o){this._font=o,this.c.font=o,this.c.textBaseline="middle",this.ellipsisWidth=3*this.charCodeWidth(xt)}charCodeWidth(o){const t=this.getFontCache();let e=t[o];return e===void 0&&(e=this.c.measureText(String.fromCharCode(o)).width,t[o]=e),e}textOverflowEllipsis(o,t){if(t<this.ellipsisWidth)return["",0];let e=0;const i=o.length;let s=0;for(;s<i;){const n=this.charCodeWidth(o.charCodeAt(s));if(t<e+this.ellipsisWidth+n)return[`${o.slice(0,s)}...`,e+this.ellipsisWidth];e+=n,s++}return[o,e]}}const b=24,Tt=5,it=.01,st=1e3;class At extends q{constructor(t,e={}){super(t,e);l(this,"mainEl",document.createElement("div"));l(this,"totalBytes");l(this,"viewportMin");l(this,"viewportMax");l(this,"zoomedOutMin",0);l(this,"zoomedOutWidth",0);l(this,"prevWheelTime",0);l(this,"prevWheelWasZoom",!1);l(this,"stripeScaleAdjust",1);l(this,"hoveredNode",null);l(this,"selectedNode",null);l(this,"nodeStartBytes",new Map);l(this,"animationFromMin",0);l(this,"animationFromMax",0);l(this,"animationToMin",0);l(this,"animationToMax",0);l(this,"animationStart",0);this.totalBytes=t.size,this.viewportMin=this.animationFromMin=this.animationToMin=0,this.viewportMax=this.animationFromMax=this.animationToMax=this.totalBytes,Object.assign(this.mainEl.style,{position:"relative"}),Object.assign(this.canvas.style,{position:"absolute",left:"0",top:"0"});let i=!1;this.canvas.onmousedown=s=>{if(i=!1,s.button!==2){let n=s.pageX;const a=c=>{const d=c.pageX-n;!i&&Math.abs(d)<3||(i=!0,this.modifyViewport(-d,0,null),n=c.pageX)},r=()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",r)};s.preventDefault(),document.addEventListener("mousemove",a),document.addEventListener("mouseup",r)}},this.canvas.onmousemove=s=>{this.updateHover(s)},this.canvas.onmouseout=()=>{this.changeHoveredNode(null)},this.canvas.onclick=s=>{if(i)return;const n=this.hitTestNode(s);this.changeHoveredNode(n),this.changeSelectedNode(n),n&&this.events.emit("click",n,s)},this.disposables.push(G(s=>{const n=s.deltaX,a=s.deltaY,r=D(),c=r-this.prevWheelTime<50?this.prevWheelWasZoom:s.ctrlKey||s.metaKey;this.prevWheelTime=r,this.prevWheelWasZoom=c,(c||Math.abs(n)>=Math.abs(a))&&s.preventDefault(),this.modifyViewport(n,a,c?s.pageX:null),this.updateHover(s)})),this.resize(),Promise.resolve().then(()=>this.resize()),this.disposables.push(j(()=>this.resize())),this.mainEl.append(this.canvas),this.el.append(this.mainEl)}tick(){let t=(D()-this.animationStart)/(this.options.animateDuration??_.animateDuration);t<0||t>1?(t=1,this.viewportMin=this.animationToMin,this.viewportMax=this.animationToMax):(t<.5?t*=4*t*t:(t=1-t,t*=4*t*t,t=1-t),this.viewportMin=this.animationFromMin+(this.animationToMin-this.animationFromMin)*t,this.viewportMax=this.animationFromMax+(this.animationToMax-this.animationFromMax)*t,this.invalidate()),this.draw()}draw(){this.c.clearRect(0,0,this.width,this.height),this.drawNode(this.root,0,0,-1/0,1)}changeSelectedNode(t,e=this.options.animate??_.animate){if(this.selectedNode!==t&&(this.selectedNode=t,this.events.emit("select",t),t&&this.nodeStartBytes.has(t.id))){let i=this.nodeStartBytes.get(t.id),s=i+t.size;i=Math.max(0,i-t.size*it),s=Math.min(this.totalBytes,s+t.size*it),this.setViewport(i,s,e)}}select(t,e=this.options.animate??_.animate){this.changeSelectedNode(t,e)}resize(){this.width=this.el.clientWidth,this.height=this.maxDepth*b+1,this.zoomedOutMin=this.width-st>>1,this.zoomedOutWidth=this.zoomedOutMin+st,this.zoomedOutMin<0&&(this.zoomedOutMin=0),this.zoomedOutWidth>this.width&&(this.zoomedOutWidth=this.width),this.zoomedOutWidth-=this.zoomedOutMin,this.stripeScaleAdjust=this.totalBytes/this.zoomedOutWidth,this.mainEl.style.height=`${this.height}px`,super.resize()}drawNode(t,e,i,s,n){this.nodeStartBytes.set(t.id,i);const a=this.zoomedOutWidth/(this.viewportMax-this.viewportMin),r=this.zoomedOutMin+(i-this.viewportMin)*a,c=t.size*a,d=r+c;if(d<s+1.5)return s;if(r+c<0||r>this.width)return d;const f=c<2?2:c,u=(r>0?r:0)+Tt,p=e+b/2;let g=this.getText(t)||"",v=this.getSubtext(t)||"",w,m=0;const N=c+r-u,y=$(this.getColor(t)||this.palette.fallback,this.c,this.zoomedOutMin-this.viewportMin*a,b,a*this.stripeScaleAdjust);let T=this.palette.text,M=-1/0;n&1?(T=this.palette.fg,this.setFont(ct)):(this.c.fillStyle=y,this.c.fillRect(r,e,f,b),(n&2||this.hoveredNode&&t.id===this.hoveredNode.id)&&(this.c.fillStyle=this.palette.hover,this.c.fillRect(r,e,f,b),n|=2)),this.ellipsisWidth<N&&(w=this.c.measureText(g).width,w<=N?m+=w:(g=this.textOverflowEllipsis(g,N)[0],m=N),this.c.fillStyle=T,this.c.fillText(g,u,p)),n&1&&this.setFont(V),m+this.ellipsisWidth<N&&(v&&g&&(v=` - ${v}`),w=this.c.measureText(v).width,m+w>N&&(v=this.textOverflowEllipsis(v,N-m)[0]),this.c.globalAlpha=.5,this.c.fillText(v,u+m,p),this.c.globalAlpha=1);for(const O of t.children)M=this.drawNode(O,e+b,i,M,n&-2),i+=O.size;return n&1||lt(this.c,this.palette.stroke,r+.5,e+.5,f,b),d}changeHoveredNode(t){this.hoveredNode!==t&&(this.hoveredNode=t,this.canvas.style.cursor=t&&!t.children.length?"pointer":"auto",this.invalidate())}hitTestNode(t){const e=this.canvas.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top,n=this.viewportMin+(this.viewportMax-this.viewportMin)/this.zoomedOutWidth*(i-this.zoomedOutMin),a=(r,c,d)=>{if(n>=d&&n<d+r.size){if(s>=c&&s<c+b&&r.id)return r;if(s>=c+b)for(const f of r.children){const u=a(f,c+b,d);if(u)return u;d+=f.size}}return null};return a(this.root,0,0)}modifyViewport(t,e,i){let s=this.viewportMin,n=this.viewportMax,a=0;if(i!==null){const r=s+(n-s)/this.zoomedOutWidth*(i-this.zoomedOutMin),c=1.01**e;s=r+(s-r)*c,n=r+(n-r)*c}else a=t*(n-s)/this.zoomedOutWidth;s+a<0?a=-s:n+a>this.totalBytes&&(a=this.totalBytes-n),s+=a,n+=a,s<0&&(s=0),n>this.totalBytes&&(n=this.totalBytes),this.setViewport(s,n,!1)}setViewport(t,e,i){this.animationFromMin=this.viewportMin,this.animationFromMax=this.viewportMax,this.animationToMin=t,this.animationToMax=e,i?this.animationStart=D():this.animationStart=0,this.invalidate()}updateHover(t){const e=this.hitTestNode(t);this.changeHoveredNode(e),this.events.emit("hover",e,t)}}function ht(h,o){for(;o;){if(o===h)return!0;o=o.parent}return!1}function X(h,o,t){if(h===o)return;const e=o.parent,i=e.size||1;let s=0;X(h,e,t);for(const n of e.children){if(n===o){t.startAngle_+=t.sweepAngle_*s/i,t.sweepAngle_=n.size/i*t.sweepAngle_;break}s+=n.size}t.depth_+=1}const H={};function nt(h){return H[h]||(H[h]=50*8*Math.log(1+Math.log(1+h/8))),H[h]}const B=-Math.PI/2;class zt extends q{constructor(t,e={}){for(;t.children.length===1;)t=t.children[0];super(t,e);l(this,"currentNode");l(this,"hoveredNode");l(this,"centerX",0);l(this,"centerY",0);l(this,"animationStart",0);l(this,"radiusScale",1);l(this,"sourceDepth",0);l(this,"sourceStartAngle",B);l(this,"sourceSweepAngle",Math.PI*2);l(this,"targetNode");l(this,"targetDepth",this.sourceDepth);l(this,"targetStartAngle",this.sourceStartAngle);l(this,"targetSweepAngle",this.sourceSweepAngle);l(this,"animatedNode");l(this,"animatedDepth",this.sourceDepth);l(this,"animatedStartAngle",this.sourceStartAngle);l(this,"animatedSweepAngle",this.sourceSweepAngle);l(this,"previousHoveredNode");l(this,"historyStack",[]);this.currentNode=t,this.targetNode=this.currentNode,this.animatedNode=this.currentNode,this.canvas.onmousemove=i=>{this.handleMouseMove(i)},this.canvas.onmouseout=i=>{this.changeHoveredNode(void 0),this.events.emit("hover",null,i)},this.canvas.onclick=i=>{let s=this.hitTestNode(i);if(!s)return;this.events.emit("click",s,i);let n=[];s!==this.animatedNode.parent?n=this.historyStack.concat(this.currentNode):this.historyStack.length>0&&(s=this.historyStack.pop(),n=this.historyStack.slice()),this.events.emit("click",s,i),s.children.length>0?(this.select(s),this.historyStack=n):i.preventDefault()},this.el.append(this.canvas),this.resize(),Promise.resolve().then(()=>this.resize()),this.disposables.push(j(()=>this.resize())),this.disposables.push(G(i=>this.handleMouseMove(i)))}select(t,e){(this.currentNode!==t||this.root)&&(this.currentNode=t||this.root,this.updateSunburst(e),this.events.emit("select",t))}resize(){this.width=this.el.clientWidth,this.height=this.width,this.centerX=this.width>>1,this.centerY=this.height>>1;const t=2*Math.ceil(nt(this.maxDepth));this.radiusScale=this.width/t,super.resize()}draw(){this.c.clearRect(0,0,this.width,this.height),this.drawNode(this.animatedNode,this.animatedDepth,this.computeRadius(this.animatedDepth),this.animatedStartAngle,this.animatedSweepAngle,3,-1/0),this.c.strokeStyle=this.palette.stroke,this.c.beginPath(),this.drawNode(this.animatedNode,this.animatedDepth,this.computeRadius(this.animatedDepth),this.animatedStartAngle,this.animatedSweepAngle,1,-1/0),this.c.stroke(),this.animatedDepth===0&&(this.c.fillStyle=this.palette.stroke,this.setFont(ct),this.c.textAlign="center",this.c.fillText(St(this.targetNode.size),this.centerX,this.centerY))}drawNode(t,e,i,s,n,a,r){const c=this.computeRadius(e+1);if(c>this.centerY)return r;t===this.hoveredNode&&(a|=8);const d=(i+c)/2,f=s+n;if(f-r<1.5/d)return r;let u=2/d;if(n>u&&(u=n),a&2)this.c.fillStyle=$(this.getColor(t)||this.palette.fallback,this.c,this.centerX,this.centerY,1),this.c.beginPath(),this.c.arc(this.centerX,this.centerY,i,s,s+u,!1),this.c.arc(this.centerX,this.centerY,c,s+u,s,!0),this.c.fill(),this.hoveredNode&&(a&8||t.parent===this.hoveredNode)&&(this.c.fillStyle=this.palette.hover,this.c.fill());else{const m=u===Math.PI*2,N=a&4||m?c:i;a&1&&i>0&&this.c.arc(this.centerX,this.centerY,i,s+u,s,!0),this.c.moveTo(this.centerX+N*Math.cos(s),this.centerY+N*Math.sin(s)),this.c.arc(this.centerX,this.centerY,c,s,s+u,!1),m||this.c.lineTo(this.centerX+i*Math.cos(s+u),this.centerY+i*Math.sin(s+u))}const p=t.size;let g=a&10,v=0,w=-1/0;for(const m of t.children)w=this.drawNode(m,e+1,c,s+n*v/p,m.size/p*n,g,w),v+=m.size,g|=4;return f}changeHoveredNode(t,e){this.hoveredNode!==t&&(this.hoveredNode=t,this.updateSunburst(e))}hitTestNode(t){const e=this.canvas.getBoundingClientRect(),i=t.clientX-e.left-this.centerX,s=t.clientY-e.top-this.centerY,n=Math.sqrt(i*i+s*s),a=Math.atan2(s,i),r=(c,d,f,u,p)=>{const g=this.computeRadius(d+1);if(g>this.centerY)return;if(n>=f&&n<g){let m=a-u;if(m/=Math.PI*2,m-=Math.floor(m),m*=Math.PI*2,m<p)return c===this.animatedNode?c.parent:c}const v=c.size;let w=0;for(const m of c.children){const N=r(m,d+1,g,u+p*w/v,m.size/v*p);if(N)return N;w+=m.size}};return r(this.animatedNode,this.animatedDepth,this.computeRadius(this.animatedDepth),this.animatedStartAngle,this.animatedSweepAngle)}tick(){let t=(D()-this.animationStart)/(this.options.animateDuration??_.animateDuration);t<0||t>1?(t=1,this.animatedNode=this.targetNode,this.targetDepth=0,this.targetStartAngle=B,this.targetSweepAngle=Math.PI*2):(t<.5?t*=4*t*t:(t=1-t,t*=4*t*t,t=1-t),this.invalidate()),this.animatedDepth=this.sourceDepth+(this.targetDepth-this.sourceDepth)*t,this.animatedStartAngle=this.sourceStartAngle+(this.targetStartAngle-this.sourceStartAngle)*t,this.animatedSweepAngle=this.sourceSweepAngle+(this.targetSweepAngle-this.sourceSweepAngle)*t,this.draw()}handleMouseMove(t){const e=this.hitTestNode(t);this.changeHoveredNode(e),e&&e!==this.animatedNode.parent?(this.events.emit("hover",e,t),this.canvas.style.cursor="pointer"):this.events.emit("hover",null,t)}computeRadius(t){return nt(t)*this.radiusScale}updateSunburst(t=this.options.animate??!0){if(this.previousHoveredNode!==this.hoveredNode&&(this.previousHoveredNode=this.hoveredNode,this.hoveredNode||(this.canvas.style.cursor="auto",this.events.emit("hover",null)),this.invalidate()),this.targetNode!==this.currentNode){if(this.historyStack.length=0,this.invalidate(),t&&(this.animationStart=D()),ht(this.animatedNode,this.currentNode)){const e={depth_:this.animatedDepth,startAngle_:this.animatedStartAngle,sweepAngle_:this.animatedSweepAngle};X(this.animatedNode,this.currentNode,e),this.animatedDepth=e.depth_,this.animatedStartAngle=e.startAngle_,this.animatedSweepAngle=e.sweepAngle_,this.targetDepth=0,this.targetStartAngle=B,this.targetSweepAngle=Math.PI*2,this.animatedNode=this.currentNode}else if(ht(this.currentNode,this.animatedNode)){const e={depth_:0,startAngle_:B,sweepAngle_:Math.PI*2};X(this.currentNode,this.animatedNode,e),this.targetDepth=e.depth_,this.targetStartAngle=e.startAngle_,this.targetSweepAngle=e.sweepAngle_}else this.animationStart=-1/0,this.animatedNode=this.currentNode;this.sourceDepth=this.animatedDepth,this.sourceStartAngle=this.animatedStartAngle,this.sourceSweepAngle=this.animatedSweepAngle,this.targetNode=this.currentNode,this.events.emit("select",this.currentNode)}}}const A=4,z=20,P=2*A,C=z+A;function Y(h,o,t,e,i){const s=[],n=(r,c,d,f,u)=>{const p=h[r].size*u,g=h[c].size*u;return Math.max(d*d*p/(f*f),f*f/(d*d*g))};return((r,c,d,f,u)=>{for(;r<h.length;){let p=0;for(let M=r;M<h.length;M++)p+=h[M].size;const g=Math.min(f,u),v=f*u/p;let w=r,m=0,N=0;for(;w<h.length;){const M=h[w].size*v,O=n(r,w,g,m+M,v);if(w>r&&N<O)break;m+=M,N=O,w++}const y=Math.round(m/g);let T=0;for(let M=r;M<w;M++){const O=h[M],U=O.size*v,k=Math.round(g*T/m),Z=Math.round(g*(T+U)/m),[K,Q,R,F]=f>=u?[c,d+k,y,Z-k]:[c+k,d,Z-k,y];s.push({node:O,box:[K,Q,R,F],children:R>P&&F>C?Y(O.children,K+A,Q+z,R-P,F-C):[]}),T+=U}r=w,f>=u?(c+=y,f-=y):(d+=y,u-=y)}})(0,o,t,e,i),s}class Ct extends q{constructor(t,e={}){super(t,e);l(this,"hoveredNode",null);l(this,"currentNode",null);l(this,"bgOriginX",0);l(this,"bgOriginY",0);l(this,"layers",{base:null});l(this,"baseLayoutCache");l(this,"currentOriginX",0);l(this,"currentOriginY",0);l(this,"animationStart",0);l(this,"animationBlend",1);l(this,"animationSource",null);l(this,"animationTarget",null);this.canvas.addEventListener("mousemove",i=>{this.updateHover(i)}),this.canvas.addEventListener("mouseout",i=>{this.changeHoveredNode(null),this.events.emit("hover",null,i)}),this.el.addEventListener("click",i=>{const s=this.hitTestNode(i);if(s){const n=s.node;this.events.emit("click",n,i),n.children.length?s!==this.layers.current?(this.changeCurrentLayout(s),this.changeHoveredNode(null)):this.updateHover(i):this.updateHover(i)}else this.currentNode&&(this.changeCurrentLayout(null),this.updateHover(i))}),this.el.append(this.canvas),this.resize(),Promise.resolve().then(()=>this.resize()),this.disposables.push(G(i=>this.updateHover(i))),this.disposables.push(j(()=>this.resize()))}select(t,e){let i=null;t===this.root&&(t=null),t?i=this.searchFor([this.layers.current,this.layers.base],t):i=null,this.changeCurrentLayout(i,e)}drawBaseLayout(){!this.width||!this.height||(this.c.clearRect(0,0,this.width,this.height),this.bgOriginX=this.bgOriginY=0,this.baseLayoutCache?this.c.putImageData(this.baseLayoutCache,0,0):(this.drawLayout(this.layers.base,0,[]),this.baseLayoutCache=this.c.getImageData(0,0,this.width*this.ratio,this.height*this.ratio)))}draw(){this.drawBaseLayout(),this.layers.current||this.drawHoverHighlight(this.layers.base);const t=this.layers.current?this.animationSource?this.animationTarget?1:1-this.animationBlend:this.animationBlend:0;if(this.layers.current){const[e,i,s,n]=this.layers.base.box;this.c.globalAlpha=.6*(!this.layers.current||!this.animationSource?1:t),this.c.fillStyle=this.palette.bg,this.c.fillRect(e,i,s,n),this.c.globalAlpha=1}if(this.layers.previous&&this.drawLayout(this.layers.previous,1,[this.layers.current]),this.layers.current){const[e,i,s,n]=this.layers.current.box,a=this.c.getTransform(),r=Math.sqrt(a.a*a.d);this.c.save(),this.c.shadowColor=this.palette.shadow,this.c.shadowBlur=r*(30*t),this.c.shadowOffsetX=r*(2*this.width),this.c.shadowOffsetY=r*(2*this.height+15*t),this.c.fillRect(e-2*this.width,i-2*this.height,s,n),this.c.restore(),this.bgOriginX=this.currentOriginX,this.bgOriginY=this.currentOriginY,this.drawLayout(this.layers.current,0,[]),this.drawHoverHighlight(this.layers.current)}}tick(){const t=this.animationBlend,e=this.currentNode;this.animationBlend=(D()-this.animationStart)/(this.options.animateDuration??_.animateDuration),this.animationBlend<0||this.animationBlend>1?(this.currentNode=this.animationTarget,this.layers.previous=void 0,this.animationBlend=1):(this.animationBlend=1-this.animationBlend,this.animationBlend*=this.animationBlend*this.animationBlend,this.animationBlend=1-this.animationBlend,this.invalidate()),(this.animationBlend!==t||this.currentNode!==e)&&this.updateCurrentLayout(),this.draw()}resize(){this.baseLayoutCache=void 0;const t=this.width,e=this.height;this.width=Math.min(this.el.clientWidth,1600),this.height=Math.max(Math.round(this.width/2),innerHeight-200),(this.width!==t||this.height!==e||!this.layers.base)&&(this.layers.base=Y([this.root],0,0,this.width-1,this.height-1)[0],this.updateCurrentLayout()),super.resize()}*iterateNodeToDraw(t,e,i){const s=t.node,[n,a,r,c]=t.box;let d=(s===this.hoveredNode?1:0)|(t===this.animationTarget?2:0);if(e===1)for(const f of i){if(!f)continue;const[u,p,g,v]=f.box;if(n>=u&&a>=p&&n+r<=u+g&&a+c<=p+v){e=2;break}}for(const f of t.children)d|=yield*this.iterateNodeToDraw(f,e,i);return e!==2&&(yield t),d}drawHoverHighlight(t){const e=this.iterateNodeToDraw(t,0,[]),i=this.c.globalCompositeOperation;for(;;){const s=e.next();if(s.done){this.c.globalCompositeOperation=i;return}const n=s.value.node;if(this.hoveredNode===n){this.c.globalCompositeOperation="overlay";const[a,r,c,d]=s.value.box;this.c.fillStyle=this.palette.hover,this.c.fillRect(a,r,c,d)}}}drawNodeBackground(t,e,i){const s=this.iterateNodeToDraw(t,e,i);for(;;){const n=s.next();if(n.done)return n.value;const[a,r,c,d]=n.value.box;this.c.fillStyle=$(this.getColor(n.value.node)||this.palette.fallback,this.c,this.bgOriginX,this.bgOriginY,1),n.value.children.length?(this.c.fillRect(a,r,c,z),this.c.fillRect(a,r+d-A,c,A),this.c.fillRect(a,r+z,A,d-C),this.c.fillRect(a+c-A,r+z,A,d-C)):this.c.fillRect(a,r,c,d)}}drawLayout(t,e,i){this.drawNodeBackground(t,e,i),this.drawNodeForeground(t,e,i)}drawNodeForeground(t,e,i){const s=this.iterateNodeToDraw(t,e,i);for(;;){const n=s.next();if(n.done)return;const a=n.value.node,[r,c,d,f]=n.value.box;if(lt(this.c,this.palette.stroke,r+.5,c+.5,d,f),f>=z){this.c.fillStyle=this.palette.text;const u=d-P,p=c+Math.round(C/2),[g,v]=this.textOverflowEllipsis(this.getText(a)||"",u);let w=r+Math.round((d-v)/2);const m=this.getText(a),N=this.getSubtext(a);if(g===m&&a.children.length){let y=N||"";y&&m&&(y=` - ${y}`);const[T,M]=this.textOverflowEllipsis(y,u-v);w=r+Math.round((d-v-M)/2),this.c.globalAlpha=.5,this.c.fillText(T,w+v,p),this.c.globalAlpha=1}if(this.c.fillText(g,w,p),f>C+16&&!a.children.length){const[y,T]=this.textOverflowEllipsis(N||"",u);this.c.globalAlpha=.5;const M=m?z:z/2+A;this.c.fillText(y,r+Math.round((d-T)/2),c+M+Math.round(f-C)/2),this.c.globalAlpha=1}}}}updateCurrentLayout(){const t=this.options.selectedPaddingRatio??.2;if(this.currentNode){const[e,i,s,n]=this.currentNode.box,a=e+s,r=i+n,c=Math.round(this.width*t/2),d=Math.round(this.height*t/2),f=this.width-c-1,u=this.height-d-1,p=this.animationTarget?this.animationBlend:1-this.animationBlend,g=Math.round(e+(c-e)*p),v=Math.round(i+(d-i)*p),w=Math.round(a+(f-a)*p),m=Math.round(r+(u-r)*p),N=y=>y-Math.floor(y/64-.5)*64;this.layers.current=Y([this.currentNode.node],g,v,w-g,m-v)[0],this.currentOriginX=N(-(e+a)/2)*(1-p)+(g+w)/2,this.currentOriginY=N(-(i+r)/2)*(1-p)+(v+m)/2}else this.layers.current=void 0,this.currentOriginX=0,this.currentOriginY=0}hitTestNode(t){const e=this.canvas.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top,n=(a,r)=>{for(const c of a){const[d,f,u,p]=c.box;if(i>=d&&s>=f&&i<d+u&&s<f+p)return n(c.children,!1)||(r?null:c)}return null};return this.layers.current?n([this.layers.current],!1):n([this.layers.base],!0)}updateHover(t){const e=this.hitTestNode(t);this.changeHoveredNode(e&&e.node),this.events.emit("hover",(e==null?void 0:e.node)||null,t)}changeHoveredNode(t){this.hoveredNode!==t&&(this.hoveredNode=t,this.canvas.style.cursor=t&&!t.children.length?"pointer":"auto",this.invalidate())}searchFor(t,e){for(const i of t){if(!i)continue;const s=i.node===e?i:this.searchFor(i.children,e);if(s)return s}return null}changeCurrentLayout(t,e=this.options.animate){this.animationTarget!==t&&(this.events.emit("select",(t==null?void 0:t.node)||null),this.layers.previous=t?this.layers.current:void 0,e&&(this.animationBlend=0,this.animationStart=D(),this.animationSource=this.currentNode),this.animationTarget=t,this.currentNode=t||this.searchFor([this.layers.base],this.currentNode.node),this.updateCurrentLayout(),this.invalidate())}}export{ct as CONSTANT_BOLD_FONT,V as CONSTANT_NORMAL_FONT,_ as DEFAULT_GRAPH_OPTIONS,Mt as DEFAULT_PALETTE,At as Flamegraph,q as GraphBase,zt as Sunburst,Ct as Treemap,$ as colorToCanvasFill,Ot as colorToCssBackground,mt as createColorGetterFromMap,pt as createColorGetterSpectrum,at as getTreeMaxDepth,ft as hueAngleToColor,wt as normalizeTreeNode};
2
+ //# sourceMappingURL=index2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.js","sources":["../../../../../node_modules/.pnpm/nanovis@0.1.3/node_modules/nanovis/dist/shared/nanovis.D50MWeEo.mjs","../../../../../node_modules/.pnpm/nanovis@0.1.3/node_modules/nanovis/dist/index.mjs"],"sourcesContent":["function hueAngleToColor(hueAngle, saturationMultiplier = 1, lightnessMultiplier = 1) {\n const saturation = (0.6 + 0.4 * Math.max(0, Math.cos(hueAngle))) * saturationMultiplier;\n const lightness = (0.5 + 0.2 * Math.max(0, Math.cos(hueAngle + Math.PI * 2 / 3))) * lightnessMultiplier;\n return `hsl(${hueAngle * 180 / Math.PI}deg, ${Math.round(100 * saturation)}%, ${Math.round(100 * lightness)}%)`;\n}\nlet previousPatternContext;\nlet previousPatternRatio;\nlet previousPatternScale;\nlet patternCanvas;\nlet patternContext;\nlet patternScale = 1;\nlet pattern;\nfunction colorToCanvasFill(color, c, originX, originY, scale) {\n if (!Array.isArray(color))\n return color;\n const ratio = window.devicePixelRatio || 1;\n if (previousPatternContext !== c || previousPatternRatio !== ratio || previousPatternScale !== scale) {\n const s = Math.round(64 * ratio) / 64;\n patternScale = scale;\n patternScale = Math.log2(patternScale);\n patternScale -= Math.floor(patternScale);\n const t1 = patternScale;\n const t8 = Math.min(1, 8 * t1);\n patternScale = 2 ** patternScale;\n const lineWidth = 8 * Math.SQRT2 / patternScale;\n previousPatternContext = c;\n previousPatternRatio = ratio;\n previousPatternScale = scale;\n patternCanvas ||= document.createElement(\"canvas\");\n patternContext ||= patternCanvas.getContext(\"2d\");\n patternCanvas.width = patternCanvas.height = Math.round(64 * s);\n patternContext.scale(s, s);\n patternContext.fillStyle = color[0];\n patternContext.fillRect(0, 0, 64, 64);\n patternContext.globalAlpha = 0.25;\n patternContext.fillStyle = color[1];\n patternContext.fillRect(0, 0, 64, 64);\n patternContext.globalAlpha = 0.67;\n patternContext.strokeStyle = color[1];\n patternContext.beginPath();\n for (let i = 0; i <= 64; i += 16) {\n patternContext.moveTo(i - 32, i + 32);\n patternContext.lineTo(i + 32, i - 32);\n }\n patternContext.lineWidth = lineWidth * (1 - (t8 - t1) / 2);\n patternContext.stroke();\n if (t8 + t1 > 0) {\n patternContext.beginPath();\n for (let i = 8; i < 64; i += 16) {\n patternContext.moveTo(i - 32, i + 32);\n patternContext.lineTo(i + 32, i - 32);\n }\n patternContext.lineWidth = lineWidth * (t8 + t1) / 2;\n patternContext.stroke();\n }\n pattern = c.createPattern(patternCanvas, \"repeat\");\n patternScale /= s;\n }\n originX /= 64 * patternScale * ratio;\n originX -= Math.floor(originX);\n originX *= 64 * patternScale * ratio;\n pattern.setTransform(new DOMMatrix([\n patternScale,\n 0,\n 0,\n patternScale,\n originX,\n originY\n ]));\n return pattern;\n}\nfunction colorToCssBackground(color) {\n if (Array.isArray(color)) {\n return `url('data:image/svg+xml,<svg width=\"26\" height=\"26\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"26\" fill=\"${color[0]}\"/><rect width=\"26\" height=\"26\" fill=\"${color[1]}\" fill-opacity=\"25%\"/><path d=\"M22.5 -3.5L-3.5 22.5M35.5 9.5L9.5 35.5\" stroke=\"${color[1]}\" stroke-opacity=\"67%\" stroke-width=\"9.19239\"/></svg>')`;\n }\n return color;\n}\nfunction createColorGetterFromMap(plain) {\n return (node) => node.id ? plain[node.id] || node.color : node.color;\n}\nfunction createColorGetterSpectrum(tree, saturationMultiplier = 1, lightnessMultiplier = 1) {\n const colorMapping = {};\n assignColorsByDirectory(colorMapping, tree, 0, Math.PI * 2, saturationMultiplier, lightnessMultiplier);\n return createColorGetterFromMap(colorMapping);\n}\nfunction assignColorsByDirectory(colorMapping, node, startAngle, sweepAngle, saturationMultiplier = 1, lightnessMultiplier = 1) {\n const totalBytes = node.size;\n colorMapping[node.id] = hueAngleToColor(startAngle + sweepAngle / 2, saturationMultiplier, lightnessMultiplier);\n for (const child of node.children) {\n const childSweepAngle = child.size / totalBytes * sweepAngle;\n assignColorsByDirectory(colorMapping, child, startAngle, childSweepAngle, saturationMultiplier, lightnessMultiplier);\n startAngle += childSweepAngle;\n }\n}\n\nconst urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nfunction randomStr(size = 16, dict = urlAlphabet) {\n let id = \"\";\n let i = size;\n const len = dict.length;\n while (i--)\n id += dict[Math.random() * len | 0];\n return id;\n}\n\nfunction normalizeTreeNode(node, parent, sort = (a, b) => b.size - a.size) {\n if (node.__nanovis)\n return node;\n const normalized = {\n ...node\n };\n normalized.id ||= randomStr();\n normalized.parent ||= parent;\n normalized.children ||= [];\n if (normalized.sizeSelf == null && normalized.size != null && normalized.children.length === 0)\n normalized.sizeSelf = normalized.size;\n else\n normalized.sizeSelf ||= 0;\n normalized.children = (normalized.children || []).map((child) => normalizeTreeNode(child, normalized, sort));\n normalized.size ||= normalized.children.reduce((acc, child) => acc + child.size, 0) + normalized.sizeSelf;\n if (sort)\n normalized.children.sort(sort);\n Object.defineProperty(normalized, \"__nanovis\", { enumerable: false, value: true });\n return normalized;\n}\nfunction getTreeMaxDepth(node) {\n if (node.children.length === 0)\n return 1;\n return Math.max(...node.children.map((child) => getTreeMaxDepth(child))) + 1;\n}\n\nconst isFirefox = /\\bFirefox\\//.test(navigator.userAgent);\nlet numberFormat;\nfunction formatInteger(value) {\n return numberFormat ? numberFormat.format(value) : `${value}`;\n}\nfunction now() {\n return (window.performance || Date).now();\n}\nfunction formatNumberWithDecimal(value) {\n const parts = value.toFixed(1).split(\".\", 2);\n return `${formatInteger(+parts[0])}.${parts[1]}`;\n}\nfunction bytesToText(bytes) {\n if (bytes === 1)\n return \"1 byte\";\n if (bytes < 1024)\n return `${formatInteger(bytes)} bytes`;\n if (bytes < 1024 * 1024)\n return `${formatNumberWithDecimal(bytes / 1024)} kb`;\n if (bytes < 1024 * 1024 * 1024)\n return `${formatNumberWithDecimal(bytes / (1024 * 1024))} mb`;\n return `${formatNumberWithDecimal(bytes / (1024 * 1024 * 1024))} gb`;\n}\nfunction strokeRectWithFirefoxBugWorkaround(c, color, x, y, w, h) {\n if (isFirefox) {\n const lineWidth = c.lineWidth;\n const halfWidth = lineWidth / 2;\n c.fillStyle = color;\n c.fillRect(x - halfWidth, y - halfWidth, w + lineWidth, lineWidth);\n c.fillRect(x - halfWidth, y + halfWidth, lineWidth, h - lineWidth);\n c.fillRect(x - halfWidth, y + h - halfWidth, w + lineWidth, lineWidth);\n c.fillRect(x + w - halfWidth, y + halfWidth, lineWidth, h - lineWidth);\n return;\n }\n c.strokeStyle = color;\n c.strokeRect(x, y, w, h);\n}\nfunction useWheelEventListener(listener) {\n window.addEventListener(\"wheel\", listener, { passive: false });\n return () => window.removeEventListener(\"wheel\", listener);\n}\nfunction useResizeEventListener(listener) {\n window.addEventListener(\"resize\", listener);\n return () => window.removeEventListener(\"resize\", listener);\n}\ntry {\n numberFormat = new Intl.NumberFormat();\n} catch {\n}\n\nexport { useResizeEventListener as a, colorToCanvasFill as b, createColorGetterSpectrum as c, bytesToText as d, colorToCssBackground as e, createColorGetterFromMap as f, getTreeMaxDepth as g, hueAngleToColor as h, normalizeTreeNode as i, now as n, strokeRectWithFirefoxBugWorkaround as s, useWheelEventListener as u };\n","import { c as createColorGetterSpectrum, g as getTreeMaxDepth, u as useWheelEventListener, a as useResizeEventListener, n as now, b as colorToCanvasFill, s as strokeRectWithFirefoxBugWorkaround, d as bytesToText } from './shared/nanovis.D50MWeEo.mjs';\nexport { e as colorToCssBackground, f as createColorGetterFromMap, h as hueAngleToColor, i as normalizeTreeNode } from './shared/nanovis.D50MWeEo.mjs';\n\nlet createNanoEvents = () => ({\n emit(event, ...args) {\n for (\n let callbacks = this.events[event] || [],\n i = 0,\n length = callbacks.length;\n i < length;\n i++\n ) {\n callbacks[i](...args);\n }\n },\n events: {},\n on(event, cb) {\n(this.events[event] ||= []).push(cb);\n return () => {\n this.events[event] = this.events[event]?.filter(i => cb !== i);\n }\n }\n});\n\nconst DEFAULT_GRAPH_OPTIONS = {\n getText: (node) => node.text,\n getSubtext: (node) => node.subtext,\n animate: true,\n animateDuration: 350\n};\nconst DEFAULT_PALETTE = {\n fallback: \"#CCC\",\n stroke: \"#0008\",\n text: \"#222\",\n hover: \"#fff5\",\n shadow: \"#0008\",\n fg: \"#fff\",\n bg: \"#222\"\n};\n\nconst CONSTANT_DOT_CHAR_CODE = 46;\nconst CONSTANT_NORMAL_FONT = \"14px sans-serif\";\nconst CONSTANT_BOLD_FONT = `bold ${CONSTANT_NORMAL_FONT}`;\nclass GraphBase {\n el;\n canvas;\n c;\n width = 0;\n height = 0;\n ratio = 1;\n root;\n maxDepth;\n events;\n options;\n palette;\n disposables;\n getColor;\n getText;\n getSubtext;\n _animationFrame = null;\n constructor(tree, options) {\n this.options = {\n ...DEFAULT_GRAPH_OPTIONS,\n ...options\n };\n const {\n getColor = createColorGetterSpectrum(tree),\n getText = () => void 0,\n getSubtext = () => void 0\n } = this.options;\n this.palette = {\n ...DEFAULT_PALETTE,\n ...options.palette\n };\n this.el = document.createElement(\"div\");\n this.canvas = document.createElement(\"canvas\");\n this.c = this.canvas.getContext(\"2d\");\n this.root = tree;\n this.maxDepth = getTreeMaxDepth(tree);\n this.disposables = [];\n this.events = createNanoEvents();\n this.getColor = getColor;\n this.getText = getText;\n this.getSubtext = getSubtext;\n this.setFont(CONSTANT_NORMAL_FONT);\n if (options.onClick)\n this.events.on(\"click\", options.onClick);\n if (options.onHover)\n this.events.on(\"hover\", options.onHover);\n if (options.onLeave)\n this.events.on(\"leave\", options.onLeave);\n if (options.onSelect)\n this.events.on(\"select\", options.onSelect);\n this.el.addEventListener(\"mouseleave\", () => {\n this.events.emit(\"leave\");\n });\n }\n /**\n * Invalidate the graph and request a new frame.\n */\n invalidate() {\n if (this._animationFrame === null) {\n this._animationFrame = requestAnimationFrame(() => {\n this._animationFrame = null;\n this.tick();\n });\n }\n }\n /**\n * To be overridden by subclasses to implement custom animation logic.\n */\n tick() {\n this.draw();\n }\n /**\n * To be overridden by subclasses to implement custom animation logic.\n */\n draw() {\n }\n resize() {\n this.ratio = window.devicePixelRatio || 1;\n this.canvas.style.width = `${this.width}px`;\n this.canvas.style.height = `${this.height}px`;\n this.canvas.width = Math.round(this.width * this.ratio);\n this.canvas.height = Math.round(this.height * this.ratio);\n this.c.scale(this.ratio, this.ratio);\n this.draw();\n }\n /**\n * Select a node. To be overridden by subclasses to implement custom selection logic.\n *\n * @param node - The node to select.\n * @param _animate - Whether to animate the selection.\n */\n select(node, _animate) {\n this.events.emit(\"select\", node);\n }\n dispose() {\n this.disposables.forEach((disposable) => disposable());\n this.disposables.length = 0;\n this.el.remove();\n }\n [Symbol.dispose]() {\n this.dispose();\n }\n _font = \"14px sans-serif\";\n _fontWidthCache = /* @__PURE__ */ new Map();\n ellipsisWidth = 0;\n getFontCache() {\n if (!this._fontWidthCache.has(this._font))\n this._fontWidthCache.set(this._font, {});\n return this._fontWidthCache.get(this._font);\n }\n setFont(font) {\n this._font = font;\n this.c.font = font;\n this.c.textBaseline = \"middle\";\n this.ellipsisWidth = 3 * this.charCodeWidth(CONSTANT_DOT_CHAR_CODE);\n }\n charCodeWidth(ch) {\n const cache = this.getFontCache();\n let width = cache[ch];\n if (width === void 0) {\n width = this.c.measureText(String.fromCharCode(ch)).width;\n cache[ch] = width;\n }\n return width;\n }\n textOverflowEllipsis(text, width) {\n if (width < this.ellipsisWidth)\n return [\"\", 0];\n let textWidth = 0;\n const n = text.length;\n let i = 0;\n while (i < n) {\n const charWidth = this.charCodeWidth(text.charCodeAt(i));\n if (width < textWidth + this.ellipsisWidth + charWidth) {\n return [`${text.slice(0, i)}...`, textWidth + this.ellipsisWidth];\n }\n textWidth += charWidth;\n i++;\n }\n return [text, textWidth];\n }\n}\n\nconst CONSTANT_ROW_HEIGHT = 24;\nconst CONSTANT_TEXT_INDENT = 5;\nconst CONSTANT_FOCUS_PADDING_RATIO = 0.01;\nconst CONSTANT_ZOOMED_OUT_WIDTH = 1e3;\nclass Flamegraph extends GraphBase {\n mainEl = document.createElement(\"div\");\n totalBytes;\n viewportMin;\n viewportMax;\n zoomedOutMin = 0;\n zoomedOutWidth = 0;\n prevWheelTime = 0;\n prevWheelWasZoom = false;\n stripeScaleAdjust = 1;\n hoveredNode = null;\n selectedNode = null;\n nodeStartBytes = /* @__PURE__ */ new Map();\n animationFromMin = 0;\n animationFromMax = 0;\n animationToMin = 0;\n animationToMax = 0;\n animationStart = 0;\n constructor(root, userOptions = {}) {\n super(root, userOptions);\n this.totalBytes = root.size;\n this.viewportMin = this.animationFromMin = this.animationToMin = 0;\n this.viewportMax = this.animationFromMax = this.animationToMax = this.totalBytes;\n Object.assign(this.mainEl.style, {\n position: \"relative\"\n });\n Object.assign(this.canvas.style, {\n position: \"absolute\",\n left: \"0\",\n top: \"0\"\n });\n let didDrag = false;\n this.canvas.onmousedown = (e) => {\n didDrag = false;\n if (e.button !== 2) {\n let oldX = e.pageX;\n const move = (e2) => {\n const deltaX = e2.pageX - oldX;\n if (!didDrag && Math.abs(deltaX) < 3)\n return;\n didDrag = true;\n this.modifyViewport(-deltaX, 0, null);\n oldX = e2.pageX;\n };\n const up = () => {\n document.removeEventListener(\"mousemove\", move);\n document.removeEventListener(\"mouseup\", up);\n };\n e.preventDefault();\n document.addEventListener(\"mousemove\", move);\n document.addEventListener(\"mouseup\", up);\n }\n };\n this.canvas.onmousemove = (e) => {\n this.updateHover(e);\n };\n this.canvas.onmouseout = () => {\n this.changeHoveredNode(null);\n };\n this.canvas.onclick = (e) => {\n if (didDrag)\n return;\n const node = this.hitTestNode(e);\n this.changeHoveredNode(node);\n this.changeSelectedNode(node);\n if (node)\n this.events.emit(\"click\", node, e);\n };\n this.disposables.push(useWheelEventListener((e) => {\n const deltaX = e.deltaX;\n const deltaY = e.deltaY;\n const wheelTime = now();\n const isZoom = wheelTime - this.prevWheelTime < 50 ? this.prevWheelWasZoom : e.ctrlKey || e.metaKey;\n this.prevWheelTime = wheelTime;\n this.prevWheelWasZoom = isZoom;\n if (isZoom || Math.abs(deltaX) >= Math.abs(deltaY)) {\n e.preventDefault();\n }\n this.modifyViewport(deltaX, deltaY, isZoom ? e.pageX : null);\n this.updateHover(e);\n }));\n this.resize();\n Promise.resolve().then(() => this.resize());\n this.disposables.push(useResizeEventListener(() => this.resize()));\n this.mainEl.append(this.canvas);\n this.el.append(this.mainEl);\n }\n tick() {\n let t = (now() - this.animationStart) / (this.options.animateDuration ?? DEFAULT_GRAPH_OPTIONS.animateDuration);\n if (t < 0 || t > 1) {\n t = 1;\n this.viewportMin = this.animationToMin;\n this.viewportMax = this.animationToMax;\n } else {\n if (t < 0.5) {\n t *= 4 * t * t;\n } else {\n t = 1 - t;\n t *= 4 * t * t;\n t = 1 - t;\n }\n this.viewportMin = this.animationFromMin + (this.animationToMin - this.animationFromMin) * t;\n this.viewportMax = this.animationFromMax + (this.animationToMax - this.animationFromMax) * t;\n this.invalidate();\n }\n this.draw();\n }\n draw() {\n this.c.clearRect(0, 0, this.width, this.height);\n this.drawNode(this.root, 0, 0, -Infinity, 1 /* ROOT */);\n }\n changeSelectedNode(node, animate = this.options.animate ?? DEFAULT_GRAPH_OPTIONS.animate) {\n if (this.selectedNode === node)\n return;\n this.selectedNode = node;\n this.events.emit(\"select\", node);\n if (node && this.nodeStartBytes.has(node.id)) {\n let start = this.nodeStartBytes.get(node.id);\n let end = start + node.size;\n start = Math.max(0, start - node.size * CONSTANT_FOCUS_PADDING_RATIO);\n end = Math.min(this.totalBytes, end + node.size * CONSTANT_FOCUS_PADDING_RATIO);\n this.setViewport(start, end, animate);\n }\n }\n select(node, animate = this.options.animate ?? DEFAULT_GRAPH_OPTIONS.animate) {\n this.changeSelectedNode(node, animate);\n }\n resize() {\n this.width = this.el.clientWidth;\n this.height = this.maxDepth * CONSTANT_ROW_HEIGHT + 1;\n this.zoomedOutMin = this.width - CONSTANT_ZOOMED_OUT_WIDTH >> 1;\n this.zoomedOutWidth = this.zoomedOutMin + CONSTANT_ZOOMED_OUT_WIDTH;\n if (this.zoomedOutMin < 0)\n this.zoomedOutMin = 0;\n if (this.zoomedOutWidth > this.width)\n this.zoomedOutWidth = this.width;\n this.zoomedOutWidth -= this.zoomedOutMin;\n this.stripeScaleAdjust = this.totalBytes / this.zoomedOutWidth;\n this.mainEl.style.height = `${this.height}px`;\n super.resize();\n }\n // We want to avoid overlapping strokes from lots of really small adjacent\n // rectangles all merging together into a solid color. So we enforce a\n // minimum rectangle width of 2px and we also skip drawing rectangles that\n // have a right edge less than 1.5px from the previous right edge.\n drawNode(node, y, startBytes, prevRightEdge, flags) {\n this.nodeStartBytes.set(node.id, startBytes);\n const scale = this.zoomedOutWidth / (this.viewportMax - this.viewportMin);\n const x = this.zoomedOutMin + (startBytes - this.viewportMin) * scale;\n const w = node.size * scale;\n const rightEdge = x + w;\n if (rightEdge < prevRightEdge + 1.5)\n return prevRightEdge;\n if (x + w < 0 || x > this.width)\n return rightEdge;\n const rectWidth = w < 2 ? 2 : w;\n const textX = (x > 0 ? x : 0) + CONSTANT_TEXT_INDENT;\n const textY = y + CONSTANT_ROW_HEIGHT / 2;\n let text = this.getText(node) || \"\";\n let subText = this.getSubtext(node) || \"\";\n let measuredW;\n let typesetX = 0;\n const typesetW = w + x - textX;\n const fillColor = colorToCanvasFill(this.getColor(node) || this.palette.fallback, this.c, this.zoomedOutMin - this.viewportMin * scale, CONSTANT_ROW_HEIGHT, scale * this.stripeScaleAdjust);\n let textColor = this.palette.text;\n let childRightEdge = -Infinity;\n if (flags & 1 /* ROOT */) {\n textColor = this.palette.fg;\n this.setFont(CONSTANT_BOLD_FONT);\n } else {\n this.c.fillStyle = fillColor;\n this.c.fillRect(x, y, rectWidth, CONSTANT_ROW_HEIGHT);\n if (flags & 2 /* HOVER */ || this.hoveredNode && node.id === this.hoveredNode.id) {\n this.c.fillStyle = this.palette.hover;\n this.c.fillRect(x, y, rectWidth, CONSTANT_ROW_HEIGHT);\n flags |= 2 /* HOVER */;\n }\n }\n if (this.ellipsisWidth < typesetW) {\n measuredW = this.c.measureText(text).width;\n if (measuredW <= typesetW) {\n typesetX += measuredW;\n } else {\n text = this.textOverflowEllipsis(text, typesetW)[0];\n typesetX = typesetW;\n }\n this.c.fillStyle = textColor;\n this.c.fillText(text, textX, textY);\n }\n if (flags & 1 /* ROOT */) {\n this.setFont(CONSTANT_NORMAL_FONT);\n }\n if (typesetX + this.ellipsisWidth < typesetW) {\n if (subText && text)\n subText = ` - ${subText}`;\n measuredW = this.c.measureText(subText).width;\n if (typesetX + measuredW > typesetW) {\n subText = this.textOverflowEllipsis(subText, typesetW - typesetX)[0];\n }\n this.c.globalAlpha = 0.5;\n this.c.fillText(subText, textX + typesetX, textY);\n this.c.globalAlpha = 1;\n }\n for (const child of node.children) {\n childRightEdge = this.drawNode(child, y + CONSTANT_ROW_HEIGHT, startBytes, childRightEdge, flags & -2 /* ROOT */);\n startBytes += child.size;\n }\n if (!(flags & 1 /* ROOT */)) {\n strokeRectWithFirefoxBugWorkaround(this.c, this.palette.stroke, x + 0.5, y + 0.5, rectWidth, CONSTANT_ROW_HEIGHT);\n }\n return rightEdge;\n }\n changeHoveredNode(node) {\n if (this.hoveredNode !== node) {\n this.hoveredNode = node;\n this.canvas.style.cursor = node && !node.children.length ? \"pointer\" : \"auto\";\n this.invalidate();\n }\n }\n hitTestNode(mouseEvent) {\n const rect = this.canvas.getBoundingClientRect();\n const mouseX = mouseEvent.clientX - rect.left;\n const mouseY = mouseEvent.clientY - rect.top;\n const mouseBytes = this.viewportMin + (this.viewportMax - this.viewportMin) / this.zoomedOutWidth * (mouseX - this.zoomedOutMin);\n const visit = (node, y, startBytes) => {\n if (mouseBytes >= startBytes && mouseBytes < startBytes + node.size) {\n if (mouseY >= y && mouseY < y + CONSTANT_ROW_HEIGHT && node.id) {\n return node;\n }\n if (mouseY >= y + CONSTANT_ROW_HEIGHT) {\n for (const child of node.children) {\n const result = visit(child, y + CONSTANT_ROW_HEIGHT, startBytes);\n if (result)\n return result;\n startBytes += child.size;\n }\n }\n }\n return null;\n };\n return visit(this.root, 0, 0);\n }\n modifyViewport(deltaX, deltaY, xForZoom) {\n let min = this.viewportMin;\n let max = this.viewportMax;\n let translate = 0;\n if (xForZoom !== null) {\n const mouse = min + (max - min) / this.zoomedOutWidth * (xForZoom - this.zoomedOutMin);\n const scale = 1.01 ** deltaY;\n min = mouse + (min - mouse) * scale;\n max = mouse + (max - mouse) * scale;\n } else {\n translate = deltaX * (max - min) / this.zoomedOutWidth;\n }\n if (min + translate < 0)\n translate = -min;\n else if (max + translate > this.totalBytes)\n translate = this.totalBytes - max;\n min += translate;\n max += translate;\n if (min < 0)\n min = 0;\n if (max > this.totalBytes)\n max = this.totalBytes;\n this.setViewport(min, max, false);\n }\n setViewport(min, max, animate) {\n this.animationFromMin = this.viewportMin;\n this.animationFromMax = this.viewportMax;\n this.animationToMin = min;\n this.animationToMax = max;\n if (animate)\n this.animationStart = now();\n else\n this.animationStart = 0;\n this.invalidate();\n }\n updateHover(e) {\n const node = this.hitTestNode(e);\n this.changeHoveredNode(node);\n this.events.emit(\"hover\", node, e);\n }\n}\n\nfunction isParentOf(parent, child) {\n while (child) {\n if (child === parent)\n return true;\n child = child.parent;\n }\n return false;\n}\nfunction narrowSlice(root, node, slice) {\n if (root === node)\n return;\n const parent = node.parent;\n const totalBytes = parent.size || 1;\n let bytesSoFar = 0;\n narrowSlice(root, parent, slice);\n for (const child of parent.children) {\n if (child === node) {\n slice.startAngle_ += slice.sweepAngle_ * bytesSoFar / totalBytes;\n slice.sweepAngle_ = child.size / totalBytes * slice.sweepAngle_;\n break;\n }\n bytesSoFar += child.size;\n }\n slice.depth_ += 1;\n}\nconst baseRadiusCache = {};\nfunction baseRadius(depth) {\n if (!baseRadiusCache[depth])\n baseRadiusCache[depth] = 50 * 8 * Math.log(1 + Math.log(1 + depth / 8));\n return baseRadiusCache[depth];\n}\nconst START_ANGLE = -Math.PI / 2;\nclass Sunburst extends GraphBase {\n currentNode;\n hoveredNode;\n centerX = 0;\n centerY = 0;\n animationStart = 0;\n radiusScale = 1;\n sourceDepth = 0;\n sourceStartAngle = START_ANGLE;\n sourceSweepAngle = Math.PI * 2;\n targetNode;\n targetDepth = this.sourceDepth;\n targetStartAngle = this.sourceStartAngle;\n targetSweepAngle = this.sourceSweepAngle;\n animatedNode;\n animatedDepth = this.sourceDepth;\n animatedStartAngle = this.sourceStartAngle;\n animatedSweepAngle = this.sourceSweepAngle;\n previousHoveredNode;\n historyStack = [];\n constructor(tree, options = {}) {\n while (tree.children.length === 1) {\n tree = tree.children[0];\n }\n super(tree, options);\n this.currentNode = tree;\n this.targetNode = this.currentNode;\n this.animatedNode = this.currentNode;\n this.canvas.onmousemove = (e) => {\n this.handleMouseMove(e);\n };\n this.canvas.onmouseout = (e) => {\n this.changeHoveredNode(void 0);\n this.events.emit(\"hover\", null, e);\n };\n this.canvas.onclick = (e) => {\n let node = this.hitTestNode(e);\n if (!node)\n return;\n this.events.emit(\"click\", node, e);\n let stack = [];\n if (node !== this.animatedNode.parent) {\n stack = this.historyStack.concat(this.currentNode);\n } else if (this.historyStack.length > 0) {\n node = this.historyStack.pop();\n stack = this.historyStack.slice();\n }\n this.events.emit(\"click\", node, e);\n if (node.children.length > 0) {\n this.select(node);\n this.historyStack = stack;\n } else {\n e.preventDefault();\n }\n };\n this.el.append(this.canvas);\n this.resize();\n Promise.resolve().then(() => this.resize());\n this.disposables.push(useResizeEventListener(() => this.resize()));\n this.disposables.push(useWheelEventListener((e) => this.handleMouseMove(e)));\n }\n select(node, animate) {\n if (this.currentNode !== node || this.root) {\n this.currentNode = node || this.root;\n this.updateSunburst(animate);\n this.events.emit(\"select\", node);\n }\n }\n resize() {\n this.width = this.el.clientWidth;\n this.height = this.width;\n this.centerX = this.width >> 1;\n this.centerY = this.height >> 1;\n const maxRadius = 2 * Math.ceil(baseRadius(this.maxDepth));\n this.radiusScale = this.width / maxRadius;\n super.resize();\n }\n draw() {\n this.c.clearRect(0, 0, this.width, this.height);\n this.drawNode(this.animatedNode, this.animatedDepth, this.computeRadius(this.animatedDepth), this.animatedStartAngle, this.animatedSweepAngle, 1 /* ROOT */ | 2 /* FILL */, -Infinity);\n this.c.strokeStyle = this.palette.stroke;\n this.c.beginPath();\n this.drawNode(this.animatedNode, this.animatedDepth, this.computeRadius(this.animatedDepth), this.animatedStartAngle, this.animatedSweepAngle, 1 /* ROOT */, -Infinity);\n this.c.stroke();\n if (this.animatedDepth === 0) {\n this.c.fillStyle = this.palette.stroke;\n this.setFont(CONSTANT_BOLD_FONT);\n this.c.textAlign = \"center\";\n this.c.fillText(bytesToText(this.targetNode.size), this.centerX, this.centerY);\n }\n }\n // We want to avoid overlapping strokes from lots of really small adjacent\n // slices all merging together into a solid color. So we enforce a\n // minimum slice width of 2px and we also skip drawing slices that\n // have a tail edge less than 1.5px from the previous tail edge.\n drawNode(node, depth, innerRadius, startAngle, sweepAngle, flags, prevTailEdge) {\n const outerRadius = this.computeRadius(depth + 1);\n if (outerRadius > this.centerY)\n return prevTailEdge;\n if (node === this.hoveredNode) {\n flags |= 8 /* HOVER */;\n }\n const middleRadius = (innerRadius + outerRadius) / 2;\n const tailEdge = startAngle + sweepAngle;\n if (tailEdge - prevTailEdge < 1.5 / middleRadius)\n return prevTailEdge;\n let clampedSweepAngle = 2 / middleRadius;\n if (sweepAngle > clampedSweepAngle)\n clampedSweepAngle = sweepAngle;\n if (flags & 2 /* FILL */) {\n this.c.fillStyle = colorToCanvasFill(this.getColor(node) || this.palette.fallback, this.c, this.centerX, this.centerY, 1);\n this.c.beginPath();\n this.c.arc(this.centerX, this.centerY, innerRadius, startAngle, startAngle + clampedSweepAngle, false);\n this.c.arc(this.centerX, this.centerY, outerRadius, startAngle + clampedSweepAngle, startAngle, true);\n this.c.fill();\n if (this.hoveredNode && (flags & 8 /* HOVER */ || node.parent === this.hoveredNode)) {\n this.c.fillStyle = this.palette.hover;\n this.c.fill();\n }\n } else {\n const isFullCircle = clampedSweepAngle === Math.PI * 2;\n const moveToRadius = flags & 4 /* CHAIN */ || isFullCircle ? outerRadius : innerRadius;\n if (flags & 1 /* ROOT */ && innerRadius > 0)\n this.c.arc(this.centerX, this.centerY, innerRadius, startAngle + clampedSweepAngle, startAngle, true);\n this.c.moveTo(this.centerX + moveToRadius * Math.cos(startAngle), this.centerY + moveToRadius * Math.sin(startAngle));\n this.c.arc(this.centerX, this.centerY, outerRadius, startAngle, startAngle + clampedSweepAngle, false);\n if (!isFullCircle)\n this.c.lineTo(this.centerX + innerRadius * Math.cos(startAngle + clampedSweepAngle), this.centerY + innerRadius * Math.sin(startAngle + clampedSweepAngle));\n }\n const totalBytes = node.size;\n let childFlags = flags & (2 /* FILL */ | 8 /* HOVER */);\n let bytesSoFar = 0;\n let childTailEdge = -Infinity;\n for (const child of node.children) {\n childTailEdge = this.drawNode(child, depth + 1, outerRadius, startAngle + sweepAngle * bytesSoFar / totalBytes, child.size / totalBytes * sweepAngle, childFlags, childTailEdge);\n bytesSoFar += child.size;\n childFlags |= 4 /* CHAIN */;\n }\n return tailEdge;\n }\n changeHoveredNode(node, animate) {\n if (this.hoveredNode !== node) {\n this.hoveredNode = node;\n this.updateSunburst(animate);\n }\n }\n hitTestNode(mouseEvent) {\n const rect = this.canvas.getBoundingClientRect();\n const x = mouseEvent.clientX - rect.left - this.centerX;\n const y = mouseEvent.clientY - rect.top - this.centerY;\n const mouseRadius = Math.sqrt(x * x + y * y);\n const mouseAngle = Math.atan2(y, x);\n const visit = (node, depth, innerRadius, startAngle, sweepAngle) => {\n const outerRadius = this.computeRadius(depth + 1);\n if (outerRadius > this.centerY)\n return void 0;\n if (mouseRadius >= innerRadius && mouseRadius < outerRadius) {\n let deltaAngle = mouseAngle - startAngle;\n deltaAngle /= Math.PI * 2;\n deltaAngle -= Math.floor(deltaAngle);\n deltaAngle *= Math.PI * 2;\n if (deltaAngle < sweepAngle) {\n if (node === this.animatedNode)\n return node.parent;\n return node;\n }\n }\n const totalBytes = node.size;\n let bytesSoFar = 0;\n for (const child of node.children) {\n const hit = visit(child, depth + 1, outerRadius, startAngle + sweepAngle * bytesSoFar / totalBytes, child.size / totalBytes * sweepAngle);\n if (hit)\n return hit;\n bytesSoFar += child.size;\n }\n return void 0;\n };\n return visit(this.animatedNode, this.animatedDepth, this.computeRadius(this.animatedDepth), this.animatedStartAngle, this.animatedSweepAngle);\n }\n tick() {\n let t = (now() - this.animationStart) / (this.options.animateDuration ?? DEFAULT_GRAPH_OPTIONS.animateDuration);\n if (t < 0 || t > 1) {\n t = 1;\n this.animatedNode = this.targetNode;\n this.targetDepth = 0;\n this.targetStartAngle = START_ANGLE;\n this.targetSweepAngle = Math.PI * 2;\n } else {\n if (t < 0.5) {\n t *= 4 * t * t;\n } else {\n t = 1 - t;\n t *= 4 * t * t;\n t = 1 - t;\n }\n this.invalidate();\n }\n this.animatedDepth = this.sourceDepth + (this.targetDepth - this.sourceDepth) * t;\n this.animatedStartAngle = this.sourceStartAngle + (this.targetStartAngle - this.sourceStartAngle) * t;\n this.animatedSweepAngle = this.sourceSweepAngle + (this.targetSweepAngle - this.sourceSweepAngle) * t;\n this.draw();\n }\n handleMouseMove(e) {\n const node = this.hitTestNode(e);\n this.changeHoveredNode(node);\n if (node && node !== this.animatedNode.parent) {\n this.events.emit(\"hover\", node, e);\n this.canvas.style.cursor = \"pointer\";\n } else {\n this.events.emit(\"hover\", null, e);\n }\n }\n computeRadius(depth) {\n return baseRadius(depth) * this.radiusScale;\n }\n updateSunburst(animate = this.options.animate ?? true) {\n if (this.previousHoveredNode !== this.hoveredNode) {\n this.previousHoveredNode = this.hoveredNode;\n if (!this.hoveredNode) {\n this.canvas.style.cursor = \"auto\";\n this.events.emit(\"hover\", null);\n }\n this.invalidate();\n }\n if (this.targetNode === this.currentNode)\n return;\n this.historyStack.length = 0;\n this.invalidate();\n if (animate) {\n this.animationStart = now();\n }\n if (isParentOf(this.animatedNode, this.currentNode)) {\n const slice = {\n depth_: this.animatedDepth,\n startAngle_: this.animatedStartAngle,\n sweepAngle_: this.animatedSweepAngle\n };\n narrowSlice(this.animatedNode, this.currentNode, slice);\n this.animatedDepth = slice.depth_;\n this.animatedStartAngle = slice.startAngle_;\n this.animatedSweepAngle = slice.sweepAngle_;\n this.targetDepth = 0;\n this.targetStartAngle = START_ANGLE;\n this.targetSweepAngle = Math.PI * 2;\n this.animatedNode = this.currentNode;\n } else if (isParentOf(this.currentNode, this.animatedNode)) {\n const slice = {\n depth_: 0,\n startAngle_: START_ANGLE,\n sweepAngle_: Math.PI * 2\n };\n narrowSlice(this.currentNode, this.animatedNode, slice);\n this.targetDepth = slice.depth_;\n this.targetStartAngle = slice.startAngle_;\n this.targetSweepAngle = slice.sweepAngle_;\n } else {\n this.animationStart = -Infinity;\n this.animatedNode = this.currentNode;\n }\n this.sourceDepth = this.animatedDepth;\n this.sourceStartAngle = this.animatedStartAngle;\n this.sourceSweepAngle = this.animatedSweepAngle;\n this.targetNode = this.currentNode;\n this.events.emit(\"select\", this.currentNode);\n }\n}\n\nconst CONSTANT_PADDING = 4;\nconst CONSTANT_HEADER_HEIGHT = 20;\nconst CONSTANT_INSET_X = 2 * CONSTANT_PADDING;\nconst CONSTANT_INSET_Y = CONSTANT_HEADER_HEIGHT + CONSTANT_PADDING;\nfunction layoutTreemap(sortedChildren, x, y, w, h) {\n const children = [];\n const worst = (start, end, shortestSide, totalArea, bytesToArea) => {\n const maxArea = sortedChildren[start].size * bytesToArea;\n const minArea = sortedChildren[end].size * bytesToArea;\n return Math.max(\n shortestSide * shortestSide * maxArea / (totalArea * totalArea),\n totalArea * totalArea / (shortestSide * shortestSide * minArea)\n );\n };\n const squarify = (start, x2, y2, w2, h2) => {\n while (start < sortedChildren.length) {\n let totalBytes = 0;\n for (let i = start; i < sortedChildren.length; i++) {\n totalBytes += sortedChildren[i].size;\n }\n const shortestSide = Math.min(w2, h2);\n const bytesToArea = w2 * h2 / totalBytes;\n let end = start;\n let areaInRun = 0;\n let oldWorst = 0;\n while (end < sortedChildren.length) {\n const area = sortedChildren[end].size * bytesToArea;\n const newWorst = worst(start, end, shortestSide, areaInRun + area, bytesToArea);\n if (end > start && oldWorst < newWorst)\n break;\n areaInRun += area;\n oldWorst = newWorst;\n end++;\n }\n const split = Math.round(areaInRun / shortestSide);\n let areaInLayout = 0;\n for (let i = start; i < end; i++) {\n const child = sortedChildren[i];\n const area = child.size * bytesToArea;\n const lower = Math.round(shortestSide * areaInLayout / areaInRun);\n const upper = Math.round(shortestSide * (areaInLayout + area) / areaInRun);\n const [cx, cy, cw, ch] = w2 >= h2 ? [x2, y2 + lower, split, upper - lower] : [x2 + lower, y2, upper - lower, split];\n children.push({\n node: child,\n box: [cx, cy, cw, ch],\n children: cw > CONSTANT_INSET_X && ch > CONSTANT_INSET_Y ? layoutTreemap(\n child.children,\n cx + CONSTANT_PADDING,\n cy + CONSTANT_HEADER_HEIGHT,\n cw - CONSTANT_INSET_X,\n ch - CONSTANT_INSET_Y\n ) : []\n });\n areaInLayout += area;\n }\n start = end;\n if (w2 >= h2) {\n x2 += split;\n w2 -= split;\n } else {\n y2 += split;\n h2 -= split;\n }\n }\n };\n squarify(0, x, y, w, h);\n return children;\n}\nclass Treemap extends GraphBase {\n hoveredNode = null;\n currentNode = null;\n bgOriginX = 0;\n bgOriginY = 0;\n layers = {\n base: null\n };\n baseLayoutCache;\n currentOriginX = 0;\n currentOriginY = 0;\n animationStart = 0;\n animationBlend = 1;\n animationSource = null;\n animationTarget = null;\n constructor(tree, options = {}) {\n super(tree, options);\n this.canvas.addEventListener(\"mousemove\", (e) => {\n this.updateHover(e);\n });\n this.canvas.addEventListener(\"mouseout\", (e) => {\n this.changeHoveredNode(null);\n this.events.emit(\"hover\", null, e);\n });\n this.el.addEventListener(\"click\", (e) => {\n const layout = this.hitTestNode(e);\n if (layout) {\n const node = layout.node;\n this.events.emit(\"click\", node, e);\n if (!node.children.length) {\n this.updateHover(e);\n } else if (layout !== this.layers.current) {\n this.changeCurrentLayout(layout);\n this.changeHoveredNode(null);\n } else {\n this.updateHover(e);\n }\n } else if (this.currentNode) {\n this.changeCurrentLayout(null);\n this.updateHover(e);\n }\n });\n this.el.append(this.canvas);\n this.resize();\n Promise.resolve().then(() => this.resize());\n this.disposables.push(useWheelEventListener((e) => this.updateHover(e)));\n this.disposables.push(useResizeEventListener(() => this.resize()));\n }\n select(node, animate) {\n let layout = null;\n if (node === this.root)\n node = null;\n if (node)\n layout = this.searchFor([this.layers.current, this.layers.base], node);\n else\n layout = null;\n this.changeCurrentLayout(layout, animate);\n }\n drawBaseLayout() {\n if (!this.width || !this.height)\n return;\n this.c.clearRect(0, 0, this.width, this.height);\n this.bgOriginX = this.bgOriginY = 0;\n if (this.baseLayoutCache) {\n this.c.putImageData(this.baseLayoutCache, 0, 0);\n } else {\n this.drawLayout(this.layers.base, 0 /* Disabled */, []);\n this.baseLayoutCache = this.c.getImageData(0, 0, this.width * this.ratio, this.height * this.ratio);\n }\n }\n draw() {\n this.drawBaseLayout();\n if (!this.layers.current)\n this.drawHoverHighlight(this.layers.base);\n const transition = !this.layers.current ? 0 : !this.animationSource ? this.animationBlend : !this.animationTarget ? 1 - this.animationBlend : 1;\n if (this.layers.current) {\n const [x, y, w, h] = this.layers.base.box;\n this.c.globalAlpha = 0.6 * (!this.layers.current || !this.animationSource ? 1 : transition);\n this.c.fillStyle = this.palette.bg;\n this.c.fillRect(x, y, w, h);\n this.c.globalAlpha = 1;\n }\n if (this.layers.previous) {\n this.drawLayout(this.layers.previous, 1 /* Enabled */, [this.layers.current]);\n }\n if (this.layers.current) {\n const [x, y, w, h] = this.layers.current.box;\n const matrix = this.c.getTransform();\n const scale = Math.sqrt(matrix.a * matrix.d);\n this.c.save();\n this.c.shadowColor = this.palette.shadow;\n this.c.shadowBlur = scale * (30 * transition);\n this.c.shadowOffsetX = scale * (2 * this.width);\n this.c.shadowOffsetY = scale * (2 * this.height + 15 * transition);\n this.c.fillRect(x - 2 * this.width, y - 2 * this.height, w, h);\n this.c.restore();\n this.bgOriginX = this.currentOriginX;\n this.bgOriginY = this.currentOriginY;\n this.drawLayout(this.layers.current, 0 /* Disabled */, []);\n this.drawHoverHighlight(this.layers.current);\n }\n }\n tick() {\n const oldAnimationBlend = this.animationBlend;\n const oldCurrentNode = this.currentNode;\n this.animationBlend = (now() - this.animationStart) / (this.options.animateDuration ?? DEFAULT_GRAPH_OPTIONS.animateDuration);\n if (this.animationBlend < 0 || this.animationBlend > 1) {\n this.currentNode = this.animationTarget;\n this.layers.previous = void 0;\n this.animationBlend = 1;\n } else {\n this.animationBlend = 1 - this.animationBlend;\n this.animationBlend *= this.animationBlend * this.animationBlend;\n this.animationBlend = 1 - this.animationBlend;\n this.invalidate();\n }\n if (this.animationBlend !== oldAnimationBlend || this.currentNode !== oldCurrentNode) {\n this.updateCurrentLayout();\n }\n this.draw();\n }\n resize() {\n this.baseLayoutCache = void 0;\n const oldWidth = this.width;\n const oldHeight = this.height;\n this.width = Math.min(this.el.clientWidth, 1600);\n this.height = Math.max(Math.round(this.width / 2), innerHeight - 200);\n if (this.width !== oldWidth || this.height !== oldHeight || !this.layers.base) {\n this.layers.base = layoutTreemap([this.root], 0, 0, this.width - 1, this.height - 1)[0];\n this.updateCurrentLayout();\n }\n super.resize();\n }\n *iterateNodeToDraw(layout, culling, cullingLayouts) {\n const node = layout.node;\n const [x, y, w, h] = layout.box;\n let flags = (node === this.hoveredNode ? 1 /* CONTAINS_HOVER */ : 0) | (layout === this.animationTarget ? 2 /* CONTAINS_TARGET */ : 0);\n if (culling === 1 /* Enabled */) {\n for (const cullingLayout of cullingLayouts) {\n if (!cullingLayout)\n continue;\n const [cx, cy, cw, ch] = cullingLayout.box;\n if (x >= cx && y >= cy && x + w <= cx + cw && y + h <= cy + ch) {\n culling = 2 /* Culled */;\n break;\n }\n }\n }\n for (const child of layout.children) {\n flags |= yield* this.iterateNodeToDraw(child, culling, cullingLayouts);\n }\n if (culling !== 2 /* Culled */) {\n yield layout;\n }\n return flags;\n }\n drawHoverHighlight(layout) {\n const iter = this.iterateNodeToDraw(layout, 0 /* Disabled */, []);\n const perviousComposite = this.c.globalCompositeOperation;\n while (true) {\n const result = iter.next();\n if (result.done) {\n this.c.globalCompositeOperation = perviousComposite;\n return;\n }\n const node = result.value.node;\n if (this.hoveredNode === node) {\n this.c.globalCompositeOperation = \"overlay\";\n const [x, y, w, h] = result.value.box;\n this.c.fillStyle = this.palette.hover;\n this.c.fillRect(x, y, w, h);\n }\n }\n }\n drawNodeBackground(layout, culling, cullingLayouts) {\n const iter = this.iterateNodeToDraw(layout, culling, cullingLayouts);\n while (true) {\n const result = iter.next();\n if (result.done)\n return result.value;\n const [x, y, w, h] = result.value.box;\n this.c.fillStyle = colorToCanvasFill(this.getColor(result.value.node) || this.palette.fallback, this.c, this.bgOriginX, this.bgOriginY, 1);\n if (result.value.children.length) {\n this.c.fillRect(x, y, w, CONSTANT_HEADER_HEIGHT);\n this.c.fillRect(x, y + h - CONSTANT_PADDING, w, CONSTANT_PADDING);\n this.c.fillRect(x, y + CONSTANT_HEADER_HEIGHT, CONSTANT_PADDING, h - CONSTANT_INSET_Y);\n this.c.fillRect(x + w - CONSTANT_PADDING, y + CONSTANT_HEADER_HEIGHT, CONSTANT_PADDING, h - CONSTANT_INSET_Y);\n } else {\n this.c.fillRect(x, y, w, h);\n }\n }\n }\n drawLayout(layout, culling, cullingLayouts) {\n this.drawNodeBackground(layout, culling, cullingLayouts);\n this.drawNodeForeground(layout, culling, cullingLayouts);\n }\n drawNodeForeground(layout, culling, cullingLayouts) {\n const iter = this.iterateNodeToDraw(layout, culling, cullingLayouts);\n while (true) {\n const result = iter.next();\n if (result.done)\n return;\n const node = result.value.node;\n const [x, y, w, h] = result.value.box;\n strokeRectWithFirefoxBugWorkaround(this.c, this.palette.stroke, x + 0.5, y + 0.5, w, h);\n if (h >= CONSTANT_HEADER_HEIGHT) {\n this.c.fillStyle = this.palette.text;\n const maxWidth = w - CONSTANT_INSET_X;\n const textY = y + Math.round(CONSTANT_INSET_Y / 2);\n const [nameText, nameWidth] = this.textOverflowEllipsis(this.getText(node) || \"\", maxWidth);\n let textX = x + Math.round((w - nameWidth) / 2);\n const text = this.getText(node);\n const subtext = this.getSubtext(node);\n if (nameText === text && node.children.length) {\n let detailText = subtext || \"\";\n if (detailText && text)\n detailText = ` - ${detailText}`;\n const [sizeText, sizeWidth] = this.textOverflowEllipsis(detailText, maxWidth - nameWidth);\n textX = x + Math.round((w - nameWidth - sizeWidth) / 2);\n this.c.globalAlpha = 0.5;\n this.c.fillText(sizeText, textX + nameWidth, textY);\n this.c.globalAlpha = 1;\n }\n this.c.fillText(nameText, textX, textY);\n if (h > CONSTANT_INSET_Y + 16 && !node.children.length) {\n const [sizeText, sizeWidth] = this.textOverflowEllipsis(subtext || \"\", maxWidth);\n this.c.globalAlpha = 0.5;\n const headerHeight = text ? CONSTANT_HEADER_HEIGHT : CONSTANT_HEADER_HEIGHT / 2 + CONSTANT_PADDING;\n this.c.fillText(sizeText, x + Math.round((w - sizeWidth) / 2), y + headerHeight + Math.round(h - CONSTANT_INSET_Y) / 2);\n this.c.globalAlpha = 1;\n }\n }\n }\n }\n updateCurrentLayout() {\n const selectedPaddingRatio = this.options.selectedPaddingRatio ?? 0.2;\n if (this.currentNode) {\n const [ox1, oy1, ow, oh] = this.currentNode.box;\n const ox2 = ox1 + ow;\n const oy2 = oy1 + oh;\n const nx1 = Math.round(this.width * selectedPaddingRatio / 2);\n const ny1 = Math.round(this.height * selectedPaddingRatio / 2);\n const nx2 = this.width - nx1 - 1;\n const ny2 = this.height - ny1 - 1;\n const t = this.animationTarget ? this.animationBlend : 1 - this.animationBlend;\n const x1 = Math.round(ox1 + (nx1 - ox1) * t);\n const y1 = Math.round(oy1 + (ny1 - oy1) * t);\n const x2 = Math.round(ox2 + (nx2 - ox2) * t);\n const y2 = Math.round(oy2 + (ny2 - oy2) * t);\n const wrap64 = (x) => x - Math.floor(x / 64 - 0.5) * 64;\n this.layers.current = layoutTreemap([this.currentNode.node], x1, y1, x2 - x1, y2 - y1)[0];\n this.currentOriginX = wrap64(-(ox1 + ox2) / 2) * (1 - t) + (x1 + x2) / 2;\n this.currentOriginY = wrap64(-(oy1 + oy2) / 2) * (1 - t) + (y1 + y2) / 2;\n } else {\n this.layers.current = void 0;\n this.currentOriginX = 0;\n this.currentOriginY = 0;\n }\n }\n hitTestNode(mouseEvent) {\n const rect = this.canvas.getBoundingClientRect();\n const mouseX = mouseEvent.clientX - rect.left;\n const mouseY = mouseEvent.clientY - rect.top;\n const visit = (nodes, isTopLevel) => {\n for (const node of nodes) {\n const [x, y, w, h] = node.box;\n if (mouseX >= x && mouseY >= y && mouseX < x + w && mouseY < y + h) {\n return visit(node.children, false) || (isTopLevel ? null : node);\n }\n }\n return null;\n };\n return this.layers.current ? visit([this.layers.current], false) : visit([this.layers.base], true);\n }\n updateHover(e) {\n const layout = this.hitTestNode(e);\n this.changeHoveredNode(layout && layout.node);\n this.events.emit(\"hover\", layout?.node || null, e);\n }\n changeHoveredNode(node) {\n if (this.hoveredNode !== node) {\n this.hoveredNode = node;\n this.canvas.style.cursor = node && !node.children.length ? \"pointer\" : \"auto\";\n this.invalidate();\n }\n }\n searchFor(children, node) {\n for (const child of children) {\n if (!child)\n continue;\n const result = child.node === node ? child : this.searchFor(child.children, node);\n if (result)\n return result;\n }\n return null;\n }\n changeCurrentLayout(node, animate = this.options.animate) {\n if (this.animationTarget === node)\n return;\n this.events.emit(\"select\", node?.node || null);\n this.layers.previous = node ? this.layers.current : void 0;\n if (animate) {\n this.animationBlend = 0;\n this.animationStart = now();\n this.animationSource = this.currentNode;\n }\n this.animationTarget = node;\n this.currentNode = node || this.searchFor([this.layers.base], this.currentNode.node);\n this.updateCurrentLayout();\n this.invalidate();\n }\n}\n\nexport { CONSTANT_BOLD_FONT, CONSTANT_NORMAL_FONT, DEFAULT_GRAPH_OPTIONS, DEFAULT_PALETTE, Flamegraph, GraphBase, Sunburst, Treemap, colorToCanvasFill, createColorGetterSpectrum, getTreeMaxDepth };\n"],"names":["hueAngleToColor","hueAngle","saturationMultiplier","lightnessMultiplier","saturation","lightness","previousPatternContext","previousPatternRatio","previousPatternScale","patternCanvas","patternContext","patternScale","pattern","colorToCanvasFill","color","c","originX","originY","scale","ratio","s","t1","t8","lineWidth","i","colorToCssBackground","createColorGetterFromMap","plain","node","createColorGetterSpectrum","tree","colorMapping","assignColorsByDirectory","startAngle","sweepAngle","totalBytes","child","childSweepAngle","urlAlphabet","randomStr","size","dict","id","len","normalizeTreeNode","parent","sort","a","b","normalized","acc","getTreeMaxDepth","isFirefox","numberFormat","formatInteger","value","now","formatNumberWithDecimal","parts","bytesToText","bytes","strokeRectWithFirefoxBugWorkaround","x","y","w","h","halfWidth","useWheelEventListener","listener","useResizeEventListener","createNanoEvents","event","args","callbacks","length","cb","_a","DEFAULT_GRAPH_OPTIONS","DEFAULT_PALETTE","CONSTANT_DOT_CHAR_CODE","CONSTANT_NORMAL_FONT","CONSTANT_BOLD_FONT","GraphBase","options","__publicField","getColor","getText","getSubtext","_animate","disposable","font","ch","cache","width","text","textWidth","n","charWidth","CONSTANT_ROW_HEIGHT","CONSTANT_TEXT_INDENT","CONSTANT_FOCUS_PADDING_RATIO","CONSTANT_ZOOMED_OUT_WIDTH","Flamegraph","root","userOptions","didDrag","e","oldX","move","e2","deltaX","up","deltaY","wheelTime","isZoom","animate","start","end","startBytes","prevRightEdge","flags","rightEdge","rectWidth","textX","textY","subText","measuredW","typesetX","typesetW","fillColor","textColor","childRightEdge","mouseEvent","rect","mouseX","mouseY","mouseBytes","visit","result","xForZoom","min","max","translate","mouse","isParentOf","narrowSlice","slice","bytesSoFar","baseRadiusCache","baseRadius","depth","START_ANGLE","Sunburst","stack","maxRadius","innerRadius","prevTailEdge","outerRadius","middleRadius","tailEdge","clampedSweepAngle","isFullCircle","moveToRadius","childFlags","childTailEdge","mouseRadius","mouseAngle","deltaAngle","hit","CONSTANT_PADDING","CONSTANT_HEADER_HEIGHT","CONSTANT_INSET_X","CONSTANT_INSET_Y","layoutTreemap","sortedChildren","children","worst","shortestSide","totalArea","bytesToArea","maxArea","minArea","x2","y2","w2","h2","areaInRun","oldWorst","area","newWorst","split","areaInLayout","lower","upper","cx","cy","cw","Treemap","layout","transition","matrix","oldAnimationBlend","oldCurrentNode","oldWidth","oldHeight","culling","cullingLayouts","cullingLayout","iter","perviousComposite","maxWidth","nameText","nameWidth","subtext","detailText","sizeText","sizeWidth","headerHeight","selectedPaddingRatio","ox1","oy1","ow","oh","ox2","oy2","nx1","ny1","nx2","ny2","t","x1","y1","wrap64","nodes","isTopLevel"],"mappings":"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","x_google_ignoreList":[0,1]}