@flanksource/clicky-ui 0.3.19 → 0.3.20
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/dist/components/ErrorWrapper.cjs +1 -1
- package/dist/components/ErrorWrapper.cjs.map +1 -1
- package/dist/components/ErrorWrapper.js +1 -1
- package/dist/components/ErrorWrapper.js.map +1 -1
- package/dist/components/UnitStepControls.cjs +55 -0
- package/dist/components/UnitStepControls.cjs.map +1 -0
- package/dist/components/UnitStepControls.d.ts +10 -0
- package/dist/components/UnitStepControls.d.ts.map +1 -0
- package/dist/components/UnitStepControls.js +55 -0
- package/dist/components/UnitStepControls.js.map +1 -0
- package/dist/components/json-schema-form-accordion-array.cjs +5 -73
- package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
- package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-accordion-array.js +3 -71
- package/dist/components/json-schema-form-accordion-array.js.map +1 -1
- package/dist/components/json-schema-form-array.cjs +6 -1
- package/dist/components/json-schema-form-array.cjs.map +1 -1
- package/dist/components/json-schema-form-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-array.js +6 -1
- package/dist/components/json-schema-form-array.js.map +1 -1
- package/dist/components/json-schema-form-cards-array.cjs +96 -0
- package/dist/components/json-schema-form-cards-array.cjs.map +1 -0
- package/dist/components/json-schema-form-cards-array.d.ts +7 -0
- package/dist/components/json-schema-form-cards-array.d.ts.map +1 -0
- package/dist/components/json-schema-form-cards-array.js +96 -0
- package/dist/components/json-schema-form-cards-array.js.map +1 -0
- package/dist/components/json-schema-form-item-row.cjs +81 -0
- package/dist/components/json-schema-form-item-row.cjs.map +1 -0
- package/dist/components/json-schema-form-item-row.d.ts +19 -0
- package/dist/components/json-schema-form-item-row.d.ts.map +1 -0
- package/dist/components/json-schema-form-item-row.js +81 -0
- package/dist/components/json-schema-form-item-row.js.map +1 -0
- package/dist/components/json-schema-form-render.cjs +2 -2
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +2 -2
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +1 -1
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.js +1 -1
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-tone.cjs +12 -0
- package/dist/components/json-schema-form-tone.cjs.map +1 -1
- package/dist/components/json-schema-form-tone.js +12 -0
- package/dist/components/json-schema-form-tone.js.map +1 -1
- package/dist/components/json-schema-form-types.d.ts +1 -1
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/unit-form-extension.cjs +126 -0
- package/dist/components/unit-form-extension.cjs.map +1 -0
- package/dist/components/unit-form-extension.d.ts +8 -0
- package/dist/components/unit-form-extension.d.ts.map +1 -0
- package/dist/components/unit-form-extension.js +126 -0
- package/dist/components/unit-form-extension.js.map +1 -0
- package/dist/components.cjs +4 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +1 -0
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +4 -0
- package/dist/components.js.map +1 -1
- package/dist/data/diagnostics/ErrorDetails.cjs +61 -8
- package/dist/data/diagnostics/ErrorDetails.cjs.map +1 -1
- package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
- package/dist/data/diagnostics/ErrorDetails.js +61 -8
- package/dist/data/diagnostics/ErrorDetails.js.map +1 -1
- package/dist/data/diagnostics/error-diagnostics.cjs +10 -4
- package/dist/data/diagnostics/error-diagnostics.cjs.map +1 -1
- package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -1
- package/dist/data/diagnostics/error-diagnostics.js +10 -4
- package/dist/data/diagnostics/error-diagnostics.js.map +1 -1
- package/dist/data/query-browser/QueryBrowser.cjs +12 -6
- package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
- package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
- package/dist/data/query-browser/QueryBrowser.js +12 -6
- package/dist/data/query-browser/QueryBrowser.js.map +1 -1
- package/dist/data/query-browser/QueryBrowser.types.cjs +2 -1
- package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -1
- package/dist/data/query-browser/QueryBrowser.types.d.ts +16 -14
- package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -1
- package/dist/data/query-browser/QueryBrowser.types.js +2 -1
- package/dist/data/query-browser/QueryBrowser.types.js.map +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/index.cjs +4 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/string.cjs +8 -0
- package/dist/lib/string.cjs.map +1 -1
- package/dist/lib/string.d.ts +1 -0
- package/dist/lib/string.d.ts.map +1 -1
- package/dist/lib/string.js +8 -0
- package/dist/lib/string.js.map +1 -1
- package/dist/profiles/catalogTree.cjs +133 -0
- package/dist/profiles/catalogTree.cjs.map +1 -0
- package/dist/profiles/catalogTree.d.ts +11 -0
- package/dist/profiles/catalogTree.d.ts.map +1 -0
- package/dist/profiles/catalogTree.js +133 -0
- package/dist/profiles/catalogTree.js.map +1 -0
- package/dist/profiles/connectionBrowserModel.cjs +185 -0
- package/dist/profiles/connectionBrowserModel.cjs.map +1 -0
- package/dist/profiles/connectionBrowserModel.d.ts +169 -0
- package/dist/profiles/connectionBrowserModel.d.ts.map +1 -0
- package/dist/profiles/connectionBrowserModel.js +185 -0
- package/dist/profiles/connectionBrowserModel.js.map +1 -0
- package/dist/profiles/connectionQueryWorkspace.cjs +185 -0
- package/dist/profiles/connectionQueryWorkspace.cjs.map +1 -0
- package/dist/profiles/connectionQueryWorkspace.d.ts +63 -0
- package/dist/profiles/connectionQueryWorkspace.d.ts.map +1 -0
- package/dist/profiles/connectionQueryWorkspace.js +185 -0
- package/dist/profiles/connectionQueryWorkspace.js.map +1 -0
- package/dist/profiles/connectionQueryWorkspaceModel.cjs +28 -0
- package/dist/profiles/connectionQueryWorkspaceModel.cjs.map +1 -0
- package/dist/profiles/connectionQueryWorkspaceModel.d.ts +38 -0
- package/dist/profiles/connectionQueryWorkspaceModel.d.ts.map +1 -0
- package/dist/profiles/connectionQueryWorkspaceModel.js +28 -0
- package/dist/profiles/connectionQueryWorkspaceModel.js.map +1 -0
- package/dist/profiles/esFieldValues.cjs +64 -0
- package/dist/profiles/esFieldValues.cjs.map +1 -0
- package/dist/profiles/esFieldValues.d.ts +48 -0
- package/dist/profiles/esFieldValues.d.ts.map +1 -0
- package/dist/profiles/esFieldValues.js +64 -0
- package/dist/profiles/esFieldValues.js.map +1 -0
- package/dist/profiles/esParamMappingModel.cjs +301 -0
- package/dist/profiles/esParamMappingModel.cjs.map +1 -0
- package/dist/profiles/esParamMappingModel.d.ts +37 -0
- package/dist/profiles/esParamMappingModel.d.ts.map +1 -0
- package/dist/profiles/esParamMappingModel.js +301 -0
- package/dist/profiles/esParamMappingModel.js.map +1 -0
- package/dist/profiles/esParamMappingPill.cjs +24 -0
- package/dist/profiles/esParamMappingPill.cjs.map +1 -0
- package/dist/profiles/esParamMappingPill.d.ts +13 -0
- package/dist/profiles/esParamMappingPill.d.ts.map +1 -0
- package/dist/profiles/esParamMappingPill.js +24 -0
- package/dist/profiles/esParamMappingPill.js.map +1 -0
- package/dist/profiles/esParamOperandExtension.cjs +75 -0
- package/dist/profiles/esParamOperandExtension.cjs.map +1 -0
- package/dist/profiles/esParamOperandExtension.d.ts +11 -0
- package/dist/profiles/esParamOperandExtension.d.ts.map +1 -0
- package/dist/profiles/esParamOperandExtension.js +75 -0
- package/dist/profiles/esParamOperandExtension.js.map +1 -0
- package/dist/profiles/esQueryBuilder.cjs +205 -0
- package/dist/profiles/esQueryBuilder.cjs.map +1 -0
- package/dist/profiles/esQueryBuilder.d.ts +35 -0
- package/dist/profiles/esQueryBuilder.d.ts.map +1 -0
- package/dist/profiles/esQueryBuilder.js +205 -0
- package/dist/profiles/esQueryBuilder.js.map +1 -0
- package/dist/profiles/esQueryBuilderExtension.cjs +23 -0
- package/dist/profiles/esQueryBuilderExtension.cjs.map +1 -0
- package/dist/profiles/esQueryBuilderExtension.d.ts +5 -0
- package/dist/profiles/esQueryBuilderExtension.d.ts.map +1 -0
- package/dist/profiles/esQueryBuilderExtension.js +23 -0
- package/dist/profiles/esQueryBuilderExtension.js.map +1 -0
- package/dist/profiles/esQueryBuilderForm.cjs +26 -0
- package/dist/profiles/esQueryBuilderForm.cjs.map +1 -0
- package/dist/profiles/esQueryBuilderForm.d.ts +18 -0
- package/dist/profiles/esQueryBuilderForm.d.ts.map +1 -0
- package/dist/profiles/esQueryBuilderForm.js +26 -0
- package/dist/profiles/esQueryBuilderForm.js.map +1 -0
- package/dist/profiles/esQueryBuilderModel.cjs +131 -0
- package/dist/profiles/esQueryBuilderModel.cjs.map +1 -0
- package/dist/profiles/esQueryBuilderModel.d.ts +108 -0
- package/dist/profiles/esQueryBuilderModel.d.ts.map +1 -0
- package/dist/profiles/esQueryBuilderModel.js +131 -0
- package/dist/profiles/esQueryBuilderModel.js.map +1 -0
- package/dist/profiles/esQueryClauseGroup.cjs +144 -0
- package/dist/profiles/esQueryClauseGroup.cjs.map +1 -0
- package/dist/profiles/esQueryClauseGroup.d.ts +10 -0
- package/dist/profiles/esQueryClauseGroup.d.ts.map +1 -0
- package/dist/profiles/esQueryClauseGroup.js +144 -0
- package/dist/profiles/esQueryClauseGroup.js.map +1 -0
- package/dist/profiles/esQueryCompile.cjs +47 -0
- package/dist/profiles/esQueryCompile.cjs.map +1 -0
- package/dist/profiles/esQueryCompile.d.ts +39 -0
- package/dist/profiles/esQueryCompile.d.ts.map +1 -0
- package/dist/profiles/esQueryCompile.js +47 -0
- package/dist/profiles/esQueryCompile.js.map +1 -0
- package/dist/profiles/esQueryConditionRow.cjs +168 -0
- package/dist/profiles/esQueryConditionRow.cjs.map +1 -0
- package/dist/profiles/esQueryConditionRow.d.ts +37 -0
- package/dist/profiles/esQueryConditionRow.d.ts.map +1 -0
- package/dist/profiles/esQueryConditionRow.js +168 -0
- package/dist/profiles/esQueryConditionRow.js.map +1 -0
- package/dist/profiles/esQueryGroupModel.cjs +12 -0
- package/dist/profiles/esQueryGroupModel.cjs.map +1 -0
- package/dist/profiles/esQueryGroupModel.d.ts +9 -0
- package/dist/profiles/esQueryGroupModel.d.ts.map +1 -0
- package/dist/profiles/esQueryGroupModel.js +12 -0
- package/dist/profiles/esQueryGroupModel.js.map +1 -0
- package/dist/profiles/esQueryOccur.cjs +16 -0
- package/dist/profiles/esQueryOccur.cjs.map +1 -0
- package/dist/profiles/esQueryOccur.d.ts +11 -0
- package/dist/profiles/esQueryOccur.d.ts.map +1 -0
- package/dist/profiles/esQueryOccur.js +16 -0
- package/dist/profiles/esQueryOccur.js.map +1 -0
- package/dist/profiles/esQueryOperandEditors.cjs +279 -0
- package/dist/profiles/esQueryOperandEditors.cjs.map +1 -0
- package/dist/profiles/esQueryOperandEditors.d.ts +24 -0
- package/dist/profiles/esQueryOperandEditors.d.ts.map +1 -0
- package/dist/profiles/esQueryOperandEditors.js +279 -0
- package/dist/profiles/esQueryOperandEditors.js.map +1 -0
- package/dist/profiles/esQueryOperandModel.cjs +28 -0
- package/dist/profiles/esQueryOperandModel.cjs.map +1 -0
- package/dist/profiles/esQueryOperandModel.d.ts +17 -0
- package/dist/profiles/esQueryOperandModel.d.ts.map +1 -0
- package/dist/profiles/esQueryOperandModel.js +28 -0
- package/dist/profiles/esQueryOperandModel.js.map +1 -0
- package/dist/profiles/esQueryOperators.cjs +165 -0
- package/dist/profiles/esQueryOperators.cjs.map +1 -0
- package/dist/profiles/esQueryOperators.d.ts +83 -0
- package/dist/profiles/esQueryOperators.d.ts.map +1 -0
- package/dist/profiles/esQueryOperators.js +165 -0
- package/dist/profiles/esQueryOperators.js.map +1 -0
- package/dist/profiles/esQueryOutputEditor.cjs +138 -0
- package/dist/profiles/esQueryOutputEditor.cjs.map +1 -0
- package/dist/profiles/esQueryOutputEditor.d.ts +7 -0
- package/dist/profiles/esQueryOutputEditor.d.ts.map +1 -0
- package/dist/profiles/esQueryOutputEditor.js +138 -0
- package/dist/profiles/esQueryOutputEditor.js.map +1 -0
- package/dist/profiles/esQueryOutputModel.cjs +16 -0
- package/dist/profiles/esQueryOutputModel.cjs.map +1 -0
- package/dist/profiles/esQueryOutputModel.d.ts +14 -0
- package/dist/profiles/esQueryOutputModel.d.ts.map +1 -0
- package/dist/profiles/esQueryOutputModel.js +16 -0
- package/dist/profiles/esQueryOutputModel.js.map +1 -0
- package/dist/profiles/esQueryPreview.cjs +30 -0
- package/dist/profiles/esQueryPreview.cjs.map +1 -0
- package/dist/profiles/esQueryPreview.d.ts +6 -0
- package/dist/profiles/esQueryPreview.d.ts.map +1 -0
- package/dist/profiles/esQueryPreview.js +30 -0
- package/dist/profiles/esQueryPreview.js.map +1 -0
- package/dist/profiles/esQuerySortEditor.cjs +143 -0
- package/dist/profiles/esQuerySortEditor.cjs.map +1 -0
- package/dist/profiles/esQuerySortEditor.d.ts +9 -0
- package/dist/profiles/esQuerySortEditor.d.ts.map +1 -0
- package/dist/profiles/esQuerySortEditor.js +143 -0
- package/dist/profiles/esQuerySortEditor.js.map +1 -0
- package/dist/profiles/esQuerySortModel.cjs +13 -0
- package/dist/profiles/esQuerySortModel.cjs.map +1 -0
- package/dist/profiles/esQuerySortModel.d.ts +4 -0
- package/dist/profiles/esQuerySortModel.d.ts.map +1 -0
- package/dist/profiles/esQuerySortModel.js +13 -0
- package/dist/profiles/esQuerySortModel.js.map +1 -0
- package/dist/profiles/esValueCombobox.cjs +86 -0
- package/dist/profiles/esValueCombobox.cjs.map +1 -0
- package/dist/profiles/esValueCombobox.d.ts +15 -0
- package/dist/profiles/esValueCombobox.d.ts.map +1 -0
- package/dist/profiles/esValueCombobox.js +86 -0
- package/dist/profiles/esValueCombobox.js.map +1 -0
- package/dist/profiles/jsonPathSample.cjs +75 -0
- package/dist/profiles/jsonPathSample.cjs.map +1 -0
- package/dist/profiles/jsonPathSample.d.ts +27 -0
- package/dist/profiles/jsonPathSample.d.ts.map +1 -0
- package/dist/profiles/jsonPathSample.js +75 -0
- package/dist/profiles/jsonPathSample.js.map +1 -0
- package/dist/profiles/jsonPathSampleRow.cjs +14 -0
- package/dist/profiles/jsonPathSampleRow.cjs.map +1 -0
- package/dist/profiles/jsonPathSampleRow.d.ts +6 -0
- package/dist/profiles/jsonPathSampleRow.d.ts.map +1 -0
- package/dist/profiles/jsonPathSampleRow.js +14 -0
- package/dist/profiles/jsonPathSampleRow.js.map +1 -0
- package/dist/profiles/profileApi.cjs +37 -0
- package/dist/profiles/profileApi.cjs.map +1 -0
- package/dist/profiles/profileApi.d.ts +32 -0
- package/dist/profiles/profileApi.d.ts.map +1 -0
- package/dist/profiles/profileApi.js +37 -0
- package/dist/profiles/profileApi.js.map +1 -0
- package/dist/profiles/profileBuilder.cjs +65 -0
- package/dist/profiles/profileBuilder.cjs.map +1 -0
- package/dist/profiles/profileBuilder.d.ts +11 -0
- package/dist/profiles/profileBuilder.d.ts.map +1 -0
- package/dist/profiles/profileBuilder.js +65 -0
- package/dist/profiles/profileBuilder.js.map +1 -0
- package/dist/profiles/profileBuilderExtension.cjs +25 -0
- package/dist/profiles/profileBuilderExtension.cjs.map +1 -0
- package/dist/profiles/profileBuilderExtension.d.ts +5 -0
- package/dist/profiles/profileBuilderExtension.d.ts.map +1 -0
- package/dist/profiles/profileBuilderExtension.js +25 -0
- package/dist/profiles/profileBuilderExtension.js.map +1 -0
- package/dist/profiles/profileBuilderWorkspace.cjs +368 -0
- package/dist/profiles/profileBuilderWorkspace.cjs.map +1 -0
- package/dist/profiles/profileBuilderWorkspace.d.ts +21 -0
- package/dist/profiles/profileBuilderWorkspace.d.ts.map +1 -0
- package/dist/profiles/profileBuilderWorkspace.js +368 -0
- package/dist/profiles/profileBuilderWorkspace.js.map +1 -0
- package/dist/profiles/profileColumnModel.cjs +23 -0
- package/dist/profiles/profileColumnModel.cjs.map +1 -0
- package/dist/profiles/profileColumnModel.d.ts +8 -0
- package/dist/profiles/profileColumnModel.d.ts.map +1 -0
- package/dist/profiles/profileColumnModel.js +23 -0
- package/dist/profiles/profileColumnModel.js.map +1 -0
- package/dist/profiles/profileColumnPicker.cjs +68 -0
- package/dist/profiles/profileColumnPicker.cjs.map +1 -0
- package/dist/profiles/profileColumnPicker.d.ts +11 -0
- package/dist/profiles/profileColumnPicker.d.ts.map +1 -0
- package/dist/profiles/profileColumnPicker.js +68 -0
- package/dist/profiles/profileColumnPicker.js.map +1 -0
- package/dist/profiles/profileEditor.cjs +386 -0
- package/dist/profiles/profileEditor.cjs.map +1 -0
- package/dist/profiles/profileEditor.d.ts +19 -0
- package/dist/profiles/profileEditor.d.ts.map +1 -0
- package/dist/profiles/profileEditor.js +386 -0
- package/dist/profiles/profileEditor.js.map +1 -0
- package/dist/profiles/profileEditorModel.cjs +181 -0
- package/dist/profiles/profileEditorModel.cjs.map +1 -0
- package/dist/profiles/profileEditorModel.d.ts +74 -0
- package/dist/profiles/profileEditorModel.d.ts.map +1 -0
- package/dist/profiles/profileEditorModel.js +181 -0
- package/dist/profiles/profileEditorModel.js.map +1 -0
- package/dist/profiles/profileEditorPreview.cjs +38 -0
- package/dist/profiles/profileEditorPreview.cjs.map +1 -0
- package/dist/profiles/profileEditorPreview.d.ts +12 -0
- package/dist/profiles/profileEditorPreview.d.ts.map +1 -0
- package/dist/profiles/profileEditorPreview.js +38 -0
- package/dist/profiles/profileEditorPreview.js.map +1 -0
- package/dist/profiles/profileEditorRail.cjs +46 -0
- package/dist/profiles/profileEditorRail.cjs.map +1 -0
- package/dist/profiles/profileEditorRail.d.ts +8 -0
- package/dist/profiles/profileEditorRail.d.ts.map +1 -0
- package/dist/profiles/profileEditorRail.js +46 -0
- package/dist/profiles/profileEditorRail.js.map +1 -0
- package/dist/profiles/profileEditorRaw.cjs +118 -0
- package/dist/profiles/profileEditorRaw.cjs.map +1 -0
- package/dist/profiles/profileEditorRaw.d.ts +7 -0
- package/dist/profiles/profileEditorRaw.d.ts.map +1 -0
- package/dist/profiles/profileEditorRaw.js +118 -0
- package/dist/profiles/profileEditorRaw.js.map +1 -0
- package/dist/profiles/profileEditorRoutes.cjs +7 -0
- package/dist/profiles/profileEditorRoutes.cjs.map +1 -0
- package/dist/profiles/profileEditorRoutes.d.ts +2 -0
- package/dist/profiles/profileEditorRoutes.d.ts.map +1 -0
- package/dist/profiles/profileEditorRoutes.js +7 -0
- package/dist/profiles/profileEditorRoutes.js.map +1 -0
- package/dist/profiles/profileEditorSections.cjs +213 -0
- package/dist/profiles/profileEditorSections.cjs.map +1 -0
- package/dist/profiles/profileEditorSections.d.ts +23 -0
- package/dist/profiles/profileEditorSections.d.ts.map +1 -0
- package/dist/profiles/profileEditorSections.js +213 -0
- package/dist/profiles/profileEditorSections.js.map +1 -0
- package/dist/profiles/profileFieldEditor.cjs +200 -0
- package/dist/profiles/profileFieldEditor.cjs.map +1 -0
- package/dist/profiles/profileFieldEditor.d.ts +34 -0
- package/dist/profiles/profileFieldEditor.d.ts.map +1 -0
- package/dist/profiles/profileFieldEditor.js +200 -0
- package/dist/profiles/profileFieldEditor.js.map +1 -0
- package/dist/profiles/profileFieldGrid.cjs +250 -0
- package/dist/profiles/profileFieldGrid.cjs.map +1 -0
- package/dist/profiles/profileFieldGrid.d.ts +20 -0
- package/dist/profiles/profileFieldGrid.d.ts.map +1 -0
- package/dist/profiles/profileFieldGrid.js +250 -0
- package/dist/profiles/profileFieldGrid.js.map +1 -0
- package/dist/profiles/profileFieldManager.cjs +103 -0
- package/dist/profiles/profileFieldManager.cjs.map +1 -0
- package/dist/profiles/profileFieldManager.d.ts +9 -0
- package/dist/profiles/profileFieldManager.d.ts.map +1 -0
- package/dist/profiles/profileFieldManager.js +103 -0
- package/dist/profiles/profileFieldManager.js.map +1 -0
- package/dist/profiles/profileFieldState.cjs +136 -0
- package/dist/profiles/profileFieldState.cjs.map +1 -0
- package/dist/profiles/profileFieldState.d.ts +41 -0
- package/dist/profiles/profileFieldState.d.ts.map +1 -0
- package/dist/profiles/profileFieldState.js +136 -0
- package/dist/profiles/profileFieldState.js.map +1 -0
- package/dist/profiles/profileFieldTypes.cjs +17 -0
- package/dist/profiles/profileFieldTypes.cjs.map +1 -0
- package/dist/profiles/profileFieldTypes.d.ts +8 -0
- package/dist/profiles/profileFieldTypes.d.ts.map +1 -0
- package/dist/profiles/profileFieldTypes.js +17 -0
- package/dist/profiles/profileFieldTypes.js.map +1 -0
- package/dist/profiles/profileParamModel.cjs +78 -0
- package/dist/profiles/profileParamModel.cjs.map +1 -0
- package/dist/profiles/profileParamModel.d.ts +3 -0
- package/dist/profiles/profileParamModel.d.ts.map +1 -0
- package/dist/profiles/profileParamModel.js +78 -0
- package/dist/profiles/profileParamModel.js.map +1 -0
- package/dist/profiles/profileSamplePayload.cjs +15 -0
- package/dist/profiles/profileSamplePayload.cjs.map +1 -0
- package/dist/profiles/profileSamplePayload.d.ts +13 -0
- package/dist/profiles/profileSamplePayload.d.ts.map +1 -0
- package/dist/profiles/profileSamplePayload.js +15 -0
- package/dist/profiles/profileSamplePayload.js.map +1 -0
- package/dist/profiles/profileWizard.cjs +257 -0
- package/dist/profiles/profileWizard.cjs.map +1 -0
- package/dist/profiles/profileWizard.d.ts +12 -0
- package/dist/profiles/profileWizard.d.ts.map +1 -0
- package/dist/profiles/profileWizard.js +257 -0
- package/dist/profiles/profileWizard.js.map +1 -0
- package/dist/profiles/profileWizardHelp.cjs +10 -0
- package/dist/profiles/profileWizardHelp.cjs.map +1 -0
- package/dist/profiles/profileWizardHelp.d.ts +13 -0
- package/dist/profiles/profileWizardHelp.d.ts.map +1 -0
- package/dist/profiles/profileWizardHelp.js +10 -0
- package/dist/profiles/profileWizardHelp.js.map +1 -0
- package/dist/profiles/profileWizardModel.cjs +198 -0
- package/dist/profiles/profileWizardModel.cjs.map +1 -0
- package/dist/profiles/profileWizardModel.d.ts +255 -0
- package/dist/profiles/profileWizardModel.d.ts.map +1 -0
- package/dist/profiles/profileWizardModel.js +198 -0
- package/dist/profiles/profileWizardModel.js.map +1 -0
- package/dist/profiles/profileWizardQueryStep.cjs +215 -0
- package/dist/profiles/profileWizardQueryStep.cjs.map +1 -0
- package/dist/profiles/profileWizardQueryStep.d.ts +18 -0
- package/dist/profiles/profileWizardQueryStep.d.ts.map +1 -0
- package/dist/profiles/profileWizardQueryStep.js +215 -0
- package/dist/profiles/profileWizardQueryStep.js.map +1 -0
- package/dist/profiles/profileWizardSteps.cjs +214 -0
- package/dist/profiles/profileWizardSteps.cjs.map +1 -0
- package/dist/profiles/profileWizardSteps.d.ts +35 -0
- package/dist/profiles/profileWizardSteps.d.ts.map +1 -0
- package/dist/profiles/profileWizardSteps.js +214 -0
- package/dist/profiles/profileWizardSteps.js.map +1 -0
- package/dist/profiles/profileYaml.cjs +19 -0
- package/dist/profiles/profileYaml.cjs.map +1 -0
- package/dist/profiles/profileYaml.d.ts +4 -0
- package/dist/profiles/profileYaml.d.ts.map +1 -0
- package/dist/profiles/profileYaml.js +19 -0
- package/dist/profiles/profileYaml.js.map +1 -0
- package/dist/profiles/prometheusResults.cjs +60 -0
- package/dist/profiles/prometheusResults.cjs.map +1 -0
- package/dist/profiles/prometheusResults.d.ts +7 -0
- package/dist/profiles/prometheusResults.d.ts.map +1 -0
- package/dist/profiles/prometheusResults.js +60 -0
- package/dist/profiles/prometheusResults.js.map +1 -0
- package/dist/profiles/queryRowLimits.cjs +82 -0
- package/dist/profiles/queryRowLimits.cjs.map +1 -0
- package/dist/profiles/queryRowLimits.d.ts +9 -0
- package/dist/profiles/queryRowLimits.d.ts.map +1 -0
- package/dist/profiles/queryRowLimits.js +82 -0
- package/dist/profiles/queryRowLimits.js.map +1 -0
- package/dist/profiles/queryRowLimitsModel.cjs +10 -0
- package/dist/profiles/queryRowLimitsModel.cjs.map +1 -0
- package/dist/profiles/queryRowLimitsModel.d.ts +9 -0
- package/dist/profiles/queryRowLimitsModel.d.ts.map +1 -0
- package/dist/profiles/queryRowLimitsModel.js +10 -0
- package/dist/profiles/queryRowLimitsModel.js.map +1 -0
- package/dist/profiles/queryTargetPicker.cjs +42 -0
- package/dist/profiles/queryTargetPicker.cjs.map +1 -0
- package/dist/profiles/queryTargetPicker.d.ts +8 -0
- package/dist/profiles/queryTargetPicker.d.ts.map +1 -0
- package/dist/profiles/queryTargetPicker.js +42 -0
- package/dist/profiles/queryTargetPicker.js.map +1 -0
- package/dist/profiles/testSchema.d.ts +3 -0
- package/dist/profiles/testSchema.d.ts.map +1 -0
- package/dist/profiles.cjs +223 -0
- package/dist/profiles.cjs.map +1 -0
- package/dist/profiles.d.ts +68 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +223 -0
- package/dist/profiles.js.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Icon } from "../data/Icon.js";
|
|
3
|
+
import { TreeNode } from "../data/TreeNode.js";
|
|
4
|
+
import { UiSqlDatabase } from "../icons/components/UiSqlDatabase.js";
|
|
5
|
+
import { UiDatabase } from "../icons/components/UiDatabase.js";
|
|
6
|
+
import { UiActivity } from "../icons/components/UiActivity.js";
|
|
7
|
+
import { UiLink } from "../icons/components/UiLink.js";
|
|
8
|
+
import { UiSqlIndex } from "../icons/components/UiSqlIndex.js";
|
|
9
|
+
import { UiSqlColumn } from "../icons/components/UiSqlColumn.js";
|
|
10
|
+
import { UiSqlView } from "../icons/components/UiSqlView.js";
|
|
11
|
+
import { UiTable } from "../icons/components/UiTable.js";
|
|
12
|
+
import { UiNamespace } from "../icons/components/UiNamespace.js";
|
|
13
|
+
function CatalogTree({
|
|
14
|
+
nodes,
|
|
15
|
+
loading,
|
|
16
|
+
error,
|
|
17
|
+
databases,
|
|
18
|
+
database,
|
|
19
|
+
onDatabaseChange,
|
|
20
|
+
onSelect
|
|
21
|
+
}) {
|
|
22
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex h-full min-h-0 flex-col overflow-auto border-r bg-card p-2", children: [
|
|
23
|
+
/* @__PURE__ */ jsxs("h3", { className: "flex items-center gap-1.5 px-2 py-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: [
|
|
24
|
+
/* @__PURE__ */ jsx(Icon, { icon: UiSqlDatabase, className: "size-3.5" }),
|
|
25
|
+
/* @__PURE__ */ jsx("span", { children: "Catalog" })
|
|
26
|
+
] }),
|
|
27
|
+
databases.length > 0 ? /* @__PURE__ */ jsxs("label", { className: "mb-2 block px-2 text-xs text-muted-foreground", children: [
|
|
28
|
+
"Database",
|
|
29
|
+
/* @__PURE__ */ jsx(
|
|
30
|
+
"select",
|
|
31
|
+
{
|
|
32
|
+
"aria-label": "Database",
|
|
33
|
+
value: database,
|
|
34
|
+
onChange: (event) => onDatabaseChange(event.target.value),
|
|
35
|
+
className: "mt-1 h-8 w-full rounded-md border bg-background px-2 text-xs text-foreground",
|
|
36
|
+
children: databases.map((name) => /* @__PURE__ */ jsx("option", { value: name, children: name }, name))
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
] }) : null,
|
|
40
|
+
loading && /* @__PURE__ */ jsx("div", { className: "p-2 text-xs text-muted-foreground", children: "Loading catalog…" }),
|
|
41
|
+
error ? /* @__PURE__ */ jsxs(
|
|
42
|
+
"div",
|
|
43
|
+
{
|
|
44
|
+
role: "alert",
|
|
45
|
+
className: "m-2 rounded-md border border-destructive/30 bg-destructive/5 p-2 text-xs text-destructive",
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ jsx("p", { className: "font-medium", children: "Unable to load catalog" }),
|
|
48
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 break-words", children: catalogErrorMessage(error) })
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
) : null,
|
|
52
|
+
!loading && !error && nodes.length === 0 ? /* @__PURE__ */ jsx("div", { className: "p-2 text-xs text-muted-foreground", children: "No catalog objects found." }) : null,
|
|
53
|
+
/* @__PURE__ */ jsx(
|
|
54
|
+
CatalogNodes,
|
|
55
|
+
{
|
|
56
|
+
nodes,
|
|
57
|
+
onSelect
|
|
58
|
+
},
|
|
59
|
+
database || "catalog"
|
|
60
|
+
)
|
|
61
|
+
] });
|
|
62
|
+
}
|
|
63
|
+
function catalogErrorMessage(error) {
|
|
64
|
+
if (error instanceof Error && error.message.trim()) {
|
|
65
|
+
return error.message.trim();
|
|
66
|
+
}
|
|
67
|
+
if (typeof error === "string" && error.trim()) {
|
|
68
|
+
return error.trim();
|
|
69
|
+
}
|
|
70
|
+
return "The catalog request failed. Check the connection settings and try again.";
|
|
71
|
+
}
|
|
72
|
+
function CatalogNodes({
|
|
73
|
+
nodes,
|
|
74
|
+
onSelect
|
|
75
|
+
}) {
|
|
76
|
+
return /* @__PURE__ */ jsx("div", { role: "tree", className: "min-w-0", children: nodes.map((node) => /* @__PURE__ */ jsx(
|
|
77
|
+
TreeNode,
|
|
78
|
+
{
|
|
79
|
+
node,
|
|
80
|
+
getKey: (item) => item.id,
|
|
81
|
+
getChildren: (item) => item.children,
|
|
82
|
+
defaultOpen: (item) => item.kind === "schema",
|
|
83
|
+
isSecondary: (item) => item.kind === "column",
|
|
84
|
+
onSelect: (item) => {
|
|
85
|
+
if (item.query) onSelect(item);
|
|
86
|
+
},
|
|
87
|
+
indentPx: 14,
|
|
88
|
+
basePaddingPx: 8,
|
|
89
|
+
renderRow: ({ node: item }) => /* @__PURE__ */ jsxs(
|
|
90
|
+
"div",
|
|
91
|
+
{
|
|
92
|
+
className: "flex min-w-0 flex-1 items-center gap-1.5 text-xs",
|
|
93
|
+
title: item.query ? `Load ${item.kind}` : item.kind,
|
|
94
|
+
children: [
|
|
95
|
+
/* @__PURE__ */ jsx(
|
|
96
|
+
Icon,
|
|
97
|
+
{
|
|
98
|
+
icon: catalogIcon(item.kind),
|
|
99
|
+
className: "size-3.5 shrink-0 text-muted-foreground"
|
|
100
|
+
}
|
|
101
|
+
),
|
|
102
|
+
/* @__PURE__ */ jsx("span", { className: "truncate", children: item.label })
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
)
|
|
106
|
+
},
|
|
107
|
+
node.id
|
|
108
|
+
)) });
|
|
109
|
+
}
|
|
110
|
+
function catalogIcon(kind) {
|
|
111
|
+
switch (kind) {
|
|
112
|
+
case "schema":
|
|
113
|
+
return UiNamespace;
|
|
114
|
+
case "table":
|
|
115
|
+
return UiTable;
|
|
116
|
+
case "view":
|
|
117
|
+
return UiSqlView;
|
|
118
|
+
case "column":
|
|
119
|
+
return UiSqlColumn;
|
|
120
|
+
case "index":
|
|
121
|
+
return UiSqlIndex;
|
|
122
|
+
case "alias":
|
|
123
|
+
return UiLink;
|
|
124
|
+
case "data_stream":
|
|
125
|
+
return UiActivity;
|
|
126
|
+
default:
|
|
127
|
+
return UiDatabase;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
export {
|
|
131
|
+
CatalogTree
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=catalogTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalogTree.js","sources":["../../src/profiles/catalogTree.tsx"],"sourcesContent":["import { Icon } from \"../data/Icon\";\nimport { TreeNode } from \"../data/TreeNode\";\nimport {\n UiActivity,\n UiDatabase,\n UiLink,\n UiNamespace,\n UiSqlColumn,\n UiSqlDatabase,\n UiSqlIndex,\n UiSqlView,\n UiTable,\n} from \"../icons\";\nimport type { CatalogNode } from \"./connectionBrowserModel\";\n\nexport function CatalogTree({\n nodes,\n loading,\n error,\n databases,\n database,\n onDatabaseChange,\n onSelect,\n}: {\n nodes: CatalogNode[];\n loading: boolean;\n error: unknown;\n databases: string[];\n database: string;\n onDatabaseChange: (database: string) => void;\n onSelect: (node: CatalogNode) => void;\n}) {\n return (\n <div className=\"flex h-full min-h-0 flex-col overflow-auto border-r bg-card p-2\">\n <h3 className=\"flex items-center gap-1.5 px-2 py-1 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n <Icon icon={UiSqlDatabase} className=\"size-3.5\" />\n <span>Catalog</span>\n </h3>\n {databases.length > 0 ? (\n <label className=\"mb-2 block px-2 text-xs text-muted-foreground\">\n Database\n <select\n aria-label=\"Database\"\n value={database}\n onChange={(event) => onDatabaseChange(event.target.value)}\n className=\"mt-1 h-8 w-full rounded-md border bg-background px-2 text-xs text-foreground\"\n >\n {databases.map((name) => (\n <option key={name} value={name}>\n {name}\n </option>\n ))}\n </select>\n </label>\n ) : null}\n {loading && (\n <div className=\"p-2 text-xs text-muted-foreground\">\n Loading catalog…\n </div>\n )}\n {error ? (\n <div\n role=\"alert\"\n className=\"m-2 rounded-md border border-destructive/30 bg-destructive/5 p-2 text-xs text-destructive\"\n >\n <p className=\"font-medium\">Unable to load catalog</p>\n <p className=\"mt-1 break-words\">{catalogErrorMessage(error)}</p>\n </div>\n ) : null}\n {!loading && !error && nodes.length === 0 ? (\n <div className=\"p-2 text-xs text-muted-foreground\">\n No catalog objects found.\n </div>\n ) : null}\n <CatalogNodes\n key={database || \"catalog\"}\n nodes={nodes}\n onSelect={onSelect}\n />\n </div>\n );\n}\n\nfunction catalogErrorMessage(error: unknown): string {\n if (error instanceof Error && error.message.trim()) {\n return error.message.trim();\n }\n if (typeof error === \"string\" && error.trim()) {\n return error.trim();\n }\n return \"The catalog request failed. Check the connection settings and try again.\";\n}\n\nfunction CatalogNodes({\n nodes,\n onSelect,\n}: {\n nodes: CatalogNode[];\n onSelect: (node: CatalogNode) => void;\n}) {\n return (\n <div role=\"tree\" className=\"min-w-0\">\n {nodes.map((node) => (\n <TreeNode\n key={node.id}\n node={node}\n getKey={(item) => item.id}\n getChildren={(item) => item.children}\n defaultOpen={(item) => item.kind === \"schema\"}\n isSecondary={(item) => item.kind === \"column\"}\n onSelect={(item) => {\n if (item.query) onSelect(item);\n }}\n indentPx={14}\n basePaddingPx={8}\n renderRow={({ node: item }) => (\n <div\n className=\"flex min-w-0 flex-1 items-center gap-1.5 text-xs\"\n title={item.query ? `Load ${item.kind}` : item.kind}\n >\n <Icon\n icon={catalogIcon(item.kind)}\n className=\"size-3.5 shrink-0 text-muted-foreground\"\n />\n <span className=\"truncate\">{item.label}</span>\n </div>\n )}\n />\n ))}\n </div>\n );\n}\n\nfunction catalogIcon(kind: string) {\n switch (kind) {\n case \"schema\":\n return UiNamespace;\n case \"table\":\n return UiTable;\n case \"view\":\n return UiSqlView;\n case \"column\":\n return UiSqlColumn;\n case \"index\":\n return UiSqlIndex;\n case \"alias\":\n return UiLink;\n case \"data_stream\":\n return UiActivity;\n default:\n return UiDatabase;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const errorDiagnostics = require("../data/diagnostics/error-diagnostics.cjs");
|
|
4
|
+
const profileApi = require("./profileApi.cjs");
|
|
5
|
+
const QueryBrowser_types = require("../data/query-browser/QueryBrowser.types.cjs");
|
|
6
|
+
const reactQuery = require("@tanstack/react-query");
|
|
7
|
+
const react = require("react");
|
|
8
|
+
function savedConnectionID(value) {
|
|
9
|
+
const prefix = "connection://";
|
|
10
|
+
if (!(value == null ? void 0 : value.startsWith(prefix))) return null;
|
|
11
|
+
return value.slice(prefix.length).trim() || null;
|
|
12
|
+
}
|
|
13
|
+
function browserBaseUrl(connectionID) {
|
|
14
|
+
return profileApi.profileApiPath(`connection/${encodeURIComponent(connectionID)}/browser`);
|
|
15
|
+
}
|
|
16
|
+
async function fetchJSON(url, init) {
|
|
17
|
+
const response = await fetch(url, init);
|
|
18
|
+
if (!response.ok) {
|
|
19
|
+
const body = await response.text();
|
|
20
|
+
const fallback = body.trim() || `request failed: ${response.status}`;
|
|
21
|
+
try {
|
|
22
|
+
const parsed = JSON.parse(body);
|
|
23
|
+
if (typeof parsed.error === "string") {
|
|
24
|
+
const errorDetails = errorDiagnostics.normalizeErrorDiagnostics(parsed, parsed.error);
|
|
25
|
+
throw new QueryBrowser_types.QueryBrowserExecutionError(
|
|
26
|
+
(errorDetails == null ? void 0 : errorDetails.message) ?? parsed.error,
|
|
27
|
+
parsed.diagnostics,
|
|
28
|
+
errorDetails ?? void 0
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
} catch (error) {
|
|
32
|
+
if (error instanceof QueryBrowser_types.QueryBrowserExecutionError) throw error;
|
|
33
|
+
}
|
|
34
|
+
throw new Error(fallback);
|
|
35
|
+
}
|
|
36
|
+
return response.json();
|
|
37
|
+
}
|
|
38
|
+
const targetGroups = [
|
|
39
|
+
{ kind: "pattern", label: "Index patterns" },
|
|
40
|
+
{ kind: "alias", label: "Aliases" },
|
|
41
|
+
{ kind: "data_stream", label: "Data streams" },
|
|
42
|
+
{ kind: "index", label: "Indexes" }
|
|
43
|
+
];
|
|
44
|
+
function openSearchIndexOptions(inspection) {
|
|
45
|
+
if ((inspection == null ? void 0 : inspection.kind) !== "opensearch") return [];
|
|
46
|
+
const targets = inspection.targets ?? [];
|
|
47
|
+
return targetGroups.flatMap(
|
|
48
|
+
({ kind, label }) => targets.filter((target) => target.kind === kind).map((target) => ({
|
|
49
|
+
value: target.name,
|
|
50
|
+
label: target.count ? `${target.name} · ${target.count} indexes` : target.name,
|
|
51
|
+
selectedLabel: target.name,
|
|
52
|
+
group: label,
|
|
53
|
+
title: target.count ? `${target.name} · ${target.count} rotated indexes` : `${target.name} · ${target.kind.replace("_", " ")}`
|
|
54
|
+
}))
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
function openSearchTargetKind(inspection, name) {
|
|
58
|
+
const discovered = ((inspection == null ? void 0 : inspection.targets) ?? []).find(
|
|
59
|
+
(target) => target.name === name
|
|
60
|
+
);
|
|
61
|
+
if (discovered) return discovered.kind;
|
|
62
|
+
return name.includes("*") ? "pattern" : "";
|
|
63
|
+
}
|
|
64
|
+
function withTarget(options, target) {
|
|
65
|
+
if (!target) return options;
|
|
66
|
+
const next = { ...options };
|
|
67
|
+
if (target.index) {
|
|
68
|
+
next.index = target.index;
|
|
69
|
+
next.targetKind = target.targetKind;
|
|
70
|
+
} else {
|
|
71
|
+
delete next.index;
|
|
72
|
+
delete next.targetKind;
|
|
73
|
+
}
|
|
74
|
+
return next;
|
|
75
|
+
}
|
|
76
|
+
function queryBrowserOptionsSchema(descriptor) {
|
|
77
|
+
if (!descriptor.optionsSchema) return void 0;
|
|
78
|
+
const properties = { ...descriptor.optionsSchema.properties };
|
|
79
|
+
if (properties.search) {
|
|
80
|
+
delete properties.search;
|
|
81
|
+
delete properties.limit;
|
|
82
|
+
}
|
|
83
|
+
if (descriptor.targetLabel) delete properties.index;
|
|
84
|
+
return { ...descriptor.optionsSchema, properties };
|
|
85
|
+
}
|
|
86
|
+
function completionForInspection(inspection, selectedInspection) {
|
|
87
|
+
if ((inspection == null ? void 0 : inspection.kind) === "sql" && inspection.dialect) {
|
|
88
|
+
return {
|
|
89
|
+
kind: "sql",
|
|
90
|
+
dialect: inspection.dialect,
|
|
91
|
+
...inspection.defaultSchema ? { defaultSchema: inspection.defaultSchema } : {},
|
|
92
|
+
schemas: (inspection.schemas ?? []).map((schema) => ({
|
|
93
|
+
name: schema.name,
|
|
94
|
+
relations: schema.relations.map((relation) => ({
|
|
95
|
+
name: relation.name,
|
|
96
|
+
...relation.type ? { type: relation.type } : {},
|
|
97
|
+
columns: relation.columns.map((column) => ({
|
|
98
|
+
name: column.name,
|
|
99
|
+
types: column.dataType ? [column.dataType] : []
|
|
100
|
+
}))
|
|
101
|
+
}))
|
|
102
|
+
}))
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
if ((selectedInspection == null ? void 0 : selectedInspection.kind) === "opensearch" && selectedInspection.selected) {
|
|
106
|
+
return {
|
|
107
|
+
kind: "json-fields",
|
|
108
|
+
vocabulary: "opensearch",
|
|
109
|
+
fields: selectedInspection.selected.fields
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
return void 0;
|
|
113
|
+
}
|
|
114
|
+
function mergeProviderOptions(input) {
|
|
115
|
+
const merged = {};
|
|
116
|
+
for (const layer of input.layers) Object.assign(merged, layer ?? {});
|
|
117
|
+
if (input.database) merged.database = input.database;
|
|
118
|
+
if (!input.keepTargetKind) delete merged.targetKind;
|
|
119
|
+
return merged;
|
|
120
|
+
}
|
|
121
|
+
function useInspection(scope) {
|
|
122
|
+
var _a, _b, _c, _d, _e;
|
|
123
|
+
const { cacheKey, id, baseUrl } = scope;
|
|
124
|
+
const base = reactQuery.useQuery({
|
|
125
|
+
queryKey: [cacheKey, id],
|
|
126
|
+
queryFn: () => fetchJSON(`${baseUrl}/inspect`),
|
|
127
|
+
enabled: scope.enabled,
|
|
128
|
+
retry: 0,
|
|
129
|
+
staleTime: 5 * 6e4
|
|
130
|
+
});
|
|
131
|
+
const switchedDatabase = scope.database !== "" && scope.database !== ((_a = base.data) == null ? void 0 : _a.database);
|
|
132
|
+
const database = reactQuery.useQuery({
|
|
133
|
+
queryKey: [cacheKey, id, scope.database],
|
|
134
|
+
queryFn: () => {
|
|
135
|
+
const params = new URLSearchParams({ database: scope.database });
|
|
136
|
+
return fetchJSON(`${baseUrl}/inspect?${params}`);
|
|
137
|
+
},
|
|
138
|
+
enabled: ((_b = base.data) == null ? void 0 : _b.kind) === "sql" && switchedDatabase,
|
|
139
|
+
retry: 0,
|
|
140
|
+
staleTime: 5 * 6e4
|
|
141
|
+
});
|
|
142
|
+
const active = switchedDatabase ? database : base;
|
|
143
|
+
const data = active.data ?? base.data;
|
|
144
|
+
const targetKind = scope.targetKind ?? ((_d = (_c = data == null ? void 0 : data.targets) == null ? void 0 : _c.find((target2) => target2.name === scope.target)) == null ? void 0 : _d.kind) ?? "";
|
|
145
|
+
const target = reactQuery.useQuery({
|
|
146
|
+
queryKey: [cacheKey, id, targetKind, scope.target],
|
|
147
|
+
queryFn: () => {
|
|
148
|
+
const params = new URLSearchParams({
|
|
149
|
+
target: scope.target,
|
|
150
|
+
targetKind
|
|
151
|
+
});
|
|
152
|
+
return fetchJSON(`${baseUrl}/inspect?${params}`);
|
|
153
|
+
},
|
|
154
|
+
enabled: (data == null ? void 0 : data.kind) === "opensearch" && scope.target !== "" && targetKind !== "",
|
|
155
|
+
retry: 0,
|
|
156
|
+
staleTime: 5 * 6e4
|
|
157
|
+
});
|
|
158
|
+
const activeDatabase = scope.database || scope.fallbackDatabase || (data == null ? void 0 : data.database) || "";
|
|
159
|
+
const completion = react.useMemo(
|
|
160
|
+
() => completionForInspection(data, target.data),
|
|
161
|
+
[data, target.data]
|
|
162
|
+
);
|
|
163
|
+
return {
|
|
164
|
+
data,
|
|
165
|
+
nodes: (data == null ? void 0 : data.nodes) ?? [],
|
|
166
|
+
databases: ((_e = base.data) == null ? void 0 : _e.databases) ?? [],
|
|
167
|
+
activeDatabase,
|
|
168
|
+
sqlDatabase: (data == null ? void 0 : data.kind) === "sql" ? activeDatabase : "",
|
|
169
|
+
targetKind,
|
|
170
|
+
loading: active.isLoading,
|
|
171
|
+
error: active.error,
|
|
172
|
+
completion
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
exports.browserBaseUrl = browserBaseUrl;
|
|
176
|
+
exports.completionForInspection = completionForInspection;
|
|
177
|
+
exports.fetchJSON = fetchJSON;
|
|
178
|
+
exports.mergeProviderOptions = mergeProviderOptions;
|
|
179
|
+
exports.openSearchIndexOptions = openSearchIndexOptions;
|
|
180
|
+
exports.openSearchTargetKind = openSearchTargetKind;
|
|
181
|
+
exports.queryBrowserOptionsSchema = queryBrowserOptionsSchema;
|
|
182
|
+
exports.savedConnectionID = savedConnectionID;
|
|
183
|
+
exports.useInspection = useInspection;
|
|
184
|
+
exports.withTarget = withTarget;
|
|
185
|
+
//# sourceMappingURL=connectionBrowserModel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectionBrowserModel.cjs","sources":["../../src/profiles/connectionBrowserModel.ts"],"sourcesContent":["/**\n * The data layer behind every query browser: the descriptor and inspection\n * shapes the server serves, and the hook that turns a selection (database,\n * index) into the catalog and completion a browser renders. All three hosts —\n * the connection browser, the profile wizard and the profile builder — drive\n * the same plumbing from here so the surfaces cannot drift apart.\n */\n\nimport type { ComboboxOption } from \"../components/Combobox\";\nimport type { JsonSchemaObject } from \"../components/json-schema-form-types\";\nimport { normalizeErrorDiagnostics } from \"../data/diagnostics/error-diagnostics\";\nimport type { QueryBrowserCompletion } from \"../data/query-browser/QueryBrowser.completion\";\nimport type { QueryBrowserDiagnostics } from \"../data/query-browser/QueryBrowser.types\";\nimport { profileApiPath } from \"./profileApi\";\nimport { QueryBrowserExecutionError } from \"../data/query-browser/QueryBrowser.types\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useMemo, type ReactNode } from \"react\";\n\nexport type BrowserDescriptor = {\n kind: \"query\" | \"cache\";\n provider?: string;\n language?: \"sql\" | \"json\" | \"text\";\n queryLabel?: string;\n defaultQuery?: string;\n resultView?: \"table\" | \"logs\" | \"timeseries\";\n optionsSchema?: JsonSchemaObject;\n initialOptions?: Record<string, unknown>;\n catalog?: boolean;\n /**\n * What a query runs against when the source picks one flat target — the\n * `index` option. Set, the browser offers a target combobox instead of a\n * catalog tree.\n */\n targetLabel?: string;\n /**\n * The row caps that apply when a profile declares none of its own: the page a\n * caller gets by default, the largest page it may ask for, and where an\n * all-row export stops. The query's own `limit` option is none of them.\n */\n rowLimits?: BrowserRowLimits;\n};\n\n/** The defaults the server serves, shown as what an unset cap inherits. */\nexport type BrowserRowLimits = {\n pageSize: number;\n maxPageSize: number;\n maxExportRows: number;\n};\n\n/** The caps a profile sets for itself; each unset one takes its default. */\nexport type ProfileRowLimits = {\n pageSize?: number;\n maxPageSize?: number;\n maxExportRows?: number;\n};\n\nexport type TargetKind = \"index\" | \"alias\" | \"data_stream\" | \"pattern\";\n\nexport type InspectionTarget = {\n name: string;\n kind: TargetKind;\n /** The rotation wildcard this concrete index rolls up into. */\n pattern?: string;\n /** How many rotations a `pattern` target covers. */\n count?: number;\n};\n\nexport type CatalogNode = {\n id: string;\n label: string;\n kind: string;\n query?: string;\n options?: Record<string, unknown>;\n children?: CatalogNode[];\n};\n\nexport type InspectionField = {\n name: string;\n dataType?: string;\n types?: string[];\n searchable?: boolean;\n aggregatable?: boolean;\n conflicting?: boolean;\n};\n\nexport type BrowserInspection = {\n kind: \"sql\" | \"opensearch\";\n dialect?: \"postgresql\" | \"mysql\" | \"mssql\" | \"standard\";\n database?: string;\n databases?: string[];\n defaultSchema?: string;\n schemas?: {\n name: string;\n relations: {\n name: string;\n type?: \"table\" | \"view\";\n columns: InspectionField[];\n }[];\n }[];\n targets?: InspectionTarget[];\n nodes?: CatalogNode[];\n selected?: {\n target: InspectionTarget;\n fields: InspectionField[];\n };\n truncated?: boolean;\n truncateReason?: string;\n};\n\nexport type ConnectionProfileActionRenderer = (context: {\n connectionName: string;\n providerType: string;\n providerOptions?: Record<string, unknown>;\n}) => ReactNode;\n\n/**\n * savedConnectionID reads the id out of a `connection://<id>` reference. An\n * inline URL has no id, and so no catalog to browse — hence null rather than a\n * guess.\n */\nexport function savedConnectionID(value: string | undefined): string | null {\n const prefix = \"connection://\";\n if (!value?.startsWith(prefix)) return null;\n return value.slice(prefix.length).trim() || null;\n}\n\nexport function browserBaseUrl(connectionID: string): string {\n return profileApiPath(`connection/${encodeURIComponent(connectionID)}/browser`);\n}\n\nexport async function fetchJSON<T>(url: string, init?: RequestInit): Promise<T> {\n const response = await fetch(url, init);\n if (!response.ok) {\n const body = await response.text();\n const fallback = body.trim() || `request failed: ${response.status}`;\n try {\n const parsed = JSON.parse(body) as {\n error?: unknown;\n diagnostics?: QueryBrowserDiagnostics;\n };\n if (typeof parsed.error === \"string\") {\n const errorDetails = normalizeErrorDiagnostics(parsed, parsed.error);\n throw new QueryBrowserExecutionError(\n errorDetails?.message ?? parsed.error,\n parsed.diagnostics,\n errorDetails ?? undefined,\n );\n }\n } catch (error) {\n if (error instanceof QueryBrowserExecutionError) throw error;\n }\n throw new Error(fallback);\n }\n return response.json() as Promise<T>;\n}\n\n/**\n * Rotations lead: a cluster with fifty-three daily jaeger indexes has one\n * target an author actually means, and it is `jaeger-span-*`. The concrete\n * indexes stay listed last so a single day is still reachable.\n */\nconst targetGroups: { kind: TargetKind; label: string }[] = [\n { kind: \"pattern\", label: \"Index patterns\" },\n { kind: \"alias\", label: \"Aliases\" },\n { kind: \"data_stream\", label: \"Data streams\" },\n { kind: \"index\", label: \"Indexes\" },\n];\n\nexport function openSearchIndexOptions(\n inspection?: BrowserInspection,\n): ComboboxOption[] {\n if (inspection?.kind !== \"opensearch\") return [];\n const targets = inspection.targets ?? [];\n return targetGroups.flatMap(({ kind, label }) =>\n targets\n .filter((target) => target.kind === kind)\n .map((target) => ({\n value: target.name,\n label: target.count ? `${target.name} · ${target.count} indexes` : target.name,\n selectedLabel: target.name,\n group: label,\n title: target.count\n ? `${target.name} · ${target.count} rotated indexes`\n : `${target.name} · ${target.kind.replace(\"_\", \" \")}`,\n })),\n );\n}\n\n/**\n * openSearchTargetKind resolves how to inspect a picked target. An undiscovered\n * name containing a wildcard is a pattern by construction — the server inspects\n * it without requiring it to have been enumerated.\n */\nexport function openSearchTargetKind(\n inspection: BrowserInspection | undefined,\n name: string,\n): string {\n const discovered = (inspection?.targets ?? []).find(\n (target) => target.name === name,\n );\n if (discovered) return discovered.kind;\n return name.includes(\"*\") ? \"pattern\" : \"\";\n}\n\n/**\n * withTarget applies a picked target over a host's options, clearing both keys\n * when the picker is emptied so a stale index cannot survive the selection.\n */\nexport function withTarget(\n options: Record<string, unknown>,\n target: { index: string; targetKind: string } | undefined,\n): Record<string, unknown> {\n if (!target) return options;\n const next = { ...options };\n if (target.index) {\n next.index = target.index;\n next.targetKind = target.targetKind;\n } else {\n delete next.index;\n delete next.targetKind;\n }\n return next;\n}\n\n/**\n * queryBrowserOptionsSchema is what the inline options form edits — the leftover\n * options, once the navigator has claimed the ones that belong with the query.\n * The target has its own combobox, and where the source has a structured search\n * the builder owns both the search and the limit it returns, so none of the\n * three is rendered a second time as a generic field.\n */\nexport function queryBrowserOptionsSchema(\n descriptor: BrowserDescriptor,\n): JsonSchemaObject | undefined {\n if (!descriptor.optionsSchema) return undefined;\n const properties = { ...descriptor.optionsSchema.properties };\n if (properties.search) {\n delete properties.search;\n delete properties.limit;\n }\n if (descriptor.targetLabel) delete properties.index;\n return { ...descriptor.optionsSchema, properties };\n}\n\nexport function completionForInspection(\n inspection?: BrowserInspection,\n selectedInspection?: BrowserInspection,\n): QueryBrowserCompletion | undefined {\n if (inspection?.kind === \"sql\" && inspection.dialect) {\n return {\n kind: \"sql\",\n dialect: inspection.dialect,\n ...(inspection.defaultSchema\n ? { defaultSchema: inspection.defaultSchema }\n : {}),\n schemas: (inspection.schemas ?? []).map((schema) => ({\n name: schema.name,\n relations: schema.relations.map((relation) => ({\n name: relation.name,\n ...(relation.type ? { type: relation.type } : {}),\n columns: relation.columns.map((column) => ({\n name: column.name,\n types: column.dataType ? [column.dataType] : [],\n })),\n })),\n })),\n };\n }\n if (\n selectedInspection?.kind === \"opensearch\" &&\n selectedInspection.selected\n ) {\n return {\n kind: \"json-fields\",\n vocabulary: \"opensearch\",\n fields: selectedInspection.selected.fields,\n };\n }\n return undefined;\n}\n\n/**\n * mergeProviderOptions layers the option sources a browser draws on, in\n * increasing precedence, and pins the active database when there is one.\n * `targetKind` only tells the inspection endpoint which field mappings to\n * fetch, so it is dropped unless the caller is feeding the browser itself.\n */\nexport function mergeProviderOptions(input: {\n layers: Array<Record<string, unknown> | undefined>;\n database?: string;\n keepTargetKind?: boolean;\n}): Record<string, unknown> {\n const merged: Record<string, unknown> = {};\n for (const layer of input.layers) Object.assign(merged, layer ?? {});\n if (input.database) merged.database = input.database;\n if (!input.keepTargetKind) delete merged.targetKind;\n return merged;\n}\n\nexport type InspectionScope = {\n /** Query-cache namespace, so each host keeps its own inspection cache. */\n cacheKey: string;\n id: string;\n baseUrl: string;\n enabled: boolean;\n /** The database the author picked; empty means the connection's default. */\n database: string;\n /** A database carried by the stored provider options, tried before the default. */\n fallbackDatabase?: string;\n /** The selected index, alias or data stream. */\n target: string;\n /** An explicit target kind; resolved from the catalog when absent. */\n targetKind?: string;\n};\n\nexport type Inspection = {\n data?: BrowserInspection | undefined;\n nodes: CatalogNode[];\n databases: string[];\n activeDatabase: string;\n /** The database to send with a query — empty unless the source is SQL. */\n sqlDatabase: string;\n targetKind: string;\n loading: boolean;\n error: unknown;\n completion?: QueryBrowserCompletion | undefined;\n};\n\n/**\n * useInspection resolves the catalog for a browser: the base inspection, the\n * per-database one a SQL author switched to, and the per-target field mappings\n * an OpenSearch author needs for completion.\n */\nexport function useInspection(scope: InspectionScope): Inspection {\n const { cacheKey, id, baseUrl } = scope;\n const base = useQuery({\n queryKey: [cacheKey, id],\n queryFn: () => fetchJSON<BrowserInspection>(`${baseUrl}/inspect`),\n enabled: scope.enabled,\n retry: 0,\n staleTime: 5 * 60_000,\n });\n const switchedDatabase =\n scope.database !== \"\" && scope.database !== base.data?.database;\n const database = useQuery({\n queryKey: [cacheKey, id, scope.database],\n queryFn: () => {\n const params = new URLSearchParams({ database: scope.database });\n return fetchJSON<BrowserInspection>(`${baseUrl}/inspect?${params}`);\n },\n enabled: base.data?.kind === \"sql\" && switchedDatabase,\n retry: 0,\n staleTime: 5 * 60_000,\n });\n const active = switchedDatabase ? database : base;\n const data = active.data ?? base.data;\n\n const targetKind =\n scope.targetKind ??\n data?.targets?.find((target) => target.name === scope.target)?.kind ??\n \"\";\n const target = useQuery({\n queryKey: [cacheKey, id, targetKind, scope.target],\n queryFn: () => {\n const params = new URLSearchParams({\n target: scope.target,\n targetKind,\n });\n return fetchJSON<BrowserInspection>(`${baseUrl}/inspect?${params}`);\n },\n enabled: data?.kind === \"opensearch\" && scope.target !== \"\" && targetKind !== \"\",\n retry: 0,\n staleTime: 5 * 60_000,\n });\n\n const activeDatabase =\n scope.database || scope.fallbackDatabase || data?.database || \"\";\n const completion = useMemo(\n () => completionForInspection(data, target.data),\n [data, target.data],\n );\n return {\n data,\n nodes: data?.nodes ?? [],\n databases: base.data?.databases ?? [],\n activeDatabase,\n sqlDatabase: data?.kind === \"sql\" ? activeDatabase : \"\",\n targetKind,\n loading: active.isLoading,\n error: active.error,\n completion,\n };\n}\n"],"names":["profileApiPath","normalizeErrorDiagnostics","QueryBrowserExecutionError","useQuery","target","useMemo"],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { ComboboxOption } from '../components/Combobox';
|
|
2
|
+
import { JsonSchemaObject } from '../components/json-schema-form-types';
|
|
3
|
+
import { QueryBrowserCompletion } from '../data/query-browser/QueryBrowser.completion';
|
|
4
|
+
import { ReactNode } from 'react';
|
|
5
|
+
export type BrowserDescriptor = {
|
|
6
|
+
kind: "query" | "cache";
|
|
7
|
+
provider?: string;
|
|
8
|
+
language?: "sql" | "json" | "text";
|
|
9
|
+
queryLabel?: string;
|
|
10
|
+
defaultQuery?: string;
|
|
11
|
+
resultView?: "table" | "logs" | "timeseries";
|
|
12
|
+
optionsSchema?: JsonSchemaObject;
|
|
13
|
+
initialOptions?: Record<string, unknown>;
|
|
14
|
+
catalog?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* What a query runs against when the source picks one flat target — the
|
|
17
|
+
* `index` option. Set, the browser offers a target combobox instead of a
|
|
18
|
+
* catalog tree.
|
|
19
|
+
*/
|
|
20
|
+
targetLabel?: string;
|
|
21
|
+
/**
|
|
22
|
+
* The row caps that apply when a profile declares none of its own: the page a
|
|
23
|
+
* caller gets by default, the largest page it may ask for, and where an
|
|
24
|
+
* all-row export stops. The query's own `limit` option is none of them.
|
|
25
|
+
*/
|
|
26
|
+
rowLimits?: BrowserRowLimits;
|
|
27
|
+
};
|
|
28
|
+
/** The defaults the server serves, shown as what an unset cap inherits. */
|
|
29
|
+
export type BrowserRowLimits = {
|
|
30
|
+
pageSize: number;
|
|
31
|
+
maxPageSize: number;
|
|
32
|
+
maxExportRows: number;
|
|
33
|
+
};
|
|
34
|
+
/** The caps a profile sets for itself; each unset one takes its default. */
|
|
35
|
+
export type ProfileRowLimits = {
|
|
36
|
+
pageSize?: number;
|
|
37
|
+
maxPageSize?: number;
|
|
38
|
+
maxExportRows?: number;
|
|
39
|
+
};
|
|
40
|
+
export type TargetKind = "index" | "alias" | "data_stream" | "pattern";
|
|
41
|
+
export type InspectionTarget = {
|
|
42
|
+
name: string;
|
|
43
|
+
kind: TargetKind;
|
|
44
|
+
/** The rotation wildcard this concrete index rolls up into. */
|
|
45
|
+
pattern?: string;
|
|
46
|
+
/** How many rotations a `pattern` target covers. */
|
|
47
|
+
count?: number;
|
|
48
|
+
};
|
|
49
|
+
export type CatalogNode = {
|
|
50
|
+
id: string;
|
|
51
|
+
label: string;
|
|
52
|
+
kind: string;
|
|
53
|
+
query?: string;
|
|
54
|
+
options?: Record<string, unknown>;
|
|
55
|
+
children?: CatalogNode[];
|
|
56
|
+
};
|
|
57
|
+
export type InspectionField = {
|
|
58
|
+
name: string;
|
|
59
|
+
dataType?: string;
|
|
60
|
+
types?: string[];
|
|
61
|
+
searchable?: boolean;
|
|
62
|
+
aggregatable?: boolean;
|
|
63
|
+
conflicting?: boolean;
|
|
64
|
+
};
|
|
65
|
+
export type BrowserInspection = {
|
|
66
|
+
kind: "sql" | "opensearch";
|
|
67
|
+
dialect?: "postgresql" | "mysql" | "mssql" | "standard";
|
|
68
|
+
database?: string;
|
|
69
|
+
databases?: string[];
|
|
70
|
+
defaultSchema?: string;
|
|
71
|
+
schemas?: {
|
|
72
|
+
name: string;
|
|
73
|
+
relations: {
|
|
74
|
+
name: string;
|
|
75
|
+
type?: "table" | "view";
|
|
76
|
+
columns: InspectionField[];
|
|
77
|
+
}[];
|
|
78
|
+
}[];
|
|
79
|
+
targets?: InspectionTarget[];
|
|
80
|
+
nodes?: CatalogNode[];
|
|
81
|
+
selected?: {
|
|
82
|
+
target: InspectionTarget;
|
|
83
|
+
fields: InspectionField[];
|
|
84
|
+
};
|
|
85
|
+
truncated?: boolean;
|
|
86
|
+
truncateReason?: string;
|
|
87
|
+
};
|
|
88
|
+
export type ConnectionProfileActionRenderer = (context: {
|
|
89
|
+
connectionName: string;
|
|
90
|
+
providerType: string;
|
|
91
|
+
providerOptions?: Record<string, unknown>;
|
|
92
|
+
}) => ReactNode;
|
|
93
|
+
/**
|
|
94
|
+
* savedConnectionID reads the id out of a `connection://<id>` reference. An
|
|
95
|
+
* inline URL has no id, and so no catalog to browse — hence null rather than a
|
|
96
|
+
* guess.
|
|
97
|
+
*/
|
|
98
|
+
export declare function savedConnectionID(value: string | undefined): string | null;
|
|
99
|
+
export declare function browserBaseUrl(connectionID: string): string;
|
|
100
|
+
export declare function fetchJSON<T>(url: string, init?: RequestInit): Promise<T>;
|
|
101
|
+
export declare function openSearchIndexOptions(inspection?: BrowserInspection): ComboboxOption[];
|
|
102
|
+
/**
|
|
103
|
+
* openSearchTargetKind resolves how to inspect a picked target. An undiscovered
|
|
104
|
+
* name containing a wildcard is a pattern by construction — the server inspects
|
|
105
|
+
* it without requiring it to have been enumerated.
|
|
106
|
+
*/
|
|
107
|
+
export declare function openSearchTargetKind(inspection: BrowserInspection | undefined, name: string): string;
|
|
108
|
+
/**
|
|
109
|
+
* withTarget applies a picked target over a host's options, clearing both keys
|
|
110
|
+
* when the picker is emptied so a stale index cannot survive the selection.
|
|
111
|
+
*/
|
|
112
|
+
export declare function withTarget(options: Record<string, unknown>, target: {
|
|
113
|
+
index: string;
|
|
114
|
+
targetKind: string;
|
|
115
|
+
} | undefined): Record<string, unknown>;
|
|
116
|
+
/**
|
|
117
|
+
* queryBrowserOptionsSchema is what the inline options form edits — the leftover
|
|
118
|
+
* options, once the navigator has claimed the ones that belong with the query.
|
|
119
|
+
* The target has its own combobox, and where the source has a structured search
|
|
120
|
+
* the builder owns both the search and the limit it returns, so none of the
|
|
121
|
+
* three is rendered a second time as a generic field.
|
|
122
|
+
*/
|
|
123
|
+
export declare function queryBrowserOptionsSchema(descriptor: BrowserDescriptor): JsonSchemaObject | undefined;
|
|
124
|
+
export declare function completionForInspection(inspection?: BrowserInspection, selectedInspection?: BrowserInspection): QueryBrowserCompletion | undefined;
|
|
125
|
+
/**
|
|
126
|
+
* mergeProviderOptions layers the option sources a browser draws on, in
|
|
127
|
+
* increasing precedence, and pins the active database when there is one.
|
|
128
|
+
* `targetKind` only tells the inspection endpoint which field mappings to
|
|
129
|
+
* fetch, so it is dropped unless the caller is feeding the browser itself.
|
|
130
|
+
*/
|
|
131
|
+
export declare function mergeProviderOptions(input: {
|
|
132
|
+
layers: Array<Record<string, unknown> | undefined>;
|
|
133
|
+
database?: string;
|
|
134
|
+
keepTargetKind?: boolean;
|
|
135
|
+
}): Record<string, unknown>;
|
|
136
|
+
export type InspectionScope = {
|
|
137
|
+
/** Query-cache namespace, so each host keeps its own inspection cache. */
|
|
138
|
+
cacheKey: string;
|
|
139
|
+
id: string;
|
|
140
|
+
baseUrl: string;
|
|
141
|
+
enabled: boolean;
|
|
142
|
+
/** The database the author picked; empty means the connection's default. */
|
|
143
|
+
database: string;
|
|
144
|
+
/** A database carried by the stored provider options, tried before the default. */
|
|
145
|
+
fallbackDatabase?: string;
|
|
146
|
+
/** The selected index, alias or data stream. */
|
|
147
|
+
target: string;
|
|
148
|
+
/** An explicit target kind; resolved from the catalog when absent. */
|
|
149
|
+
targetKind?: string;
|
|
150
|
+
};
|
|
151
|
+
export type Inspection = {
|
|
152
|
+
data?: BrowserInspection | undefined;
|
|
153
|
+
nodes: CatalogNode[];
|
|
154
|
+
databases: string[];
|
|
155
|
+
activeDatabase: string;
|
|
156
|
+
/** The database to send with a query — empty unless the source is SQL. */
|
|
157
|
+
sqlDatabase: string;
|
|
158
|
+
targetKind: string;
|
|
159
|
+
loading: boolean;
|
|
160
|
+
error: unknown;
|
|
161
|
+
completion?: QueryBrowserCompletion | undefined;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* useInspection resolves the catalog for a browser: the base inspection, the
|
|
165
|
+
* per-database one a SQL author switched to, and the per-target field mappings
|
|
166
|
+
* an OpenSearch author needs for completion.
|
|
167
|
+
*/
|
|
168
|
+
export declare function useInspection(scope: InspectionScope): Inspection;
|
|
169
|
+
//# sourceMappingURL=connectionBrowserModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectionBrowserModel.d.ts","sourceRoot":"","sources":["../../src/profiles/connectionBrowserModel.ts"],"names":[],"mappings":"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"}
|