dexbot 1.4.16 → 1.4.18

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 (1679) hide show
  1. package/CHANGELOG.md +5019 -0
  2. package/README.md +4 -6
  3. package/analysis/README.md +468 -0
  4. package/analysis/ama_fitting/README.md +258 -0
  5. package/analysis/ama_fitting/analyze_ama_price_changes.ts +151 -0
  6. package/analysis/ama_fitting/analyze_lambda_vs_slow.ts +407 -0
  7. package/analysis/ama_fitting/calibrate_convergence_er.ts +199 -0
  8. package/analysis/ama_fitting/fetch_lp_candles.ts +187 -0
  9. package/analysis/ama_fitting/generate_unified_comparison_chart.ts +269 -0
  10. package/analysis/ama_fitting/optimizer_high_resolution.ts +792 -0
  11. package/analysis/ama_fitting/package.json +12 -0
  12. package/analysis/analyze_derivatives.ts +318 -0
  13. package/analysis/analyze_dynamic_weight.ts +219 -0
  14. package/analysis/analyze_kalman.ts +126 -0
  15. package/analysis/analyze_regime.ts +156 -0
  16. package/analysis/analyze_regime_windows.ts +460 -0
  17. package/analysis/analyze_risk_profile.ts +199 -0
  18. package/analysis/analyze_trade_heatmap.ts +362 -0
  19. package/analysis/analyze_volatility.ts +182 -0
  20. package/analysis/bot_fitting/README.md +124 -0
  21. package/analysis/bot_fitting/backtest_ama_sweep.ts +816 -0
  22. package/analysis/bot_fitting/backtest_bot_fitting.ts +421 -0
  23. package/analysis/bot_fitting/shared_utils.ts +46 -0
  24. package/analysis/bot_key_utils.ts +154 -0
  25. package/analysis/bot_usage/discover_bot_accounts.ts +579 -0
  26. package/analysis/bot_usage/kibana_bot_queries.ts +427 -0
  27. package/analysis/chart_css.ts +60 -0
  28. package/analysis/chart_ui.ts +106 -0
  29. package/analysis/chart_utils.ts +161 -0
  30. package/analysis/derivative_chart_generator.ts +874 -0
  31. package/analysis/math_utils.ts +60 -0
  32. package/analysis/price_sources.ts +130 -0
  33. package/analysis/resolve_source.ts +89 -0
  34. package/analysis/trade_profitability.ts +1412 -0
  35. package/analysis/tradingview/README.md +161 -0
  36. package/analysis/tradingview/analyze_tradingview.ts +160 -0
  37. package/analysis/tradingview/tradingview_uplot_chart_generator.ts +1718 -0
  38. package/analysis/trend_detection/DYNAMIC_WEIGHT_RESEARCH.md +437 -0
  39. package/analysis/trend_detection/README.md +27 -0
  40. package/analysis/trend_detection/SIGNAL_DOCUMENTATION.md +403 -0
  41. package/analysis/trend_detection/derivative_analyzer.ts +1050 -0
  42. package/analysis/trend_detection/dynamic_weight_chart_generator.ts +1376 -0
  43. package/analysis/trend_detection/hurst_analyzer.ts +7 -0
  44. package/analysis/trend_detection/kalman_chart_generator.ts +371 -0
  45. package/analysis/trend_detection/kalman_trend_analyzer.ts +9 -0
  46. package/analysis/trend_detection/kalman_velocity_smoothing.ts +7 -0
  47. package/analysis/trend_detection/package.json +23 -0
  48. package/analysis/trend_detection/permutation_entropy_analyzer.ts +7 -0
  49. package/analysis/trend_detection/regime_chart_generator.ts +319 -0
  50. package/analysis/trend_detection/tests/test_kalman_trend.ts +153 -0
  51. package/analysis/trend_detection/tests/test_kalman_velocity_smoothing.ts +64 -0
  52. package/analysis/trend_detection/volatility_chart_generator.ts +655 -0
  53. package/analysis/tsconfig.json +29 -0
  54. package/analysis/uplot/index.d.ts +128 -0
  55. package/analysis/uplot/uPlot.iife.min.js +2 -0
  56. package/analysis/uplot/uPlot.min.css +1 -0
  57. package/claw/README.md +49 -45
  58. package/claw/docs/AI_BOT_LIBRARY_API.md +6 -6
  59. package/claw/examples/claw_profiles_example.ts +1 -1
  60. package/claw/examples/memu_integration_example.ts +1 -1
  61. package/claw/examples/short_mpa_bts_strategy.ts +3 -3
  62. package/claw/modules/bitshares_client.ts +47 -7
  63. package/claw/modules/chain_actions.ts +10 -1
  64. package/claw/modules/claw_infra.ts +13 -3
  65. package/claw/modules/claw_launcher.ts +41 -7
  66. package/claw/modules/claw_manifest.ts +9 -1
  67. package/claw/modules/claw_skill_md.ts +34 -13
  68. package/claw/modules/credit_runtime_adapter.ts +24 -5
  69. package/claw/modules/decision_loop.ts +10 -2
  70. package/claw/modules/dexbot_profiles.ts +1 -24
  71. package/claw/modules/feed_price_source.ts +1 -1
  72. package/claw/modules/honest_ecosystem.ts +32 -8
  73. package/claw/modules/kibana_price_source.ts +6 -2
  74. package/claw/modules/launcher_mode_detector.ts +10 -13
  75. package/claw/modules/liquidity_pools.ts +2 -2
  76. package/claw/modules/mcp_utils.ts +46 -5
  77. package/claw/modules/memu_bridge.ts +17 -1
  78. package/claw/modules/position_discovery.ts +1 -1
  79. package/claw/modules/position_health.ts +1 -1
  80. package/claw/modules/position_manager.ts +39 -13
  81. package/claw/modules/skill_utils.ts +4 -8
  82. package/claw/modules/types.ts +20 -1
  83. package/claw/package.json +21 -21
  84. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  85. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  86. package/claw/scripts/claw_bridge.ts +24 -5
  87. package/claw/scripts/claw_mcp_server.ts +28 -13
  88. package/claw/scripts/claw_skill_md.ts +1 -1
  89. package/claw/scripts/honest_assets_report.ts +3 -1
  90. package/claw/scripts/memu_mcp_server.ts +15 -4
  91. package/claw/skills/launcher-ops/references/launcher-workflow.md +5 -5
  92. package/claw/skills/margin-trading/references/honest-asset-list.md +1 -1
  93. package/claw/skills/memu-memory/SKILL.md +3 -3
  94. package/claw/tests/test_claw_data_flow.ts +4 -2
  95. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  96. package/claw/tests/test_claw_regressions.ts +5 -0
  97. package/claw/tests/test_claw_skill_generation.ts +3 -3
  98. package/claw/tests/test_nullclaw_tmp_integration.ts +1 -1
  99. package/claw/tsconfig.json +1 -2
  100. package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts +3 -0
  101. package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts.map +1 -0
  102. package/dist/analysis/ama_fitting/analyze_ama_price_changes.js +148 -0
  103. package/dist/analysis/ama_fitting/analyze_ama_price_changes.js.map +1 -0
  104. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts +12 -0
  105. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts.map +1 -0
  106. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +389 -0
  107. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -0
  108. package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts +3 -0
  109. package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts.map +1 -0
  110. package/dist/analysis/ama_fitting/calibrate_convergence_er.js +200 -0
  111. package/dist/analysis/ama_fitting/calibrate_convergence_er.js.map +1 -0
  112. package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts +3 -0
  113. package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts.map +1 -0
  114. package/dist/analysis/ama_fitting/fetch_lp_candles.js +213 -0
  115. package/dist/analysis/ama_fitting/fetch_lp_candles.js.map +1 -0
  116. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts +25 -0
  117. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts.map +1 -0
  118. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js +247 -0
  119. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js.map +1 -0
  120. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts +35 -0
  121. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts.map +1 -0
  122. package/dist/analysis/ama_fitting/optimizer_high_resolution.js +782 -0
  123. package/dist/analysis/ama_fitting/optimizer_high_resolution.js.map +1 -0
  124. package/dist/analysis/analyze_derivatives.d.ts +86 -0
  125. package/dist/analysis/analyze_derivatives.d.ts.map +1 -0
  126. package/dist/analysis/analyze_derivatives.js +285 -0
  127. package/dist/analysis/analyze_derivatives.js.map +1 -0
  128. package/dist/analysis/analyze_dynamic_weight.d.ts +14 -0
  129. package/dist/analysis/analyze_dynamic_weight.d.ts.map +1 -0
  130. package/dist/analysis/analyze_dynamic_weight.js +197 -0
  131. package/dist/analysis/analyze_dynamic_weight.js.map +1 -0
  132. package/dist/analysis/analyze_kalman.d.ts +13 -0
  133. package/dist/analysis/analyze_kalman.d.ts.map +1 -0
  134. package/dist/analysis/analyze_kalman.js +118 -0
  135. package/dist/analysis/analyze_kalman.js.map +1 -0
  136. package/dist/analysis/analyze_regime.d.ts +20 -0
  137. package/dist/analysis/analyze_regime.d.ts.map +1 -0
  138. package/dist/analysis/analyze_regime.js +139 -0
  139. package/dist/analysis/analyze_regime.js.map +1 -0
  140. package/dist/analysis/analyze_regime_windows.d.ts +19 -0
  141. package/dist/analysis/analyze_regime_windows.d.ts.map +1 -0
  142. package/dist/analysis/analyze_regime_windows.js +414 -0
  143. package/dist/analysis/analyze_regime_windows.js.map +1 -0
  144. package/dist/analysis/analyze_risk_profile.d.ts +3 -0
  145. package/dist/analysis/analyze_risk_profile.d.ts.map +1 -0
  146. package/dist/analysis/analyze_risk_profile.js +186 -0
  147. package/dist/analysis/analyze_risk_profile.js.map +1 -0
  148. package/dist/analysis/analyze_trade_heatmap.d.ts +3 -0
  149. package/dist/analysis/analyze_trade_heatmap.d.ts.map +1 -0
  150. package/dist/analysis/analyze_trade_heatmap.js +358 -0
  151. package/dist/analysis/analyze_trade_heatmap.js.map +1 -0
  152. package/dist/analysis/analyze_volatility.d.ts +22 -0
  153. package/dist/analysis/analyze_volatility.d.ts.map +1 -0
  154. package/dist/analysis/analyze_volatility.js +165 -0
  155. package/dist/analysis/analyze_volatility.js.map +1 -0
  156. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts +91 -0
  157. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts.map +1 -0
  158. package/dist/analysis/bot_fitting/backtest_ama_sweep.js +792 -0
  159. package/dist/analysis/bot_fitting/backtest_ama_sweep.js.map +1 -0
  160. package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts +2 -0
  161. package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts.map +1 -0
  162. package/dist/analysis/bot_fitting/backtest_bot_fitting.js +380 -0
  163. package/dist/analysis/bot_fitting/backtest_bot_fitting.js.map +1 -0
  164. package/dist/analysis/bot_fitting/shared_utils.d.ts +26 -0
  165. package/dist/analysis/bot_fitting/shared_utils.d.ts.map +1 -0
  166. package/dist/analysis/bot_fitting/shared_utils.js +42 -0
  167. package/dist/analysis/bot_fitting/shared_utils.js.map +1 -0
  168. package/dist/analysis/bot_key_utils.d.ts +11 -0
  169. package/dist/analysis/bot_key_utils.d.ts.map +1 -0
  170. package/dist/analysis/bot_key_utils.js +153 -0
  171. package/dist/analysis/bot_key_utils.js.map +1 -0
  172. package/dist/analysis/bot_usage/discover_bot_accounts.d.ts +3 -0
  173. package/dist/analysis/bot_usage/discover_bot_accounts.d.ts.map +1 -0
  174. package/dist/analysis/bot_usage/discover_bot_accounts.js +499 -0
  175. package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -0
  176. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +531 -0
  177. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +1 -0
  178. package/dist/analysis/bot_usage/kibana_bot_queries.js +399 -0
  179. package/dist/analysis/bot_usage/kibana_bot_queries.js.map +1 -0
  180. package/dist/analysis/chart_css.d.ts +17 -0
  181. package/dist/analysis/chart_css.d.ts.map +1 -0
  182. package/dist/analysis/chart_css.js +49 -0
  183. package/dist/analysis/chart_css.js.map +1 -0
  184. package/dist/analysis/chart_ui.d.ts +45 -0
  185. package/dist/analysis/chart_ui.d.ts.map +1 -0
  186. package/dist/analysis/chart_ui.js +97 -0
  187. package/dist/analysis/chart_ui.js.map +1 -0
  188. package/dist/analysis/derivative_chart_generator.d.ts +12 -0
  189. package/dist/analysis/derivative_chart_generator.d.ts.map +1 -0
  190. package/dist/analysis/derivative_chart_generator.js +891 -0
  191. package/dist/analysis/derivative_chart_generator.js.map +1 -0
  192. package/dist/analysis/price_sources.d.ts +40 -0
  193. package/dist/analysis/price_sources.d.ts.map +1 -0
  194. package/dist/analysis/price_sources.js +94 -0
  195. package/dist/analysis/price_sources.js.map +1 -0
  196. package/dist/analysis/resolve_source.d.ts +25 -0
  197. package/dist/analysis/resolve_source.d.ts.map +1 -0
  198. package/dist/analysis/resolve_source.js +69 -0
  199. package/dist/analysis/resolve_source.js.map +1 -0
  200. package/dist/analysis/trade_profitability.d.ts +115 -0
  201. package/dist/analysis/trade_profitability.d.ts.map +1 -0
  202. package/dist/analysis/trade_profitability.js +1240 -0
  203. package/dist/analysis/trade_profitability.js.map +1 -0
  204. package/dist/analysis/tradingview/analyze_tradingview.d.ts +31 -0
  205. package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -0
  206. package/dist/analysis/tradingview/analyze_tradingview.js +146 -0
  207. package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -0
  208. package/dist/analysis/trend_detection/derivative_analyzer.d.ts +247 -0
  209. package/dist/analysis/trend_detection/derivative_analyzer.d.ts.map +1 -0
  210. package/dist/analysis/trend_detection/derivative_analyzer.js +901 -0
  211. package/dist/analysis/trend_detection/derivative_analyzer.js.map +1 -0
  212. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts +3 -0
  213. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -0
  214. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +1361 -0
  215. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -0
  216. package/dist/analysis/trend_detection/hurst_analyzer.d.ts +6 -0
  217. package/dist/analysis/trend_detection/hurst_analyzer.d.ts.map +1 -0
  218. package/dist/analysis/trend_detection/hurst_analyzer.js +7 -0
  219. package/dist/analysis/trend_detection/hurst_analyzer.js.map +1 -0
  220. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts +3 -0
  221. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts.map +1 -0
  222. package/dist/analysis/trend_detection/kalman_chart_generator.js +360 -0
  223. package/dist/analysis/trend_detection/kalman_chart_generator.js.map +1 -0
  224. package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts +8 -0
  225. package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts.map +1 -0
  226. package/dist/analysis/trend_detection/kalman_trend_analyzer.js +8 -0
  227. package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +1 -0
  228. package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts +6 -0
  229. package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts.map +1 -0
  230. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js +7 -0
  231. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +1 -0
  232. package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts +6 -0
  233. package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts.map +1 -0
  234. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js +7 -0
  235. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +1 -0
  236. package/dist/analysis/trend_detection/regime_chart_generator.d.ts +3 -0
  237. package/dist/analysis/trend_detection/regime_chart_generator.d.ts.map +1 -0
  238. package/dist/analysis/trend_detection/regime_chart_generator.js +310 -0
  239. package/dist/analysis/trend_detection/regime_chart_generator.js.map +1 -0
  240. package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts +2 -0
  241. package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts.map +1 -0
  242. package/dist/analysis/trend_detection/tests/test_kalman_trend.js +128 -0
  243. package/dist/analysis/trend_detection/tests/test_kalman_trend.js.map +1 -0
  244. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts +2 -0
  245. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts.map +1 -0
  246. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js +37 -0
  247. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js.map +1 -0
  248. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts +3 -0
  249. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts.map +1 -0
  250. package/dist/analysis/trend_detection/volatility_chart_generator.js +646 -0
  251. package/dist/analysis/trend_detection/volatility_chart_generator.js.map +1 -0
  252. package/dist/bot.js +2 -2
  253. package/dist/bot.js.map +1 -1
  254. package/dist/credential-daemon.js +1 -1
  255. package/dist/credential-daemon.js.map +1 -1
  256. package/dist/market_adapter/ama_signal_runner.js +1 -1
  257. package/dist/market_adapter/ama_signal_runner.js.map +1 -1
  258. package/dist/market_adapter/core/market_adapter_service.js +2 -2
  259. package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
  260. package/dist/market_adapter/core/signals/hurst_analyzer.js +1 -1
  261. package/dist/market_adapter/core/signals/kalman_trend_analyzer.js +1 -1
  262. package/dist/market_adapter/core/signals/permutation_entropy_analyzer.js +1 -1
  263. package/dist/market_adapter/core/strategies/ama_slope_model.js +1 -1
  264. package/dist/market_adapter/core/strategies/collateral_manager.js +1 -1
  265. package/dist/market_adapter/core/strategies/regime_gate.js +1 -1
  266. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +1 -1
  267. package/dist/market_adapter/lp_chart_core.js +1 -1
  268. package/dist/market_adapter/market_adapter.js +2 -2
  269. package/dist/market_adapter/market_adapter.js.map +1 -1
  270. package/dist/modules/account_bots.d.ts.map +1 -1
  271. package/dist/modules/account_bots.js +7 -17
  272. package/dist/modules/account_bots.js.map +1 -1
  273. package/dist/modules/account_orders.d.ts +8 -1
  274. package/dist/modules/account_orders.d.ts.map +1 -1
  275. package/dist/modules/account_orders.js +3 -11
  276. package/dist/modules/account_orders.js.map +1 -1
  277. package/dist/modules/authority_resolver.js +1 -1
  278. package/dist/modules/authority_resolver.js.map +1 -1
  279. package/dist/modules/bitshares-native/crypto/ecc.browser.d.ts +1 -2
  280. package/dist/modules/bitshares-native/crypto/ecc.browser.d.ts.map +1 -1
  281. package/dist/modules/bitshares-native/crypto/ecc.browser.js +19 -58
  282. package/dist/modules/bitshares-native/crypto/ecc.browser.js.map +1 -1
  283. package/dist/modules/bitshares-native/crypto/ecc.d.ts +2 -9
  284. package/dist/modules/bitshares-native/crypto/ecc.d.ts.map +1 -1
  285. package/dist/modules/bitshares-native/crypto/ecc.js +6 -145
  286. package/dist/modules/bitshares-native/crypto/ecc.js.map +1 -1
  287. package/dist/modules/bitshares-native/serial/chain_constants.d.ts +1 -17
  288. package/dist/modules/bitshares-native/serial/chain_constants.d.ts.map +1 -1
  289. package/dist/modules/bitshares-native/serial/chain_constants.js +1 -30
  290. package/dist/modules/bitshares-native/serial/chain_constants.js.map +1 -1
  291. package/dist/modules/bitshares-native/serial/types.d.ts +1 -30
  292. package/dist/modules/bitshares-native/serial/types.d.ts.map +1 -1
  293. package/dist/modules/bitshares-native/serial/types.js +1 -169
  294. package/dist/modules/bitshares-native/serial/types.js.map +1 -1
  295. package/dist/modules/bitshares-native/signing_client.js +1 -1
  296. package/dist/modules/bitshares-native/signing_client.js.map +1 -1
  297. package/dist/modules/bitshares-native/subscriptions.js +7 -7
  298. package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
  299. package/dist/modules/bitshares-native/transport.js +1 -1
  300. package/dist/modules/bitshares-native/transport.js.map +1 -1
  301. package/dist/modules/bitshares-native/tx/builder.d.ts +1 -6
  302. package/dist/modules/bitshares-native/tx/builder.d.ts.map +1 -1
  303. package/dist/modules/bitshares-native/tx/builder.js +2 -11
  304. package/dist/modules/bitshares-native/tx/builder.js.map +1 -1
  305. package/dist/modules/bitshares-native/tx/tx_cache.js +1 -1
  306. package/dist/modules/bitshares-native/tx/tx_cache.js.map +1 -1
  307. package/dist/modules/bitshares_client.js +1 -1
  308. package/dist/modules/bitshares_client.js.map +1 -1
  309. package/dist/modules/bot_settings.js +1 -1
  310. package/dist/modules/bot_settings.js.map +1 -1
  311. package/dist/modules/chain_keys.d.ts +2 -2
  312. package/dist/modules/chain_keys.js +2 -2
  313. package/dist/modules/chain_orders.d.ts.map +1 -1
  314. package/dist/modules/chain_orders.js +7 -23
  315. package/dist/modules/chain_orders.js.map +1 -1
  316. package/dist/modules/constants.js +1 -1
  317. package/dist/modules/constants.js.map +1 -1
  318. package/dist/modules/cr_planner.js +3 -3
  319. package/dist/modules/cr_planner.js.map +1 -1
  320. package/dist/modules/credential_policy.d.ts.map +1 -1
  321. package/dist/modules/credential_policy.js +5 -11
  322. package/dist/modules/credential_policy.js.map +1 -1
  323. package/dist/modules/credit_runtime.d.ts.map +1 -1
  324. package/dist/modules/credit_runtime.js +18 -27
  325. package/dist/modules/credit_runtime.js.map +1 -1
  326. package/dist/modules/crypto/pure_secp256k1.d.ts +4 -1
  327. package/dist/modules/crypto/pure_secp256k1.d.ts.map +1 -1
  328. package/dist/modules/crypto/pure_secp256k1.js +1 -1
  329. package/dist/modules/crypto/pure_secp256k1.js.map +1 -1
  330. package/dist/modules/crypto/sync.d.ts +0 -3
  331. package/dist/modules/crypto/sync.d.ts.map +1 -1
  332. package/dist/modules/crypto/sync.js +0 -3
  333. package/dist/modules/crypto/sync.js.map +1 -1
  334. package/dist/modules/dexbot_class.d.ts +9 -9
  335. package/dist/modules/dexbot_class.js +9 -9
  336. package/dist/modules/dexbot_cow_runtime.d.ts +3 -3
  337. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  338. package/dist/modules/dexbot_cow_runtime.js +4 -9
  339. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  340. package/dist/modules/dexbot_fill_runtime.d.ts +10 -10
  341. package/dist/modules/dexbot_fill_runtime.js +10 -10
  342. package/dist/modules/dexbot_maintenance_runtime.d.ts +7 -7
  343. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  344. package/dist/modules/dexbot_maintenance_runtime.js +16 -15
  345. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  346. package/dist/modules/env.d.ts +0 -1
  347. package/dist/modules/env.d.ts.map +1 -1
  348. package/dist/modules/env.js +0 -34
  349. package/dist/modules/env.js.map +1 -1
  350. package/dist/modules/graceful_shutdown.js +1 -1
  351. package/dist/modules/graceful_shutdown.js.map +1 -1
  352. package/dist/modules/launcher/launch_modes.d.ts +1 -2
  353. package/dist/modules/launcher/launch_modes.d.ts.map +1 -1
  354. package/dist/modules/launcher/launch_modes.js +1 -2
  355. package/dist/modules/launcher/launch_modes.js.map +1 -1
  356. package/dist/modules/launcher/market_adapter_runtime.d.ts +1 -2
  357. package/dist/modules/launcher/market_adapter_runtime.d.ts.map +1 -1
  358. package/dist/modules/launcher/market_adapter_runtime.js +1 -4
  359. package/dist/modules/launcher/market_adapter_runtime.js.map +1 -1
  360. package/dist/modules/launcher/monolithic_runtime.d.ts +1 -2
  361. package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -1
  362. package/dist/modules/launcher/monolithic_runtime.js +1 -15
  363. package/dist/modules/launcher/monolithic_runtime.js.map +1 -1
  364. package/dist/modules/launcher/runtime_entry.d.ts +1 -2
  365. package/dist/modules/launcher/runtime_entry.d.ts.map +1 -1
  366. package/dist/modules/launcher/runtime_entry.js +1 -14
  367. package/dist/modules/launcher/runtime_entry.js.map +1 -1
  368. package/dist/modules/launcher/status_reporting.d.ts +1 -3
  369. package/dist/modules/launcher/status_reporting.d.ts.map +1 -1
  370. package/dist/modules/launcher/status_reporting.js +1 -10
  371. package/dist/modules/launcher/status_reporting.js.map +1 -1
  372. package/dist/modules/node_manager.d.ts.map +1 -1
  373. package/dist/modules/node_manager.js +4 -3
  374. package/dist/modules/node_manager.js.map +1 -1
  375. package/dist/modules/order/export.d.ts.map +1 -1
  376. package/dist/modules/order/export.js +4 -3
  377. package/dist/modules/order/export.js.map +1 -1
  378. package/dist/modules/order/format.d.ts +1 -10
  379. package/dist/modules/order/format.d.ts.map +1 -1
  380. package/dist/modules/order/format.js +1 -22
  381. package/dist/modules/order/format.js.map +1 -1
  382. package/dist/modules/order/grid.d.ts +19 -19
  383. package/dist/modules/order/grid.d.ts.map +1 -1
  384. package/dist/modules/order/grid.js +25 -25
  385. package/dist/modules/order/grid.js.map +1 -1
  386. package/dist/modules/order/grid_reconcile_internal.d.ts +1 -83
  387. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
  388. package/dist/modules/order/grid_reconcile_internal.js +1 -1
  389. package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
  390. package/dist/modules/order/manager.d.ts +15 -15
  391. package/dist/modules/order/manager.js +15 -15
  392. package/dist/modules/order/processed_fill_store.d.ts +1 -1
  393. package/dist/modules/order/processed_fill_store.js +1 -1
  394. package/dist/modules/order/sync_engine.d.ts +4 -4
  395. package/dist/modules/order/sync_engine.js +4 -4
  396. package/dist/modules/order/utils/math.d.ts +7 -2
  397. package/dist/modules/order/utils/math.d.ts.map +1 -1
  398. package/dist/modules/order/utils/math.js +10 -3
  399. package/dist/modules/order/utils/math.js.map +1 -1
  400. package/dist/modules/order/utils/order.js +3 -3
  401. package/dist/modules/order/utils/order.js.map +1 -1
  402. package/dist/modules/order/utils/system.d.ts +17 -1
  403. package/dist/modules/order/utils/system.d.ts.map +1 -1
  404. package/dist/modules/order/utils/system.js +45 -3
  405. package/dist/modules/order/utils/system.js.map +1 -1
  406. package/dist/modules/order/utils/validate.d.ts +3 -3
  407. package/dist/modules/order/utils/validate.d.ts.map +1 -1
  408. package/dist/modules/order/utils/validate.js +5 -5
  409. package/dist/modules/order/utils/validate.js.map +1 -1
  410. package/dist/modules/order/utils/withPoolRef.js +1 -1
  411. package/dist/modules/order/utils/withPoolRef.js.map +1 -1
  412. package/dist/modules/paths.d.ts +4 -2
  413. package/dist/modules/paths.d.ts.map +1 -1
  414. package/dist/modules/paths.js +5 -3
  415. package/dist/modules/paths.js.map +1 -1
  416. package/dist/modules/runtime.d.ts +1 -0
  417. package/dist/modules/runtime.d.ts.map +1 -1
  418. package/dist/modules/runtime_settings.d.ts.map +1 -1
  419. package/dist/modules/runtime_settings.js +26 -30
  420. package/dist/modules/runtime_settings.js.map +1 -1
  421. package/dist/modules/settings_merge.d.ts +7 -1
  422. package/dist/modules/settings_merge.d.ts.map +1 -1
  423. package/dist/modules/settings_merge.js +10 -6
  424. package/dist/modules/settings_merge.js.map +1 -1
  425. package/dist/modules/types.d.ts +0 -753
  426. package/dist/modules/types.d.ts.map +1 -1
  427. package/dist/modules/types.js +0 -15
  428. package/dist/modules/types.js.map +1 -1
  429. package/dist/modules/utils/base58check.js +4 -4
  430. package/dist/modules/utils/base58check.js.map +1 -1
  431. package/dist/modules/validate_profiles.d.ts +1 -11
  432. package/dist/modules/validate_profiles.d.ts.map +1 -1
  433. package/dist/modules/validate_profiles.js +1 -1
  434. package/dist/modules/validate_profiles.js.map +1 -1
  435. package/dist/scripts/generate_lp_chart.js +1 -1
  436. package/dist/scripts/test-credit-renewal.js +1 -1
  437. package/dist/scripts/update.d.ts +3 -0
  438. package/dist/scripts/update.d.ts.map +1 -1
  439. package/dist/scripts/update.js +91 -6
  440. package/dist/scripts/update.js.map +1 -1
  441. package/docs/BITSHARES_ONBOARDING.md +435 -0
  442. package/docs/COPY_ON_WRITE_MASTER_PLAN.md +514 -0
  443. package/docs/COW_INVARIANTS.md +309 -0
  444. package/docs/CREDENTIAL_SECURITY.md +450 -0
  445. package/docs/DEXBOT_COMPARISON.md +922 -0
  446. package/docs/EVOLUTION.md +211 -0
  447. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +851 -0
  448. package/docs/GRID_RECALCULATION.md +624 -0
  449. package/docs/GRID_RECONCILE.md +259 -0
  450. package/docs/LOGGING.md +318 -0
  451. package/docs/MPA_CREDIT_USAGE.md +353 -0
  452. package/docs/README.md +199 -0
  453. package/docs/WORKFLOW.md +369 -0
  454. package/docs/architecture.md +1466 -0
  455. package/docs/developer_guide.md +1929 -0
  456. package/docs/docker.md +141 -0
  457. package/market_adapter/README.md +1003 -0
  458. package/modules/README.md +176 -0
  459. package/package.json +49 -18
  460. package/scripts/README.md +67 -44
  461. package/scripts/bots +16 -0
  462. package/scripts/clean-dist.js +9 -0
  463. package/scripts/clear-market-adapter.sh +1 -1
  464. package/scripts/create-bot-symlinks.sh +3 -3
  465. package/scripts/dexbot +15 -0
  466. package/scripts/git-viewer.sh +489 -0
  467. package/scripts/keys +16 -0
  468. package/scripts/pdev.sh +38 -0
  469. package/scripts/pm2 +15 -0
  470. package/scripts/pmain.sh +45 -0
  471. package/scripts/ptest.sh +26 -0
  472. package/scripts/repo-stats.html +480 -0
  473. package/scripts/unlock +15 -0
  474. package/scripts/update.js +12 -0
  475. package/tests/README.md +135 -0
  476. package/claw/data/positions.json +0 -150070
  477. package/claw/node_modules/.package-lock.json +0 -935
  478. package/claw/node_modules/@babel/runtime/LICENSE +0 -22
  479. package/claw/node_modules/@babel/runtime/README.md +0 -19
  480. package/claw/node_modules/@babel/runtime/helpers/AwaitValue.js +0 -4
  481. package/claw/node_modules/@babel/runtime/helpers/OverloadYield.js +0 -4
  482. package/claw/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js +0 -9
  483. package/claw/node_modules/@babel/runtime/helpers/applyDecs.js +0 -236
  484. package/claw/node_modules/@babel/runtime/helpers/applyDecs2203.js +0 -184
  485. package/claw/node_modules/@babel/runtime/helpers/applyDecs2203R.js +0 -191
  486. package/claw/node_modules/@babel/runtime/helpers/applyDecs2301.js +0 -222
  487. package/claw/node_modules/@babel/runtime/helpers/applyDecs2305.js +0 -133
  488. package/claw/node_modules/@babel/runtime/helpers/applyDecs2311.js +0 -124
  489. package/claw/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +0 -6
  490. package/claw/node_modules/@babel/runtime/helpers/arrayWithHoles.js +0 -4
  491. package/claw/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +0 -5
  492. package/claw/node_modules/@babel/runtime/helpers/assertClassBrand.js +0 -5
  493. package/claw/node_modules/@babel/runtime/helpers/assertThisInitialized.js +0 -5
  494. package/claw/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js +0 -24
  495. package/claw/node_modules/@babel/runtime/helpers/asyncIterator.js +0 -45
  496. package/claw/node_modules/@babel/runtime/helpers/asyncToGenerator.js +0 -26
  497. package/claw/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js +0 -5
  498. package/claw/node_modules/@babel/runtime/helpers/callSuper.js +0 -7
  499. package/claw/node_modules/@babel/runtime/helpers/checkInRHS.js +0 -6
  500. package/claw/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js +0 -4
  501. package/claw/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js +0 -10
  502. package/claw/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js +0 -4
  503. package/claw/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js +0 -7
  504. package/claw/node_modules/@babel/runtime/helpers/classCallCheck.js +0 -4
  505. package/claw/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js +0 -5
  506. package/claw/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js +0 -4
  507. package/claw/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js +0 -5
  508. package/claw/node_modules/@babel/runtime/helpers/classNameTDZError.js +0 -4
  509. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js +0 -7
  510. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js +0 -7
  511. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldGet2.js +0 -5
  512. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js +0 -5
  513. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js +0 -5
  514. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js +0 -5
  515. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js +0 -7
  516. package/claw/node_modules/@babel/runtime/helpers/classPrivateFieldSet2.js +0 -5
  517. package/claw/node_modules/@babel/runtime/helpers/classPrivateGetter.js +0 -5
  518. package/claw/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js +0 -5
  519. package/claw/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js +0 -5
  520. package/claw/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js +0 -4
  521. package/claw/node_modules/@babel/runtime/helpers/classPrivateSetter.js +0 -5
  522. package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js +0 -7
  523. package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js +0 -7
  524. package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js +0 -7
  525. package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js +0 -5
  526. package/claw/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js +0 -4
  527. package/claw/node_modules/@babel/runtime/helpers/construct.js +0 -10
  528. package/claw/node_modules/@babel/runtime/helpers/createClass.js +0 -13
  529. package/claw/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js +0 -50
  530. package/claw/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js +0 -19
  531. package/claw/node_modules/@babel/runtime/helpers/createSuper.js +0 -16
  532. package/claw/node_modules/@babel/runtime/helpers/decorate.js +0 -250
  533. package/claw/node_modules/@babel/runtime/helpers/defaults.js +0 -9
  534. package/claw/node_modules/@babel/runtime/helpers/defineAccessor.js +0 -8
  535. package/claw/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js +0 -12
  536. package/claw/node_modules/@babel/runtime/helpers/defineProperty.js +0 -10
  537. package/claw/node_modules/@babel/runtime/helpers/dispose.js +0 -28
  538. package/claw/node_modules/@babel/runtime/helpers/esm/AwaitValue.js +0 -4
  539. package/claw/node_modules/@babel/runtime/helpers/esm/OverloadYield.js +0 -4
  540. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js +0 -9
  541. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs.js +0 -236
  542. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js +0 -184
  543. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +0 -191
  544. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js +0 -222
  545. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js +0 -133
  546. package/claw/node_modules/@babel/runtime/helpers/esm/applyDecs2311.js +0 -124
  547. package/claw/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +0 -6
  548. package/claw/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +0 -4
  549. package/claw/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +0 -5
  550. package/claw/node_modules/@babel/runtime/helpers/esm/assertClassBrand.js +0 -5
  551. package/claw/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +0 -5
  552. package/claw/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js +0 -24
  553. package/claw/node_modules/@babel/runtime/helpers/esm/asyncIterator.js +0 -45
  554. package/claw/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +0 -26
  555. package/claw/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js +0 -5
  556. package/claw/node_modules/@babel/runtime/helpers/esm/callSuper.js +0 -7
  557. package/claw/node_modules/@babel/runtime/helpers/esm/checkInRHS.js +0 -6
  558. package/claw/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js +0 -4
  559. package/claw/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js +0 -10
  560. package/claw/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js +0 -4
  561. package/claw/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js +0 -7
  562. package/claw/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +0 -4
  563. package/claw/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js +0 -5
  564. package/claw/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js +0 -4
  565. package/claw/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js +0 -5
  566. package/claw/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js +0 -4
  567. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js +0 -7
  568. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js +0 -7
  569. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js +0 -5
  570. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js +0 -5
  571. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js +0 -5
  572. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js +0 -5
  573. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js +0 -7
  574. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js +0 -5
  575. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js +0 -5
  576. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js +0 -5
  577. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js +0 -5
  578. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js +0 -4
  579. package/claw/node_modules/@babel/runtime/helpers/esm/classPrivateSetter.js +0 -5
  580. package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js +0 -7
  581. package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js +0 -7
  582. package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js +0 -7
  583. package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js +0 -5
  584. package/claw/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js +0 -4
  585. package/claw/node_modules/@babel/runtime/helpers/esm/construct.js +0 -10
  586. package/claw/node_modules/@babel/runtime/helpers/esm/createClass.js +0 -13
  587. package/claw/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js +0 -50
  588. package/claw/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js +0 -19
  589. package/claw/node_modules/@babel/runtime/helpers/esm/createSuper.js +0 -16
  590. package/claw/node_modules/@babel/runtime/helpers/esm/decorate.js +0 -250
  591. package/claw/node_modules/@babel/runtime/helpers/esm/defaults.js +0 -9
  592. package/claw/node_modules/@babel/runtime/helpers/esm/defineAccessor.js +0 -8
  593. package/claw/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js +0 -12
  594. package/claw/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -10
  595. package/claw/node_modules/@babel/runtime/helpers/esm/dispose.js +0 -28
  596. package/claw/node_modules/@babel/runtime/helpers/esm/extends.js +0 -10
  597. package/claw/node_modules/@babel/runtime/helpers/esm/get.js +0 -11
  598. package/claw/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +0 -6
  599. package/claw/node_modules/@babel/runtime/helpers/esm/identity.js +0 -4
  600. package/claw/node_modules/@babel/runtime/helpers/esm/importDeferProxy.js +0 -27
  601. package/claw/node_modules/@babel/runtime/helpers/esm/inherits.js +0 -14
  602. package/claw/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +0 -5
  603. package/claw/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js +0 -9
  604. package/claw/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js +0 -4
  605. package/claw/node_modules/@babel/runtime/helpers/esm/instanceof.js +0 -4
  606. package/claw/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js +0 -6
  607. package/claw/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js +0 -22
  608. package/claw/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js +0 -8
  609. package/claw/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +0 -9
  610. package/claw/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +0 -4
  611. package/claw/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +0 -28
  612. package/claw/node_modules/@babel/runtime/helpers/esm/jsx.js +0 -22
  613. package/claw/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js +0 -9
  614. package/claw/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js +0 -4
  615. package/claw/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +0 -4
  616. package/claw/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +0 -4
  617. package/claw/node_modules/@babel/runtime/helpers/esm/nullishReceiverError.js +0 -4
  618. package/claw/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js +0 -4
  619. package/claw/node_modules/@babel/runtime/helpers/esm/objectSpread.js +0 -14
  620. package/claw/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +0 -23
  621. package/claw/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +0 -13
  622. package/claw/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +0 -10
  623. package/claw/node_modules/@babel/runtime/helpers/esm/package.json +0 -3
  624. package/claw/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +0 -8
  625. package/claw/node_modules/@babel/runtime/helpers/esm/readOnlyError.js +0 -4
  626. package/claw/node_modules/@babel/runtime/helpers/esm/regenerator.js +0 -89
  627. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorAsync.js +0 -8
  628. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorAsyncGen.js +0 -6
  629. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorAsyncIterator.js +0 -33
  630. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorDefine.js +0 -22
  631. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorKeys.js +0 -10
  632. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js +0 -77
  633. package/claw/node_modules/@babel/runtime/helpers/esm/regeneratorValues.js +0 -19
  634. package/claw/node_modules/@babel/runtime/helpers/esm/set.js +0 -22
  635. package/claw/node_modules/@babel/runtime/helpers/esm/setFunctionName.js +0 -12
  636. package/claw/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +0 -6
  637. package/claw/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js +0 -7
  638. package/claw/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +0 -8
  639. package/claw/node_modules/@babel/runtime/helpers/esm/superPropBase.js +0 -6
  640. package/claw/node_modules/@babel/runtime/helpers/esm/superPropGet.js +0 -9
  641. package/claw/node_modules/@babel/runtime/helpers/esm/superPropSet.js +0 -6
  642. package/claw/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +0 -8
  643. package/claw/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js +0 -4
  644. package/claw/node_modules/@babel/runtime/helpers/esm/tdz.js +0 -4
  645. package/claw/node_modules/@babel/runtime/helpers/esm/temporalRef.js +0 -6
  646. package/claw/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js +0 -2
  647. package/claw/node_modules/@babel/runtime/helpers/esm/toArray.js +0 -8
  648. package/claw/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +0 -8
  649. package/claw/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -12
  650. package/claw/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -7
  651. package/claw/node_modules/@babel/runtime/helpers/esm/toSetter.js +0 -10
  652. package/claw/node_modules/@babel/runtime/helpers/esm/tsRewriteRelativeImportExtensions.js +0 -6
  653. package/claw/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -10
  654. package/claw/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +0 -9
  655. package/claw/node_modules/@babel/runtime/helpers/esm/using.js +0 -12
  656. package/claw/node_modules/@babel/runtime/helpers/esm/usingCtx.js +0 -59
  657. package/claw/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +0 -56
  658. package/claw/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js +0 -27
  659. package/claw/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js +0 -52
  660. package/claw/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js +0 -4
  661. package/claw/node_modules/@babel/runtime/helpers/extends.js +0 -10
  662. package/claw/node_modules/@babel/runtime/helpers/get.js +0 -11
  663. package/claw/node_modules/@babel/runtime/helpers/getPrototypeOf.js +0 -6
  664. package/claw/node_modules/@babel/runtime/helpers/identity.js +0 -4
  665. package/claw/node_modules/@babel/runtime/helpers/importDeferProxy.js +0 -27
  666. package/claw/node_modules/@babel/runtime/helpers/inherits.js +0 -14
  667. package/claw/node_modules/@babel/runtime/helpers/inheritsLoose.js +0 -5
  668. package/claw/node_modules/@babel/runtime/helpers/initializerDefineProperty.js +0 -9
  669. package/claw/node_modules/@babel/runtime/helpers/initializerWarningHelper.js +0 -4
  670. package/claw/node_modules/@babel/runtime/helpers/instanceof.js +0 -4
  671. package/claw/node_modules/@babel/runtime/helpers/interopRequireDefault.js +0 -6
  672. package/claw/node_modules/@babel/runtime/helpers/interopRequireWildcard.js +0 -22
  673. package/claw/node_modules/@babel/runtime/helpers/isNativeFunction.js +0 -8
  674. package/claw/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js +0 -9
  675. package/claw/node_modules/@babel/runtime/helpers/iterableToArray.js +0 -4
  676. package/claw/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +0 -28
  677. package/claw/node_modules/@babel/runtime/helpers/jsx.js +0 -22
  678. package/claw/node_modules/@babel/runtime/helpers/maybeArrayLike.js +0 -9
  679. package/claw/node_modules/@babel/runtime/helpers/newArrowCheck.js +0 -4
  680. package/claw/node_modules/@babel/runtime/helpers/nonIterableRest.js +0 -4
  681. package/claw/node_modules/@babel/runtime/helpers/nonIterableSpread.js +0 -4
  682. package/claw/node_modules/@babel/runtime/helpers/nullishReceiverError.js +0 -4
  683. package/claw/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js +0 -4
  684. package/claw/node_modules/@babel/runtime/helpers/objectSpread.js +0 -14
  685. package/claw/node_modules/@babel/runtime/helpers/objectSpread2.js +0 -23
  686. package/claw/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +0 -13
  687. package/claw/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +0 -10
  688. package/claw/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +0 -8
  689. package/claw/node_modules/@babel/runtime/helpers/readOnlyError.js +0 -4
  690. package/claw/node_modules/@babel/runtime/helpers/regenerator.js +0 -89
  691. package/claw/node_modules/@babel/runtime/helpers/regeneratorAsync.js +0 -8
  692. package/claw/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js +0 -6
  693. package/claw/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js +0 -33
  694. package/claw/node_modules/@babel/runtime/helpers/regeneratorDefine.js +0 -22
  695. package/claw/node_modules/@babel/runtime/helpers/regeneratorKeys.js +0 -10
  696. package/claw/node_modules/@babel/runtime/helpers/regeneratorRuntime.js +0 -77
  697. package/claw/node_modules/@babel/runtime/helpers/regeneratorValues.js +0 -19
  698. package/claw/node_modules/@babel/runtime/helpers/set.js +0 -22
  699. package/claw/node_modules/@babel/runtime/helpers/setFunctionName.js +0 -12
  700. package/claw/node_modules/@babel/runtime/helpers/setPrototypeOf.js +0 -6
  701. package/claw/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js +0 -7
  702. package/claw/node_modules/@babel/runtime/helpers/slicedToArray.js +0 -8
  703. package/claw/node_modules/@babel/runtime/helpers/superPropBase.js +0 -6
  704. package/claw/node_modules/@babel/runtime/helpers/superPropGet.js +0 -9
  705. package/claw/node_modules/@babel/runtime/helpers/superPropSet.js +0 -6
  706. package/claw/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js +0 -8
  707. package/claw/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js +0 -4
  708. package/claw/node_modules/@babel/runtime/helpers/tdz.js +0 -4
  709. package/claw/node_modules/@babel/runtime/helpers/temporalRef.js +0 -6
  710. package/claw/node_modules/@babel/runtime/helpers/temporalUndefined.js +0 -2
  711. package/claw/node_modules/@babel/runtime/helpers/toArray.js +0 -8
  712. package/claw/node_modules/@babel/runtime/helpers/toConsumableArray.js +0 -8
  713. package/claw/node_modules/@babel/runtime/helpers/toPrimitive.js +0 -12
  714. package/claw/node_modules/@babel/runtime/helpers/toPropertyKey.js +0 -7
  715. package/claw/node_modules/@babel/runtime/helpers/toSetter.js +0 -10
  716. package/claw/node_modules/@babel/runtime/helpers/tsRewriteRelativeImportExtensions.js +0 -6
  717. package/claw/node_modules/@babel/runtime/helpers/typeof.js +0 -10
  718. package/claw/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +0 -9
  719. package/claw/node_modules/@babel/runtime/helpers/using.js +0 -12
  720. package/claw/node_modules/@babel/runtime/helpers/usingCtx.js +0 -59
  721. package/claw/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +0 -56
  722. package/claw/node_modules/@babel/runtime/helpers/wrapNativeSuper.js +0 -27
  723. package/claw/node_modules/@babel/runtime/helpers/wrapRegExp.js +0 -52
  724. package/claw/node_modules/@babel/runtime/helpers/writeOnlyError.js +0 -4
  725. package/claw/node_modules/@babel/runtime/package.json +0 -1107
  726. package/claw/node_modules/@babel/runtime/regenerator/index.js +0 -15
  727. package/claw/node_modules/assert/.github/FUNDING.yml +0 -12
  728. package/claw/node_modules/assert/.github/SECURITY.md +0 -10
  729. package/claw/node_modules/assert/.travis.yml +0 -30
  730. package/claw/node_modules/assert/.zuul.yml +0 -13
  731. package/claw/node_modules/assert/CHANGELOG.md +0 -11
  732. package/claw/node_modules/assert/LICENSE +0 -18
  733. package/claw/node_modules/assert/README.md +0 -105
  734. package/claw/node_modules/assert/assert.js +0 -506
  735. package/claw/node_modules/assert/package.json +0 -32
  736. package/claw/node_modules/assert/test.js +0 -360
  737. package/claw/node_modules/async-limiter/.eslintignore +0 -2
  738. package/claw/node_modules/async-limiter/.nycrc +0 -10
  739. package/claw/node_modules/async-limiter/.travis.yml +0 -9
  740. package/claw/node_modules/async-limiter/LICENSE +0 -8
  741. package/claw/node_modules/async-limiter/index.js +0 -67
  742. package/claw/node_modules/async-limiter/package.json +0 -35
  743. package/claw/node_modules/async-limiter/readme.md +0 -132
  744. package/claw/node_modules/available-typed-arrays/.eslintrc +0 -5
  745. package/claw/node_modules/available-typed-arrays/.github/FUNDING.yml +0 -12
  746. package/claw/node_modules/available-typed-arrays/.nycrc +0 -9
  747. package/claw/node_modules/available-typed-arrays/CHANGELOG.md +0 -100
  748. package/claw/node_modules/available-typed-arrays/LICENSE +0 -21
  749. package/claw/node_modules/available-typed-arrays/README.md +0 -55
  750. package/claw/node_modules/available-typed-arrays/index.d.ts +0 -8
  751. package/claw/node_modules/available-typed-arrays/index.js +0 -17
  752. package/claw/node_modules/available-typed-arrays/package.json +0 -93
  753. package/claw/node_modules/available-typed-arrays/test/index.js +0 -18
  754. package/claw/node_modules/available-typed-arrays/tsconfig.json +0 -49
  755. package/claw/node_modules/base-x/LICENSE.md +0 -22
  756. package/claw/node_modules/base-x/README.md +0 -67
  757. package/claw/node_modules/base-x/package.json +0 -49
  758. package/claw/node_modules/base-x/src/index.d.ts +0 -10
  759. package/claw/node_modules/base-x/src/index.js +0 -123
  760. package/claw/node_modules/bigi/CHANGELOG.md +0 -85
  761. package/claw/node_modules/bigi/LICENSE.md +0 -30
  762. package/claw/node_modules/bigi/README.md +0 -14
  763. package/claw/node_modules/bigi/lib/bigi.js +0 -1509
  764. package/claw/node_modules/bigi/lib/convert.js +0 -91
  765. package/claw/node_modules/bigi/lib/index.js +0 -6
  766. package/claw/node_modules/bigi/package.json +0 -55
  767. package/claw/node_modules/bignumber.js/CHANGELOG.md +0 -222
  768. package/claw/node_modules/bignumber.js/LICENCE +0 -23
  769. package/claw/node_modules/bignumber.js/README.md +0 -266
  770. package/claw/node_modules/bignumber.js/bignumber.d.ts +0 -1797
  771. package/claw/node_modules/bignumber.js/bignumber.js +0 -2814
  772. package/claw/node_modules/bignumber.js/bignumber.js.map +0 -1
  773. package/claw/node_modules/bignumber.js/bignumber.min.js +0 -3
  774. package/claw/node_modules/bignumber.js/bignumber.mjs +0 -2793
  775. package/claw/node_modules/bignumber.js/bower.json +0 -36
  776. package/claw/node_modules/bignumber.js/doc/API.html +0 -2118
  777. package/claw/node_modules/bignumber.js/package.json +0 -39
  778. package/claw/node_modules/bs58/CHANGELOG.md +0 -61
  779. package/claw/node_modules/bs58/README.md +0 -71
  780. package/claw/node_modules/bs58/index.js +0 -4
  781. package/claw/node_modules/bs58/package.json +0 -37
  782. package/claw/node_modules/btsdex/.babelrc +0 -17
  783. package/claw/node_modules/btsdex/.github/workflows/check-style.yml +0 -16
  784. package/claw/node_modules/btsdex/LICENSE +0 -21
  785. package/claw/node_modules/btsdex/README.md +0 -467
  786. package/claw/node_modules/btsdex/cli.js +0 -165
  787. package/claw/node_modules/btsdex/lib/account.js +0 -60
  788. package/claw/node_modules/btsdex/lib/asset.js +0 -78
  789. package/claw/node_modules/btsdex/lib/bitshares.js +0 -363
  790. package/claw/node_modules/btsdex/lib/event.js +0 -137
  791. package/claw/node_modules/btsdex/lib/fees.js +0 -34
  792. package/claw/node_modules/btsdex/lib/index.js +0 -3
  793. package/claw/node_modules/btsdex/lib/transaction/TransactionBuilder.js +0 -797
  794. package/claw/node_modules/btsdex/lib/transaction/index.js +0 -64
  795. package/claw/node_modules/btsdex/package.json +0 -54
  796. package/claw/node_modules/btsdex/yarn-error.log +0 -3483
  797. package/claw/node_modules/btsdex-api/.babelrc +0 -14
  798. package/claw/node_modules/btsdex-api/README.md +0 -3
  799. package/claw/node_modules/btsdex-api/lib/apis.js +0 -59
  800. package/claw/node_modules/btsdex-api/lib/config.js +0 -39
  801. package/claw/node_modules/btsdex-api/lib/connection.js +0 -188
  802. package/claw/node_modules/btsdex-api/lib/index.js +0 -86
  803. package/claw/node_modules/btsdex-api/lib/logger.js +0 -45
  804. package/claw/node_modules/btsdex-api/lib/servers.js +0 -30
  805. package/claw/node_modules/btsdex-api/package.json +0 -29
  806. package/claw/node_modules/btsdex-ecc/.babelrc +0 -13
  807. package/claw/node_modules/btsdex-ecc/lib/BrainKey.js +0 -15
  808. package/claw/node_modules/btsdex-ecc/lib/KeyUtils.js +0 -205
  809. package/claw/node_modules/btsdex-ecc/lib/PrivateKey.js +0 -198
  810. package/claw/node_modules/btsdex-ecc/lib/PublicKey.js +0 -197
  811. package/claw/node_modules/btsdex-ecc/lib/address.js +0 -84
  812. package/claw/node_modules/btsdex-ecc/lib/addressPrefix.js +0 -15
  813. package/claw/node_modules/btsdex-ecc/lib/aes.js +0 -294
  814. package/claw/node_modules/btsdex-ecc/lib/ecdsa.js +0 -194
  815. package/claw/node_modules/btsdex-ecc/lib/ecsignature.js +0 -131
  816. package/claw/node_modules/btsdex-ecc/lib/enforce_types.js +0 -54
  817. package/claw/node_modules/btsdex-ecc/lib/hash.js +0 -60
  818. package/claw/node_modules/btsdex-ecc/lib/index.js +0 -84
  819. package/claw/node_modules/btsdex-ecc/lib/signature.js +0 -185
  820. package/claw/node_modules/btsdex-ecc/package.json +0 -37
  821. package/claw/node_modules/btsdex-serializer/.babelrc +0 -13
  822. package/claw/node_modules/btsdex-serializer/lib/ChainTypes.js +0 -154
  823. package/claw/node_modules/btsdex-serializer/lib/FastParser.js +0 -75
  824. package/claw/node_modules/btsdex-serializer/lib/ObjectId.js +0 -65
  825. package/claw/node_modules/btsdex-serializer/lib/SerializerValidation.js +0 -377
  826. package/claw/node_modules/btsdex-serializer/lib/convert.js +0 -54
  827. package/claw/node_modules/btsdex-serializer/lib/error_with_cause.js +0 -43
  828. package/claw/node_modules/btsdex-serializer/lib/index.js +0 -72
  829. package/claw/node_modules/btsdex-serializer/lib/operations.js +0 -1359
  830. package/claw/node_modules/btsdex-serializer/lib/precision.js +0 -108
  831. package/claw/node_modules/btsdex-serializer/lib/serializer.js +0 -205
  832. package/claw/node_modules/btsdex-serializer/lib/template.js +0 -23
  833. package/claw/node_modules/btsdex-serializer/lib/types.js +0 -1209
  834. package/claw/node_modules/btsdex-serializer/package-lock.json +0 -238
  835. package/claw/node_modules/btsdex-serializer/package.json +0 -32
  836. package/claw/node_modules/bytebuffer/.travis.yml +0 -5
  837. package/claw/node_modules/bytebuffer/LICENSE +0 -202
  838. package/claw/node_modules/bytebuffer/README.md +0 -64
  839. package/claw/node_modules/bytebuffer/bower.json +0 -12
  840. package/claw/node_modules/bytebuffer/bytebuffer.png +0 -0
  841. package/claw/node_modules/bytebuffer/dist/README.md +0 -47
  842. package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.js +0 -3461
  843. package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.min.js +0 -88
  844. package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.min.js.gz +0 -0
  845. package/claw/node_modules/bytebuffer/dist/bytebuffer-dataview.min.map +0 -8
  846. package/claw/node_modules/bytebuffer/dist/bytebuffer-node.js +0 -3454
  847. package/claw/node_modules/bytebuffer/dist/bytebuffer.js +0 -3746
  848. package/claw/node_modules/bytebuffer/dist/bytebuffer.min.js +0 -93
  849. package/claw/node_modules/bytebuffer/dist/bytebuffer.min.js.gz +0 -0
  850. package/claw/node_modules/bytebuffer/dist/bytebuffer.min.map +0 -8
  851. package/claw/node_modules/bytebuffer/donate.png +0 -0
  852. package/claw/node_modules/bytebuffer/externs/bytebuffer.js +0 -862
  853. package/claw/node_modules/bytebuffer/externs/minimal-env.js +0 -52
  854. package/claw/node_modules/bytebuffer/index.js +0 -1
  855. package/claw/node_modules/bytebuffer/jsdoc.json +0 -13
  856. package/claw/node_modules/bytebuffer/package.json +0 -51
  857. package/claw/node_modules/bytebuffer/scripts/build.js +0 -113
  858. package/claw/node_modules/bytebuffer/src/bower.json +0 -12
  859. package/claw/node_modules/bytebuffer/src/bytebuffer.js +0 -220
  860. package/claw/node_modules/bytebuffer/src/encodings/base64.js +0 -88
  861. package/claw/node_modules/bytebuffer/src/encodings/binary.js +0 -74
  862. package/claw/node_modules/bytebuffer/src/encodings/debug.js +0 -211
  863. package/claw/node_modules/bytebuffer/src/encodings/hex.js +0 -75
  864. package/claw/node_modules/bytebuffer/src/encodings/impl/base64.js +0 -3
  865. package/claw/node_modules/bytebuffer/src/encodings/impl/binary.js +0 -65
  866. package/claw/node_modules/bytebuffer/src/encodings/impl/debug.js +0 -3
  867. package/claw/node_modules/bytebuffer/src/encodings/impl/hex.js +0 -101
  868. package/claw/node_modules/bytebuffer/src/encodings/impl/utf8.js +0 -126
  869. package/claw/node_modules/bytebuffer/src/encodings/utf8.js +0 -71
  870. package/claw/node_modules/bytebuffer/src/helpers.js +0 -143
  871. package/claw/node_modules/bytebuffer/src/macros.js +0 -222
  872. package/claw/node_modules/bytebuffer/src/methods/append.js +0 -58
  873. package/claw/node_modules/bytebuffer/src/methods/assert.js +0 -12
  874. package/claw/node_modules/bytebuffer/src/methods/capacity.js +0 -8
  875. package/claw/node_modules/bytebuffer/src/methods/clear.js +0 -13
  876. package/claw/node_modules/bytebuffer/src/methods/clone.js +0 -34
  877. package/claw/node_modules/bytebuffer/src/methods/compact.js +0 -49
  878. package/claw/node_modules/bytebuffer/src/methods/copy.js +0 -73
  879. package/claw/node_modules/bytebuffer/src/methods/ensureCapacity.js +0 -15
  880. package/claw/node_modules/bytebuffer/src/methods/fill.js +0 -35
  881. package/claw/node_modules/bytebuffer/src/methods/flip.js +0 -11
  882. package/claw/node_modules/bytebuffer/src/methods/mark.js +0 -17
  883. package/claw/node_modules/bytebuffer/src/methods/order.js +0 -36
  884. package/claw/node_modules/bytebuffer/src/methods/prepend.js +0 -87
  885. package/claw/node_modules/bytebuffer/src/methods/printDebug.js +0 -16
  886. package/claw/node_modules/bytebuffer/src/methods/remaining.js +0 -9
  887. package/claw/node_modules/bytebuffer/src/methods/reset.js +0 -17
  888. package/claw/node_modules/bytebuffer/src/methods/resize.js +0 -39
  889. package/claw/node_modules/bytebuffer/src/methods/reverse.js +0 -25
  890. package/claw/node_modules/bytebuffer/src/methods/skip.js +0 -19
  891. package/claw/node_modules/bytebuffer/src/methods/slice.js +0 -18
  892. package/claw/node_modules/bytebuffer/src/methods/static/accessor.js +0 -13
  893. package/claw/node_modules/bytebuffer/src/methods/static/allocate.js +0 -14
  894. package/claw/node_modules/bytebuffer/src/methods/static/concat.js +0 -55
  895. package/claw/node_modules/bytebuffer/src/methods/static/isByteBuffer.js +0 -9
  896. package/claw/node_modules/bytebuffer/src/methods/static/type.js +0 -11
  897. package/claw/node_modules/bytebuffer/src/methods/static/wrap.js +0 -125
  898. package/claw/node_modules/bytebuffer/src/methods/toBuffer.js +0 -77
  899. package/claw/node_modules/bytebuffer/src/methods/toString.js +0 -43
  900. package/claw/node_modules/bytebuffer/src/types/bytes/bitset.js +0 -89
  901. package/claw/node_modules/bytebuffer/src/types/bytes/bytes.js +0 -34
  902. package/claw/node_modules/bytebuffer/src/types/floats/float32.js +0 -81
  903. package/claw/node_modules/bytebuffer/src/types/floats/float64.js +0 -77
  904. package/claw/node_modules/bytebuffer/src/types/floats/ieee754.js +0 -130
  905. package/claw/node_modules/bytebuffer/src/types/ints/int16.js +0 -167
  906. package/claw/node_modules/bytebuffer/src/types/ints/int32.js +0 -125
  907. package/claw/node_modules/bytebuffer/src/types/ints/int64.js +0 -194
  908. package/claw/node_modules/bytebuffer/src/types/ints/int8.js +0 -137
  909. package/claw/node_modules/bytebuffer/src/types/strings/cstring.js +0 -110
  910. package/claw/node_modules/bytebuffer/src/types/strings/istring.js +0 -81
  911. package/claw/node_modules/bytebuffer/src/types/strings/utf8string.js +0 -214
  912. package/claw/node_modules/bytebuffer/src/types/strings/vstring.js +0 -78
  913. package/claw/node_modules/bytebuffer/src/types/varints/varint32.js +0 -164
  914. package/claw/node_modules/bytebuffer/src/types/varints/varint64.js +0 -208
  915. package/claw/node_modules/bytebuffer/src/wrap-node.js +0 -50
  916. package/claw/node_modules/bytebuffer/src/wrap.js +0 -43
  917. package/claw/node_modules/bytebuffer/tests/bench.js +0 -99
  918. package/claw/node_modules/bytebuffer/tests/suite.js +0 -1005
  919. package/claw/node_modules/call-bind/.eslintignore +0 -1
  920. package/claw/node_modules/call-bind/.eslintrc +0 -16
  921. package/claw/node_modules/call-bind/.github/FUNDING.yml +0 -12
  922. package/claw/node_modules/call-bind/.nycrc +0 -9
  923. package/claw/node_modules/call-bind/CHANGELOG.md +0 -106
  924. package/claw/node_modules/call-bind/LICENSE +0 -21
  925. package/claw/node_modules/call-bind/README.md +0 -64
  926. package/claw/node_modules/call-bind/callBound.js +0 -15
  927. package/claw/node_modules/call-bind/index.js +0 -24
  928. package/claw/node_modules/call-bind/package.json +0 -93
  929. package/claw/node_modules/call-bind/test/callBound.js +0 -54
  930. package/claw/node_modules/call-bind/test/index.js +0 -74
  931. package/claw/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  932. package/claw/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  933. package/claw/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  934. package/claw/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  935. package/claw/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  936. package/claw/node_modules/call-bind-apply-helpers/README.md +0 -62
  937. package/claw/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  938. package/claw/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  939. package/claw/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  940. package/claw/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  941. package/claw/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  942. package/claw/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  943. package/claw/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  944. package/claw/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  945. package/claw/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  946. package/claw/node_modules/call-bind-apply-helpers/index.js +0 -15
  947. package/claw/node_modules/call-bind-apply-helpers/package.json +0 -85
  948. package/claw/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  949. package/claw/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  950. package/claw/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  951. package/claw/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  952. package/claw/node_modules/call-bound/.eslintrc +0 -13
  953. package/claw/node_modules/call-bound/.github/FUNDING.yml +0 -12
  954. package/claw/node_modules/call-bound/.nycrc +0 -9
  955. package/claw/node_modules/call-bound/CHANGELOG.md +0 -42
  956. package/claw/node_modules/call-bound/LICENSE +0 -21
  957. package/claw/node_modules/call-bound/README.md +0 -53
  958. package/claw/node_modules/call-bound/index.d.ts +0 -94
  959. package/claw/node_modules/call-bound/index.js +0 -19
  960. package/claw/node_modules/call-bound/package.json +0 -99
  961. package/claw/node_modules/call-bound/test/index.js +0 -61
  962. package/claw/node_modules/call-bound/tsconfig.json +0 -10
  963. package/claw/node_modules/cipher-base/.eslintrc +0 -26
  964. package/claw/node_modules/cipher-base/.github/FUNDING.yml +0 -12
  965. package/claw/node_modules/cipher-base/CHANGELOG.md +0 -73
  966. package/claw/node_modules/cipher-base/LICENSE +0 -21
  967. package/claw/node_modules/cipher-base/README.md +0 -17
  968. package/claw/node_modules/cipher-base/index.js +0 -103
  969. package/claw/node_modules/cipher-base/package.json +0 -63
  970. package/claw/node_modules/cipher-base/test/index.js +0 -221
  971. package/claw/node_modules/core-util-is/LICENSE +0 -19
  972. package/claw/node_modules/core-util-is/README.md +0 -3
  973. package/claw/node_modules/core-util-is/lib/util.js +0 -107
  974. package/claw/node_modules/core-util-is/package.json +0 -38
  975. package/claw/node_modules/create-hash/.travis.yml +0 -17
  976. package/claw/node_modules/create-hash/LICENSE +0 -21
  977. package/claw/node_modules/create-hash/README.md +0 -19
  978. package/claw/node_modules/create-hash/browser.js +0 -30
  979. package/claw/node_modules/create-hash/index.js +0 -1
  980. package/claw/node_modules/create-hash/md5.js +0 -5
  981. package/claw/node_modules/create-hash/package.json +0 -39
  982. package/claw/node_modules/create-hash/test.js +0 -41
  983. package/claw/node_modules/create-hmac/LICENSE +0 -21
  984. package/claw/node_modules/create-hmac/README.md +0 -20
  985. package/claw/node_modules/create-hmac/browser.js +0 -62
  986. package/claw/node_modules/create-hmac/index.js +0 -1
  987. package/claw/node_modules/create-hmac/legacy.js +0 -46
  988. package/claw/node_modules/create-hmac/package.json +0 -45
  989. package/claw/node_modules/crypto-js/CONTRIBUTING.md +0 -28
  990. package/claw/node_modules/crypto-js/LICENSE +0 -24
  991. package/claw/node_modules/crypto-js/README.md +0 -241
  992. package/claw/node_modules/crypto-js/aes.js +0 -232
  993. package/claw/node_modules/crypto-js/bower.json +0 -35
  994. package/claw/node_modules/crypto-js/cipher-core.js +0 -880
  995. package/claw/node_modules/crypto-js/core.js +0 -760
  996. package/claw/node_modules/crypto-js/crypto-js.js +0 -5988
  997. package/claw/node_modules/crypto-js/docs/QuickStartGuide.wiki +0 -470
  998. package/claw/node_modules/crypto-js/enc-base64.js +0 -135
  999. package/claw/node_modules/crypto-js/enc-hex.js +0 -18
  1000. package/claw/node_modules/crypto-js/enc-latin1.js +0 -18
  1001. package/claw/node_modules/crypto-js/enc-utf16.js +0 -149
  1002. package/claw/node_modules/crypto-js/enc-utf8.js +0 -18
  1003. package/claw/node_modules/crypto-js/evpkdf.js +0 -132
  1004. package/claw/node_modules/crypto-js/format-hex.js +0 -66
  1005. package/claw/node_modules/crypto-js/format-openssl.js +0 -18
  1006. package/claw/node_modules/crypto-js/hmac-md5.js +0 -18
  1007. package/claw/node_modules/crypto-js/hmac-ripemd160.js +0 -18
  1008. package/claw/node_modules/crypto-js/hmac-sha1.js +0 -18
  1009. package/claw/node_modules/crypto-js/hmac-sha224.js +0 -18
  1010. package/claw/node_modules/crypto-js/hmac-sha256.js +0 -18
  1011. package/claw/node_modules/crypto-js/hmac-sha3.js +0 -18
  1012. package/claw/node_modules/crypto-js/hmac-sha384.js +0 -18
  1013. package/claw/node_modules/crypto-js/hmac-sha512.js +0 -18
  1014. package/claw/node_modules/crypto-js/hmac.js +0 -143
  1015. package/claw/node_modules/crypto-js/index.js +0 -18
  1016. package/claw/node_modules/crypto-js/lib-typedarrays.js +0 -76
  1017. package/claw/node_modules/crypto-js/md5.js +0 -268
  1018. package/claw/node_modules/crypto-js/mode-cfb.js +0 -78
  1019. package/claw/node_modules/crypto-js/mode-ctr-gladman.js +0 -116
  1020. package/claw/node_modules/crypto-js/mode-ctr.js +0 -58
  1021. package/claw/node_modules/crypto-js/mode-ecb.js +0 -40
  1022. package/claw/node_modules/crypto-js/mode-ofb.js +0 -54
  1023. package/claw/node_modules/crypto-js/package.json +0 -38
  1024. package/claw/node_modules/crypto-js/pad-ansix923.js +0 -49
  1025. package/claw/node_modules/crypto-js/pad-iso10126.js +0 -44
  1026. package/claw/node_modules/crypto-js/pad-iso97971.js +0 -40
  1027. package/claw/node_modules/crypto-js/pad-nopadding.js +0 -30
  1028. package/claw/node_modules/crypto-js/pad-pkcs7.js +0 -18
  1029. package/claw/node_modules/crypto-js/pad-zeropadding.js +0 -45
  1030. package/claw/node_modules/crypto-js/pbkdf2.js +0 -145
  1031. package/claw/node_modules/crypto-js/rabbit-legacy.js +0 -190
  1032. package/claw/node_modules/crypto-js/rabbit.js +0 -192
  1033. package/claw/node_modules/crypto-js/rc4.js +0 -139
  1034. package/claw/node_modules/crypto-js/ripemd160.js +0 -267
  1035. package/claw/node_modules/crypto-js/sha1.js +0 -150
  1036. package/claw/node_modules/crypto-js/sha224.js +0 -80
  1037. package/claw/node_modules/crypto-js/sha256.js +0 -199
  1038. package/claw/node_modules/crypto-js/sha3.js +0 -323
  1039. package/claw/node_modules/crypto-js/sha384.js +0 -83
  1040. package/claw/node_modules/crypto-js/sha512.js +0 -323
  1041. package/claw/node_modules/crypto-js/tripledes.js +0 -770
  1042. package/claw/node_modules/crypto-js/x64-core.js +0 -304
  1043. package/claw/node_modules/deep-equal/.editorconfig +0 -20
  1044. package/claw/node_modules/deep-equal/.eslintrc +0 -28
  1045. package/claw/node_modules/deep-equal/.nycrc +0 -17
  1046. package/claw/node_modules/deep-equal/.travis.yml +0 -12
  1047. package/claw/node_modules/deep-equal/CHANGELOG.md +0 -320
  1048. package/claw/node_modules/deep-equal/LICENSE +0 -21
  1049. package/claw/node_modules/deep-equal/assert.js +0 -3
  1050. package/claw/node_modules/deep-equal/example/cmp.js +0 -11
  1051. package/claw/node_modules/deep-equal/index.js +0 -112
  1052. package/claw/node_modules/deep-equal/lib/is_arguments.js +0 -1
  1053. package/claw/node_modules/deep-equal/lib/keys.js +0 -1
  1054. package/claw/node_modules/deep-equal/package.json +0 -109
  1055. package/claw/node_modules/deep-equal/readme.markdown +0 -73
  1056. package/claw/node_modules/deep-equal/test/_tape.js +0 -42
  1057. package/claw/node_modules/deep-equal/test/cmp.js +0 -1343
  1058. package/claw/node_modules/define-data-property/.eslintrc +0 -24
  1059. package/claw/node_modules/define-data-property/.github/FUNDING.yml +0 -12
  1060. package/claw/node_modules/define-data-property/.nycrc +0 -13
  1061. package/claw/node_modules/define-data-property/CHANGELOG.md +0 -70
  1062. package/claw/node_modules/define-data-property/LICENSE +0 -21
  1063. package/claw/node_modules/define-data-property/README.md +0 -67
  1064. package/claw/node_modules/define-data-property/index.d.ts +0 -12
  1065. package/claw/node_modules/define-data-property/index.js +0 -56
  1066. package/claw/node_modules/define-data-property/package.json +0 -106
  1067. package/claw/node_modules/define-data-property/test/index.js +0 -392
  1068. package/claw/node_modules/define-data-property/tsconfig.json +0 -59
  1069. package/claw/node_modules/define-properties/.editorconfig +0 -13
  1070. package/claw/node_modules/define-properties/.eslintrc +0 -19
  1071. package/claw/node_modules/define-properties/.github/FUNDING.yml +0 -12
  1072. package/claw/node_modules/define-properties/.nycrc +0 -9
  1073. package/claw/node_modules/define-properties/CHANGELOG.md +0 -91
  1074. package/claw/node_modules/define-properties/LICENSE +0 -21
  1075. package/claw/node_modules/define-properties/README.md +0 -84
  1076. package/claw/node_modules/define-properties/index.js +0 -47
  1077. package/claw/node_modules/define-properties/package.json +0 -88
  1078. package/claw/node_modules/dunder-proto/.eslintrc +0 -5
  1079. package/claw/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  1080. package/claw/node_modules/dunder-proto/.nycrc +0 -13
  1081. package/claw/node_modules/dunder-proto/CHANGELOG.md +0 -24
  1082. package/claw/node_modules/dunder-proto/LICENSE +0 -21
  1083. package/claw/node_modules/dunder-proto/README.md +0 -54
  1084. package/claw/node_modules/dunder-proto/get.d.ts +0 -5
  1085. package/claw/node_modules/dunder-proto/get.js +0 -30
  1086. package/claw/node_modules/dunder-proto/package.json +0 -76
  1087. package/claw/node_modules/dunder-proto/set.d.ts +0 -5
  1088. package/claw/node_modules/dunder-proto/set.js +0 -35
  1089. package/claw/node_modules/dunder-proto/test/get.js +0 -34
  1090. package/claw/node_modules/dunder-proto/test/index.js +0 -4
  1091. package/claw/node_modules/dunder-proto/test/set.js +0 -50
  1092. package/claw/node_modules/dunder-proto/tsconfig.json +0 -9
  1093. package/claw/node_modules/ecurve/.min-wd +0 -7
  1094. package/claw/node_modules/ecurve/.travis.yml +0 -14
  1095. package/claw/node_modules/ecurve/CHANGELOG.md +0 -154
  1096. package/claw/node_modules/ecurve/README.md +0 -11
  1097. package/claw/node_modules/ecurve/lib/curve.js +0 -77
  1098. package/claw/node_modules/ecurve/lib/curves.json +0 -65
  1099. package/claw/node_modules/ecurve/lib/index.js +0 -10
  1100. package/claw/node_modules/ecurve/lib/names.js +0 -21
  1101. package/claw/node_modules/ecurve/lib/point.js +0 -244
  1102. package/claw/node_modules/ecurve/package.json +0 -32
  1103. package/claw/node_modules/es-define-property/.eslintrc +0 -13
  1104. package/claw/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  1105. package/claw/node_modules/es-define-property/.nycrc +0 -9
  1106. package/claw/node_modules/es-define-property/CHANGELOG.md +0 -29
  1107. package/claw/node_modules/es-define-property/LICENSE +0 -21
  1108. package/claw/node_modules/es-define-property/README.md +0 -49
  1109. package/claw/node_modules/es-define-property/index.d.ts +0 -3
  1110. package/claw/node_modules/es-define-property/index.js +0 -14
  1111. package/claw/node_modules/es-define-property/package.json +0 -81
  1112. package/claw/node_modules/es-define-property/test/index.js +0 -56
  1113. package/claw/node_modules/es-define-property/tsconfig.json +0 -10
  1114. package/claw/node_modules/es-errors/.eslintrc +0 -5
  1115. package/claw/node_modules/es-errors/.github/FUNDING.yml +0 -12
  1116. package/claw/node_modules/es-errors/CHANGELOG.md +0 -40
  1117. package/claw/node_modules/es-errors/LICENSE +0 -21
  1118. package/claw/node_modules/es-errors/README.md +0 -55
  1119. package/claw/node_modules/es-errors/eval.d.ts +0 -3
  1120. package/claw/node_modules/es-errors/eval.js +0 -4
  1121. package/claw/node_modules/es-errors/index.d.ts +0 -3
  1122. package/claw/node_modules/es-errors/index.js +0 -4
  1123. package/claw/node_modules/es-errors/package.json +0 -80
  1124. package/claw/node_modules/es-errors/range.d.ts +0 -3
  1125. package/claw/node_modules/es-errors/range.js +0 -4
  1126. package/claw/node_modules/es-errors/ref.d.ts +0 -3
  1127. package/claw/node_modules/es-errors/ref.js +0 -4
  1128. package/claw/node_modules/es-errors/syntax.d.ts +0 -3
  1129. package/claw/node_modules/es-errors/syntax.js +0 -4
  1130. package/claw/node_modules/es-errors/test/index.js +0 -19
  1131. package/claw/node_modules/es-errors/tsconfig.json +0 -49
  1132. package/claw/node_modules/es-errors/type.d.ts +0 -3
  1133. package/claw/node_modules/es-errors/type.js +0 -4
  1134. package/claw/node_modules/es-errors/uri.d.ts +0 -3
  1135. package/claw/node_modules/es-errors/uri.js +0 -4
  1136. package/claw/node_modules/es-object-atoms/.eslintrc +0 -16
  1137. package/claw/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  1138. package/claw/node_modules/es-object-atoms/CHANGELOG.md +0 -37
  1139. package/claw/node_modules/es-object-atoms/LICENSE +0 -21
  1140. package/claw/node_modules/es-object-atoms/README.md +0 -63
  1141. package/claw/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  1142. package/claw/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  1143. package/claw/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  1144. package/claw/node_modules/es-object-atoms/ToObject.js +0 -10
  1145. package/claw/node_modules/es-object-atoms/index.d.ts +0 -3
  1146. package/claw/node_modules/es-object-atoms/index.js +0 -4
  1147. package/claw/node_modules/es-object-atoms/isObject.d.ts +0 -3
  1148. package/claw/node_modules/es-object-atoms/isObject.js +0 -6
  1149. package/claw/node_modules/es-object-atoms/package.json +0 -80
  1150. package/claw/node_modules/es-object-atoms/test/index.js +0 -38
  1151. package/claw/node_modules/es-object-atoms/tsconfig.json +0 -6
  1152. package/claw/node_modules/for-each/.editorconfig +0 -20
  1153. package/claw/node_modules/for-each/.eslintrc +0 -30
  1154. package/claw/node_modules/for-each/.github/FUNDING.yml +0 -12
  1155. package/claw/node_modules/for-each/.github/SECURITY.md +0 -3
  1156. package/claw/node_modules/for-each/.nycrc +0 -8
  1157. package/claw/node_modules/for-each/CHANGELOG.md +0 -107
  1158. package/claw/node_modules/for-each/LICENSE +0 -22
  1159. package/claw/node_modules/for-each/README.md +0 -39
  1160. package/claw/node_modules/for-each/index.d.ts +0 -35
  1161. package/claw/node_modules/for-each/index.js +0 -69
  1162. package/claw/node_modules/for-each/package.json +0 -76
  1163. package/claw/node_modules/for-each/test/test.js +0 -224
  1164. package/claw/node_modules/for-each/tsconfig.json +0 -8
  1165. package/claw/node_modules/function-bind/.eslintrc +0 -21
  1166. package/claw/node_modules/function-bind/.github/FUNDING.yml +0 -12
  1167. package/claw/node_modules/function-bind/.github/SECURITY.md +0 -3
  1168. package/claw/node_modules/function-bind/.nycrc +0 -13
  1169. package/claw/node_modules/function-bind/CHANGELOG.md +0 -136
  1170. package/claw/node_modules/function-bind/LICENSE +0 -20
  1171. package/claw/node_modules/function-bind/README.md +0 -46
  1172. package/claw/node_modules/function-bind/implementation.js +0 -84
  1173. package/claw/node_modules/function-bind/index.js +0 -5
  1174. package/claw/node_modules/function-bind/package.json +0 -87
  1175. package/claw/node_modules/function-bind/test/.eslintrc +0 -9
  1176. package/claw/node_modules/function-bind/test/index.js +0 -252
  1177. package/claw/node_modules/functions-have-names/.editorconfig +0 -20
  1178. package/claw/node_modules/functions-have-names/.eslintrc +0 -19
  1179. package/claw/node_modules/functions-have-names/.github/FUNDING.yml +0 -12
  1180. package/claw/node_modules/functions-have-names/.nycrc +0 -9
  1181. package/claw/node_modules/functions-have-names/CHANGELOG.md +0 -89
  1182. package/claw/node_modules/functions-have-names/LICENSE +0 -21
  1183. package/claw/node_modules/functions-have-names/README.md +0 -40
  1184. package/claw/node_modules/functions-have-names/index.js +0 -31
  1185. package/claw/node_modules/functions-have-names/package.json +0 -55
  1186. package/claw/node_modules/functions-have-names/test/index.js +0 -65
  1187. package/claw/node_modules/get-intrinsic/.eslintrc +0 -42
  1188. package/claw/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  1189. package/claw/node_modules/get-intrinsic/.nycrc +0 -9
  1190. package/claw/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  1191. package/claw/node_modules/get-intrinsic/LICENSE +0 -21
  1192. package/claw/node_modules/get-intrinsic/README.md +0 -71
  1193. package/claw/node_modules/get-intrinsic/index.js +0 -378
  1194. package/claw/node_modules/get-intrinsic/package.json +0 -97
  1195. package/claw/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  1196. package/claw/node_modules/get-proto/.eslintrc +0 -10
  1197. package/claw/node_modules/get-proto/.github/FUNDING.yml +0 -12
  1198. package/claw/node_modules/get-proto/.nycrc +0 -9
  1199. package/claw/node_modules/get-proto/CHANGELOG.md +0 -21
  1200. package/claw/node_modules/get-proto/LICENSE +0 -21
  1201. package/claw/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  1202. package/claw/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  1203. package/claw/node_modules/get-proto/README.md +0 -50
  1204. package/claw/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  1205. package/claw/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  1206. package/claw/node_modules/get-proto/index.d.ts +0 -5
  1207. package/claw/node_modules/get-proto/index.js +0 -27
  1208. package/claw/node_modules/get-proto/package.json +0 -81
  1209. package/claw/node_modules/get-proto/test/index.js +0 -68
  1210. package/claw/node_modules/get-proto/tsconfig.json +0 -9
  1211. package/claw/node_modules/gopd/.eslintrc +0 -16
  1212. package/claw/node_modules/gopd/.github/FUNDING.yml +0 -12
  1213. package/claw/node_modules/gopd/CHANGELOG.md +0 -45
  1214. package/claw/node_modules/gopd/LICENSE +0 -21
  1215. package/claw/node_modules/gopd/README.md +0 -40
  1216. package/claw/node_modules/gopd/gOPD.d.ts +0 -1
  1217. package/claw/node_modules/gopd/gOPD.js +0 -4
  1218. package/claw/node_modules/gopd/index.d.ts +0 -5
  1219. package/claw/node_modules/gopd/index.js +0 -15
  1220. package/claw/node_modules/gopd/package.json +0 -77
  1221. package/claw/node_modules/gopd/test/index.js +0 -36
  1222. package/claw/node_modules/gopd/tsconfig.json +0 -9
  1223. package/claw/node_modules/has-property-descriptors/.eslintrc +0 -13
  1224. package/claw/node_modules/has-property-descriptors/.github/FUNDING.yml +0 -12
  1225. package/claw/node_modules/has-property-descriptors/.nycrc +0 -9
  1226. package/claw/node_modules/has-property-descriptors/CHANGELOG.md +0 -35
  1227. package/claw/node_modules/has-property-descriptors/LICENSE +0 -21
  1228. package/claw/node_modules/has-property-descriptors/README.md +0 -43
  1229. package/claw/node_modules/has-property-descriptors/index.js +0 -22
  1230. package/claw/node_modules/has-property-descriptors/package.json +0 -77
  1231. package/claw/node_modules/has-property-descriptors/test/index.js +0 -57
  1232. package/claw/node_modules/has-symbols/.eslintrc +0 -11
  1233. package/claw/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  1234. package/claw/node_modules/has-symbols/.nycrc +0 -9
  1235. package/claw/node_modules/has-symbols/CHANGELOG.md +0 -91
  1236. package/claw/node_modules/has-symbols/LICENSE +0 -21
  1237. package/claw/node_modules/has-symbols/README.md +0 -46
  1238. package/claw/node_modules/has-symbols/index.d.ts +0 -3
  1239. package/claw/node_modules/has-symbols/index.js +0 -14
  1240. package/claw/node_modules/has-symbols/package.json +0 -111
  1241. package/claw/node_modules/has-symbols/shams.d.ts +0 -3
  1242. package/claw/node_modules/has-symbols/shams.js +0 -45
  1243. package/claw/node_modules/has-symbols/test/index.js +0 -22
  1244. package/claw/node_modules/has-symbols/test/shams/core-js.js +0 -29
  1245. package/claw/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  1246. package/claw/node_modules/has-symbols/test/tests.js +0 -58
  1247. package/claw/node_modules/has-symbols/tsconfig.json +0 -10
  1248. package/claw/node_modules/has-tostringtag/.eslintrc +0 -5
  1249. package/claw/node_modules/has-tostringtag/.github/FUNDING.yml +0 -12
  1250. package/claw/node_modules/has-tostringtag/.nycrc +0 -13
  1251. package/claw/node_modules/has-tostringtag/CHANGELOG.md +0 -42
  1252. package/claw/node_modules/has-tostringtag/LICENSE +0 -21
  1253. package/claw/node_modules/has-tostringtag/README.md +0 -46
  1254. package/claw/node_modules/has-tostringtag/index.d.ts +0 -3
  1255. package/claw/node_modules/has-tostringtag/index.js +0 -8
  1256. package/claw/node_modules/has-tostringtag/package.json +0 -108
  1257. package/claw/node_modules/has-tostringtag/shams.d.ts +0 -3
  1258. package/claw/node_modules/has-tostringtag/shams.js +0 -8
  1259. package/claw/node_modules/has-tostringtag/test/index.js +0 -21
  1260. package/claw/node_modules/has-tostringtag/test/shams/core-js.js +0 -31
  1261. package/claw/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +0 -30
  1262. package/claw/node_modules/has-tostringtag/test/tests.js +0 -15
  1263. package/claw/node_modules/has-tostringtag/tsconfig.json +0 -49
  1264. package/claw/node_modules/hash-base/.github/FUNDING.yml +0 -12
  1265. package/claw/node_modules/hash-base/CHANGELOG.md +0 -166
  1266. package/claw/node_modules/hash-base/LICENSE +0 -21
  1267. package/claw/node_modules/hash-base/README.md +0 -48
  1268. package/claw/node_modules/hash-base/index.js +0 -109
  1269. package/claw/node_modules/hash-base/package.json +0 -64
  1270. package/claw/node_modules/hash-base/to-buffer.js +0 -20
  1271. package/claw/node_modules/hasown/.eslintrc +0 -5
  1272. package/claw/node_modules/hasown/.github/FUNDING.yml +0 -12
  1273. package/claw/node_modules/hasown/.nycrc +0 -13
  1274. package/claw/node_modules/hasown/CHANGELOG.md +0 -40
  1275. package/claw/node_modules/hasown/LICENSE +0 -21
  1276. package/claw/node_modules/hasown/README.md +0 -40
  1277. package/claw/node_modules/hasown/index.d.ts +0 -3
  1278. package/claw/node_modules/hasown/index.js +0 -8
  1279. package/claw/node_modules/hasown/package.json +0 -92
  1280. package/claw/node_modules/hasown/tsconfig.json +0 -6
  1281. package/claw/node_modules/inherits/LICENSE +0 -16
  1282. package/claw/node_modules/inherits/README.md +0 -42
  1283. package/claw/node_modules/inherits/inherits.js +0 -9
  1284. package/claw/node_modules/inherits/inherits_browser.js +0 -27
  1285. package/claw/node_modules/inherits/package.json +0 -29
  1286. package/claw/node_modules/is-arguments/.editorconfig +0 -20
  1287. package/claw/node_modules/is-arguments/.eslintrc +0 -9
  1288. package/claw/node_modules/is-arguments/.github/FUNDING.yml +0 -12
  1289. package/claw/node_modules/is-arguments/.nycrc +0 -9
  1290. package/claw/node_modules/is-arguments/CHANGELOG.md +0 -201
  1291. package/claw/node_modules/is-arguments/LICENSE +0 -20
  1292. package/claw/node_modules/is-arguments/README.md +0 -47
  1293. package/claw/node_modules/is-arguments/index.d.ts +0 -6
  1294. package/claw/node_modules/is-arguments/index.js +0 -44
  1295. package/claw/node_modules/is-arguments/package.json +0 -105
  1296. package/claw/node_modules/is-arguments/test/index.js +0 -47
  1297. package/claw/node_modules/is-arguments/tsconfig.json +0 -9
  1298. package/claw/node_modules/is-callable/.editorconfig +0 -31
  1299. package/claw/node_modules/is-callable/.eslintrc +0 -10
  1300. package/claw/node_modules/is-callable/.github/FUNDING.yml +0 -12
  1301. package/claw/node_modules/is-callable/.nycrc +0 -9
  1302. package/claw/node_modules/is-callable/CHANGELOG.md +0 -158
  1303. package/claw/node_modules/is-callable/LICENSE +0 -22
  1304. package/claw/node_modules/is-callable/README.md +0 -83
  1305. package/claw/node_modules/is-callable/index.js +0 -101
  1306. package/claw/node_modules/is-callable/package.json +0 -106
  1307. package/claw/node_modules/is-callable/test/index.js +0 -244
  1308. package/claw/node_modules/is-date-object/.editorconfig +0 -20
  1309. package/claw/node_modules/is-date-object/.eslintrc +0 -9
  1310. package/claw/node_modules/is-date-object/.github/FUNDING.yml +0 -12
  1311. package/claw/node_modules/is-date-object/.nycrc +0 -10
  1312. package/claw/node_modules/is-date-object/CHANGELOG.md +0 -134
  1313. package/claw/node_modules/is-date-object/LICENSE +0 -22
  1314. package/claw/node_modules/is-date-object/README.md +0 -52
  1315. package/claw/node_modules/is-date-object/index.d.ts +0 -3
  1316. package/claw/node_modules/is-date-object/index.js +0 -27
  1317. package/claw/node_modules/is-date-object/package.json +0 -99
  1318. package/claw/node_modules/is-date-object/test/index.js +0 -38
  1319. package/claw/node_modules/is-date-object/tsconfig.json +0 -6
  1320. package/claw/node_modules/is-regex/.editorconfig +0 -23
  1321. package/claw/node_modules/is-regex/.eslintrc +0 -10
  1322. package/claw/node_modules/is-regex/.nycrc +0 -10
  1323. package/claw/node_modules/is-regex/CHANGELOG.md +0 -233
  1324. package/claw/node_modules/is-regex/LICENSE +0 -20
  1325. package/claw/node_modules/is-regex/README.md +0 -52
  1326. package/claw/node_modules/is-regex/index.d.ts +0 -3
  1327. package/claw/node_modules/is-regex/index.js +0 -69
  1328. package/claw/node_modules/is-regex/package.json +0 -104
  1329. package/claw/node_modules/is-regex/test/index.js +0 -121
  1330. package/claw/node_modules/is-regex/tsconfig.json +0 -9
  1331. package/claw/node_modules/is-typed-array/.editorconfig +0 -20
  1332. package/claw/node_modules/is-typed-array/.eslintrc +0 -13
  1333. package/claw/node_modules/is-typed-array/.github/FUNDING.yml +0 -12
  1334. package/claw/node_modules/is-typed-array/.nycrc +0 -9
  1335. package/claw/node_modules/is-typed-array/CHANGELOG.md +0 -166
  1336. package/claw/node_modules/is-typed-array/LICENSE +0 -22
  1337. package/claw/node_modules/is-typed-array/README.md +0 -70
  1338. package/claw/node_modules/is-typed-array/index.d.ts +0 -9
  1339. package/claw/node_modules/is-typed-array/index.js +0 -8
  1340. package/claw/node_modules/is-typed-array/package.json +0 -129
  1341. package/claw/node_modules/is-typed-array/test/index.js +0 -111
  1342. package/claw/node_modules/is-typed-array/tsconfig.json +0 -6
  1343. package/claw/node_modules/isarray/.travis.yml +0 -4
  1344. package/claw/node_modules/isarray/Makefile +0 -6
  1345. package/claw/node_modules/isarray/README.md +0 -60
  1346. package/claw/node_modules/isarray/component.json +0 -19
  1347. package/claw/node_modules/isarray/index.js +0 -5
  1348. package/claw/node_modules/isarray/package.json +0 -45
  1349. package/claw/node_modules/isarray/test.js +0 -20
  1350. package/claw/node_modules/isomorphic-ws/LICENSE +0 -21
  1351. package/claw/node_modules/isomorphic-ws/README.md +0 -58
  1352. package/claw/node_modules/isomorphic-ws/browser.js +0 -17
  1353. package/claw/node_modules/isomorphic-ws/index.d.ts +0 -8
  1354. package/claw/node_modules/isomorphic-ws/node.js +0 -3
  1355. package/claw/node_modules/isomorphic-ws/package.json +0 -34
  1356. package/claw/node_modules/long/.travis.yml +0 -5
  1357. package/claw/node_modules/long/LICENSE +0 -202
  1358. package/claw/node_modules/long/README.md +0 -513
  1359. package/claw/node_modules/long/bower.json +0 -9
  1360. package/claw/node_modules/long/dist/README.md +0 -16
  1361. package/claw/node_modules/long/dist/long.js +0 -1209
  1362. package/claw/node_modules/long/dist/long.min.js +0 -20
  1363. package/claw/node_modules/long/dist/long.min.js.gz +0 -0
  1364. package/claw/node_modules/long/dist/long.min.map +0 -8
  1365. package/claw/node_modules/long/doco/INDEX.md +0 -6
  1366. package/claw/node_modules/long/doco/Long.md +0 -473
  1367. package/claw/node_modules/long/donate.png +0 -0
  1368. package/claw/node_modules/long/externs/long.js +0 -416
  1369. package/claw/node_modules/long/index.js +0 -1
  1370. package/claw/node_modules/long/jsdoc.json +0 -13
  1371. package/claw/node_modules/long/long.png +0 -0
  1372. package/claw/node_modules/long/package.json +0 -33
  1373. package/claw/node_modules/long/scripts/build.js +0 -28
  1374. package/claw/node_modules/long/src/bower.json +0 -9
  1375. package/claw/node_modules/long/src/long.js +0 -1172
  1376. package/claw/node_modules/long/src/wrap.js +0 -38
  1377. package/claw/node_modules/long/tests/goog.math.long.js +0 -807
  1378. package/claw/node_modules/long/tests/suite.js +0 -195
  1379. package/claw/node_modules/lzma/.travis.yml +0 -9
  1380. package/claw/node_modules/lzma/LICENSE +0 -20
  1381. package/claw/node_modules/lzma/THANKS +0 -7
  1382. package/claw/node_modules/lzma/bin/lzma.js +0 -362
  1383. package/claw/node_modules/lzma/index.js +0 -19
  1384. package/claw/node_modules/lzma/package.json +0 -30
  1385. package/claw/node_modules/lzma/readme.md +0 -149
  1386. package/claw/node_modules/lzma/src/lzma-c-min.js +0 -1
  1387. package/claw/node_modules/lzma/src/lzma-c.js +0 -2021
  1388. package/claw/node_modules/lzma/src/lzma-d-min.js +0 -1
  1389. package/claw/node_modules/lzma/src/lzma-d.js +0 -878
  1390. package/claw/node_modules/lzma/src/lzma-min.js +0 -2
  1391. package/claw/node_modules/lzma/src/lzma.js +0 -153
  1392. package/claw/node_modules/lzma/src/lzma_worker-min.js +0 -2
  1393. package/claw/node_modules/lzma/src/lzma_worker.js +0 -2668
  1394. package/claw/node_modules/math-intrinsics/.eslintrc +0 -16
  1395. package/claw/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  1396. package/claw/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  1397. package/claw/node_modules/math-intrinsics/LICENSE +0 -21
  1398. package/claw/node_modules/math-intrinsics/README.md +0 -50
  1399. package/claw/node_modules/math-intrinsics/abs.d.ts +0 -1
  1400. package/claw/node_modules/math-intrinsics/abs.js +0 -4
  1401. package/claw/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  1402. package/claw/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  1403. package/claw/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  1404. package/claw/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  1405. package/claw/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  1406. package/claw/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  1407. package/claw/node_modules/math-intrinsics/floor.d.ts +0 -1
  1408. package/claw/node_modules/math-intrinsics/floor.js +0 -4
  1409. package/claw/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  1410. package/claw/node_modules/math-intrinsics/isFinite.js +0 -12
  1411. package/claw/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  1412. package/claw/node_modules/math-intrinsics/isInteger.js +0 -16
  1413. package/claw/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  1414. package/claw/node_modules/math-intrinsics/isNaN.js +0 -6
  1415. package/claw/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  1416. package/claw/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  1417. package/claw/node_modules/math-intrinsics/max.d.ts +0 -1
  1418. package/claw/node_modules/math-intrinsics/max.js +0 -4
  1419. package/claw/node_modules/math-intrinsics/min.d.ts +0 -1
  1420. package/claw/node_modules/math-intrinsics/min.js +0 -4
  1421. package/claw/node_modules/math-intrinsics/mod.d.ts +0 -3
  1422. package/claw/node_modules/math-intrinsics/mod.js +0 -9
  1423. package/claw/node_modules/math-intrinsics/package.json +0 -86
  1424. package/claw/node_modules/math-intrinsics/pow.d.ts +0 -1
  1425. package/claw/node_modules/math-intrinsics/pow.js +0 -4
  1426. package/claw/node_modules/math-intrinsics/round.d.ts +0 -1
  1427. package/claw/node_modules/math-intrinsics/round.js +0 -4
  1428. package/claw/node_modules/math-intrinsics/sign.d.ts +0 -3
  1429. package/claw/node_modules/math-intrinsics/sign.js +0 -11
  1430. package/claw/node_modules/math-intrinsics/test/index.js +0 -192
  1431. package/claw/node_modules/math-intrinsics/tsconfig.json +0 -3
  1432. package/claw/node_modules/md5.js/LICENSE +0 -21
  1433. package/claw/node_modules/md5.js/README.md +0 -29
  1434. package/claw/node_modules/md5.js/index.js +0 -146
  1435. package/claw/node_modules/md5.js/package.json +0 -38
  1436. package/claw/node_modules/object-is/.eslintrc +0 -5
  1437. package/claw/node_modules/object-is/.nycrc +0 -9
  1438. package/claw/node_modules/object-is/CHANGELOG.md +0 -175
  1439. package/claw/node_modules/object-is/LICENSE +0 -20
  1440. package/claw/node_modules/object-is/README.md +0 -60
  1441. package/claw/node_modules/object-is/auto.js +0 -3
  1442. package/claw/node_modules/object-is/implementation.js +0 -19
  1443. package/claw/node_modules/object-is/index.js +0 -18
  1444. package/claw/node_modules/object-is/package.json +0 -96
  1445. package/claw/node_modules/object-is/polyfill.js +0 -7
  1446. package/claw/node_modules/object-is/shim.js +0 -14
  1447. package/claw/node_modules/object-is/test/implementation.js +0 -12
  1448. package/claw/node_modules/object-is/test/index.js +0 -12
  1449. package/claw/node_modules/object-is/test/shimmed.js +0 -28
  1450. package/claw/node_modules/object-is/test/tests.js +0 -57
  1451. package/claw/node_modules/object-keys/.editorconfig +0 -13
  1452. package/claw/node_modules/object-keys/.eslintrc +0 -17
  1453. package/claw/node_modules/object-keys/.travis.yml +0 -277
  1454. package/claw/node_modules/object-keys/CHANGELOG.md +0 -232
  1455. package/claw/node_modules/object-keys/LICENSE +0 -21
  1456. package/claw/node_modules/object-keys/README.md +0 -76
  1457. package/claw/node_modules/object-keys/implementation.js +0 -122
  1458. package/claw/node_modules/object-keys/index.js +0 -32
  1459. package/claw/node_modules/object-keys/isArguments.js +0 -17
  1460. package/claw/node_modules/object-keys/package.json +0 -88
  1461. package/claw/node_modules/object-keys/test/index.js +0 -5
  1462. package/claw/node_modules/object.assign/.editorconfig +0 -20
  1463. package/claw/node_modules/object.assign/.eslintrc +0 -28
  1464. package/claw/node_modules/object.assign/.github/FUNDING.yml +0 -12
  1465. package/claw/node_modules/object.assign/.nycrc +0 -9
  1466. package/claw/node_modules/object.assign/CHANGELOG.md +0 -246
  1467. package/claw/node_modules/object.assign/LICENSE +0 -21
  1468. package/claw/node_modules/object.assign/README.md +0 -136
  1469. package/claw/node_modules/object.assign/auto.js +0 -3
  1470. package/claw/node_modules/object.assign/dist/browser.js +0 -1304
  1471. package/claw/node_modules/object.assign/hasSymbols.js +0 -43
  1472. package/claw/node_modules/object.assign/implementation.js +0 -46
  1473. package/claw/node_modules/object.assign/index.js +0 -22
  1474. package/claw/node_modules/object.assign/package.json +0 -96
  1475. package/claw/node_modules/object.assign/polyfill.js +0 -55
  1476. package/claw/node_modules/object.assign/shim.js +0 -14
  1477. package/claw/node_modules/object.assign/test/implementation.js +0 -19
  1478. package/claw/node_modules/object.assign/test/index.js +0 -17
  1479. package/claw/node_modules/object.assign/test/native.js +0 -49
  1480. package/claw/node_modules/object.assign/test/ses-compat.js +0 -12
  1481. package/claw/node_modules/object.assign/test/shimmed.js +0 -52
  1482. package/claw/node_modules/object.assign/test/tests.js +0 -232
  1483. package/claw/node_modules/possible-typed-array-names/.eslintrc +0 -5
  1484. package/claw/node_modules/possible-typed-array-names/.github/FUNDING.yml +0 -12
  1485. package/claw/node_modules/possible-typed-array-names/CHANGELOG.md +0 -29
  1486. package/claw/node_modules/possible-typed-array-names/LICENSE +0 -21
  1487. package/claw/node_modules/possible-typed-array-names/README.md +0 -50
  1488. package/claw/node_modules/possible-typed-array-names/index.d.ts +0 -16
  1489. package/claw/node_modules/possible-typed-array-names/index.js +0 -17
  1490. package/claw/node_modules/possible-typed-array-names/package.json +0 -84
  1491. package/claw/node_modules/possible-typed-array-names/test/index.js +0 -19
  1492. package/claw/node_modules/possible-typed-array-names/tsconfig.json +0 -9
  1493. package/claw/node_modules/process-nextick-args/index.js +0 -45
  1494. package/claw/node_modules/process-nextick-args/license.md +0 -19
  1495. package/claw/node_modules/process-nextick-args/package.json +0 -25
  1496. package/claw/node_modules/process-nextick-args/readme.md +0 -18
  1497. package/claw/node_modules/readable-stream/.travis.yml +0 -34
  1498. package/claw/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  1499. package/claw/node_modules/readable-stream/GOVERNANCE.md +0 -136
  1500. package/claw/node_modules/readable-stream/LICENSE +0 -47
  1501. package/claw/node_modules/readable-stream/README.md +0 -58
  1502. package/claw/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  1503. package/claw/node_modules/readable-stream/duplex-browser.js +0 -1
  1504. package/claw/node_modules/readable-stream/duplex.js +0 -1
  1505. package/claw/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  1506. package/claw/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  1507. package/claw/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  1508. package/claw/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  1509. package/claw/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  1510. package/claw/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  1511. package/claw/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  1512. package/claw/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  1513. package/claw/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  1514. package/claw/node_modules/readable-stream/node_modules/safe-buffer/LICENSE +0 -21
  1515. package/claw/node_modules/readable-stream/node_modules/safe-buffer/README.md +0 -584
  1516. package/claw/node_modules/readable-stream/node_modules/safe-buffer/index.d.ts +0 -187
  1517. package/claw/node_modules/readable-stream/node_modules/safe-buffer/index.js +0 -62
  1518. package/claw/node_modules/readable-stream/node_modules/safe-buffer/package.json +0 -37
  1519. package/claw/node_modules/readable-stream/package.json +0 -52
  1520. package/claw/node_modules/readable-stream/passthrough.js +0 -1
  1521. package/claw/node_modules/readable-stream/readable-browser.js +0 -7
  1522. package/claw/node_modules/readable-stream/readable.js +0 -19
  1523. package/claw/node_modules/readable-stream/transform.js +0 -1
  1524. package/claw/node_modules/readable-stream/writable-browser.js +0 -1
  1525. package/claw/node_modules/readable-stream/writable.js +0 -8
  1526. package/claw/node_modules/regexp.prototype.flags/.editorconfig +0 -13
  1527. package/claw/node_modules/regexp.prototype.flags/.eslintrc +0 -20
  1528. package/claw/node_modules/regexp.prototype.flags/.nycrc +0 -9
  1529. package/claw/node_modules/regexp.prototype.flags/CHANGELOG.md +0 -249
  1530. package/claw/node_modules/regexp.prototype.flags/LICENSE +0 -22
  1531. package/claw/node_modules/regexp.prototype.flags/README.md +0 -55
  1532. package/claw/node_modules/regexp.prototype.flags/auto.js +0 -3
  1533. package/claw/node_modules/regexp.prototype.flags/implementation.js +0 -39
  1534. package/claw/node_modules/regexp.prototype.flags/index.js +0 -18
  1535. package/claw/node_modules/regexp.prototype.flags/package.json +0 -105
  1536. package/claw/node_modules/regexp.prototype.flags/polyfill.js +0 -39
  1537. package/claw/node_modules/regexp.prototype.flags/shim.js +0 -26
  1538. package/claw/node_modules/regexp.prototype.flags/test/builtin.js +0 -46
  1539. package/claw/node_modules/regexp.prototype.flags/test/implementation.js +0 -20
  1540. package/claw/node_modules/regexp.prototype.flags/test/index.js +0 -17
  1541. package/claw/node_modules/regexp.prototype.flags/test/shimmed.js +0 -48
  1542. package/claw/node_modules/regexp.prototype.flags/test/tests.js +0 -143
  1543. package/claw/node_modules/ripemd160/.github/FUNDING.yml +0 -12
  1544. package/claw/node_modules/ripemd160/CHANGELOG.md +0 -109
  1545. package/claw/node_modules/ripemd160/LICENSE +0 -21
  1546. package/claw/node_modules/ripemd160/README.md +0 -27
  1547. package/claw/node_modules/ripemd160/index.js +0 -167
  1548. package/claw/node_modules/ripemd160/package.json +0 -64
  1549. package/claw/node_modules/safe-buffer/LICENSE +0 -21
  1550. package/claw/node_modules/safe-buffer/README.md +0 -584
  1551. package/claw/node_modules/safe-buffer/index.d.ts +0 -187
  1552. package/claw/node_modules/safe-buffer/index.js +0 -65
  1553. package/claw/node_modules/safe-buffer/package.json +0 -51
  1554. package/claw/node_modules/secure-random/CHANGELOG.md +0 -51
  1555. package/claw/node_modules/secure-random/Makefile +0 -8
  1556. package/claw/node_modules/secure-random/README.md +0 -133
  1557. package/claw/node_modules/secure-random/lib/secure-random.js +0 -83
  1558. package/claw/node_modules/secure-random/package.json +0 -45
  1559. package/claw/node_modules/set-function-length/.eslintrc +0 -27
  1560. package/claw/node_modules/set-function-length/.github/FUNDING.yml +0 -12
  1561. package/claw/node_modules/set-function-length/.nycrc +0 -13
  1562. package/claw/node_modules/set-function-length/CHANGELOG.md +0 -70
  1563. package/claw/node_modules/set-function-length/LICENSE +0 -21
  1564. package/claw/node_modules/set-function-length/README.md +0 -56
  1565. package/claw/node_modules/set-function-length/env.d.ts +0 -9
  1566. package/claw/node_modules/set-function-length/env.js +0 -25
  1567. package/claw/node_modules/set-function-length/index.d.ts +0 -7
  1568. package/claw/node_modules/set-function-length/index.js +0 -42
  1569. package/claw/node_modules/set-function-length/package.json +0 -102
  1570. package/claw/node_modules/set-function-length/tsconfig.json +0 -9
  1571. package/claw/node_modules/set-function-name/.eslintrc +0 -21
  1572. package/claw/node_modules/set-function-name/.github/FUNDING.yml +0 -12
  1573. package/claw/node_modules/set-function-name/CHANGELOG.md +0 -48
  1574. package/claw/node_modules/set-function-name/LICENSE +0 -21
  1575. package/claw/node_modules/set-function-name/README.md +0 -61
  1576. package/claw/node_modules/set-function-name/index.d.ts +0 -5
  1577. package/claw/node_modules/set-function-name/index.js +0 -23
  1578. package/claw/node_modules/set-function-name/package.json +0 -99
  1579. package/claw/node_modules/set-function-name/tsconfig.json +0 -59
  1580. package/claw/node_modules/sha.js/.eslintrc +0 -76
  1581. package/claw/node_modules/sha.js/CHANGELOG.md +0 -423
  1582. package/claw/node_modules/sha.js/LICENSE +0 -49
  1583. package/claw/node_modules/sha.js/README.md +0 -44
  1584. package/claw/node_modules/sha.js/bin.js +0 -44
  1585. package/claw/node_modules/sha.js/hash.js +0 -84
  1586. package/claw/node_modules/sha.js/index.js +0 -19
  1587. package/claw/node_modules/sha.js/package.json +0 -58
  1588. package/claw/node_modules/sha.js/sha.js +0 -104
  1589. package/claw/node_modules/sha.js/sha1.js +0 -109
  1590. package/claw/node_modules/sha.js/sha224.js +0 -55
  1591. package/claw/node_modules/sha.js/sha256.js +0 -189
  1592. package/claw/node_modules/sha.js/sha384.js +0 -59
  1593. package/claw/node_modules/sha.js/sha512.js +0 -382
  1594. package/claw/node_modules/sha.js/test/hash.js +0 -80
  1595. package/claw/node_modules/sha.js/test/test.js +0 -138
  1596. package/claw/node_modules/sha.js/test/vectors.js +0 -72
  1597. package/claw/node_modules/string_decoder/.travis.yml +0 -50
  1598. package/claw/node_modules/string_decoder/LICENSE +0 -48
  1599. package/claw/node_modules/string_decoder/README.md +0 -47
  1600. package/claw/node_modules/string_decoder/lib/string_decoder.js +0 -296
  1601. package/claw/node_modules/string_decoder/node_modules/safe-buffer/LICENSE +0 -21
  1602. package/claw/node_modules/string_decoder/node_modules/safe-buffer/README.md +0 -584
  1603. package/claw/node_modules/string_decoder/node_modules/safe-buffer/index.d.ts +0 -187
  1604. package/claw/node_modules/string_decoder/node_modules/safe-buffer/index.js +0 -62
  1605. package/claw/node_modules/string_decoder/node_modules/safe-buffer/package.json +0 -37
  1606. package/claw/node_modules/string_decoder/package.json +0 -31
  1607. package/claw/node_modules/to-buffer/.github/FUNDING.yml +0 -12
  1608. package/claw/node_modules/to-buffer/CHANGELOG.md +0 -81
  1609. package/claw/node_modules/to-buffer/LICENSE +0 -21
  1610. package/claw/node_modules/to-buffer/README.md +0 -44
  1611. package/claw/node_modules/to-buffer/index.js +0 -109
  1612. package/claw/node_modules/to-buffer/node_modules/isarray/LICENSE +0 -21
  1613. package/claw/node_modules/to-buffer/node_modules/isarray/README.md +0 -38
  1614. package/claw/node_modules/to-buffer/node_modules/isarray/index.js +0 -5
  1615. package/claw/node_modules/to-buffer/node_modules/isarray/package.json +0 -48
  1616. package/claw/node_modules/to-buffer/package.json +0 -62
  1617. package/claw/node_modules/typed-array-buffer/.eslintrc +0 -13
  1618. package/claw/node_modules/typed-array-buffer/.github/FUNDING.yml +0 -12
  1619. package/claw/node_modules/typed-array-buffer/.nycrc +0 -13
  1620. package/claw/node_modules/typed-array-buffer/CHANGELOG.md +0 -50
  1621. package/claw/node_modules/typed-array-buffer/LICENSE +0 -21
  1622. package/claw/node_modules/typed-array-buffer/README.md +0 -42
  1623. package/claw/node_modules/typed-array-buffer/index.d.ts +0 -9
  1624. package/claw/node_modules/typed-array-buffer/index.js +0 -19
  1625. package/claw/node_modules/typed-array-buffer/package.json +0 -82
  1626. package/claw/node_modules/typed-array-buffer/test/index.js +0 -23
  1627. package/claw/node_modules/typed-array-buffer/tsconfig.json +0 -9
  1628. package/claw/node_modules/util/LICENSE +0 -18
  1629. package/claw/node_modules/util/README.md +0 -15
  1630. package/claw/node_modules/util/node_modules/inherits/LICENSE +0 -16
  1631. package/claw/node_modules/util/node_modules/inherits/README.md +0 -42
  1632. package/claw/node_modules/util/node_modules/inherits/inherits.js +0 -7
  1633. package/claw/node_modules/util/node_modules/inherits/inherits_browser.js +0 -23
  1634. package/claw/node_modules/util/node_modules/inherits/package.json +0 -29
  1635. package/claw/node_modules/util/package.json +0 -35
  1636. package/claw/node_modules/util/support/isBuffer.js +0 -3
  1637. package/claw/node_modules/util/support/isBufferBrowser.js +0 -6
  1638. package/claw/node_modules/util/util.js +0 -586
  1639. package/claw/node_modules/util-deprecate/History.md +0 -16
  1640. package/claw/node_modules/util-deprecate/LICENSE +0 -24
  1641. package/claw/node_modules/util-deprecate/README.md +0 -53
  1642. package/claw/node_modules/util-deprecate/browser.js +0 -67
  1643. package/claw/node_modules/util-deprecate/node.js +0 -6
  1644. package/claw/node_modules/util-deprecate/package.json +0 -27
  1645. package/claw/node_modules/which-typed-array/.editorconfig +0 -20
  1646. package/claw/node_modules/which-typed-array/.eslintrc +0 -10
  1647. package/claw/node_modules/which-typed-array/.github/FUNDING.yml +0 -12
  1648. package/claw/node_modules/which-typed-array/.nycrc +0 -13
  1649. package/claw/node_modules/which-typed-array/CHANGELOG.md +0 -269
  1650. package/claw/node_modules/which-typed-array/LICENSE +0 -22
  1651. package/claw/node_modules/which-typed-array/README.md +0 -70
  1652. package/claw/node_modules/which-typed-array/index.d.ts +0 -66
  1653. package/claw/node_modules/which-typed-array/index.js +0 -122
  1654. package/claw/node_modules/which-typed-array/package.json +0 -130
  1655. package/claw/node_modules/which-typed-array/test/index.js +0 -105
  1656. package/claw/node_modules/which-typed-array/tsconfig.json +0 -9
  1657. package/claw/node_modules/ws/LICENSE +0 -21
  1658. package/claw/node_modules/ws/README.md +0 -449
  1659. package/claw/node_modules/ws/browser.js +0 -8
  1660. package/claw/node_modules/ws/index.js +0 -9
  1661. package/claw/node_modules/ws/lib/buffer-util.js +0 -144
  1662. package/claw/node_modules/ws/lib/constants.js +0 -10
  1663. package/claw/node_modules/ws/lib/event-target.js +0 -170
  1664. package/claw/node_modules/ws/lib/extension.js +0 -222
  1665. package/claw/node_modules/ws/lib/permessage-deflate.js +0 -502
  1666. package/claw/node_modules/ws/lib/receiver.js +0 -492
  1667. package/claw/node_modules/ws/lib/sender.js +0 -358
  1668. package/claw/node_modules/ws/lib/validation.js +0 -30
  1669. package/claw/node_modules/ws/lib/websocket-server.js +0 -415
  1670. package/claw/node_modules/ws/lib/websocket.js +0 -895
  1671. package/claw/node_modules/ws/package.json +0 -45
  1672. package/dist/modules/logger.d.ts +0 -4
  1673. package/dist/modules/logger.d.ts.map +0 -1
  1674. package/dist/modules/logger.js +0 -5
  1675. package/dist/modules/logger.js.map +0 -1
  1676. package/dist/modules/utils/math_utils.d.ts +0 -3
  1677. package/dist/modules/utils/math_utils.d.ts.map +0 -1
  1678. package/dist/modules/utils/math_utils.js +0 -3
  1679. package/dist/modules/utils/math_utils.js.map +0 -1
