@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.
Files changed (36) hide show
  1. package/dist/{LineageViewContext-BPpYWJ2B.d.mts → LineageViewContext-DEa54ZNF.d.mts} +1 -1
  2. package/dist/{LineageViewContext-DqJPwm_c.d.ts → LineageViewContext-DPVC8ak8.d.ts} +1 -1
  3. package/dist/{agGridStyles-L5J6VVIU.css → agGridStyles-VYALGSJU.css} +4 -3
  4. package/dist/api.d.mts +6 -5
  5. package/dist/api.d.ts +6 -5
  6. package/dist/api.js +13 -12
  7. package/dist/api.js.map +1 -1
  8. package/dist/api.mjs +13 -12
  9. package/dist/api.mjs.map +1 -1
  10. package/dist/components.d.mts +162 -78
  11. package/dist/components.d.ts +162 -78
  12. package/dist/components.js +2140 -1403
  13. package/dist/components.js.map +1 -1
  14. package/dist/components.mjs +1875 -1155
  15. package/dist/components.mjs.map +1 -1
  16. package/dist/hooks.d.mts +23 -3
  17. package/dist/hooks.d.ts +23 -3
  18. package/dist/hooks.js +742 -538
  19. package/dist/hooks.js.map +1 -1
  20. package/dist/hooks.mjs +587 -383
  21. package/dist/hooks.mjs.map +1 -1
  22. package/dist/index.d.mts +6 -5
  23. package/dist/index.d.ts +6 -5
  24. package/dist/index.js +2196 -1491
  25. package/dist/index.js.map +1 -1
  26. package/dist/index.mjs +1871 -1183
  27. package/dist/index.mjs.map +1 -1
  28. package/dist/{lineagecheck-BIlm5vq1.d.ts → lineagecheck-BQaKAQzn.d.mts} +3 -3
  29. package/dist/{lineagecheck-BIlm5vq1.d.mts → lineagecheck-BQaKAQzn.d.ts} +3 -3
  30. package/dist/{style-LYNBK7ND.css → style-466WWZLM.css} +36 -8
  31. package/dist/styles-JV3V5MVO.css +42 -0
  32. package/dist/{styles-PJUYW64Y.css → styles-QUPOR3LM.css} +7 -2
  33. package/dist/types.d.mts +2 -2
  34. package/dist/types.d.ts +2 -2
  35. package/package.json +5 -5
  36. 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"]}
@@ -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 { a as LineageGraphNode, b as LineageGraphEdge, c as LineageGraphColumnNode, d as LineageGraph } from './LineageViewContext-BPpYWJ2B.mjs';
5
- export { L as LineageViewContext, u as useLineageViewContext } from './LineageViewContext-BPpYWJ2B.mjs';
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
- type ProfileDiffResultViewProp = RunResultViewProps<ProfileDiffViewOptions>;
198
- declare const ProfileDiffResultView: React$1.ForwardRefExoticComponent<ProfileDiffResultViewProp & React$1.RefAttributes<DataGridHandle>>;
199
-
200
- /**
201
- * Histogram Chart that can display generic data types such as Numeric, Datetime, Integer
202
- * X: The Min/Max of the labels range is the scaled width of charting area
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
- type TopKDiffFormProps = RunFormProps<TopKDiffParams>;
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 TopKDiffResultViewProp = RunResultViewProps;
246
- declare const TopKDiffResultView: React$1.ForwardRefExoticComponent<TopKDiffResultViewProp & React$1.RefAttributes<HTMLDivElement>>;
247
-
248
- declare const RowCountDiffResultView: React$1.ForwardRefExoticComponent<RunResultViewProps<ViewOptionTypes> & React$1.RefAttributes<DataGridHandle>>;
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 HistoryToggle(): ReactNode;
454
+ declare function EnvInfo(): react_jsx_runtime.JSX.Element;
370
455
 
371
- declare const HSplit: (props: SplitProps) => react_jsx_runtime.JSX.Element;
372
- declare const VSplit: (props: SplitProps) => react_jsx_runtime.JSX.Element;
456
+ declare function HistoryToggle(): ReactNode;
373
457
 
374
- interface ScreenshotBoxProps extends BoxProps {
375
- backgroundColor?: string;
376
- blockSize?: string;
377
- children?: React.ReactNode;
378
- }
379
- declare const ScreenshotBox: React$1.ForwardRefExoticComponent<Omit<ScreenshotBoxProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
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 };