@intentius/chant-lexicon-grafana 0.98.0 → 0.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. package/README.md +24 -8
  2. package/dist/actions/grafana.d.ts +24 -0
  3. package/dist/actions/grafana.d.ts.map +1 -0
  4. package/dist/actions/index.d.ts +2 -0
  5. package/dist/actions/index.d.ts.map +1 -0
  6. package/dist/alerting-build.d.ts +128 -0
  7. package/dist/alerting-build.d.ts.map +1 -0
  8. package/dist/alerting.d.ts +273 -0
  9. package/dist/alerting.d.ts.map +1 -0
  10. package/dist/annotations.d.ts +61 -0
  11. package/dist/annotations.d.ts.map +1 -0
  12. package/dist/api/apply.d.ts +160 -0
  13. package/dist/api/apply.d.ts.map +1 -0
  14. package/dist/api/bind.d.ts +32 -0
  15. package/dist/api/bind.d.ts.map +1 -0
  16. package/dist/api/client.d.ts +76 -0
  17. package/dist/api/client.d.ts.map +1 -0
  18. package/dist/api/converge.d.ts +33 -0
  19. package/dist/api/converge.d.ts.map +1 -0
  20. package/dist/api/dashboards.d.ts +102 -0
  21. package/dist/api/dashboards.d.ts.map +1 -0
  22. package/dist/api/datasources.d.ts +26 -0
  23. package/dist/api/datasources.d.ts.map +1 -0
  24. package/dist/api/fake-grafana-writes.d.ts +41 -0
  25. package/dist/api/fake-grafana-writes.d.ts.map +1 -0
  26. package/dist/api/fake-grafana.d.ts +63 -0
  27. package/dist/api/fake-grafana.d.ts.map +1 -0
  28. package/dist/api/folders.d.ts +146 -0
  29. package/dist/api/folders.d.ts.map +1 -0
  30. package/dist/api/library-panels.d.ts +52 -0
  31. package/dist/api/library-panels.d.ts.map +1 -0
  32. package/dist/build.d.ts +55 -6
  33. package/dist/build.d.ts.map +1 -1
  34. package/dist/catalog.d.ts +1 -1
  35. package/dist/catalog.d.ts.map +1 -1
  36. package/dist/codegen/docs.d.ts.map +1 -1
  37. package/dist/codegen/generate.d.ts +7 -1
  38. package/dist/codegen/generate.d.ts.map +1 -1
  39. package/dist/codegen/schema-types.d.ts +3 -3
  40. package/dist/codegen/schema-types.d.ts.map +1 -1
  41. package/dist/composites/agent-dashboard.d.ts.map +1 -1
  42. package/dist/composites/catalog.d.ts.map +1 -1
  43. package/dist/composites/index.d.ts +4 -2
  44. package/dist/composites/index.d.ts.map +1 -1
  45. package/dist/composites/red-dashboard.d.ts +21 -2
  46. package/dist/composites/red-dashboard.d.ts.map +1 -1
  47. package/dist/composites/shared.d.ts +11 -3
  48. package/dist/composites/shared.d.ts.map +1 -1
  49. package/dist/composites/slo-alert-rules.d.ts +92 -0
  50. package/dist/composites/slo-alert-rules.d.ts.map +1 -0
  51. package/dist/config.d.ts +111 -0
  52. package/dist/config.d.ts.map +1 -0
  53. package/dist/contact-point-secrets.d.ts +17 -0
  54. package/dist/contact-point-secrets.d.ts.map +1 -0
  55. package/dist/dashboard.d.ts +51 -9
  56. package/dist/dashboard.d.ts.map +1 -1
  57. package/dist/datasource-refs.d.ts +99 -0
  58. package/dist/datasource-refs.d.ts.map +1 -0
  59. package/dist/datasource-settings.d.ts +834 -0
  60. package/dist/datasource-settings.d.ts.map +1 -0
  61. package/dist/datasource.d.ts +82 -11
  62. package/dist/datasource.d.ts.map +1 -1
  63. package/dist/deep-observe-hooks.d.ts +64 -0
  64. package/dist/deep-observe-hooks.d.ts.map +1 -0
  65. package/dist/deep-observe.d.ts +47 -0
  66. package/dist/deep-observe.d.ts.map +1 -0
  67. package/dist/describe-resources.d.ts +50 -0
  68. package/dist/describe-resources.d.ts.map +1 -0
  69. package/dist/detect.d.ts +32 -3
  70. package/dist/detect.d.ts.map +1 -1
  71. package/dist/export-resources.d.ts +38 -0
  72. package/dist/export-resources.d.ts.map +1 -0
  73. package/dist/folder.d.ts +68 -0
  74. package/dist/folder.d.ts.map +1 -0
  75. package/dist/import/alerting.d.ts +40 -0
  76. package/dist/import/alerting.d.ts.map +1 -0
  77. package/dist/import/edits.d.ts +47 -0
  78. package/dist/import/edits.d.ts.map +1 -0
  79. package/dist/import/embedded.d.ts +14 -0
  80. package/dist/import/embedded.d.ts.map +1 -0
  81. package/dist/import/generator.d.ts +60 -0
  82. package/dist/import/generator.d.ts.map +1 -0
  83. package/dist/import/live-export.d.ts +108 -0
  84. package/dist/import/live-export.d.ts.map +1 -0
  85. package/dist/import/mappings.d.ts +89 -0
  86. package/dist/import/mappings.d.ts.map +1 -0
  87. package/dist/import/model.d.ts +105 -0
  88. package/dist/import/model.d.ts.map +1 -0
  89. package/dist/import/normalize-alerting.d.ts +26 -0
  90. package/dist/import/normalize-alerting.d.ts.map +1 -0
  91. package/dist/import/normalize.d.ts +74 -0
  92. package/dist/import/normalize.d.ts.map +1 -0
  93. package/dist/import/parser.d.ts +125 -0
  94. package/dist/import/parser.d.ts.map +1 -0
  95. package/dist/import/report.d.ts +26 -0
  96. package/dist/import/report.d.ts.map +1 -0
  97. package/dist/import/testdata/fixtures.d.ts +41 -0
  98. package/dist/import/testdata/fixtures.d.ts.map +1 -0
  99. package/dist/import/v2.d.ts +73 -0
  100. package/dist/import/v2.d.ts.map +1 -0
  101. package/dist/index.d.ts +31 -12
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/init-templates.d.ts +27 -0
  104. package/dist/init-templates.d.ts.map +1 -0
  105. package/dist/integrity.json +22 -12
  106. package/dist/k8s.d.ts +107 -0
  107. package/dist/k8s.d.ts.map +1 -0
  108. package/dist/lint/audit-catalog.d.ts +2 -1
  109. package/dist/lint/audit-catalog.d.ts.map +1 -1
  110. package/dist/lint/post-synth/graf101.d.ts +2 -2
  111. package/dist/lint/post-synth/graf102.d.ts +1 -1
  112. package/dist/lint/post-synth/graf104.d.ts +2 -2
  113. package/dist/lint/post-synth/graf106.d.ts +2 -2
  114. package/dist/lint/post-synth/graf107.d.ts +1 -1
  115. package/dist/lint/post-synth/graf108.d.ts +8 -0
  116. package/dist/lint/post-synth/graf108.d.ts.map +1 -0
  117. package/dist/lint/post-synth/graf109.d.ts +8 -0
  118. package/dist/lint/post-synth/graf109.d.ts.map +1 -0
  119. package/dist/lint/post-synth/graf110.d.ts +8 -0
  120. package/dist/lint/post-synth/graf110.d.ts.map +1 -0
  121. package/dist/lint/post-synth/graf111.d.ts +8 -0
  122. package/dist/lint/post-synth/graf111.d.ts.map +1 -0
  123. package/dist/lint/post-synth/graf112.d.ts +8 -0
  124. package/dist/lint/post-synth/graf112.d.ts.map +1 -0
  125. package/dist/lint/post-synth/graf113.d.ts +8 -0
  126. package/dist/lint/post-synth/graf113.d.ts.map +1 -0
  127. package/dist/lint/post-synth/graf114.d.ts +8 -0
  128. package/dist/lint/post-synth/graf114.d.ts.map +1 -0
  129. package/dist/lint/post-synth/graf115.d.ts +8 -0
  130. package/dist/lint/post-synth/graf115.d.ts.map +1 -0
  131. package/dist/lint/post-synth/grafana-helpers.d.ts +7 -5
  132. package/dist/lint/post-synth/grafana-helpers.d.ts.map +1 -1
  133. package/dist/lint/post-synth/index.d.ts.map +1 -1
  134. package/dist/lint/rules/literal-secret.d.ts +7 -3
  135. package/dist/lint/rules/literal-secret.d.ts.map +1 -1
  136. package/dist/lsp/hover.d.ts.map +1 -1
  137. package/dist/manifest.json +1 -1
  138. package/dist/members.d.ts +27 -0
  139. package/dist/members.d.ts.map +1 -0
  140. package/dist/meta.json +205 -0
  141. package/dist/okf/index.md +53 -4
  142. package/dist/okf/rules/GRAF002.md +3 -2
  143. package/dist/okf/rules/GRAF101.md +3 -2
  144. package/dist/okf/rules/GRAF102.md +1 -0
  145. package/dist/okf/rules/GRAF104.md +2 -2
  146. package/dist/okf/rules/GRAF106.md +2 -2
  147. package/dist/okf/rules/GRAF108.md +11 -0
  148. package/dist/okf/rules/GRAF109.md +15 -0
  149. package/dist/okf/rules/GRAF110.md +11 -0
  150. package/dist/okf/rules/GRAF111.md +11 -0
  151. package/dist/okf/rules/GRAF112.md +16 -0
  152. package/dist/okf/rules/GRAF113.md +16 -0
  153. package/dist/okf/rules/GRAF114.md +11 -0
  154. package/dist/okf/rules/GRAF115.md +11 -0
  155. package/dist/okf/types/AdhocVariable.md +9 -0
  156. package/dist/okf/types/AlertListPanel.md +9 -0
  157. package/dist/okf/types/AlertQuery.md +9 -0
  158. package/dist/okf/types/AlertRule.md +9 -0
  159. package/dist/okf/types/AlertRuleGroup.md +9 -0
  160. package/dist/okf/types/AzureMonitorQuery.md +9 -0
  161. package/dist/okf/types/BarChartPanel.md +9 -0
  162. package/dist/okf/types/BarGaugePanel.md +9 -0
  163. package/dist/okf/types/BigQueryQuery.md +9 -0
  164. package/dist/okf/types/CanvasPanel.md +9 -0
  165. package/dist/okf/types/ClassicConditionsExpression.md +9 -0
  166. package/dist/okf/types/CloudMonitoringQuery.md +9 -0
  167. package/dist/okf/types/CloudWatchQuery.md +9 -0
  168. package/dist/okf/types/ContactPoint.md +14 -0
  169. package/dist/okf/types/Dashboard.md +2 -1
  170. package/dist/okf/types/Datasource.md +3 -2
  171. package/dist/okf/types/DatasourceProvisioning.md +9 -0
  172. package/dist/okf/types/ElasticsearchQuery.md +9 -0
  173. package/dist/okf/types/ExternalDatasource.md +15 -0
  174. package/dist/okf/types/FlameGraphPanel.md +9 -0
  175. package/dist/okf/types/Folder.md +9 -0
  176. package/dist/okf/types/GeomapPanel.md +9 -0
  177. package/dist/okf/types/GroupByVariable.md +9 -0
  178. package/dist/okf/types/HistogramPanel.md +9 -0
  179. package/dist/okf/types/MSSQLQuery.md +9 -0
  180. package/dist/okf/types/MathExpression.md +9 -0
  181. package/dist/okf/types/MuteTiming.md +13 -0
  182. package/dist/okf/types/MySQLQuery.md +9 -0
  183. package/dist/okf/types/NodeGraphPanel.md +9 -0
  184. package/dist/okf/types/NotificationPolicy.md +9 -0
  185. package/dist/okf/types/NotificationTemplate.md +9 -0
  186. package/dist/okf/types/PieChartPanel.md +9 -0
  187. package/dist/okf/types/PostgresQuery.md +9 -0
  188. package/dist/okf/types/PyroscopeQuery.md +9 -0
  189. package/dist/okf/types/ReduceExpression.md +9 -0
  190. package/dist/okf/types/ResampleExpression.md +9 -0
  191. package/dist/okf/types/SqlExpression.md +9 -0
  192. package/dist/okf/types/StateTimelinePanel.md +9 -0
  193. package/dist/okf/types/StatusHistoryPanel.md +9 -0
  194. package/dist/okf/types/SwitchVariable.md +9 -0
  195. package/dist/okf/types/ThresholdExpression.md +9 -0
  196. package/dist/okf/types/TrendPanel.md +9 -0
  197. package/dist/okf/types/XYChartPanel.md +9 -0
  198. package/dist/op/activities/grafana-apply.d.ts +86 -0
  199. package/dist/op/activities/grafana-apply.d.ts.map +1 -0
  200. package/dist/op/activities/index.d.ts +9 -0
  201. package/dist/op/activities/index.d.ts.map +1 -0
  202. package/dist/op/builders.d.ts +24 -0
  203. package/dist/op/builders.d.ts.map +1 -0
  204. package/dist/ownership.d.ts +78 -0
  205. package/dist/ownership.d.ts.map +1 -0
  206. package/dist/panel-options.d.ts +65 -0
  207. package/dist/panel-options.d.ts.map +1 -0
  208. package/dist/panels.d.ts +46 -9
  209. package/dist/panels.d.ts.map +1 -1
  210. package/dist/pin.d.ts +29 -7
  211. package/dist/pin.d.ts.map +1 -1
  212. package/dist/plugin.d.ts.map +1 -1
  213. package/dist/promql-check.d.ts +51 -0
  214. package/dist/promql-check.d.ts.map +1 -0
  215. package/dist/query-models.d.ts +95 -0
  216. package/dist/query-models.d.ts.map +1 -0
  217. package/dist/query.d.ts +116 -18
  218. package/dist/query.d.ts.map +1 -1
  219. package/dist/rules/graf101.ts +3 -3
  220. package/dist/rules/graf102.ts +1 -1
  221. package/dist/rules/graf104.ts +3 -3
  222. package/dist/rules/graf106.ts +3 -3
  223. package/dist/rules/graf107.ts +1 -1
  224. package/dist/rules/graf108.ts +17 -0
  225. package/dist/rules/graf109.ts +17 -0
  226. package/dist/rules/graf110.ts +17 -0
  227. package/dist/rules/graf111.ts +17 -0
  228. package/dist/rules/graf112.ts +17 -0
  229. package/dist/rules/graf113.ts +17 -0
  230. package/dist/rules/graf114.ts +17 -0
  231. package/dist/rules/graf115.ts +17 -0
  232. package/dist/rules/grafana-helpers.ts +27 -10
  233. package/dist/rules/literal-secret.ts +60 -6
  234. package/dist/schema/azuremonitor.gen.d.ts +354 -0
  235. package/dist/schema/azuremonitor.gen.d.ts.map +1 -0
  236. package/dist/schema/barchart.gen.d.ts +198 -0
  237. package/dist/schema/barchart.gen.d.ts.map +1 -0
  238. package/dist/schema/bargauge.gen.d.ts +97 -0
  239. package/dist/schema/bargauge.gen.d.ts.map +1 -0
  240. package/dist/schema/bigquery.gen.d.ts +93 -0
  241. package/dist/schema/bigquery.gen.d.ts.map +1 -0
  242. package/dist/schema/canvas.gen.d.ts +152 -0
  243. package/dist/schema/canvas.gen.d.ts.map +1 -0
  244. package/dist/schema/cloudwatch.gen.d.ts +394 -0
  245. package/dist/schema/cloudwatch.gen.d.ts.map +1 -0
  246. package/dist/schema/dashboard.gen.d.ts +196 -21
  247. package/dist/schema/dashboard.gen.d.ts.map +1 -1
  248. package/dist/schema/elasticsearch.gen.d.ts +444 -0
  249. package/dist/schema/elasticsearch.gen.d.ts.map +1 -0
  250. package/dist/schema/expr.gen.d.ts +606 -0
  251. package/dist/schema/expr.gen.d.ts.map +1 -0
  252. package/dist/schema/gauge.gen.d.ts.map +1 -1
  253. package/dist/schema/geomap.gen.d.ts +100 -0
  254. package/dist/schema/geomap.gen.d.ts.map +1 -0
  255. package/dist/schema/googlecloudmonitoring.gen.d.ts +312 -0
  256. package/dist/schema/googlecloudmonitoring.gen.d.ts.map +1 -0
  257. package/dist/schema/grafanapyroscope.gen.d.ts +60 -0
  258. package/dist/schema/grafanapyroscope.gen.d.ts.map +1 -0
  259. package/dist/schema/heatmap.gen.d.ts.map +1 -1
  260. package/dist/schema/histogram.gen.d.ts +132 -0
  261. package/dist/schema/histogram.gen.d.ts.map +1 -0
  262. package/dist/schema/index.d.ts +18 -0
  263. package/dist/schema/index.d.ts.map +1 -1
  264. package/dist/schema/logs.gen.d.ts +1 -0
  265. package/dist/schema/logs.gen.d.ts.map +1 -1
  266. package/dist/schema/loki.gen.d.ts.map +1 -1
  267. package/dist/schema/nodegraph.gen.d.ts +49 -0
  268. package/dist/schema/nodegraph.gen.d.ts.map +1 -0
  269. package/dist/schema/piechart.gen.d.ts +127 -0
  270. package/dist/schema/piechart.gen.d.ts.map +1 -0
  271. package/dist/schema/prometheus.gen.d.ts.map +1 -1
  272. package/dist/schema/stat.gen.d.ts.map +1 -1
  273. package/dist/schema/statetimeline.gen.d.ts +124 -0
  274. package/dist/schema/statetimeline.gen.d.ts.map +1 -0
  275. package/dist/schema/statushistory.gen.d.ts +114 -0
  276. package/dist/schema/statushistory.gen.d.ts.map +1 -0
  277. package/dist/schema/table.gen.d.ts +35 -3
  278. package/dist/schema/table.gen.d.ts.map +1 -1
  279. package/dist/schema/tempo.gen.d.ts.map +1 -1
  280. package/dist/schema/text.gen.d.ts.map +1 -1
  281. package/dist/schema/timeseries.gen.d.ts +5 -1
  282. package/dist/schema/timeseries.gen.d.ts.map +1 -1
  283. package/dist/schema/trend.gen.d.ts +180 -0
  284. package/dist/schema/trend.gen.d.ts.map +1 -0
  285. package/dist/schema/xychart.gen.d.ts +145 -0
  286. package/dist/schema/xychart.gen.d.ts.map +1 -0
  287. package/dist/schema-validate.d.ts +39 -4
  288. package/dist/schema-validate.d.ts.map +1 -1
  289. package/dist/serializer.d.ts +11 -3
  290. package/dist/serializer.d.ts.map +1 -1
  291. package/dist/skill-defs.d.ts.map +1 -1
  292. package/dist/skills/chant-grafana-alerting.md +49 -0
  293. package/dist/skills/chant-grafana-operations.md +108 -0
  294. package/dist/skills/chant-grafana-provisioning.md +3 -3
  295. package/dist/skills/chant-grafana.md +15 -8
  296. package/dist/spec/fetch-units-cli.d.ts +3 -0
  297. package/dist/spec/fetch-units-cli.d.ts.map +1 -0
  298. package/dist/spec/overlay.d.ts +43 -0
  299. package/dist/spec/overlay.d.ts.map +1 -0
  300. package/dist/spec/schemas.d.ts +21 -13
  301. package/dist/spec/schemas.d.ts.map +1 -1
  302. package/dist/spec/schemas.gen.d.ts +3 -0
  303. package/dist/spec/schemas.gen.d.ts.map +1 -0
  304. package/dist/spec/units.d.ts +35 -0
  305. package/dist/spec/units.d.ts.map +1 -0
  306. package/dist/spec/units.gen.d.ts +2 -0
  307. package/dist/spec/units.gen.d.ts.map +1 -0
  308. package/dist/transformations.d.ts +459 -0
  309. package/dist/transformations.d.ts.map +1 -0
  310. package/dist/util.d.ts +6 -0
  311. package/dist/util.d.ts.map +1 -1
  312. package/dist/validate-alerting.d.ts +65 -0
  313. package/dist/validate-alerting.d.ts.map +1 -0
  314. package/dist/validate-output.d.ts +62 -9
  315. package/dist/validate-output.d.ts.map +1 -1
  316. package/dist/validate.d.ts.map +1 -1
  317. package/dist/validation.d.ts +14 -0
  318. package/dist/validation.d.ts.map +1 -0
  319. package/dist/variables.d.ts +109 -7
  320. package/dist/variables.d.ts.map +1 -1
  321. package/package.json +12 -4
  322. package/src/actions/actions.test.ts +24 -0
  323. package/src/actions/grafana.ts +40 -0
  324. package/src/actions/index.ts +1 -0
  325. package/src/alerting-build.ts +376 -0
  326. package/src/alerting.e2e.test.ts +212 -0
  327. package/src/alerting.test.ts +272 -0
  328. package/src/alerting.ts +435 -0
  329. package/src/annotations.ts +84 -0
  330. package/src/api/apply.test.ts +256 -0
  331. package/src/api/apply.ts +394 -0
  332. package/src/api/bind.ts +58 -0
  333. package/src/api/client.ts +148 -0
  334. package/src/api/converge.ts +63 -0
  335. package/src/api/dashboards.ts +247 -0
  336. package/src/api/datasources.ts +33 -0
  337. package/src/api/fake-grafana-writes.ts +201 -0
  338. package/src/api/fake-grafana.ts +190 -0
  339. package/src/api/folders.ts +339 -0
  340. package/src/api/library-panels.ts +101 -0
  341. package/src/build.test.ts +351 -10
  342. package/src/build.ts +294 -55
  343. package/src/catalog.ts +104 -2
  344. package/src/codegen/docs.ts +50 -10
  345. package/src/codegen/generate.ts +27 -1
  346. package/src/codegen/schema-types.ts +16 -6
  347. package/src/composites/agent-dashboard.ts +6 -3
  348. package/src/composites/catalog.test.ts +2 -2
  349. package/src/composites/catalog.ts +82 -0
  350. package/src/composites/composites.test.ts +73 -9
  351. package/src/composites/index.ts +4 -2
  352. package/src/composites/queries.e2e.test.ts +374 -0
  353. package/src/composites/red-dashboard.ts +83 -12
  354. package/src/composites/shared.ts +14 -2
  355. package/src/composites/slo-alert-rules.ts +149 -0
  356. package/src/config.test.ts +61 -0
  357. package/src/config.ts +138 -0
  358. package/src/contact-point-secrets.ts +63 -0
  359. package/src/dashboard.ts +68 -9
  360. package/src/datasource-refs.test.ts +56 -0
  361. package/src/datasource-refs.ts +213 -0
  362. package/src/datasource-settings.test.ts +106 -0
  363. package/src/datasource-settings.ts +941 -0
  364. package/src/datasource.ts +123 -11
  365. package/src/deep-observe-hooks.ts +267 -0
  366. package/src/deep-observe.test.ts +311 -0
  367. package/src/deep-observe.ts +187 -0
  368. package/src/describe-resources.test.ts +271 -0
  369. package/src/describe-resources.ts +244 -0
  370. package/src/detect.ts +82 -5
  371. package/src/export-resources.test.ts +129 -0
  372. package/src/export-resources.ts +84 -0
  373. package/src/folder.ts +118 -0
  374. package/src/generated/lexicon-grafana.json +205 -0
  375. package/src/import/alerting-roundtrip.test.ts +161 -0
  376. package/src/import/alerting.ts +500 -0
  377. package/src/import/edits.ts +95 -0
  378. package/src/import/embedded.test.ts +45 -0
  379. package/src/import/embedded.ts +47 -0
  380. package/src/import/generated-types.e2e.test.ts +130 -0
  381. package/src/import/generator.test.ts +210 -0
  382. package/src/import/generator.ts +463 -0
  383. package/src/import/live-export.ts +264 -0
  384. package/src/import/mappings.ts +336 -0
  385. package/src/import/model.ts +117 -0
  386. package/src/import/normalize-alerting.ts +101 -0
  387. package/src/import/normalize.test.ts +117 -0
  388. package/src/import/normalize.ts +393 -0
  389. package/src/import/parser.test.ts +516 -0
  390. package/src/import/parser.ts +1387 -0
  391. package/src/import/report.ts +62 -0
  392. package/src/import/roundtrip.test.ts +563 -0
  393. package/src/import/testdata/fixtures.ts +137 -0
  394. package/src/import/v2.test.ts +292 -0
  395. package/src/import/v2.ts +804 -0
  396. package/src/import.e2e.test.ts +31 -84
  397. package/src/import.test.ts +9 -3
  398. package/src/index.ts +308 -14
  399. package/src/init-templates.test.ts +74 -0
  400. package/src/init-templates.ts +349 -0
  401. package/src/k8s.test.ts +98 -0
  402. package/src/k8s.ts +197 -0
  403. package/src/lint/audit-catalog.ts +68 -3
  404. package/src/lint/core-lint.test.ts +43 -0
  405. package/src/lint/post-synth/graf101.ts +3 -3
  406. package/src/lint/post-synth/graf102.ts +1 -1
  407. package/src/lint/post-synth/graf104.ts +3 -3
  408. package/src/lint/post-synth/graf106.ts +3 -3
  409. package/src/lint/post-synth/graf107.ts +1 -1
  410. package/src/lint/post-synth/graf108.ts +17 -0
  411. package/src/lint/post-synth/graf109.ts +17 -0
  412. package/src/lint/post-synth/graf110.ts +17 -0
  413. package/src/lint/post-synth/graf111.ts +17 -0
  414. package/src/lint/post-synth/graf112.ts +17 -0
  415. package/src/lint/post-synth/graf113.ts +17 -0
  416. package/src/lint/post-synth/graf114.ts +17 -0
  417. package/src/lint/post-synth/graf115.ts +17 -0
  418. package/src/lint/post-synth/grafana-helpers.ts +27 -10
  419. package/src/lint/post-synth/index.ts +16 -0
  420. package/src/lint/post-synth/post-synth.test.ts +333 -12
  421. package/src/lint/rules/literal-secret.ts +60 -6
  422. package/src/lint/rules/rules.test.ts +27 -0
  423. package/src/load-cost.test.ts +35 -0
  424. package/src/lsp/completions.test.ts +5 -0
  425. package/src/lsp/hover.test.ts +7 -0
  426. package/src/lsp/hover.ts +8 -1
  427. package/src/members.ts +68 -0
  428. package/src/observe.e2e.test.ts +255 -0
  429. package/src/op/activities/grafana-apply.e2e.test.ts +184 -0
  430. package/src/op/activities/grafana-apply.test.ts +243 -0
  431. package/src/op/activities/grafana-apply.ts +197 -0
  432. package/src/op/activities/index.ts +8 -0
  433. package/src/op/builders.test.ts +40 -0
  434. package/src/op/builders.ts +34 -0
  435. package/src/ownership.ts +122 -0
  436. package/src/panel-options.ts +66 -0
  437. package/src/panels.test.ts +53 -0
  438. package/src/panels.ts +148 -10
  439. package/src/pin.ts +69 -6
  440. package/src/plugin.test.ts +12 -2
  441. package/src/plugin.ts +75 -0
  442. package/src/promql-check.test.ts +108 -0
  443. package/src/promql-check.ts +193 -0
  444. package/src/query-models.ts +94 -0
  445. package/src/query.test.ts +166 -0
  446. package/src/query.ts +190 -20
  447. package/src/schema/azuremonitor.gen.ts +381 -0
  448. package/src/schema/barchart.gen.ts +221 -0
  449. package/src/schema/bargauge.gen.ts +111 -0
  450. package/src/schema/bigquery.gen.ts +110 -0
  451. package/src/schema/canvas.gen.ts +176 -0
  452. package/src/schema/cloudwatch.gen.ts +423 -0
  453. package/src/schema/dashboard.gen.ts +206 -22
  454. package/src/schema/elasticsearch.gen.ts +508 -0
  455. package/src/schema/expr.gen.ts +618 -0
  456. package/src/schema/gauge.gen.ts +2 -1
  457. package/src/schema/geomap.gen.ts +112 -0
  458. package/src/schema/googlecloudmonitoring.gen.ts +330 -0
  459. package/src/schema/grafanapyroscope.gen.ts +66 -0
  460. package/src/schema/heatmap.gen.ts +2 -1
  461. package/src/schema/histogram.gen.ts +151 -0
  462. package/src/schema/index.ts +18 -0
  463. package/src/schema/logs.gen.ts +3 -1
  464. package/src/schema/loki.gen.ts +2 -1
  465. package/src/schema/nodegraph.gen.ts +58 -0
  466. package/src/schema/piechart.gen.ts +146 -0
  467. package/src/schema/prometheus.gen.ts +2 -1
  468. package/src/schema/stat.gen.ts +2 -1
  469. package/src/schema/statetimeline.gen.ts +143 -0
  470. package/src/schema/statushistory.gen.ts +132 -0
  471. package/src/schema/table.gen.ts +41 -4
  472. package/src/schema/tempo.gen.ts +2 -1
  473. package/src/schema/text.gen.ts +2 -1
  474. package/src/schema/timeseries.gen.ts +7 -2
  475. package/src/schema/trend.gen.ts +208 -0
  476. package/src/schema/xychart.gen.ts +167 -0
  477. package/src/schema-overlay.test.ts +282 -0
  478. package/src/schema-validate.ts +199 -57
  479. package/src/schema.test.ts +4 -2
  480. package/src/serializer.test.ts +13 -1
  481. package/src/serializer.ts +11 -3
  482. package/src/skill-defs.ts +34 -0
  483. package/src/skills/chant-grafana-alerting.md +49 -0
  484. package/src/skills/chant-grafana-operations.md +108 -0
  485. package/src/skills/chant-grafana-provisioning.md +3 -3
  486. package/src/skills/chant-grafana.md +15 -8
  487. package/src/spec/fetch-cli.ts +3 -3
  488. package/src/spec/fetch-units-cli.ts +37 -0
  489. package/src/spec/overlay/canvas.overlay.json +142 -0
  490. package/src/spec/overlay/dashboard.overlay.json +378 -0
  491. package/src/spec/overlay/expr.overlay.json +14 -0
  492. package/src/spec/overlay/geomap.overlay.json +35 -0
  493. package/src/spec/overlay/logs.overlay.json +14 -0
  494. package/src/spec/overlay/nodegraph.overlay.json +31 -0
  495. package/src/spec/overlay/piechart.overlay.json +17 -0
  496. package/src/spec/overlay/table.overlay.json +103 -0
  497. package/src/spec/overlay/timeseries.overlay.json +21 -0
  498. package/src/spec/overlay/trend.overlay.json +17 -0
  499. package/src/spec/overlay/xychart.overlay.json +16 -0
  500. package/src/spec/overlay.ts +105 -0
  501. package/src/spec/schemas/azuremonitor.jsonschema.json +679 -0
  502. package/src/spec/schemas/barchart.jsonschema.json +419 -0
  503. package/src/spec/schemas/bargauge.jsonschema.json +224 -0
  504. package/src/spec/schemas/bigquery.jsonschema.json +290 -0
  505. package/src/spec/schemas/canvas.jsonschema.json +356 -0
  506. package/src/spec/schemas/cloudwatch.jsonschema.json +721 -0
  507. package/src/spec/schemas/dashboardv2.jsonschema.json +3387 -0
  508. package/src/spec/schemas/elasticsearch.jsonschema.json +1695 -0
  509. package/src/spec/schemas/expr.jsonschema.json +987 -0
  510. package/src/spec/schemas/geomap.jsonschema.json +220 -0
  511. package/src/spec/schemas/googlecloudmonitoring.jsonschema.json +488 -0
  512. package/src/spec/schemas/grafanapyroscope.jsonschema.json +93 -0
  513. package/src/spec/schemas/histogram.jsonschema.json +308 -0
  514. package/src/spec/schemas/nodegraph.jsonschema.json +77 -0
  515. package/src/spec/schemas/piechart.jsonschema.json +275 -0
  516. package/src/spec/schemas/statetimeline.jsonschema.json +324 -0
  517. package/src/spec/schemas/statushistory.jsonschema.json +292 -0
  518. package/src/spec/schemas/trend.jsonschema.json +449 -0
  519. package/src/spec/schemas/xychart.jsonschema.json +428 -0
  520. package/src/spec/schemas.gen.ts +40 -0
  521. package/src/spec/schemas.ts +30 -16
  522. package/src/spec/units.gen.ts +281 -0
  523. package/src/spec/units.ts +77 -0
  524. package/src/transformations.test.ts +65 -0
  525. package/src/transformations.ts +574 -0
  526. package/src/util.ts +8 -0
  527. package/src/validate-alerting.test.ts +255 -0
  528. package/src/validate-alerting.ts +430 -0
  529. package/src/validate-output.ts +427 -104
  530. package/src/validate.ts +28 -0
  531. package/src/validation.ts +27 -0
  532. package/src/variables.ts +120 -8
