@perses-dev/plugin-system 0.0.0-snapshot-scatterplot-fix-imports-95e1b59 → 0.0.0-snapshot-histogram-types-78c5104

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 (401) hide show
  1. package/dist/cjs/components/DatasourceEditorForm/DatasourceEditorForm.js +82 -162
  2. package/dist/cjs/components/DatasourceSelect.js +8 -13
  3. package/dist/cjs/components/HTTPSettingsEditor/HTTPSettingsEditor.js +534 -0
  4. package/dist/cjs/components/{TimeSeriesQueryEditor → HTTPSettingsEditor}/index.js +2 -2
  5. package/dist/cjs/components/LegendOptionsEditor/LegendOptionsEditor.js +8 -7
  6. package/dist/cjs/components/MetricLabelInput/MetricLabelInput.js +41 -0
  7. package/dist/cjs/components/{TraceQueryEditor → MetricLabelInput}/index.js +2 -2
  8. package/dist/cjs/components/{TimeSeriesQueryEditor/TimeSeriesQueryEditor.js → MultiQueryEditor/MultiQueryEditor.js} +30 -23
  9. package/dist/cjs/components/{TimeSeriesQueryEditor/TimeSeriesQueryInput.js → MultiQueryEditor/QueryEditorContainer.js} +25 -13
  10. package/dist/cjs/{stories/shared-utils → components/MultiQueryEditor}/index.js +2 -2
  11. package/dist/cjs/components/PanelSpecEditor/PanelSpecEditor.js +51 -59
  12. package/dist/cjs/components/PluginEditor/PluginEditor.js +16 -13
  13. package/dist/cjs/components/PluginEditor/plugin-editor-api.js +43 -32
  14. package/dist/cjs/components/PluginKindSelect/PluginKindSelect.js +55 -7
  15. package/dist/cjs/components/PluginRegistry/PluginRegistry.js +8 -9
  16. package/dist/cjs/components/PluginRegistry/plugin-indexes.js +17 -14
  17. package/dist/cjs/components/PluginSpecEditor/PluginSpecEditor.js +1 -1
  18. package/dist/cjs/components/ProjectSelect.js +5 -5
  19. package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +10 -71
  20. package/dist/cjs/components/Variables/VariableEditorForm/VariableEditorForm.js +391 -442
  21. package/dist/cjs/components/Variables/VariableEditorForm/VariablePreview.js +7 -7
  22. package/dist/cjs/components/Variables/VariableEditorForm/variable-editor-form-model.js +6 -11
  23. package/dist/cjs/components/Variables/variable-model.js +26 -27
  24. package/dist/cjs/components/index.js +3 -1
  25. package/dist/cjs/context/ProjectStoreProvider.js +7 -4
  26. package/dist/cjs/context/ValidationProvider.js +69 -0
  27. package/dist/cjs/context/index.js +1 -0
  28. package/dist/cjs/index.js +1 -1
  29. package/dist/{components/TimeSeriesQueryEditor/index.js → cjs/model/explore.js} +4 -3
  30. package/dist/cjs/remote/PersesPlugin.types.js +16 -0
  31. package/dist/cjs/remote/PluginLoaderComponent.js +75 -0
  32. package/dist/cjs/remote/PluginRuntime.js +273 -0
  33. package/dist/cjs/{validation → remote}/index.js +2 -5
  34. package/dist/cjs/remote/remotePluginLoader.js +61 -0
  35. package/dist/cjs/runtime/DataQueriesProvider/DataQueriesProvider.js +18 -9
  36. package/dist/cjs/runtime/DataQueriesProvider/model.js +10 -9
  37. package/dist/cjs/{stories/shared-utils/decorators/WithPluginRegistry.js → runtime/QueryCountProvider.js} +22 -39
  38. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeProvider.js +17 -4
  39. package/dist/cjs/runtime/TimeRangeProvider/TimeRangeSettingsProvider.js +100 -0
  40. package/dist/cjs/runtime/TimeRangeProvider/index.js +2 -1
  41. package/dist/cjs/runtime/TimeRangeProvider/query-params.js +4 -7
  42. package/dist/cjs/runtime/UsageMetricsProvider.js +99 -0
  43. package/dist/cjs/runtime/builtin-variables.js +2 -2
  44. package/dist/cjs/runtime/datasources.js +23 -14
  45. package/dist/cjs/runtime/index.js +4 -2
  46. package/dist/cjs/runtime/plugin-registry.js +49 -28
  47. package/dist/cjs/runtime/time-series-queries.js +23 -28
  48. package/dist/cjs/runtime/trace-queries.js +1 -2
  49. package/dist/cjs/runtime/{template-variables.js → variables.js} +29 -47
  50. package/dist/cjs/test/mock-data.js +25 -4
  51. package/dist/cjs/test/render.js +2 -11
  52. package/dist/cjs/test/test-plugins/bert/index.js +20 -19
  53. package/dist/cjs/test-utils/mock-plugin-registry.js +10 -10
  54. package/dist/cjs/utils/variables.js +24 -24
  55. package/dist/components/CalculationSelector/CalculationSelector.d.ts +2 -1
  56. package/dist/components/CalculationSelector/CalculationSelector.d.ts.map +1 -1
  57. package/dist/components/CalculationSelector/CalculationSelector.js.map +1 -1
  58. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts +6 -5
  59. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.d.ts.map +1 -1
  60. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js +85 -165
  61. package/dist/components/DatasourceEditorForm/DatasourceEditorForm.js.map +1 -1
  62. package/dist/components/DatasourceSelect.d.ts +5 -4
  63. package/dist/components/DatasourceSelect.d.ts.map +1 -1
  64. package/dist/components/DatasourceSelect.js +8 -13
  65. package/dist/components/DatasourceSelect.js.map +1 -1
  66. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.d.ts +11 -0
  67. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.d.ts.map +1 -0
  68. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.js +480 -0
  69. package/dist/components/HTTPSettingsEditor/HTTPSettingsEditor.js.map +1 -0
  70. package/dist/components/HTTPSettingsEditor/index.d.ts +2 -0
  71. package/dist/components/HTTPSettingsEditor/index.d.ts.map +1 -0
  72. package/dist/components/HTTPSettingsEditor/index.js +15 -0
  73. package/dist/components/HTTPSettingsEditor/index.js.map +1 -0
  74. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.d.ts +3 -1
  75. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.d.ts.map +1 -1
  76. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.js +10 -9
  77. package/dist/components/LegendOptionsEditor/LegendOptionsEditor.js.map +1 -1
  78. package/dist/components/MetricLabelInput/MetricLabelInput.d.ts +7 -0
  79. package/dist/components/MetricLabelInput/MetricLabelInput.d.ts.map +1 -0
  80. package/dist/components/MetricLabelInput/MetricLabelInput.js +33 -0
  81. package/dist/components/MetricLabelInput/MetricLabelInput.js.map +1 -0
  82. package/dist/components/MetricLabelInput/index.d.ts +2 -0
  83. package/dist/components/MetricLabelInput/index.d.ts.map +1 -0
  84. package/dist/components/MetricLabelInput/index.js +15 -0
  85. package/dist/components/MetricLabelInput/index.js.map +1 -0
  86. package/dist/components/MultiQueryEditor/MultiQueryEditor.d.ts +17 -0
  87. package/dist/components/MultiQueryEditor/MultiQueryEditor.d.ts.map +1 -0
  88. package/dist/components/{TimeSeriesQueryEditor/TimeSeriesQueryEditor.js → MultiQueryEditor/MultiQueryEditor.js} +37 -23
  89. package/dist/components/MultiQueryEditor/MultiQueryEditor.js.map +1 -0
  90. package/dist/components/MultiQueryEditor/QueryEditorContainer.d.ts +29 -0
  91. package/dist/components/MultiQueryEditor/QueryEditorContainer.d.ts.map +1 -0
  92. package/dist/components/{TraceQueryEditor/TraceQueryInput.js → MultiQueryEditor/QueryEditorContainer.js} +35 -12
  93. package/dist/components/MultiQueryEditor/QueryEditorContainer.js.map +1 -0
  94. package/dist/components/MultiQueryEditor/index.d.ts +2 -0
  95. package/dist/components/MultiQueryEditor/index.d.ts.map +1 -0
  96. package/dist/components/MultiQueryEditor/index.js +15 -0
  97. package/dist/components/{TraceQueryEditor → MultiQueryEditor}/index.js.map +1 -1
  98. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts +2 -2
  99. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.d.ts.map +1 -1
  100. package/dist/components/OptionsEditorRadios/OptionsEditorRadios.js.map +1 -1
  101. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.d.ts +2 -2
  102. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.d.ts.map +1 -1
  103. package/dist/components/OptionsEditorTabPanel/OptionsEditorTabPanel.js.map +1 -1
  104. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.d.ts +3 -3
  105. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.d.ts.map +1 -1
  106. package/dist/components/OptionsEditorTabs/OptionsEditorTabs.js.map +1 -1
  107. package/dist/components/PanelSpecEditor/PanelSpecEditor.d.ts +5 -2
  108. package/dist/components/PanelSpecEditor/PanelSpecEditor.d.ts.map +1 -1
  109. package/dist/components/PanelSpecEditor/PanelSpecEditor.js +53 -61
  110. package/dist/components/PanelSpecEditor/PanelSpecEditor.js.map +1 -1
  111. package/dist/components/PluginEditor/PluginEditor.d.ts +2 -1
  112. package/dist/components/PluginEditor/PluginEditor.d.ts.map +1 -1
  113. package/dist/components/PluginEditor/PluginEditor.js +16 -13
  114. package/dist/components/PluginEditor/PluginEditor.js.map +1 -1
  115. package/dist/components/PluginEditor/plugin-editor-api.d.ts +15 -8
  116. package/dist/components/PluginEditor/plugin-editor-api.d.ts.map +1 -1
  117. package/dist/components/PluginEditor/plugin-editor-api.js +43 -32
  118. package/dist/components/PluginEditor/plugin-editor-api.js.map +1 -1
  119. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts +10 -4
  120. package/dist/components/PluginKindSelect/PluginKindSelect.d.ts.map +1 -1
  121. package/dist/components/PluginKindSelect/PluginKindSelect.js +61 -10
  122. package/dist/components/PluginKindSelect/PluginKindSelect.js.map +1 -1
  123. package/dist/components/PluginRegistry/PluginRegistry.d.ts +2 -2
  124. package/dist/components/PluginRegistry/PluginRegistry.d.ts.map +1 -1
  125. package/dist/components/PluginRegistry/PluginRegistry.js +8 -9
  126. package/dist/components/PluginRegistry/PluginRegistry.js.map +1 -1
  127. package/dist/components/PluginRegistry/plugin-indexes.d.ts +4 -4
  128. package/dist/components/PluginRegistry/plugin-indexes.d.ts.map +1 -1
  129. package/dist/components/PluginRegistry/plugin-indexes.js +17 -14
  130. package/dist/components/PluginRegistry/plugin-indexes.js.map +1 -1
  131. package/dist/components/PluginSpecEditor/PluginSpecEditor.d.ts +5 -4
  132. package/dist/components/PluginSpecEditor/PluginSpecEditor.d.ts.map +1 -1
  133. package/dist/components/PluginSpecEditor/PluginSpecEditor.js +1 -1
  134. package/dist/components/PluginSpecEditor/PluginSpecEditor.js.map +1 -1
  135. package/dist/components/ProjectSelect.d.ts +2 -1
  136. package/dist/components/ProjectSelect.d.ts.map +1 -1
  137. package/dist/components/ProjectSelect.js +5 -5
  138. package/dist/components/ProjectSelect.js.map +1 -1
  139. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts +3 -2
  140. package/dist/components/TimeRangeControls/TimeRangeControls.d.ts.map +1 -1
  141. package/dist/components/TimeRangeControls/TimeRangeControls.js +12 -70
  142. package/dist/components/TimeRangeControls/TimeRangeControls.js.map +1 -1
  143. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts +4 -3
  144. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts.map +1 -1
  145. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js +395 -446
  146. package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js.map +1 -1
  147. package/dist/components/Variables/VariableEditorForm/VariablePreview.d.ts +3 -2
  148. package/dist/components/Variables/VariableEditorForm/VariablePreview.d.ts.map +1 -1
  149. package/dist/components/Variables/VariableEditorForm/VariablePreview.js +7 -7
  150. package/dist/components/Variables/VariableEditorForm/VariablePreview.js.map +1 -1
  151. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts +2 -2
  152. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.d.ts.map +1 -1
  153. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js +6 -11
  154. package/dist/components/Variables/VariableEditorForm/variable-editor-form-model.js.map +1 -1
  155. package/dist/components/Variables/variable-model.d.ts +2 -1
  156. package/dist/components/Variables/variable-model.d.ts.map +1 -1
  157. package/dist/components/Variables/variable-model.js +27 -28
  158. package/dist/components/Variables/variable-model.js.map +1 -1
  159. package/dist/components/index.d.ts +3 -1
  160. package/dist/components/index.d.ts.map +1 -1
  161. package/dist/components/index.js +3 -1
  162. package/dist/components/index.js.map +1 -1
  163. package/dist/context/ProjectStoreProvider.d.ts +4 -4
  164. package/dist/context/ProjectStoreProvider.d.ts.map +1 -1
  165. package/dist/context/ProjectStoreProvider.js +7 -4
  166. package/dist/context/ProjectStoreProvider.js.map +1 -1
  167. package/dist/context/ValidationProvider.d.ts +19 -0
  168. package/dist/context/ValidationProvider.d.ts.map +1 -0
  169. package/dist/context/ValidationProvider.js +52 -0
  170. package/dist/context/ValidationProvider.js.map +1 -0
  171. package/dist/context/index.d.ts +1 -0
  172. package/dist/context/index.d.ts.map +1 -1
  173. package/dist/context/index.js +1 -0
  174. package/dist/context/index.js.map +1 -1
  175. package/dist/context/query-params.d.ts.map +1 -1
  176. package/dist/context/query-params.js.map +1 -1
  177. package/dist/index.d.ts +1 -1
  178. package/dist/index.d.ts.map +1 -1
  179. package/dist/index.js +1 -1
  180. package/dist/index.js.map +1 -1
  181. package/dist/model/explore.d.ts +13 -0
  182. package/dist/model/explore.d.ts.map +1 -0
  183. package/dist/{validation/index.js → model/explore.js} +4 -6
  184. package/dist/model/explore.js.map +1 -0
  185. package/dist/model/legend.d.ts.map +1 -1
  186. package/dist/model/legend.js.map +1 -1
  187. package/dist/model/panels.d.ts +27 -5
  188. package/dist/model/panels.d.ts.map +1 -1
  189. package/dist/model/panels.js.map +1 -1
  190. package/dist/model/plugin-loading.js.map +1 -1
  191. package/dist/model/plugins.d.ts +31 -17
  192. package/dist/model/plugins.d.ts.map +1 -1
  193. package/dist/model/plugins.js.map +1 -1
  194. package/dist/model/time-series-queries.d.ts +2 -1
  195. package/dist/model/time-series-queries.d.ts.map +1 -1
  196. package/dist/model/time-series-queries.js.map +1 -1
  197. package/dist/remote/PersesPlugin.types.d.ts +7 -0
  198. package/dist/remote/PersesPlugin.types.d.ts.map +1 -0
  199. package/dist/{stories/shared-utils/index.js → remote/PersesPlugin.types.js} +3 -3
  200. package/dist/remote/PersesPlugin.types.js.map +1 -0
  201. package/dist/remote/PluginLoaderComponent.d.ts +10 -0
  202. package/dist/remote/PluginLoaderComponent.d.ts.map +1 -0
  203. package/dist/remote/PluginLoaderComponent.js +67 -0
  204. package/dist/remote/PluginLoaderComponent.js.map +1 -0
  205. package/dist/remote/PluginRuntime.d.ts +10 -0
  206. package/dist/remote/PluginRuntime.d.ts.map +1 -0
  207. package/dist/remote/PluginRuntime.js +211 -0
  208. package/dist/remote/PluginRuntime.js.map +1 -0
  209. package/dist/remote/index.d.ts +3 -0
  210. package/dist/remote/index.d.ts.map +1 -0
  211. package/dist/{components/TraceQueryEditor → remote}/index.js +2 -1
  212. package/dist/remote/index.js.map +1 -0
  213. package/dist/remote/remotePluginLoader.d.ts +3 -0
  214. package/dist/remote/remotePluginLoader.d.ts.map +1 -0
  215. package/dist/remote/remotePluginLoader.js +53 -0
  216. package/dist/remote/remotePluginLoader.js.map +1 -0
  217. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.d.ts +2 -2
  218. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.d.ts.map +1 -1
  219. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js +18 -9
  220. package/dist/runtime/DataQueriesProvider/DataQueriesProvider.js.map +1 -1
  221. package/dist/runtime/DataQueriesProvider/model.d.ts +5 -6
  222. package/dist/runtime/DataQueriesProvider/model.d.ts.map +1 -1
  223. package/dist/runtime/DataQueriesProvider/model.js +10 -9
  224. package/dist/runtime/DataQueriesProvider/model.js.map +1 -1
  225. package/dist/runtime/QueryCountProvider.d.ts +9 -0
  226. package/dist/runtime/QueryCountProvider.d.ts.map +1 -0
  227. package/dist/{validation/duration.js → runtime/QueryCountProvider.js} +13 -4
  228. package/dist/runtime/QueryCountProvider.js.map +1 -0
  229. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.d.ts +2 -2
  230. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.d.ts.map +1 -1
  231. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js +17 -4
  232. package/dist/runtime/TimeRangeProvider/TimeRangeProvider.js.map +1 -1
  233. package/dist/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.d.ts +2 -2
  234. package/dist/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.d.ts.map +1 -1
  235. package/dist/runtime/TimeRangeProvider/TimeRangeProviderWithQueryParams.js.map +1 -1
  236. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.d.ts +32 -0
  237. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.d.ts.map +1 -0
  238. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.js +82 -0
  239. package/dist/runtime/TimeRangeProvider/TimeRangeSettingsProvider.js.map +1 -0
  240. package/dist/runtime/TimeRangeProvider/index.d.ts +1 -0
  241. package/dist/runtime/TimeRangeProvider/index.d.ts.map +1 -1
  242. package/dist/runtime/TimeRangeProvider/index.js +2 -1
  243. package/dist/runtime/TimeRangeProvider/index.js.map +1 -1
  244. package/dist/runtime/TimeRangeProvider/query-params.d.ts.map +1 -1
  245. package/dist/runtime/TimeRangeProvider/query-params.js +4 -7
  246. package/dist/runtime/TimeRangeProvider/query-params.js.map +1 -1
  247. package/dist/runtime/TimeRangeProvider/refresh-interval.d.ts.map +1 -1
  248. package/dist/runtime/TimeRangeProvider/refresh-interval.js.map +1 -1
  249. package/dist/runtime/UsageMetricsProvider.d.ts +25 -0
  250. package/dist/runtime/UsageMetricsProvider.d.ts.map +1 -0
  251. package/dist/runtime/UsageMetricsProvider.js +77 -0
  252. package/dist/runtime/UsageMetricsProvider.js.map +1 -0
  253. package/dist/runtime/builtin-variables.d.ts +1 -1
  254. package/dist/runtime/builtin-variables.d.ts.map +1 -1
  255. package/dist/runtime/builtin-variables.js +2 -2
  256. package/dist/runtime/builtin-variables.js.map +1 -1
  257. package/dist/runtime/datasources.d.ts +5 -4
  258. package/dist/runtime/datasources.d.ts.map +1 -1
  259. package/dist/runtime/datasources.js +23 -14
  260. package/dist/runtime/datasources.js.map +1 -1
  261. package/dist/runtime/index.d.ts +3 -1
  262. package/dist/runtime/index.d.ts.map +1 -1
  263. package/dist/runtime/index.js +4 -2
  264. package/dist/runtime/index.js.map +1 -1
  265. package/dist/runtime/plugin-registry.d.ts +10 -10
  266. package/dist/runtime/plugin-registry.d.ts.map +1 -1
  267. package/dist/runtime/plugin-registry.js +49 -28
  268. package/dist/runtime/plugin-registry.js.map +1 -1
  269. package/dist/runtime/time-series-queries.d.ts +5 -4
  270. package/dist/runtime/time-series-queries.d.ts.map +1 -1
  271. package/dist/runtime/time-series-queries.js +23 -28
  272. package/dist/runtime/time-series-queries.js.map +1 -1
  273. package/dist/runtime/trace-queries.d.ts +4 -3
  274. package/dist/runtime/trace-queries.d.ts.map +1 -1
  275. package/dist/runtime/trace-queries.js +2 -3
  276. package/dist/runtime/trace-queries.js.map +1 -1
  277. package/dist/runtime/{template-variables.d.ts → variables.d.ts} +4 -4
  278. package/dist/runtime/variables.d.ts.map +1 -0
  279. package/dist/runtime/{template-variables.js → variables.js} +28 -45
  280. package/dist/runtime/variables.js.map +1 -0
  281. package/dist/test/mock-data.d.ts.map +1 -1
  282. package/dist/test/mock-data.js +25 -4
  283. package/dist/test/mock-data.js.map +1 -1
  284. package/dist/test/render.d.ts +3 -3
  285. package/dist/test/render.d.ts.map +1 -1
  286. package/dist/test/render.js +2 -11
  287. package/dist/test/render.js.map +1 -1
  288. package/dist/test/test-plugins/bert/index.d.ts.map +1 -1
  289. package/dist/test/test-plugins/bert/index.js +20 -19
  290. package/dist/test/test-plugins/bert/index.js.map +1 -1
  291. package/dist/test-utils/mock-plugin-registry.d.ts +5 -3
  292. package/dist/test-utils/mock-plugin-registry.d.ts.map +1 -1
  293. package/dist/test-utils/mock-plugin-registry.js +10 -10
  294. package/dist/test-utils/mock-plugin-registry.js.map +1 -1
  295. package/dist/utils/variables.d.ts +4 -4
  296. package/dist/utils/variables.d.ts.map +1 -1
  297. package/dist/utils/variables.js +19 -19
  298. package/dist/utils/variables.js.map +1 -1
  299. package/package.json +10 -11
  300. package/dist/cjs/components/TraceQueryEditor/TraceQueryEditor.js +0 -143
  301. package/dist/cjs/components/TraceQueryEditor/TraceQueryInput.js +0 -96
  302. package/dist/cjs/stories/shared-utils/decorators/WithDataQueries.js +0 -41
  303. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js +0 -42
  304. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js +0 -101
  305. package/dist/cjs/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.js +0 -42
  306. package/dist/cjs/stories/shared-utils/decorators/WithTimeRange.js +0 -41
  307. package/dist/cjs/stories/shared-utils/decorators/index.js +0 -35
  308. package/dist/cjs/validation/datasource.js +0 -30
  309. package/dist/cjs/validation/duration.js +0 -25
  310. package/dist/cjs/validation/resource.js +0 -24
  311. package/dist/cjs/validation/role.js +0 -86
  312. package/dist/cjs/validation/rolebinding.js +0 -55
  313. package/dist/cjs/validation/secret.js +0 -176
  314. package/dist/cjs/validation/user.js +0 -46
  315. package/dist/cjs/validation/variable.js +0 -48
  316. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.d.ts +0 -7
  317. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.d.ts.map +0 -1
  318. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryEditor.js.map +0 -1
  319. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.d.ts +0 -12
  320. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.d.ts.map +0 -1
  321. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js +0 -83
  322. package/dist/components/TimeSeriesQueryEditor/TimeSeriesQueryInput.js.map +0 -1
  323. package/dist/components/TimeSeriesQueryEditor/index.d.ts +0 -2
  324. package/dist/components/TimeSeriesQueryEditor/index.d.ts.map +0 -1
  325. package/dist/components/TimeSeriesQueryEditor/index.js.map +0 -1
  326. package/dist/components/TraceQueryEditor/TraceQueryEditor.d.ts +0 -8
  327. package/dist/components/TraceQueryEditor/TraceQueryEditor.d.ts.map +0 -1
  328. package/dist/components/TraceQueryEditor/TraceQueryEditor.js +0 -130
  329. package/dist/components/TraceQueryEditor/TraceQueryEditor.js.map +0 -1
  330. package/dist/components/TraceQueryEditor/TraceQueryInput.d.ts +0 -12
  331. package/dist/components/TraceQueryEditor/TraceQueryInput.d.ts.map +0 -1
  332. package/dist/components/TraceQueryEditor/TraceQueryInput.js.map +0 -1
  333. package/dist/components/TraceQueryEditor/index.d.ts +0 -2
  334. package/dist/components/TraceQueryEditor/index.d.ts.map +0 -1
  335. package/dist/runtime/template-variables.d.ts.map +0 -1
  336. package/dist/runtime/template-variables.js.map +0 -1
  337. package/dist/stories/shared-utils/decorators/WithDataQueries.d.ts +0 -12
  338. package/dist/stories/shared-utils/decorators/WithDataQueries.d.ts.map +0 -1
  339. package/dist/stories/shared-utils/decorators/WithDataQueries.js +0 -33
  340. package/dist/stories/shared-utils/decorators/WithDataQueries.js.map +0 -1
  341. package/dist/stories/shared-utils/decorators/WithPluginRegistry.d.ts +0 -3
  342. package/dist/stories/shared-utils/decorators/WithPluginRegistry.d.ts.map +0 -1
  343. package/dist/stories/shared-utils/decorators/WithPluginRegistry.js +0 -46
  344. package/dist/stories/shared-utils/decorators/WithPluginRegistry.js.map +0 -1
  345. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.d.ts +0 -12
  346. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.d.ts.map +0 -1
  347. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js +0 -39
  348. package/dist/stories/shared-utils/decorators/WithPluginSystemBuiltinVariables.js.map +0 -1
  349. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.d.ts +0 -12
  350. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.d.ts.map +0 -1
  351. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js +0 -95
  352. package/dist/stories/shared-utils/decorators/WithPluginSystemDatasourceStore.js.map +0 -1
  353. package/dist/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.d.ts +0 -12
  354. package/dist/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.d.ts.map +0 -1
  355. package/dist/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.js +0 -39
  356. package/dist/stories/shared-utils/decorators/WithPluginSystemTemplateVariables.js.map +0 -1
  357. package/dist/stories/shared-utils/decorators/WithTimeRange.d.ts +0 -12
  358. package/dist/stories/shared-utils/decorators/WithTimeRange.d.ts.map +0 -1
  359. package/dist/stories/shared-utils/decorators/WithTimeRange.js +0 -33
  360. package/dist/stories/shared-utils/decorators/WithTimeRange.js.map +0 -1
  361. package/dist/stories/shared-utils/decorators/index.d.ts +0 -7
  362. package/dist/stories/shared-utils/decorators/index.d.ts.map +0 -1
  363. package/dist/stories/shared-utils/decorators/index.js +0 -20
  364. package/dist/stories/shared-utils/decorators/index.js.map +0 -1
  365. package/dist/stories/shared-utils/index.d.ts +0 -2
  366. package/dist/stories/shared-utils/index.d.ts.map +0 -1
  367. package/dist/stories/shared-utils/index.js.map +0 -1
  368. package/dist/validation/datasource.d.ts +0 -19
  369. package/dist/validation/datasource.d.ts.map +0 -1
  370. package/dist/validation/datasource.js +0 -22
  371. package/dist/validation/datasource.js.map +0 -1
  372. package/dist/validation/duration.d.ts +0 -3
  373. package/dist/validation/duration.d.ts.map +0 -1
  374. package/dist/validation/duration.js.map +0 -1
  375. package/dist/validation/index.d.ts +0 -6
  376. package/dist/validation/index.d.ts.map +0 -1
  377. package/dist/validation/index.js.map +0 -1
  378. package/dist/validation/resource.d.ts +0 -3
  379. package/dist/validation/resource.d.ts.map +0 -1
  380. package/dist/validation/resource.js +0 -16
  381. package/dist/validation/resource.js.map +0 -1
  382. package/dist/validation/role.d.ts +0 -228
  383. package/dist/validation/role.d.ts.map +0 -1
  384. package/dist/validation/role.js +0 -67
  385. package/dist/validation/role.js.map +0 -1
  386. package/dist/validation/rolebinding.d.ts +0 -137
  387. package/dist/validation/rolebinding.d.ts.map +0 -1
  388. package/dist/validation/rolebinding.js +0 -47
  389. package/dist/validation/rolebinding.js.map +0 -1
  390. package/dist/validation/secret.d.ts +0 -964
  391. package/dist/validation/secret.d.ts.map +0 -1
  392. package/dist/validation/secret.js +0 -157
  393. package/dist/validation/secret.js.map +0 -1
  394. package/dist/validation/user.d.ts +0 -93
  395. package/dist/validation/user.d.ts.map +0 -1
  396. package/dist/validation/user.js +0 -38
  397. package/dist/validation/user.js.map +0 -1
  398. package/dist/validation/variable.d.ts +0 -96
  399. package/dist/validation/variable.d.ts.map +0 -1
  400. package/dist/validation/variable.js +0 -40
  401. package/dist/validation/variable.js.map +0 -1