@@ -0,0 +1,1718 @@
1
+
2
+ import fs from 'node:fs';
3
+ import { MARKET_ADAPTER } from '../../modules/constants.js';
4
+ import { escapeHtml, serializeJsonForScript } from '../chart_utils.js';
5
+ import { normalizeCandle } from '../math_utils.js';
6
+ import { PATHS } from '../../modules/paths.js';
7
+ import { getStorage } from '../../modules/storage/index.js';
8
+ const { readJSON } = getStorage();
9
+ import { getErrorMessage } from '../../modules/utils/errors.js';
10
+ 'use strict';
11
+
12
+
13
+ function inferBaseIntervalSeconds(candles: any[], fallback: any = 3600) {
14
+ if (!Array.isArray(candles) || candles.length < 2) return fallback;
15
+ const deltas: number[] = [];
16
+ for (let i = 1; i < candles.length; i++) {
17
+ const prev = Number(candles[i - 1]?.time);
18
+ const curr = Number(candles[i]?.time);
19
+ if (!Number.isFinite(prev) || !Number.isFinite(curr)) continue;
20
+ const d = curr - prev;
21
+ if (d > 0) deltas.push(d);
22
+ }
23
+ if (deltas.length === 0) return fallback;
24
+ deltas.sort((a: any, b: any) => a - b);
25
+ const mid = Math.floor(deltas.length / 2);
26
+ const med = deltas.length % 2 === 0 ? (deltas[mid - 1] + deltas[mid]) / 2 : deltas[mid];
27
+ return Math.max(60, Math.round(med));
28
+ }
29
+
30
+ function loadMarketProfiles(filePath: any = PATHS.PROFILES.MARKET_PROFILES_JSON) {
31
+ if (!filePath || !fs.existsSync(filePath)) return null;
32
+ try {
33
+ return readJSON(filePath);
34
+ } catch (err: any) {
35
+ console.warn(`[WARN] Failed to parse ${filePath}: ${getErrorMessage(err)}. Falling back to built-in AMA defaults.`);
36
+ return null;
37
+ }
38
+ }
39
+
40
+ function findMarketProfile(profiles: any, meta: any = {}) {
41
+ const entries = Array.isArray(profiles?.profiles) ? profiles.profiles : [];
42
+ if (!entries.length) return null;
43
+ const assetA = meta.assetA?.symbol || meta.assetA?.id || meta.assetA;
44
+ const assetB = meta.assetB?.symbol || meta.assetB?.id || meta.assetB;
45
+ const intervalSeconds = Number(meta.intervalSeconds);
46
+ return entries.find((entry: any) => {
47
+ if (!entry || typeof entry !== 'object') return false;
48
+ if (assetA && assetB) {
49
+ const matchesPair = (String(entry.assetA) === String(assetA) || String(entry.assetAId) === String(assetA))
50
+ && (String(entry.assetB) === String(assetB) || String(entry.assetBId) === String(assetB));
51
+ if (!matchesPair) return false;
52
+ } else {
53
+ return false;
54
+ }
55
+ if (Number.isFinite(intervalSeconds) && intervalSeconds > 0 && Number(entry.intervalSeconds) !== intervalSeconds) {
56
+ return false;
57
+ }
58
+ return true;
59
+ }) || null;
60
+ }
61
+
62
+ function resolveAmaDefaults({ meta, data, marketProfiles }: any = {}) {
63
+ const amaDefaultsSource = MARKET_ADAPTER.AMAS.AMA3;
64
+ const profile = findMarketProfile(marketProfiles, meta);
65
+ const profileAmaKey = profile?.defaultAma && profile.amas && profile.amas[profile.defaultAma]
66
+ ? profile.defaultAma
67
+ : null;
68
+ const profileAma = profileAmaKey ? profile.amas[profileAmaKey] : null;
69
+ const source = data?.amaDefaults || profileAma || amaDefaultsSource;
70
+ return {
71
+ erPeriod: Math.max(1, Math.round(Number(data?.amaErPeriod ?? source.erPeriod))),
72
+ fastPeriod: Number.isFinite(Number(data?.amaFastPeriod))
73
+ ? Number(data.amaFastPeriod)
74
+ : Number(source.fastPeriod),
75
+ slowPeriod: Number.isFinite(Number(data?.amaSlowPeriod))
76
+ ? Number(data.amaSlowPeriod)
77
+ : Number(source.slowPeriod),
78
+ };
79
+ }
80
+
81
+ function generateHTML(data: any, title: any = 'TradingView Style Research') {
82
+ const rawCandles = Array.isArray(data.candles) ? data.candles : [];
83
+ const candles = rawCandles.map(normalizeCandle).filter(Boolean);
84
+ if (candles.length === 0) throw new Error('No candle data in input');
85
+
86
+ const meta = data.meta || {};
87
+ const baseIntervalSeconds = Number(meta.intervalSeconds) > 0
88
+ ? Number(meta.intervalSeconds)
89
+ : inferBaseIntervalSeconds(candles, 3600);
90
+
91
+ const timeframes = [
92
+ { label: '1h', seconds: 3600 },
93
+ { label: '4h', seconds: 14400 },
94
+ { label: '1d', seconds: 86400 },
95
+ { label: '1w', seconds: 604800 },
96
+ ].map((item: any) => ({ ...item, enabled: item.seconds >= baseIntervalSeconds }));
97
+
98
+ const defaultTimeframe = timeframes.find((item: any) => item.label === data.defaultTimeframe && item.enabled)
99
+ || timeframes.find((item: any) => item.enabled)
100
+ || timeframes[0];
101
+
102
+ const marketProfiles = data.marketProfiles || loadMarketProfiles();
103
+ const defaultAmaConfig = resolveAmaDefaults({ meta, data, marketProfiles });
104
+ const defaults = {
105
+ smaPeriod: Math.max(1, Math.round(data.smaPeriod ?? 500)),
106
+ amaDefaults: defaultAmaConfig,
107
+ smaEnabled: data.smaEnabled === true,
108
+ amaEnabled: data.amaEnabled === true,
109
+ vwapEnabled: data.vwapEnabled === true,
110
+ vwapBars: Math.max(5, Math.round(data.vwapBars ?? 500)),
111
+ priceScale: data.priceScale === 'linear' ? 'linear' : 'log',
112
+ };
113
+
114
+ const assetLabelA = meta.assetA?.symbol || meta.assetA?.id || 'Asset A';
115
+ const assetLabelB = meta.assetB?.symbol || meta.assetB?.id || 'Asset B';
116
+ const pairLabelNormal = `${assetLabelA}/${assetLabelB}`;
117
+ const pairLabelInverse = `${assetLabelB}/${assetLabelA}`;
118
+ const poolLabel = meta.pool ? `Pool ${String(meta.pool).replace(/^1\.19\./, '')}` : 'Pair';
119
+ const intervalLabel = baseIntervalSeconds >= 86400
120
+ ? `${Math.round(baseIntervalSeconds / 86400)}d`
121
+ : `${Math.round(baseIntervalSeconds / 3600)}h`;
122
+ const defaultPairMode = data.defaultPairMode === 'inverse' ? 'inverse' : 'normal';
123
+
124
+ const payload = {
125
+ candles,
126
+ timeframes,
127
+ defaultTimeframe: defaultTimeframe.label,
128
+ smaPeriod: defaults.smaPeriod,
129
+ amaDefaults: defaultAmaConfig,
130
+ smaEnabled: defaults.smaEnabled,
131
+ amaEnabled: defaults.amaEnabled,
132
+ vwapEnabled: defaults.vwapEnabled,
133
+ vwapBars: defaults.vwapBars,
134
+ priceScale: defaults.priceScale,
135
+ defaultPairMode,
136
+ assetLabelA,
137
+ assetLabelB,
138
+ pairLabelNormal,
139
+ pairLabelInverse,
140
+ poolLabel,
141
+ intervalLabel,
142
+ amaDefaultsSource: marketProfiles ? 'market_profiles' : 'constants',
143
+ };
144
+
145
+ return `<!doctype html>
146
+ <html lang="en">
147
+ <head>
148
+ <meta charset="utf-8">
149
+ <meta name="color-scheme" content="dark">
150
+ <meta name="darkreader-lock">
151
+ <meta name="viewport" content="width=device-width, initial-scale=1">
152
+ <title>${escapeHtml(title)}</title>
153
+ <link rel="stylesheet" href="../uplot/uPlot.min.css">
154
+ <script src="../uplot/uPlot.iife.min.js"></script>
155
+ <style>
156
+ * { box-sizing: border-box; }
157
+ :root { color-scheme: dark; }
158
+ body {
159
+ margin: 0;
160
+ overflow: hidden;
161
+ background: linear-gradient(180deg, #090d12 0%, #0b0f14 40%, #0a0c11 100%);
162
+ color: #d7e0ea;
163
+ font-family: Inter, "Segoe UI", system-ui, sans-serif;
164
+ }
165
+ #app { height: 100vh; display: flex; flex-direction: column; }
166
+ #topbar {
167
+ display: flex;
168
+ justify-content: space-between;
169
+ gap: 16px;
170
+ padding: 12px 16px 10px;
171
+ border-bottom: 1px solid #263241;
172
+ background: rgba(15,19,26,0.94);
173
+ backdrop-filter: blur(10px);
174
+ }
175
+ #brand { display: flex; flex-direction: column; gap: 4px; min-width: 240px; }
176
+ #title { font-size: 15px; font-weight: 700; color: #f5f8fb; }
177
+ #subtitle { font-size: 11px; color: #b9c6d4; text-transform: uppercase; letter-spacing: 0.6px; }
178
+ #toolbar { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 12px; align-items: center; }
179
+ .group { display: inline-flex; align-items: center; gap: 8px; padding-left: 12px; border-left: 1px solid #263241; }
180
+ .group:first-child { padding-left: 0; border-left: 0; }
181
+ :root {
182
+ --control-height: 36px;
183
+ }
184
+ .time-btn {
185
+ appearance: none;
186
+ border: 1px solid #263241;
187
+ background: rgba(24,30,39,0.85);
188
+ color: #8290a2;
189
+ font-size: 11px;
190
+ font-weight: 700;
191
+ letter-spacing: 0.5px;
192
+ text-transform: uppercase;
193
+ padding: 7px 10px;
194
+ border-radius: 8px;
195
+ cursor: pointer;
196
+ }
197
+ .time-btn.active {
198
+ color: #fff;
199
+ border-color: rgba(94,161,255,0.85);
200
+ background: linear-gradient(180deg, rgba(35,53,79,0.95), rgba(22,32,47,0.98));
201
+ }
202
+ .time-btn:disabled { opacity: 0.35; cursor: not-allowed; text-decoration: line-through; }
203
+ .indicator {
204
+ display: inline-flex;
205
+ align-items: center;
206
+ gap: 8px;
207
+ min-height: var(--control-height);
208
+ padding: 0 13px;
209
+ border: 1px solid #263241;
210
+ border-radius: 10px;
211
+ background: rgba(20,25,33,0.86);
212
+ }
213
+ .indicator label {
214
+ display: inline-flex;
215
+ align-items: center;
216
+ gap: 6px;
217
+ min-height: var(--control-height);
218
+ font-size: 11px;
219
+ font-weight: 700;
220
+ color: #d7e0ea;
221
+ text-transform: uppercase;
222
+ white-space: nowrap;
223
+ }
224
+ .indicator input[type="checkbox"] { width: 14px; height: 14px; accent-color: #5ea1ff; }
225
+ .indicator input[type="number"], .indicator select {
226
+ appearance: none;
227
+ border: 1px solid #263241;
228
+ background: rgba(10,14,19,0.92);
229
+ color: #d7e0ea;
230
+ border-radius: 8px;
231
+ padding: 7px 10px;
232
+ font-size: 11px;
233
+ outline: none;
234
+ width: 79px;
235
+ min-width: 79px;
236
+ height: calc(var(--control-height) - 8px);
237
+ }
238
+ .pair-toggle {
239
+ appearance: none;
240
+ width: 32px;
241
+ height: 32px;
242
+ display: inline-flex;
243
+ align-items: center;
244
+ justify-content: center;
245
+ border: 1px solid #263241;
246
+ border-radius: 999px;
247
+ background: radial-gradient(circle at 30% 30%, rgba(94,161,255,0.18), rgba(10,14,19,0.96));
248
+ color: #d7e0ea;
249
+ cursor: pointer;
250
+ padding: 0;
251
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,0.03);
252
+ transition: transform 120ms ease, border-color 120ms ease, background 120ms ease, color 120ms ease;
253
+ }
254
+ .pair-toggle:hover {
255
+ transform: translateY(-1px);
256
+ border-color: rgba(94,161,255,0.85);
257
+ color: #fff;
258
+ }
259
+ .pair-toggle:active {
260
+ transform: translateY(0);
261
+ }
262
+ .pair-toggle svg {
263
+ width: 17px;
264
+ height: 17px;
265
+ fill: currentColor;
266
+ display: block;
267
+ }
268
+ .pair-toggle.is-inverse {
269
+ color: #5ea1ff;
270
+ border-color: rgba(94,161,255,0.45);
271
+ }
272
+ .indicator .step-stack {
273
+ display: inline-flex;
274
+ flex-direction: column;
275
+ vertical-align: middle;
276
+ margin-left: 2px;
277
+ }
278
+ .indicator .step-btn {
279
+ appearance: none;
280
+ display: block;
281
+ width: 24px;
282
+ height: 13px;
283
+ border: 1px solid #3d4a5a;
284
+ background: #1a2332;
285
+ color: #8b949e;
286
+ font-size: 9px;
287
+ line-height: 1;
288
+ cursor: pointer;
289
+ padding: 0;
290
+ margin: 0;
291
+ }
292
+ .indicator .step-btn:first-child {
293
+ border-radius: 3px 3px 0 0;
294
+ border-bottom: none;
295
+ }
296
+ .indicator .step-btn:last-child {
297
+ border-radius: 0 0 3px 3px;
298
+ }
299
+ .indicator .step-btn:hover {
300
+ background: #263241;
301
+ }
302
+ .indicator .step-btn:active {
303
+ background: #3d4a5a;
304
+ }
305
+ .indicator input[type="text"] {
306
+ appearance: none;
307
+ border: 1px solid #263241;
308
+ background: rgba(6,8,12,0.95);
309
+ color: #d7e0ea;
310
+ border-radius: 8px;
311
+ padding: 7px 4px;
312
+ font-size: 12px;
313
+ outline: none;
314
+ width: 44px;
315
+ text-align: center;
316
+ }
317
+ .indicator input[type="text"]:focus {
318
+ border-color: #5ea1ff;
319
+ }
320
+ #ama-fast {
321
+ width: 38px;
322
+ }
323
+ .scale-toggle {
324
+ appearance: none;
325
+ min-width: 76px;
326
+ height: 32px;
327
+ display: inline-flex;
328
+ align-items: center;
329
+ justify-content: center;
330
+ border: 1px solid #263241;
331
+ border-radius: 999px;
332
+ background: rgba(10,14,19,0.92);
333
+ color: #d7e0ea;
334
+ font-size: 11px;
335
+ font-weight: 700;
336
+ letter-spacing: 0.45px;
337
+ text-transform: uppercase;
338
+ cursor: pointer;
339
+ padding: 0 11px;
340
+ transition: transform 120ms ease, border-color 120ms ease, background 120ms ease, color 120ms ease;
341
+ }
342
+ .scale-toggle:hover {
343
+ transform: translateY(-1px);
344
+ border-color: rgba(94,161,255,0.85);
345
+ color: #fff;
346
+ }
347
+ .scale-toggle:active {
348
+ transform: translateY(0);
349
+ }
350
+ .scale-toggle.is-linear {
351
+ color: #5ea1ff;
352
+ border-color: rgba(94,161,255,0.45);
353
+ }
354
+ .reset-btn {
355
+ appearance: none;
356
+ border: 1px solid #263241;
357
+ background: rgba(24,30,39,0.85);
358
+ color: #d7e0ea;
359
+ font-size: 11px;
360
+ font-weight: 700;
361
+ letter-spacing: 0.45px;
362
+ text-transform: uppercase;
363
+ padding: 6px 11px;
364
+ border-radius: 8px;
365
+ cursor: pointer;
366
+ }
367
+ .reset-btn:hover {
368
+ border-color: rgba(94,161,255,0.85);
369
+ color: #fff;
370
+ }
371
+ .indicator .tag { font-size: 10px; color: #8290a2; text-transform: uppercase; letter-spacing: 0.5px; }
372
+ #chart-shell { position: relative; flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
373
+ #price-chart { position: relative; flex: 1 1 auto; min-height: 0; }
374
+ #volume-chart { position: relative; flex: 0 0 19%; min-height: 0; border-top: 1px solid #263241; }
375
+ #legend {
376
+ position: absolute;
377
+ top: 14px;
378
+ left: 14px;
379
+ z-index: 4;
380
+ padding: 10px 12px;
381
+ min-width: 280px;
382
+ max-width: calc(100vw - 28px);
383
+ border: 1px solid #263241;
384
+ border-radius: 12px;
385
+ background: rgba(10,14,20,0.72);
386
+ backdrop-filter: blur(10px);
387
+ }
388
+ .legend-line { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; font-size: 11px; }
389
+ .legend-line + .legend-line { margin-top: 6px; padding-top: 6px; border-top: 1px solid rgba(255,255,255,0.06); }
390
+ .legend-item { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
391
+ .legend-dot { width: 10px; height: 10px; border-radius: 999px; flex: 0 0 auto; }
392
+ .legend-label { color: #8290a2; text-transform: uppercase; letter-spacing: 0.45px; font-size: 10px; }
393
+ .legend-value { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: #eef4fb; font-weight: 700; }
394
+ .status { display: inline-flex; align-items: center; gap: 8px; font-size: 10px; color: #8290a2; text-transform: uppercase; letter-spacing: 0.5px; }
395
+ .pill { border: 1px solid rgba(255,255,255,0.06); border-radius: 999px; padding: 4px 8px; background: rgba(255,255,255,0.03); }
396
+ .uplot { background: #0b0f14; }
397
+ .u-cursor-x { border-left: 1px dashed rgba(255,255,255,0.3) !important; }
398
+ .u-cursor-y { border-top: 1px dashed rgba(255,255,255,0.3) !important; display: none; }
399
+ .is-hovered .u-cursor-y { display: block; }
400
+ @media (max-width: 980px) {
401
+ #topbar { flex-direction: column; align-items: flex-start; }
402
+ #toolbar { justify-content: flex-start; }
403
+ .group { padding-left: 0; border-left: 0; flex-wrap: wrap; }
404
+ #legend { min-width: 0; max-width: calc(100vw - 24px); }
405
+ }
406
+ </style>
407
+ </head>
408
+ <body>
409
+ <div id="app">
410
+ <div id="topbar">
411
+ <div id="brand">
412
+ <div id="title">${escapeHtml(title)}</div>
413
+ <div id="subtitle">${escapeHtml(poolLabel)} · ${escapeHtml(pairLabelNormal)} · ${escapeHtml(intervalLabel)} base · indicators from 1h · volume · uPlot</div>
414
+ </div>
415
+ <div id="toolbar">
416
+ <div class="group" id="tf-group">
417
+ ${timeframes.map((item: any) => `<button class="time-btn${item.label === defaultTimeframe.label ? ' active' : ''}" data-timeframe="${escapeHtml(item.label)}"${item.enabled ? '' : ' disabled'}>${escapeHtml(item.label)}</button>`).join('')}
418
+ </div>
419
+ <div class="group">
420
+ <div class="indicator">
421
+ <span class="tag">pair</span>
422
+ <button type="button" class="pair-toggle${defaultPairMode === 'inverse' ? ' is-inverse' : ''}" id="pair-toggle" aria-label="Swap pair orientation" title="Swap pair orientation" data-pair-mode="${escapeHtml(defaultPairMode)}">
423
+ <svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
424
+ <path d="M6.5 7H19v2H6.5v3L2 8.5 6.5 5v2Zm11 10H5v-2h12.5v-3L22 15.5 17.5 19v-2Z"/>
425
+ </svg>
426
+ </button>
427
+ </div>
428
+ <div class="indicator">
429
+ <span class="tag">scale</span>
430
+ <button type="button" class="scale-toggle${defaults.priceScale === 'linear' ? ' is-linear' : ''}" id="scale-toggle" data-scale="${escapeHtml(defaults.priceScale)}" aria-label="Toggle price scale" title="Toggle price scale">${defaults.priceScale === 'linear' ? 'Linear' : 'Log'}</button>
431
+ </div>
432
+ <div class="indicator">
433
+ <label><input type="checkbox" id="sma-toggle"${defaults.smaEnabled ? ' checked' : ''}> SMA</label>
434
+ <span class="tag">period</span>
435
+ <input type="text" inputmode="numeric" id="sma-period" value="${defaults.smaPeriod}">
436
+ <span class="step-stack">
437
+ <button type="button" class="step-btn" id="sma-period-inc">▲</button>
438
+ <button type="button" class="step-btn" id="sma-period-dec">▼</button>
439
+ </span>
440
+ </div>
441
+ <div class="indicator">
442
+ <label><input type="checkbox" id="vwap-toggle"${defaults.vwapEnabled ? ' checked' : ''}> VWMA</label>
443
+ <span class="tag">bars</span>
444
+ <input type="text" inputmode="numeric" id="vwap-bars" value="${defaults.vwapBars}">
445
+ <span class="step-stack">
446
+ <button type="button" class="step-btn" id="vwap-bars-inc">▲</button>
447
+ <button type="button" class="step-btn" id="vwap-bars-dec">▼</button>
448
+ </span>
449
+ </div>
450
+ <div class="indicator">
451
+ <label><input type="checkbox" id="ama-toggle"${defaults.amaEnabled ? ' checked' : ''}> AMA</label>
452
+ <span class="tag">er</span>
453
+ <input type="text" inputmode="numeric" id="ama-er" value="${defaults.amaDefaults.erPeriod}">
454
+ <span class="step-stack">
455
+ <button type="button" class="step-btn" id="ama-er-inc">▲</button>
456
+ <button type="button" class="step-btn" id="ama-er-dec">▼</button>
457
+ </span>
458
+ <span class="tag">fast</span>
459
+ <input type="text" inputmode="decimal" id="ama-fast" value="${defaults.amaDefaults.fastPeriod}">
460
+ <span class="step-stack">
461
+ <button type="button" class="step-btn" id="ama-fast-inc">▲</button>
462
+ <button type="button" class="step-btn" id="ama-fast-dec">▼</button>
463
+ </span>
464
+ <span class="tag">slow</span>
465
+ <input type="text" inputmode="decimal" id="ama-slow" value="${defaults.amaDefaults.slowPeriod}">
466
+ <span class="step-stack">
467
+ <button type="button" class="step-btn" id="ama-slow-inc">▲</button>
468
+ <button type="button" class="step-btn" id="ama-slow-dec">▼</button>
469
+ </span>
470
+ <button type="button" class="reset-btn" id="ama-reset">Reset</button>
471
+ </div>
472
+ <div class="indicator" style="margin-top:4px">
473
+ <label><input type="checkbox" id="ama-init-offset-toggle"> Init Offset</label>
474
+ <input type="range" id="ama-init-offset" min="-50" max="50" value="0" step="1" style="width:120px;vertical-align:middle" disabled>
475
+ <span id="ama-init-offset-val" style="font-size:11px;color:#8b949e;width:32px;display:inline-block;text-align:right">0%</span>
476
+ </div>
477
+ </div>
478
+ <div class="group"></div>
479
+ </div>
480
+ </div>
481
+ <div id="chart-shell">
482
+ <div id="legend">
483
+ <div class="legend-line">
484
+ <span class="legend-item"><span class="legend-label">Time</span> <span class="legend-value" id="legend-time">-</span></span>
485
+ <span class="legend-item"><span class="legend-label">C</span> <span class="legend-value" id="legend-close">-</span></span>
486
+ <span class="legend-item"><span class="legend-label">Delta</span> <span class="legend-value" id="legend-delta">-</span></span>
487
+ <span class="legend-item"><span class="legend-label">Vol</span> <span class="legend-value" id="legend-volume">-</span></span>
488
+ <span class="legend-item"><span class="legend-label">Scale</span> <span class="legend-value" id="legend-scale">-</span></span>
489
+ </div>
490
+ <div class="legend-line">
491
+ <span class="legend-item"><span class="legend-dot" style="background:#f59e0b"></span><span class="legend-label">SMA</span> <span class="legend-value" id="legend-sma">-</span></span>
492
+ <span class="legend-item"><span class="legend-dot" style="background:#2dd4bf"></span><span class="legend-label">AMA</span> <span class="legend-value" id="legend-ama">-</span></span>
493
+ <span class="legend-item"><span class="legend-dot" style="background:#22c55e"></span><span class="legend-label">AMA Init</span> <span class="legend-value" id="legend-sma-init">-</span></span>
494
+ <span class="legend-item"><span class="legend-dot" style="background:#a855f7"></span><span class="legend-label">Off Init</span> <span class="legend-value" id="legend-off-init">-</span></span>
495
+ <span class="legend-item"><span class="legend-dot" style="background:#a855f7"></span><span class="legend-label">AMA Off</span> <span class="legend-value" id="legend-ama-off">-</span></span>
496
+
497
+ <span class="legend-item"><span class="legend-dot" style="background:#93c5fd"></span><span class="legend-label">VWMA</span> <span class="legend-value" id="legend-vwap">-</span></span>
498
+ </div>
499
+ </div>
500
+ <div id="price-chart"></div>
501
+ <div id="volume-chart"></div>
502
+ </div>
503
+ </div>
504
+
505
+ <script id="payload" type="application/json">${serializeJsonForScript(payload)}</script>
506
+ <script>
507
+ (function () {
508
+ const payload = JSON.parse(document.getElementById('payload').textContent);
509
+ const priceEl = document.getElementById('price-chart');
510
+ const volumeEl = document.getElementById('volume-chart');
511
+ const baseCandles = Array.isArray(payload.candles) ? payload.candles.slice() : [];
512
+ const baseCloseValues = baseCandles.map((c) => c.close);
513
+ const timeframes = Array.isArray(payload.timeframes) ? payload.timeframes.slice() : [];
514
+ const timeframeMap = new Map(timeframes.map((item) => [item.label, item]));
515
+ const STORAGE_KEY = 'dexbot2-tradingview-uplot-v2';
516
+
517
+ const state = loadState();
518
+ let currentTimeframe = state.timeframe || payload.defaultTimeframe || '1h';
519
+ let currentSmaEnabled = state.smaEnabled ?? !!payload.smaEnabled;
520
+ let currentSmaPeriod = Number.isFinite(state.smaPeriod) ? state.smaPeriod : Number(payload.smaPeriod || 500);
521
+ let currentAmaEnabled = state.amaEnabled ?? !!payload.amaEnabled;
522
+ let currentAmaErPeriod = Number.isFinite(state.amaErPeriod)
523
+ ? Number(state.amaErPeriod)
524
+ : Number(payload.amaDefaults?.erPeriod || ${MARKET_ADAPTER.AMAS.AMA3.erPeriod});
525
+ let currentAmaFastPeriod = Number.isFinite(state.amaFastPeriod)
526
+ ? Number(state.amaFastPeriod)
527
+ : Number(payload.amaDefaults?.fastPeriod || ${MARKET_ADAPTER.AMAS.AMA3.fastPeriod});
528
+ let currentAmaSlowPeriod = Number.isFinite(state.amaSlowPeriod)
529
+ ? Number(state.amaSlowPeriod)
530
+ : Number(payload.amaDefaults?.slowPeriod || ${MARKET_ADAPTER.AMAS.AMA3.slowPeriod});
531
+ let currentVwapEnabled = state.vwapEnabled ?? !!payload.vwapEnabled;
532
+ let currentVwapBars = Number.isFinite(state.vwapBars) ? state.vwapBars : Number(payload.vwapBars || 500);
533
+ let currentAmaInitOffsetEnabled = false;
534
+ let currentAmaInitOffset = Number.isFinite(state.amaInitOffset) ? state.amaInitOffset : 0;
535
+ let currentPriceScale = state.priceScale || payload.priceScale || 'log';
536
+ let currentPairMode = state.pairMode === 'inverse' ? 'inverse' : (payload.defaultPairMode === 'inverse' ? 'inverse' : 'normal');
537
+ let currentCandles = [];
538
+ let currentSeriesState = null;
539
+ let currentSeriesCandles = baseCandles;
540
+ let currentSeriesCloseValues = baseCloseValues;
541
+ let currentOpen = [];
542
+ let currentHigh = [];
543
+ let currentLow = [];
544
+ let currentClose = [];
545
+ let currentDisplayCandles = [];
546
+ let currentPriceData = [];
547
+ let currentVolumeData = [];
548
+ let currentSma = [];
549
+ let currentAma = [];
550
+ let currentVwap = [];
551
+ let currentSmaInit = [];
552
+ let currentSmaInitOff = [];
553
+ let currentAmaOff = [];
554
+ let priceChart = null;
555
+ let volumeChart = null;
556
+ let lastRenderedPriceScale = null;
557
+ let charts = [];
558
+ let chartEventsBound = false;
559
+ let pendingRange = null;
560
+ let pendingRangeRaf = 0;
561
+ let smaWorker = null;
562
+ let smaWorkerJob = null;
563
+ let smaWorkerStartRaf = 0;
564
+ let smaWorkerPaintRaf = 0;
565
+ let smaWorkerSeq = 0;
566
+ const aggregateCache = new Map();
567
+ const smaCache = new Map();
568
+ const amaCache = new Map();
569
+ const vwapCache = new Map();
570
+ const seriesCache = new Map();
571
+
572
+ function clamp(v, lo, hi) { return Math.max(lo, Math.min(hi, v)); }
573
+ function fmtPrice(v) {
574
+ if (v == null || !Number.isFinite(v)) return '-';
575
+ const abs = Math.abs(v);
576
+ if (abs >= 1000) return v.toFixed(2);
577
+ if (abs >= 100) return v.toFixed(3);
578
+ if (abs >= 1) return v.toFixed(4);
579
+ return v.toPrecision(6);
580
+ }
581
+ function fmtVolume(v) {
582
+ if (v == null || !Number.isFinite(v)) return '-';
583
+ const abs = Math.abs(v);
584
+ if (abs >= 1e9) return (v / 1e9).toFixed(2) + 'B';
585
+ if (abs >= 1e6) return (v / 1e6).toFixed(2) + 'M';
586
+ if (abs >= 1e3) return (v / 1e3).toFixed(2) + 'K';
587
+ return v.toFixed(2);
588
+ }
589
+ function candleDirection(open, close) {
590
+ if (close > open) return 'up';
591
+ if (close < open) return 'down';
592
+ return 'flat';
593
+ }
594
+ function fmtTime(ts) {
595
+ if (!Number.isFinite(ts)) return '-';
596
+ const d = new Date(ts * 1000);
597
+ return d.toLocaleString(undefined, { year: 'numeric', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' });
598
+ }
599
+ function pad2(n) {
600
+ return String(n).padStart(2, '0');
601
+ }
602
+ function formatTimeLabel(tsSec, spanSec) {
603
+ const d = new Date(tsSec * 1000);
604
+ if (!Number.isFinite(spanSec)) spanSec = 0;
605
+ if (spanSec >= 365 * 24 * 3600 * 2) {
606
+ return String(d.getUTCFullYear());
607
+ }
608
+ if (spanSec >= 90 * 24 * 3600) {
609
+ return d.toLocaleString(undefined, { month: 'short', year: 'numeric', timeZone: 'UTC' });
610
+ }
611
+ if (spanSec >= 14 * 24 * 3600) {
612
+ return d.toLocaleString(undefined, { month: 'short', day: '2-digit', timeZone: 'UTC' });
613
+ }
614
+ return d.toLocaleString(undefined, { month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit', hour12: false, timeZone: 'UTC' });
615
+ }
616
+ function makeTimeAxis(showLabels) {
617
+ return {
618
+ show: true,
619
+ size: showLabels ? 24 : 14,
620
+ stroke: '#ffffff',
621
+ grid: { stroke: '#1c2128' },
622
+ ticks: { stroke: '#30363d', width: 1 },
623
+ font: '11px Segoe UI, sans-serif',
624
+ values: showLabels ? (u, vals) => {
625
+ const xScale = u.scales.x || {};
626
+ const spanSec = Number.isFinite(xScale.min) && Number.isFinite(xScale.max)
627
+ ? Math.max(0, xScale.max - xScale.min)
628
+ : 0;
629
+ return vals.map((ts) => formatTimeLabel(ts, spanSec));
630
+ } : () => [],
631
+ };
632
+ }
633
+ function loadState() {
634
+ try { return JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}'); } catch (e) { return {}; }
635
+ }
636
+ function saveState() {
637
+ try {
638
+ localStorage.setItem(STORAGE_KEY, JSON.stringify({
639
+ timeframe: currentTimeframe,
640
+ smaEnabled: currentSmaEnabled,
641
+ smaPeriod: currentSmaPeriod,
642
+ amaEnabled: currentAmaEnabled,
643
+ amaErPeriod: currentAmaErPeriod,
644
+ amaFastPeriod: currentAmaFastPeriod,
645
+ amaSlowPeriod: currentAmaSlowPeriod,
646
+ vwapEnabled: currentVwapEnabled,
647
+ vwapBars: currentVwapBars,
648
+ amaInitOffset: currentAmaInitOffset,
649
+ priceScale: currentPriceScale,
650
+ pairMode: currentPairMode,
651
+ }));
652
+ } catch (e) {}
653
+ }
654
+ function normalizePairMode(mode) {
655
+ return String(mode).toLowerCase() === 'inverse' ? 'inverse' : 'normal';
656
+ }
657
+ function getPairLabel(mode = currentPairMode) {
658
+ return normalizePairMode(mode) === 'inverse'
659
+ ? (payload.pairLabelInverse || (payload.assetLabelB + '/' + payload.assetLabelA))
660
+ : (payload.pairLabelNormal || (payload.assetLabelA + '/' + payload.assetLabelB));
661
+ }
662
+ function refreshSubtitle() {
663
+ const subtitleEl = document.getElementById('subtitle');
664
+ if (!subtitleEl) return;
665
+ subtitleEl.textContent = payload.poolLabel + ' · ' + getPairLabel() + ' · ' + payload.intervalLabel + ' base · indicators from 1h · volume · uPlot';
666
+ }
667
+ function snapInitOffset(value) {
668
+ const next = Math.round(Number(value) || 0);
669
+ return Math.abs(next) <= 2 ? 0 : next;
670
+ }
671
+ function setActivePairMode(mode) {
672
+ const label = normalizePairMode(mode);
673
+ const btn = document.getElementById('pair-toggle');
674
+ if (!btn) return;
675
+ btn.dataset.pairMode = label;
676
+ btn.classList.toggle('is-inverse', label === 'inverse');
677
+ btn.title = label === 'inverse' ? 'Swap to A/B' : 'Swap to B/A';
678
+ btn.setAttribute('aria-label', label === 'inverse' ? 'Swap to A/B' : 'Swap to B/A');
679
+ }
680
+ function invertCandle(candle) {
681
+ const open = Number(candle?.open);
682
+ const high = Number(candle?.high);
683
+ const low = Number(candle?.low);
684
+ const close = Number(candle?.close);
685
+ if (![open, high, low, close].every(Number.isFinite) || open <= 0 || high <= 0 || low <= 0 || close <= 0) return null;
686
+ const volume = Number(candle?.volume);
687
+ return {
688
+ time: candle.time,
689
+ open: 1 / open,
690
+ high: 1 / low,
691
+ low: 1 / high,
692
+ close: 1 / close,
693
+ // Convert base-asset volume into the inverse pair's base units approximately.
694
+ volume: Number.isFinite(volume) ? volume * close : 0,
695
+ };
696
+ }
697
+ function getSeriesState(mode = currentPairMode) {
698
+ const key = normalizePairMode(mode);
699
+ if (seriesCache.has(key)) return seriesCache.get(key);
700
+ const candles = key === 'inverse'
701
+ ? baseCandles.map(invertCandle).filter(Boolean)
702
+ : baseCandles.slice();
703
+ const state = {
704
+ candles,
705
+ closeValues: candles.map((c) => c.close),
706
+ };
707
+ seriesCache.set(key, state);
708
+ return state;
709
+ }
710
+ function aggregateCandles(rows, seconds) {
711
+ const bucketSec = Math.max(1, Math.round(seconds || 3600));
712
+ const cacheKey = currentPairMode + '|' + bucketSec;
713
+ if (aggregateCache.has(cacheKey)) return aggregateCache.get(cacheKey);
714
+ const out = [];
715
+ const idxs = [];
716
+ let cur = null;
717
+ let curBucket = null;
718
+ let curIdx = -1;
719
+ for (let i = 0; i < rows.length; i++) {
720
+ const row = rows[i];
721
+ const ts = Number(row.time);
722
+ if (!Number.isFinite(ts)) continue;
723
+ const bucket = Math.floor(ts / bucketSec) * bucketSec;
724
+ if (!cur || bucket !== curBucket) {
725
+ if (cur) {
726
+ out.push(cur);
727
+ idxs.push(curIdx);
728
+ }
729
+ curBucket = bucket;
730
+ curIdx = i;
731
+ cur = { time: bucket, open: row.open, high: row.high, low: row.low, close: row.close, volume: row.volume || 0 };
732
+ } else {
733
+ cur.high = Math.max(cur.high, row.high);
734
+ cur.low = Math.min(cur.low, row.low);
735
+ cur.close = row.close;
736
+ cur.volume += row.volume || 0;
737
+ curIdx = i;
738
+ }
739
+ }
740
+ if (cur) {
741
+ out.push(cur);
742
+ idxs.push(curIdx);
743
+ }
744
+ const result = { candles: out, idxs };
745
+ aggregateCache.set(cacheKey, result);
746
+ return result;
747
+ }
748
+ function sampleSeriesByIndex(series, idxs) {
749
+ if (!Array.isArray(series) || !Array.isArray(idxs)) return [];
750
+ return idxs.map((idx) => (Number.isFinite(idx) && series[idx] != null ? series[idx] : null));
751
+ }
752
+ function deriveDisplayCandles(candles) {
753
+ if (!Array.isArray(candles) || candles.length === 0) return [];
754
+ return candles.map((c, i) => {
755
+ const prevClose = i > 0 ? candles[i - 1].close : c.close;
756
+ const open = Number.isFinite(prevClose) ? prevClose : c.close;
757
+ const close = c.close;
758
+ return {
759
+ time: c.time,
760
+ open,
761
+ close,
762
+ volume: c.volume,
763
+ };
764
+ });
765
+ }
766
+ function computeSMA(candles, period) {
767
+ const safePeriod = Math.max(1, Math.round(period));
768
+ const cacheKey = currentPairMode + '|' + safePeriod + '|' + candles.length;
769
+ if (smaCache.has(cacheKey)) return smaCache.get(cacheKey);
770
+ const out = [];
771
+ let sum = 0;
772
+ const window = new Array(safePeriod);
773
+ let head = 0;
774
+ let count = 0;
775
+ for (const candle of candles) {
776
+ const price = candle.close;
777
+ if (count < safePeriod) {
778
+ window[count] = price;
779
+ sum += price;
780
+ count++;
781
+ out.push(count === safePeriod ? (sum / safePeriod) : null);
782
+ continue;
783
+ }
784
+ sum -= window[head];
785
+ window[head] = price;
786
+ sum += price;
787
+ head = (head + 1) % safePeriod;
788
+ out.push(sum / safePeriod);
789
+ }
790
+ smaCache.set(cacheKey, out);
791
+ return out;
792
+ }
793
+ function getSmaCacheKey(period) {
794
+ return currentPairMode + '|' + Math.max(1, Math.round(period)) + '|' + currentSeriesCloseValues.length;
795
+ }
796
+ function createSMAWorker() {
797
+ if (typeof Worker === 'undefined' || typeof Blob === 'undefined' || typeof URL === 'undefined') return null;
798
+ const workerSource = [
799
+ 'self.onmessage = function(e) {',
800
+ ' const data = e.data || {};',
801
+ ' const id = data.id;',
802
+ ' const key = data.key;',
803
+ ' const closes = Array.isArray(data.closes) ? data.closes : [];',
804
+ ' const period = Math.max(1, Math.round(Number(data.period) || 1));',
805
+ ' const out = new Array(closes.length);',
806
+ ' const window = new Array(period);',
807
+ ' let sum = 0;',
808
+ ' let head = 0;',
809
+ ' let count = 0;',
810
+ ' for (let i = 0; i < closes.length; i++) {',
811
+ ' const price = Number(closes[i]);',
812
+ ' if (count < period) {',
813
+ ' window[count] = price;',
814
+ ' sum += price;',
815
+ ' count++;',
816
+ ' out[i] = count === period ? (sum / period) : null;',
817
+ ' continue;',
818
+ ' }',
819
+ ' sum -= window[head];',
820
+ ' window[head] = price;',
821
+ ' sum += price;',
822
+ ' head = (head + 1) % period;',
823
+ ' out[i] = sum / period;',
824
+ ' }',
825
+ ' self.postMessage({ id, key, series: out });',
826
+ '};',
827
+ ].join('\\n');
828
+ const blob = new Blob([workerSource], { type: 'text/javascript' });
829
+ const worker = new Worker(URL.createObjectURL(blob));
830
+ worker.onmessage = (e) => {
831
+ const msg = e && e.data ? e.data : {};
832
+ if (!smaWorkerJob || msg.id !== smaWorkerJob.id || msg.key !== smaWorkerJob.key) return;
833
+ smaCache.set(msg.key, Array.isArray(msg.series) ? msg.series : []);
834
+ smaWorkerJob = null;
835
+ if (currentSmaEnabled && msg.key === getSmaCacheKey(currentSmaPeriod)) {
836
+ rerender(false);
837
+ }
838
+ };
839
+ worker.onerror = () => {
840
+ try { worker.terminate(); } catch (e) {}
841
+ smaWorker = null;
842
+ smaWorkerJob = null;
843
+ };
844
+ return worker;
845
+ }
846
+ function clearSMAWorker() {
847
+ if (smaWorkerStartRaf) {
848
+ cancelAnimationFrame(smaWorkerStartRaf);
849
+ smaWorkerStartRaf = 0;
850
+ }
851
+ if (smaWorkerPaintRaf) {
852
+ cancelAnimationFrame(smaWorkerPaintRaf);
853
+ smaWorkerPaintRaf = 0;
854
+ }
855
+ if (!smaWorker) return;
856
+ try { smaWorker.terminate(); } catch (e) {}
857
+ smaWorker = null;
858
+ smaWorkerJob = null;
859
+ }
860
+ function requestSMA(period) {
861
+ const safePeriod = Math.max(1, Math.round(period));
862
+ const key = getSmaCacheKey(safePeriod);
863
+ if (smaCache.has(key)) return;
864
+ if (smaWorkerJob && smaWorkerJob.key === key) return;
865
+ if (smaWorkerJob && smaWorkerJob.key !== key) clearSMAWorker();
866
+ if (!smaWorker) smaWorker = createSMAWorker();
867
+ if (!smaWorker) {
868
+ smaCache.set(key, computeSMA(currentSeriesCandles, safePeriod));
869
+ if (currentSmaEnabled && key === getSmaCacheKey(currentSmaPeriod)) rerender(false);
870
+ return;
871
+ }
872
+ smaWorkerJob = { id: ++smaWorkerSeq, key };
873
+ if (smaWorkerStartRaf) cancelAnimationFrame(smaWorkerStartRaf);
874
+ if (smaWorkerPaintRaf) cancelAnimationFrame(smaWorkerPaintRaf);
875
+ smaWorkerStartRaf = requestAnimationFrame(() => {
876
+ smaWorkerStartRaf = 0;
877
+ smaWorkerPaintRaf = requestAnimationFrame(() => {
878
+ smaWorkerPaintRaf = 0;
879
+ if (!smaWorker || !smaWorkerJob || smaWorkerJob.key !== key || !currentSmaEnabled) return;
880
+ smaWorker.postMessage({
881
+ id: smaWorkerJob.id,
882
+ key,
883
+ period: safePeriod,
884
+ closes: currentSeriesCloseValues,
885
+ });
886
+ });
887
+ });
888
+ }
889
+ function currentAmaConfig() {
890
+ return {
891
+ erPeriod: Math.max(1, Math.round(currentAmaErPeriod)),
892
+ fastPeriod: Math.max(0.1, Number(currentAmaFastPeriod) || 0.1),
893
+ slowPeriod: Math.max(0.1, Number(currentAmaSlowPeriod) || 0.1),
894
+ };
895
+ }
896
+ function computeAMA(candles, cfg, initOffset = 0) {
897
+ const params = cfg || currentAmaConfig();
898
+ const erPeriod = Math.max(1, Math.round(params.erPeriod ?? 10));
899
+ const fastPeriod = Math.max(0.1, Number(params.fastPeriod ?? 2));
900
+ const slowPeriod = Math.max(0.1, Number(params.slowPeriod ?? 30));
901
+ const cacheKey = currentPairMode + '|' + erPeriod + '|' + fastPeriod + '|' + slowPeriod + '|' + candles.length + '|' + initOffset;
902
+ if (amaCache.has(cacheKey)) return amaCache.get(cacheKey);
903
+ const fastSC = 2 / (fastPeriod + 1);
904
+ const slowSC = 2 / (slowPeriod + 1);
905
+ const out = [];
906
+ const windowSize = erPeriod + 1;
907
+ const history = new Array(windowSize);
908
+ let head = 0;
909
+ let len = 0;
910
+ let volatility = 0;
911
+ let prev = null;
912
+ let smaSum = 0;
913
+ for (const candle of candles) {
914
+ const price = candle.close;
915
+ if (len < windowSize) {
916
+ history[(head + len) % windowSize] = price;
917
+ smaSum += price;
918
+ if (len > 0) {
919
+ volatility += Math.abs(price - history[(head + len - 1) % windowSize]);
920
+ }
921
+ len++;
922
+ if (len < windowSize) {
923
+ out.push(null);
924
+ continue;
925
+ }
926
+ prev = initOffset !== 0 ? (smaSum / windowSize) * (1 + initOffset / 100) : smaSum / windowSize;
927
+ out.push(prev);
928
+ continue;
929
+ }
930
+ const oldest = history[head];
931
+ const second = history[(head + 1) % windowSize];
932
+ const last = history[(head + windowSize - 1) % windowSize];
933
+ volatility += Math.abs(price - last) - Math.abs(second - oldest);
934
+ history[head] = price;
935
+ head = (head + 1) % windowSize;
936
+ const first = history[head];
937
+ const direction = Math.abs(price - first);
938
+ const er = volatility === 0 ? 0 : (direction / volatility);
939
+ const smoothing = Math.pow(er * (fastSC - slowSC) + slowSC, 2);
940
+ const ama = prev + smoothing * (price - prev);
941
+ prev = ama;
942
+ out.push(ama);
943
+ }
944
+ amaCache.set(cacheKey, out);
945
+ return out;
946
+ }
947
+ function computeVWMA(candles, bars) {
948
+ const safeBars = Math.max(1, Math.round(bars || 500));
949
+ const cacheKey = currentPairMode + '|' + safeBars + '|' + candles.length;
950
+ if (vwapCache.has(cacheKey)) return vwapCache.get(cacheKey);
951
+ const out = [];
952
+ let cumPV = 0;
953
+ let cumVol = 0;
954
+ const window = new Array(safeBars);
955
+ let head = 0;
956
+ let count = 0;
957
+ for (const candle of candles) {
958
+ const typical = (candle.high + candle.low + candle.close) / 3;
959
+ const volume = Number.isFinite(candle.volume) ? candle.volume : 0;
960
+ cumPV += typical * volume;
961
+ cumVol += volume;
962
+ if (count < safeBars) {
963
+ window[count] = { typical, volume };
964
+ count++;
965
+ } else {
966
+ const old = window[head];
967
+ cumPV -= old.typical * old.volume;
968
+ cumVol -= old.volume;
969
+ window[head] = { typical, volume };
970
+ head = (head + 1) % safeBars;
971
+ }
972
+ out.push(cumVol > 0 ? (cumPV / cumVol) : null);
973
+ }
974
+ vwapCache.set(cacheKey, out);
975
+ return out;
976
+ }
977
+ function lowerBound(arr, value) {
978
+ let lo = 0;
979
+ let hi = arr.length;
980
+ while (lo < hi) {
981
+ const mid = (lo + hi) >> 1;
982
+ if (arr[mid] < value) lo = mid + 1;
983
+ else hi = mid;
984
+ }
985
+ return lo;
986
+ }
987
+ function visiblePriceRange(u) {
988
+ if (!currentCandles.length) return null;
989
+ const xs = u.data[0];
990
+ const xScale = u.scales.x || {};
991
+ const minX = Number.isFinite(xScale.min) ? xScale.min : xs[0];
992
+ const maxX = Number.isFinite(xScale.max) ? xScale.max : xs[xs.length - 1];
993
+ let start = Math.max(0, lowerBound(xs, minX) - 1);
994
+ let end = Math.min(xs.length, lowerBound(xs, maxX) + 2);
995
+ let min = Infinity;
996
+ let max = -Infinity;
997
+ for (let i = start; i < end; i++) {
998
+ const lo = currentLow[i];
999
+ const hi = currentHigh[i];
1000
+ if (Number.isFinite(lo) && lo > 0 && lo < min) min = lo;
1001
+ if (Number.isFinite(hi) && hi > max) max = hi;
1002
+ const s = currentSma[i];
1003
+ const a = currentAma[i];
1004
+ const v = currentVwap[i];
1005
+ if (Number.isFinite(s)) { if (s < min) min = s; if (s > max) max = s; }
1006
+ if (Number.isFinite(a)) { if (a < min) min = a; if (a > max) max = a; }
1007
+ if (Number.isFinite(v)) { if (v < min) min = v; if (v > max) max = v; }
1008
+ }
1009
+ if (!Number.isFinite(min) || !Number.isFinite(max) || min <= 0 || max <= 0) return null;
1010
+ if (min === max) return [min * 0.98, max * 1.02];
1011
+ return [min * 0.97, max * 1.03];
1012
+ }
1013
+ function visibleVolumeRange(u) {
1014
+ if (!currentCandles.length) return null;
1015
+ const xs = u.data[0];
1016
+ const xScale = u.scales.x || {};
1017
+ const minX = Number.isFinite(xScale.min) ? xScale.min : xs[0];
1018
+ const maxX = Number.isFinite(xScale.max) ? xScale.max : xs[xs.length - 1];
1019
+ let start = Math.max(0, lowerBound(xs, minX) - 1);
1020
+ let end = Math.min(xs.length, lowerBound(xs, maxX) + 2);
1021
+ let max = 0;
1022
+ for (let i = start; i < end; i++) {
1023
+ const v = currentCandles[i]?.volume;
1024
+ if (Number.isFinite(v) && v > max) max = v;
1025
+ }
1026
+ if (!Number.isFinite(max) || max <= 0) return [0, 1];
1027
+ return [0, max * 1.15];
1028
+ }
1029
+ function setActiveTimeframe(label) {
1030
+ document.querySelectorAll('.time-btn').forEach((btn) => btn.classList.toggle('active', btn.dataset.timeframe === label));
1031
+ }
1032
+ function setActivePriceScale(label) {
1033
+ const btn = document.getElementById('scale-toggle');
1034
+ if (!btn) return;
1035
+ const next = label === 'linear' ? 'linear' : 'log';
1036
+ btn.dataset.scale = next;
1037
+ btn.classList.toggle('is-linear', next === 'linear');
1038
+ btn.textContent = next === 'linear' ? 'Linear' : 'Log';
1039
+ btn.title = next === 'linear' ? 'Toggle to log scale' : 'Toggle to linear scale';
1040
+ btn.setAttribute('aria-label', next === 'linear' ? 'Toggle to log scale' : 'Toggle to linear scale');
1041
+ }
1042
+ function resetAmaDefaults() {
1043
+ currentAmaErPeriod = Number(payload.amaDefaults?.erPeriod || ${MARKET_ADAPTER.AMAS.AMA3.erPeriod});
1044
+ currentAmaFastPeriod = Number(payload.amaDefaults?.fastPeriod || ${MARKET_ADAPTER.AMAS.AMA3.fastPeriod});
1045
+ currentAmaSlowPeriod = Number(payload.amaDefaults?.slowPeriod || ${MARKET_ADAPTER.AMAS.AMA3.slowPeriod});
1046
+ setControls();
1047
+ rerender(false);
1048
+ }
1049
+ function setIndicatorSeriesVisible(seriesIndex, visible) {
1050
+ if (!priceChart) return;
1051
+ priceChart.setSeries(seriesIndex, { show: visible }, false, false);
1052
+ }
1053
+ function syncIndicatorSeriesVisibility() {
1054
+ if (!priceChart) return;
1055
+ setIndicatorSeriesVisible(5, currentSmaEnabled);
1056
+ setIndicatorSeriesVisible(6, currentAmaEnabled);
1057
+ setIndicatorSeriesVisible(7, currentVwapEnabled);
1058
+ setIndicatorSeriesVisible(8, currentAmaEnabled);
1059
+ setIndicatorSeriesVisible(9, currentAmaEnabled && currentAmaInitOffset !== 0);
1060
+ setIndicatorSeriesVisible(10, currentAmaEnabled && currentAmaInitOffset !== 0);
1061
+ }
1062
+ function hideSmaSeriesImmediate() {
1063
+ clearSMAWorker();
1064
+ currentSma = new Array(currentCandles.length).fill(null);
1065
+ if (Array.isArray(currentPriceData) && currentPriceData.length >= 11) {
1066
+ currentPriceData[5] = currentSma;
1067
+ }
1068
+ setIndicatorSeriesVisible(5, false);
1069
+ refreshLegend();
1070
+ saveState();
1071
+ }
1072
+ function hideAmaSeriesImmediate() {
1073
+ currentAma = new Array(currentCandles.length).fill(null);
1074
+ currentAmaOff = new Array(currentCandles.length).fill(null);
1075
+ currentSmaInit = new Array(currentCandles.length).fill(null);
1076
+ currentSmaInitOff = new Array(currentCandles.length).fill(null);
1077
+ if (Array.isArray(currentPriceData) && currentPriceData.length >= 11) {
1078
+ currentPriceData[6] = currentAma;
1079
+ currentPriceData[8] = currentSmaInit;
1080
+ currentPriceData[9] = currentSmaInitOff;
1081
+ currentPriceData[10] = currentAmaOff;
1082
+ }
1083
+ setIndicatorSeriesVisible(6, false);
1084
+ setIndicatorSeriesVisible(8, false);
1085
+ setIndicatorSeriesVisible(9, false);
1086
+ setIndicatorSeriesVisible(10, false);
1087
+ refreshLegend();
1088
+ saveState();
1089
+ }
1090
+ function hideVwapSeriesImmediate() {
1091
+ currentVwap = new Array(currentCandles.length).fill(null);
1092
+ if (Array.isArray(currentPriceData) && currentPriceData.length >= 11) {
1093
+ currentPriceData[7] = currentVwap;
1094
+ }
1095
+ setIndicatorSeriesVisible(7, false);
1096
+ refreshLegend();
1097
+ saveState();
1098
+ }
1099
+ function updateLegend(idx) {
1100
+ const c = currentCandles[idx];
1101
+ if (!c) return;
1102
+ const smaKey = getSmaCacheKey(currentSmaPeriod);
1103
+ const smaPending = currentSmaEnabled && smaWorkerJob && smaWorkerJob.key === smaKey && !smaCache.has(smaKey);
1104
+ document.getElementById('legend-time').textContent = fmtTime(c.time);
1105
+ document.getElementById('legend-close').textContent = fmtPrice(c.close);
1106
+ const delta = Number.isFinite(c.open) && Number.isFinite(c.close) ? (c.close - c.open) : null;
1107
+ document.getElementById('legend-delta').textContent = Number.isFinite(delta)
1108
+ ? ((delta >= 0 ? '+' : '') + fmtPrice(delta))
1109
+ : '-';
1110
+ document.getElementById('legend-volume').textContent = fmtVolume(c.volume);
1111
+ document.getElementById('legend-scale').textContent = currentPriceScale === 'linear' ? 'Linear' : 'Log';
1112
+ document.getElementById('legend-sma').textContent = Number.isFinite(currentSma[idx]) ? fmtPrice(currentSma[idx]) : (smaPending ? '...' : '-');
1113
+ document.getElementById('legend-ama').textContent = Number.isFinite(currentAma[idx]) ? fmtPrice(currentAma[idx]) : '-';
1114
+ document.getElementById('legend-sma-init').textContent = Number.isFinite(currentSmaInit[idx]) ? fmtPrice(currentSmaInit[idx]) : '-';
1115
+ document.getElementById('legend-off-init').textContent = Number.isFinite(currentSmaInitOff[idx]) ? fmtPrice(currentSmaInitOff[idx]) : '-';
1116
+ document.getElementById('legend-ama-off').textContent = Number.isFinite(currentAmaOff[idx]) ? fmtPrice(currentAmaOff[idx]) : '-';
1117
+ document.getElementById('legend-vwap').textContent = Number.isFinite(currentVwap[idx]) ? fmtPrice(currentVwap[idx]) : '-';
1118
+ }
1119
+ function candlePlugin() {
1120
+ function drawCandles(u) {
1121
+ u.ctx.save();
1122
+
1123
+ const offset = 0.5;
1124
+ u.ctx.translate(offset, offset);
1125
+
1126
+ const [iMin, iMax] = u.series[0].idxs;
1127
+
1128
+ for (let i = iMin; i <= iMax; i++) {
1129
+ const xVal = u.scales.x.distr == 2 ? i : u.data[0][i];
1130
+ const open = u.data[1][i];
1131
+ const high = u.data[2][i];
1132
+ const low = u.data[3][i];
1133
+ const close = u.data[4][i];
1134
+
1135
+ const x = u.valToPos(xVal, 'x', true);
1136
+ const openY = u.valToPos(open, 'y', true);
1137
+ const highY = u.valToPos(high, 'y', true);
1138
+ const lowY = u.valToPos(low, 'y', true);
1139
+ const closeY = u.valToPos(close, 'y', true);
1140
+ if (![x, openY, highY, lowY, closeY].every(Number.isFinite)) continue;
1141
+
1142
+ const nextX = i + 1 <= iMax ? u.valToPos(u.scales.x.distr == 2 ? (i + 1) : u.data[0][i + 1], 'x', true) : null;
1143
+ const prevX = i - 1 >= iMin ? u.valToPos(u.scales.x.distr == 2 ? (i - 1) : u.data[0][i - 1], 'x', true) : null;
1144
+ const spacing = Number.isFinite(nextX) ? (nextX - x) : (Number.isFinite(prevX) ? (x - prevX) : 12);
1145
+ // Wider bodies read better when zoomed in and reduce empty space between candles.
1146
+ const bodyW = Math.max(
1147
+ 4,
1148
+ Math.min(
1149
+ Math.abs(spacing) * 0.86,
1150
+ Math.max(18, Math.abs(spacing) * 0.94),
1151
+ ),
1152
+ );
1153
+ const dir = candleDirection(open, close);
1154
+ const bodyColor = dir === 'up' ? '#26a69a' : (dir === 'down' ? '#ef5350' : '#64748b');
1155
+ const wickColor = dir === 'up' ? '#b3fff3' : (dir === 'down' ? '#ffb3b3' : '#94a3b8');
1156
+ const bodyTop = Math.min(openY, closeY);
1157
+ const bodyBottom = Math.max(openY, closeY);
1158
+ const bodyH = Math.max(dir === 'flat' ? 2 : 3, Math.round(bodyBottom - bodyTop));
1159
+ const bodyX = Math.round(x - bodyW / 2);
1160
+ const bodyY = Math.round(bodyTop);
1161
+
1162
+ const wickW = Math.max(1, Math.min(5, Math.round(Math.abs(spacing) * 0.14)));
1163
+ u.ctx.strokeStyle = wickColor;
1164
+ u.ctx.lineWidth = wickW;
1165
+ u.ctx.beginPath();
1166
+ u.ctx.moveTo(x, highY);
1167
+ u.ctx.lineTo(x, lowY);
1168
+ u.ctx.stroke();
1169
+
1170
+ u.ctx.fillStyle = bodyColor;
1171
+ u.ctx.fillRect(bodyX, bodyY, Math.round(bodyW), bodyH);
1172
+ if (bodyW > 2 && bodyH > 2) {
1173
+ u.ctx.strokeStyle = dir === 'up' ? '#0f7f77' : (dir === 'down' ? '#a92d35' : '#475569');
1174
+ u.ctx.lineWidth = 1;
1175
+ u.ctx.strokeRect(bodyX + 0.5, bodyY + 0.5, Math.round(bodyW) - 1, bodyH - 1);
1176
+ }
1177
+ }
1178
+
1179
+ u.ctx.translate(-offset, -offset);
1180
+ u.ctx.restore();
1181
+ }
1182
+
1183
+ return {
1184
+ opts: (u, opts) => {
1185
+ uPlot.assign(opts, {
1186
+ cursor: { drag: { x: false, y: false, setScale: false }, focus: { prox: 20 } },
1187
+ });
1188
+ opts.series.forEach((s, i) => {
1189
+ if (i > 0 && i <= 4) {
1190
+ s.paths = () => null;
1191
+ s.points = { show: false };
1192
+ s.stroke = 'transparent';
1193
+ }
1194
+ });
1195
+ },
1196
+ hooks: { drawAxes: [drawCandles] },
1197
+ };
1198
+ }
1199
+ function volumePlugin() {
1200
+ function drawVolumeBars(u) {
1201
+ u.ctx.save();
1202
+
1203
+ const offset = 0.5;
1204
+ u.ctx.translate(offset, offset);
1205
+
1206
+ const [iMin, iMax] = u.series[0].idxs;
1207
+ const xVals = u.data[0];
1208
+ const volVals = u.data[1];
1209
+
1210
+ for (let i = iMin; i <= iMax; i++) {
1211
+ const vol = volVals[i];
1212
+ if (!Number.isFinite(vol) || vol <= 0) continue;
1213
+
1214
+ const xVal = u.scales.x.distr == 2 ? i : xVals[i];
1215
+ const x = u.valToPos(xVal, 'x', true);
1216
+ const top = u.valToPos(vol, 'y', true);
1217
+ const bottom = u.valToPos(0, 'y', true);
1218
+ if (![x, top, bottom].every(Number.isFinite)) continue;
1219
+
1220
+ const nextX = i + 1 <= iMax ? u.valToPos(u.scales.x.distr == 2 ? (i + 1) : xVals[i + 1], 'x', true) : null;
1221
+ const prevX = i - 1 >= iMin ? u.valToPos(u.scales.x.distr == 2 ? (i - 1) : xVals[i - 1], 'x', true) : null;
1222
+ const spacing = Number.isFinite(nextX) ? (nextX - x) : (Number.isFinite(prevX) ? (x - prevX) : 12);
1223
+ const barW = Math.max(
1224
+ 4,
1225
+ Math.min(
1226
+ Math.abs(spacing) * 0.86,
1227
+ Math.max(18, Math.abs(spacing) * 0.94),
1228
+ ),
1229
+ );
1230
+
1231
+ const left = Math.round(x - barW / 2);
1232
+ const topY = Math.round(Math.min(top, bottom));
1233
+ const h = Math.max(1, Math.round(Math.abs(bottom - top)));
1234
+
1235
+ u.ctx.fillStyle = '#ffffff';
1236
+ u.ctx.fillRect(left, topY, Math.round(barW), h);
1237
+ }
1238
+
1239
+ u.ctx.translate(-offset, -offset);
1240
+ u.ctx.restore();
1241
+ }
1242
+
1243
+ return {
1244
+ opts: (u, opts) => {
1245
+ uPlot.assign(opts, {
1246
+ cursor: { drag: { x: false, y: false, setScale: false }, focus: { prox: 20 } },
1247
+ });
1248
+ opts.series.forEach((s, i) => {
1249
+ if (i === 1) {
1250
+ s.paths = () => null;
1251
+ s.points = { show: false };
1252
+ s.stroke = 'transparent';
1253
+ s.fill = 'transparent';
1254
+ }
1255
+ });
1256
+ },
1257
+ hooks: { drawAxes: [drawVolumeBars] },
1258
+ };
1259
+ }
1260
+ function buildData() {
1261
+ const tf = timeframeMap.get(currentTimeframe) || timeframeMap.get(defaultTimeframe.label) || timeframes[0];
1262
+ currentSeriesState = getSeriesState(currentPairMode);
1263
+ currentSeriesCandles = currentSeriesState.candles;
1264
+ currentSeriesCloseValues = currentSeriesState.closeValues;
1265
+ const aggregated = aggregateCandles(currentSeriesCandles, tf?.seconds || 3600);
1266
+ currentCandles = aggregated.candles;
1267
+ currentDisplayCandles = deriveDisplayCandles(currentCandles);
1268
+ currentOpen = currentDisplayCandles.map((c) => c.open);
1269
+ currentHigh = currentCandles.map((c) => c.high);
1270
+ currentLow = currentCandles.map((c) => c.low);
1271
+ currentClose = currentDisplayCandles.map((c) => c.close);
1272
+ const baseAma = currentAmaEnabled ? computeAMA(currentSeriesCandles, currentAmaConfig()) : [];
1273
+ const baseAmaOff = currentAmaEnabled && currentAmaInitOffset !== 0
1274
+ ? computeAMA(currentSeriesCandles, currentAmaConfig(), currentAmaInitOffset)
1275
+ : [];
1276
+ const baseVwap = currentVwapEnabled ? computeVWMA(currentSeriesCandles, currentVwapBars) : [];
1277
+ if (currentSmaEnabled) {
1278
+ const smaKey = getSmaCacheKey(currentSmaPeriod);
1279
+ const baseSma = smaCache.get(smaKey);
1280
+ if (baseSma) {
1281
+ currentSma = sampleSeriesByIndex(baseSma, aggregated.idxs);
1282
+ } else {
1283
+ currentSma = new Array(currentCandles.length).fill(null);
1284
+ requestSMA(currentSmaPeriod);
1285
+ }
1286
+ } else {
1287
+ currentSma = new Array(currentCandles.length).fill(null);
1288
+ }
1289
+ currentAma = currentAmaEnabled ? sampleSeriesByIndex(baseAma, aggregated.idxs) : new Array(currentCandles.length).fill(null);
1290
+ currentAmaOff = currentAmaEnabled && currentAmaInitOffset !== 0 ? sampleSeriesByIndex(baseAmaOff, aggregated.idxs) : new Array(currentCandles.length).fill(null);
1291
+ currentVwap = currentVwapEnabled ? sampleSeriesByIndex(baseVwap, aggregated.idxs) : new Array(currentCandles.length).fill(null);
1292
+ const amaCfg = currentAmaConfig();
1293
+ const warmupInit = currentAmaEnabled && baseAma.length > amaCfg.erPeriod ? baseAma[amaCfg.erPeriod] : null;
1294
+ const baseSmaInit = warmupInit !== null
1295
+ ? currentSeriesCandles.map((c, i) => i <= amaCfg.erPeriod ? warmupInit : null)
1296
+ : new Array(currentSeriesCandles.length).fill(null);
1297
+ currentSmaInit = sampleSeriesByIndex(baseSmaInit, aggregated.idxs);
1298
+ const offsetInit = currentAmaEnabled && currentAmaInitOffset !== 0 && baseAmaOff.length > amaCfg.erPeriod
1299
+ ? baseAmaOff[amaCfg.erPeriod]
1300
+ : null;
1301
+ const baseSmaInitOff = offsetInit !== null
1302
+ ? currentSeriesCandles.map((c, i) => i <= amaCfg.erPeriod ? offsetInit : null)
1303
+ : new Array(currentSeriesCandles.length).fill(null);
1304
+ currentSmaInitOff = sampleSeriesByIndex(baseSmaInitOff, aggregated.idxs);
1305
+ currentPriceData = [
1306
+ currentCandles.map((c) => c.time),
1307
+ currentOpen,
1308
+ currentHigh,
1309
+ currentLow,
1310
+ currentClose,
1311
+ currentSma,
1312
+ currentAma,
1313
+ currentVwap,
1314
+ currentSmaInit,
1315
+ currentSmaInitOff,
1316
+ currentAmaOff,
1317
+ ];
1318
+ currentVolumeData = [
1319
+ currentCandles.map((c) => c.time),
1320
+ currentCandles.map((c) => c.volume),
1321
+ ];
1322
+ return {
1323
+ priceData: currentPriceData,
1324
+ volumeData: currentVolumeData,
1325
+ };
1326
+ }
1327
+ function makeChart() {
1328
+ const data = buildData();
1329
+ const isLogScale = currentPriceScale !== 'linear';
1330
+
1331
+ const priceOpts = {
1332
+ width: priceEl.clientWidth,
1333
+ height: priceEl.clientHeight,
1334
+ padding: [14, 8, 8, 8],
1335
+ legend: { show: false },
1336
+ select: { show: false },
1337
+ cursor: { sync: { key: STORAGE_KEY, setSeries: false, scales: ['x', null] }, drag: { x: false, y: false, setScale: false }, focus: { prox: 20 } },
1338
+ scales: {
1339
+ x: { time: true },
1340
+ y: {
1341
+ auto: true,
1342
+ distr: isLogScale ? 3 : 1,
1343
+ log: isLogScale ? 10 : undefined,
1344
+ range: (u, min, max) => {
1345
+ const vis = visiblePriceRange(u);
1346
+ if (vis) return vis;
1347
+ if (isLogScale) {
1348
+ if (!Number.isFinite(min) || !Number.isFinite(max) || min <= 0 || max <= 0) return [1, 10];
1349
+ } else if (!Number.isFinite(min) || !Number.isFinite(max)) {
1350
+ return [0, 1];
1351
+ }
1352
+ return [min * 0.97, max * 1.03];
1353
+ },
1354
+ },
1355
+ },
1356
+ series: [
1357
+ { label: 'Time' },
1358
+ { label: 'Open' },
1359
+ { label: 'High' },
1360
+ { label: 'Low' },
1361
+ { label: 'Close' },
1362
+ { label: 'SMA', stroke: '#ffffff', width: 2, points: { show: false }, spanGaps: true },
1363
+ { label: 'AMA', stroke: '#facc15', width: 2, points: { show: false }, spanGaps: true },
1364
+ { label: 'VWMA', stroke: '#93c5fd', width: 2, points: { show: false }, spanGaps: true },
1365
+ { label: 'AMA Init', stroke: '#22c55e', width: 1.5, dash: [6, 4], points: { show: false }, spanGaps: false },
1366
+ { label: 'Off Init', stroke: '#a855f7', width: 1.5, dash: [6, 4], points: { show: false }, spanGaps: false },
1367
+ { label: 'AMA Off', stroke: '#a855f7', width: 1.5, dash: [4, 4], points: { show: false }, spanGaps: false },
1368
+ ],
1369
+ axes: [
1370
+ makeTimeAxis(false),
1371
+ { scale: 'y', size: 62, stroke: '#ffffff', grid: { stroke: '#1c2128' }, ticks: { stroke: '#30363d', width: 1 }, values: (u, vals) => vals.map((v) => (v == null ? '' : fmtPrice(v))) },
1372
+ ],
1373
+ };
1374
+
1375
+ const plugin = candlePlugin();
1376
+ plugin.opts(null, priceOpts);
1377
+ priceOpts.plugins = [plugin];
1378
+ if (!priceChart) priceChart = new uPlot(priceOpts, data.priceData, priceEl);
1379
+ else priceChart.setData(data.priceData, false);
1380
+
1381
+ const volumeOpts = {
1382
+ width: volumeEl.clientWidth,
1383
+ height: volumeEl.clientHeight,
1384
+ padding: [6, 8, 8, 8],
1385
+ legend: { show: false },
1386
+ select: { show: false },
1387
+ cursor: { sync: { key: STORAGE_KEY, setSeries: false, scales: ['x', null] }, drag: { x: false, y: false, setScale: false }, focus: { prox: 20 } },
1388
+ scales: {
1389
+ x: { time: true },
1390
+ y: {
1391
+ auto: true,
1392
+ range: (u, min, max) => {
1393
+ const vis = visibleVolumeRange(u);
1394
+ if (vis) return vis;
1395
+ if (!Number.isFinite(min) || !Number.isFinite(max) || max <= 0) return [0, 1];
1396
+ return [0, max * 1.15];
1397
+ },
1398
+ },
1399
+ },
1400
+ series: [
1401
+ { label: 'Time' },
1402
+ { label: 'Volume', stroke: '#ffffff', fill: '#ffffff', width: 1, points: { show: false } },
1403
+ ],
1404
+ axes: [
1405
+ makeTimeAxis(true),
1406
+ { scale: 'y', size: 62, stroke: '#ffffff', grid: { stroke: '#1c2128' }, ticks: { stroke: '#30363d', width: 1 }, values: (u, vals) => vals.map((v) => (v == null ? '' : fmtVolume(v))) },
1407
+ ],
1408
+ };
1409
+
1410
+ const volumePluginInst = volumePlugin();
1411
+ volumePluginInst.opts(null, volumeOpts);
1412
+ volumeOpts.plugins = [volumePluginInst];
1413
+ if (!volumeChart) volumeChart = new uPlot(volumeOpts, data.volumeData, volumeEl);
1414
+ else volumeChart.setData(data.volumeData, false);
1415
+
1416
+ charts = [priceChart, volumeChart];
1417
+ lastRenderedPriceScale = currentPriceScale;
1418
+ return priceChart;
1419
+ }
1420
+ function clampRange(min, max) {
1421
+ if (!currentCandles.length || !Number.isFinite(min) || !Number.isFinite(max) || max <= min) return null;
1422
+ const first = currentCandles[0].time;
1423
+ const last = currentCandles[currentCandles.length - 1].time;
1424
+ let lo = min;
1425
+ let hi = max;
1426
+ if (lo < first) { hi += first - lo; lo = first; }
1427
+ if (hi > last) { lo -= hi - last; hi = last; }
1428
+ if (lo < first) lo = first;
1429
+ if (hi > last) hi = last;
1430
+ if (hi <= lo) return null;
1431
+ return { min: lo, max: hi };
1432
+ }
1433
+ function syncXRange(min, max) {
1434
+ pendingRange = clampRange(min, max);
1435
+ if (pendingRangeRaf) return;
1436
+ pendingRangeRaf = requestAnimationFrame(() => {
1437
+ const next = pendingRange;
1438
+ pendingRange = null;
1439
+ pendingRangeRaf = 0;
1440
+ if (!next || charts.length === 0) return;
1441
+ charts.forEach((chart) => chart.batch(() => chart.setScale('x', next)));
1442
+ });
1443
+ }
1444
+ function bindWheelZoom(chart) {
1445
+ chart.root.addEventListener('wheel', (e) => {
1446
+ if (e.ctrlKey || e.metaKey || e.altKey) return;
1447
+ e.preventDefault();
1448
+ const rect = chart.root.getBoundingClientRect();
1449
+ const center = chart.posToVal(e.clientX - rect.left, 'x');
1450
+ const s = chart.scales.x || {};
1451
+ const currMin = Number.isFinite(s.min) ? s.min : currentCandles[0].time;
1452
+ const currMax = Number.isFinite(s.max) ? s.max : currentCandles[currentCandles.length - 1].time;
1453
+ const span = currMax - currMin;
1454
+ const first = currentCandles[0]?.time;
1455
+ const last = currentCandles[currentCandles.length - 1]?.time;
1456
+ const fullSpan = Number.isFinite(first) && Number.isFinite(last) ? Math.max(1, last - first) : span;
1457
+ if (!Number.isFinite(span) || span <= 0) return;
1458
+ const factor = e.deltaY < 0 ? 0.85 : 1.15;
1459
+ const nextSpan = Math.max(1, Math.min(fullSpan, span * factor));
1460
+ const ratio = (center - currMin) / span;
1461
+ syncXRange(center - nextSpan * ratio, center - nextSpan * ratio + nextSpan);
1462
+ }, { passive: false });
1463
+ }
1464
+ function bindPan(chart) {
1465
+ let dragging = false;
1466
+ let startClientX = 0;
1467
+ let startMin = 0;
1468
+ let startMax = 0;
1469
+ const onMove = (e) => {
1470
+ if (!dragging) return;
1471
+ e.preventDefault();
1472
+ const rect = chart.root.getBoundingClientRect();
1473
+ const delta = chart.posToVal(e.clientX - rect.left, 'x') - chart.posToVal(startClientX - rect.left, 'x');
1474
+ syncXRange(startMin - delta, startMax - delta);
1475
+ };
1476
+ const endDrag = () => {
1477
+ if (!dragging) return;
1478
+ dragging = false;
1479
+ document.body.style.cursor = '';
1480
+ window.removeEventListener('mousemove', onMove);
1481
+ window.removeEventListener('mouseup', endDrag);
1482
+ };
1483
+ chart.root.addEventListener('mousedown', (e) => {
1484
+ if (!e || e.button !== 0 || e.ctrlKey || e.metaKey || e.altKey) return;
1485
+ const rect = chart.root.getBoundingClientRect();
1486
+ if (e.clientX < rect.left || e.clientX > rect.right || e.clientY < rect.top || e.clientY > rect.bottom) return;
1487
+ e.preventDefault();
1488
+ e.stopPropagation();
1489
+ dragging = true;
1490
+ startClientX = e.clientX;
1491
+ const s = chart.scales.x || {};
1492
+ startMin = Number.isFinite(s.min) ? s.min : currentCandles[0].time;
1493
+ startMax = Number.isFinite(s.max) ? s.max : currentCandles[currentCandles.length - 1].time;
1494
+ document.body.style.cursor = 'grabbing';
1495
+ window.addEventListener('mousemove', onMove);
1496
+ window.addEventListener('mouseup', endDrag, { once: true });
1497
+ });
1498
+ }
1499
+ function refreshLegend() {
1500
+ updateLegend(Math.max(0, currentCandles.length - 1));
1501
+ }
1502
+ function setControls() {
1503
+ setActivePairMode(currentPairMode);
1504
+ setActivePriceScale(currentPriceScale);
1505
+ document.getElementById('sma-toggle').checked = currentSmaEnabled;
1506
+ document.getElementById('sma-period').value = String(currentSmaPeriod);
1507
+ document.getElementById('ama-toggle').checked = currentAmaEnabled;
1508
+ document.getElementById('ama-er').value = String(currentAmaErPeriod);
1509
+ document.getElementById('ama-fast').value = currentAmaFastPeriod.toFixed(1);
1510
+ document.getElementById('ama-slow').value = currentAmaSlowPeriod.toFixed(1);
1511
+ document.getElementById('vwap-toggle').checked = currentVwapEnabled;
1512
+ document.getElementById('vwap-bars').value = String(currentVwapBars);
1513
+ document.getElementById('ama-init-offset-toggle').checked = currentAmaInitOffsetEnabled;
1514
+ document.getElementById('ama-init-offset').value = String(currentAmaInitOffset);
1515
+ document.getElementById('ama-init-offset').disabled = !currentAmaInitOffsetEnabled;
1516
+ document.getElementById('ama-init-offset-val').textContent = currentAmaInitOffset + '%';
1517
+ setActiveTimeframe(currentTimeframe);
1518
+ refreshSubtitle();
1519
+ }
1520
+ function rerender(keepRange = true) {
1521
+ const oldRange = keepRange && priceChart ? priceChart.scales.x : null;
1522
+ const needsRebuild = !priceChart || !volumeChart || lastRenderedPriceScale !== currentPriceScale;
1523
+ if (needsRebuild) {
1524
+ if (priceEl) priceEl.innerHTML = '';
1525
+ if (volumeEl) volumeEl.innerHTML = '';
1526
+ priceChart = null;
1527
+ volumeChart = null;
1528
+ charts = [];
1529
+ chartEventsBound = false;
1530
+ }
1531
+ const data = buildData();
1532
+ if (needsRebuild) {
1533
+ makeChart();
1534
+ } else {
1535
+ priceChart.setData(data.priceData, false);
1536
+ volumeChart.setData(data.volumeData, false);
1537
+ }
1538
+ syncIndicatorSeriesVisibility();
1539
+ if (!priceChart || !volumeChart) return;
1540
+ if (!chartEventsBound) {
1541
+ charts.forEach((chart) => {
1542
+ bindWheelZoom(chart);
1543
+ bindPan(chart);
1544
+ chart.over.addEventListener('mousemove', () => {
1545
+ if (chart.cursor.idx != null) updateLegend(chart.cursor.idx);
1546
+ });
1547
+ chart.over.addEventListener('mouseleave', refreshLegend);
1548
+ chart.root.addEventListener('mouseenter', () => chart.root.classList.add('is-hovered'));
1549
+ chart.root.addEventListener('mouseleave', () => chart.root.classList.remove('is-hovered'));
1550
+ });
1551
+ chartEventsBound = true;
1552
+ }
1553
+ if (oldRange && Number.isFinite(oldRange.min) && Number.isFinite(oldRange.max)) {
1554
+ const next = clampRange(oldRange.min, oldRange.max);
1555
+ if (next) charts.forEach((chart) => chart.batch(() => chart.setScale('x', next)));
1556
+ }
1557
+ refreshLegend();
1558
+ saveState();
1559
+ }
1560
+
1561
+ setControls();
1562
+ rerender(false);
1563
+
1564
+ document.querySelectorAll('.time-btn').forEach((btn) => {
1565
+ btn.addEventListener('click', () => {
1566
+ if (btn.disabled) return;
1567
+ const label = btn.dataset.timeframe;
1568
+ if (!label || label === currentTimeframe) return;
1569
+ currentTimeframe = label;
1570
+ setActiveTimeframe(label);
1571
+ rerender(true);
1572
+ });
1573
+ });
1574
+
1575
+ const scaleToggle = document.getElementById('scale-toggle');
1576
+ if (scaleToggle) {
1577
+ scaleToggle.addEventListener('click', () => {
1578
+ currentPriceScale = currentPriceScale === 'linear' ? 'log' : 'linear';
1579
+ setActivePriceScale(currentPriceScale);
1580
+ rerender(false);
1581
+ });
1582
+ }
1583
+ const pairToggle = document.getElementById('pair-toggle');
1584
+ if (pairToggle) {
1585
+ pairToggle.addEventListener('click', () => {
1586
+ currentPairMode = currentPairMode === 'inverse' ? 'normal' : 'inverse';
1587
+ setControls();
1588
+ rerender(true);
1589
+ });
1590
+ }
1591
+
1592
+ const syncInputs = () => {
1593
+ currentSmaEnabled = document.getElementById('sma-toggle').checked;
1594
+ currentSmaPeriod = clamp(Math.round(Number(document.getElementById('sma-period').value) || 20), 1, 9999);
1595
+ currentAmaEnabled = document.getElementById('ama-toggle').checked;
1596
+ currentAmaErPeriod = clamp(Math.round(Number(document.getElementById('ama-er').value) || ${MARKET_ADAPTER.AMAS.AMA3.erPeriod}), 1, 999999);
1597
+ currentAmaFastPeriod = Math.round(clamp(Number(document.getElementById('ama-fast').value) || Number(payload.amaDefaults?.fastPeriod || ${MARKET_ADAPTER.AMAS.AMA3.fastPeriod}), 0.1, 999999) * 10) / 10;
1598
+ currentAmaSlowPeriod = Math.round(clamp(Number(document.getElementById('ama-slow').value) || Number(payload.amaDefaults?.slowPeriod || ${MARKET_ADAPTER.AMAS.AMA3.slowPeriod}), 0.1, 999999) * 10) / 10;
1599
+ currentAmaInitOffsetEnabled = document.getElementById('ama-init-offset-toggle').checked;
1600
+ currentAmaInitOffset = currentAmaInitOffsetEnabled ? snapInitOffset(document.getElementById('ama-init-offset').value) : 0;
1601
+ document.getElementById('ama-init-offset').value = String(currentAmaInitOffset);
1602
+ document.getElementById('ama-init-offset').disabled = !currentAmaInitOffsetEnabled;
1603
+ document.getElementById('ama-init-offset-val').textContent = currentAmaInitOffset + '%';
1604
+ currentVwapEnabled = document.getElementById('vwap-toggle').checked;
1605
+ currentVwapBars = clamp(Math.round(Number(document.getElementById('vwap-bars').value) || 500), 24, 2000);
1606
+ setControls();
1607
+ rerender(false);
1608
+ };
1609
+
1610
+ document.getElementById('sma-toggle').addEventListener('change', () => {
1611
+ const nextEnabled = document.getElementById('sma-toggle').checked;
1612
+ if (currentSmaEnabled === nextEnabled) return;
1613
+ currentSmaEnabled = nextEnabled;
1614
+ setControls();
1615
+ if (!currentSmaEnabled) {
1616
+ hideSmaSeriesImmediate();
1617
+ return;
1618
+ }
1619
+ rerender(false);
1620
+ });
1621
+ document.getElementById('ama-toggle').addEventListener('change', () => {
1622
+ const nextEnabled = document.getElementById('ama-toggle').checked;
1623
+ if (currentAmaEnabled === nextEnabled) return;
1624
+ currentAmaEnabled = nextEnabled;
1625
+ setControls();
1626
+ if (!currentAmaEnabled) {
1627
+ hideAmaSeriesImmediate();
1628
+ return;
1629
+ }
1630
+ rerender(false);
1631
+ });
1632
+ document.getElementById('vwap-toggle').addEventListener('change', () => {
1633
+ const nextEnabled = document.getElementById('vwap-toggle').checked;
1634
+ if (currentVwapEnabled === nextEnabled) return;
1635
+ currentVwapEnabled = nextEnabled;
1636
+ setControls();
1637
+ if (!currentVwapEnabled) {
1638
+ hideVwapSeriesImmediate();
1639
+ return;
1640
+ }
1641
+ rerender(false);
1642
+ });
1643
+ document.getElementById('ama-init-offset-toggle').addEventListener('change', syncInputs);
1644
+ ['sma-period', 'ama-er', 'ama-fast', 'ama-slow', 'vwap-bars'].forEach((id) => {
1645
+ document.getElementById(id).addEventListener('change', syncInputs);
1646
+ document.getElementById(id).addEventListener('blur', syncInputs);
1647
+ });
1648
+ ['ama-er'].forEach((id) => {
1649
+ document.getElementById(id).addEventListener('input', syncInputs);
1650
+ });
1651
+ function makeStepper(id, step, lo, precision) {
1652
+ const dec = document.getElementById(id + '-dec');
1653
+ const inc = document.getElementById(id + '-inc');
1654
+ if (!dec || !inc) return;
1655
+ const input = document.getElementById(id);
1656
+ function stepVal(dir) {
1657
+ const val = parseFloat(input.value) || 0;
1658
+ let next = dir < 0 ? Math.max(lo, val - step) : val + step;
1659
+ if (precision === 0) next = Math.round(next);
1660
+ else if (precision > 0) next = Math.round(next * Math.pow(10, precision)) / Math.pow(10, precision);
1661
+ input.value = precision >= 0 ? next.toFixed(precision) : String(next);
1662
+ syncInputs();
1663
+ }
1664
+ function addHold(el, dir) {
1665
+ let timer = null;
1666
+ function start() {
1667
+ stepVal(dir);
1668
+ timer = setTimeout(() => {
1669
+ timer = setInterval(() => stepVal(dir), 100);
1670
+ }, 300);
1671
+ }
1672
+ function stop() {
1673
+ if (timer) { clearInterval(timer); clearTimeout(timer); timer = null; }
1674
+ }
1675
+ el.addEventListener('mousedown', start);
1676
+ el.addEventListener('mouseup', stop);
1677
+ el.addEventListener('mouseleave', stop);
1678
+ }
1679
+ addHold(dec, -1);
1680
+ addHold(inc, 1);
1681
+ }
1682
+ makeStepper('sma-period', 1, 1, 0);
1683
+ makeStepper('vwap-bars', 1, 24, 0);
1684
+ makeStepper('ama-er', 1, 1, 0);
1685
+ makeStepper('ama-fast', 0.1, 0.1, 1);
1686
+ makeStepper('ama-slow', 1, 0.1, 1);
1687
+ document.getElementById('ama-reset').addEventListener('click', resetAmaDefaults);
1688
+ document.getElementById('ama-init-offset').addEventListener('input', () => {
1689
+ const input = document.getElementById('ama-init-offset');
1690
+ const snapped = snapInitOffset(input.value);
1691
+ if (String(snapped) !== String(input.value)) input.value = String(snapped);
1692
+ document.getElementById('ama-init-offset-val').textContent = snapped + '%';
1693
+ syncInputs();
1694
+ });
1695
+
1696
+ window.addEventListener('resize', () => {
1697
+ if (!charts.length) return;
1698
+ charts.forEach((chart) => {
1699
+ const el = chart === priceChart ? priceEl : volumeEl;
1700
+ chart.setSize({ width: el.clientWidth, height: el.clientHeight });
1701
+ });
1702
+ });
1703
+
1704
+ window.addEventListener('keydown', (e) => {
1705
+ if ((e.ctrlKey || e.metaKey) && e.key === '0' && charts.length) {
1706
+ const first = currentCandles[0]?.time;
1707
+ const last = currentCandles[currentCandles.length - 1]?.time;
1708
+ if (Number.isFinite(first) && Number.isFinite(last)) syncXRange(first, last);
1709
+ }
1710
+ });
1711
+ })();
1712
+ </script>
1713
+ </body>
1714
+ </html>`;
1715
+ }
1716
+
1717
+ export { generateHTML, normalizeCandle, loadMarketProfiles }
1718
+