@@ -0,0 +1,221 @@
1
+ // Code generated by chant generate from the vendored Grafana schema
2
+ // src/spec/schemas/barchart.jsonschema.json (see src/pin.ts) and its correction
3
+ // overlay in src/spec/overlay/ (see src/spec/overlay.ts). DO NOT EDIT.
4
+ /* eslint-disable */
5
+
6
+ export interface Options {
7
+ /**
8
+ * Manually select which field from the dataset to represent the x field.
9
+ */
10
+ xField?: string;
11
+ /**
12
+ * Use the color value for a sibling field to color each bar value.
13
+ */
14
+ colorByField?: string;
15
+ /**
16
+ * Controls the orientation of the bar chart, either vertical or horizontal.
17
+ */
18
+ orientation: VizOrientation;
19
+ /**
20
+ * Controls the radius of each bar.
21
+ */
22
+ barRadius?: number;
23
+ /**
24
+ * Controls the rotation of the x axis labels.
25
+ */
26
+ xTickLabelRotation: number;
27
+ /**
28
+ * Sets the max length that a label can have before it is truncated.
29
+ */
30
+ xTickLabelMaxLength: number;
31
+ /**
32
+ * Controls the spacing between x axis labels.
33
+ * negative values indicate backwards skipping behavior
34
+ */
35
+ xTickLabelSpacing?: number;
36
+ /**
37
+ * Controls whether bars are stacked or not, either normally or in percent mode.
38
+ */
39
+ stacking: StackingMode;
40
+ /**
41
+ * This controls whether values are shown on top or to the left of bars.
42
+ */
43
+ showValue: VisibilityMode;
44
+ /**
45
+ * Controls the width of bars. 1 = Max width, 0 = Min width.
46
+ */
47
+ barWidth: number;
48
+ /**
49
+ * Controls the width of groups. 1 = max with, 0 = min width.
50
+ */
51
+ groupWidth: number;
52
+ legend: VizLegendOptions;
53
+ tooltip: VizTooltipOptions;
54
+ text?: VizTextDisplayOptions;
55
+ /**
56
+ * Enables mode which highlights the entire bar area and shows tooltip when cursor
57
+ * hovers over highlighted area
58
+ */
59
+ fullHighlight: boolean;
60
+ }
61
+
62
+ export interface FieldConfig {
63
+ /**
64
+ * Controls line width of the bars.
65
+ */
66
+ lineWidth?: number;
67
+ /**
68
+ * Controls the fill opacity of the bars.
69
+ */
70
+ fillOpacity?: number;
71
+ /**
72
+ * Set the mode of the gradient fill. Fill gradient is based on the line color. To change the color, use the standard color scheme field option.
73
+ * Gradient appearance is influenced by the Fill opacity setting.
74
+ */
75
+ gradientMode?: GraphGradientMode;
76
+ axisPlacement?: AxisPlacement;
77
+ axisColorMode?: AxisColorMode;
78
+ axisLabel?: string;
79
+ axisWidth?: number;
80
+ axisSoftMin?: number;
81
+ axisSoftMax?: number;
82
+ axisGridShow?: boolean;
83
+ scaleDistribution?: ScaleDistributionConfig;
84
+ axisCenteredZero?: boolean;
85
+ hideFrom?: HideSeriesConfig;
86
+ /**
87
+ * Threshold rendering
88
+ */
89
+ thresholdsStyle?: GraphThresholdsStyleConfig;
90
+ axisBorderShow?: boolean;
91
+ }
92
+
93
+ /**
94
+ * TODO docs
95
+ */
96
+ export type VizOrientation = "auto" | "vertical" | "horizontal";
97
+
98
+ /**
99
+ * TODO docs
100
+ */
101
+ export type StackingMode = "none" | "normal" | "percent";
102
+
103
+ /**
104
+ * TODO docs
105
+ */
106
+ export type VisibilityMode = "auto" | "never" | "always";
107
+
108
+ /**
109
+ * TODO docs
110
+ */
111
+ export interface VizLegendOptions {
112
+ displayMode: LegendDisplayMode;
113
+ placement: LegendPlacement;
114
+ showLegend: boolean;
115
+ asTable?: boolean;
116
+ isVisible?: boolean;
117
+ sortBy?: string;
118
+ sortDesc?: boolean;
119
+ width?: number;
120
+ calcs: string[];
121
+ }
122
+
123
+ /**
124
+ * TODO docs
125
+ */
126
+ export interface VizTooltipOptions {
127
+ mode: TooltipDisplayMode;
128
+ sort: SortOrder;
129
+ maxWidth?: number;
130
+ maxHeight?: number;
131
+ hideZeros?: boolean;
132
+ }
133
+
134
+ /**
135
+ * TODO docs
136
+ */
137
+ export interface VizTextDisplayOptions {
138
+ /**
139
+ * Explicit title text size
140
+ */
141
+ titleSize?: number;
142
+ /**
143
+ * Explicit value text size
144
+ */
145
+ valueSize?: number;
146
+ /**
147
+ * Explicit percent text size
148
+ */
149
+ percentSize?: number;
150
+ }
151
+
152
+ /**
153
+ * TODO docs
154
+ */
155
+ export type GraphGradientMode = "none" | "opacity" | "hue" | "scheme";
156
+
157
+ /**
158
+ * TODO docs
159
+ */
160
+ export type AxisPlacement = "auto" | "top" | "right" | "bottom" | "left" | "hidden";
161
+
162
+ /**
163
+ * TODO docs
164
+ */
165
+ export type AxisColorMode = "text" | "series";
166
+
167
+ /**
168
+ * TODO docs
169
+ */
170
+ export interface ScaleDistributionConfig {
171
+ type: ScaleDistribution;
172
+ log?: number;
173
+ linearThreshold?: number;
174
+ }
175
+
176
+ /**
177
+ * TODO docs
178
+ */
179
+ export interface HideSeriesConfig {
180
+ tooltip: boolean;
181
+ legend: boolean;
182
+ viz: boolean;
183
+ }
184
+
185
+ /**
186
+ * TODO docs
187
+ */
188
+ export interface GraphThresholdsStyleConfig {
189
+ mode: GraphThresholdsStyleMode;
190
+ }
191
+
192
+ /**
193
+ * TODO docs
194
+ * Note: "hidden" needs to remain as an option for plugins compatibility
195
+ */
196
+ export type LegendDisplayMode = "list" | "table" | "hidden";
197
+
198
+ /**
199
+ * TODO docs
200
+ */
201
+ export type LegendPlacement = "bottom" | "right";
202
+
203
+ /**
204
+ * TODO docs
205
+ */
206
+ export type TooltipDisplayMode = "single" | "multi" | "none";
207
+
208
+ /**
209
+ * TODO docs
210
+ */
211
+ export type SortOrder = "asc" | "desc" | "none";
212
+
213
+ /**
214
+ * TODO docs
215
+ */
216
+ export type ScaleDistribution = "linear" | "log" | "ordinal" | "symlog";
217
+
218
+ /**
219
+ * TODO docs
220
+ */
221
+ export type GraphThresholdsStyleMode = "off" | "line" | "dashed" | "area" | "line+area" | "dashed+area" | "series";
@@ -0,0 +1,111 @@
1
+ // Code generated by chant generate from the vendored Grafana schema
2
+ // src/spec/schemas/bargauge.jsonschema.json (see src/pin.ts) and its correction
3
+ // overlay in src/spec/overlay/ (see src/spec/overlay.ts). DO NOT EDIT.
4
+ /* eslint-disable */
5
+
6
+ export interface Options {
7
+ displayMode: BarGaugeDisplayMode;
8
+ valueMode: BarGaugeValueMode;
9
+ namePlacement: BarGaugeNamePlacement;
10
+ showUnfilled: boolean;
11
+ sizing: BarGaugeSizing;
12
+ minVizWidth: number;
13
+ minVizHeight: number;
14
+ legend: VizLegendOptions;
15
+ reduceOptions: ReduceDataOptions;
16
+ text?: VizTextDisplayOptions;
17
+ maxVizHeight: number;
18
+ orientation: VizOrientation;
19
+ }
20
+
21
+ /**
22
+ * Enum expressing the possible display modes
23
+ * for the bar gauge component of Grafana UI
24
+ */
25
+ export type BarGaugeDisplayMode = "basic" | "lcd" | "gradient";
26
+
27
+ /**
28
+ * Allows for the table cell gauge display type to set the gauge mode.
29
+ */
30
+ export type BarGaugeValueMode = "color" | "text" | "hidden";
31
+
32
+ /**
33
+ * Allows for the bar gauge name to be placed explicitly
34
+ */
35
+ export type BarGaugeNamePlacement = "auto" | "top" | "left" | "hidden";
36
+
37
+ /**
38
+ * Allows for the bar gauge size to be set explicitly
39
+ */
40
+ export type BarGaugeSizing = "auto" | "manual";
41
+
42
+ /**
43
+ * TODO docs
44
+ */
45
+ export interface VizLegendOptions {
46
+ displayMode: LegendDisplayMode;
47
+ placement: LegendPlacement;
48
+ showLegend: boolean;
49
+ asTable?: boolean;
50
+ isVisible?: boolean;
51
+ sortBy?: string;
52
+ sortDesc?: boolean;
53
+ width?: number;
54
+ calcs: string[];
55
+ }
56
+
57
+ /**
58
+ * TODO docs
59
+ */
60
+ export interface ReduceDataOptions {
61
+ /**
62
+ * If true show each row value
63
+ */
64
+ values?: boolean;
65
+ /**
66
+ * if showing all values limit
67
+ */
68
+ limit?: number;
69
+ /**
70
+ * When !values, pick one value for the whole field
71
+ */
72
+ calcs: string[];
73
+ /**
74
+ * Which fields to show. By default this is only numeric fields
75
+ */
76
+ fields?: string;
77
+ }
78
+
79
+ /**
80
+ * TODO docs
81
+ */
82
+ export interface VizTextDisplayOptions {
83
+ /**
84
+ * Explicit title text size
85
+ */
86
+ titleSize?: number;
87
+ /**
88
+ * Explicit value text size
89
+ */
90
+ valueSize?: number;
91
+ /**
92
+ * Explicit percent text size
93
+ */
94
+ percentSize?: number;
95
+ }
96
+
97
+ /**
98
+ * TODO docs
99
+ */
100
+ export type VizOrientation = "auto" | "vertical" | "horizontal";
101
+
102
+ /**
103
+ * TODO docs
104
+ * Note: "hidden" needs to remain as an option for plugins compatibility
105
+ */
106
+ export type LegendDisplayMode = "list" | "table" | "hidden";
107
+
108
+ /**
109
+ * TODO docs
110
+ */
111
+ export type LegendPlacement = "bottom" | "right";
@@ -0,0 +1,110 @@
1
+ // Code generated by chant generate from the vendored Grafana schema
2
+ // src/spec/schemas/bigquery.jsonschema.json (see src/pin.ts) and its correction
3
+ // overlay in src/spec/overlay/ (see src/spec/overlay.ts). DO NOT EDIT.
4
+ /* eslint-disable */
5
+
6
+ /**
7
+ * Manually converted from https://github.com/grafana/google-bigquery-datasource/blob/18680e42ba557791d109c7c540c2c3f2647592f0/src/types.ts#L75
8
+ */
9
+ export interface Dataquery {
10
+ dataset?: string;
11
+ table?: string;
12
+ project?: string;
13
+ format: QueryFormat;
14
+ rawQuery?: boolean;
15
+ rawSql: string;
16
+ location?: string;
17
+ partitioned?: boolean;
18
+ partitionedField?: string;
19
+ convertToUTC?: boolean;
20
+ sharded?: boolean;
21
+ queryPriority?: QueryPriority;
22
+ timeShift?: string;
23
+ editorMode?: EditorMode;
24
+ sql?: SQLExpression;
25
+ /**
26
+ * A unique identifier for the query within the list of targets.
27
+ * In server side expressions, the refId is used as a variable name to identify results.
28
+ * By default, the UI will assign A->Z; however setting meaningful names may be useful.
29
+ */
30
+ refId?: string | null;
31
+ /**
32
+ * If hide is set to true, Grafana will filter out the response(s) associated with this query before returning it to the panel.
33
+ */
34
+ hide?: boolean;
35
+ /**
36
+ * Specify the query flavor
37
+ * TODO make this required and give it a default
38
+ */
39
+ queryType?: string;
40
+ /**
41
+ * For mixed data sources the selected datasource is on the query level.
42
+ * For non mixed scenarios this is undefined.
43
+ * TODO find a better way to do this ^ that's friendly to schema
44
+ * TODO this shouldn't be unknown but DataSourceRef | null
45
+ */
46
+ datasource?: DataSourceRef;
47
+ }
48
+
49
+ export type QueryFormat = 0 | 1;
50
+
51
+ export type QueryPriority = "INTERACTIVE" | "BATCH";
52
+
53
+ export type EditorMode = "code" | "builder";
54
+
55
+ export interface SQLExpression {
56
+ columns?: QueryEditorFunctionExpression[];
57
+ from?: string;
58
+ /**
59
+ * whereJsonTree?: _
60
+ */
61
+ whereString?: string;
62
+ groupBy?: QueryEditorGroupByExpression[];
63
+ orderBy?: QueryEditorPropertyExpression;
64
+ orderByDirection?: OrderByDirection;
65
+ limit?: number;
66
+ offset?: number;
67
+ }
68
+
69
+ export interface QueryEditorFunctionExpression {
70
+ type: QueryEditorExpressionType;
71
+ name?: string;
72
+ parameters?: QueryEditorFunctionParameterExpression[];
73
+ }
74
+
75
+ export type QueryEditorExpressionType = "property" | "operator" | "or" | "and" | "groupBy" | "function" | "functionParameter";
76
+
77
+ export interface QueryEditorFunctionParameterExpression {
78
+ type: QueryEditorExpressionType;
79
+ name?: string;
80
+ }
81
+
82
+ export interface QueryEditorGroupByExpression {
83
+ type: QueryEditorExpressionType;
84
+ property: QueryEditorProperty;
85
+ }
86
+
87
+ export interface QueryEditorProperty {
88
+ type: QueryEditorPropertyType;
89
+ name?: string;
90
+ }
91
+
92
+ export type QueryEditorPropertyType = "string";
93
+
94
+ export interface QueryEditorPropertyExpression {
95
+ type: QueryEditorExpressionType;
96
+ property: QueryEditorProperty;
97
+ }
98
+
99
+ export type OrderByDirection = "ASC" | "DESC";
100
+
101
+ export interface DataSourceRef {
102
+ /**
103
+ * The plugin type-id
104
+ */
105
+ type?: string;
106
+ /**
107
+ * Specific datasource instance
108
+ */
109
+ uid?: string;
110
+ }
@@ -0,0 +1,176 @@
1
+ // Code generated by chant generate from the vendored Grafana schema
2
+ // src/spec/schemas/canvas.jsonschema.json (see src/pin.ts) and its correction
3
+ // overlay in src/spec/overlay/ (see src/spec/overlay.ts). DO NOT EDIT.
4
+ /* eslint-disable */
5
+
6
+ export type HorizontalConstraint = "left" | "right" | "leftright" | "center" | "scale";
7
+
8
+ export type VerticalConstraint = "top" | "bottom" | "topbottom" | "center" | "scale";
9
+
10
+ export interface Constraint {
11
+ horizontal?: HorizontalConstraint;
12
+ vertical?: VerticalConstraint;
13
+ }
14
+
15
+ export interface Placement {
16
+ top?: number;
17
+ left?: number;
18
+ right?: number;
19
+ bottom?: number;
20
+ width?: number;
21
+ height?: number;
22
+ rotation?: number;
23
+ }
24
+
25
+ export type BackgroundImageSize = "original" | "contain" | "cover" | "fill" | "tile";
26
+
27
+ export interface BackgroundConfig {
28
+ color?: ColorDimensionConfig;
29
+ image?: ResourceDimensionConfig;
30
+ size?: BackgroundImageSize;
31
+ }
32
+
33
+ export interface LineConfig {
34
+ color?: ColorDimensionConfig;
35
+ width?: number;
36
+ radius?: number;
37
+ }
38
+
39
+ export type HttpRequestMethod = "GET" | "POST" | "PUT";
40
+
41
+ export interface ConnectionCoordinates {
42
+ x: number;
43
+ y: number;
44
+ }
45
+
46
+ export type ConnectionPath = "straight";
47
+
48
+ export interface CanvasConnection {
49
+ source: ConnectionCoordinates;
50
+ target: ConnectionCoordinates;
51
+ targetName?: string;
52
+ path: ConnectionPath;
53
+ color?: ColorDimensionConfig;
54
+ size?: ScaleDimensionConfig;
55
+ vertices?: ConnectionCoordinates[];
56
+ sourceOriginal?: ConnectionCoordinates;
57
+ targetOriginal?: ConnectionCoordinates;
58
+ direction?: DirectionDimensionConfig;
59
+ }
60
+
61
+ export interface CanvasElementOptions {
62
+ name: string;
63
+ type: string;
64
+ /**
65
+ * TODO: figure out how to define this (element config(s))
66
+ */
67
+ config?: Record<string, unknown>;
68
+ constraint?: Constraint;
69
+ placement?: Placement;
70
+ background?: BackgroundConfig;
71
+ border?: LineConfig;
72
+ connections?: CanvasConnection[];
73
+ }
74
+
75
+ export interface Options {
76
+ /**
77
+ * Enable inline editing
78
+ */
79
+ inlineEditing: boolean;
80
+ /**
81
+ * Show all available element types
82
+ */
83
+ showAdvancedTypes: boolean;
84
+ /**
85
+ * Enable pan and zoom
86
+ */
87
+ panZoom: boolean;
88
+ /**
89
+ * Enable infinite pan
90
+ */
91
+ infinitePan: boolean;
92
+ /**
93
+ * The root element of canvas (frame), where all canvas elements are nested
94
+ * TODO: Figure out how to define a default value for this
95
+ */
96
+ root: {
97
+ /**
98
+ * Name of the root element
99
+ */
100
+ name: string;
101
+ /**
102
+ * Type of root element (frame)
103
+ */
104
+ type: "frame";
105
+ /**
106
+ * The list of canvas elements attached to the root element
107
+ */
108
+ elements: CanvasElementOptions[];
109
+ constraint?: Constraint;
110
+ placement?: Placement;
111
+ background?: BackgroundConfig;
112
+ border?: LineConfig;
113
+ };
114
+ /**
115
+ * Controls tooltip options
116
+ */
117
+ tooltip?: CanvasTooltip;
118
+ /**
119
+ * Zoom to content
120
+ */
121
+ zoomToContent?: boolean;
122
+ }
123
+
124
+ export interface ColorDimensionConfig {
125
+ /**
126
+ * color value
127
+ */
128
+ fixed?: string;
129
+ /**
130
+ * fixed: T -- will be added by each element
131
+ */
132
+ field?: string;
133
+ }
134
+
135
+ /**
136
+ * Links to a resource (image/svg path)
137
+ */
138
+ export interface ResourceDimensionConfig {
139
+ mode: ResourceDimensionMode;
140
+ /**
141
+ * fixed: T -- will be added by each element
142
+ */
143
+ field?: string;
144
+ fixed?: string;
145
+ }
146
+
147
+ export interface ScaleDimensionConfig {
148
+ min: number;
149
+ max: number;
150
+ fixed?: number;
151
+ /**
152
+ * fixed: T -- will be added by each element
153
+ */
154
+ field?: string;
155
+ /**
156
+ * | *"linear"
157
+ */
158
+ mode?: ScaleDimensionMode;
159
+ }
160
+
161
+ export type ResourceDimensionMode = "fixed" | "field" | "mapping";
162
+
163
+ export type ScaleDimensionMode = "linear" | "quad";
164
+
165
+ export type TooltipDisplayMode = "single" | "multi" | "none";
166
+
167
+ export interface CanvasTooltip {
168
+ mode: TooltipDisplayMode;
169
+ disableForOneClick?: boolean;
170
+ }
171
+
172
+ export interface DirectionDimensionConfig {
173
+ field?: string;
174
+ mode: "fixed" | "field";
175
+ fixed?: "forward" | "reverse" | "both" | "none";
176
+ }