@@ -0,0 +1,100 @@
1
+ // Copyright 2024 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ "use strict";
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ function _export(target, all) {
18
+ for(var name in all)Object.defineProperty(target, name, {
19
+ enumerable: true,
20
+ get: all[name]
21
+ });
22
+ }
23
+ _export(exports, {
24
+ TimeRangeSettingsContext: function() {
25
+ return TimeRangeSettingsContext;
26
+ },
27
+ TimeRangeSettingsProvider: function() {
28
+ return TimeRangeSettingsProvider;
29
+ },
30
+ useShowCustomTimeRangeSetting: function() {
31
+ return useShowCustomTimeRangeSetting;
32
+ },
33
+ useTimeRangeOptionsSetting: function() {
34
+ return useTimeRangeOptionsSetting;
35
+ },
36
+ useTimeRangeSettings: function() {
37
+ return useTimeRangeSettings;
38
+ },
39
+ useTimeRangeSettingsContext: function() {
40
+ return useTimeRangeSettingsContext;
41
+ }
42
+ });
43
+ const _jsxruntime = require("react/jsx-runtime");
44
+ const _react = require("react");
45
+ const _components = require("@perses-dev/components");
46
+ const DEFAULT_OPTIONS = [
47
+ '5m',
48
+ '15m',
49
+ '30m',
50
+ '1h',
51
+ '6h',
52
+ '12h',
53
+ '24h',
54
+ '7d',
55
+ '14d'
56
+ ];
57
+ const defaultTimeRangeSettings = {
58
+ showCustom: true,
59
+ options: DEFAULT_OPTIONS.map((duration)=>(0, _components.buildRelativeTimeOption)(duration))
60
+ };
61
+ const TimeRangeSettingsContext = /*#__PURE__*/ (0, _react.createContext)(defaultTimeRangeSettings);
62
+ function useTimeRangeSettingsContext() {
63
+ const ctx = (0, _react.useContext)(TimeRangeSettingsContext);
64
+ if (ctx === undefined) {
65
+ throw new Error('No TimeRangeContext found. Did you forget a Provider?');
66
+ }
67
+ return ctx;
68
+ }
69
+ function useTimeRangeSettings() {
70
+ return useTimeRangeSettingsContext();
71
+ }
72
+ function useShowCustomTimeRangeSetting(override) {
73
+ const showCustomTimeRange = useTimeRangeSettings().showCustom;
74
+ if (override !== undefined) {
75
+ return override;
76
+ }
77
+ return showCustomTimeRange;
78
+ }
79
+ function useTimeRangeOptionsSetting(override) {
80
+ const showCustomTimeRange = useTimeRangeSettings().options;
81
+ if (override !== undefined) {
82
+ return override;
83
+ }
84
+ return showCustomTimeRange;
85
+ }
86
+ function TimeRangeSettingsProvider(props) {
87
+ const ctx = (0, _react.useMemo)(()=>{
88
+ return {
89
+ showCustom: props.showCustom === undefined ? defaultTimeRangeSettings.showCustom : props.showCustom,
90
+ options: props.options === undefined ? defaultTimeRangeSettings.options : props.options
91
+ };
92
+ }, [
93
+ props.showCustom,
94
+ props.options
95
+ ]);
96
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(TimeRangeSettingsContext.Provider, {
97
+ value: ctx,
98
+ children: props.children
99
+ });
100
+ }
@@ -1,4 +1,4 @@
1
- // Copyright 2023 The Perses Authors
1
+ // Copyright 2024 The Perses Authors
2
2
  // Licensed under the Apache License, Version 2.0 (the "License");
