@datarecce/ui 0.1.11 → 0.1.13
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/{LineageViewContext-BPpYWJ2B.d.mts → LineageViewContext-DEa54ZNF.d.mts} +1 -1
- package/dist/{LineageViewContext-DqJPwm_c.d.ts → LineageViewContext-DPVC8ak8.d.ts} +1 -1
- package/dist/{agGridStyles-L5J6VVIU.css → agGridStyles-VYALGSJU.css} +4 -3
- package/dist/api.d.mts +6 -5
- package/dist/api.d.ts +6 -5
- package/dist/api.js +13 -12
- package/dist/api.js.map +1 -1
- package/dist/api.mjs +13 -12
- package/dist/api.mjs.map +1 -1
- package/dist/components.d.mts +162 -78
- package/dist/components.d.ts +162 -78
- package/dist/components.js +2140 -1403
- package/dist/components.js.map +1 -1
- package/dist/components.mjs +1875 -1155
- package/dist/components.mjs.map +1 -1
- package/dist/hooks.d.mts +23 -3
- package/dist/hooks.d.ts +23 -3
- package/dist/hooks.js +742 -538
- package/dist/hooks.js.map +1 -1
- package/dist/hooks.mjs +587 -383
- package/dist/hooks.mjs.map +1 -1
- package/dist/index.d.mts +6 -5
- package/dist/index.d.ts +6 -5
- package/dist/index.js +2196 -1491
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1871 -1183
- package/dist/index.mjs.map +1 -1
- package/dist/{lineagecheck-BIlm5vq1.d.ts → lineagecheck-BQaKAQzn.d.mts} +3 -3
- package/dist/{lineagecheck-BIlm5vq1.d.mts → lineagecheck-BQaKAQzn.d.ts} +3 -3
- package/dist/{style-LYNBK7ND.css → style-466WWZLM.css} +36 -8
- package/dist/styles-JV3V5MVO.css +42 -0
- package/dist/{styles-PJUYW64Y.css → styles-QUPOR3LM.css} +7 -2
- package/dist/types.d.mts +2 -2
- package/dist/types.d.ts +2 -2
- package/package.json +5 -5
- package/dist/styles-VXS6KNFS.css +0 -9
package/dist/api.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../recce-source/js/src/lib/const.ts","../recce-source/js/src/lib/api/axiosClient.ts","../recce-source/js/src/lib/api/types.ts","../recce-source/js/src/lib/api/runs.ts","../recce-source/js/src/lib/api/adhocQuery.ts","../recce-source/js/src/lib/api/cacheKeys.ts","../recce-source/js/src/lib/api/checks.ts","../recce-source/js/src/lib/api/cll.ts","../recce-source/js/src/lib/api/connectToCloud.ts","../recce-source/js/src/lib/api/flag.ts","../recce-source/js/src/lib/api/info.ts","../recce-source/js/src/lib/api/lineagecheck.ts","../recce-source/js/src/lib/api/rowcount.ts","../recce-source/js/src/lib/api/models.ts","../recce-source/js/src/lib/api/profile.ts","../recce-source/js/src/lib/api/schemacheck.ts","../recce-source/js/src/lib/api/select.ts","../recce-source/js/src/lib/api/state.ts","../recce-source/js/src/lib/api/user.ts","../recce-source/js/src/lib/api/valuediff.ts","../recce-source/js/src/lib/api/version.ts","../recce-source/js/src/lib/api/localStorageKeys.ts","../recce-source/js/src/lib/api/sessionStorageKeys.ts"],"names":["axios","version","latestVersion","prefix"],"mappings":"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","file":"api.mjs","sourcesContent":["let apiUrl = process.env.NEXT_PUBLIC_API_URL;\napiUrl ??= typeof window !== \"undefined\" ? window.location.origin : \"\";\n\nexport const PUBLIC_API_URL = apiUrl;\n\nlet cloudWebUrl = process.env.NEXT_PUBLIC_CLOUD_WEB_URL;\ncloudWebUrl ??= \"https://cloud.datarecce.io\";\n\nexport const PUBLIC_CLOUD_WEB_URL = cloudWebUrl;\n","import { QueryClient } from \"@tanstack/react-query\";\nimport axios from \"axios\";\nimport { PUBLIC_API_URL } from \"@/lib/const\";\n\nexport const axiosClient = axios.create({\n baseURL: PUBLIC_API_URL,\n});\n\nexport const reactQueryClient = new QueryClient();\n","// ============================================================================\n// Base Types\n// ============================================================================\n\nexport type AxiosQueryParams = Record<\n string,\n string | string[] | number | number[] | undefined\n>;\n\nexport type RowDataTypes = number | string | boolean | null | undefined;\nexport type RowData = RowDataTypes[];\n\nexport type RowObjectType = Record<string, RowDataTypes> & {\n __status: \"added\" | \"removed\" | \"modified\" | undefined;\n _index?: number;\n};\n\nexport type ColumnType =\n | \"number\"\n | \"integer\"\n | \"text\"\n | \"boolean\"\n | \"date\"\n | \"datetime\"\n | \"timedelta\"\n | \"unknown\";\n\nexport type ColumnRenderMode = \"raw\" | \"percent\" | \"delta\" | 2;\nexport interface DataFrame {\n columns: {\n key: string;\n name: string;\n type: ColumnType;\n }[];\n data: RowData[];\n limit?: number;\n more?: boolean;\n}\n\n// ============================================================================\n// Run Types - Strict enum without string union\n// ============================================================================\n\n// ============================================================================\n// Inline Param Definitions (defined here to avoid circular dependencies)\n// ============================================================================\n\n// Import types that are defined in other files\nimport { RunType } from \"@/components/run/registry\";\nimport type {\n QueryDiffParams,\n QueryDiffResult,\n QueryResult,\n QueryRunParams,\n} from \"./adhocQuery\";\nimport type { LineageDiffResult } from \"./info\";\nimport type {\n HistogramDiffParams,\n HistogramDiffResult,\n ProfileDiffParams,\n ProfileDiffResult,\n TopKDiffParams,\n TopKDiffResult,\n} from \"./profile\";\nimport type {\n RowCountDiffParams,\n RowCountDiffResult,\n RowCountParams,\n RowCountResult,\n} from \"./rowcount\";\nimport type {\n ValueDiffDetailParams,\n ValueDiffDetailResult,\n ValueDiffParams,\n ValueDiffResult,\n} from \"./valuediff\";\n\n// Define params that don't have their own files yet\nexport interface SchemaDiffParams {\n node_id?: string | string[];\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\nexport interface LineageDiffParams {\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\n// ============================================================================\n// Run - Discriminated Union Type\n// ============================================================================\n\nexport type RunParamTypes =\n | QueryRunParams\n | QueryDiffParams\n | ValueDiffParams\n | SchemaDiffParams\n | ProfileDiffParams\n | RowCountParams\n | RowCountDiffParams\n | LineageDiffParams\n | TopKDiffParams\n | HistogramDiffParams\n | undefined;\n\ninterface BaseRun {\n type: RunType;\n run_id: string;\n run_at: string;\n name?: string;\n check_id?: string;\n progress?: {\n message?: string;\n percentage?: number;\n };\n error?: string;\n status?: \"finished\" | \"failed\" | \"cancelled\" | \"running\";\n}\n\nexport type Run =\n | (BaseRun & {\n type: \"simple\";\n params?: undefined;\n result?: undefined;\n })\n | (BaseRun & {\n type: \"sandbox\";\n params?: undefined;\n result?: undefined;\n })\n | (BaseRun & {\n type: \"query\";\n params?: QueryRunParams;\n result?: QueryResult;\n })\n | (BaseRun & {\n type: \"query_base\";\n params?: QueryRunParams;\n result?: QueryResult;\n })\n | (BaseRun & {\n type: \"query_diff\";\n params?: QueryDiffParams;\n result?: QueryDiffResult;\n })\n | (BaseRun & {\n type: \"value_diff\";\n params?: ValueDiffParams;\n result?: ValueDiffResult;\n })\n | (BaseRun & {\n type: \"value_diff_detail\";\n params?: ValueDiffDetailParams;\n result?: ValueDiffDetailResult;\n })\n | (BaseRun & {\n type: \"schema_diff\";\n params?: SchemaDiffParams;\n result?: undefined;\n })\n | (BaseRun & {\n type: \"profile\";\n params?: ProfileDiffParams;\n result?: ProfileDiffResult;\n })\n | (BaseRun & {\n type: \"profile_diff\";\n params?: ProfileDiffParams;\n result?: ProfileDiffResult;\n })\n | (BaseRun & {\n type: \"row_count\";\n params?: RowCountParams;\n result?: RowCountResult;\n })\n | (BaseRun & {\n type: \"row_count_diff\";\n params?: RowCountDiffParams;\n result?: RowCountDiffResult;\n })\n | (BaseRun & {\n type: \"lineage_diff\";\n params?: LineageDiffParams;\n result?: LineageDiffResult;\n })\n | (BaseRun & {\n type: \"top_k_diff\";\n params?: TopKDiffParams;\n result?: TopKDiffResult;\n })\n | (BaseRun & {\n type: \"histogram_diff\";\n params?: HistogramDiffParams;\n result?: HistogramDiffResult;\n });\n\n// ============================================================================\n// Type Guards\n// ============================================================================\n\nexport function isSimpleRun(run: Run): run is Extract<Run, { type: \"simple\" }> {\n return run.type === \"simple\";\n}\n\nexport function isQueryRun(run: Run): run is Extract<Run, { type: \"query\" }> {\n return run.type === \"query\";\n}\n\nexport function isQueryBaseRun(\n run: Run,\n): run is Extract<Run, { type: \"query_base\" }> {\n return run.type === \"query_base\";\n}\n\nexport function isQueryDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"query_diff\" }> {\n return run.type === \"query_diff\";\n}\n\nexport function isValueDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"value_diff\" }> {\n return run.type === \"value_diff\";\n}\n\nexport function isValueDiffDetailRun(\n run: Run,\n): run is Extract<Run, { type: \"value_diff_detail\" }> {\n return run.type === \"value_diff_detail\";\n}\n\nexport function isSchemaDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"schema_diff\" }> {\n return run.type === \"schema_diff\";\n}\n\nexport function isProfileRun(\n run: Run,\n): run is Extract<Run, { type: \"profile\" }> {\n return run.type === \"profile\";\n}\n\nexport function isProfileDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"profile_diff\" }> {\n return run.type === \"profile_diff\";\n}\n\nexport function isRowCountRun(\n run: Run,\n): run is Extract<Run, { type: \"row_count\" }> {\n return run.type === \"row_count\";\n}\n\nexport function isRowCountDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"row_count_diff\" }> {\n return run.type === \"row_count_diff\";\n}\n\nexport function isLineageDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"lineage_diff\" }> {\n return run.type === \"lineage_diff\";\n}\n\nexport function isTopKDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"top_k_diff\" }> {\n return run.type === \"top_k_diff\";\n}\n\nexport function isHistogramDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"histogram_diff\" }> {\n return run.type === \"histogram_diff\";\n}\n","import { AxiosResponse } from \"axios\";\nimport { RunType } from \"@/components/run/registry\";\nimport { axiosClient } from \"./axiosClient\";\nimport { getExperimentTrackingBreakingChangeEnabled } from \"./track\";\nimport { AxiosQueryParams, isQueryRun, Run, RunParamTypes } from \"./types\";\n\nexport interface SubmitRunTrackProps {\n breaking_change_analysis?: boolean;\n source?: \"lineage_model_node\" | \"lineage_column_node\";\n [key: string]: unknown;\n}\n\nexport interface SubmitOptions {\n nowait?: boolean;\n trackProps?: SubmitRunTrackProps;\n}\n\ninterface SubmitRunBody {\n type: RunType;\n params?: Record<string, unknown>;\n nowait?: boolean;\n track_props: SubmitRunTrackProps;\n}\n\nfunction mutateAddKey(run: Run): Run {\n if (run.result == null) {\n // no result, don't do anything\n return run;\n }\n if (isQueryRun(run)) {\n run.result.columns = run.result.columns.map((c) => {\n if (c.key) {\n return c;\n }\n c.key = c.name;\n return c;\n });\n }\n return run;\n}\n\nexport async function submitRun(\n type: RunType,\n params?: RunParamTypes,\n options?: SubmitOptions,\n) {\n const track_props = options?.trackProps ? { ...options.trackProps } : {};\n if (getExperimentTrackingBreakingChangeEnabled()) {\n track_props.breaking_change_analysis = true;\n }\n\n const response = await axiosClient.post<\n SubmitRunBody,\n AxiosResponse<Run | Pick<Run, \"run_id\">>\n >(\"/api/runs\", {\n type,\n params,\n nowait: options?.nowait,\n track_props,\n });\n\n return response.data;\n}\n\nexport async function getRun(runId: string) {\n const response = await axiosClient.get<never, AxiosResponse<Run>>(\n `/api/runs/${runId}`,\n );\n return response.data;\n}\n\ninterface WaitRunBody {\n params: {\n timeout?: number;\n };\n}\n\nexport async function waitRun(runId: string, timeout?: number) {\n const response = await axiosClient.get<WaitRunBody, AxiosResponse<Run>>(\n `/api/runs/${runId}/wait`,\n {\n params: {\n timeout,\n },\n },\n );\n\n return mutateAddKey(response.data);\n}\n\nexport async function cancelRun(runId: string) {\n return await axiosClient.post<never, AxiosResponse<never>>(\n `/api/runs/${runId}/cancel`,\n );\n}\n\nexport async function submitRunFromCheck(\n checkId: string,\n options?: SubmitOptions,\n) {\n const response = await axiosClient.post<\n { nowait?: boolean },\n AxiosResponse<Run | Pick<Run, \"run_id\">>\n >(`/api/checks/${checkId}/run`, {\n nowait: options?.nowait,\n });\n\n return response.data;\n}\n\ninterface SearchRunsBody {\n type: string;\n params: Record<string, unknown>;\n limit?: number;\n}\n\nexport async function searchRuns(\n type: string,\n params?: AxiosQueryParams,\n limit?: number,\n) {\n const response = await axiosClient.post<SearchRunsBody, AxiosResponse<Run[]>>(\n `/api/runs/search`,\n {\n type,\n params,\n limit,\n },\n );\n\n return response.data;\n}\n\nexport async function listRuns(): Promise<Run[]> {\n const response = await axiosClient.get<never, AxiosResponse<Run[]>>(\n \"/api/runs\",\n );\n return response.data;\n}\n\nexport type RunsAggregated = Record<\n string,\n Record<\n \"row_count_diff\" | \"value_diff\" | \"row_count\",\n {\n run_id: string;\n result: unknown;\n }\n >\n>;\nexport async function aggregateRuns(): Promise<RunsAggregated> {\n // input should be AggregateRunsIn\n const response = await axiosClient.post<\n unknown,\n AxiosResponse<RunsAggregated>\n >(`/api/runs/aggregate`, {});\n\n return response.data;\n}\n","import { SubmitOptions, submitRun } from \"./runs\";\nimport { ColumnRenderMode, DataFrame } from \"./types\";\n\nexport interface QueryParams\n extends QueryRunParams,\n QueryDiffParams,\n QueryPreviewChangeParams {}\n\nexport interface QueryPreviewChangeParams {\n current_model?: string;\n sql_template: string;\n primary_keys?: string[];\n}\n\nexport interface QueryRunParams {\n sql_template: string;\n}\n\nexport interface QueryViewOptions {\n pinned_columns?: string[];\n columnsRenderMode?: Record<string, ColumnRenderMode>;\n}\n\nexport type QueryResult = DataFrame;\n\nexport interface QueryDiffParams {\n sql_template: string;\n base_sql_template?: string;\n primary_keys?: string[];\n}\n\nexport interface QueryDiffResult {\n base?: DataFrame;\n current?: DataFrame;\n diff?: DataFrame;\n}\n\nexport interface QueryDiffViewOptions {\n changed_only?: boolean;\n primary_keys?: string[];\n pinned_columns?: string[];\n display_mode?: \"inline\" | \"side_by_side\";\n columnsRenderMode?: Record<string, ColumnRenderMode>;\n}\n\nexport async function submitQuery(\n params: QueryRunParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"query\", params, options);\n}\n\nexport async function submitQueryBase(\n params: QueryRunParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"query_base\", params, options);\n}\n\nexport async function submitQueryDiff(\n params: QueryDiffParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"query_diff\", params, options);\n}\n","export const cacheKeys = {\n rowCount: (model: string) => [\"row_count\", model],\n lineage: () => [\"lineage\"],\n checks: () => [\"checks\", \"list\"],\n check: (checkId: string) => [\"checks\", checkId],\n checkEvents: (checkId: string) => [\"checks\", checkId, \"events\"],\n runs: () => [\"runs\"],\n run: (runId: string) => [\"runs\", runId],\n runsAggregated: () => [\"runs_aggregated\"],\n flag: () => [\"flag\"],\n instanceInfo: () => [\"instance_info\"],\n user: () => [\"user\"],\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { AxiosResponse } from \"axios\";\nimport { RunType } from \"@/components/run/registry\";\nimport { axiosClient } from \"./axiosClient\";\nimport { cacheKeys } from \"./cacheKeys\";\nimport { getExperimentTrackingBreakingChangeEnabled } from \"./track\";\nimport { Run, RunParamTypes } from \"./types\";\n\nexport interface Check<PT = unknown, VO = unknown> {\n check_id: string;\n name: string;\n description?: string;\n type: RunType;\n params?: PT;\n view_options?: VO;\n is_checked?: boolean;\n is_preset?: boolean;\n last_run?: Run;\n}\n\nexport interface CreateCheckBody {\n name?: string;\n description?: string;\n run_id?: string;\n type?: RunType;\n params?: Record<string, string | boolean>;\n view_options?: Record<string, string | boolean>;\n track_props?: Record<string, string | boolean>;\n}\n\nexport async function createSimpleCheck(): Promise<Check> {\n const response = await axiosClient.post<\n CreateCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"simple\",\n });\n return response.data;\n}\n\nexport async function createCheckByRun(\n runId: string,\n viewOptions?: Record<string, unknown>,\n): Promise<Check> {\n const track_props = getExperimentTrackingBreakingChangeEnabled()\n ? { breaking_change_analysis: true }\n : {};\n const response = await axiosClient.post<\n CreateCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n run_id: runId,\n view_options: viewOptions,\n track_props,\n });\n return response.data;\n}\n\nexport async function listChecks(): Promise<Check[]> {\n return (await axiosClient.get<never, AxiosResponse<Check[]>>(\"/api/checks\"))\n .data;\n}\n\nexport function useChecks(enabled: boolean) {\n return useQuery({\n queryKey: cacheKeys.checks(),\n queryFn: listChecks,\n enabled,\n });\n}\n\nexport async function getCheck(checkId: string): Promise<Check<RunParamTypes>> {\n const response = await axiosClient.get<\n never,\n AxiosResponse<Check<RunParamTypes>>\n >(`/api/checks/${checkId}`);\n return response.data;\n}\n\nexport async function updateCheck(\n checkId: string,\n payload: Partial<Check>,\n): Promise<Check> {\n const response = await axiosClient.patch<\n Partial<Check>,\n AxiosResponse<Check>\n >(`/api/checks/${checkId}`, payload);\n return response.data;\n}\n\nexport async function deleteCheck(checkId: string) {\n const response = await axiosClient.delete<\n never,\n AxiosResponse<Pick<Check, \"check_id\">>\n >(`/api/checks/${checkId}`);\n return response.data;\n}\n\nexport async function reorderChecks(order: {\n source: number;\n destination: number;\n}) {\n return await axiosClient.post<\n { source: number; destination: number },\n AxiosResponse<unknown>\n >(\"/api/checks/reorder\", order);\n}\n\nexport async function markAsPresetCheck(checkId: string): Promise<void> {\n await axiosClient.post(`/api/checks/${checkId}/mark-as-preset`);\n}\n","import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { NodeColumnData } from \"./info\";\n\nexport interface CllInput {\n node_id?: string;\n column?: string;\n change_analysis?: boolean;\n no_cll?: boolean;\n no_upstream?: boolean;\n no_downstream?: boolean;\n}\n\nexport interface ImpactRadiusParams {\n node_id: string;\n}\n\nexport interface CllNodeData {\n id: string;\n name: string;\n source_name: string;\n resource_type: string;\n raw_code?: string;\n change_status?: \"added\" | \"removed\" | \"modified\";\n change_category?:\n | \"breaking\"\n | \"non_breaking\"\n | \"partial_breaking\"\n | \"unknown\";\n impacted?: boolean;\n columns?: Record<string, NodeColumnData>;\n}\n\nexport interface ColumnLineageData {\n current: {\n nodes: Record<string, CllNodeData>;\n columns: Record<string, NodeColumnData>;\n parent_map: Record<string, Set<string>>;\n child_map: Record<string, Set<string>>;\n };\n}\n\nexport async function getCll(input: CllInput): Promise<ColumnLineageData> {\n const response = await axiosClient.post<\n CllInput,\n AxiosResponse<ColumnLineageData>\n >(\"/api/cll\", input);\n\n return response.data;\n}\n","import { axiosClient } from \"./axiosClient\";\n\nexport interface ConnectToCloud {\n connection_url: string;\n}\n\nexport async function connectToCloud(): Promise<ConnectToCloud> {\n const data = await axiosClient.post<ConnectToCloud>(\"/api/connect\");\n return data.data;\n}\n","import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface RecceServerFlags {\n single_env_onboarding: boolean;\n show_relaunch_hint: boolean;\n}\n\nexport async function getServerFlag(): Promise<RecceServerFlags> {\n return (\n await axiosClient.get<never, AxiosResponse<RecceServerFlags>>(\"/api/flag\")\n ).data;\n}\n\n// This was used for showing onboarding guide. Check DRC-1320 for more detials\nexport async function markOnboardingCompleted(): Promise<void> {\n try {\n await axiosClient.post<never, AxiosResponse<never>>(\n \"/api/onboarding/completed\",\n );\n } catch (_error) {\n // skip any errors\n }\n}\n\nexport async function markRelaunchHintCompleted(): Promise<void> {\n try {\n await axiosClient.post<never, AxiosResponse<never>>(\n \"/api/relaunch-hint/completed\",\n );\n } catch (_error) {\n // skip any errors\n }\n}\n","import { AxiosError, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\n/**\n * The data from the API\n */\nexport interface NodeColumnData {\n name: string;\n type: string;\n transformation_type?: string;\n change_status?: \"added\" | \"removed\" | \"modified\";\n not_null?: boolean;\n unique?: boolean;\n}\nexport interface NodeData {\n id: string;\n unique_id: string;\n name: string;\n schema?: string;\n checksum?: {\n name: string;\n checksum: string;\n };\n raw_code?: string;\n resource_type?: string;\n package_name?: string;\n columns?: Record<string, NodeColumnData | undefined>;\n primary_key?: string;\n}\n\n// https://docs.getdbt.com/reference/artifacts/dbt-artifacts#common-metadata\ninterface ArtifactMetadata {\n dbt_version: string;\n dbt_schema_version: string;\n generated_at: string;\n adapter_type: string;\n env: Record<string, string>;\n invocation_id: string;\n}\nexport interface ManifestMetadata extends ArtifactMetadata {\n project_id?: string;\n project_name?: string;\n user_id?: string;\n}\nexport interface SQLMeshInfo {\n base_env: string;\n current_env: string;\n}\n\nexport type CatalogMetadata = ArtifactMetadata;\n\nexport interface LineageData {\n metadata: {\n pr_url: string;\n git_branch?: string;\n };\n nodes: Record<string, NodeData>;\n parent_map: Record<string, string[]>;\n manifest_metadata?: ManifestMetadata | null;\n catalog_metadata?: CatalogMetadata | null;\n}\n\nexport interface LineageDataFromMetadata extends Omit<LineageData, \"nodes\"> {\n nodes: Record<string, NodeData | undefined>;\n}\n\nexport type LineageDiffData = Record<\n string,\n {\n change_status: \"added\" | \"removed\" | \"modified\";\n change: {\n category: \"breaking\" | \"non_breaking\" | \"partial_breaking\" | \"unknown\";\n columns: Record<string, \"added\" | \"removed\" | \"modified\"> | null;\n } | null;\n }\n>;\n\ninterface LineageOutput {\n error?: string;\n data?: LineageData;\n}\n\nexport async function getLineage(base = false): Promise<LineageData> {\n const response = await axiosClient.get<LineageData>(\n `/api/lineage?base=${base}`,\n );\n return response.data;\n}\n\nexport async function getLineageWithError(\n base = false,\n): Promise<LineageOutput> {\n try {\n const data = await getLineage(base);\n return { data };\n } catch (err: unknown) {\n if (err instanceof AxiosError) {\n const data = err.response?.data as Record<string, unknown> | undefined;\n const detail = data?.detail as string | undefined;\n if (detail) {\n return { error: detail };\n } else {\n return { error: err.message };\n }\n } else if (err instanceof Error) {\n return { error: err.message };\n } else {\n return { error: \"An unknown error occurred\" };\n }\n }\n}\n\nexport interface LineageDiffResult {\n base?: LineageData;\n current?: LineageData;\n base_error?: string;\n current_error?: string;\n}\n\nexport async function getLineageDiff(): Promise<LineageDiffResult> {\n const [base, current] = await Promise.all([\n getLineageWithError(true),\n getLineageWithError(false),\n ]);\n\n return {\n base: base.data,\n current: current.data,\n base_error: base.error,\n current_error: current.error,\n };\n}\n\nexport interface stateMetadata {\n schema_version: string;\n recce_version: string;\n generated_at: string;\n}\n\nexport interface gitInfo {\n branch?: string;\n}\n\nexport interface pullRequestInfo {\n id?: string | number;\n title?: string;\n url?: string;\n branch?: string;\n base_branch?: string;\n}\n\nexport interface ServerInfoResult {\n state_metadata: stateMetadata;\n adapter_type: string;\n review_mode: boolean;\n cloud_mode: boolean;\n file_mode: boolean;\n filename?: string;\n git?: gitInfo;\n pull_request?: pullRequestInfo;\n sqlmesh?: SQLMeshInfo;\n lineage: {\n base: LineageData;\n current: LineageData;\n diff: LineageDiffData;\n };\n demo: boolean;\n codespace: boolean;\n support_tasks: Record<string, boolean>;\n}\n\nexport async function getServerInfo(): Promise<ServerInfoResult> {\n return (\n await axiosClient.get<never, AxiosResponse<ServerInfoResult>>(`/api/info`)\n ).data;\n}\n\nexport interface ModelInfoResult {\n model: {\n base: {\n columns?: Record<string, NodeColumnData>;\n primary_key?: string;\n };\n current: {\n columns?: Record<string, NodeColumnData>;\n primary_key?: string;\n };\n };\n}\n\nexport async function getModelInfo(model: string): Promise<ModelInfoResult> {\n return (\n await axiosClient.get<never, AxiosResponse<ModelInfoResult>>(\n `/api/model/${model}`,\n )\n ).data;\n}\n","import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { Check } from \"./checks\";\nimport { CllInput } from \"./cll\";\n\nexport interface LineageDiffViewOptions {\n view_mode?: \"changed_models\" | \"all\";\n node_ids?: string[];\n packages?: string[];\n select?: string;\n exclude?: string;\n column_level_lineage?: CllInput;\n}\n\ninterface CreateLineageDiffCheckBody {\n type: string;\n params: Record<string, string | boolean | number>;\n view_options: LineageDiffViewOptions;\n}\n\nexport async function createLineageDiffCheck(\n viewOptions: LineageDiffViewOptions,\n): Promise<Check> {\n const response = await axiosClient.post<\n CreateLineageDiffCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"lineage_diff\",\n params: {},\n view_options: viewOptions,\n });\n\n return response.data;\n}\n","import { RowCount, RowCountDiff } from \"./models\";\nimport { SubmitOptions, submitRun } from \"./runs\";\nexport interface RowCountParams {\n node_names: string[];\n}\nexport type RowCountResult = Record<string, RowCount>;\nexport interface RowCountDiffParams {\n node_names: string[];\n}\nexport type RowCountDiffResult = Record<string, RowCountDiff>;\nexport async function submitRowCountDiff(\n params: RowCountDiffParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"row_count_diff\", params, options);\n}\n","import { axiosClient } from \"./axiosClient\";\nimport { RowCountDiffResult, submitRowCountDiff } from \"./rowcount\";\nimport { waitRun } from \"./runs\";\n\nexport interface RowCount {\n name?: string;\n curr: number | null;\n}\n\nexport interface RowCountDiff {\n name?: string;\n base: number | null;\n curr: number | null;\n}\n\nexport interface QueryRowCountResult {\n runId: string;\n result: RowCountDiffResult;\n}\n\nexport async function fetchModelRowCount(\n modelName: string,\n): Promise<RowCountDiff> {\n const response = await axiosClient.get<RowCountDiff>(\n `/api/models/${modelName}/row_count`,\n );\n return response.data;\n}\n\nexport async function queryModelRowCount(\n modelName: string,\n): Promise<RowCountDiff> {\n const { result } = await queryRowCount([modelName]);\n return result[modelName];\n}\n\nexport async function queryRowCount(\n modelNames: string[],\n): Promise<QueryRowCountResult> {\n if (modelNames.length === 0) {\n throw new Error(\"No model names provided\");\n }\n\n const { run_id } = await submitRowCountDiff(\n { node_names: modelNames },\n { nowait: true },\n );\n const run = await waitRun(run_id);\n\n return {\n runId: run_id,\n result: run.result as RowCountDiffResult,\n };\n}\n","import { SubmitOptions, submitRun } from \"./runs\";\nimport { ColumnRenderMode, DataFrame } from \"./types\";\n\nexport interface ProfileDiffParams {\n model: string;\n columns?: string[];\n}\n\nexport interface ProfileDiffResult {\n base?: DataFrame;\n current?: DataFrame;\n}\n\nexport interface ProfileDiffViewOptions {\n pinned_columns?: string[];\n display_mode?: \"side_by_side\" | \"inline\";\n columnsRenderMode?: Record<string, ColumnRenderMode>;\n}\n\nexport async function submitProfileDiff(\n params: ProfileDiffParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"profile_diff\", params, options);\n}\n\nexport interface TopKDiffParams {\n model: string;\n column_name: string;\n k: number;\n}\n\nexport interface TopKResult {\n values: (string | number | undefined)[];\n counts: number[];\n valids: number;\n}\n\nexport interface TopKDiffResult {\n base: TopKResult;\n current: TopKResult;\n}\n\nexport interface HistogramDiffParams {\n model: string;\n column_name: string;\n column_type: string;\n}\n\nexport interface HistogramResult {\n counts: number[];\n total: number;\n}\n\nexport interface HistogramDiffResult {\n base: HistogramResult;\n current: HistogramResult;\n min: number;\n max: number;\n bin_edges: number[];\n labels?: string[];\n}\n","import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { Check } from \"./checks\";\n\nexport interface SchemaDiffViewParams {\n node_id?: string | string[];\n select?: string;\n exclude?: string;\n view_mode?: \"all\" | \"changed_models\";\n packages?: string[];\n}\n\ninterface CreateSchemaDiffCheckBody {\n type: string;\n params: SchemaDiffViewParams;\n}\n\nexport async function createSchemaDiffCheck(\n params: SchemaDiffViewParams,\n): Promise<Check> {\n const response = await axiosClient.post<\n CreateSchemaDiffCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"schema_diff\",\n params: params,\n });\n\n return response.data;\n}\n","import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface SelectInput {\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\nexport interface SelectOutput {\n nodes: string[];\n}\n\nexport async function select(input: SelectInput): Promise<SelectOutput> {\n return (\n await axiosClient.post<SelectInput, AxiosResponse<SelectOutput>>(\n `/api/select`,\n input,\n )\n ).data;\n}\n","import { AxiosResponse, isAxiosError } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface SaveAsInput {\n filename: string;\n overwrite?: boolean;\n}\n\nexport interface ImportedState {\n runs: number;\n checks: number;\n}\n\nexport async function saveAs(input: SaveAsInput): Promise<void> {\n return (\n await axiosClient.post<SaveAsInput, AxiosResponse<void>>(\n \"/api/save-as\",\n input,\n )\n ).data;\n}\n\nexport async function rename(input: SaveAsInput): Promise<void> {\n return (\n await axiosClient.post<SaveAsInput, AxiosResponse<void>>(\n \"/api/rename\",\n input,\n )\n ).data;\n}\n\nexport async function exportState(): Promise<string> {\n return (await axiosClient.post<never, AxiosResponse<string>>(\"/api/export\"))\n .data;\n}\n\ninterface ImportStateBody {\n file: File;\n checks_only: \"true\" | \"false\";\n}\n\nexport async function importState(\n file: File,\n checksOnly?: boolean,\n): Promise<ImportedState> {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append(\"checks_only\", (!!checksOnly).toString());\n\n return (\n await axiosClient.post<ImportStateBody, AxiosResponse<ImportedState>>(\n \"/api/import\",\n formData,\n )\n ).data;\n}\n\nexport async function isStateSyncing(): Promise<boolean> {\n const response = await axiosClient.get<never, AxiosResponse<boolean>>(\n \"/api/sync\",\n );\n return response.status === 208;\n}\n\nexport interface SyncStateInput {\n method?: \"overwrite\" | \"revert\" | \"merge\";\n}\nexport interface SyncStateResponse {\n status: \"accepted\" | \"conflict\" | \"syncing\";\n}\n\nexport async function syncState(\n input: SyncStateInput,\n): Promise<SyncStateResponse> {\n try {\n const response = await axiosClient.post<\n SyncStateInput,\n AxiosResponse<SyncStateResponse>\n >(\"/api/sync\", input);\n\n if (response.status === 202) {\n return {\n status: \"accepted\",\n };\n }\n if (response.status === 208) {\n return {\n status: \"syncing\",\n };\n }\n } catch (error) {\n if (isAxiosError(error)) {\n if (error.response?.status === 409) {\n // 409 conflict case\n return { status: \"conflict\" };\n }\n }\n }\n throw new Error(\"Failed to sync state\");\n}\n\nexport interface ShareStateResponse {\n status: string;\n message: string;\n share_url?: string;\n}\n\nexport async function shareState(): Promise<ShareStateResponse> {\n return (\n await axiosClient.post<never, AxiosResponse<ShareStateResponse>>(\n \"/api/share\",\n )\n ).data;\n}\n","import axios, { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface User {\n id: string;\n login: string;\n login_type: string;\n email: string;\n onboarding_state: string;\n}\n\ninterface GitHubUser {\n login: string;\n id: number;\n avatar_url: string;\n}\n\nexport async function fetchUser(): Promise<User> {\n try {\n const response = await axiosClient.get<never, AxiosResponse<User>>(\n \"/api/users\",\n );\n return response.data;\n } catch (error) {\n console.error(\"Error fetching user data:\", error);\n throw error;\n }\n}\n\nexport async function fetchGitHubAvatar(\n userId: string,\n): Promise<string | null> {\n try {\n const response = await axios.get<GitHubUser>(\n `https://api.github.com/user/${userId}`,\n );\n return response.data.avatar_url;\n } catch (error) {\n console.warn(\"Failed to fetch GitHub avatar:\", error);\n return null;\n }\n}\n","import { SubmitOptions, submitRun } from \"./runs\";\nimport { ColumnRenderMode, DataFrame } from \"./types\";\n\nexport interface ValueDiffResult {\n summary: {\n total: number;\n added: number;\n removed: number;\n };\n data: DataFrame;\n}\n\nexport interface ValueDiffParams {\n model: string;\n primary_key: string | string[];\n columns?: string[];\n}\n\nexport async function submitValueDiff(\n params: ValueDiffParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"value_diff\", params, options);\n}\n\nexport type ValueDiffDetailResult = DataFrame;\n\nexport type ValueDiffDetailParams = ValueDiffParams;\n\nexport interface ValueDiffDetailViewOptions {\n changed_only?: boolean;\n pinned_columns?: string[];\n display_mode?: \"inline\" | \"side_by_side\";\n columnsRenderMode?: Record<string, ColumnRenderMode>;\n}\n\nexport async function submitValueDiffDetail(\n params: ValueDiffParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"value_diff_detail\", params, options);\n}\n","import { AxiosResponse } from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { axiosClient } from \"./axiosClient\";\n\ninterface VersionResponse {\n version: string;\n latestVersion: string;\n}\n\nexport function useVersionNumber() {\n const [version, setVersion] = useState(\"\");\n const [latestVersion, setLatestVersion] = useState(\"\");\n\n useEffect(() => {\n async function fetchVersion() {\n try {\n const { version, latestVersion } = (\n await axiosClient.get<never, AxiosResponse<VersionResponse>>(\n \"/api/version\",\n )\n ).data;\n\n setVersion(version);\n setLatestVersion(latestVersion);\n } catch (error) {\n console.error(\"Error fetching version number:\", error);\n }\n }\n void fetchVersion();\n }, []);\n\n return { version, latestVersion };\n}\n","const prefix = \"recce-\";\n\nexport const localStorageKeys = {\n bypassSaveOverwrite: `${prefix}-bypass-save-overwrite`,\n previewChangeFeedbackID: `${prefix}-preview-change-feedback`,\n prepareEnvGuideID: `${prefix}-prepare-env`,\n};\n","const prefix = \"recce\";\n\nexport const sessionStorageKeys = {\n recommendationIgnored: `${prefix}-recommendation-ignored`,\n recommendationShowed: `${prefix}-recommendation-showed`,\n prevRefreshTimeStamp: `${prefix}-prev-refresh-timestamp`,\n lineageNotificationDismissed: `${prefix}-lineage-notification-dismissed`,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../recce-source/js/src/lib/const.ts","../recce-source/js/src/lib/api/axiosClient.ts","../recce-source/js/src/lib/api/types.ts","../recce-source/js/src/lib/api/runs.ts","../recce-source/js/src/lib/api/adhocQuery.ts","../recce-source/js/src/lib/api/cacheKeys.ts","../recce-source/js/src/lib/api/checks.ts","../recce-source/js/src/lib/api/cll.ts","../recce-source/js/src/lib/api/connectToCloud.ts","../recce-source/js/src/lib/api/flag.ts","../recce-source/js/src/lib/api/info.ts","../recce-source/js/src/lib/api/lineagecheck.ts","../recce-source/js/src/lib/api/rowcount.ts","../recce-source/js/src/lib/api/models.ts","../recce-source/js/src/lib/api/profile.ts","../recce-source/js/src/lib/api/schemacheck.ts","../recce-source/js/src/lib/api/select.ts","../recce-source/js/src/lib/api/state.ts","../recce-source/js/src/lib/api/user.ts","../recce-source/js/src/lib/api/valuediff.ts","../recce-source/js/src/lib/api/version.ts","../recce-source/js/src/lib/api/localStorageKeys.ts","../recce-source/js/src/lib/api/sessionStorageKeys.ts"],"names":["axios","version","latestVersion","prefix"],"mappings":"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","file":"api.mjs","sourcesContent":["let apiUrl = process.env.NEXT_PUBLIC_API_URL;\napiUrl ??= typeof window !== \"undefined\" ? window.location.origin : \"\";\n\nexport const PUBLIC_API_URL = apiUrl;\n\nlet cloudWebUrl = process.env.NEXT_PUBLIC_CLOUD_WEB_URL;\ncloudWebUrl ??= \"https://cloud.datarecce.io\";\n\nexport const PUBLIC_CLOUD_WEB_URL = cloudWebUrl;\n","import { QueryClient } from \"@tanstack/react-query\";\nimport axios from \"axios\";\nimport { PUBLIC_API_URL } from \"@/lib/const\";\n\nexport const axiosClient = axios.create({\n baseURL: PUBLIC_API_URL,\n});\n\nexport const reactQueryClient = new QueryClient();\n","// ============================================================================\n// Base Types\n// ============================================================================\n\nexport type AxiosQueryParams = Record<\n string,\n string | string[] | number | number[] | undefined\n>;\n\nexport type RowDataTypes = number | string | boolean | null | undefined;\nexport type RowData = RowDataTypes[];\n\nexport type RowObjectType = Record<string, RowDataTypes> & {\n __status: \"added\" | \"removed\" | \"modified\" | undefined;\n _index?: number;\n};\n\nexport type ColumnType =\n | \"number\"\n | \"integer\"\n | \"text\"\n | \"boolean\"\n | \"date\"\n | \"datetime\"\n | \"timedelta\"\n | \"unknown\";\n\nexport type ColumnRenderMode = \"raw\" | \"percent\" | \"delta\" | 2;\nexport interface DataFrame {\n columns: {\n key: string;\n name: string;\n type: ColumnType;\n }[];\n data: RowData[];\n limit?: number;\n more?: boolean;\n}\n\n// ============================================================================\n// Run Types - Strict enum without string union\n// ============================================================================\n\n// ============================================================================\n// Inline Param Definitions (defined here to avoid circular dependencies)\n// ============================================================================\n\n// Import types that are defined in other files\nimport { RunType } from \"@/components/run/registry\";\nimport type {\n QueryDiffParams,\n QueryDiffResult,\n QueryResult,\n QueryRunParams,\n} from \"./adhocQuery\";\nimport type { LineageDiffResult } from \"./info\";\nimport type {\n HistogramDiffParams,\n HistogramDiffResult,\n ProfileDiffParams,\n ProfileDiffResult,\n TopKDiffParams,\n TopKDiffResult,\n} from \"./profile\";\nimport type {\n RowCountDiffParams,\n RowCountDiffResult,\n RowCountParams,\n RowCountResult,\n} from \"./rowcount\";\nimport type {\n ValueDiffDetailParams,\n ValueDiffDetailResult,\n ValueDiffParams,\n ValueDiffResult,\n} from \"./valuediff\";\n\n// Define params that don't have their own files yet\nexport interface SchemaDiffParams {\n node_id?: string | string[];\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\nexport interface LineageDiffParams {\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\n// ============================================================================\n// Run - Discriminated Union Type\n// ============================================================================\n\nexport type RunParamTypes =\n | QueryRunParams\n | QueryDiffParams\n | ValueDiffParams\n | SchemaDiffParams\n | ProfileDiffParams\n | RowCountParams\n | RowCountDiffParams\n | LineageDiffParams\n | TopKDiffParams\n | HistogramDiffParams\n | undefined;\n\ninterface BaseRun {\n type: RunType;\n run_id: string;\n run_at: string;\n name?: string;\n check_id?: string;\n progress?: {\n message?: string;\n percentage?: number;\n };\n error?: string;\n status?: \"finished\" | \"failed\" | \"cancelled\" | \"running\";\n}\n\nexport type Run =\n | (BaseRun & {\n type: \"simple\";\n params?: undefined;\n result?: undefined;\n })\n | (BaseRun & {\n type: \"sandbox\";\n params?: undefined;\n result?: undefined;\n })\n | (BaseRun & {\n type: \"query\";\n params?: QueryRunParams;\n result?: QueryResult;\n })\n | (BaseRun & {\n type: \"query_base\";\n params?: QueryRunParams;\n result?: QueryResult;\n })\n | (BaseRun & {\n type: \"query_diff\";\n params?: QueryDiffParams;\n result?: QueryDiffResult;\n })\n | (BaseRun & {\n type: \"value_diff\";\n params?: ValueDiffParams;\n result?: ValueDiffResult;\n })\n | (BaseRun & {\n type: \"value_diff_detail\";\n params?: ValueDiffDetailParams;\n result?: ValueDiffDetailResult;\n })\n | (BaseRun & {\n type: \"schema_diff\";\n params?: SchemaDiffParams;\n result?: undefined;\n })\n | (BaseRun & {\n type: \"profile\";\n params?: ProfileDiffParams;\n result?: ProfileDiffResult;\n })\n | (BaseRun & {\n type: \"profile_diff\";\n params?: ProfileDiffParams;\n result?: ProfileDiffResult;\n })\n | (BaseRun & {\n type: \"row_count\";\n params?: RowCountParams;\n result?: RowCountResult;\n })\n | (BaseRun & {\n type: \"row_count_diff\";\n params?: RowCountDiffParams;\n result?: RowCountDiffResult;\n })\n | (BaseRun & {\n type: \"lineage_diff\";\n params?: LineageDiffParams;\n result?: LineageDiffResult;\n })\n | (BaseRun & {\n type: \"top_k_diff\";\n params?: TopKDiffParams;\n result?: TopKDiffResult;\n })\n | (BaseRun & {\n type: \"histogram_diff\";\n params?: HistogramDiffParams;\n result?: HistogramDiffResult;\n });\n\n// ============================================================================\n// Type Guards\n// ============================================================================\n\nexport function isSimpleRun(run: Run): run is Extract<Run, { type: \"simple\" }> {\n return run.type === \"simple\";\n}\n\nexport function isQueryRun(run: Run): run is Extract<Run, { type: \"query\" }> {\n return run.type === \"query\";\n}\n\nexport function isQueryBaseRun(\n run: Run,\n): run is Extract<Run, { type: \"query_base\" }> {\n return run.type === \"query_base\";\n}\n\nexport function isQueryDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"query_diff\" }> {\n return run.type === \"query_diff\";\n}\n\nexport function isValueDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"value_diff\" }> {\n return run.type === \"value_diff\";\n}\n\nexport function isValueDiffDetailRun(\n run: Run,\n): run is Extract<Run, { type: \"value_diff_detail\" }> {\n return run.type === \"value_diff_detail\";\n}\n\nexport function isSchemaDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"schema_diff\" }> {\n return run.type === \"schema_diff\";\n}\n\nexport function isProfileRun(\n run: Run,\n): run is Extract<Run, { type: \"profile\" }> {\n return run.type === \"profile\";\n}\n\nexport function isProfileDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"profile_diff\" }> {\n return run.type === \"profile_diff\";\n}\n\nexport function isRowCountRun(\n run: Run,\n): run is Extract<Run, { type: \"row_count\" }> {\n return run.type === \"row_count\";\n}\n\nexport function isRowCountDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"row_count_diff\" }> {\n return run.type === \"row_count_diff\";\n}\n\nexport function isLineageDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"lineage_diff\" }> {\n return run.type === \"lineage_diff\";\n}\n\nexport function isTopKDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"top_k_diff\" }> {\n return run.type === \"top_k_diff\";\n}\n\nexport function isHistogramDiffRun(\n run: Run,\n): run is Extract<Run, { type: \"histogram_diff\" }> {\n return run.type === \"histogram_diff\";\n}\n","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { RunType } from \"@/components/run/registry\";\nimport { axiosClient } from \"./axiosClient\";\nimport { getExperimentTrackingBreakingChangeEnabled } from \"./track\";\nimport { AxiosQueryParams, isQueryRun, Run, RunParamTypes } from \"./types\";\n\nexport interface SubmitRunTrackProps {\n breaking_change_analysis?: boolean;\n source?: \"lineage_model_node\" | \"lineage_column_node\";\n [key: string]: unknown;\n}\n\nexport interface SubmitOptions {\n nowait?: boolean;\n trackProps?: SubmitRunTrackProps;\n}\n\ninterface SubmitRunBody {\n type: RunType;\n params?: Record<string, unknown>;\n nowait?: boolean;\n track_props: SubmitRunTrackProps;\n}\n\nfunction mutateAddKey(run: Run): Run {\n if (run.result == null) {\n // no result, don't do anything\n return run;\n }\n if (isQueryRun(run)) {\n run.result.columns = run.result.columns.map((c) => {\n if (c.key) {\n return c;\n }\n c.key = c.name;\n return c;\n });\n }\n return run;\n}\n\nexport async function submitRun(\n type: RunType,\n params?: RunParamTypes,\n options?: SubmitOptions,\n) {\n const track_props = options?.trackProps ? { ...options.trackProps } : {};\n if (getExperimentTrackingBreakingChangeEnabled()) {\n track_props.breaking_change_analysis = true;\n }\n\n const response = await axiosClient.post<\n SubmitRunBody,\n AxiosResponse<Run | Pick<Run, \"run_id\">>\n >(\"/api/runs\", {\n type,\n params,\n nowait: options?.nowait,\n track_props,\n });\n\n return response.data;\n}\n\nexport async function getRun(runId: string) {\n const response = await axiosClient.get<never, AxiosResponse<Run>>(\n `/api/runs/${runId}`,\n );\n return response.data;\n}\n\ninterface WaitRunBody {\n params: {\n timeout?: number;\n };\n}\n\nexport async function waitRun(runId: string, timeout?: number) {\n const response = await axiosClient.get<WaitRunBody, AxiosResponse<Run>>(\n `/api/runs/${runId}/wait`,\n {\n params: {\n timeout,\n },\n },\n );\n\n return mutateAddKey(response.data);\n}\n\nexport async function cancelRun(runId: string) {\n return await axiosClient.post<never, AxiosResponse<never>>(\n `/api/runs/${runId}/cancel`,\n );\n}\n\nexport async function submitRunFromCheck(\n checkId: string,\n options?: SubmitOptions,\n) {\n const response = await axiosClient.post<\n { nowait?: boolean },\n AxiosResponse<Run | Pick<Run, \"run_id\">>\n >(`/api/checks/${checkId}/run`, {\n nowait: options?.nowait,\n });\n\n return response.data;\n}\n\ninterface SearchRunsBody {\n type: string;\n params: Record<string, unknown>;\n limit?: number;\n}\n\nexport async function searchRuns(\n type: string,\n params?: AxiosQueryParams,\n limit?: number,\n) {\n const response = await axiosClient.post<SearchRunsBody, AxiosResponse<Run[]>>(\n `/api/runs/search`,\n {\n type,\n params,\n limit,\n },\n );\n\n return response.data;\n}\n\nexport async function listRuns(): Promise<Run[]> {\n const response = await axiosClient.get<never, AxiosResponse<Run[]>>(\n \"/api/runs\",\n );\n return response.data;\n}\n\nexport type RunsAggregated = Record<\n string,\n Record<\n \"row_count_diff\" | \"value_diff\" | \"row_count\",\n {\n run_id: string;\n result: unknown;\n }\n >\n>;\nexport async function aggregateRuns(\n client: AxiosInstance = axiosClient,\n): Promise<RunsAggregated> {\n // input should be AggregateRunsIn\n const response = await client.post<unknown, AxiosResponse<RunsAggregated>>(\n `/api/runs/aggregate`,\n {},\n );\n\n return response.data;\n}\n","import { SubmitOptions, submitRun } from \"./runs\";\nimport { ColumnRenderMode, DataFrame } from \"./types\";\n\nexport interface QueryParams\n extends QueryRunParams,\n QueryDiffParams,\n QueryPreviewChangeParams {}\n\nexport interface QueryPreviewChangeParams {\n current_model?: string;\n sql_template: string;\n primary_keys?: string[];\n}\n\nexport interface QueryRunParams {\n sql_template: string;\n}\n\nexport interface QueryViewOptions {\n pinned_columns?: string[];\n columnsRenderMode?: Record<string, ColumnRenderMode>;\n}\n\nexport type QueryResult = DataFrame;\n\nexport interface QueryDiffParams {\n sql_template: string;\n base_sql_template?: string;\n primary_keys?: string[];\n}\n\nexport interface QueryDiffResult {\n base?: DataFrame;\n current?: DataFrame;\n diff?: DataFrame;\n}\n\nexport interface QueryDiffViewOptions {\n changed_only?: boolean;\n primary_keys?: string[];\n pinned_columns?: string[];\n display_mode?: \"inline\" | \"side_by_side\";\n columnsRenderMode?: Record<string, ColumnRenderMode>;\n}\n\nexport async function submitQuery(\n params: QueryRunParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"query\", params, options);\n}\n\nexport async function submitQueryBase(\n params: QueryRunParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"query_base\", params, options);\n}\n\nexport async function submitQueryDiff(\n params: QueryDiffParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"query_diff\", params, options);\n}\n","export const cacheKeys = {\n rowCount: (model: string) => [\"row_count\", model],\n lineage: () => [\"lineage\"],\n checks: () => [\"checks\", \"list\"],\n check: (checkId: string) => [\"checks\", checkId],\n checkEvents: (checkId: string) => [\"checks\", checkId, \"events\"],\n runs: () => [\"runs\"],\n run: (runId: string) => [\"runs\", runId],\n runsAggregated: () => [\"runs_aggregated\"],\n flag: () => [\"flag\"],\n instanceInfo: () => [\"instance_info\"],\n user: () => [\"user\"],\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { AxiosResponse } from \"axios\";\nimport { RunType } from \"@/components/run/registry\";\nimport { axiosClient } from \"./axiosClient\";\nimport { cacheKeys } from \"./cacheKeys\";\nimport { getExperimentTrackingBreakingChangeEnabled } from \"./track\";\nimport { Run, RunParamTypes } from \"./types\";\n\nexport interface Check<PT = unknown, VO = unknown> {\n check_id: string;\n name: string;\n description?: string;\n type: RunType;\n params?: PT;\n view_options?: VO;\n is_checked?: boolean;\n is_preset?: boolean;\n last_run?: Run;\n}\n\nexport interface CreateCheckBody {\n name?: string;\n description?: string;\n run_id?: string;\n type?: RunType;\n params?: Record<string, string | boolean>;\n view_options?: Record<string, string | boolean>;\n track_props?: Record<string, string | boolean>;\n}\n\nexport async function createSimpleCheck(): Promise<Check> {\n const response = await axiosClient.post<\n CreateCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"simple\",\n });\n return response.data;\n}\n\nexport async function createCheckByRun(\n runId: string,\n viewOptions?: Record<string, unknown>,\n): Promise<Check> {\n const track_props = getExperimentTrackingBreakingChangeEnabled()\n ? { breaking_change_analysis: true }\n : {};\n const response = await axiosClient.post<\n CreateCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n run_id: runId,\n view_options: viewOptions,\n track_props,\n });\n return response.data;\n}\n\nexport async function listChecks(): Promise<Check[]> {\n return (await axiosClient.get<never, AxiosResponse<Check[]>>(\"/api/checks\"))\n .data;\n}\n\nexport function useChecks(enabled: boolean) {\n return useQuery({\n queryKey: cacheKeys.checks(),\n queryFn: listChecks,\n enabled,\n });\n}\n\nexport async function getCheck(checkId: string): Promise<Check<RunParamTypes>> {\n const response = await axiosClient.get<\n never,\n AxiosResponse<Check<RunParamTypes>>\n >(`/api/checks/${checkId}`);\n return response.data;\n}\n\nexport async function updateCheck(\n checkId: string,\n payload: Partial<Check>,\n): Promise<Check> {\n const response = await axiosClient.patch<\n Partial<Check>,\n AxiosResponse<Check>\n >(`/api/checks/${checkId}`, payload);\n return response.data;\n}\n\nexport async function deleteCheck(checkId: string) {\n const response = await axiosClient.delete<\n never,\n AxiosResponse<Pick<Check, \"check_id\">>\n >(`/api/checks/${checkId}`);\n return response.data;\n}\n\nexport async function reorderChecks(order: {\n source: number;\n destination: number;\n}) {\n return await axiosClient.post<\n { source: number; destination: number },\n AxiosResponse<unknown>\n >(\"/api/checks/reorder\", order);\n}\n\nexport async function markAsPresetCheck(checkId: string): Promise<void> {\n await axiosClient.post(`/api/checks/${checkId}/mark-as-preset`);\n}\n","import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { NodeColumnData } from \"./info\";\n\nexport interface CllInput {\n node_id?: string;\n column?: string;\n change_analysis?: boolean;\n no_cll?: boolean;\n no_upstream?: boolean;\n no_downstream?: boolean;\n}\n\nexport interface ImpactRadiusParams {\n node_id: string;\n}\n\nexport interface CllNodeData {\n id: string;\n name: string;\n source_name: string;\n resource_type: string;\n raw_code?: string;\n change_status?: \"added\" | \"removed\" | \"modified\";\n change_category?:\n | \"breaking\"\n | \"non_breaking\"\n | \"partial_breaking\"\n | \"unknown\";\n impacted?: boolean;\n columns?: Record<string, NodeColumnData>;\n}\n\nexport interface ColumnLineageData {\n current: {\n nodes: Record<string, CllNodeData>;\n columns: Record<string, NodeColumnData>;\n parent_map: Record<string, Set<string>>;\n child_map: Record<string, Set<string>>;\n };\n}\n\nexport async function getCll(input: CllInput): Promise<ColumnLineageData> {\n const response = await axiosClient.post<\n CllInput,\n AxiosResponse<ColumnLineageData>\n >(\"/api/cll\", input);\n\n return response.data;\n}\n","import { axiosClient } from \"./axiosClient\";\n\nexport interface ConnectToCloud {\n connection_url: string;\n}\n\nexport async function connectToCloud(): Promise<ConnectToCloud> {\n const data = await axiosClient.post<ConnectToCloud>(\"/api/connect\");\n return data.data;\n}\n","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface RecceServerFlags {\n single_env_onboarding: boolean;\n show_relaunch_hint: boolean;\n}\n\nexport async function getServerFlag(\n client: AxiosInstance = axiosClient,\n): Promise<RecceServerFlags> {\n return (await client.get<never, AxiosResponse<RecceServerFlags>>(\"/api/flag\"))\n .data;\n}\n\n// This was used for showing onboarding guide. Check DRC-1320 for more detials\nexport async function markOnboardingCompleted(\n client: AxiosInstance = axiosClient,\n): Promise<void> {\n try {\n await client.post<never, AxiosResponse<never>>(\"/api/onboarding/completed\");\n } catch (_error) {\n // skip any errors\n }\n}\n\nexport async function markRelaunchHintCompleted(\n client: AxiosInstance = axiosClient,\n): Promise<void> {\n try {\n await client.post<never, AxiosResponse<never>>(\n \"/api/relaunch-hint/completed\",\n );\n } catch (_error) {\n // skip any errors\n }\n}\n","import { AxiosError, AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\n/**\n * The data from the API\n */\nexport interface NodeColumnData {\n name: string;\n type: string;\n transformation_type?: string;\n change_status?: \"added\" | \"removed\" | \"modified\";\n not_null?: boolean;\n unique?: boolean;\n}\nexport interface NodeData {\n id: string;\n unique_id: string;\n name: string;\n schema?: string;\n checksum?: {\n name: string;\n checksum: string;\n };\n raw_code?: string;\n resource_type?: string;\n package_name?: string;\n columns?: Record<string, NodeColumnData | undefined>;\n primary_key?: string;\n}\n\n// https://docs.getdbt.com/reference/artifacts/dbt-artifacts#common-metadata\ninterface ArtifactMetadata {\n dbt_version: string;\n dbt_schema_version: string;\n generated_at: string;\n adapter_type: string;\n env: Record<string, string>;\n invocation_id: string;\n}\nexport interface ManifestMetadata extends ArtifactMetadata {\n project_id?: string;\n project_name?: string;\n user_id?: string;\n}\nexport interface SQLMeshInfo {\n base_env: string;\n current_env: string;\n}\n\nexport type CatalogMetadata = ArtifactMetadata;\n\nexport interface LineageData {\n metadata: {\n pr_url: string;\n git_branch?: string;\n };\n nodes: Record<string, NodeData>;\n parent_map: Record<string, string[]>;\n manifest_metadata?: ManifestMetadata | null;\n catalog_metadata?: CatalogMetadata | null;\n}\n\nexport interface LineageDataFromMetadata extends Omit<LineageData, \"nodes\"> {\n nodes: Record<string, NodeData | undefined>;\n}\n\nexport type LineageDiffData = Record<\n string,\n {\n change_status: \"added\" | \"removed\" | \"modified\";\n change: {\n category: \"breaking\" | \"non_breaking\" | \"partial_breaking\" | \"unknown\";\n columns: Record<string, \"added\" | \"removed\" | \"modified\"> | null;\n } | null;\n }\n>;\n\ninterface LineageOutput {\n error?: string;\n data?: LineageData;\n}\n\nexport async function getLineage(base = false): Promise<LineageData> {\n const response = await axiosClient.get<LineageData>(\n `/api/lineage?base=${base}`,\n );\n return response.data;\n}\n\nexport async function getLineageWithError(\n base = false,\n): Promise<LineageOutput> {\n try {\n const data = await getLineage(base);\n return { data };\n } catch (err: unknown) {\n if (err instanceof AxiosError) {\n const data = err.response?.data as Record<string, unknown> | undefined;\n const detail = data?.detail as string | undefined;\n if (detail) {\n return { error: detail };\n } else {\n return { error: err.message };\n }\n } else if (err instanceof Error) {\n return { error: err.message };\n } else {\n return { error: \"An unknown error occurred\" };\n }\n }\n}\n\nexport interface LineageDiffResult {\n base?: LineageData;\n current?: LineageData;\n base_error?: string;\n current_error?: string;\n}\n\nexport async function getLineageDiff(): Promise<LineageDiffResult> {\n const [base, current] = await Promise.all([\n getLineageWithError(true),\n getLineageWithError(false),\n ]);\n\n return {\n base: base.data,\n current: current.data,\n base_error: base.error,\n current_error: current.error,\n };\n}\n\nexport interface stateMetadata {\n schema_version: string;\n recce_version: string;\n generated_at: string;\n}\n\nexport interface gitInfo {\n branch?: string;\n}\n\nexport interface pullRequestInfo {\n id?: string | number;\n title?: string;\n url?: string;\n branch?: string;\n base_branch?: string;\n}\n\nexport interface ServerInfoResult {\n state_metadata: stateMetadata;\n adapter_type: string;\n review_mode: boolean;\n cloud_mode: boolean;\n file_mode: boolean;\n filename?: string;\n git?: gitInfo;\n pull_request?: pullRequestInfo;\n sqlmesh?: SQLMeshInfo;\n lineage: {\n base: LineageData;\n current: LineageData;\n diff: LineageDiffData;\n };\n demo: boolean;\n codespace: boolean;\n support_tasks: Record<string, boolean>;\n}\n\nexport async function getServerInfo(\n client: AxiosInstance = axiosClient,\n): Promise<ServerInfoResult> {\n return (await client.get<never, AxiosResponse<ServerInfoResult>>(`/api/info`))\n .data;\n}\n\nexport interface ModelInfoResult {\n model: {\n base: {\n columns?: Record<string, NodeColumnData>;\n primary_key?: string;\n };\n current: {\n columns?: Record<string, NodeColumnData>;\n primary_key?: string;\n };\n };\n}\n\nexport async function getModelInfo(model: string): Promise<ModelInfoResult> {\n return (\n await axiosClient.get<never, AxiosResponse<ModelInfoResult>>(\n `/api/model/${model}`,\n )\n ).data;\n}\n","import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { Check } from \"./checks\";\nimport { CllInput } from \"./cll\";\n\nexport interface LineageDiffViewOptions {\n view_mode?: \"changed_models\" | \"all\";\n node_ids?: string[];\n packages?: string[];\n select?: string;\n exclude?: string;\n column_level_lineage?: CllInput;\n}\n\ninterface CreateLineageDiffCheckBody {\n type: string;\n params: Record<string, string | boolean | number>;\n view_options: LineageDiffViewOptions;\n}\n\nexport async function createLineageDiffCheck(\n viewOptions: LineageDiffViewOptions,\n): Promise<Check> {\n const response = await axiosClient.post<\n CreateLineageDiffCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"lineage_diff\",\n params: {},\n view_options: viewOptions,\n });\n\n return response.data;\n}\n","import { RowCount, RowCountDiff } from \"./models\";\nimport { SubmitOptions, submitRun } from \"./runs\";\nexport interface RowCountParams {\n node_names: string[];\n}\nexport type RowCountResult = Record<string, RowCount>;\nexport interface RowCountDiffParams {\n node_names: string[];\n}\nexport type RowCountDiffResult = Record<string, RowCountDiff>;\nexport async function submitRowCountDiff(\n params: RowCountDiffParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"row_count_diff\", params, options);\n}\n","import { axiosClient } from \"./axiosClient\";\nimport { RowCountDiffResult, submitRowCountDiff } from \"./rowcount\";\nimport { waitRun } from \"./runs\";\n\nexport interface RowCount {\n name?: string;\n curr: number | null;\n}\n\nexport interface RowCountDiff {\n name?: string;\n base: number | null;\n curr: number | null;\n}\n\nexport interface QueryRowCountResult {\n runId: string;\n result: RowCountDiffResult;\n}\n\nexport async function fetchModelRowCount(\n modelName: string,\n): Promise<RowCountDiff> {\n const response = await axiosClient.get<RowCountDiff>(\n `/api/models/${modelName}/row_count`,\n );\n return response.data;\n}\n\nexport async function queryModelRowCount(\n modelName: string,\n): Promise<RowCountDiff> {\n const { result } = await queryRowCount([modelName]);\n return result[modelName];\n}\n\nexport async function queryRowCount(\n modelNames: string[],\n): Promise<QueryRowCountResult> {\n if (modelNames.length === 0) {\n throw new Error(\"No model names provided\");\n }\n\n const { run_id } = await submitRowCountDiff(\n { node_names: modelNames },\n { nowait: true },\n );\n const run = await waitRun(run_id);\n\n return {\n runId: run_id,\n result: run.result as RowCountDiffResult,\n };\n}\n","import { SubmitOptions, submitRun } from \"./runs\";\nimport { ColumnRenderMode, DataFrame } from \"./types\";\n\nexport interface ProfileDiffParams {\n model: string;\n columns?: string[];\n}\n\nexport interface ProfileDiffResult {\n base?: DataFrame;\n current?: DataFrame;\n}\n\nexport interface ProfileDiffViewOptions {\n pinned_columns?: string[];\n display_mode?: \"side_by_side\" | \"inline\";\n columnsRenderMode?: Record<string, ColumnRenderMode>;\n}\n\nexport async function submitProfileDiff(\n params: ProfileDiffParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"profile_diff\", params, options);\n}\n\nexport interface TopKDiffParams {\n model: string;\n column_name: string;\n k: number;\n}\n\nexport interface TopKResult {\n values: (string | number | undefined)[];\n counts: number[];\n valids: number;\n}\n\nexport interface TopKDiffResult {\n base: TopKResult;\n current: TopKResult;\n}\n\nexport interface HistogramDiffParams {\n model: string;\n column_name: string;\n column_type: string;\n}\n\nexport interface HistogramResult {\n counts: number[];\n total: number;\n}\n\nexport interface HistogramDiffResult {\n base: HistogramResult;\n current: HistogramResult;\n min: number;\n max: number;\n bin_edges: number[];\n labels?: string[];\n}\n","import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { Check } from \"./checks\";\n\nexport interface SchemaDiffViewParams {\n node_id?: string | string[];\n select?: string;\n exclude?: string;\n view_mode?: \"all\" | \"changed_models\";\n packages?: string[];\n}\n\ninterface CreateSchemaDiffCheckBody {\n type: string;\n params: SchemaDiffViewParams;\n}\n\nexport async function createSchemaDiffCheck(\n params: SchemaDiffViewParams,\n): Promise<Check> {\n const response = await axiosClient.post<\n CreateSchemaDiffCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"schema_diff\",\n params: params,\n });\n\n return response.data;\n}\n","import { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface SelectInput {\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\nexport interface SelectOutput {\n nodes: string[];\n}\n\nexport async function select(input: SelectInput): Promise<SelectOutput> {\n return (\n await axiosClient.post<SelectInput, AxiosResponse<SelectOutput>>(\n `/api/select`,\n input,\n )\n ).data;\n}\n","import { AxiosResponse, isAxiosError } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface SaveAsInput {\n filename: string;\n overwrite?: boolean;\n}\n\nexport interface ImportedState {\n runs: number;\n checks: number;\n}\n\nexport async function saveAs(input: SaveAsInput): Promise<void> {\n return (\n await axiosClient.post<SaveAsInput, AxiosResponse<void>>(\n \"/api/save-as\",\n input,\n )\n ).data;\n}\n\nexport async function rename(input: SaveAsInput): Promise<void> {\n return (\n await axiosClient.post<SaveAsInput, AxiosResponse<void>>(\n \"/api/rename\",\n input,\n )\n ).data;\n}\n\nexport async function exportState(): Promise<string> {\n return (await axiosClient.post<never, AxiosResponse<string>>(\"/api/export\"))\n .data;\n}\n\ninterface ImportStateBody {\n file: File;\n checks_only: \"true\" | \"false\";\n}\n\nexport async function importState(\n file: File,\n checksOnly?: boolean,\n): Promise<ImportedState> {\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append(\"checks_only\", (!!checksOnly).toString());\n\n return (\n await axiosClient.post<ImportStateBody, AxiosResponse<ImportedState>>(\n \"/api/import\",\n formData,\n )\n ).data;\n}\n\nexport async function isStateSyncing(): Promise<boolean> {\n const response = await axiosClient.get<never, AxiosResponse<boolean>>(\n \"/api/sync\",\n );\n return response.status === 208;\n}\n\nexport interface SyncStateInput {\n method?: \"overwrite\" | \"revert\" | \"merge\";\n}\nexport interface SyncStateResponse {\n status: \"accepted\" | \"conflict\" | \"syncing\";\n}\n\nexport async function syncState(\n input: SyncStateInput,\n): Promise<SyncStateResponse> {\n try {\n const response = await axiosClient.post<\n SyncStateInput,\n AxiosResponse<SyncStateResponse>\n >(\"/api/sync\", input);\n\n if (response.status === 202) {\n return {\n status: \"accepted\",\n };\n }\n if (response.status === 208) {\n return {\n status: \"syncing\",\n };\n }\n } catch (error) {\n if (isAxiosError(error)) {\n if (error.response?.status === 409) {\n // 409 conflict case\n return { status: \"conflict\" };\n }\n }\n }\n throw new Error(\"Failed to sync state\");\n}\n\nexport interface ShareStateResponse {\n status: string;\n message: string;\n share_url?: string;\n}\n\nexport async function shareState(): Promise<ShareStateResponse> {\n return (\n await axiosClient.post<never, AxiosResponse<ShareStateResponse>>(\n \"/api/share\",\n )\n ).data;\n}\n","import axios, { AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface User {\n id: string;\n login: string;\n login_type: string;\n email: string;\n onboarding_state: string;\n}\n\ninterface GitHubUser {\n login: string;\n id: number;\n avatar_url: string;\n}\n\nexport async function fetchUser(): Promise<User> {\n try {\n const response = await axiosClient.get<never, AxiosResponse<User>>(\n \"/api/users\",\n );\n return response.data;\n } catch (error) {\n console.error(\"Error fetching user data:\", error);\n throw error;\n }\n}\n\nexport async function fetchGitHubAvatar(\n userId: string,\n): Promise<string | null> {\n try {\n const response = await axios.get<GitHubUser>(\n `https://api.github.com/user/${userId}`,\n );\n return response.data.avatar_url;\n } catch (error) {\n console.warn(\"Failed to fetch GitHub avatar:\", error);\n return null;\n }\n}\n","import { SubmitOptions, submitRun } from \"./runs\";\nimport { ColumnRenderMode, DataFrame } from \"./types\";\n\nexport interface ValueDiffResult {\n summary: {\n total: number;\n added: number;\n removed: number;\n };\n data: DataFrame;\n}\n\nexport interface ValueDiffParams {\n model: string;\n primary_key: string | string[];\n columns?: string[];\n}\n\nexport async function submitValueDiff(\n params: ValueDiffParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"value_diff\", params, options);\n}\n\nexport type ValueDiffDetailResult = DataFrame;\n\nexport type ValueDiffDetailParams = ValueDiffParams;\n\nexport interface ValueDiffDetailViewOptions {\n changed_only?: boolean;\n pinned_columns?: string[];\n display_mode?: \"inline\" | \"side_by_side\";\n columnsRenderMode?: Record<string, ColumnRenderMode>;\n}\n\nexport async function submitValueDiffDetail(\n params: ValueDiffParams,\n options?: SubmitOptions,\n) {\n return await submitRun(\"value_diff_detail\", params, options);\n}\n","import { AxiosResponse } from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { axiosClient } from \"./axiosClient\";\n\ninterface VersionResponse {\n version: string;\n latestVersion: string;\n}\n\nexport function useVersionNumber() {\n const [version, setVersion] = useState(\"\");\n const [latestVersion, setLatestVersion] = useState(\"\");\n\n useEffect(() => {\n async function fetchVersion() {\n try {\n const { version, latestVersion } = (\n await axiosClient.get<never, AxiosResponse<VersionResponse>>(\n \"/api/version\",\n )\n ).data;\n\n setVersion(version);\n setLatestVersion(latestVersion);\n } catch (error) {\n console.error(\"Error fetching version number:\", error);\n }\n }\n void fetchVersion();\n }, []);\n\n return { version, latestVersion };\n}\n","const prefix = \"recce-\";\n\nexport const localStorageKeys = {\n bypassSaveOverwrite: `${prefix}-bypass-save-overwrite`,\n previewChangeFeedbackID: `${prefix}-preview-change-feedback`,\n prepareEnvGuideID: `${prefix}-prepare-env`,\n};\n","const prefix = \"recce\";\n\nexport const sessionStorageKeys = {\n recommendationIgnored: `${prefix}-recommendation-ignored`,\n recommendationShowed: `${prefix}-recommendation-showed`,\n prevRefreshTimeStamp: `${prefix}-prev-refresh-timestamp`,\n lineageNotificationDismissed: `${prefix}-lineage-notification-dismissed`,\n};\n"]}
|
package/dist/components.d.mts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
3
|
import React__default, { ReactNode, ComponentType } from 'react';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
import { Y as LineageDiffViewOptions, $ as RowCountDiff, _ as RowCount, M as ManifestMetadata, a$ as RunResultViewProps, c as QueryViewOptions, aL as Run, b0 as DataGridHandle, g as QueryDiffViewOptions, a6 as ProfileDiffViewOptions, ac as HistogramResult, a9 as TopKResult, a_ as RunFormProps, ab as HistogramDiffParams, a8 as TopKDiffParams, b1 as ViewOptionTypes, y as NodeData, aE as RowObjectType, C as Check, b2 as RegistryEntry, b3 as RefTypes, b4 as RunType, b5 as RunFormParamTypes } from './lineagecheck-BIlm5vq1.mjs';
|
|
7
|
-
export { P as ProfileDiffForm, R as RunToolbar, S as ScreenshotDataGrid, V as ValueDiffForm } from './lineagecheck-BIlm5vq1.mjs';
|
|
8
|
-
import { NodeProps, EdgeProps } from '@xyflow/react';
|
|
4
|
+
import { FallbackRender } from '@sentry/react';
|
|
5
|
+
import { SplitProps } from 'react-split';
|
|
9
6
|
import { BoxProps } from '@mui/material/Box';
|
|
7
|
+
import { a as LineageGraphNode, b as LineageGraphEdge, c as LineageGraphColumnNode, d as LineageGraph } from './LineageViewContext-DEa54ZNF.mjs';
|
|
8
|
+
export { L as LineageViewContext, u as useLineageViewContext } from './LineageViewContext-DEa54ZNF.mjs';
|
|
9
|
+
import { Y as LineageDiffViewOptions, $ as RowCountDiff, _ as RowCount, M as ManifestMetadata, a$ as RunResultViewProps, c as QueryViewOptions, aL as Run, b0 as DataGridHandle, g as QueryDiffViewOptions, y as NodeData, aE as RowObjectType, C as Check, b1 as ViewOptionTypes, b2 as RegistryEntry, b3 as RefTypes, b4 as RunType, b5 as RunFormParamTypes, a_ as RunFormProps, a6 as ProfileDiffViewOptions, az as ValueDiffDetailViewOptions, ab as HistogramDiffParams, a8 as TopKDiffParams, ac as HistogramResult, a9 as TopKResult } from './lineagecheck-BQaKAQzn.mjs';
|
|
10
|
+
export { P as ProfileDiffForm, R as RunToolbar, S as ScreenshotDataGrid, V as ValueDiffForm } from './lineagecheck-BQaKAQzn.mjs';
|
|
11
|
+
import { NodeProps, EdgeProps } from '@xyflow/react';
|
|
10
12
|
import { AnimationOptions } from 'chart.js';
|
|
11
|
-
import { SplitProps } from 'react-split';
|
|
12
13
|
import '@tanstack/react-query';
|
|
13
14
|
import 'axios';
|
|
14
15
|
import 'react-icons';
|
|
@@ -83,6 +84,21 @@ declare function useToaster(): ToasterContextValue;
|
|
|
83
84
|
*/
|
|
84
85
|
declare function Toaster(): react_jsx_runtime.JSX.Element;
|
|
85
86
|
|
|
87
|
+
declare const ErrorBoundary: ({ children, fallback, }: {
|
|
88
|
+
children: ReactNode;
|
|
89
|
+
fallback?: React$1.ReactElement | FallbackRender | undefined;
|
|
90
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
91
|
+
|
|
92
|
+
declare const HSplit: (props: SplitProps) => react_jsx_runtime.JSX.Element;
|
|
93
|
+
declare const VSplit: (props: SplitProps) => react_jsx_runtime.JSX.Element;
|
|
94
|
+
|
|
95
|
+
interface ScreenshotBoxProps extends BoxProps {
|
|
96
|
+
backgroundColor?: string;
|
|
97
|
+
blockSize?: string;
|
|
98
|
+
children?: React.ReactNode;
|
|
99
|
+
}
|
|
100
|
+
declare const ScreenshotBox: React$1.ForwardRefExoticComponent<Omit<ScreenshotBoxProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
101
|
+
|
|
86
102
|
declare function LineagePage(): react_jsx_runtime.JSX.Element;
|
|
87
103
|
|
|
88
104
|
interface LineageViewProps {
|
|
@@ -142,14 +158,16 @@ interface RowCountTagProps {
|
|
|
142
158
|
error?: Error | null;
|
|
143
159
|
}
|
|
144
160
|
|
|
161
|
+
declare function SetupConnectionBanner(): react_jsx_runtime.JSX.Element;
|
|
162
|
+
|
|
163
|
+
declare const QueryPage: () => react_jsx_runtime.JSX.Element;
|
|
164
|
+
|
|
145
165
|
interface QueryFormProps extends BoxProps {
|
|
146
166
|
defaultPrimaryKeys: string[] | undefined;
|
|
147
167
|
onPrimaryKeysChange: (primaryKeys: string[]) => void;
|
|
148
168
|
}
|
|
149
169
|
declare const QueryForm: ({ defaultPrimaryKeys, onPrimaryKeysChange, ...props }: QueryFormProps) => react_jsx_runtime.JSX.Element;
|
|
150
170
|
|
|
151
|
-
declare const QueryPage: () => react_jsx_runtime.JSX.Element;
|
|
152
|
-
|
|
153
171
|
interface SqlEditorProps {
|
|
154
172
|
language?: string;
|
|
155
173
|
theme?: string;
|
|
@@ -173,15 +191,6 @@ interface SqlEditorProps {
|
|
|
173
191
|
}
|
|
174
192
|
declare function SqlEditor({ value, onChange, onRun, onRunBase, onRunDiff, label, CustomEditor, options, manifestData, schemas, ...props }: SqlEditorProps): react_jsx_runtime.JSX.Element;
|
|
175
193
|
|
|
176
|
-
interface DiffTextProps {
|
|
177
|
-
value: string;
|
|
178
|
-
colorPalette: "red" | "green";
|
|
179
|
-
grayOut?: boolean;
|
|
180
|
-
noCopy?: boolean;
|
|
181
|
-
fontSize?: string;
|
|
182
|
-
}
|
|
183
|
-
declare const DiffText: ({ value, colorPalette, grayOut, noCopy, fontSize, }: DiffTextProps) => react_jsx_runtime.JSX.Element;
|
|
184
|
-
|
|
185
194
|
interface QueryResultViewProp extends RunResultViewProps<QueryViewOptions> {
|
|
186
195
|
onAddToChecklist?: (run: Run) => void;
|
|
187
196
|
}
|
|
@@ -194,58 +203,56 @@ interface QueryDiffResultViewProps extends RunResultViewProps<QueryDiffViewOptio
|
|
|
194
203
|
}
|
|
195
204
|
declare const QueryDiffResultView: React$1.ForwardRefExoticComponent<QueryDiffResultViewProps & React$1.RefAttributes<DataGridHandle>>;
|
|
196
205
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
* Y: The Min/Max of the counts range is the scaled height of charting area
|
|
204
|
-
* Counts: Abbreviated based on K, Mn, Bn, Tr (see formatters)
|
|
205
|
-
*/
|
|
206
|
-
interface HistogramChartProps {
|
|
207
|
-
data: {
|
|
208
|
-
title: string;
|
|
209
|
-
type: string;
|
|
210
|
-
samples?: number;
|
|
211
|
-
min?: string | number;
|
|
212
|
-
max?: string | number;
|
|
213
|
-
binEdges: number[];
|
|
214
|
-
datasets: HistogramResult[];
|
|
215
|
-
};
|
|
216
|
-
animation?: AnimationOptions<"bar">["animation"];
|
|
217
|
-
hideAxis?: boolean;
|
|
218
|
-
}
|
|
219
|
-
declare function HistogramChart({ data, hideAxis, animation, }: HistogramChartProps): react_jsx_runtime.JSX.Element;
|
|
220
|
-
|
|
221
|
-
interface Props$2 {
|
|
222
|
-
topk: TopKResult;
|
|
223
|
-
valids: number;
|
|
224
|
-
isDisplayTopTen: boolean;
|
|
206
|
+
interface DiffTextProps {
|
|
207
|
+
value: string;
|
|
208
|
+
colorPalette: "red" | "green";
|
|
209
|
+
grayOut?: boolean;
|
|
210
|
+
noCopy?: boolean;
|
|
211
|
+
fontSize?: string;
|
|
225
212
|
}
|
|
226
|
-
|
|
227
|
-
* A list of each topk summary item (categorical)
|
|
228
|
-
* Last list item will show 'others' when there are leftover values, which is the count difference of valids and displayed topk items
|
|
229
|
-
*/
|
|
230
|
-
declare function TopKSummaryList({ topk, valids, isDisplayTopTen }: Props$2): react_jsx_runtime.JSX.Element;
|
|
231
|
-
|
|
232
|
-
declare function SquareIcon({ color }: {
|
|
233
|
-
color: string;
|
|
234
|
-
}): react_jsx_runtime.JSX.Element;
|
|
235
|
-
|
|
236
|
-
type HistogramDiffEditProps = RunFormProps<HistogramDiffParams>;
|
|
237
|
-
declare function HistogramDiffForm({ params, onParamsChanged, setIsReadyToExecute, }: HistogramDiffEditProps): react_jsx_runtime.JSX.Element;
|
|
238
|
-
|
|
239
|
-
type HistogramDiffResultViewProp = RunResultViewProps;
|
|
240
|
-
declare const HistogramDiffResultView: React$1.ForwardRefExoticComponent<HistogramDiffResultViewProp & React$1.RefAttributes<HTMLDivElement>>;
|
|
213
|
+
declare const DiffText: ({ value, colorPalette, grayOut, noCopy, fontSize, }: DiffTextProps) => react_jsx_runtime.JSX.Element;
|
|
241
214
|
|
|
242
|
-
|
|
243
|
-
declare function TopKDiffForm({ params, onParamsChanged, setIsReadyToExecute, }: TopKDiffFormProps): react_jsx_runtime.JSX.Element;
|
|
215
|
+
declare function SetupConnectionGuide(): react_jsx_runtime.JSX.Element;
|
|
244
216
|
|
|
245
|
-
type
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
217
|
+
type CodeEditorLanguage = "sql" | "yaml";
|
|
218
|
+
type CodeEditorTheme = "light" | "dark";
|
|
219
|
+
interface CodeEditorProps {
|
|
220
|
+
value: string;
|
|
221
|
+
onChange?: (value: string) => void;
|
|
222
|
+
language?: CodeEditorLanguage;
|
|
223
|
+
readOnly?: boolean;
|
|
224
|
+
lineNumbers?: boolean;
|
|
225
|
+
wordWrap?: boolean;
|
|
226
|
+
fontSize?: number;
|
|
227
|
+
height?: string;
|
|
228
|
+
className?: string;
|
|
229
|
+
/** Theme: "light" for githubLight, "dark" for githubDark */
|
|
230
|
+
theme?: CodeEditorTheme;
|
|
231
|
+
/** Custom keyboard shortcuts: { key: handler } */
|
|
232
|
+
keyBindings?: Array<{
|
|
233
|
+
key: string;
|
|
234
|
+
run: () => boolean;
|
|
235
|
+
}>;
|
|
236
|
+
}
|
|
237
|
+
declare function CodeEditor({ value, onChange, language, readOnly, lineNumbers, wordWrap, fontSize, height, className, theme, keyBindings, }: CodeEditorProps): react_jsx_runtime.JSX.Element;
|
|
238
|
+
|
|
239
|
+
type DiffEditorLanguage = "sql" | "yaml";
|
|
240
|
+
type DiffEditorTheme = "light" | "dark";
|
|
241
|
+
interface DiffEditorProps {
|
|
242
|
+
original: string;
|
|
243
|
+
modified: string;
|
|
244
|
+
language?: DiffEditorLanguage;
|
|
245
|
+
readOnly?: boolean;
|
|
246
|
+
lineNumbers?: boolean;
|
|
247
|
+
sideBySide?: boolean;
|
|
248
|
+
height?: string;
|
|
249
|
+
className?: string;
|
|
250
|
+
/** Theme: "light" for githubLight, "dark" for githubDark */
|
|
251
|
+
theme?: DiffEditorTheme;
|
|
252
|
+
/** Called when modified content changes (only if not readOnly) */
|
|
253
|
+
onModifiedChange?: (value: string) => void;
|
|
254
|
+
}
|
|
255
|
+
declare function DiffEditor({ original, modified, language, readOnly, lineNumbers, sideBySide, height, className, theme, onModifiedChange, }: DiffEditorProps): react_jsx_runtime.JSX.Element;
|
|
249
256
|
|
|
250
257
|
interface SchemaViewProps {
|
|
251
258
|
base?: NodeData;
|
|
@@ -305,6 +312,8 @@ interface CheckDescriptionProps {
|
|
|
305
312
|
}
|
|
306
313
|
declare function CheckDescription({ value, onChange }: CheckDescriptionProps): react_jsx_runtime.JSX.Element;
|
|
307
314
|
|
|
315
|
+
declare const CheckEmptyState: () => react_jsx_runtime.JSX.Element;
|
|
316
|
+
|
|
308
317
|
interface LineageDiffViewProps {
|
|
309
318
|
check: Check;
|
|
310
319
|
}
|
|
@@ -315,10 +324,10 @@ interface SchemaDiffViewProps {
|
|
|
315
324
|
}
|
|
316
325
|
declare const SchemaDiffView: React__default.ForwardRefExoticComponent<SchemaDiffViewProps & React__default.RefAttributes<DataGridHandle>>;
|
|
317
326
|
|
|
318
|
-
interface RunPageProps {
|
|
327
|
+
interface RunPageProps$1 {
|
|
319
328
|
runId: string;
|
|
320
329
|
}
|
|
321
|
-
declare const RunPage: ({ runId }: RunPageProps) => react_jsx_runtime.JSX.Element;
|
|
330
|
+
declare const RunPage: ({ runId }: RunPageProps$1) => react_jsx_runtime.JSX.Element;
|
|
322
331
|
|
|
323
332
|
declare const RunList: () => react_jsx_runtime.JSX.Element;
|
|
324
333
|
|
|
@@ -350,10 +359,86 @@ interface RunModalProps {
|
|
|
350
359
|
}
|
|
351
360
|
declare const RunModal: ({ isOpen, onClose, onExecute, type, title, params: defaultParams, RunForm, }: RunModalProps) => react_jsx_runtime.JSX.Element;
|
|
352
361
|
|
|
362
|
+
interface RunPageProps {
|
|
363
|
+
onClose?: () => void;
|
|
364
|
+
disableAddToChecklist?: boolean;
|
|
365
|
+
isSingleEnvironment?: boolean;
|
|
366
|
+
}
|
|
367
|
+
declare const RunResultPane: ({ onClose, isSingleEnvironment, }: RunPageProps) => react_jsx_runtime.JSX.Element;
|
|
368
|
+
|
|
353
369
|
declare const RunStatusAndDate: ({ run }: {
|
|
354
370
|
run: Run;
|
|
355
371
|
}) => react_jsx_runtime.JSX.Element;
|
|
356
372
|
|
|
373
|
+
type ProfileDiffResultViewProp = RunResultViewProps<ProfileDiffViewOptions>;
|
|
374
|
+
declare const ProfileDiffResultView: React$1.ForwardRefExoticComponent<ProfileDiffResultViewProp & React$1.RefAttributes<DataGridHandle>>;
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* @file ValueDiffResultView.tsx
|
|
378
|
+
* @description View component for displaying value diff summary results
|
|
379
|
+
*
|
|
380
|
+
* Shows a summary table of column-level match statistics from a value_diff run.
|
|
381
|
+
* Each row represents a column with its match count and percentage.
|
|
382
|
+
*/
|
|
383
|
+
|
|
384
|
+
type ValueDiffResultViewProp = RunResultViewProps;
|
|
385
|
+
declare const ValueDiffResultView: React__default.ForwardRefExoticComponent<ValueDiffResultViewProp & React__default.RefAttributes<DataGridHandle>>;
|
|
386
|
+
|
|
387
|
+
interface ValueDiffDetailResultViewProps extends RunResultViewProps<ValueDiffDetailViewOptions> {
|
|
388
|
+
onAddToChecklist?: (run: Run) => void;
|
|
389
|
+
}
|
|
390
|
+
declare const ValueDiffDetailResultView: React$1.ForwardRefExoticComponent<ValueDiffDetailResultViewProps & React$1.RefAttributes<DataGridHandle>>;
|
|
391
|
+
|
|
392
|
+
type HistogramDiffEditProps = RunFormProps<HistogramDiffParams>;
|
|
393
|
+
declare function HistogramDiffForm({ params, onParamsChanged, setIsReadyToExecute, }: HistogramDiffEditProps): react_jsx_runtime.JSX.Element;
|
|
394
|
+
|
|
395
|
+
type HistogramDiffResultViewProp = RunResultViewProps;
|
|
396
|
+
declare const HistogramDiffResultView: React$1.ForwardRefExoticComponent<HistogramDiffResultViewProp & React$1.RefAttributes<HTMLDivElement>>;
|
|
397
|
+
|
|
398
|
+
type TopKDiffFormProps = RunFormProps<TopKDiffParams>;
|
|
399
|
+
declare function TopKDiffForm({ params, onParamsChanged, setIsReadyToExecute, }: TopKDiffFormProps): react_jsx_runtime.JSX.Element;
|
|
400
|
+
|
|
401
|
+
type TopKDiffResultViewProp = RunResultViewProps;
|
|
402
|
+
declare const TopKDiffResultView: React$1.ForwardRefExoticComponent<TopKDiffResultViewProp & React$1.RefAttributes<HTMLDivElement>>;
|
|
403
|
+
|
|
404
|
+
declare const RowCountDiffResultView: React$1.ForwardRefExoticComponent<RunResultViewProps<ViewOptionTypes> & React$1.RefAttributes<DataGridHandle>>;
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Histogram Chart that can display generic data types such as Numeric, Datetime, Integer
|
|
408
|
+
* X: The Min/Max of the labels range is the scaled width of charting area
|
|
409
|
+
* Y: The Min/Max of the counts range is the scaled height of charting area
|
|
410
|
+
* Counts: Abbreviated based on K, Mn, Bn, Tr (see formatters)
|
|
411
|
+
*/
|
|
412
|
+
interface HistogramChartProps {
|
|
413
|
+
data: {
|
|
414
|
+
title: string;
|
|
415
|
+
type: string;
|
|
416
|
+
samples?: number;
|
|
417
|
+
min?: string | number;
|
|
418
|
+
max?: string | number;
|
|
419
|
+
binEdges: number[];
|
|
420
|
+
datasets: HistogramResult[];
|
|
421
|
+
};
|
|
422
|
+
animation?: AnimationOptions<"bar">["animation"];
|
|
423
|
+
hideAxis?: boolean;
|
|
424
|
+
}
|
|
425
|
+
declare function HistogramChart({ data, hideAxis, animation, }: HistogramChartProps): react_jsx_runtime.JSX.Element;
|
|
426
|
+
|
|
427
|
+
interface Props$2 {
|
|
428
|
+
topk: TopKResult;
|
|
429
|
+
valids: number;
|
|
430
|
+
isDisplayTopTen: boolean;
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* A list of each topk summary item (categorical)
|
|
434
|
+
* Last list item will show 'others' when there are leftover values, which is the count difference of valids and displayed topk items
|
|
435
|
+
*/
|
|
436
|
+
declare function TopKSummaryList({ topk, valids, isDisplayTopTen }: Props$2): react_jsx_runtime.JSX.Element;
|
|
437
|
+
|
|
438
|
+
declare function SquareIcon({ color }: {
|
|
439
|
+
color: string;
|
|
440
|
+
}): react_jsx_runtime.JSX.Element;
|
|
441
|
+
|
|
357
442
|
declare function SummaryView(): react_jsx_runtime.JSX.Element;
|
|
358
443
|
|
|
359
444
|
interface Props$1 {
|
|
@@ -366,17 +451,16 @@ interface Props {
|
|
|
366
451
|
}
|
|
367
452
|
declare function SchemaSummary({ lineageGraph }: Props): react_jsx_runtime.JSX.Element;
|
|
368
453
|
|
|
369
|
-
declare function
|
|
454
|
+
declare function EnvInfo(): react_jsx_runtime.JSX.Element;
|
|
370
455
|
|
|
371
|
-
declare
|
|
372
|
-
declare const VSplit: (props: SplitProps) => react_jsx_runtime.JSX.Element;
|
|
456
|
+
declare function HistoryToggle(): ReactNode;
|
|
373
457
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
declare
|
|
458
|
+
/**
|
|
459
|
+
* Badge component that displays idle timeout warning countdown
|
|
460
|
+
* Only shows when remaining time is below the warning threshold
|
|
461
|
+
* Styled as a warning indicator to draw user attention
|
|
462
|
+
*/
|
|
463
|
+
declare function IdleTimeoutBadge(): react_jsx_runtime.JSX.Element;
|
|
380
464
|
|
|
381
465
|
declare const IconSync: (props: React__default.SVGProps<SVGSVGElement>) => react_jsx_runtime.JSX.Element;
|
|
382
466
|
declare const IconExport: (props: React__default.SVGProps<SVGSVGElement>) => react_jsx_runtime.JSX.Element;
|
|
@@ -385,4 +469,4 @@ declare const IconSave: (props: React__default.SVGProps<SVGSVGElement>) => react
|
|
|
385
469
|
declare const IconEdit: (props: React__default.SVGProps<SVGSVGElement>) => react_jsx_runtime.JSX.Element;
|
|
386
470
|
declare const IconInfo: (props: React__default.SVGProps<SVGSVGElement>) => react_jsx_runtime.JSX.Element;
|
|
387
471
|
|
|
388
|
-
export { ChangeSummary, CheckBreadcrumb, CheckDescription, CheckDetail, CheckList, ColumnNameCell, DiffText, GraphColumnNode, GraphEdge, GraphNode, HSplit, HistogramChart, HistogramDiffForm, HistogramDiffResultView, HistoryToggle, IconEdit, IconExport, IconImport, IconInfo, IconSave, IconSync, LineageDiffView, LineagePage, LineageView, LineageViewTopBar, ModelRowCount, MuiProvider, MuiProvider as MuiProviderDefault, NodeSqlView, NodeView, ProfileDiffResultView, QueryDiffResultView, QueryForm, QueryPage, QueryResultView, ResourceTypeTag, RowCountDiffResultView, RowCountDiffTag, type RowCountDiffTagProps, type RowCountTagProps, RunList, RunModal, RunPage, RunStatusAndDate, RunView, SchemaDiffView, SchemaSummary, SchemaView, ScreenshotBox, SqlEditor, SquareIcon, SummaryView, Toaster, ToasterProvider, TopKDiffForm, TopKDiffResultView, TopKSummaryList, VSplit, useToaster };
|
|
472
|
+
export { ChangeSummary, CheckBreadcrumb, CheckDescription, CheckDetail, CheckEmptyState, CheckList, CodeEditor, ColumnNameCell, DiffEditor, DiffText, EnvInfo, ErrorBoundary, GraphColumnNode, GraphEdge, GraphNode, HSplit, HistogramChart, HistogramDiffForm, HistogramDiffResultView, HistoryToggle, IconEdit, IconExport, IconImport, IconInfo, IconSave, IconSync, IdleTimeoutBadge, LineageDiffView, LineagePage, LineageView, LineageViewTopBar, ModelRowCount, MuiProvider, MuiProvider as MuiProviderDefault, NodeSqlView, NodeView, ProfileDiffResultView, QueryDiffResultView, QueryForm, QueryPage, QueryResultView, ResourceTypeTag, RowCountDiffResultView, RowCountDiffTag, type RowCountDiffTagProps, type RowCountTagProps, RunList, RunModal, RunPage, RunResultPane, RunStatusAndDate, RunView, SchemaDiffView, SchemaSummary, SchemaView, ScreenshotBox, SetupConnectionBanner, SetupConnectionGuide, SqlEditor, SquareIcon, SummaryView, Toaster, ToasterProvider, TopKDiffForm, TopKDiffResultView, TopKSummaryList, VSplit, ValueDiffDetailResultView, ValueDiffResultView, useToaster };
|