@grafana/sql 0.0.0 → 13.0.0-23483592685
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.
- package/CHANGELOG.md +3 -0
- package/README.md +10 -0
- package/dist/cjs/ResponseParser.cjs +29 -0
- package/dist/cjs/ResponseParser.cjs.map +1 -0
- package/dist/cjs/SQLVariableEditor.cjs +86 -0
- package/dist/cjs/SQLVariableEditor.cjs.map +1 -0
- package/dist/cjs/SQLVariableSupport.cjs +40 -0
- package/dist/cjs/SQLVariableSupport.cjs.map +1 -0
- package/dist/cjs/SQLVariableUtils.cjs +75 -0
- package/dist/cjs/SQLVariableUtils.cjs.map +1 -0
- package/dist/cjs/components/ConfirmModal.cjs +56 -0
- package/dist/cjs/components/ConfirmModal.cjs.map +1 -0
- package/dist/cjs/components/DatasetSelector.cjs +48 -0
- package/dist/cjs/components/DatasetSelector.cjs.map +1 -0
- package/dist/cjs/components/QueryEditor.cjs +124 -0
- package/dist/cjs/components/QueryEditor.cjs.map +1 -0
- package/dist/cjs/components/QueryEditorLazy.cjs +44 -0
- package/dist/cjs/components/QueryEditorLazy.cjs.map +1 -0
- package/dist/cjs/components/QueryHeader.cjs +294 -0
- package/dist/cjs/components/QueryHeader.cjs.map +1 -0
- package/dist/cjs/components/TableSelector.cjs +41 -0
- package/dist/cjs/components/TableSelector.cjs.map +1 -0
- package/dist/cjs/components/configuration/ConnectionLimits.cjs +162 -0
- package/dist/cjs/components/configuration/ConnectionLimits.cjs.map +1 -0
- package/dist/cjs/components/configuration/Divider.cjs +25 -0
- package/dist/cjs/components/configuration/Divider.cjs.map +1 -0
- package/dist/cjs/components/configuration/MaxLifetimeField.cjs +41 -0
- package/dist/cjs/components/configuration/MaxLifetimeField.cjs.map +1 -0
- package/dist/cjs/components/configuration/MaxOpenConnectionsField.cjs +53 -0
- package/dist/cjs/components/configuration/MaxOpenConnectionsField.cjs.map +1 -0
- package/dist/cjs/components/configuration/NumberInput.cjs +37 -0
- package/dist/cjs/components/configuration/NumberInput.cjs.map +1 -0
- package/dist/cjs/components/configuration/TLSSecretsConfig.cjs +106 -0
- package/dist/cjs/components/configuration/TLSSecretsConfig.cjs.map +1 -0
- package/dist/cjs/components/configuration/useMigrateDatabaseFields.cjs +52 -0
- package/dist/cjs/components/configuration/useMigrateDatabaseFields.cjs.map +1 -0
- package/dist/cjs/components/query-editor-raw/QueryEditorRaw.cjs +40 -0
- package/dist/cjs/components/query-editor-raw/QueryEditorRaw.cjs.map +1 -0
- package/dist/cjs/components/query-editor-raw/QueryToolbox.cjs +108 -0
- package/dist/cjs/components/query-editor-raw/QueryToolbox.cjs.map +1 -0
- package/dist/cjs/components/query-editor-raw/QueryValidator.cjs +100 -0
- package/dist/cjs/components/query-editor-raw/QueryValidator.cjs.map +1 -0
- package/dist/cjs/components/query-editor-raw/RawEditor.cjs +116 -0
- package/dist/cjs/components/query-editor-raw/RawEditor.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/AwesomeQueryBuilder.cjs +273 -0
- package/dist/cjs/components/visual-query-builder/AwesomeQueryBuilder.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/GroupByRow.cjs +69 -0
- package/dist/cjs/components/visual-query-builder/GroupByRow.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/OrderByRow.cjs +82 -0
- package/dist/cjs/components/visual-query-builder/OrderByRow.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/Preview.cjs +55 -0
- package/dist/cjs/components/visual-query-builder/Preview.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/SQLGroupByRow.cjs +18 -0
- package/dist/cjs/components/visual-query-builder/SQLGroupByRow.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/SQLOrderByRow.cjs +18 -0
- package/dist/cjs/components/visual-query-builder/SQLOrderByRow.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/SQLWhereRow.cjs +56 -0
- package/dist/cjs/components/visual-query-builder/SQLWhereRow.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/SelectColumn.cjs +30 -0
- package/dist/cjs/components/visual-query-builder/SelectColumn.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/SelectCustomFunctionParameters.cjs +135 -0
- package/dist/cjs/components/visual-query-builder/SelectCustomFunctionParameters.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/SelectFunctionParameters.cjs +142 -0
- package/dist/cjs/components/visual-query-builder/SelectFunctionParameters.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/SelectRow.cjs +184 -0
- package/dist/cjs/components/visual-query-builder/SelectRow.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/VisualEditor.cjs +43 -0
- package/dist/cjs/components/visual-query-builder/VisualEditor.cjs.map +1 -0
- package/dist/cjs/components/visual-query-builder/WhereRow.cjs +84 -0
- package/dist/cjs/components/visual-query-builder/WhereRow.cjs.map +1 -0
- package/dist/cjs/constants.cjs +77 -0
- package/dist/cjs/constants.cjs.map +1 -0
- package/dist/cjs/datasource/SqlDatasource.cjs +188 -0
- package/dist/cjs/datasource/SqlDatasource.cjs.map +1 -0
- package/dist/cjs/defaults.cjs +32 -0
- package/dist/cjs/defaults.cjs.map +1 -0
- package/dist/cjs/expressions.cjs +23 -0
- package/dist/cjs/expressions.cjs.map +1 -0
- package/dist/cjs/index.cjs +48 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/loadResources.cjs +49 -0
- package/dist/cjs/loadResources.cjs.map +1 -0
- package/dist/cjs/locales/cs-CZ/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/cs-CZ/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/de-DE/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/de-DE/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/en-US/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/en-US/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/es-ES/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/es-ES/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/fr-FR/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/fr-FR/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/hu-HU/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/hu-HU/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/id-ID/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/id-ID/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/it-IT/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/it-IT/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/ja-JP/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/ja-JP/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/ko-KR/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/ko-KR/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/nl-NL/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/nl-NL/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/pl-PL/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/pl-PL/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/pt-BR/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/pt-BR/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/pt-PT/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/pt-PT/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/ru-RU/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/ru-RU/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/sv-SE/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/sv-SE/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/tr-TR/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/tr-TR/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/zh-Hans/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/zh-Hans/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/locales/zh-Hant/grafana-sql.json.cjs +165 -0
- package/dist/cjs/locales/zh-Hant/grafana-sql.json.cjs.map +1 -0
- package/dist/cjs/types.cjs +24 -0
- package/dist/cjs/types.cjs.map +1 -0
- package/dist/cjs/utils/formatSQL.cjs +19 -0
- package/dist/cjs/utils/formatSQL.cjs.map +1 -0
- package/dist/cjs/utils/getColumnsWithIndices.cjs +33 -0
- package/dist/cjs/utils/getColumnsWithIndices.cjs.map +1 -0
- package/dist/cjs/utils/logging.cjs +11 -0
- package/dist/cjs/utils/logging.cjs.map +1 -0
- package/dist/cjs/utils/migration.cjs +24 -0
- package/dist/cjs/utils/migration.cjs.map +1 -0
- package/dist/cjs/utils/sql.utils.cjs +75 -0
- package/dist/cjs/utils/sql.utils.cjs.map +1 -0
- package/dist/cjs/utils/testHelpers.cjs +31 -0
- package/dist/cjs/utils/testHelpers.cjs.map +1 -0
- package/dist/cjs/utils/useSqlChange.cjs +22 -0
- package/dist/cjs/utils/useSqlChange.cjs.map +1 -0
- package/dist/esm/ResponseParser.mjs +25 -0
- package/dist/esm/ResponseParser.mjs.map +1 -0
- package/dist/esm/SQLVariableEditor.mjs +82 -0
- package/dist/esm/SQLVariableEditor.mjs.map +1 -0
- package/dist/esm/SQLVariableSupport.mjs +36 -0
- package/dist/esm/SQLVariableSupport.mjs.map +1 -0
- package/dist/esm/SQLVariableUtils.mjs +68 -0
- package/dist/esm/SQLVariableUtils.mjs.map +1 -0
- package/dist/esm/components/ConfirmModal.mjs +52 -0
- package/dist/esm/components/ConfirmModal.mjs.map +1 -0
- package/dist/esm/components/DatasetSelector.mjs +44 -0
- package/dist/esm/components/DatasetSelector.mjs.map +1 -0
- package/dist/esm/components/QueryEditor.mjs +122 -0
- package/dist/esm/components/QueryEditor.mjs.map +1 -0
- package/dist/esm/components/QueryEditorLazy.mjs +38 -0
- package/dist/esm/components/QueryEditorLazy.mjs.map +1 -0
- package/dist/esm/components/QueryHeader.mjs +290 -0
- package/dist/esm/components/QueryHeader.mjs.map +1 -0
- package/dist/esm/components/TableSelector.mjs +37 -0
- package/dist/esm/components/TableSelector.mjs.map +1 -0
- package/dist/esm/components/configuration/ConnectionLimits.mjs +158 -0
- package/dist/esm/components/configuration/ConnectionLimits.mjs.map +1 -0
- package/dist/esm/components/configuration/Divider.mjs +21 -0
- package/dist/esm/components/configuration/Divider.mjs.map +1 -0
- package/dist/esm/components/configuration/MaxLifetimeField.mjs +37 -0
- package/dist/esm/components/configuration/MaxLifetimeField.mjs.map +1 -0
- package/dist/esm/components/configuration/MaxOpenConnectionsField.mjs +49 -0
- package/dist/esm/components/configuration/MaxOpenConnectionsField.mjs.map +1 -0
- package/dist/esm/components/configuration/NumberInput.mjs +33 -0
- package/dist/esm/components/configuration/NumberInput.mjs.map +1 -0
- package/dist/esm/components/configuration/TLSSecretsConfig.mjs +102 -0
- package/dist/esm/components/configuration/TLSSecretsConfig.mjs.map +1 -0
- package/dist/esm/components/configuration/useMigrateDatabaseFields.mjs +48 -0
- package/dist/esm/components/configuration/useMigrateDatabaseFields.mjs.map +1 -0
- package/dist/esm/components/query-editor-raw/QueryEditorRaw.mjs +36 -0
- package/dist/esm/components/query-editor-raw/QueryEditorRaw.mjs.map +1 -0
- package/dist/esm/components/query-editor-raw/QueryToolbox.mjs +104 -0
- package/dist/esm/components/query-editor-raw/QueryToolbox.mjs.map +1 -0
- package/dist/esm/components/query-editor-raw/QueryValidator.mjs +96 -0
- package/dist/esm/components/query-editor-raw/QueryValidator.mjs.map +1 -0
- package/dist/esm/components/query-editor-raw/RawEditor.mjs +108 -0
- package/dist/esm/components/query-editor-raw/RawEditor.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/AwesomeQueryBuilder.mjs +266 -0
- package/dist/esm/components/visual-query-builder/AwesomeQueryBuilder.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/GroupByRow.mjs +65 -0
- package/dist/esm/components/visual-query-builder/GroupByRow.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/OrderByRow.mjs +78 -0
- package/dist/esm/components/visual-query-builder/OrderByRow.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/Preview.mjs +51 -0
- package/dist/esm/components/visual-query-builder/Preview.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/SQLGroupByRow.mjs +14 -0
- package/dist/esm/components/visual-query-builder/SQLGroupByRow.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/SQLOrderByRow.mjs +14 -0
- package/dist/esm/components/visual-query-builder/SQLOrderByRow.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/SQLWhereRow.mjs +51 -0
- package/dist/esm/components/visual-query-builder/SQLWhereRow.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/SelectColumn.mjs +26 -0
- package/dist/esm/components/visual-query-builder/SelectColumn.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/SelectCustomFunctionParameters.mjs +131 -0
- package/dist/esm/components/visual-query-builder/SelectCustomFunctionParameters.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/SelectFunctionParameters.mjs +138 -0
- package/dist/esm/components/visual-query-builder/SelectFunctionParameters.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/SelectRow.mjs +180 -0
- package/dist/esm/components/visual-query-builder/SelectRow.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/VisualEditor.mjs +39 -0
- package/dist/esm/components/visual-query-builder/VisualEditor.mjs.map +1 -0
- package/dist/esm/components/visual-query-builder/WhereRow.mjs +80 -0
- package/dist/esm/components/visual-query-builder/WhereRow.mjs.map +1 -0
- package/dist/esm/constants.mjs +71 -0
- package/dist/esm/constants.mjs.map +1 -0
- package/dist/esm/datasource/SqlDatasource.mjs +184 -0
- package/dist/esm/datasource/SqlDatasource.mjs.map +1 -0
- package/dist/esm/defaults.mjs +28 -0
- package/dist/esm/defaults.mjs.map +1 -0
- package/dist/esm/expressions.mjs +18 -0
- package/dist/esm/expressions.mjs.map +1 -0
- package/dist/esm/index.mjs +22 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/loadResources.mjs +43 -0
- package/dist/esm/loadResources.mjs.map +1 -0
- package/dist/esm/locales/cs-CZ/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/cs-CZ/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/de-DE/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/de-DE/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/en-US/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/en-US/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/es-ES/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/es-ES/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/fr-FR/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/fr-FR/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/hu-HU/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/hu-HU/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/id-ID/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/id-ID/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/it-IT/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/it-IT/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/ja-JP/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/ja-JP/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/ko-KR/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/ko-KR/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/nl-NL/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/nl-NL/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/pl-PL/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/pl-PL/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/pt-BR/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/pt-BR/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/pt-PT/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/pt-PT/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/ru-RU/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/ru-RU/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/sv-SE/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/sv-SE/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/tr-TR/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/tr-TR/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/zh-Hans/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/zh-Hans/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/locales/zh-Hant/grafana-sql.json.mjs +163 -0
- package/dist/esm/locales/zh-Hant/grafana-sql.json.mjs.map +1 -0
- package/dist/esm/types.mjs +18 -0
- package/dist/esm/types.mjs.map +1 -0
- package/dist/esm/utils/formatSQL.mjs +11 -0
- package/dist/esm/utils/formatSQL.mjs.map +1 -0
- package/dist/esm/utils/getColumnsWithIndices.mjs +29 -0
- package/dist/esm/utils/getColumnsWithIndices.mjs.map +1 -0
- package/dist/esm/utils/logging.mjs +7 -0
- package/dist/esm/utils/logging.mjs.map +1 -0
- package/dist/esm/utils/migration.mjs +22 -0
- package/dist/esm/utils/migration.mjs.map +1 -0
- package/dist/esm/utils/sql.utils.mjs +66 -0
- package/dist/esm/utils/sql.utils.mjs.map +1 -0
- package/dist/esm/utils/testHelpers.mjs +27 -0
- package/dist/esm/utils/testHelpers.mjs.map +1 -0
- package/dist/esm/utils/useSqlChange.mjs +18 -0
- package/dist/esm/utils/useSqlChange.mjs.map +1 -0
- package/dist/types/ResponseParser.d.ts +5 -0
- package/dist/types/SQLVariableEditor.d.ts +5 -0
- package/dist/types/SQLVariableSupport.d.ts +11 -0
- package/dist/types/SQLVariableUtils.d.ts +6 -0
- package/dist/types/components/ConfirmModal.d.ts +8 -0
- package/dist/types/components/DatasetSelector.d.ts +11 -0
- package/dist/types/components/ErrorBoundary.d.ts +12 -0
- package/dist/types/components/QueryEditor.d.ts +8 -0
- package/dist/types/components/QueryEditorLazy.d.ts +2 -0
- package/dist/types/components/QueryHeader.d.ts +16 -0
- package/dist/types/components/SqlComponents.testHelpers.d.ts +65 -0
- package/dist/types/components/TableSelector.d.ts +10 -0
- package/dist/types/components/configuration/ConnectionLimits.d.ts +8 -0
- package/dist/types/components/configuration/Divider.d.ts +1 -0
- package/dist/types/components/configuration/MaxLifetimeField.d.ts +8 -0
- package/dist/types/components/configuration/MaxOpenConnectionsField.d.ts +8 -0
- package/dist/types/components/configuration/NumberInput.d.ts +8 -0
- package/dist/types/components/configuration/TLSSecretsConfig.d.ts +9 -0
- package/dist/types/components/configuration/useMigrateDatabaseFields.d.ts +7 -0
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/components/query-editor-raw/QueryEditorRaw.d.ts +15 -0
- package/dist/types/components/query-editor-raw/QueryToolbox.d.ts +10 -0
- package/dist/types/components/query-editor-raw/QueryValidator.d.ts +9 -0
- package/dist/types/components/query-editor-raw/RawEditor.d.ts +9 -0
- package/dist/types/components/visual-query-builder/AwesomeQueryBuilder.d.ts +6 -0
- package/dist/types/components/visual-query-builder/GroupByRow.d.ts +9 -0
- package/dist/types/components/visual-query-builder/OrderByRow.d.ts +10 -0
- package/dist/types/components/visual-query-builder/Preview.d.ts +6 -0
- package/dist/types/components/visual-query-builder/SQLGroupByRow.d.ts +11 -0
- package/dist/types/components/visual-query-builder/SQLOrderByRow.d.ts +11 -0
- package/dist/types/components/visual-query-builder/SQLWhereRow.d.ts +12 -0
- package/dist/types/components/visual-query-builder/SelectColumn.d.ts +8 -0
- package/dist/types/components/visual-query-builder/SelectCustomFunctionParameters.d.ts +11 -0
- package/dist/types/components/visual-query-builder/SelectFunctionParameters.d.ts +11 -0
- package/dist/types/components/visual-query-builder/SelectRow.d.ts +10 -0
- package/dist/types/components/visual-query-builder/VisualEditor.d.ts +8 -0
- package/dist/types/components/visual-query-builder/WhereRow.d.ts +9 -0
- package/dist/types/components/visual-query-builder/index.d.ts +1 -0
- package/dist/types/constants.d.ts +12 -0
- package/dist/types/datasource/SqlDatasource.d.ts +38 -0
- package/dist/types/defaults.d.ts +3 -0
- package/dist/types/expressions.d.ts +51 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/loadResources.d.ts +2 -0
- package/dist/types/types.d.ts +152 -0
- package/dist/types/utils/formatSQL.d.ts +1 -0
- package/dist/types/utils/getColumnsWithIndices.d.ts +3 -0
- package/dist/types/utils/logging.d.ts +2 -0
- package/dist/types/utils/migration.d.ts +3 -0
- package/dist/types/utils/sql.utils.d.ts +21 -0
- package/dist/types/utils/testHelpers.d.ts +2 -0
- package/dist/types/utils/useSqlChange.d.ts +10 -0
- package/package.json +80 -4
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var grafanaSql = {
|
|
4
|
+
"grafana-sql": {
|
|
5
|
+
components: {
|
|
6
|
+
"confirm-modal": {
|
|
7
|
+
"builder-mode": "編輯模式不會顯示在程式碼中的變更。查詢編輯器將顯示您在編輯器模式下所做的最後變更。",
|
|
8
|
+
cancel: "取消",
|
|
9
|
+
clipboard: "要將程式碼複製到剪貼簿嗎?",
|
|
10
|
+
"copy-code-and-switch": "複製程式碼並切換",
|
|
11
|
+
"discard-code-and-switch": "捨棄程式碼並切換",
|
|
12
|
+
warning: "警告"
|
|
13
|
+
},
|
|
14
|
+
"connection-limits": {
|
|
15
|
+
"auto-max-idle": "自動最大閒置時間",
|
|
16
|
+
"content-auto-max-idle": "",
|
|
17
|
+
"content-max-idle": "閒置連線池中的最大連線數。若<i>最大開啟連線數</i>大於 0,但小於<i>最大閒置連線數</i>,則<i>最大閒置連線數</i>將會縮減,以符合<i>最大開啟連線數</i>限制。若設定為 0,則不會保留任何閒置連線數。",
|
|
18
|
+
"content-max-lifetime": "可以重複使用連線的最長時間(秒)。若設定為 0,則會永遠重複使用連線。",
|
|
19
|
+
"content-max-open": "",
|
|
20
|
+
"max-idle": "最大閒置",
|
|
21
|
+
"max-lifetime": "最大存活期",
|
|
22
|
+
"max-open": "最大開啟數量",
|
|
23
|
+
"title-connection-limits": "連線限制"
|
|
24
|
+
},
|
|
25
|
+
"dataset-selector": {
|
|
26
|
+
"aria-label-dataset-selector": "資料集選擇器"
|
|
27
|
+
},
|
|
28
|
+
"error-boundary": {
|
|
29
|
+
"fall-back": {
|
|
30
|
+
error: "錯誤"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"get-custom-operators": {
|
|
34
|
+
"custom-operators": {
|
|
35
|
+
label: {
|
|
36
|
+
macros: "巨集"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"make-render-column": {
|
|
41
|
+
"render-column": {
|
|
42
|
+
"aria-label-group-by": "分組依據",
|
|
43
|
+
"title-remove-group-by-column": "按欄位移除群組"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"order-by-row": {
|
|
47
|
+
"aria-label-order-by": "排序方式",
|
|
48
|
+
"label-limit": "限制",
|
|
49
|
+
"label-offset": "位移量",
|
|
50
|
+
"label-order-by": "排序方式"
|
|
51
|
+
},
|
|
52
|
+
preview: {
|
|
53
|
+
"label-element": {
|
|
54
|
+
preview: "預覽",
|
|
55
|
+
"tooltip-copy-to-clipboard": "複製至剪貼簿"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"query-header": {
|
|
59
|
+
"content-invalid-query": "",
|
|
60
|
+
"editor-modes": {
|
|
61
|
+
"label-builder": "建立器",
|
|
62
|
+
"label-code": "代碼"
|
|
63
|
+
},
|
|
64
|
+
"label-dataset": "資料集",
|
|
65
|
+
"label-filter": "篩選",
|
|
66
|
+
"label-format": "格式",
|
|
67
|
+
"label-group": "群組",
|
|
68
|
+
"label-order": "排序",
|
|
69
|
+
"label-preview": "預覽",
|
|
70
|
+
"label-table": "表格",
|
|
71
|
+
"placeholder-select-format": "選擇格式",
|
|
72
|
+
"run-query": "執行查詢"
|
|
73
|
+
},
|
|
74
|
+
"query-meta": {
|
|
75
|
+
variables: {
|
|
76
|
+
textField: "文字欄位",
|
|
77
|
+
valueField: "值欄位"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"query-toolbox": {
|
|
81
|
+
"content-hit-ctrlcmdreturn-to-run-query": "按下 CTRL/CMD + Return 執行查詢",
|
|
82
|
+
"tooltip-collapse": "收合編輯器",
|
|
83
|
+
"tooltip-expand": "展開編輯器",
|
|
84
|
+
"tooltip-format-query": "格式化查詢"
|
|
85
|
+
},
|
|
86
|
+
"query-validator": {
|
|
87
|
+
"query-will-process": "<0></0>此查詢將在執行時處理 <strong>{{bytes}}</strong>。",
|
|
88
|
+
"validating-query": "正在驗證查詢…"
|
|
89
|
+
},
|
|
90
|
+
"raw-editor": {
|
|
91
|
+
"render-placeholder": {
|
|
92
|
+
"editing-in-expanded-code-editor": "在展開的程式碼編輯器中編輯"
|
|
93
|
+
},
|
|
94
|
+
"title-query-num": "查詢 {{queryNum}}"
|
|
95
|
+
},
|
|
96
|
+
"select-column": {
|
|
97
|
+
"label-column": "欄位"
|
|
98
|
+
},
|
|
99
|
+
"select-custom-function-parameters": {
|
|
100
|
+
"aria-label-parameter": "欄位 {{columnIndex}} 的參數 {{index}}",
|
|
101
|
+
"render-parameters": {
|
|
102
|
+
params: {
|
|
103
|
+
"title-remove-parameter": "移除參數"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"title-add-parameter": "新增參數"
|
|
107
|
+
},
|
|
108
|
+
"select-row": {
|
|
109
|
+
"aggregate-options": {
|
|
110
|
+
options: {
|
|
111
|
+
label: {
|
|
112
|
+
aggregations: "聚合",
|
|
113
|
+
macros: "巨集"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
label: {
|
|
118
|
+
time: "時間",
|
|
119
|
+
value: "值"
|
|
120
|
+
},
|
|
121
|
+
"label-alias": "別名",
|
|
122
|
+
"label-data-operations": "資料操作",
|
|
123
|
+
"title-add-column": "新增欄位",
|
|
124
|
+
"title-remove-column": "移除欄位"
|
|
125
|
+
},
|
|
126
|
+
settings: {
|
|
127
|
+
"aria-label-conjunction": "連接條件",
|
|
128
|
+
"aria-label-field": "欄位",
|
|
129
|
+
"aria-label-operator": "運算子",
|
|
130
|
+
"title-button-filter": "{{ buttonLabel }} 篩選條件"
|
|
131
|
+
},
|
|
132
|
+
"sql-query-editor-lazy": {
|
|
133
|
+
"text-loading-editor": "正在載入編輯器"
|
|
134
|
+
},
|
|
135
|
+
"table-selector": {
|
|
136
|
+
"aria-label-table-selector": "表格選擇器",
|
|
137
|
+
"placeholder-loading": "載入表格…",
|
|
138
|
+
"placeholder-select-table": "選擇表格"
|
|
139
|
+
},
|
|
140
|
+
"tlssecrets-config": {
|
|
141
|
+
"content-tlsssl-client-certificate": "若要使用 TLS/SSL 用戶端憑證進行驗證,請在此提供用戶端憑證。",
|
|
142
|
+
"content-tlsssl-client-key": "若要使用用戶端 TLS/SSL 憑證進行驗證,請在此提供金鑰。",
|
|
143
|
+
"content-tlsssl-root-certificate": "若所選的 TLS/SSL 模式需要伺服器根憑證,請在此提供",
|
|
144
|
+
"tlsssl-client-certificate": "TLS/SSL 用戶端憑證",
|
|
145
|
+
"tlsssl-client-key": "TLS/SSL 用戶端金鑰",
|
|
146
|
+
"tlsssl-root-certificate": "TLS/SSL 根憑證"
|
|
147
|
+
},
|
|
148
|
+
"visual-editor": {
|
|
149
|
+
"label-filter-by-column-value": "按欄位數值篩選",
|
|
150
|
+
"label-group-by-column": "按欄位分組"
|
|
151
|
+
},
|
|
152
|
+
widgets: {
|
|
153
|
+
"aria-label-macros-value-selector": "巨集值選擇器"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
utils: {
|
|
157
|
+
"get-columns-width-indices": {
|
|
158
|
+
"label-selected-columns": "選取的欄位"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
module.exports = grafanaSql;
|
|
165
|
+
//# sourceMappingURL=grafana-sql.json.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grafana-sql.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var data = require('@grafana/data');
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var _a;
|
|
9
|
+
var QueryFormat = /* @__PURE__ */ ((QueryFormat2) => {
|
|
10
|
+
QueryFormat2["Timeseries"] = "time_series";
|
|
11
|
+
QueryFormat2["Table"] = "table";
|
|
12
|
+
return QueryFormat2;
|
|
13
|
+
})(QueryFormat || {});
|
|
14
|
+
const QUERY_FORMAT_OPTIONS = [
|
|
15
|
+
{ label: "Time series", value: "time_series" /* Timeseries */ },
|
|
16
|
+
{ label: "Table", value: "table" /* Table */ }
|
|
17
|
+
];
|
|
18
|
+
const backWardToOption = (value) => ({ label: value, value });
|
|
19
|
+
const toOption = (_a = data.toOption) != null ? _a : backWardToOption;
|
|
20
|
+
|
|
21
|
+
exports.QUERY_FORMAT_OPTIONS = QUERY_FORMAT_OPTIONS;
|
|
22
|
+
exports.QueryFormat = QueryFormat;
|
|
23
|
+
exports.toOption = toOption;
|
|
24
|
+
//# sourceMappingURL=types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.cjs","sources":["../../src/types.ts"],"sourcesContent":["import { JsonTree } from '@react-awesome-query-builder/ui';\n\nimport {\n DataFrame,\n DataQuery,\n DataSourceJsonData,\n MetricFindValue,\n SelectableValue,\n TimeRange,\n toOption as toOptionFromData,\n} from '@grafana/data';\nimport { CompletionItemKind, EditorMode, LanguageDefinition } from '@grafana/plugin-ui';\n\nimport { QueryWithDefaults } from './defaults';\nimport {\n QueryEditorFunctionExpression,\n QueryEditorGroupByExpression,\n QueryEditorPropertyExpression,\n} from './expressions';\n\nexport interface SqlQueryForInterpolation {\n dataset?: string;\n alias?: string;\n format?: QueryFormat;\n rawSql?: string;\n refId: string;\n hide?: boolean;\n}\n\nexport interface SQLConnectionLimits {\n maxOpenConns: number;\n maxIdleConns: number;\n maxIdleConnsAuto: boolean;\n connMaxLifetime: number;\n}\n\nexport interface SQLOptions extends SQLConnectionLimits, DataSourceJsonData {\n tlsAuth: boolean;\n tlsAuthWithCACert: boolean;\n timezone: string;\n tlsSkipVerify: boolean;\n user: string;\n database: string;\n url: string;\n timeInterval: string;\n}\n\nexport enum QueryFormat {\n Timeseries = 'time_series',\n Table = 'table',\n}\n\nexport type SQLQueryMeta = { valueField?: string; textField?: string };\n\nexport interface SQLQuery extends DataQuery {\n alias?: string;\n format?: QueryFormat;\n rawSql?: string;\n dataset?: string;\n table?: string;\n sql?: SQLExpression;\n editorMode?: EditorMode;\n rawQuery?: boolean;\n meta?: SQLQueryMeta;\n}\n\nexport type SQLVariableQuery = { query: string } & SQLQuery;\n\nexport interface NameValue {\n name: string;\n value: string;\n}\n\nexport type SQLFilters = NameValue[];\n\nexport interface SQLExpression {\n columns?: QueryEditorFunctionExpression[];\n whereJsonTree?: JsonTree;\n whereString?: string;\n filters?: SQLFilters;\n groupBy?: QueryEditorGroupByExpression[];\n orderBy?: QueryEditorPropertyExpression;\n orderByDirection?: 'ASC' | 'DESC';\n limit?: number;\n offset?: number;\n}\n\nexport interface TableSchema {\n name?: string;\n schema?: TableFieldSchema[];\n}\n\nexport interface TableFieldSchema {\n name: string;\n description?: string;\n type: string;\n repeated: boolean;\n schema: TableFieldSchema[];\n}\n\nexport interface QueryRowFilter {\n filter: boolean;\n group: boolean;\n order: boolean;\n preview: boolean;\n}\n\nexport const QUERY_FORMAT_OPTIONS = [\n { label: 'Time series', value: QueryFormat.Timeseries },\n { label: 'Table', value: QueryFormat.Table },\n];\n\nconst backWardToOption = (value: string) => ({ label: value, value });\n\nexport const toOption = toOptionFromData ?? backWardToOption;\n\nexport interface ResourceSelectorProps {\n disabled?: boolean;\n className?: string;\n applyDefault?: boolean;\n}\n// React Awesome Query builder field types.\n// These are responsible for rendering the correct UI for the field.\nexport type RAQBFieldTypes = 'text' | 'number' | 'boolean' | 'datetime' | 'date' | 'time';\n\nexport interface SQLSelectableValue extends SelectableValue {\n type?: string;\n raqbFieldType?: RAQBFieldTypes;\n}\n\nexport interface DB {\n init?: (datasourceId?: string) => Promise<boolean>;\n datasets: () => Promise<string[]>;\n tables: (dataset?: string) => Promise<string[]>;\n fields: (query: SQLQuery, order?: boolean) => Promise<SQLSelectableValue[]>;\n validateQuery: (query: SQLQuery, range?: TimeRange) => Promise<ValidationResults>;\n dispose?: (dsID?: string) => void;\n lookup?: (path?: string) => Promise<Array<{ name: string; completion: string }>>;\n getEditorLanguageDefinition: () => LanguageDefinition;\n toRawSql: (query: SQLQuery) => string;\n functions: () => Func[];\n}\n\nexport interface FuncParameter {\n name: string;\n required?: boolean;\n options?: (query: SQLQuery) => Promise<SelectableValue[]>;\n}\nexport interface Func {\n name: string;\n parameters?: FuncParameter[];\n description?: string;\n}\n\nexport interface QueryEditorProps {\n db: DB;\n query: QueryWithDefaults;\n onChange: (query: SQLQuery) => void;\n range?: TimeRange;\n}\n\nexport interface ValidationResults {\n query: SQLQuery;\n rawSql?: string;\n error: string;\n isError: boolean;\n isValid: boolean;\n statistics?: {\n TotalBytesProcessed: number;\n } | null;\n}\n\nexport interface SqlQueryModel {\n quoteLiteral: (v: string) => string;\n}\n\nexport interface ResponseParser {\n transformMetricFindResponse: (frame: DataFrame) => MetricFindValue[];\n}\n\nexport interface MetaDefinition {\n name: string;\n completion?: string;\n kind: CompletionItemKind;\n}\n\nexport type SQLDialect = 'postgres' | 'influx' | 'other';\n"],"names":["QueryFormat","toOptionFromData"],"mappings":";;;;;;;AAAA,IAAA,EAAA;AA+CO,IAAK,WAAA,qBAAAA,YAAAA,KAAL;AACL,EAAAA,aAAA,YAAA,CAAA,GAAa,aAAA;AACb,EAAAA,aAAA,OAAA,CAAA,GAAQ,OAAA;AAFE,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AA4DL,MAAM,oBAAA,GAAuB;AAAA,EAClC,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,aAAA,mBAAuB;AAAA,EACtD,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA;AAC3B;AAEA,MAAM,mBAAmB,CAAC,KAAA,MAAmB,EAAE,KAAA,EAAO,OAAO,KAAA,EAAM,CAAA;AAE5D,MAAM,YAAW,EAAA,GAAAC,aAAA,KAAA,IAAA,GAAA,EAAA,GAAoB;;;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var sqlFormatter = require('sql-formatter-plus');
|
|
6
|
+
|
|
7
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
8
|
+
|
|
9
|
+
var sqlFormatter__default = /*#__PURE__*/_interopDefaultCompat(sqlFormatter);
|
|
10
|
+
|
|
11
|
+
"use strict";
|
|
12
|
+
function formatSQL(q) {
|
|
13
|
+
return sqlFormatter__default.default.format(q).replace(/(\$ \{ .* \})|(\$ __)|(\$ \w+)/g, (m) => {
|
|
14
|
+
return m.replace(/\s/g, "");
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.formatSQL = formatSQL;
|
|
19
|
+
//# sourceMappingURL=formatSQL.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatSQL.cjs","sources":["../../../src/utils/formatSQL.ts"],"sourcesContent":["// @ts-ignore\nimport sqlFormatter from 'sql-formatter-plus';\n\nexport function formatSQL(q: string) {\n return sqlFormatter.format(q).replace(/(\\$ \\{ .* \\})|(\\$ __)|(\\$ \\w+)/g, (m: string) => {\n return m.replace(/\\s/g, '');\n });\n}\n"],"names":["sqlFormatter"],"mappings":";;;;;;;;;;;AAGO,SAAS,UAAU,CAAA,EAAW;AACnC,EAAA,OAAOA,8BAAa,MAAA,CAAO,CAAC,EAAE,OAAA,CAAQ,iCAAA,EAAmC,CAAC,CAAA,KAAc;AACtF,IAAA,OAAO,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAAA,EAC5B,CAAC,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var i18n = require('@grafana/i18n');
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
function getColumnsWithIndices(query, fields) {
|
|
9
|
+
var _a;
|
|
10
|
+
if (!fields || !((_a = query.sql) == null ? void 0 : _a.columns)) {
|
|
11
|
+
return fields;
|
|
12
|
+
}
|
|
13
|
+
const options = query.sql.columns.map((c, i) => {
|
|
14
|
+
var _a2, _b;
|
|
15
|
+
const value = c.name ? `${c.name}(${(_a2 = c.parameters) == null ? void 0 : _a2.map((p) => p.name).join(", ")})` : (_b = c.parameters) == null ? void 0 : _b.map((p) => p.name).join(", ");
|
|
16
|
+
return {
|
|
17
|
+
value,
|
|
18
|
+
label: `${i + 1} - ${value}`
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
return [
|
|
22
|
+
{
|
|
23
|
+
value: "",
|
|
24
|
+
label: i18n.t("grafana-sql.utils.get-columns-width-indices.label-selected-columns", "Selected columns"),
|
|
25
|
+
options,
|
|
26
|
+
expanded: true
|
|
27
|
+
},
|
|
28
|
+
...fields
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
exports.getColumnsWithIndices = getColumnsWithIndices;
|
|
33
|
+
//# sourceMappingURL=getColumnsWithIndices.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getColumnsWithIndices.cjs","sources":["../../../src/utils/getColumnsWithIndices.ts"],"sourcesContent":["import { SelectableValue } from '@grafana/data';\nimport { t } from '@grafana/i18n';\n\nimport { SQLQuery } from '../types';\n\nexport function getColumnsWithIndices(query: SQLQuery, fields: SelectableValue[]): SelectableValue[] {\n if (!fields || !query.sql?.columns) {\n return fields;\n }\n\n const options = query.sql.columns.map((c, i) => {\n const value = c.name\n ? `${c.name}(${c.parameters?.map((p) => p.name).join(', ')})`\n : c.parameters?.map((p) => p.name).join(', ');\n return {\n value,\n label: `${i + 1} - ${value}`,\n };\n });\n\n return [\n {\n value: '',\n label: t('grafana-sql.utils.get-columns-width-indices.label-selected-columns', 'Selected columns'),\n options,\n expanded: true,\n },\n ...fields,\n ];\n}\n"],"names":["_a","t"],"mappings":";;;;;;;AAKO,SAAS,qBAAA,CAAsB,OAAiB,MAAA,EAA8C;AALrG,EAAA,IAAA,EAAA;AAME,EAAA,IAAI,CAAC,MAAA,IAAU,EAAA,CAAC,EAAA,GAAA,KAAA,CAAM,GAAA,KAAN,mBAAW,OAAA,CAAA,EAAS;AAClC,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,UAAU,KAAA,CAAM,GAAA,CAAI,QAAQ,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AAVlD,IAAA,IAAAA,GAAAA,EAAA,EAAA;AAWI,IAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,IAAA,GACZ,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAA,EAAA,CAAIA,GAAAA,GAAA,CAAA,CAAE,UAAA,KAAF,IAAA,GAAA,KAAA,CAAA,GAAAA,GAAAA,CAAc,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAA,CAAM,IAAA,CAAK,IAAA,CAAK,CAAA,CAAA,CAAA,GAAA,CACxD,EAAA,GAAA,CAAA,CAAE,UAAA,KAAF,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAA,CAAM,IAAA,CAAK,IAAA,CAAA;AAC1C,IAAA,OAAO;AAAA,MACL,KAAA;AAAA,MACA,KAAA,EAAO,CAAA,EAAG,CAAA,GAAI,CAAC,MAAM,KAAK,CAAA;AAAA,KAC5B;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL;AAAA,MACE,KAAA,EAAO,EAAA;AAAA,MACP,KAAA,EAAOC,MAAA,CAAE,oEAAA,EAAsE,kBAAkB,CAAA;AAAA,MACjG,OAAA;AAAA,MACA,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,GAAG;AAAA,GACL;AACF;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var runtime = require('@grafana/runtime');
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
const sqlPluginLogger = runtime.createMonitoringLogger("features.plugins.sql");
|
|
9
|
+
|
|
10
|
+
exports.sqlPluginLogger = sqlPluginLogger;
|
|
11
|
+
//# sourceMappingURL=logging.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.cjs","sources":["../../../src/utils/logging.ts"],"sourcesContent":["import { createMonitoringLogger, MonitoringLogger } from '@grafana/runtime';\n\nexport const sqlPluginLogger: MonitoringLogger = createMonitoringLogger('features.plugins.sql');\n"],"names":["createMonitoringLogger"],"mappings":";;;;;;;AAEO,MAAM,eAAA,GAAoCA,+BAAuB,sBAAsB;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var defaults = require('../defaults.cjs');
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
function migrateAnnotation(annotation) {
|
|
7
|
+
var _a;
|
|
8
|
+
const oldQuery = typeof annotation.rawQuery === "string" ? annotation.rawQuery : null;
|
|
9
|
+
if (!oldQuery) {
|
|
10
|
+
return annotation;
|
|
11
|
+
}
|
|
12
|
+
const newQuery = defaults.applyQueryDefaults({ refId: "Annotation", ...(_a = annotation.target) != null ? _a : {}, rawSql: oldQuery });
|
|
13
|
+
return {
|
|
14
|
+
...annotation,
|
|
15
|
+
rawQuery: void 0,
|
|
16
|
+
workspace: void 0,
|
|
17
|
+
subscription: void 0,
|
|
18
|
+
queryType: void 0,
|
|
19
|
+
target: newQuery
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
module.exports = migrateAnnotation;
|
|
24
|
+
//# sourceMappingURL=migration.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.cjs","sources":["../../../src/utils/migration.ts"],"sourcesContent":["import { AnnotationQuery } from '@grafana/data';\n\nimport { applyQueryDefaults } from '../defaults';\nimport { SQLQuery } from '../types';\n\nexport default function migrateAnnotation(annotation: AnnotationQuery<SQLQuery>) {\n const oldQuery = typeof annotation.rawQuery === 'string' ? annotation.rawQuery : null;\n\n if (!oldQuery) {\n return annotation;\n }\n\n const newQuery = applyQueryDefaults({ refId: 'Annotation', ...(annotation.target ?? {}), rawSql: oldQuery });\n\n return {\n ...annotation,\n rawQuery: undefined,\n workspace: undefined,\n subscription: undefined,\n queryType: undefined,\n target: newQuery,\n };\n}\n"],"names":["applyQueryDefaults"],"mappings":";;;;;AAKA,SAAwB,kBAAkB,UAAA,EAAuC;AALjF,EAAA,IAAA,EAAA;AAME,EAAA,MAAM,WAAW,OAAO,UAAA,CAAW,QAAA,KAAa,QAAA,GAAW,WAAW,QAAA,GAAW,IAAA;AAEjF,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,UAAA;AAAA,EACT;AAEA,EAAA,MAAM,QAAA,GAAWA,2BAAA,CAAmB,EAAE,KAAA,EAAO,YAAA,EAAc,GAAA,CAAI,EAAA,GAAA,UAAA,CAAW,MAAA,KAAX,IAAA,GAAA,EAAA,GAAqB,EAAC,EAAI,MAAA,EAAQ,UAAU,CAAA;AAE3G,EAAA,OAAO;AAAA,IACL,GAAG,UAAA;AAAA,IACH,QAAA,EAAU,KAAA,CAAA;AAAA,IACV,SAAA,EAAW,KAAA,CAAA;AAAA,IACX,YAAA,EAAc,KAAA,CAAA;AAAA,IACd,SAAA,EAAW,KAAA,CAAA;AAAA,IACX,MAAA,EAAQ;AAAA,GACV;AACF;;;;"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var data = require('@grafana/data');
|
|
6
|
+
var expressions = require('../expressions.cjs');
|
|
7
|
+
|
|
8
|
+
"use strict";
|
|
9
|
+
function createSelectClause(sqlColumns) {
|
|
10
|
+
const columns = sqlColumns.map((c) => {
|
|
11
|
+
var _a, _b, _c, _d;
|
|
12
|
+
let rawColumn = "";
|
|
13
|
+
if (c.name && c.alias) {
|
|
14
|
+
rawColumn += `${c.name}(${(_a = c.parameters) == null ? void 0 : _a.map((p) => `${p.name}`)}) AS ${c.alias}`;
|
|
15
|
+
} else if (c.name) {
|
|
16
|
+
rawColumn += `${c.name}(${(_b = c.parameters) == null ? void 0 : _b.map((p) => `${p.name}`)})`;
|
|
17
|
+
} else if (c.alias) {
|
|
18
|
+
rawColumn += `${(_c = c.parameters) == null ? void 0 : _c.map((p) => `${p.name}`)} AS ${c.alias}`;
|
|
19
|
+
} else {
|
|
20
|
+
rawColumn += `${(_d = c.parameters) == null ? void 0 : _d.map((p) => `${p.name}`)}`;
|
|
21
|
+
}
|
|
22
|
+
return rawColumn;
|
|
23
|
+
});
|
|
24
|
+
return `SELECT ${columns.join(", ")} `;
|
|
25
|
+
}
|
|
26
|
+
const haveColumns = (columns) => {
|
|
27
|
+
if (!columns) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
const haveColumn = columns.some((c) => {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
return ((_a = c.parameters) == null ? void 0 : _a.length) || ((_b = c.parameters) == null ? void 0 : _b.some((p) => p.name));
|
|
33
|
+
});
|
|
34
|
+
const haveFunction = columns.some((c) => c.name);
|
|
35
|
+
return haveColumn || haveFunction;
|
|
36
|
+
};
|
|
37
|
+
function setGroupByField(field) {
|
|
38
|
+
return {
|
|
39
|
+
type: expressions.QueryEditorExpressionType.GroupBy,
|
|
40
|
+
property: {
|
|
41
|
+
type: expressions.QueryEditorPropertyType.String,
|
|
42
|
+
name: field
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function setPropertyField(field) {
|
|
47
|
+
return {
|
|
48
|
+
type: expressions.QueryEditorExpressionType.Property,
|
|
49
|
+
property: {
|
|
50
|
+
type: expressions.QueryEditorPropertyType.String,
|
|
51
|
+
name: field
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function createFunctionField(functionName) {
|
|
56
|
+
return {
|
|
57
|
+
type: expressions.QueryEditorExpressionType.Function,
|
|
58
|
+
name: functionName,
|
|
59
|
+
parameters: []
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function getColumnValue(column) {
|
|
63
|
+
if (column == null ? void 0 : column.name) {
|
|
64
|
+
return data.toOption(column.name);
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
exports.createFunctionField = createFunctionField;
|
|
70
|
+
exports.createSelectClause = createSelectClause;
|
|
71
|
+
exports.getColumnValue = getColumnValue;
|
|
72
|
+
exports.haveColumns = haveColumns;
|
|
73
|
+
exports.setGroupByField = setGroupByField;
|
|
74
|
+
exports.setPropertyField = setPropertyField;
|
|
75
|
+
//# sourceMappingURL=sql.utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.utils.cjs","sources":["../../../src/utils/sql.utils.ts"],"sourcesContent":["import { SelectableValue, toOption } from '@grafana/data';\n\nimport {\n QueryEditorExpressionType,\n QueryEditorFunctionExpression,\n QueryEditorFunctionParameterExpression,\n QueryEditorGroupByExpression,\n QueryEditorPropertyExpression,\n QueryEditorPropertyType,\n} from '../expressions';\nimport { SQLExpression } from '../types';\n\nexport function createSelectClause(sqlColumns: NonNullable<SQLExpression['columns']>): string {\n const columns = sqlColumns.map((c) => {\n let rawColumn = '';\n if (c.name && c.alias) {\n rawColumn += `${c.name}(${c.parameters?.map((p) => `${p.name}`)}) AS ${c.alias}`;\n } else if (c.name) {\n rawColumn += `${c.name}(${c.parameters?.map((p) => `${p.name}`)})`;\n } else if (c.alias) {\n rawColumn += `${c.parameters?.map((p) => `${p.name}`)} AS ${c.alias}`;\n } else {\n rawColumn += `${c.parameters?.map((p) => `${p.name}`)}`;\n }\n return rawColumn;\n });\n return `SELECT ${columns.join(', ')} `;\n}\n\nexport const haveColumns = (columns: SQLExpression['columns']): columns is NonNullable<SQLExpression['columns']> => {\n if (!columns) {\n return false;\n }\n\n const haveColumn = columns.some((c) => c.parameters?.length || c.parameters?.some((p) => p.name));\n const haveFunction = columns.some((c) => c.name);\n return haveColumn || haveFunction;\n};\n\n/**\n * Creates a GroupByExpression for a specified field\n */\nexport function setGroupByField(field?: string): QueryEditorGroupByExpression {\n return {\n type: QueryEditorExpressionType.GroupBy,\n property: {\n type: QueryEditorPropertyType.String,\n name: field,\n },\n };\n}\n\n/**\n * Creates a PropertyExpression for a specified field\n */\nexport function setPropertyField(field?: string): QueryEditorPropertyExpression {\n return {\n type: QueryEditorExpressionType.Property,\n property: {\n type: QueryEditorPropertyType.String,\n name: field,\n },\n };\n}\n\nexport function createFunctionField(functionName?: string): QueryEditorFunctionExpression {\n return {\n type: QueryEditorExpressionType.Function,\n name: functionName,\n parameters: [],\n };\n}\n\n/**\n * Retrieves the column value from a QueryEditorFunctionParameterExpression object.\n *\n * @param column - The QueryEditorFunctionParameterExpression object representing the column.\n * @returns The column value as a SelectableValue<string> or null if the column is undefined or null.\n */\nexport function getColumnValue(\n column?: QueryEditorFunctionParameterExpression | QueryEditorFunctionExpression\n): SelectableValue<string> | null {\n if (column?.name) {\n return toOption(column.name);\n }\n return null;\n}\n"],"names":["QueryEditorExpressionType","QueryEditorPropertyType","toOption"],"mappings":";;;;;;;;AAYO,SAAS,mBAAmB,UAAA,EAA2D;AAC5F,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,KAAM;AAbxC,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAcI,IAAA,IAAI,SAAA,GAAY,EAAA;AAChB,IAAA,IAAI,CAAA,CAAE,IAAA,IAAQ,CAAA,CAAE,KAAA,EAAO;AACrB,MAAA,SAAA,IAAa,GAAG,CAAA,CAAE,IAAI,CAAA,CAAA,EAAA,CAAI,EAAA,GAAA,CAAA,CAAE,eAAF,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,GAAA,CAAI,CAAC,CAAA,KAAM,GAAG,CAAA,CAAE,IAAI,CAAA,CAAA,CAAG,CAAA,KAAA,EAAQ,EAAE,KAAK,CAAA,CAAA;AAAA,IAChF,CAAA,MAAA,IAAW,EAAE,IAAA,EAAM;AACjB,MAAA,SAAA,IAAa,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAA,EAAA,CAAI,EAAA,GAAA,CAAA,CAAE,UAAA,KAAF,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA;AAAA,IACjE,CAAA,MAAA,IAAW,EAAE,KAAA,EAAO;AAClB,MAAA,SAAA,IAAa,CAAA,EAAA,CAAG,EAAA,GAAA,CAAA,CAAE,UAAA,KAAF,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAA,CAAG,CAAA,IAAA,EAAO,EAAE,KAAK,CAAA,CAAA;AAAA,IACrE,CAAA,MAAO;AACL,MAAA,SAAA,IAAa,CAAA,EAAA,CAAG,EAAA,GAAA,CAAA,CAAE,UAAA,KAAF,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAA,CAAG,CAAA,CAAA;AAAA,IACvD;AACA,IAAA,OAAO,SAAA;AAAA,EACT,CAAC,CAAA;AACD,EAAA,OAAO,CAAA,OAAA,EAAU,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,CAAA;AACrC;AAEO,MAAM,WAAA,GAAc,CAAC,OAAA,KAAwF;AAClH,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAG;AAlCtC,IAAA,IAAA,EAAA,EAAA,EAAA;AAkCyC,IAAA,OAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAE,UAAA,KAAF,mBAAc,MAAA,MAAA,CAAU,EAAA,GAAA,CAAA,CAAE,eAAF,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAc,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,IAAA,CAAA,CAAA;AAAA,EAAA,CAAK,CAAA;AAChG,EAAA,MAAM,eAAe,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA;AAC/C,EAAA,OAAO,UAAA,IAAc,YAAA;AACvB;AAKO,SAAS,gBAAgB,KAAA,EAA8C;AAC5E,EAAA,OAAO;AAAA,IACL,MAAMA,qCAAA,CAA0B,OAAA;AAAA,IAChC,QAAA,EAAU;AAAA,MACR,MAAMC,mCAAA,CAAwB,MAAA;AAAA,MAC9B,IAAA,EAAM;AAAA;AACR,GACF;AACF;AAKO,SAAS,iBAAiB,KAAA,EAA+C;AAC9E,EAAA,OAAO;AAAA,IACL,MAAMD,qCAAA,CAA0B,QAAA;AAAA,IAChC,QAAA,EAAU;AAAA,MACR,MAAMC,mCAAA,CAAwB,MAAA;AAAA,MAC9B,IAAA,EAAM;AAAA;AACR,GACF;AACF;AAEO,SAAS,oBAAoB,YAAA,EAAsD;AACxF,EAAA,OAAO;AAAA,IACL,MAAMD,qCAAA,CAA0B,QAAA;AAAA,IAChC,IAAA,EAAM,YAAA;AAAA,IACN,YAAY;AAAC,GACf;AACF;AAQO,SAAS,eACd,MAAA,EACgC;AAChC,EAAA,IAAI,iCAAQ,IAAA,EAAM;AAChB,IAAA,OAAOE,aAAA,CAAS,OAAO,IAAI,CAAA;AAAA,EAC7B;AACA,EAAA,OAAO,IAAA;AACT;;;;;;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var data = require('@grafana/data');
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
function makeVariable(id, name, attributes) {
|
|
9
|
+
return {
|
|
10
|
+
multi: false,
|
|
11
|
+
type: "custom",
|
|
12
|
+
includeAll: false,
|
|
13
|
+
current: {},
|
|
14
|
+
options: [],
|
|
15
|
+
query: "",
|
|
16
|
+
rootStateKey: null,
|
|
17
|
+
global: false,
|
|
18
|
+
hide: data.VariableHide.dontHide,
|
|
19
|
+
skipUrlSync: false,
|
|
20
|
+
index: -1,
|
|
21
|
+
state: data.LoadingState.NotStarted,
|
|
22
|
+
error: null,
|
|
23
|
+
description: null,
|
|
24
|
+
...attributes,
|
|
25
|
+
id,
|
|
26
|
+
name
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
exports.makeVariable = makeVariable;
|
|
31
|
+
//# sourceMappingURL=testHelpers.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testHelpers.cjs","sources":["../../../src/utils/testHelpers.ts"],"sourcesContent":["import { CustomVariableModel, LoadingState, VariableHide } from '@grafana/data';\n\nexport function makeVariable(id: string, name: string, attributes?: Partial<CustomVariableModel>): CustomVariableModel {\n return {\n multi: false,\n type: 'custom',\n includeAll: false,\n current: {},\n options: [],\n query: '',\n rootStateKey: null,\n global: false,\n hide: VariableHide.dontHide,\n skipUrlSync: false,\n index: -1,\n state: LoadingState.NotStarted,\n error: null,\n description: null,\n ...attributes,\n id,\n name,\n };\n}\n"],"names":["VariableHide","LoadingState"],"mappings":";;;;;;;AAEO,SAAS,YAAA,CAAa,EAAA,EAAY,IAAA,EAAc,UAAA,EAAgE;AACrH,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,IAAA,EAAM,QAAA;AAAA,IACN,UAAA,EAAY,KAAA;AAAA,IACZ,SAAS,EAAC;AAAA,IACV,SAAS,EAAC;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,IACP,YAAA,EAAc,IAAA;AAAA,IACd,MAAA,EAAQ,KAAA;AAAA,IACR,MAAMA,iBAAA,CAAa,QAAA;AAAA,IACnB,WAAA,EAAa,KAAA;AAAA,IACb,KAAA,EAAO,CAAA,CAAA;AAAA,IACP,OAAOC,iBAAA,CAAa,UAAA;AAAA,IACpB,KAAA,EAAO,IAAA;AAAA,IACP,WAAA,EAAa,IAAA;AAAA,IACb,GAAG,UAAA;AAAA,IACH,EAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var react = require('react');
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
function useSqlChange({ query, onQueryChange, db }) {
|
|
9
|
+
const onSqlChange = react.useCallback(
|
|
10
|
+
(sql) => {
|
|
11
|
+
const toRawSql = db.toRawSql;
|
|
12
|
+
const rawSql = toRawSql({ sql, dataset: query.dataset, table: query.table, refId: query.refId });
|
|
13
|
+
const newQuery = { ...query, sql, rawSql };
|
|
14
|
+
onQueryChange(newQuery);
|
|
15
|
+
},
|
|
16
|
+
[db, onQueryChange, query]
|
|
17
|
+
);
|
|
18
|
+
return { onSqlChange };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
exports.useSqlChange = useSqlChange;
|
|
22
|
+
//# sourceMappingURL=useSqlChange.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSqlChange.cjs","sources":["../../../src/utils/useSqlChange.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { DB, SQLExpression, SQLQuery } from '../types';\n\ninterface UseSqlChange {\n db: DB;\n query: SQLQuery;\n onQueryChange: (query: SQLQuery) => void;\n}\n\nexport function useSqlChange({ query, onQueryChange, db }: UseSqlChange) {\n const onSqlChange = useCallback(\n (sql: SQLExpression) => {\n const toRawSql = db.toRawSql;\n const rawSql = toRawSql({ sql, dataset: query.dataset, table: query.table, refId: query.refId });\n const newQuery: SQLQuery = { ...query, sql, rawSql };\n onQueryChange(newQuery);\n },\n [db, onQueryChange, query]\n );\n\n return { onSqlChange };\n}\n"],"names":["useCallback"],"mappings":";;;;;;;AAUO,SAAS,YAAA,CAAa,EAAE,KAAA,EAAO,aAAA,EAAe,IAAG,EAAiB;AACvE,EAAA,MAAM,WAAA,GAAcA,iBAAA;AAAA,IAClB,CAAC,GAAA,KAAuB;AACtB,MAAA,MAAM,WAAW,EAAA,CAAG,QAAA;AACpB,MAAA,MAAM,MAAA,GAAS,QAAA,CAAS,EAAE,GAAA,EAAK,OAAA,EAAS,KAAA,CAAM,OAAA,EAAS,KAAA,EAAO,KAAA,CAAM,KAAA,EAAO,KAAA,EAAO,KAAA,CAAM,OAAO,CAAA;AAC/F,MAAA,MAAM,QAAA,GAAqB,EAAE,GAAG,KAAA,EAAO,KAAK,MAAA,EAAO;AACnD,MAAA,aAAA,CAAc,QAAQ,CAAA;AAAA,IACxB,CAAA;AAAA,IACA,CAAC,EAAA,EAAI,aAAA,EAAe,KAAK;AAAA,GAC3B;AAEA,EAAA,OAAO,EAAE,WAAA,EAAY;AACvB;;;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { uniqBy } from 'lodash';
|
|
2
|
+
|
|
3
|
+
"use strict";
|
|
4
|
+
class ResponseParser {
|
|
5
|
+
transformMetricFindResponse(frame) {
|
|
6
|
+
const values = [];
|
|
7
|
+
const textField = frame.fields.find((f) => f.name === "__text");
|
|
8
|
+
const valueField = frame.fields.find((f) => f.name === "__value");
|
|
9
|
+
if (textField && valueField) {
|
|
10
|
+
for (let i = 0; i < textField.values.length; i++) {
|
|
11
|
+
values.push({ text: "" + textField.values[i], value: "" + valueField.values[i] });
|
|
12
|
+
}
|
|
13
|
+
} else {
|
|
14
|
+
for (const field of frame.fields) {
|
|
15
|
+
for (const value of field.values) {
|
|
16
|
+
values.push({ text: value });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return uniqBy(values, "text");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { ResponseParser };
|
|
25
|
+
//# sourceMappingURL=ResponseParser.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponseParser.mjs","sources":["../../src/ResponseParser.ts"],"sourcesContent":["import { uniqBy } from 'lodash';\n\nimport { DataFrame, MetricFindValue } from '@grafana/data';\n\nimport type { ResponseParser as ResponseParserType } from './types';\n\nexport class ResponseParser implements ResponseParserType {\n transformMetricFindResponse(frame: DataFrame): MetricFindValue[] {\n const values: MetricFindValue[] = [];\n const textField = frame.fields.find((f) => f.name === '__text');\n const valueField = frame.fields.find((f) => f.name === '__value');\n\n if (textField && valueField) {\n for (let i = 0; i < textField.values.length; i++) {\n values.push({ text: '' + textField.values[i], value: '' + valueField.values[i] });\n }\n } else {\n for (const field of frame.fields) {\n for (const value of field.values) {\n values.push({ text: value });\n }\n }\n }\n\n return uniqBy(values, 'text');\n }\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,cAAA,CAA6C;AAAA,EACxD,4BAA4B,KAAA,EAAqC;AAC/D,IAAA,MAAM,SAA4B,EAAC;AACnC,IAAA,MAAM,SAAA,GAAY,MAAM,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,QAAQ,CAAA;AAC9D,IAAA,MAAM,UAAA,GAAa,MAAM,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,SAAS,SAAS,CAAA;AAEhE,IAAA,IAAI,aAAa,UAAA,EAAY;AAC3B,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,MAAA,CAAO,QAAQ,CAAA,EAAA,EAAK;AAChD,QAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,EAAA,GAAK,UAAU,MAAA,CAAO,CAAC,CAAA,EAAG,KAAA,EAAO,EAAA,GAAK,UAAA,CAAW,MAAA,CAAO,CAAC,GAAG,CAAA;AAAA,MAClF;AAAA,IACF,CAAA,MAAO;AACL,MAAA,KAAA,MAAW,KAAA,IAAS,MAAM,MAAA,EAAQ;AAChC,QAAA,KAAA,MAAW,KAAA,IAAS,MAAM,MAAA,EAAQ;AAChC,UAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,KAAA,EAAO,CAAA;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAEA,IAAA,OAAO,MAAA,CAAO,QAAQ,MAAM,CAAA;AAAA,EAC9B;AACF;;;;"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo, useState, useRef, useEffect } from 'react';
|
|
3
|
+
import { t } from '@grafana/i18n';
|
|
4
|
+
import { EditorRows, EditorRow, EditorField } from '@grafana/plugin-ui';
|
|
5
|
+
import { Combobox } from '@grafana/ui';
|
|
6
|
+
import { migrateVariableQuery } from './SQLVariableUtils.mjs';
|
|
7
|
+
import { SqlQueryEditorLazy } from './components/QueryEditorLazy.mjs';
|
|
8
|
+
|
|
9
|
+
"use strict";
|
|
10
|
+
const SQLVariablesQueryEditor = (props) => {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
const query = useMemo(() => migrateVariableQuery(props.query), [props.query]);
|
|
13
|
+
const dialect = (_c = (_b = (_a = props.queryHeaderProps) == null ? void 0 : _a.dialect) != null ? _b : props.datasource.dialect) != null ? _c : "other";
|
|
14
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15
|
+
/* @__PURE__ */ jsx(
|
|
16
|
+
SqlQueryEditorLazy,
|
|
17
|
+
{
|
|
18
|
+
...props,
|
|
19
|
+
query,
|
|
20
|
+
queryHeaderProps: { hideFormatSelector: true, hideRunButton: true, dialect }
|
|
21
|
+
}
|
|
22
|
+
),
|
|
23
|
+
/* @__PURE__ */ jsx(FieldMapping, { ...props, query })
|
|
24
|
+
] });
|
|
25
|
+
};
|
|
26
|
+
const FieldMapping = (props) => {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
const { query, datasource, onChange } = props;
|
|
29
|
+
const [choices, setChoices] = useState([]);
|
|
30
|
+
const queryRef = useRef(query);
|
|
31
|
+
queryRef.current = query;
|
|
32
|
+
const queryKey = useMemo(() => JSON.stringify({ rawSql: query.rawSql, sql: query.sql }), [query.rawSql, query.sql]);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
let isActive = true;
|
|
35
|
+
const subscription = datasource.query({ targets: [queryRef.current] }).subscribe({
|
|
36
|
+
next: (response) => {
|
|
37
|
+
if (!isActive) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const fieldNames = (response.data[0] || { fields: [] }).fields.map((f) => f.name);
|
|
41
|
+
setChoices(fieldNames.map((f) => ({ value: f, label: f })));
|
|
42
|
+
},
|
|
43
|
+
error: () => {
|
|
44
|
+
if (isActive) {
|
|
45
|
+
setChoices([]);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return () => {
|
|
50
|
+
isActive = false;
|
|
51
|
+
subscription.unsubscribe();
|
|
52
|
+
};
|
|
53
|
+
}, [datasource, queryKey]);
|
|
54
|
+
const onMetaPropChange = (key, value, meta = query.meta || {}) => {
|
|
55
|
+
onChange({ ...query, meta: { ...meta, [key]: value } });
|
|
56
|
+
};
|
|
57
|
+
return /* @__PURE__ */ jsx(EditorRows, { children: /* @__PURE__ */ jsxs(EditorRow, { children: [
|
|
58
|
+
/* @__PURE__ */ jsx(EditorField, { label: t("grafana-sql.components.query-meta.variables.valueField", "Value Field"), children: /* @__PURE__ */ jsx(
|
|
59
|
+
Combobox,
|
|
60
|
+
{
|
|
61
|
+
isClearable: true,
|
|
62
|
+
value: (_a = query.meta) == null ? void 0 : _a.valueField,
|
|
63
|
+
onChange: (e) => onMetaPropChange("valueField", e == null ? void 0 : e.value),
|
|
64
|
+
width: 40,
|
|
65
|
+
options: choices
|
|
66
|
+
}
|
|
67
|
+
) }),
|
|
68
|
+
/* @__PURE__ */ jsx(EditorField, { label: t("grafana-sql.components.query-meta.variables.textField", "Text Field"), children: /* @__PURE__ */ jsx(
|
|
69
|
+
Combobox,
|
|
70
|
+
{
|
|
71
|
+
isClearable: true,
|
|
72
|
+
value: (_b = query.meta) == null ? void 0 : _b.textField,
|
|
73
|
+
onChange: (e) => onMetaPropChange("textField", e == null ? void 0 : e.value),
|
|
74
|
+
width: 40,
|
|
75
|
+
options: choices
|
|
76
|
+
}
|
|
77
|
+
) })
|
|
78
|
+
] }) });
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export { SQLVariablesQueryEditor };
|
|
82
|
+
//# sourceMappingURL=SQLVariableEditor.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLVariableEditor.mjs","sources":["../../src/SQLVariableEditor.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { DataQueryRequest, Field } from '@grafana/data';\nimport { t } from '@grafana/i18n';\nimport { EditorRows, EditorRow, EditorField } from '@grafana/plugin-ui';\nimport { Combobox, ComboboxOption } from '@grafana/ui';\n\nimport { migrateVariableQuery } from './SQLVariableUtils';\nimport { SqlQueryEditorProps } from './components/QueryEditor';\nimport { SqlQueryEditorLazy } from './components/QueryEditorLazy';\nimport { type SQLQuery, type SQLQueryMeta, SQLDialect } from './types';\n\ntype SQLVariableQueryEditorProps = SqlQueryEditorProps;\n\nexport const SQLVariablesQueryEditor = <T extends SQLDialect>(props: SQLVariableQueryEditorProps) => {\n const query = useMemo(() => migrateVariableQuery(props.query), [props.query]);\n const dialect = props.queryHeaderProps?.dialect ?? props.datasource.dialect ?? 'other';\n return (\n <>\n <SqlQueryEditorLazy\n {...props}\n query={query}\n queryHeaderProps={{ hideFormatSelector: true, hideRunButton: true, dialect }}\n />\n <FieldMapping {...props} query={query} />\n </>\n );\n};\n\nconst FieldMapping = (props: SQLVariableQueryEditorProps) => {\n const { query, datasource, onChange } = props;\n const [choices, setChoices] = useState<ComboboxOption[]>([]);\n\n // Track the actual SQL content to avoid re-querying when only meta changes\n const queryRef = useRef(query);\n queryRef.current = query;\n\n // Only re-run the query when the SQL content changes, not when meta (valueField/textField) changes\n const queryKey = useMemo(() => JSON.stringify({ rawSql: query.rawSql, sql: query.sql }), [query.rawSql, query.sql]);\n\n useEffect(() => {\n let isActive = true;\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const subscription = datasource.query({ targets: [queryRef.current] } as DataQueryRequest<SQLQuery>).subscribe({\n next: (response) => {\n if (!isActive) {\n return;\n }\n const fieldNames = (response.data[0] || { fields: [] }).fields.map((f: Field) => f.name);\n setChoices(fieldNames.map((f: Field) => ({ value: f, label: f })));\n },\n error: () => {\n if (isActive) {\n setChoices([]);\n }\n },\n });\n return () => {\n isActive = false;\n subscription.unsubscribe();\n };\n }, [datasource, queryKey]);\n const onMetaPropChange = <Key extends keyof SQLQueryMeta, Value extends SQLQueryMeta[Key]>(\n key: Key,\n value: Value,\n meta = query.meta || {}\n ) => {\n onChange({ ...query, meta: { ...meta, [key]: value } });\n };\n return (\n <EditorRows>\n <EditorRow>\n <EditorField label={t('grafana-sql.components.query-meta.variables.valueField', 'Value Field')}>\n <Combobox\n isClearable\n value={query.meta?.valueField}\n onChange={(e) => onMetaPropChange('valueField', e?.value)}\n width={40}\n options={choices}\n />\n </EditorField>\n <EditorField label={t('grafana-sql.components.query-meta.variables.textField', 'Text Field')}>\n <Combobox\n isClearable\n value={query.meta?.textField}\n onChange={(e) => onMetaPropChange('textField', e?.value)}\n width={40}\n options={choices}\n />\n </EditorField>\n </EditorRow>\n </EditorRows>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { map } from 'rxjs/operators';
|
|
2
|
+
import { CustomVariableSupport } from '@grafana/data';
|
|
3
|
+
import { EditorMode } from '@grafana/plugin-ui';
|
|
4
|
+
import { SQLVariablesQueryEditor } from './SQLVariableEditor.mjs';
|
|
5
|
+
import { migrateVariableQuery, updateFrame, refId } from './SQLVariableUtils.mjs';
|
|
6
|
+
import { applyQueryDefaults } from './defaults.mjs';
|
|
7
|
+
import { QueryFormat } from './types.mjs';
|
|
8
|
+
|
|
9
|
+
"use strict";
|
|
10
|
+
class SQLVariableSupport extends CustomVariableSupport {
|
|
11
|
+
constructor(datasource) {
|
|
12
|
+
super();
|
|
13
|
+
this.datasource = datasource;
|
|
14
|
+
this.editor = SQLVariablesQueryEditor;
|
|
15
|
+
}
|
|
16
|
+
query(request) {
|
|
17
|
+
if (request.targets.length < 1) {
|
|
18
|
+
throw new Error("no variable query found");
|
|
19
|
+
}
|
|
20
|
+
const updatedQuery = migrateVariableQuery(request.targets[0]);
|
|
21
|
+
return this.datasource.query({ ...request, targets: [updatedQuery] }).pipe(
|
|
22
|
+
map((d) => {
|
|
23
|
+
return {
|
|
24
|
+
...d,
|
|
25
|
+
data: (d.data || []).map((frame) => updateFrame(frame, updatedQuery.meta))
|
|
26
|
+
};
|
|
27
|
+
})
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
getDefaultQuery() {
|
|
31
|
+
return applyQueryDefaults({ refId, editorMode: EditorMode.Builder, format: QueryFormat.Table });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { SQLVariableSupport };
|
|
36
|
+
//# sourceMappingURL=SQLVariableSupport.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLVariableSupport.mjs","sources":["../../src/SQLVariableSupport.ts"],"sourcesContent":["import { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { CustomVariableSupport, DataQueryRequest, DataQueryResponse, DataFrame } from '@grafana/data';\nimport { EditorMode } from '@grafana/plugin-ui';\n\nimport { SQLVariablesQueryEditor } from './SQLVariableEditor';\nimport { migrateVariableQuery, updateFrame, refId } from './SQLVariableUtils';\nimport { SqlDatasource } from './datasource/SqlDatasource';\nimport { applyQueryDefaults } from './defaults';\nimport { QueryFormat, type SQLQuery } from './types';\n\nexport class SQLVariableSupport extends CustomVariableSupport<SqlDatasource, SQLQuery> {\n constructor(readonly datasource: SqlDatasource) {\n super();\n }\n editor = SQLVariablesQueryEditor;\n query(request: DataQueryRequest<SQLQuery>): Observable<DataQueryResponse> {\n if (request.targets.length < 1) {\n throw new Error('no variable query found');\n }\n const updatedQuery = migrateVariableQuery(request.targets[0]);\n return this.datasource.query({ ...request, targets: [updatedQuery] }).pipe(\n map((d: DataQueryResponse) => {\n return {\n ...d,\n data: (d.data || []).map((frame: DataFrame) => updateFrame(frame, updatedQuery.meta)),\n };\n })\n );\n }\n getDefaultQuery(): Partial<SQLQuery> {\n return applyQueryDefaults({ refId, editorMode: EditorMode.Builder, format: QueryFormat.Table });\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AAYO,MAAM,2BAA2B,qBAAA,CAA+C;AAAA,EACrF,YAAqB,UAAA,EAA2B;AAC9C,IAAA,KAAA,EAAM;AADa,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAGrB,IAAA,IAAA,CAAA,MAAA,GAAS,uBAAA;AAAA,EADT;AAAA,EAEA,MAAM,OAAA,EAAoE;AACxE,IAAA,IAAI,OAAA,CAAQ,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AAC9B,MAAA,MAAM,IAAI,MAAM,yBAAyB,CAAA;AAAA,IAC3C;AACA,IAAA,MAAM,YAAA,GAAe,oBAAA,CAAqB,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAC,CAAA;AAC5D,IAAA,OAAO,IAAA,CAAK,UAAA,CAAW,KAAA,CAAM,EAAE,GAAG,OAAA,EAAS,OAAA,EAAS,CAAC,YAAY,CAAA,EAAG,CAAA,CAAE,IAAA;AAAA,MACpE,GAAA,CAAI,CAAC,CAAA,KAAyB;AAC5B,QAAA,OAAO;AAAA,UACL,GAAG,CAAA;AAAA,UACH,IAAA,EAAA,CAAO,CAAA,CAAE,IAAA,IAAQ,EAAC,EAAG,GAAA,CAAI,CAAC,KAAA,KAAqB,WAAA,CAAY,KAAA,EAAO,YAAA,CAAa,IAAI,CAAC;AAAA,SACtF;AAAA,MACF,CAAC;AAAA,KACH;AAAA,EACF;AAAA,EACA,eAAA,GAAqC;AACnC,IAAA,OAAO,kBAAA,CAAmB,EAAE,KAAA,EAAO,UAAA,EAAY,WAAW,OAAA,EAAS,MAAA,EAAQ,WAAA,CAAY,KAAA,EAAO,CAAA;AAAA,EAChG;AACF;;;;"}
|