3
3
  // you may not use this file except in compliance with the License.
4
4
  // You may obtain a copy of the License at
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  _export_star(require("./TimeRangeProvider"), exports);
18
18
  _export_star(require("./TimeRangeProviderWithQueryParams"), exports);
19
+ _export_star(require("./TimeRangeSettingsProvider"), exports);
19
20
  _export_star(require("./query-params"), exports);
20
21
  function _export_star(from, to) {
21
22
  Object.keys(from).forEach(function(k) {
@@ -54,15 +54,12 @@ const _usequeryparams = require("use-query-params");
54
54
  const _datefns = require("date-fns");
55
55
  const _core = require("@perses-dev/core");
56
56
  /* Interprets an encoded string and returns either the string or null/undefined if not available */ function getEncodedValue(input, allowEmptyString) {
57
- if (input == null) {
58
- return input;
59
- }
60
57
  // '' or []
61
- if (input.length === 0 && (!allowEmptyString || allowEmptyString && input !== '')) {
58
+ if (!input || input.length === 0 && (!allowEmptyString || allowEmptyString && input !== '')) {
62
59
  return null;
63
60
  }
64
61
  const str = input instanceof Array ? input[0] : input;
65
- if (str == null) {
62
+ if (str === null || str === undefined) {
66
63
  return str;
67
64
  }
68
65
  if (!allowEmptyString && str === '') {
@@ -83,7 +80,7 @@ function encodeTimeRangeValue(timeOptionValue) {
83
80
  }
84
81
  function decodeTimeRangeValue(input) {
85
82
  const paramString = getEncodedValue(input);
86
- if (paramString == null) return paramString;
83
+ if (!paramString) return null;
87
84
  return (0, _core.isDurationString)(paramString) ? paramString : new Date(Number(paramString));
88
85
  }
89
86
  const TimeRangeParam = {
@@ -91,7 +88,7 @@ const TimeRangeParam = {
91
88
  decode: decodeTimeRangeValue,
92
89
  equals: (valueA, valueB)=>{
93
90
  if (valueA === valueB) return true;
94
- if (valueA == null || valueB == null) return valueA === valueB;
91
+ if (!valueA || !valueB) return valueA === valueB;
95
92
  return valueA.valueOf() === valueB.valueOf();
96
93
  }
97
94
  };
@@ -0,0 +1,99 @@
1
+ // Copyright 2023 The Perses Authors
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ "use strict";
14
+ Object.defineProperty(exports, "__esModule", {
15
+ value: true
16
+ });
17
+ function _export(target, all) {
18
+ for(var name in all)Object.defineProperty(target, name, {
19
+ enumerable: true,
20
+ get: all[name]
21
+ });
22
+ }
23
+ _export(exports, {
24
+ UsageMetricsContext: function() {
25
+ return UsageMetricsContext;
26
+ },
27
+ UsageMetricsProvider: function() {
28
+ return UsageMetricsProvider;
29
+ },
30
+ useUsageMetrics: function() {
31
+ return useUsageMetrics;
32
+ },
33
+ useUsageMetricsContext: function() {
34
+ return useUsageMetricsContext;
35
+ }
36
+ });
37
+ const _jsxruntime = require("react/jsx-runtime");
38
+ const _core = require("@perses-dev/core");
39
+ const _react = require("react");
40
+ const UsageMetricsContext = /*#__PURE__*/ (0, _react.createContext)(undefined);
41
+ const useUsageMetricsContext = ()=>{
42
+ return (0, _react.useContext)(UsageMetricsContext);
43
+ };
44
+ const useUsageMetrics = ()=>{
45
+ const ctx = useUsageMetricsContext();
46
+ return {
47
+ markQuery: (definition, newState)=>{
48
+ if (ctx === undefined) {
49
+ return;
50
+ }
51
+ const definitionKey = JSON.stringify(definition);
52
+ if (ctx.pendingQueries.has(definitionKey) && newState === 'pending') {
53
+ // Never allow transitions back to pending, to avoid re-sending stats on a re-render.
54
+ return;
55
+ }
56
+ if (ctx.pendingQueries.get(definitionKey) !== newState) {
57
+ ctx.pendingQueries.set(definitionKey, newState);
58
+ if (newState === 'error') {
59
+ ctx.renderErrorCount += 1;
60
+ }
61
+ const allDone = [
62
+ ...ctx.pendingQueries.values()
63
+ ].every((p)=>p !== 'pending');
64
+ if (ctx.renderDurationMs === 0 && allDone) {
65
+ ctx.renderDurationMs = Date.now() - ctx.startRenderTime;
66
+ submitMetrics(ctx);
67
+ }
68
+ }
69
+ }
70
+ };
71
+ };
72
+ const submitMetrics = async (stats)=>{
73
+ await (0, _core.fetch)('/api/v1/view', {
74
+ method: 'POST',
75
+ headers: {
76
+ 'Content-Type': 'application/json'
77
+ },
78
+ body: JSON.stringify({
79
+ project: stats.project,
80
+ dashboard: stats.dashboard,
81
+ render_time: stats.renderDurationMs / 1000,
82
+ render_errors: stats.renderErrorCount
83
+ })
84
+ });
85
+ };
86
+ const UsageMetricsProvider = ({ project, dashboard, children })=>{
87
+ const ctx = {
88
+ project: project,
89
+ dashboard: dashboard,
90
+ renderErrorCount: 0,
91
+ startRenderTime: Date.now(),
92
+ renderDurationMs: 0,
93
+ pendingQueries: new Map()
94
+ };
95
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(UsageMetricsContext.Provider, {
96
+ value: ctx,
97
+ children: children
98
+ });
99
+ };
@@ -1,4 +1,4 @@
1
- // Copyright 2023 The Perses Authors
1
+ // Copyright 2024 The Perses Authors
2
2
  // Licensed under the Apache License, Version 2.0 (the "License");
3
3
  // you may not use this file except in compliance with the License.
4
4
  // You may obtain a copy of the License at
@@ -59,7 +59,7 @@ function useBuiltinVariableValues(names) {
59
59
  ]);
60
60
  const values = (0, _react.useMemo)(()=>{
61
61
  const values = {};
62
- names === null || names === void 0 ? void 0 : names.forEach((name)=>{
62
+ names?.forEach((name)=>{
63
63
  const s = states[name];
64
64
  if (s) {
65
65
  values[name] = s;
@@ -47,25 +47,34 @@ function useDatasourceStore() {
47
47
  }
48
48
  return ctx;
49
49
  }
50
- function useListDatasourceSelectItems(datasourcePluginKind, project) {
50
+ function useListDatasourceSelectItems(datasourcePluginName, project) {
51
51
  const { listDatasourceSelectItems } = useDatasourceStore();
52
- return (0, _reactquery.useQuery)([
53
- 'listDatasourceSelectItems',
54
- datasourcePluginKind,
55
- project
56
- ], ()=>listDatasourceSelectItems(datasourcePluginKind));
52
+ return (0, _reactquery.useQuery)({
53
+ queryKey: [
54
+ 'listDatasourceSelectItems',
55
+ datasourcePluginName,
56
+ project
57
+ ],
58
+ queryFn: ()=>listDatasourceSelectItems(datasourcePluginName)
59
+ });
57
60
  }
58
61
  function useDatasourceClient(selector) {
59
62
  const store = useDatasourceStore();
60
- return (0, _reactquery.useQuery)([
61
- 'getDatasourceClient',
62
- selector
63
- ], ()=>store.getDatasourceClient(selector));
63
+ return (0, _reactquery.useQuery)({
64
+ queryKey: [
65
+ 'getDatasourceClient',
66
+ selector
67
+ ],
68
+ queryFn: ()=>store.getDatasourceClient(selector)
69
+ });
64
70
  }
65
71
  function useDatasource(selector) {
66
72
  const store = useDatasourceStore();
67
- return (0, _reactquery.useQuery)([
68
- 'getDatasource',
69
- selector
70
- ], ()=>store.getDatasource(selector));
73
+ return (0, _reactquery.useQuery)({
74
+ queryKey: [
75
+ 'getDatasource',
76
+ selector
77
+ ],
78
+ queryFn: ()=>store.getDatasource(selector)
79
+ });
71
80
  }
@@ -1,4 +1,4 @@
1
- // Copyright 2023 The Perses Authors
1
+ // Copyright 2024 The Perses Authors
2
2
  // Licensed under the Apache License, Version 2.0 (the "License");
3
3
  // you may not use this file except in compliance with the License.
4
4
  // You may obtain a copy of the License at
@@ -17,11 +17,13 @@ Object.defineProperty(exports, "__esModule", {
17
17
  _export_star(require("./builtin-variables"), exports);
18
18
  _export_star(require("./datasources"), exports);
19
19
  _export_star(require("./plugin-registry"), exports);
20
- _export_star(require("./template-variables"), exports);
20
+ _export_star(require("./variables"), exports);
21
21
  _export_star(require("./TimeRangeProvider"), exports);
22
22
  _export_star(require("./time-series-queries"), exports);
23
23
  _export_star(require("./trace-queries"), exports);
24
24
  _export_star(require("./DataQueriesProvider"), exports);
25
+ _export_star(require("./QueryCountProvider"), exports);
26
+ _export_star(require("./UsageMetricsProvider"), exports);
25
27
  function _export_star(from, to) {
26
28
  Object.keys(from).forEach(function(k) {
27
29
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
@@ -40,8 +40,8 @@ _export(exports, {
40
40
  return usePlugins;
41
41
  }
42
42
  });
43
- const _react = require("react");
44
43
  const _reactquery = require("@tanstack/react-query");
44
+ const _react = require("react");
45
45
  const PluginRegistryContext = (0, _react.createContext)(undefined);
46
46
  function usePluginRegistry() {
47
47
  const ctx = (0, _react.useContext)(PluginRegistryContext);
@@ -51,55 +51,76 @@ function usePluginRegistry() {
51
51
  return ctx;
52
52
  }
53
53
  function usePlugin(pluginType, kind, options) {
54
- var _options_enabled;
55
54
  // We never want to ask for a plugin when the kind isn't set yet, so disable those queries automatically
56
55
  options = {
57
56
  ...options,
58
- enabled: ((_options_enabled = options === null || options === void 0 ? void 0 : options.enabled) !== null && _options_enabled !== void 0 ? _options_enabled : true) && kind !== ''
57
+ enabled: (options?.enabled ?? true) && pluginType !== undefined && kind !== ''
59
58
  };
60
59
  const { getPlugin } = usePluginRegistry();
61
- return (0, _reactquery.useQuery)([
62
- 'getPlugin',
63
- pluginType,
64
- kind
65
- ], ()=>getPlugin(pluginType, kind), options);
60
+ return (0, _reactquery.useQuery)({
61
+ queryKey: [
62
+ 'getPlugin',
63
+ pluginType,
64
+ kind
65
+ ],
66
+ queryFn: ()=>getPlugin(pluginType, kind),
67
+ ...options
68
+ });
66
69
  }
67
70
  function usePlugins(pluginType, plugins) {
68
71
  const { getPlugin } = usePluginRegistry();
69
- return (0, _reactquery.useQueries)({
70
- queries: plugins.map((p)=>{
72
+ // useQueries() does not support queries with duplicate keys, therefore we de-duplicate the plugin kinds before running useQueries()
73
+ // This resolves the following warning in the JS console: "[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior."
74
+ // https://github.com/TanStack/query/issues/8224#issuecomment-2523554831
75
+ // https://github.com/TanStack/query/issues/4187#issuecomment-1256336901
76
+ const kinds = [
77
+ ...new Set(plugins.map((p)=>p.kind))
78
+ ];
79
+ const result = (0, _reactquery.useQueries)({
80
+ queries: kinds.map((kind)=>{
71
81
  return {
72
82
  queryKey: [
73
83
  'getPlugin',
74
84
  pluginType,
75
- p.kind
85
+ kind
76
86
  ],
77
- queryFn: ()=>getPlugin(pluginType, p.kind)
87
+ queryFn: ()=>getPlugin(pluginType, kind)
78
88
  };
79
89
  })
80
90
  });
91
+ // Re-assemble array in original order
92
+ return plugins.map((p)=>result[kinds.indexOf(p.kind)]);
81
93
  }
82
- function useListPluginMetadata(pluginType, options) {
94
+ function useListPluginMetadata(pluginTypes, options) {
83
95
  const { listPluginMetadata } = usePluginRegistry();
84
- return (0, _reactquery.useQuery)([
85
- 'listPluginMetadata',
86
- pluginType
87
- ], ()=>listPluginMetadata(pluginType), options);
96
+ return (0, _reactquery.useQuery)({
97
+ queryKey: [
98
+ 'listPluginMetadata',
99
+ pluginTypes
100
+ ],
101
+ queryFn: ()=>listPluginMetadata(pluginTypes),
102
+ ...options
103
+ });
88
104
  }
89
105
  function usePluginBuiltinVariableDefinitions() {
90
106
  const { getPlugin, listPluginMetadata } = usePluginRegistry();
91
- return (0, _reactquery.useQuery)([
92
- 'usePluginBuiltinVariableDefinitions'
93
- ], async ()=>{
94
- const datasources = await listPluginMetadata('Datasource');
95
- const datasourceKinds = new Set(datasources.map((datasource)=>datasource.kind));
96
- const result = [];
97
- for (const kind of datasourceKinds){
98
- const plugin = await getPlugin('Datasource', kind);
99
- if (plugin.getBuiltinVariableDefinitions) {
100
- plugin.getBuiltinVariableDefinitions().forEach((definition)=>result.push(definition));
107
+ return (0, _reactquery.useQuery)({
108
+ queryKey: [
109
+ 'usePluginBuiltinVariableDefinitions'
110
+ ],
111
+ queryFn: async ()=>{
112
+ const datasources = await listPluginMetadata([
113
+ 'Datasource'
114
+ ]);
115
+ const datasourceNames = new Set(datasources.map((datasource)=>datasource.spec.name));
116
+ const result = [];
117
+ for (const name of datasourceNames){
118
+ const plugin = await getPlugin('Datasource', name);
119
+ if (plugin.getBuiltinVariableDefinitions) {
120
+ plugin.getBuiltinVariableDefinitions().forEach((definition)=>result.push(definition));
121
+ }
101
122
  }
123
+ return result;
102
124
  }
103
- return result;
104
125
  });
105
126
  }
@@ -1,4 +1,4 @@
1
- // Copyright 2023 The Perses Authors
1
+ // Copyright 2024 The Perses Authors
2
2
  // Licensed under the Apache License, Version 2.0 (the "License");
3
3
  // you may not use this file except in compliance with the License.
4
4
  // You may obtain a copy of the License at
@@ -38,7 +38,7 @@ _export(exports, {
38
38
  }
39
39
  });
40
40
  const _reactquery = require("@tanstack/react-query");
41
- const _templatevariables = require("./template-variables");
41
+ const _variables = require("./variables");
42
42
  const _TimeRangeProvider = require("./TimeRangeProvider");
43
43
  const _datasources = require("./datasources");
44
44
  const _pluginregistry = require("./plugin-registry");
@@ -55,9 +55,9 @@ function filterVariableStateMap(v, names) {
55
55
  return Object.fromEntries(Object.entries(v).filter(([name])=>names.includes(name)));
56
56
  }
57
57
  function getQueryOptions({ plugin, definition, context }) {
58
- const { timeRange, datasourceStore, suggestedStepMs, variableState, refreshKey } = context;
59
- const dependencies = (plugin === null || plugin === void 0 ? void 0 : plugin.dependsOn) ? plugin.dependsOn(definition.spec.plugin.spec, context) : {};
60
- const variableDependencies = dependencies === null || dependencies === void 0 ? void 0 : dependencies.variables;
58
+ const { timeRange, datasourceStore, suggestedStepMs, mode, variableState, refreshKey } = context;
59
+ const dependencies = plugin?.dependsOn ? plugin.dependsOn(definition.spec.plugin.spec, context) : {};
60
+ const variableDependencies = dependencies?.variables;
61
61
  // Determine queryKey
62
62
  const filteredVariabledState = filterVariableStateMap(variableState, variableDependencies);
63
63
  const variablesValueKey = getVariableValuesKey(filteredVariabledState);
@@ -66,16 +66,14 @@ function getQueryOptions({ plugin, definition, context }) {
66
66
  timeRange,
67
67
  datasourceStore,
68
68
  suggestedStepMs,
69
+ mode,
69
70
  variablesValueKey,
70
71
  refreshKey
71
72
  ];
72
73
  // Determine queryEnabled
73
74
  let waitToLoad = false;
74
75
  if (variableDependencies) {
75
- waitToLoad = variableDependencies.some((v)=>{
76
- var _variableState_v;
77
- return (_variableState_v = variableState[v]) === null || _variableState_v === void 0 ? void 0 : _variableState_v.loading;
78
- });
76
+ waitToLoad = variableDependencies.some((v)=>variableState[v]?.loading);
79
77
  }
80
78
  const queryEnabled = plugin !== undefined && !waitToLoad;
81
79
  return {
@@ -91,11 +89,9 @@ const useTimeSeriesQuery = (definition, options, queryOptions)=>{
91
89
  definition,
92
90
  context
93
91
  });
94
- var _queryOptions_enabled;
95
92
  return (0, _reactquery.useQuery)({
96
- enabled: ((_queryOptions_enabled = queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.enabled) !== null && _queryOptions_enabled !== void 0 ? _queryOptions_enabled : true) || queryEnabled,
93
+ enabled: (queryOptions?.enabled ?? true) || queryEnabled,
97
94
  queryKey: queryKey,
98
- refetchInterval: context.refreshIntervalInMs > 0 ? context.refreshIntervalInMs : false,
99
95
  queryFn: ()=>{
100
96
  // The 'enabled' option should prevent this from happening, but make TypeScript happy by checking
101
97
  if (plugin === undefined) {
@@ -104,7 +100,7 @@ const useTimeSeriesQuery = (definition, options, queryOptions)=>{
104
100
  // Keep options out of query key so we don't re-run queries because suggested step changes
105
101
  const ctx = {
106
102
  ...context,
107
- suggestedStepMs: options === null || options === void 0 ? void 0 : options.suggestedStepMs
103
+ suggestedStepMs: options?.suggestedStepMs
108
104
  };
109
105
  return plugin.getTimeSeriesData(definition.spec.plugin.spec, ctx);
110
106
  }
@@ -112,29 +108,30 @@ const useTimeSeriesQuery = (definition, options, queryOptions)=>{
112
108
  };
113
109
  function useTimeSeriesQueries(definitions, options, queryOptions) {
114
110
  const { getPlugin } = (0, _pluginregistry.usePluginRegistry)();
115
- const context = useTimeSeriesQueryContext();
111
+ const context = {
112
+ ...useTimeSeriesQueryContext(),
113
+ // We need mode to be part query key because this drives the type of query done (instant VS range query)
114
+ mode: options?.mode
115
+ };
116
116
  const pluginLoaderResponse = (0, _pluginregistry.usePlugins)(TIME_SERIES_QUERY_KEY, definitions.map((d)=>({
117
117
  kind: d.spec.plugin.kind
118
118
  })));
119
119
  return (0, _reactquery.useQueries)({
120
120
  queries: definitions.map((definition, idx)=>{
121
- var _pluginLoaderResponse_idx;
122
- const plugin = (_pluginLoaderResponse_idx = pluginLoaderResponse[idx]) === null || _pluginLoaderResponse_idx === void 0 ? void 0 : _pluginLoaderResponse_idx.data;
121
+ const plugin = pluginLoaderResponse[idx]?.data;
123
122
  const { queryEnabled, queryKey } = getQueryOptions({
124
123
  plugin,
125
124
  definition,
126
125
  context
127
126
  });
128
- var _queryOptions_enabled;
129
127
  return {
130
- enabled: ((_queryOptions_enabled = queryOptions === null || queryOptions === void 0 ? void 0 : queryOptions.enabled) !== null && _queryOptions_enabled !== void 0 ? _queryOptions_enabled : true) && queryEnabled,
128
+ enabled: (queryOptions?.enabled ?? true) && queryEnabled,
131
129
  queryKey: queryKey,
132
- refetchInterval: context.refreshIntervalInMs > 0 ? context.refreshIntervalInMs : undefined,
133
130
  queryFn: async ()=>{
134
- // Keep options out of query key so we don't re-run queries because suggested step changes
135
131
  const ctx = {
136
132
  ...context,
137
- suggestedStepMs: options === null || options === void 0 ? void 0 : options.suggestedStepMs
133
+ // Keep suggested step changes out of the query key, so we don´t have to run again query when it changes
134
+ suggestedStepMs: options?.suggestedStepMs
138
135
  };
139
136
  const plugin = await getPlugin(TIME_SERIES_QUERY_KEY, definition.spec.plugin.kind);
140
137
  const data = await plugin.getTimeSeriesData(definition.spec.plugin.spec, ctx);
@@ -147,15 +144,14 @@ function useTimeSeriesQueries(definitions, options, queryOptions) {
147
144
  /**
148
145
  * Build the time series query context object from data available at runtime
149
146
  */ function useTimeSeriesQueryContext() {
150
- const { absoluteTimeRange, refreshKey, refreshIntervalInMs } = (0, _TimeRangeProvider.useTimeRange)();
151
- const variableState = (0, _templatevariables.useVariableValues)();
147
+ const { absoluteTimeRange, refreshKey } = (0, _TimeRangeProvider.useTimeRange)();
148
+ const variableState = (0, _variables.useAllVariableValues)();
152
149
  const datasourceStore = (0, _datasources.useDatasourceStore)();
153
150
  return {
154
151
  timeRange: absoluteTimeRange,
155
152
  variableState,
156
153
  datasourceStore,
157
- refreshKey,
158
- refreshIntervalInMs: refreshIntervalInMs
154
+ refreshKey
159
155
  };
160
156
  }
161
157
  function useActiveTimeSeriesQueries() {
@@ -168,9 +164,8 @@ function getActiveTimeSeriesQueries(cache) {
168
164
  for (const query of cache.findAll({
169
165
  type: 'active'
170
166
  })){
171
- var _query_queryKey;
172
- const firstPart = (_query_queryKey = query.queryKey) === null || _query_queryKey === void 0 ? void 0 : _query_queryKey[0];
173
- if ((firstPart === null || firstPart === void 0 ? void 0 : firstPart.kind) && firstPart.kind.startsWith(TIME_SERIES_QUERY_KEY)) {
167
+ const firstPart = query.queryKey?.[0];
168
+ if (firstPart?.kind && firstPart.kind.startsWith(TIME_SERIES_QUERY_KEY)) {
174
169
  queries.push(query);
175
170
  }
176
171
  }
@@ -56,13 +56,12 @@ function useTraceQueries(definitions) {
56
56
  // https://tanstack.com/query/v4/docs/react/reference/useQuery
57
57
  return (0, _reactquery.useQueries)({
58
58
  queries: definitions.map((definition)=>{
59
- var _definition_spec_plugin, _definition_spec;
60
59
  const queryKey = [
61
60
  definition,
62
61
  datasourceStore,
63
62
  absoluteTimeRange
64
63
  ]; // `queryKey` watches and reruns `queryFn` if keys in the array change
65
- const traceQueryKind = definition === null || definition === void 0 ? void 0 : (_definition_spec = definition.spec) === null || _definition_spec === void 0 ? void 0 : (_definition_spec_plugin = _definition_spec.plugin) === null || _definition_spec_plugin === void 0 ? void 0 : _definition_spec_plugin.kind;
64
+ const traceQueryKind = definition?.spec?.plugin?.kind;
66
65
  return {
67
66
  queryKey: queryKey,
68
67
  queryFn: async ()=>{