@datarecce/ui 0.1.41 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -133
- package/dist/AuthModal-C8LetZNB.js +23 -0
- package/dist/AuthModal-C8LetZNB.js.map +1 -0
- package/dist/LineageCanvas-CR38SDYr.d.ts +41 -0
- package/dist/LineageCanvas-CR38SDYr.d.ts.map +1 -0
- package/dist/ResultErrorFallback-C7c-TN1p.js +3 -0
- package/dist/ResultErrorFallback-C7c-TN1p.js.map +1 -0
- package/dist/RouteConfigContext-z8YNimdP.d.ts +172 -0
- package/dist/RouteConfigContext-z8YNimdP.d.ts.map +1 -0
- package/dist/RunProgress-DyFIALbI.d.ts +429 -0
- package/dist/RunProgress-DyFIALbI.d.ts.map +1 -0
- package/dist/ScreenshotDataGrid-BfxYUThx.d.ts +64 -0
- package/dist/ScreenshotDataGrid-BfxYUThx.d.ts.map +1 -0
- package/dist/SplitPane-B-BLxZaQ.d.ts +1427 -0
- package/dist/SplitPane-B-BLxZaQ.d.ts.map +1 -0
- package/dist/advanced.d.ts +18 -0
- package/dist/advanced.d.ts.map +1 -0
- package/dist/advanced.js +3 -0
- package/dist/advanced.js.map +1 -0
- package/dist/api-ZZ4cc9b9.d.ts +255 -0
- package/dist/api-ZZ4cc9b9.d.ts.map +1 -0
- package/dist/api-_i6BZPkM.js +3 -0
- package/dist/api-_i6BZPkM.js.map +1 -0
- package/dist/api.d.ts +3 -2
- package/dist/api.js +2 -100
- package/dist/colors--47Kkns4.js +3 -0
- package/dist/colors--47Kkns4.js.map +1 -0
- package/dist/colors-vY9Yzui0.d.ts +255 -0
- package/dist/colors-vY9Yzui0.d.ts.map +1 -0
- package/dist/components-run.d.ts +8 -0
- package/dist/components-run.js +2 -0
- package/dist/components.d.ts +22 -2
- package/dist/components.js +2 -86
- package/dist/const-DbXBkrxT.js +3 -0
- package/dist/const-DbXBkrxT.js.map +1 -0
- package/dist/constants-DD5vJv2q.js +3 -0
- package/dist/constants-DD5vJv2q.js.map +1 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.js +2 -0
- package/dist/contexts.d.ts +7 -0
- package/dist/contexts.js +2 -0
- package/dist/flag-CiR2E5oz.d.ts +898 -0
- package/dist/flag-CiR2E5oz.d.ts.map +1 -0
- package/dist/flag-koeDAqr3.js +3 -0
- package/dist/flag-koeDAqr3.js.map +1 -0
- package/dist/hooks.d.ts +15 -2
- package/dist/hooks.js +2 -43
- package/dist/index-BFkbe0aF.d.ts +698 -0
- package/dist/index-BFkbe0aF.d.ts.map +1 -0
- package/dist/index-Ba3hp2Ng.d.ts +471 -0
- package/dist/index-Ba3hp2Ng.d.ts.map +1 -0
- package/dist/index-C_kD4ZQ3.d.ts +1079 -0
- package/dist/index-C_kD4ZQ3.d.ts.map +1 -0
- package/dist/index-CiPcALu4.d.ts +146 -0
- package/dist/index-CiPcALu4.d.ts.map +1 -0
- package/dist/index-CkXLPYZY.d.ts +13 -0
- package/dist/index-CkXLPYZY.d.ts.map +1 -0
- package/dist/index-DTCpHvX_.d.ts +211 -0
- package/dist/index-DTCpHvX_.d.ts.map +1 -0
- package/dist/index-DVoQsx5c.d.ts +349 -0
- package/dist/index-DVoQsx5c.d.ts.map +1 -0
- package/dist/index-DmwYRgDR.d.ts +192 -0
- package/dist/index-DmwYRgDR.d.ts.map +1 -0
- package/dist/index-N8N7XmRj.d.ts +130 -0
- package/dist/index-N8N7XmRj.d.ts.map +1 -0
- package/dist/index-h_fw6R9U.d.ts +1501 -0
- package/dist/index-h_fw6R9U.d.ts.map +1 -0
- package/dist/index-o48TPoFN.d.ts +734 -0
- package/dist/index-o48TPoFN.d.ts.map +1 -0
- package/dist/index.d.ts +24 -2
- package/dist/index.js +2 -198
- package/dist/keepAlive-CEzyrDfg.js +3 -0
- package/dist/keepAlive-CEzyrDfg.js.map +1 -0
- package/dist/lib/api/axiosClient.d.ts +8 -0
- package/dist/lib/api/axiosClient.d.ts.map +1 -0
- package/dist/lib/api/axiosClient.js +3 -0
- package/dist/lib/api/axiosClient.js.map +1 -0
- package/dist/lib/api/track.d.ts +137 -0
- package/dist/lib/api/track.d.ts.map +1 -0
- package/dist/lib/api/track.js +2 -0
- package/dist/lib/api/user.d.ts +16 -0
- package/dist/lib/api/user.d.ts.map +1 -0
- package/dist/lib/api/user.js +2 -0
- package/dist/lib/const.d.ts +8 -0
- package/dist/lib/const.d.ts.map +1 -0
- package/dist/lib/const.js +2 -0
- package/dist/lib/result/ResultErrorFallback.d.ts +8 -0
- package/dist/lib/result/ResultErrorFallback.d.ts.map +1 -0
- package/dist/lib/result/ResultErrorFallback.js +2 -0
- package/dist/primitives-CgGUvwHB.d.ts +914 -0
- package/dist/primitives-CgGUvwHB.d.ts.map +1 -0
- package/dist/primitives.d.ts +12 -0
- package/dist/primitives.js +2 -0
- package/dist/result.d.ts +4 -0
- package/dist/result.js +2 -0
- package/dist/src-BgHSbbHk.js +67 -0
- package/dist/src-BgHSbbHk.js.map +1 -0
- package/dist/styles.css +478 -4
- package/dist/theme-CeWzymUn.js +64 -0
- package/dist/theme-CeWzymUn.js.map +1 -0
- package/dist/theme.d.ts +3 -2
- package/dist/theme.js +2 -9
- package/dist/track-9ZQpBlUK.js +3 -0
- package/dist/track-9ZQpBlUK.js.map +1 -0
- package/dist/types-CFbNxrx2.d.ts +171 -0
- package/dist/types-CFbNxrx2.d.ts.map +1 -0
- package/dist/types-CZre3j02.d.ts +231 -0
- package/dist/types-CZre3j02.d.ts.map +1 -0
- package/dist/types.d.ts +14 -2
- package/dist/types.js +3 -9
- package/dist/types.js.map +1 -0
- package/dist/useRecceServerFlag-Bg5R67J4.js +3 -0
- package/dist/useRecceServerFlag-Bg5R67J4.js.map +1 -0
- package/dist/useThemeColors--prVbMmM.js +3 -0
- package/dist/useThemeColors--prVbMmM.js.map +1 -0
- package/dist/useThemeColors-DHEroo8f.d.ts +104 -0
- package/dist/useThemeColors-DHEroo8f.d.ts.map +1 -0
- package/dist/user-DMT7E0fc.js +3 -0
- package/dist/user-DMT7E0fc.js.map +1 -0
- package/dist/utils-CW2skXm_.js +3 -0
- package/dist/utils-CW2skXm_.js.map +1 -0
- package/dist/utils-CXWhfyxC.js +5 -0
- package/dist/utils-CXWhfyxC.js.map +1 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.js +2 -0
- package/package.json +115 -107
- package/LICENSE +0 -201
- package/dist/RecceCheckContext-BJprb2xR.js +0 -7968
- package/dist/RecceCheckContext-BJprb2xR.js.map +0 -1
- package/dist/RecceCheckContext-DPnWB_aU.css +0 -215
- package/dist/RecceCheckContext-DPnWB_aU.css.map +0 -1
- package/dist/RecceCheckContext-DbZ7BdRy.mjs +0 -7426
- package/dist/RecceCheckContext-DbZ7BdRy.mjs.map +0 -1
- package/dist/RecceCheckContext-DyxOeUsX.css +0 -215
- package/dist/RecceCheckContext-DyxOeUsX.css.map +0 -1
- package/dist/api.d.mts +0 -3
- package/dist/api.js.map +0 -1
- package/dist/api.mjs +0 -46
- package/dist/api.mjs.map +0 -1
- package/dist/components-BeAjVBV3.css +0 -70
- package/dist/components-BeAjVBV3.css.map +0 -1
- package/dist/components-DfXnN1Hx.js +0 -14689
- package/dist/components-DfXnN1Hx.js.map +0 -1
- package/dist/components-iUxcqtUB.css +0 -70
- package/dist/components-iUxcqtUB.css.map +0 -1
- package/dist/components-jh6r4tQn.mjs +0 -12348
- package/dist/components-jh6r4tQn.mjs.map +0 -1
- package/dist/components.d.mts +0 -3
- package/dist/components.mjs +0 -9
- package/dist/const-CaIm1Z8g.mjs +0 -12
- package/dist/const-CaIm1Z8g.mjs.map +0 -1
- package/dist/const-CvdZO0FN.js +0 -24
- package/dist/const-CvdZO0FN.js.map +0 -1
- package/dist/hooks-cQsBXBd1.js +0 -40
- package/dist/hooks-cQsBXBd1.js.map +0 -1
- package/dist/hooks-eaHm_yEp.mjs +0 -33
- package/dist/hooks-eaHm_yEp.mjs.map +0 -1
- package/dist/hooks.d.mts +0 -3
- package/dist/hooks.mjs +0 -8
- package/dist/html2canvas-pro.esm-CsuSOHXp.js +0 -7250
- package/dist/html2canvas-pro.esm-CsuSOHXp.js.map +0 -1
- package/dist/html2canvas-pro.esm-E7kpobrC.mjs +0 -7249
- package/dist/html2canvas-pro.esm-E7kpobrC.mjs.map +0 -1
- package/dist/index-B5bpmv0i.d.mts +0 -2172
- package/dist/index-B5bpmv0i.d.mts.map +0 -1
- package/dist/index-B9lSPJTi.d.ts +0 -2170
- package/dist/index-B9lSPJTi.d.ts.map +0 -1
- package/dist/index.d.mts +0 -3
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -20
- package/dist/index.mjs.map +0 -1
- package/dist/mui-theme-CUhybmBq.mjs +0 -696
- package/dist/mui-theme-CUhybmBq.mjs.map +0 -1
- package/dist/mui-theme-iBHkjXJq.js +0 -732
- package/dist/mui-theme-iBHkjXJq.js.map +0 -1
- package/dist/state-CTITyT0R.js +0 -795
- package/dist/state-CTITyT0R.js.map +0 -1
- package/dist/state-Sc2b4jri.mjs +0 -382
- package/dist/state-Sc2b4jri.mjs.map +0 -1
- package/dist/theme.d.mts +0 -3
- package/dist/theme.mjs +0 -4
- package/dist/tooltipMessage-BC5W7H3X.js +0 -13
- package/dist/tooltipMessage-BC5W7H3X.js.map +0 -1
- package/dist/tooltipMessage-B_xMIKWL.mjs +0 -7
- package/dist/tooltipMessage-B_xMIKWL.mjs.map +0 -1
- package/dist/types.d.mts +0 -3
- package/dist/types.mjs +0 -6
- package/dist/urls-BQW5wjg-.js +0 -13
- package/dist/urls-BQW5wjg-.js.map +0 -1
- package/dist/urls-DT7FVEcS.mjs +0 -7
- package/dist/urls-DT7FVEcS.mjs.map +0 -1
- package/dist/version-B9s8yne-.js +0 -300
- package/dist/version-B9s8yne-.js.map +0 -1
- package/dist/version-DP1kU_7v.mjs +0 -162
- package/dist/version-DP1kU_7v.mjs.map +0 -1
- package/recce-source/.editorconfig +0 -26
- package/recce-source/.flake8 +0 -37
- package/recce-source/.github/ISSUE_TEMPLATE/bug_report.yml +0 -67
- package/recce-source/.github/ISSUE_TEMPLATE/custom.md +0 -10
- package/recce-source/.github/ISSUE_TEMPLATE/feature_request.yml +0 -42
- package/recce-source/.github/PULL_REQUEST_TEMPLATE.md +0 -21
- package/recce-source/.github/copilot-instructions.md +0 -331
- package/recce-source/.github/instructions/backend-instructions.md +0 -541
- package/recce-source/.github/instructions/frontend-instructions.md +0 -317
- package/recce-source/.github/workflows/build-statics.yaml +0 -72
- package/recce-source/.github/workflows/bump.yaml +0 -48
- package/recce-source/.github/workflows/integration-tests-cloud.yaml +0 -92
- package/recce-source/.github/workflows/integration-tests-sqlmesh.yaml +0 -33
- package/recce-source/.github/workflows/integration-tests.yaml +0 -52
- package/recce-source/.github/workflows/nightly.yaml +0 -246
- package/recce-source/.github/workflows/release.yaml +0 -196
- package/recce-source/.github/workflows/tests-js.yaml +0 -58
- package/recce-source/.github/workflows/tests-python.yaml +0 -128
- package/recce-source/.pre-commit-config.yaml +0 -26
- package/recce-source/CLAUDE.md +0 -483
- package/recce-source/CODE_OF_CONDUCT.md +0 -128
- package/recce-source/CONTRIBUTING.md +0 -107
- package/recce-source/LICENSE +0 -201
- package/recce-source/Makefile +0 -126
- package/recce-source/README.md +0 -182
- package/recce-source/RECCE_CLOUD.md +0 -81
- package/recce-source/SECURITY.md +0 -25
- package/recce-source/docs/PACKAGING.md +0 -340
- package/recce-source/docs/README.md +0 -1
- package/recce-source/docs/plans/2024-12-31-csv-download-design.md +0 -121
- package/recce-source/docs/plans/2024-12-31-csv-download-implementation.md +0 -930
- package/recce-source/integration_tests/dbt/dbt_project.yml +0 -26
- package/recce-source/integration_tests/dbt/models/customers.sql +0 -69
- package/recce-source/integration_tests/dbt/models/docs.md +0 -14
- package/recce-source/integration_tests/dbt/models/orders.sql +0 -56
- package/recce-source/integration_tests/dbt/models/schema.yml +0 -82
- package/recce-source/integration_tests/dbt/models/staging/schema.yml +0 -31
- package/recce-source/integration_tests/dbt/models/staging/stg_customers.sql +0 -22
- package/recce-source/integration_tests/dbt/models/staging/stg_orders.sql +0 -23
- package/recce-source/integration_tests/dbt/models/staging/stg_payments.sql +0 -25
- package/recce-source/integration_tests/dbt/packages.yml +0 -7
- package/recce-source/integration_tests/dbt/profiles.yml +0 -8
- package/recce-source/integration_tests/dbt/seeds/raw_customers.csv +0 -101
- package/recce-source/integration_tests/dbt/seeds/raw_orders.csv +0 -100
- package/recce-source/integration_tests/dbt/seeds/raw_payments.csv +0 -114
- package/recce-source/integration_tests/dbt/seeds/raw_statuses.csv +0 -5
- package/recce-source/integration_tests/dbt/smoke_test.sh +0 -72
- package/recce-source/integration_tests/dbt/smoke_test_cloud.sh +0 -71
- package/recce-source/integration_tests/sqlmesh/__init__.py +0 -0
- package/recce-source/integration_tests/sqlmesh/audits/assert_item_price_above_zero.sql +0 -9
- package/recce-source/integration_tests/sqlmesh/audits/items.sql +0 -7
- package/recce-source/integration_tests/sqlmesh/audits/order_items.sql +0 -7
- package/recce-source/integration_tests/sqlmesh/config.py +0 -171
- package/recce-source/integration_tests/sqlmesh/helper.py +0 -20
- package/recce-source/integration_tests/sqlmesh/hooks/__init__.py +0 -0
- package/recce-source/integration_tests/sqlmesh/macros/__init__.py +0 -0
- package/recce-source/integration_tests/sqlmesh/macros/macros.py +0 -8
- package/recce-source/integration_tests/sqlmesh/macros/macros.sql +0 -8
- package/recce-source/integration_tests/sqlmesh/macros/utils.py +0 -11
- package/recce-source/integration_tests/sqlmesh/metrics/metrics.sql +0 -25
- package/recce-source/integration_tests/sqlmesh/models/customer_revenue_by_day.sql +0 -41
- package/recce-source/integration_tests/sqlmesh/models/customer_revenue_lifetime.sql +0 -60
- package/recce-source/integration_tests/sqlmesh/models/customers.sql +0 -32
- package/recce-source/integration_tests/sqlmesh/models/items.py +0 -95
- package/recce-source/integration_tests/sqlmesh/models/marketing.sql +0 -15
- package/recce-source/integration_tests/sqlmesh/models/order_items.py +0 -95
- package/recce-source/integration_tests/sqlmesh/models/orders.py +0 -70
- package/recce-source/integration_tests/sqlmesh/models/raw_marketing.py +0 -62
- package/recce-source/integration_tests/sqlmesh/models/top_waiters.sql +0 -23
- package/recce-source/integration_tests/sqlmesh/models/waiter_as_customer_by_day.sql +0 -29
- package/recce-source/integration_tests/sqlmesh/models/waiter_names.sql +0 -10
- package/recce-source/integration_tests/sqlmesh/models/waiter_revenue_by_day.sql +0 -29
- package/recce-source/integration_tests/sqlmesh/models/waiters.py +0 -62
- package/recce-source/integration_tests/sqlmesh/prep_env.sh +0 -16
- package/recce-source/integration_tests/sqlmesh/schema.yaml +0 -5
- package/recce-source/integration_tests/sqlmesh/seeds/waiter_names.csv +0 -11
- package/recce-source/integration_tests/sqlmesh/test_server.sh +0 -29
- package/recce-source/integration_tests/sqlmesh/tests/test_customer_revenue_by_day.yaml +0 -63
- package/recce-source/integration_tests/sqlmesh/tests/test_order_items.yaml +0 -72
- package/recce-source/js/.editorconfig +0 -27
- package/recce-source/js/.env.development +0 -5
- package/recce-source/js/.husky/pre-commit +0 -29
- package/recce-source/js/.nvmrc +0 -1
- package/recce-source/js/README.md +0 -39
- package/recce-source/js/app/(mainComponents)/DisplayModeToggle.tsx +0 -65
- package/recce-source/js/app/(mainComponents)/NavBar.tsx +0 -228
- package/recce-source/js/app/(mainComponents)/RecceVersionBadge.tsx +0 -107
- package/recce-source/js/app/(mainComponents)/TopBar.tsx +0 -252
- package/recce-source/js/app/@lineage/default.tsx +0 -20
- package/recce-source/js/app/@lineage/page.tsx +0 -14
- package/recce-source/js/app/MainLayout.tsx +0 -170
- package/recce-source/js/app/Providers.tsx +0 -49
- package/recce-source/js/app/checks/page.tsx +0 -296
- package/recce-source/js/app/error.tsx +0 -93
- package/recce-source/js/app/favicon.ico +0 -0
- package/recce-source/js/app/global-error.tsx +0 -115
- package/recce-source/js/app/global.css +0 -82
- package/recce-source/js/app/layout.tsx +0 -48
- package/recce-source/js/app/lineage/page.tsx +0 -15
- package/recce-source/js/app/page.tsx +0 -12
- package/recce-source/js/app/query/page.tsx +0 -8
- package/recce-source/js/biome.json +0 -313
- package/recce-source/js/jest.config.js +0 -34
- package/recce-source/js/jest.globals.d.ts +0 -32
- package/recce-source/js/jest.setup.js +0 -91
- package/recce-source/js/next.config.js +0 -16
- package/recce-source/js/package-lock.json +0 -13843
- package/recce-source/js/package.json +0 -123
- package/recce-source/js/pnpm-lock.yaml +0 -9235
- package/recce-source/js/pnpm-workspace.yaml +0 -6
- package/recce-source/js/postcss.config.js +0 -5
- package/recce-source/js/public/auth_callback.html +0 -68
- package/recce-source/js/public/imgs/feedback/thumbs-down.png +0 -0
- package/recce-source/js/public/imgs/feedback/thumbs-up.png +0 -0
- package/recce-source/js/public/imgs/reload-image.svg +0 -4
- package/recce-source/js/public/logo/recce-logo-white.png +0 -0
- package/recce-source/js/src/components/AuthModal/AuthModal.tsx +0 -202
- package/recce-source/js/src/components/app/AvatarDropdown.tsx +0 -159
- package/recce-source/js/src/components/app/EnvInfo.tsx +0 -357
- package/recce-source/js/src/components/app/Filename.tsx +0 -388
- package/recce-source/js/src/components/app/SetupConnectionPopover.tsx +0 -91
- package/recce-source/js/src/components/app/StateExporter.tsx +0 -57
- package/recce-source/js/src/components/app/StateImporter.tsx +0 -198
- package/recce-source/js/src/components/app/StateSharing.tsx +0 -145
- package/recce-source/js/src/components/app/StateSynchronizer.tsx +0 -205
- package/recce-source/js/src/components/charts/HistogramChart.tsx +0 -291
- package/recce-source/js/src/components/charts/SquareIcon.tsx +0 -51
- package/recce-source/js/src/components/charts/TopKSummaryList.tsx +0 -457
- package/recce-source/js/src/components/charts/chartTheme.ts +0 -74
- package/recce-source/js/src/components/check/CheckBreadcrumb.tsx +0 -97
- package/recce-source/js/src/components/check/CheckDescription.tsx +0 -134
- package/recce-source/js/src/components/check/CheckDetail.tsx +0 -797
- package/recce-source/js/src/components/check/CheckEmptyState.tsx +0 -84
- package/recce-source/js/src/components/check/CheckList.tsx +0 -320
- package/recce-source/js/src/components/check/LineageDiffView.tsx +0 -32
- package/recce-source/js/src/components/check/PresetCheckTemplateView.tsx +0 -48
- package/recce-source/js/src/components/check/SchemaDiffView.tsx +0 -290
- package/recce-source/js/src/components/check/check.ts +0 -25
- package/recce-source/js/src/components/check/timeline/CheckTimeline.tsx +0 -163
- package/recce-source/js/src/components/check/timeline/CommentInput.tsx +0 -84
- package/recce-source/js/src/components/check/timeline/TimelineEvent.tsx +0 -468
- package/recce-source/js/src/components/check/timeline/index.ts +0 -12
- package/recce-source/js/src/components/check/utils.ts +0 -12
- package/recce-source/js/src/components/data-grid/ScreenshotDataGrid.tsx +0 -333
- package/recce-source/js/src/components/data-grid/agGridStyles.css +0 -55
- package/recce-source/js/src/components/data-grid/agGridTheme.ts +0 -43
- package/recce-source/js/src/components/editor/CodeEditor.tsx +0 -107
- package/recce-source/js/src/components/editor/DiffEditor.tsx +0 -162
- package/recce-source/js/src/components/editor/index.ts +0 -12
- package/recce-source/js/src/components/errorboundary/ErrorBoundary.tsx +0 -87
- package/recce-source/js/src/components/histogram/HistogramDiffForm.tsx +0 -147
- package/recce-source/js/src/components/histogram/HistogramDiffResultView.tsx +0 -63
- package/recce-source/js/src/components/icons/index.tsx +0 -142
- package/recce-source/js/src/components/lineage/ActionControl.tsx +0 -63
- package/recce-source/js/src/components/lineage/ActionTag.tsx +0 -141
- package/recce-source/js/src/components/lineage/ChangeStatusLegend.tsx +0 -46
- package/recce-source/js/src/components/lineage/ColumnLevelLineageControl.tsx +0 -327
- package/recce-source/js/src/components/lineage/ColumnLevelLineageLegend.tsx +0 -57
- package/recce-source/js/src/components/lineage/GraphColumnNode.tsx +0 -199
- package/recce-source/js/src/components/lineage/GraphEdge.tsx +0 -59
- package/recce-source/js/src/components/lineage/GraphNode.tsx +0 -555
- package/recce-source/js/src/components/lineage/LineagePage.tsx +0 -10
- package/recce-source/js/src/components/lineage/LineageView.tsx +0 -1384
- package/recce-source/js/src/components/lineage/LineageViewContext.tsx +0 -86
- package/recce-source/js/src/components/lineage/LineageViewContextMenu.tsx +0 -637
- package/recce-source/js/src/components/lineage/LineageViewNotification.tsx +0 -64
- package/recce-source/js/src/components/lineage/LineageViewTopBar.tsx +0 -596
- package/recce-source/js/src/components/lineage/NodeSqlView.tsx +0 -136
- package/recce-source/js/src/components/lineage/NodeTag.tsx +0 -278
- package/recce-source/js/src/components/lineage/NodeView.tsx +0 -642
- package/recce-source/js/src/components/lineage/SandboxView.tsx +0 -436
- package/recce-source/js/src/components/lineage/ServerDisconnectedModalContent.tsx +0 -105
- package/recce-source/js/src/components/lineage/SetupConnectionBanner.tsx +0 -52
- package/recce-source/js/src/components/lineage/SingleEnvironmentQueryView.tsx +0 -152
- package/recce-source/js/src/components/lineage/graph.test.ts +0 -31
- package/recce-source/js/src/components/lineage/graph.ts +0 -58
- package/recce-source/js/src/components/lineage/lineage.test.ts +0 -169
- package/recce-source/js/src/components/lineage/lineage.ts +0 -521
- package/recce-source/js/src/components/lineage/styles.css +0 -42
- package/recce-source/js/src/components/lineage/styles.tsx +0 -165
- package/recce-source/js/src/components/lineage/useMultiNodesAction.ts +0 -352
- package/recce-source/js/src/components/lineage/useValueDiffAlertDialog.tsx +0 -108
- package/recce-source/js/src/components/onboarding-guide/Notification.tsx +0 -62
- package/recce-source/js/src/components/profile/ProfileDiffForm.tsx +0 -134
- package/recce-source/js/src/components/profile/ProfileDiffResultView.tsx +0 -243
- package/recce-source/js/src/components/query/ChangedOnlyCheckbox.tsx +0 -29
- package/recce-source/js/src/components/query/DiffText.tsx +0 -120
- package/recce-source/js/src/components/query/QueryDiffResultView.tsx +0 -468
- package/recce-source/js/src/components/query/QueryForm.tsx +0 -80
- package/recce-source/js/src/components/query/QueryPage.tsx +0 -282
- package/recce-source/js/src/components/query/QueryResultView.tsx +0 -180
- package/recce-source/js/src/components/query/SetupConnectionGuide.tsx +0 -57
- package/recce-source/js/src/components/query/SqlEditor.tsx +0 -245
- package/recce-source/js/src/components/query/ToggleSwitch.tsx +0 -84
- package/recce-source/js/src/components/query/styles.css +0 -21
- package/recce-source/js/src/components/routing/DirectUrlAccess.test.tsx +0 -428
- package/recce-source/js/src/components/routing/LineageStatePreservation.test.tsx +0 -311
- package/recce-source/js/src/components/routing/Navigation.test.tsx +0 -256
- package/recce-source/js/src/components/rowcount/RowCountDiffResultView.tsx +0 -108
- package/recce-source/js/src/components/rowcount/delta.test.ts +0 -51
- package/recce-source/js/src/components/rowcount/delta.ts +0 -16
- package/recce-source/js/src/components/run/RunList.tsx +0 -303
- package/recce-source/js/src/components/run/RunModal.tsx +0 -191
- package/recce-source/js/src/components/run/RunPage.tsx +0 -26
- package/recce-source/js/src/components/run/RunResultPane.tsx +0 -578
- package/recce-source/js/src/components/run/RunStatusAndDate.tsx +0 -106
- package/recce-source/js/src/components/run/RunToolbar.tsx +0 -70
- package/recce-source/js/src/components/run/RunView.tsx +0 -196
- package/recce-source/js/src/components/run/registry.ts +0 -214
- package/recce-source/js/src/components/run/types.ts +0 -14
- package/recce-source/js/src/components/schema/ColumnNameCell.test.tsx +0 -169
- package/recce-source/js/src/components/schema/ColumnNameCell.tsx +0 -198
- package/recce-source/js/src/components/schema/SchemaView.tsx +0 -336
- package/recce-source/js/src/components/schema/schemaDiff.ts +0 -32
- package/recce-source/js/src/components/schema/style.css +0 -134
- package/recce-source/js/src/components/screenshot/ScreenshotBox.tsx +0 -39
- package/recce-source/js/src/components/shared/HistoryToggle.tsx +0 -35
- package/recce-source/js/src/components/split/Split.tsx +0 -40
- package/recce-source/js/src/components/split/styles.css +0 -24
- package/recce-source/js/src/components/summary/ChangeSummary.tsx +0 -264
- package/recce-source/js/src/components/summary/SchemaSummary.tsx +0 -123
- package/recce-source/js/src/components/summary/SummaryView.tsx +0 -29
- package/recce-source/js/src/components/timeout/IdleTimeoutBadge.tsx +0 -48
- package/recce-source/js/src/components/top-k/TopKDiffForm.tsx +0 -58
- package/recce-source/js/src/components/top-k/TopKDiffResultView.tsx +0 -73
- package/recce-source/js/src/components/ui/dataGrid/DataFrameColumnGroupHeader.tsx +0 -228
- package/recce-source/js/src/components/ui/dataGrid/DataFrameColumnHeader.tsx +0 -113
- package/recce-source/js/src/components/ui/dataGrid/defaultRenderCell.tsx +0 -72
- package/recce-source/js/src/components/ui/dataGrid/index.ts +0 -23
- package/recce-source/js/src/components/ui/dataGrid/inlineRenderCell.test.tsx +0 -607
- package/recce-source/js/src/components/ui/dataGrid/inlineRenderCell.tsx +0 -211
- package/recce-source/js/src/components/ui/dataGrid/schemaCells.test.tsx +0 -452
- package/recce-source/js/src/components/ui/dataGrid/schemaCells.tsx +0 -142
- package/recce-source/js/src/components/ui/dataGrid/valueDiffCells.test.tsx +0 -178
- package/recce-source/js/src/components/ui/dataGrid/valueDiffCells.tsx +0 -275
- package/recce-source/js/src/components/ui/markdown/ExternalLinkConfirmDialog.tsx +0 -134
- package/recce-source/js/src/components/ui/markdown/MarkdownContent.tsx +0 -364
- package/recce-source/js/src/components/ui/mui/index.ts +0 -13
- package/recce-source/js/src/components/ui/mui-provider.tsx +0 -67
- package/recce-source/js/src/components/ui/mui-theme.ts +0 -1039
- package/recce-source/js/src/components/ui/mui-utils.ts +0 -113
- package/recce-source/js/src/components/ui/toaster.tsx +0 -288
- package/recce-source/js/src/components/valuediff/ValueDiffDetailResultView.tsx +0 -216
- package/recce-source/js/src/components/valuediff/ValueDiffForm.tsx +0 -246
- package/recce-source/js/src/components/valuediff/ValueDiffResultView.tsx +0 -81
- package/recce-source/js/src/components/valuediff/shared.ts +0 -33
- package/recce-source/js/src/constants/tooltipMessage.ts +0 -3
- package/recce-source/js/src/constants/urls.ts +0 -1
- package/recce-source/js/src/lib/UrlHash.ts +0 -12
- package/recce-source/js/src/lib/api/adhocQuery.ts +0 -70
- package/recce-source/js/src/lib/api/axiosClient.ts +0 -9
- package/recce-source/js/src/lib/api/cacheKeys.ts +0 -13
- package/recce-source/js/src/lib/api/checkEvents.ts +0 -252
- package/recce-source/js/src/lib/api/checks.ts +0 -129
- package/recce-source/js/src/lib/api/cll.ts +0 -53
- package/recce-source/js/src/lib/api/connectToCloud.ts +0 -13
- package/recce-source/js/src/lib/api/flag.ts +0 -37
- package/recce-source/js/src/lib/api/info.ts +0 -198
- package/recce-source/js/src/lib/api/instanceInfo.ts +0 -25
- package/recce-source/js/src/lib/api/keepAlive.ts +0 -108
- package/recce-source/js/src/lib/api/lineagecheck.ts +0 -35
- package/recce-source/js/src/lib/api/localStorageKeys.ts +0 -7
- package/recce-source/js/src/lib/api/models.ts +0 -59
- package/recce-source/js/src/lib/api/profile.ts +0 -65
- package/recce-source/js/src/lib/api/rowcount.ts +0 -19
- package/recce-source/js/src/lib/api/runs.ts +0 -174
- package/recce-source/js/src/lib/api/schemacheck.ts +0 -31
- package/recce-source/js/src/lib/api/select.ts +0 -25
- package/recce-source/js/src/lib/api/sessionStorageKeys.ts +0 -8
- package/recce-source/js/src/lib/api/state.ts +0 -117
- package/recce-source/js/src/lib/api/track.ts +0 -281
- package/recce-source/js/src/lib/api/types.ts +0 -284
- package/recce-source/js/src/lib/api/user.ts +0 -42
- package/recce-source/js/src/lib/api/valuediff.ts +0 -46
- package/recce-source/js/src/lib/api/version.ts +0 -40
- package/recce-source/js/src/lib/const.ts +0 -9
- package/recce-source/js/src/lib/csv/extractors.test.ts +0 -456
- package/recce-source/js/src/lib/csv/extractors.ts +0 -468
- package/recce-source/js/src/lib/csv/format.test.ts +0 -211
- package/recce-source/js/src/lib/csv/format.ts +0 -44
- package/recce-source/js/src/lib/csv/index.test.ts +0 -155
- package/recce-source/js/src/lib/csv/index.ts +0 -109
- package/recce-source/js/src/lib/dataGrid/crossFunctionConsistency.test.ts +0 -626
- package/recce-source/js/src/lib/dataGrid/dataGridFactory.test.ts +0 -2140
- package/recce-source/js/src/lib/dataGrid/dataGridFactory.ts +0 -397
- package/recce-source/js/src/lib/dataGrid/generators/rowCountUtils.test.ts +0 -132
- package/recce-source/js/src/lib/dataGrid/generators/rowCountUtils.ts +0 -126
- package/recce-source/js/src/lib/dataGrid/generators/toDataDiffGrid.test.ts +0 -1627
- package/recce-source/js/src/lib/dataGrid/generators/toDataDiffGrid.ts +0 -140
- package/recce-source/js/src/lib/dataGrid/generators/toDataGrid.ts +0 -67
- package/recce-source/js/src/lib/dataGrid/generators/toRowCountDataGrid.test.ts +0 -142
- package/recce-source/js/src/lib/dataGrid/generators/toRowCountDataGrid.ts +0 -71
- package/recce-source/js/src/lib/dataGrid/generators/toRowCountDiffDataGrid.test.ts +0 -258
- package/recce-source/js/src/lib/dataGrid/generators/toRowCountDiffDataGrid.ts +0 -153
- package/recce-source/js/src/lib/dataGrid/generators/toSchemaDataGrid.test.ts +0 -951
- package/recce-source/js/src/lib/dataGrid/generators/toSchemaDataGrid.ts +0 -221
- package/recce-source/js/src/lib/dataGrid/generators/toValueDataGrid.test.ts +0 -395
- package/recce-source/js/src/lib/dataGrid/generators/toValueDataGrid.ts +0 -184
- package/recce-source/js/src/lib/dataGrid/generators/toValueDiffGrid.test.ts +0 -884
- package/recce-source/js/src/lib/dataGrid/generators/toValueDiffGrid.ts +0 -113
- package/recce-source/js/src/lib/dataGrid/index.ts +0 -51
- package/recce-source/js/src/lib/dataGrid/propertyBased.test.ts +0 -858
- package/recce-source/js/src/lib/dataGrid/shared/columnBuilders.test.ts +0 -482
- package/recce-source/js/src/lib/dataGrid/shared/columnBuilders.ts +0 -345
- package/recce-source/js/src/lib/dataGrid/shared/dataTypeEdgeCases.test.ts +0 -698
- package/recce-source/js/src/lib/dataGrid/shared/diffColumnBuilder.test.tsx +0 -820
- package/recce-source/js/src/lib/dataGrid/shared/diffColumnBuilder.tsx +0 -277
- package/recce-source/js/src/lib/dataGrid/shared/gridUtils.test.ts +0 -785
- package/recce-source/js/src/lib/dataGrid/shared/gridUtils.ts +0 -370
- package/recce-source/js/src/lib/dataGrid/shared/index.ts +0 -81
- package/recce-source/js/src/lib/dataGrid/shared/rowBuilders.test.ts +0 -909
- package/recce-source/js/src/lib/dataGrid/shared/rowBuilders.ts +0 -325
- package/recce-source/js/src/lib/dataGrid/shared/simpleColumnBuilder.tsx +0 -240
- package/recce-source/js/src/lib/dataGrid/shared/toDiffColumn.test.tsx +0 -719
- package/recce-source/js/src/lib/dataGrid/shared/toDiffColumn.tsx +0 -231
- package/recce-source/js/src/lib/dataGrid/shared/validation.test.ts +0 -559
- package/recce-source/js/src/lib/dataGrid/shared/validation.ts +0 -367
- package/recce-source/js/src/lib/dataGrid/warehouseNamingConventions.test.ts +0 -1117
- package/recce-source/js/src/lib/formatSelect.ts +0 -50
- package/recce-source/js/src/lib/hooks/ApiConfigContext.tsx +0 -181
- package/recce-source/js/src/lib/hooks/IdleTimeoutContext.tsx +0 -177
- package/recce-source/js/src/lib/hooks/LineageGraphContext.tsx +0 -512
- package/recce-source/js/src/lib/hooks/RecceActionContext.tsx +0 -269
- package/recce-source/js/src/lib/hooks/RecceCheckContext.tsx +0 -33
- package/recce-source/js/src/lib/hooks/RecceContextProvider.tsx +0 -54
- package/recce-source/js/src/lib/hooks/RecceInstanceContext.tsx +0 -129
- package/recce-source/js/src/lib/hooks/RecceQueryContext.tsx +0 -98
- package/recce-source/js/src/lib/hooks/RecceShareStateContext.tsx +0 -59
- package/recce-source/js/src/lib/hooks/ScreenShot.tsx +0 -399
- package/recce-source/js/src/lib/hooks/useAppRouter.test.ts +0 -211
- package/recce-source/js/src/lib/hooks/useAppRouter.ts +0 -200
- package/recce-source/js/src/lib/hooks/useCSVExport.ts +0 -136
- package/recce-source/js/src/lib/hooks/useCheckEvents.ts +0 -99
- package/recce-source/js/src/lib/hooks/useCheckToast.tsx +0 -14
- package/recce-source/js/src/lib/hooks/useClipBoardToast.tsx +0 -27
- package/recce-source/js/src/lib/hooks/useCountdownToast.tsx +0 -102
- package/recce-source/js/src/lib/hooks/useFeedbackCollectionToast.tsx +0 -130
- package/recce-source/js/src/lib/hooks/useGuideToast.tsx +0 -45
- package/recce-source/js/src/lib/hooks/useIdleDetection.tsx +0 -185
- package/recce-source/js/src/lib/hooks/useModelColumns.tsx +0 -113
- package/recce-source/js/src/lib/hooks/useRecceInstanceInfo.tsx +0 -13
- package/recce-source/js/src/lib/hooks/useRecceServerFlag.tsx +0 -13
- package/recce-source/js/src/lib/hooks/useRun.tsx +0 -89
- package/recce-source/js/src/lib/hooks/useThemeColors.ts +0 -115
- package/recce-source/js/src/lib/mergeKeys.test.ts +0 -89
- package/recce-source/js/src/lib/mergeKeys.ts +0 -86
- package/recce-source/js/src/lib/result/ResultErrorFallback.tsx +0 -9
- package/recce-source/js/src/lib/utils/formatTime.ts +0 -84
- package/recce-source/js/src/lib/utils/urls.ts +0 -16
- package/recce-source/js/src/utils/DropdownValuesInput.tsx +0 -297
- package/recce-source/js/src/utils/formatters.tsx +0 -237
- package/recce-source/js/src/utils/transforms.ts +0 -81
- package/recce-source/js/tsconfig.json +0 -47
- package/recce-source/macros/README.md +0 -8
- package/recce-source/macros/recce_athena.sql +0 -73
- package/recce-source/pyproject.toml +0 -109
- package/recce-source/recce/VERSION +0 -1
- package/recce-source/recce/__init__.py +0 -84
- package/recce-source/recce/adapter/__init__.py +0 -0
- package/recce-source/recce/adapter/base.py +0 -109
- package/recce-source/recce/adapter/dbt_adapter/__init__.py +0 -1699
- package/recce-source/recce/adapter/dbt_adapter/dbt_version.py +0 -42
- package/recce-source/recce/adapter/sqlmesh_adapter.py +0 -141
- package/recce-source/recce/apis/__init__.py +0 -0
- package/recce-source/recce/apis/check_api.py +0 -203
- package/recce-source/recce/apis/check_events_api.py +0 -353
- package/recce-source/recce/apis/check_func.py +0 -130
- package/recce-source/recce/apis/run_api.py +0 -130
- package/recce-source/recce/apis/run_func.py +0 -258
- package/recce-source/recce/artifact.py +0 -266
- package/recce-source/recce/cli.py +0 -1846
- package/recce-source/recce/config.py +0 -127
- package/recce-source/recce/connect_to_cloud.py +0 -138
- package/recce-source/recce/core.py +0 -334
- package/recce-source/recce/diff.py +0 -26
- package/recce-source/recce/event/CONFIG +0 -1
- package/recce-source/recce/event/SENTRY_DNS +0 -1
- package/recce-source/recce/event/__init__.py +0 -304
- package/recce-source/recce/event/collector.py +0 -184
- package/recce-source/recce/event/track.py +0 -158
- package/recce-source/recce/exceptions.py +0 -21
- package/recce-source/recce/git.py +0 -77
- package/recce-source/recce/github.py +0 -222
- package/recce-source/recce/mcp_server.py +0 -885
- package/recce-source/recce/models/__init__.py +0 -6
- package/recce-source/recce/models/check.py +0 -481
- package/recce-source/recce/models/run.py +0 -46
- package/recce-source/recce/models/types.py +0 -218
- package/recce-source/recce/pull_request.py +0 -124
- package/recce-source/recce/run.py +0 -390
- package/recce-source/recce/server.py +0 -877
- package/recce-source/recce/state/__init__.py +0 -31
- package/recce-source/recce/state/cloud.py +0 -644
- package/recce-source/recce/state/const.py +0 -26
- package/recce-source/recce/state/local.py +0 -56
- package/recce-source/recce/state/state.py +0 -119
- package/recce-source/recce/state/state_loader.py +0 -174
- package/recce-source/recce/summary.py +0 -575
- package/recce-source/recce/tasks/__init__.py +0 -23
- package/recce-source/recce/tasks/core.py +0 -134
- package/recce-source/recce/tasks/dataframe.py +0 -170
- package/recce-source/recce/tasks/histogram.py +0 -433
- package/recce-source/recce/tasks/lineage.py +0 -19
- package/recce-source/recce/tasks/profile.py +0 -298
- package/recce-source/recce/tasks/query.py +0 -450
- package/recce-source/recce/tasks/rowcount.py +0 -277
- package/recce-source/recce/tasks/schema.py +0 -65
- package/recce-source/recce/tasks/top_k.py +0 -172
- package/recce-source/recce/tasks/utils.py +0 -147
- package/recce-source/recce/tasks/valuediff.py +0 -497
- package/recce-source/recce/util/__init__.py +0 -4
- package/recce-source/recce/util/api_token.py +0 -80
- package/recce-source/recce/util/breaking.py +0 -330
- package/recce-source/recce/util/cache.py +0 -25
- package/recce-source/recce/util/cll.py +0 -355
- package/recce-source/recce/util/cloud/__init__.py +0 -15
- package/recce-source/recce/util/cloud/base.py +0 -115
- package/recce-source/recce/util/cloud/check_events.py +0 -190
- package/recce-source/recce/util/cloud/checks.py +0 -242
- package/recce-source/recce/util/io.py +0 -120
- package/recce-source/recce/util/lineage.py +0 -83
- package/recce-source/recce/util/logger.py +0 -25
- package/recce-source/recce/util/onboarding_state.py +0 -45
- package/recce-source/recce/util/perf_tracking.py +0 -85
- package/recce-source/recce/util/pydantic_model.py +0 -22
- package/recce-source/recce/util/recce_cloud.py +0 -454
- package/recce-source/recce/util/singleton.py +0 -18
- package/recce-source/recce/util/startup_perf.py +0 -121
- package/recce-source/recce/yaml/__init__.py +0 -58
- package/recce-source/recce_cloud/README.md +0 -780
- package/recce-source/recce_cloud/VERSION +0 -1
- package/recce-source/recce_cloud/__init__.py +0 -24
- package/recce-source/recce_cloud/api/__init__.py +0 -17
- package/recce-source/recce_cloud/api/base.py +0 -132
- package/recce-source/recce_cloud/api/client.py +0 -186
- package/recce-source/recce_cloud/api/exceptions.py +0 -26
- package/recce-source/recce_cloud/api/factory.py +0 -63
- package/recce-source/recce_cloud/api/github.py +0 -106
- package/recce-source/recce_cloud/api/gitlab.py +0 -111
- package/recce-source/recce_cloud/artifact.py +0 -57
- package/recce-source/recce_cloud/ci_providers/__init__.py +0 -9
- package/recce-source/recce_cloud/ci_providers/base.py +0 -82
- package/recce-source/recce_cloud/ci_providers/detector.py +0 -147
- package/recce-source/recce_cloud/ci_providers/github_actions.py +0 -136
- package/recce-source/recce_cloud/ci_providers/gitlab_ci.py +0 -130
- package/recce-source/recce_cloud/cli.py +0 -434
- package/recce-source/recce_cloud/download.py +0 -230
- package/recce-source/recce_cloud/hatch_build.py +0 -20
- package/recce-source/recce_cloud/pyproject.toml +0 -49
- package/recce-source/recce_cloud/upload.py +0 -214
- package/recce-source/test.py +0 -0
- package/recce-source/tests/__init__.py +0 -0
- package/recce-source/tests/adapter/__init__.py +0 -0
- package/recce-source/tests/adapter/dbt_adapter/__init__.py +0 -0
- package/recce-source/tests/adapter/dbt_adapter/conftest.py +0 -17
- package/recce-source/tests/adapter/dbt_adapter/dbt_test_helper.py +0 -298
- package/recce-source/tests/adapter/dbt_adapter/test_dbt_adapter.py +0 -25
- package/recce-source/tests/adapter/dbt_adapter/test_dbt_cll.py +0 -717
- package/recce-source/tests/adapter/dbt_adapter/test_proj/dbt_project.yml +0 -4
- package/recce-source/tests/adapter/dbt_adapter/test_proj/manifest.json +0 -1
- package/recce-source/tests/adapter/dbt_adapter/test_proj/package-lock.yml +0 -8
- package/recce-source/tests/adapter/dbt_adapter/test_proj/packages.yml +0 -7
- package/recce-source/tests/adapter/dbt_adapter/test_proj/profiles.yml +0 -6
- package/recce-source/tests/adapter/dbt_adapter/test_selector.py +0 -205
- package/recce-source/tests/apis/__init__.py +0 -0
- package/recce-source/tests/apis/row_count_diff.json +0 -59
- package/recce-source/tests/apis/test_check_events_api.py +0 -615
- package/recce-source/tests/apis/test_run_func.py +0 -433
- package/recce-source/tests/catalog.json +0 -527
- package/recce-source/tests/data/manifest/base/catalog.json +0 -1
- package/recce-source/tests/data/manifest/base/manifest.json +0 -1
- package/recce-source/tests/data/manifest/pr2/catalog.json +0 -1
- package/recce-source/tests/data/manifest/pr2/manifest.json +0 -1
- package/recce-source/tests/manifest.json +0 -10655
- package/recce-source/tests/models/__init__.py +0 -0
- package/recce-source/tests/models/test_check.py +0 -731
- package/recce-source/tests/models/test_run_models.py +0 -295
- package/recce-source/tests/recce_cloud/__init__.py +0 -0
- package/recce-source/tests/recce_cloud/test_ci_providers.py +0 -351
- package/recce-source/tests/recce_cloud/test_cli.py +0 -735
- package/recce-source/tests/recce_cloud/test_client.py +0 -379
- package/recce-source/tests/recce_cloud/test_platform_clients.py +0 -483
- package/recce-source/tests/recce_state.json +0 -1
- package/recce-source/tests/state/test_cloud.py +0 -719
- package/recce-source/tests/state/test_local.py +0 -164
- package/recce-source/tests/state/test_state_loader.py +0 -211
- package/recce-source/tests/tasks/__init__.py +0 -0
- package/recce-source/tests/tasks/conftest.py +0 -4
- package/recce-source/tests/tasks/test_histogram.py +0 -129
- package/recce-source/tests/tasks/test_lineage.py +0 -55
- package/recce-source/tests/tasks/test_preset_checks.py +0 -64
- package/recce-source/tests/tasks/test_profile.py +0 -397
- package/recce-source/tests/tasks/test_query.py +0 -528
- package/recce-source/tests/tasks/test_row_count.py +0 -133
- package/recce-source/tests/tasks/test_schema.py +0 -122
- package/recce-source/tests/tasks/test_top_k.py +0 -77
- package/recce-source/tests/tasks/test_utils.py +0 -439
- package/recce-source/tests/tasks/test_valuediff.py +0 -361
- package/recce-source/tests/test_cli.py +0 -236
- package/recce-source/tests/test_cli_mcp_optional.py +0 -45
- package/recce-source/tests/test_cloud_listing_cli.py +0 -324
- package/recce-source/tests/test_config.py +0 -43
- package/recce-source/tests/test_connect_to_cloud.py +0 -82
- package/recce-source/tests/test_core.py +0 -174
- package/recce-source/tests/test_dbt.py +0 -36
- package/recce-source/tests/test_mcp_server.py +0 -505
- package/recce-source/tests/test_pull_request.py +0 -130
- package/recce-source/tests/test_server.py +0 -202
- package/recce-source/tests/test_server_lifespan.py +0 -138
- package/recce-source/tests/test_summary.py +0 -73
- package/recce-source/tests/util/__init__.py +0 -0
- package/recce-source/tests/util/cloud/__init__.py +0 -0
- package/recce-source/tests/util/cloud/test_check_events.py +0 -255
- package/recce-source/tests/util/cloud/test_checks.py +0 -204
- package/recce-source/tests/util/test_api_token.py +0 -119
- package/recce-source/tests/util/test_breaking.py +0 -1427
- package/recce-source/tests/util/test_cll.py +0 -706
- package/recce-source/tests/util/test_lineage.py +0 -122
- package/recce-source/tests/util/test_onboarding_state.py +0 -84
- package/recce-source/tests/util/test_recce_cloud.py +0 -231
- package/recce-source/tox.ini +0 -40
- package/recce-source/uv.lock +0 -3928
- package/src/api/index.ts +0 -32
- package/src/components/index.ts +0 -154
- package/src/global.d.ts +0 -14
- package/src/hooks/index.ts +0 -56
- package/src/index.ts +0 -17
- package/src/lib/hooks/RouteConfigContext.ts +0 -139
- package/src/lib/hooks/useAppRouter.ts +0 -240
- package/src/mui-augmentation.d.ts +0 -139
- package/src/theme/index.ts +0 -13
- package/src/theme.ts +0 -23
- package/src/types/index.ts +0 -23
|
@@ -0,0 +1,1501 @@
|
|
|
1
|
+
|
|
2
|
+
import { Bt as ColumnRenderMode, Gt as RowObjectType, Ht as DataFrame, Vt as ColumnType, Wt as RowDataTypes, i as RecceInstanceInfo, it as RowCountResult, nt as RowCountDiffResult, on as NodeData } from "./flag-CiR2E5oz.js";
|
|
3
|
+
import { i as LineageGraph } from "./types-CZre3j02.js";
|
|
4
|
+
import { CellClassParams, ColDef, ColGroupDef, ICellRendererParams } from "ag-grid-community";
|
|
5
|
+
|
|
6
|
+
//#region src/utils/csv/browser.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Trigger browser download of CSV file
|
|
9
|
+
* @param content - CSV string content
|
|
10
|
+
* @param filename - Name for the downloaded file
|
|
11
|
+
*/
|
|
12
|
+
declare function downloadCSV(content: string, filename: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Copy CSV content to clipboard
|
|
15
|
+
* Requires a secure context (HTTPS or localhost)
|
|
16
|
+
* @param content - CSV string content to copy
|
|
17
|
+
* @throws Error if Clipboard API is not available
|
|
18
|
+
*/
|
|
19
|
+
declare function copyCSVToClipboard(content: string): Promise<void>;
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/utils/csv/extractors.d.ts
|
|
22
|
+
interface CSVData {
|
|
23
|
+
columns: string[];
|
|
24
|
+
rows: unknown[][];
|
|
25
|
+
}
|
|
26
|
+
interface CSVExportOptions {
|
|
27
|
+
displayMode?: "inline" | "side_by_side";
|
|
28
|
+
primaryKeys?: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Extract CSV data from a run result
|
|
32
|
+
* @param runType - The type of run (query, query_diff, etc.)
|
|
33
|
+
* @param result - The run result data
|
|
34
|
+
* @param options - Optional export options (e.g., displayMode for query_diff)
|
|
35
|
+
* @returns CSVData or null if the run type doesn't support CSV export
|
|
36
|
+
*/
|
|
37
|
+
declare function extractCSVData(runType: string, result: unknown, options?: CSVExportOptions): CSVData | null;
|
|
38
|
+
/**
|
|
39
|
+
* Check if a run type supports CSV export
|
|
40
|
+
*/
|
|
41
|
+
declare function supportsCSVExport(runType: string): boolean;
|
|
42
|
+
//#endregion
|
|
43
|
+
//#region src/utils/csv/format.d.ts
|
|
44
|
+
/**
|
|
45
|
+
* @file csv/format.ts
|
|
46
|
+
* @description CSV formatting utilities with Excel-friendly output
|
|
47
|
+
*/
|
|
48
|
+
/**
|
|
49
|
+
* Convert tabular data to CSV string
|
|
50
|
+
* @param columns - Column headers
|
|
51
|
+
* @param rows - Row data (array of arrays)
|
|
52
|
+
* @returns CSV string with UTF-8 BOM for Excel compatibility
|
|
53
|
+
*/
|
|
54
|
+
declare function toCSV(columns: string[], rows: unknown[][]): string;
|
|
55
|
+
//#endregion
|
|
56
|
+
//#region src/utils/csv/index.d.ts
|
|
57
|
+
/**
|
|
58
|
+
* Generate timestamp string for filenames
|
|
59
|
+
* Format: YYYYMMDD-HHmmss
|
|
60
|
+
*/
|
|
61
|
+
declare function generateTimestamp(): string;
|
|
62
|
+
/**
|
|
63
|
+
* Generate context-aware CSV filename
|
|
64
|
+
*/
|
|
65
|
+
declare function generateCSVFilename(runType: string, params?: Record<string, unknown>): string;
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region src/utils/dataGrid/columnBuilders.d.ts
|
|
68
|
+
interface ColumnConfig {
|
|
69
|
+
key: string;
|
|
70
|
+
name: string;
|
|
71
|
+
columnType: ColumnType;
|
|
72
|
+
columnStatus?: string;
|
|
73
|
+
columnRenderMode?: ColumnRenderMode;
|
|
74
|
+
frozen?: boolean;
|
|
75
|
+
isPrimaryKey?: boolean;
|
|
76
|
+
}
|
|
77
|
+
interface ColumnOrderConfig {
|
|
78
|
+
primaryKeys: string[];
|
|
79
|
+
pinnedColumns: string[];
|
|
80
|
+
allColumns: string[];
|
|
81
|
+
excludeColumns?: string[];
|
|
82
|
+
}
|
|
83
|
+
interface GridColumnsConfig {
|
|
84
|
+
columnMap: Record<string, {
|
|
85
|
+
key: string;
|
|
86
|
+
colType: ColumnType;
|
|
87
|
+
status?: string;
|
|
88
|
+
}>;
|
|
89
|
+
primaryKeys: string[];
|
|
90
|
+
pinnedColumns: string[];
|
|
91
|
+
columnsRenderMode: Record<string, ColumnRenderMode>;
|
|
92
|
+
changedOnly?: boolean;
|
|
93
|
+
rowStats?: {
|
|
94
|
+
added: number;
|
|
95
|
+
removed: number;
|
|
96
|
+
modified: number;
|
|
97
|
+
};
|
|
98
|
+
excludeColumns?: string[];
|
|
99
|
+
/**
|
|
100
|
+
* When true, throws an error if a primary key or pinned column is not found
|
|
101
|
+
* in the columnMap. When false (default), silently skips missing columns.
|
|
102
|
+
*
|
|
103
|
+
* - querydiff: uses false (lenient, handles schema differences)
|
|
104
|
+
* - valuediff: uses true (strict, PKs must exist)
|
|
105
|
+
*/
|
|
106
|
+
strictMode?: boolean;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Determines the order of columns based on primary keys, pinned columns,
|
|
110
|
+
* and remaining columns.
|
|
111
|
+
*
|
|
112
|
+
* @returns Array of column names in the correct display order
|
|
113
|
+
*/
|
|
114
|
+
declare function buildColumnOrder(config: ColumnOrderConfig): string[];
|
|
115
|
+
/**
|
|
116
|
+
* Checks if a column should be included based on changedOnly filter
|
|
117
|
+
*/
|
|
118
|
+
declare function shouldIncludeColumn(columnStatus: string | undefined, changedOnly: boolean, hasModifiedRows: boolean): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Checks if a column is a primary key (exact matching)
|
|
121
|
+
*/
|
|
122
|
+
declare function isPrimaryKeyColumn(columnName: string, primaryKeys: string[]): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Checks if a column is pinned (exact matching)
|
|
125
|
+
*/
|
|
126
|
+
declare function isPinnedColumn(columnName: string, pinnedColumns: string[]): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Checks if a column should be excluded from display (exact matching)
|
|
129
|
+
*/
|
|
130
|
+
declare function isExcludedColumn(columnName: string, excludeColumns: string[]): boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Gets the list of columns to display for a diff grid
|
|
133
|
+
*
|
|
134
|
+
* @description Builds an ordered list of column configurations:
|
|
135
|
+
* 1. Primary key columns (frozen)
|
|
136
|
+
* 2. Pinned columns
|
|
137
|
+
* 3. Remaining columns (filtered by changedOnly if applicable)
|
|
138
|
+
*
|
|
139
|
+
* @throws {Error} When strictMode is true and a primary key or pinned column
|
|
140
|
+
* is not found in the columnMap
|
|
141
|
+
*/
|
|
142
|
+
declare function getDisplayColumns(config: GridColumnsConfig): ColumnConfig[];
|
|
143
|
+
/**
|
|
144
|
+
* Gets the list of columns for a simple (non-diff) grid
|
|
145
|
+
*/
|
|
146
|
+
declare function getSimpleDisplayColumns(config: Omit<GridColumnsConfig, "changedOnly" | "rowStats">): ColumnConfig[];
|
|
147
|
+
//#endregion
|
|
148
|
+
//#region src/utils/dataGrid/columnPrecisionOptions.d.ts
|
|
149
|
+
/**
|
|
150
|
+
* Option for column precision menu
|
|
151
|
+
*/
|
|
152
|
+
interface ColumnPrecisionOption {
|
|
153
|
+
/** Display text for the menu item */
|
|
154
|
+
value: string;
|
|
155
|
+
/** Callback when option is selected */
|
|
156
|
+
onClick: () => void;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Generates precision select options for a numeric column
|
|
160
|
+
*
|
|
161
|
+
* @description Returns an array of options that can be used to build
|
|
162
|
+
* a menu for changing how a numeric column is rendered. Each option
|
|
163
|
+
* calls the provided callback with the appropriate render mode.
|
|
164
|
+
*
|
|
165
|
+
* @param colName - The column name to apply the render mode to
|
|
166
|
+
* @param onColumnsRenderModeChanged - Callback to update column render modes
|
|
167
|
+
* @returns Array of menu options with value and onClick handler
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```tsx
|
|
171
|
+
* const options = columnPrecisionSelectOptions(
|
|
172
|
+
* "price",
|
|
173
|
+
* (modes) => setRenderModes(prev => ({ ...prev, ...modes }))
|
|
174
|
+
* );
|
|
175
|
+
*
|
|
176
|
+
* // Use in a menu
|
|
177
|
+
* options.map(opt => (
|
|
178
|
+
* <MenuItem key={opt.value} onClick={opt.onClick}>
|
|
179
|
+
* {opt.value}
|
|
180
|
+
* </MenuItem>
|
|
181
|
+
* ));
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
declare function columnPrecisionSelectOptions(colName: string, onColumnsRenderModeChanged: (col: Record<string, ColumnRenderMode>) => void): ColumnPrecisionOption[];
|
|
185
|
+
//#endregion
|
|
186
|
+
//#region src/utils/dataGrid/renderTypes.d.ts
|
|
187
|
+
/**
|
|
188
|
+
* Props for the column group header component
|
|
189
|
+
*/
|
|
190
|
+
interface DataFrameColumnGroupHeaderProps {
|
|
191
|
+
/** Column name to display */
|
|
192
|
+
name: string;
|
|
193
|
+
/** Column diff status: 'added', 'removed', 'modified', or empty string */
|
|
194
|
+
columnStatus: string;
|
|
195
|
+
/** Column data type for determining available options */
|
|
196
|
+
columnType: ColumnType;
|
|
197
|
+
/** List of current primary key column names */
|
|
198
|
+
primaryKeys?: string[];
|
|
199
|
+
/** Callback when primary keys change (enables PK toggle functionality) */
|
|
200
|
+
onPrimaryKeyChange?: (primaryKeys: string[]) => void;
|
|
201
|
+
/** List of currently pinned column names */
|
|
202
|
+
pinnedColumns?: string[];
|
|
203
|
+
/** Callback when pinned columns change */
|
|
204
|
+
onPinnedColumnsChange?: (pinnedColumns: string[]) => void;
|
|
205
|
+
/** Callback when column render mode changes */
|
|
206
|
+
onColumnsRenderModeChanged?: (col: Record<string, ColumnRenderMode>) => void;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Props for the simple column header component
|
|
210
|
+
*/
|
|
211
|
+
interface DataFrameColumnHeaderProps {
|
|
212
|
+
/** Column name to display */
|
|
213
|
+
name: string;
|
|
214
|
+
/** Column data type for determining available options */
|
|
215
|
+
columnType: ColumnType;
|
|
216
|
+
/** List of currently pinned column names */
|
|
217
|
+
pinnedColumns?: string[];
|
|
218
|
+
/** Callback when pinned columns change */
|
|
219
|
+
onPinnedColumnsChange?: (pinnedColumns: string[]) => void;
|
|
220
|
+
/** Callback when column render mode changes */
|
|
221
|
+
onColumnsRenderModeChanged?: (col: Record<string, ColumnRenderMode>) => void;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Cell renderer function type (compatible with AG Grid)
|
|
225
|
+
*/
|
|
226
|
+
type CellRendererFunction = (params: ICellRendererParams) => React.ReactNode;
|
|
227
|
+
/**
|
|
228
|
+
* Collection of render components for column builders
|
|
229
|
+
*
|
|
230
|
+
* @description Column builders accept this interface to decouple the column
|
|
231
|
+
* building logic from specific React component implementations. This allows:
|
|
232
|
+
*
|
|
233
|
+
* - @datarecce/ui to contain the pure column building logic
|
|
234
|
+
* - OSS packages to provide their own render component implementations
|
|
235
|
+
* - Easy testing with mock components
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* ```tsx
|
|
239
|
+
* // OSS passes its render components
|
|
240
|
+
* const renderComponents: ColumnRenderComponents = {
|
|
241
|
+
* DataFrameColumnGroupHeader,
|
|
242
|
+
* DataFrameColumnHeader,
|
|
243
|
+
* defaultRenderCell,
|
|
244
|
+
* inlineRenderCell,
|
|
245
|
+
* };
|
|
246
|
+
*
|
|
247
|
+
* const result = buildDiffColumnDefinitions({
|
|
248
|
+
* columns: columnConfigs,
|
|
249
|
+
* displayMode: "inline",
|
|
250
|
+
* headerProps: {...},
|
|
251
|
+
* renderComponents,
|
|
252
|
+
* });
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
255
|
+
interface ColumnRenderComponents {
|
|
256
|
+
/**
|
|
257
|
+
* Column group header component (used for PK columns and diff grids)
|
|
258
|
+
* Supports PK indicator, pin toggle, and precision menu
|
|
259
|
+
*/
|
|
260
|
+
DataFrameColumnGroupHeader: React.ComponentType<DataFrameColumnGroupHeaderProps>;
|
|
261
|
+
/**
|
|
262
|
+
* Simple column header component (used for non-PK columns in simple grids)
|
|
263
|
+
* Supports pin toggle and precision menu
|
|
264
|
+
*/
|
|
265
|
+
DataFrameColumnHeader?: React.ComponentType<DataFrameColumnHeaderProps>;
|
|
266
|
+
/**
|
|
267
|
+
* Default cell renderer (displays single value)
|
|
268
|
+
*/
|
|
269
|
+
defaultRenderCell: CellRendererFunction;
|
|
270
|
+
/**
|
|
271
|
+
* Inline diff cell renderer (displays base/current values inline)
|
|
272
|
+
* Required for inline display mode in diff grids
|
|
273
|
+
*/
|
|
274
|
+
inlineRenderCell?: CellRendererFunction;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Render components required for diff column builders
|
|
278
|
+
*/
|
|
279
|
+
interface DiffColumnRenderComponents {
|
|
280
|
+
DataFrameColumnGroupHeader: React.ComponentType<DataFrameColumnGroupHeaderProps>;
|
|
281
|
+
defaultRenderCell: CellRendererFunction;
|
|
282
|
+
inlineRenderCell: CellRendererFunction;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Render components required for simple column builders
|
|
286
|
+
*/
|
|
287
|
+
interface SimpleColumnRenderComponents {
|
|
288
|
+
DataFrameColumnGroupHeader: React.ComponentType<DataFrameColumnGroupHeaderProps>;
|
|
289
|
+
DataFrameColumnHeader: React.ComponentType<DataFrameColumnHeaderProps>;
|
|
290
|
+
defaultRenderCell: CellRendererFunction;
|
|
291
|
+
}
|
|
292
|
+
//#endregion
|
|
293
|
+
//#region src/utils/dataGrid/toDiffColumn.d.ts
|
|
294
|
+
/**
|
|
295
|
+
* Custom context data for Recce columns
|
|
296
|
+
* Stored in colDef.context to avoid AG Grid validation warnings
|
|
297
|
+
*/
|
|
298
|
+
interface RecceColumnContext {
|
|
299
|
+
columnType?: ColumnType;
|
|
300
|
+
columnRenderMode?: ColumnRenderMode;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Configuration for building a diff column
|
|
304
|
+
*/
|
|
305
|
+
interface DiffColumnConfig {
|
|
306
|
+
/** Column name */
|
|
307
|
+
name: string;
|
|
308
|
+
/** Column diff status: 'added', 'removed', 'modified', or empty */
|
|
309
|
+
columnStatus: string;
|
|
310
|
+
/** Column data type */
|
|
311
|
+
columnType: ColumnType;
|
|
312
|
+
/** How to render numeric values */
|
|
313
|
+
columnRenderMode?: ColumnRenderMode;
|
|
314
|
+
/** Display mode: inline shows diff in single cell, side_by_side shows two columns */
|
|
315
|
+
displayMode: "inline" | "side_by_side";
|
|
316
|
+
/** Title for base column in side_by_side mode */
|
|
317
|
+
baseTitle?: string;
|
|
318
|
+
/** Title for current column in side_by_side mode */
|
|
319
|
+
currentTitle?: string;
|
|
320
|
+
/** Props to pass to DataFrameColumnGroupHeader */
|
|
321
|
+
headerProps?: Partial<DataFrameColumnGroupHeaderProps>;
|
|
322
|
+
/** Render components for building the column */
|
|
323
|
+
renderComponents: DiffColumnRenderComponents;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Extended column type with context metadata
|
|
327
|
+
* Uses context property for custom data per AG Grid best practices
|
|
328
|
+
* Note: Distributed form allows TypeScript to narrow types correctly
|
|
329
|
+
*/
|
|
330
|
+
type DiffColumnResult = (ColDef<RowObjectType> & {
|
|
331
|
+
context?: RecceColumnContext;
|
|
332
|
+
}) | (ColGroupDef<RowObjectType> & {
|
|
333
|
+
context?: RecceColumnContext;
|
|
334
|
+
});
|
|
335
|
+
/**
|
|
336
|
+
* Creates a cell class function for base column cells
|
|
337
|
+
*
|
|
338
|
+
* @param columnName - The column name (used for value comparison)
|
|
339
|
+
* @param columnStatus - The column's diff status
|
|
340
|
+
* @returns Function that returns CSS class based on row status and value diff
|
|
341
|
+
*/
|
|
342
|
+
declare function createCellClassBase(columnName: string, columnStatus: string): (params: CellClassParams<RowObjectType>) => string | undefined;
|
|
343
|
+
/**
|
|
344
|
+
* Creates a cell class function for current column cells
|
|
345
|
+
*
|
|
346
|
+
* @param columnName - The column name (used for value comparison)
|
|
347
|
+
* @param columnStatus - The column's diff status
|
|
348
|
+
* @returns Function that returns CSS class based on row status and value diff
|
|
349
|
+
*/
|
|
350
|
+
declare function createCellClassCurrent(columnName: string, columnStatus: string): (params: CellClassParams<RowObjectType>) => string | undefined;
|
|
351
|
+
/**
|
|
352
|
+
* Creates a diff column definition for use in data grids
|
|
353
|
+
*
|
|
354
|
+
* @description Builds a column configuration that supports both inline and
|
|
355
|
+
* side-by-side diff display modes. In inline mode, differences are shown
|
|
356
|
+
* within a single cell. In side-by-side mode, base and current values
|
|
357
|
+
* appear in separate child columns.
|
|
358
|
+
*
|
|
359
|
+
* @param config - Column configuration options
|
|
360
|
+
* @returns Column definition compatible with AG Grid
|
|
361
|
+
*
|
|
362
|
+
* @example
|
|
363
|
+
* // Inline mode for querydiff
|
|
364
|
+
* const column = toDiffColumn({
|
|
365
|
+
* name: 'price',
|
|
366
|
+
* columnStatus: 'modified',
|
|
367
|
+
* columnType: 'number',
|
|
368
|
+
* displayMode: 'inline',
|
|
369
|
+
* headerProps: {
|
|
370
|
+
* primaryKeys: ['id'],
|
|
371
|
+
* onPrimaryKeyChange: setPrimaryKeys,
|
|
372
|
+
* },
|
|
373
|
+
* renderComponents: {
|
|
374
|
+
* DataFrameColumnGroupHeader,
|
|
375
|
+
* defaultRenderCell,
|
|
376
|
+
* inlineRenderCell,
|
|
377
|
+
* },
|
|
378
|
+
* });
|
|
379
|
+
*
|
|
380
|
+
* @example
|
|
381
|
+
* // Side-by-side mode for valuediff
|
|
382
|
+
* const column = toDiffColumn({
|
|
383
|
+
* name: 'Amount',
|
|
384
|
+
* columnStatus: '',
|
|
385
|
+
* columnType: 'number',
|
|
386
|
+
* displayMode: 'side_by_side',
|
|
387
|
+
* baseTitle: 'Before',
|
|
388
|
+
* currentTitle: 'After',
|
|
389
|
+
* headerProps: {
|
|
390
|
+
* primaryKeys: ['id'],
|
|
391
|
+
* },
|
|
392
|
+
* renderComponents: {
|
|
393
|
+
* DataFrameColumnGroupHeader,
|
|
394
|
+
* defaultRenderCell,
|
|
395
|
+
* inlineRenderCell,
|
|
396
|
+
* },
|
|
397
|
+
* });
|
|
398
|
+
*/
|
|
399
|
+
declare function toDiffColumn(config: DiffColumnConfig): DiffColumnResult;
|
|
400
|
+
//#endregion
|
|
401
|
+
//#region src/utils/dataGrid/diffColumnBuilder.d.ts
|
|
402
|
+
/**
|
|
403
|
+
* Extended column type with context metadata
|
|
404
|
+
* Uses context property for custom data per AG Grid best practices
|
|
405
|
+
* Note: Distributed form allows TypeScript to narrow types correctly
|
|
406
|
+
*/
|
|
407
|
+
type DiffColumnDefinition = (ColDef<RowObjectType> & {
|
|
408
|
+
context?: RecceColumnContext;
|
|
409
|
+
}) | (ColGroupDef<RowObjectType> & {
|
|
410
|
+
context?: RecceColumnContext;
|
|
411
|
+
});
|
|
412
|
+
/**
|
|
413
|
+
* Configuration for building diff column definitions
|
|
414
|
+
*/
|
|
415
|
+
interface BuildDiffColumnDefinitionsConfig {
|
|
416
|
+
/**
|
|
417
|
+
* Column configurations from getDisplayColumns()
|
|
418
|
+
*/
|
|
419
|
+
columns: ColumnConfig[];
|
|
420
|
+
/**
|
|
421
|
+
* Display mode for diff columns
|
|
422
|
+
* - "inline": Single column with inline diff rendering
|
|
423
|
+
* - "side_by_side": Column group with base/current sub-columns
|
|
424
|
+
*/
|
|
425
|
+
displayMode: "inline" | "side_by_side";
|
|
426
|
+
/**
|
|
427
|
+
* Props to pass to DataFrameColumnGroupHeader for all columns
|
|
428
|
+
*/
|
|
429
|
+
headerProps: Partial<DataFrameColumnGroupHeaderProps>;
|
|
430
|
+
/**
|
|
431
|
+
* Title for base column in side_by_side mode
|
|
432
|
+
*/
|
|
433
|
+
baseTitle?: string;
|
|
434
|
+
/**
|
|
435
|
+
* Title for current column in side_by_side mode
|
|
436
|
+
*/
|
|
437
|
+
currentTitle?: string;
|
|
438
|
+
/**
|
|
439
|
+
* Whether to add index column when no primary keys exist
|
|
440
|
+
* Only applies when columns array has no isPrimaryKey entries
|
|
441
|
+
* @default false
|
|
442
|
+
*/
|
|
443
|
+
allowIndexFallback?: boolean;
|
|
444
|
+
/**
|
|
445
|
+
* Render components for building the columns
|
|
446
|
+
*/
|
|
447
|
+
renderComponents: DiffColumnRenderComponents;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Result from building diff column definitions
|
|
451
|
+
*/
|
|
452
|
+
interface BuildDiffColumnDefinitionsResult {
|
|
453
|
+
/**
|
|
454
|
+
* The generated column definitions ready for AG Grid
|
|
455
|
+
*/
|
|
456
|
+
columns: DiffColumnDefinition[];
|
|
457
|
+
/**
|
|
458
|
+
* Whether an index fallback column was added
|
|
459
|
+
*/
|
|
460
|
+
usedIndexFallback: boolean;
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Builds AG Grid column definitions from ColumnConfig array
|
|
464
|
+
*
|
|
465
|
+
* @description Transforms pure column configuration objects into actual
|
|
466
|
+
* column definitions with React JSX headers. Handles:
|
|
467
|
+
*
|
|
468
|
+
* - Primary key columns (pinned, special cellClass)
|
|
469
|
+
* - Diff columns (via toDiffColumn for inline/side_by_side modes)
|
|
470
|
+
* - Index fallback (when no PKs and allowIndexFallback is true)
|
|
471
|
+
*
|
|
472
|
+
* @example
|
|
473
|
+
* ```tsx
|
|
474
|
+
* // Get column configs from shared utility
|
|
475
|
+
* const columnConfigs = getDisplayColumns({
|
|
476
|
+
* columnMap,
|
|
477
|
+
* primaryKeys,
|
|
478
|
+
* pinnedColumns,
|
|
479
|
+
* columnsRenderMode,
|
|
480
|
+
* changedOnly,
|
|
481
|
+
* rowStats,
|
|
482
|
+
* excludeColumns: ["in_a", "in_b"],
|
|
483
|
+
* });
|
|
484
|
+
*
|
|
485
|
+
* // Build actual column definitions
|
|
486
|
+
* const { columns } = buildDiffColumnDefinitions({
|
|
487
|
+
* columns: columnConfigs,
|
|
488
|
+
* displayMode: "inline",
|
|
489
|
+
* headerProps: {
|
|
490
|
+
* primaryKeys,
|
|
491
|
+
* pinnedColumns,
|
|
492
|
+
* onPinnedColumnsChange,
|
|
493
|
+
* },
|
|
494
|
+
* renderComponents: {
|
|
495
|
+
* DataFrameColumnGroupHeader,
|
|
496
|
+
* defaultRenderCell,
|
|
497
|
+
* inlineRenderCell,
|
|
498
|
+
* },
|
|
499
|
+
* });
|
|
500
|
+
* ```
|
|
501
|
+
*
|
|
502
|
+
* @example
|
|
503
|
+
* ```tsx
|
|
504
|
+
* // With index fallback for querydiff when no PKs
|
|
505
|
+
* const { columns, usedIndexFallback } = buildDiffColumnDefinitions({
|
|
506
|
+
* columns: columnConfigs,
|
|
507
|
+
* displayMode: "side_by_side",
|
|
508
|
+
* allowIndexFallback: true,
|
|
509
|
+
* headerProps: {
|
|
510
|
+
* primaryKeys: [],
|
|
511
|
+
* pinnedColumns,
|
|
512
|
+
* onPrimaryKeyChange,
|
|
513
|
+
* onPinnedColumnsChange,
|
|
514
|
+
* },
|
|
515
|
+
* renderComponents: {
|
|
516
|
+
* DataFrameColumnGroupHeader,
|
|
517
|
+
* defaultRenderCell,
|
|
518
|
+
* inlineRenderCell,
|
|
519
|
+
* },
|
|
520
|
+
* });
|
|
521
|
+
*
|
|
522
|
+
* if (usedIndexFallback) {
|
|
523
|
+
* // Index-based matching was used
|
|
524
|
+
* }
|
|
525
|
+
* ```
|
|
526
|
+
*/
|
|
527
|
+
declare function buildDiffColumnDefinitions(config: BuildDiffColumnDefinitionsConfig): BuildDiffColumnDefinitionsResult;
|
|
528
|
+
//#endregion
|
|
529
|
+
//#region src/utils/dataGrid/generators/toDataDiffGrid.d.ts
|
|
530
|
+
/**
|
|
531
|
+
* Options for generating a data diff grid
|
|
532
|
+
*/
|
|
533
|
+
interface QueryDataDiffGridOptions {
|
|
534
|
+
primaryKeys?: string[];
|
|
535
|
+
onPrimaryKeyChange?: (primaryKeys: string[]) => void;
|
|
536
|
+
pinnedColumns?: string[];
|
|
537
|
+
onPinnedColumnsChange?: (pinnedColumns: string[]) => void;
|
|
538
|
+
columnsRenderMode?: Record<string, ColumnRenderMode>;
|
|
539
|
+
onColumnsRenderModeChanged?: (col: Record<string, ColumnRenderMode>) => void;
|
|
540
|
+
changedOnly?: boolean;
|
|
541
|
+
baseTitle?: string;
|
|
542
|
+
currentTitle?: string;
|
|
543
|
+
displayMode?: "side_by_side" | "inline";
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* Configuration for building the data diff grid
|
|
547
|
+
*/
|
|
548
|
+
interface ToDataDiffGridConfig {
|
|
549
|
+
/**
|
|
550
|
+
* Render components for column headers and cells
|
|
551
|
+
*/
|
|
552
|
+
renderComponents: DiffColumnRenderComponents;
|
|
553
|
+
}
|
|
554
|
+
/**
|
|
555
|
+
* Result of generating a data diff grid
|
|
556
|
+
*/
|
|
557
|
+
interface DataDiffGridResult {
|
|
558
|
+
columns: DiffColumnDefinition[];
|
|
559
|
+
rows: RowObjectType[];
|
|
560
|
+
invalidPKeyBase: boolean;
|
|
561
|
+
invalidPKeyCurrent: boolean;
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Generates grid configuration for comparing base and current DataFrames
|
|
565
|
+
*
|
|
566
|
+
* @param base - The base DataFrame (optional)
|
|
567
|
+
* @param current - The current DataFrame (optional)
|
|
568
|
+
* @param options - Grid options (primary keys, display mode, etc.)
|
|
569
|
+
* @param config - Configuration with render components
|
|
570
|
+
* @returns Grid columns and rows ready for AG Grid
|
|
571
|
+
*
|
|
572
|
+
* @example
|
|
573
|
+
* ```tsx
|
|
574
|
+
* const { columns, rows } = toDataDiffGrid(
|
|
575
|
+
* baseDataFrame,
|
|
576
|
+
* currentDataFrame,
|
|
577
|
+
* { primaryKeys: ['id'], displayMode: 'inline' },
|
|
578
|
+
* { renderComponents }
|
|
579
|
+
* );
|
|
580
|
+
* ```
|
|
581
|
+
*/
|
|
582
|
+
declare function toDataDiffGrid(_base?: DataFrame, _current?: DataFrame, options?: QueryDataDiffGridOptions, config?: ToDataDiffGridConfig): DataDiffGridResult;
|
|
583
|
+
//#endregion
|
|
584
|
+
//#region src/utils/dataGrid/simpleColumnBuilder.d.ts
|
|
585
|
+
/**
|
|
586
|
+
* Extended column type with context metadata
|
|
587
|
+
* Uses context property for custom data per AG Grid best practices
|
|
588
|
+
* Note: Distributed form allows TypeScript to narrow types correctly
|
|
589
|
+
*/
|
|
590
|
+
type SimpleColumnDefinition = (ColDef<RowObjectType> & {
|
|
591
|
+
context?: RecceColumnContext;
|
|
592
|
+
}) | (ColGroupDef<RowObjectType> & {
|
|
593
|
+
context?: RecceColumnContext;
|
|
594
|
+
});
|
|
595
|
+
/**
|
|
596
|
+
* Configuration for building simple column definitions
|
|
597
|
+
*/
|
|
598
|
+
interface BuildSimpleColumnDefinitionsConfig {
|
|
599
|
+
/**
|
|
600
|
+
* Column configurations from getSimpleDisplayColumns()
|
|
601
|
+
*/
|
|
602
|
+
columns: ColumnConfig[];
|
|
603
|
+
/**
|
|
604
|
+
* Props to pass to column headers
|
|
605
|
+
*/
|
|
606
|
+
headerProps: {
|
|
607
|
+
pinnedColumns?: string[];
|
|
608
|
+
onPinnedColumnsChange?: (pinnedColumns: string[]) => void;
|
|
609
|
+
onColumnsRenderModeChanged?: (cols: Record<string, ColumnRenderMode>) => void;
|
|
610
|
+
};
|
|
611
|
+
/**
|
|
612
|
+
* Whether to add index column when no primary keys exist
|
|
613
|
+
* Only applies when columns array has no isPrimaryKey entries
|
|
614
|
+
* @default true
|
|
615
|
+
*/
|
|
616
|
+
allowIndexFallback?: boolean;
|
|
617
|
+
/**
|
|
618
|
+
* Render components for building the columns
|
|
619
|
+
*/
|
|
620
|
+
renderComponents: SimpleColumnRenderComponents;
|
|
621
|
+
}
|
|
622
|
+
/**
|
|
623
|
+
* Result from building simple column definitions
|
|
624
|
+
*/
|
|
625
|
+
interface BuildSimpleColumnDefinitionsResult {
|
|
626
|
+
/**
|
|
627
|
+
* The generated column definitions ready for AG Grid
|
|
628
|
+
*/
|
|
629
|
+
columns: SimpleColumnDefinition[];
|
|
630
|
+
/**
|
|
631
|
+
* Whether an index fallback column was added
|
|
632
|
+
*/
|
|
633
|
+
usedIndexFallback: boolean;
|
|
634
|
+
}
|
|
635
|
+
/**
|
|
636
|
+
* Builds AG Grid column definitions from ColumnConfig array
|
|
637
|
+
*
|
|
638
|
+
* @description Transforms pure column configuration objects into actual
|
|
639
|
+
* column definitions with React JSX headers. Handles:
|
|
640
|
+
*
|
|
641
|
+
* - Primary key columns (pinned, use DataFrameColumnGroupHeader)
|
|
642
|
+
* - Regular columns (use DataFrameColumnHeader)
|
|
643
|
+
* - Index fallback (when no PKs and allowIndexFallback is true)
|
|
644
|
+
*
|
|
645
|
+
* @example
|
|
646
|
+
* ```tsx
|
|
647
|
+
* // Get column configs from shared utility
|
|
648
|
+
* const columnConfigs = getSimpleDisplayColumns({
|
|
649
|
+
* columnMap,
|
|
650
|
+
* primaryKeys,
|
|
651
|
+
* pinnedColumns,
|
|
652
|
+
* columnsRenderMode,
|
|
653
|
+
* });
|
|
654
|
+
*
|
|
655
|
+
* // Build actual column definitions
|
|
656
|
+
* const { columns } = buildSimpleColumnDefinitions({
|
|
657
|
+
* columns: columnConfigs,
|
|
658
|
+
* headerProps: {
|
|
659
|
+
* pinnedColumns,
|
|
660
|
+
* onPinnedColumnsChange,
|
|
661
|
+
* onColumnsRenderModeChanged,
|
|
662
|
+
* },
|
|
663
|
+
* renderComponents: {
|
|
664
|
+
* DataFrameColumnGroupHeader,
|
|
665
|
+
* DataFrameColumnHeader,
|
|
666
|
+
* defaultRenderCell,
|
|
667
|
+
* },
|
|
668
|
+
* });
|
|
669
|
+
* ```
|
|
670
|
+
*/
|
|
671
|
+
declare function buildSimpleColumnDefinitions(config: BuildSimpleColumnDefinitionsConfig): BuildSimpleColumnDefinitionsResult;
|
|
672
|
+
//#endregion
|
|
673
|
+
//#region src/utils/dataGrid/generators/toDataGrid.d.ts
|
|
674
|
+
/**
|
|
675
|
+
* Options for generating a simple data grid
|
|
676
|
+
*/
|
|
677
|
+
interface QueryDataGridOptions {
|
|
678
|
+
primaryKeys?: string[];
|
|
679
|
+
onPrimaryKeyChange?: (primaryKeys: string[]) => void;
|
|
680
|
+
pinnedColumns?: string[];
|
|
681
|
+
onPinnedColumnsChange?: (pinnedColumns: string[]) => void;
|
|
682
|
+
columnsRenderMode?: Record<string, ColumnRenderMode>;
|
|
683
|
+
onColumnsRenderModeChanged?: (col: Record<string, ColumnRenderMode>) => void;
|
|
684
|
+
}
|
|
685
|
+
/**
|
|
686
|
+
* Configuration for building the data grid
|
|
687
|
+
*/
|
|
688
|
+
interface ToDataGridConfig {
|
|
689
|
+
/**
|
|
690
|
+
* Render components for column headers and cells
|
|
691
|
+
*/
|
|
692
|
+
renderComponents: SimpleColumnRenderComponents;
|
|
693
|
+
}
|
|
694
|
+
/**
|
|
695
|
+
* Result of generating a data grid
|
|
696
|
+
*/
|
|
697
|
+
interface DataGridResult {
|
|
698
|
+
columns: SimpleColumnDefinition[];
|
|
699
|
+
rows: RowObjectType[];
|
|
700
|
+
}
|
|
701
|
+
/**
|
|
702
|
+
* Generates grid configuration for a simple DataFrame display
|
|
703
|
+
*
|
|
704
|
+
* @param result - The DataFrame to display
|
|
705
|
+
* @param options - Grid options (primary keys, pinning, etc.)
|
|
706
|
+
* @param config - Configuration with render components
|
|
707
|
+
* @returns Grid columns and rows ready for AG Grid
|
|
708
|
+
*
|
|
709
|
+
* @example
|
|
710
|
+
* ```tsx
|
|
711
|
+
* const { columns, rows } = toDataGrid(
|
|
712
|
+
* dataFrame,
|
|
713
|
+
* { primaryKeys: ['id'], pinnedColumns: [] },
|
|
714
|
+
* { renderComponents }
|
|
715
|
+
* );
|
|
716
|
+
* ```
|
|
717
|
+
*/
|
|
718
|
+
declare function toDataGrid(result: DataFrame, options: QueryDataGridOptions, config: ToDataGridConfig): DataGridResult;
|
|
719
|
+
//#endregion
|
|
720
|
+
//#region src/utils/dataGrid/generators/toValueDiffGrid.d.ts
|
|
721
|
+
/**
|
|
722
|
+
* Configuration for building the value diff grid
|
|
723
|
+
*/
|
|
724
|
+
interface ToValueDiffGridConfig {
|
|
725
|
+
/**
|
|
726
|
+
* Render components for column headers and cells
|
|
727
|
+
*/
|
|
728
|
+
renderComponents: DiffColumnRenderComponents;
|
|
729
|
+
}
|
|
730
|
+
/**
|
|
731
|
+
* Result of generating a value diff grid
|
|
732
|
+
*/
|
|
733
|
+
interface ValueDiffGridResult {
|
|
734
|
+
columns: DiffColumnDefinition[];
|
|
735
|
+
rows: RowObjectType[];
|
|
736
|
+
}
|
|
737
|
+
/**
|
|
738
|
+
* Generates grid configuration for value diff (joined data with in_a/in_b)
|
|
739
|
+
*
|
|
740
|
+
* @param df - The joined DataFrame with in_a/in_b columns
|
|
741
|
+
* @param primaryKeys - Array of primary key column names
|
|
742
|
+
* @param options - Grid options
|
|
743
|
+
* @param config - Configuration with render components
|
|
744
|
+
* @returns Grid columns and rows ready for AG Grid
|
|
745
|
+
*
|
|
746
|
+
* @example
|
|
747
|
+
* ```tsx
|
|
748
|
+
* const { columns, rows } = toValueDiffGrid(
|
|
749
|
+
* joinedDataFrame,
|
|
750
|
+
* ['id'],
|
|
751
|
+
* { displayMode: 'inline' },
|
|
752
|
+
* { renderComponents }
|
|
753
|
+
* );
|
|
754
|
+
* ```
|
|
755
|
+
*/
|
|
756
|
+
declare function toValueDiffGrid(df: DataFrame, primaryKeys: string[], options?: QueryDataDiffGridOptions, config?: ToValueDiffGridConfig): ValueDiffGridResult;
|
|
757
|
+
//#endregion
|
|
758
|
+
//#region src/utils/dataGrid/configured.d.ts
|
|
759
|
+
/**
|
|
760
|
+
* Default render components used by diff column pre-configured exports.
|
|
761
|
+
* These are the standard UI components from @datarecce/ui.
|
|
762
|
+
*/
|
|
763
|
+
declare const defaultRenderComponents: DiffColumnRenderComponents;
|
|
764
|
+
/**
|
|
765
|
+
* Default render components used by simple column pre-configured exports.
|
|
766
|
+
* These are the standard UI components from @datarecce/ui.
|
|
767
|
+
*/
|
|
768
|
+
declare const defaultSimpleRenderComponents: SimpleColumnRenderComponents;
|
|
769
|
+
/**
|
|
770
|
+
* Configuration for pre-configured toDiffColumn (without renderComponents)
|
|
771
|
+
*/
|
|
772
|
+
type DiffColumnConfigConfigured = Omit<DiffColumnConfig, "renderComponents">;
|
|
773
|
+
/**
|
|
774
|
+
* Creates a diff column definition with default render components.
|
|
775
|
+
*
|
|
776
|
+
* @param config - Column configuration (renderComponents automatically provided)
|
|
777
|
+
* @returns Column definition compatible with AG Grid
|
|
778
|
+
*
|
|
779
|
+
* @example
|
|
780
|
+
* ```tsx
|
|
781
|
+
* const column = toDiffColumnConfigured({
|
|
782
|
+
* name: 'price',
|
|
783
|
+
* columnStatus: 'modified',
|
|
784
|
+
* columnType: 'number',
|
|
785
|
+
* displayMode: 'inline',
|
|
786
|
+
* });
|
|
787
|
+
* ```
|
|
788
|
+
*/
|
|
789
|
+
declare function toDiffColumnConfigured(config: DiffColumnConfigConfigured): DiffColumnResult;
|
|
790
|
+
/**
|
|
791
|
+
* Configuration for pre-configured buildDiffColumnDefinitions (without renderComponents)
|
|
792
|
+
*/
|
|
793
|
+
type BuildDiffColumnDefinitionsConfigConfigured = Omit<BuildDiffColumnDefinitionsConfig, "renderComponents">;
|
|
794
|
+
/**
|
|
795
|
+
* Builds AG Grid column definitions with default render components.
|
|
796
|
+
*
|
|
797
|
+
* @param config - Column configuration (renderComponents automatically provided)
|
|
798
|
+
* @returns Column definitions and metadata
|
|
799
|
+
*
|
|
800
|
+
* @example
|
|
801
|
+
* ```tsx
|
|
802
|
+
* const { columns, usedIndexFallback } = buildDiffColumnDefinitionsConfigured({
|
|
803
|
+
* columns: columnConfigs,
|
|
804
|
+
* displayMode: "inline",
|
|
805
|
+
* headerProps: { primaryKeys },
|
|
806
|
+
* });
|
|
807
|
+
* ```
|
|
808
|
+
*/
|
|
809
|
+
declare function buildDiffColumnDefinitionsConfigured(config: BuildDiffColumnDefinitionsConfigConfigured): BuildDiffColumnDefinitionsResult;
|
|
810
|
+
/**
|
|
811
|
+
* Generates grid configuration for comparing base and current DataFrames
|
|
812
|
+
* with default render components.
|
|
813
|
+
*
|
|
814
|
+
* @param base - The base DataFrame (optional)
|
|
815
|
+
* @param current - The current DataFrame (optional)
|
|
816
|
+
* @param options - Grid options (primary keys, display mode, etc.)
|
|
817
|
+
* @returns Grid columns and rows ready for AG Grid
|
|
818
|
+
*
|
|
819
|
+
* @example
|
|
820
|
+
* ```tsx
|
|
821
|
+
* const { columns, rows, invalidPKeyBase, invalidPKeyCurrent } = toDataDiffGridConfigured(
|
|
822
|
+
* baseDataFrame,
|
|
823
|
+
* currentDataFrame,
|
|
824
|
+
* { primaryKeys: ['id'], displayMode: 'inline' }
|
|
825
|
+
* );
|
|
826
|
+
* ```
|
|
827
|
+
*/
|
|
828
|
+
declare function toDataDiffGridConfigured(base?: DataFrame, current?: DataFrame, options?: QueryDataDiffGridOptions): DataDiffGridResult;
|
|
829
|
+
/**
|
|
830
|
+
* Generates grid configuration for value diff (joined data with in_a/in_b)
|
|
831
|
+
* with default render components.
|
|
832
|
+
*
|
|
833
|
+
* @param df - The joined DataFrame with in_a/in_b columns
|
|
834
|
+
* @param primaryKeys - Array of primary key column names
|
|
835
|
+
* @param options - Grid options
|
|
836
|
+
* @returns Grid columns and rows ready for AG Grid
|
|
837
|
+
*
|
|
838
|
+
* @example
|
|
839
|
+
* ```tsx
|
|
840
|
+
* const { columns, rows } = toValueDiffGridConfigured(
|
|
841
|
+
* joinedDataFrame,
|
|
842
|
+
* ['id'],
|
|
843
|
+
* { displayMode: 'inline' }
|
|
844
|
+
* );
|
|
845
|
+
* ```
|
|
846
|
+
*/
|
|
847
|
+
declare function toValueDiffGridConfigured(df: DataFrame, primaryKeys: string[], options?: QueryDataDiffGridOptions): ValueDiffGridResult;
|
|
848
|
+
/**
|
|
849
|
+
* Generates grid configuration for a simple DataFrame display
|
|
850
|
+
* with default render components.
|
|
851
|
+
*
|
|
852
|
+
* @param result - The DataFrame to display
|
|
853
|
+
* @param options - Grid options (primary keys, pinning, etc.)
|
|
854
|
+
* @returns Grid columns and rows ready for AG Grid
|
|
855
|
+
*
|
|
856
|
+
* @example
|
|
857
|
+
* ```tsx
|
|
858
|
+
* const { columns, rows } = toDataGridConfigured(dataFrame, {
|
|
859
|
+
* primaryKeys: ['id'],
|
|
860
|
+
* pinnedColumns: [],
|
|
861
|
+
* });
|
|
862
|
+
* ```
|
|
863
|
+
*/
|
|
864
|
+
declare function toDataGridConfigured(result: DataFrame, options: QueryDataGridOptions): DataGridResult;
|
|
865
|
+
/**
|
|
866
|
+
* Configuration for pre-configured buildSimpleColumnDefinitions (without renderComponents)
|
|
867
|
+
*/
|
|
868
|
+
type BuildSimpleColumnDefinitionsConfigConfigured = Omit<BuildSimpleColumnDefinitionsConfig, "renderComponents">;
|
|
869
|
+
/**
|
|
870
|
+
* Builds AG Grid column definitions for simple grids with default render components.
|
|
871
|
+
*
|
|
872
|
+
* @param config - Column configuration (renderComponents automatically provided)
|
|
873
|
+
* @returns Column definitions and metadata
|
|
874
|
+
*
|
|
875
|
+
* @example
|
|
876
|
+
* ```tsx
|
|
877
|
+
* const { columns } = buildSimpleColumnDefinitionsConfigured({
|
|
878
|
+
* columns: columnConfigs,
|
|
879
|
+
* headerProps: { pinnedColumns },
|
|
880
|
+
* });
|
|
881
|
+
* ```
|
|
882
|
+
*/
|
|
883
|
+
declare function buildSimpleColumnDefinitionsConfigured(config: BuildSimpleColumnDefinitionsConfigConfigured): BuildSimpleColumnDefinitionsResult;
|
|
884
|
+
//#endregion
|
|
885
|
+
//#region src/utils/dataGrid/generators/toRowCountDataGrid.d.ts
|
|
886
|
+
interface RowCountDataGridResult {
|
|
887
|
+
columns: (ColDef<RowObjectType> | ColGroupDef<RowObjectType>)[];
|
|
888
|
+
rows: RowObjectType[];
|
|
889
|
+
}
|
|
890
|
+
/**
|
|
891
|
+
* Generates grid data for Row Count view (single environment)
|
|
892
|
+
*
|
|
893
|
+
* @param result - The RowCountResult from the backend
|
|
894
|
+
* @returns Grid columns and rows ready for RecceDataGrid
|
|
895
|
+
*
|
|
896
|
+
* @example
|
|
897
|
+
* ```tsx
|
|
898
|
+
* const { columns, rows } = toRowCountDataGrid(run.result);
|
|
899
|
+
* return <RecceDataGrid columnDefs={columns} rowData={rows} />;
|
|
900
|
+
* ```
|
|
901
|
+
*/
|
|
902
|
+
declare function toRowCountDataGrid(result: RowCountResult): RowCountDataGridResult;
|
|
903
|
+
//#endregion
|
|
904
|
+
//#region src/utils/dataGrid/generators/toRowCountDiffDataGrid.d.ts
|
|
905
|
+
interface RowCountDiffDataGridResult {
|
|
906
|
+
columns: (ColDef<RowObjectType> | ColGroupDef<RowObjectType>)[];
|
|
907
|
+
rows: RowObjectType[];
|
|
908
|
+
}
|
|
909
|
+
/**
|
|
910
|
+
* Generates grid data for Row Count Diff view
|
|
911
|
+
*
|
|
912
|
+
* @param result - The RowCountDiffResult from the backend
|
|
913
|
+
* @returns Grid columns and rows ready for RecceDataGrid
|
|
914
|
+
*
|
|
915
|
+
* @example
|
|
916
|
+
* ```tsx
|
|
917
|
+
* const { columns, rows } = toRowCountDiffDataGrid(run.result);
|
|
918
|
+
* return <RecceDataGrid columnDefs={columns} rowData={rows} />;
|
|
919
|
+
* ```
|
|
920
|
+
*/
|
|
921
|
+
declare function toRowCountDiffDataGrid(result: RowCountDiffResult): RowCountDiffDataGridResult;
|
|
922
|
+
//#endregion
|
|
923
|
+
//#region src/utils/dataGrid/gridUtils.d.ts
|
|
924
|
+
interface ColumnMapEntry {
|
|
925
|
+
key: string;
|
|
926
|
+
colType: ColumnType;
|
|
927
|
+
status?: string;
|
|
928
|
+
index?: number;
|
|
929
|
+
}
|
|
930
|
+
interface MergeColumnMapEntry extends ColumnMapEntry {
|
|
931
|
+
baseColumnKey: string;
|
|
932
|
+
currentColumnKey: string;
|
|
933
|
+
}
|
|
934
|
+
interface RowStats {
|
|
935
|
+
added: number;
|
|
936
|
+
removed: number;
|
|
937
|
+
modified: number;
|
|
938
|
+
}
|
|
939
|
+
/**
|
|
940
|
+
* Builds a column map from a single DataFrame
|
|
941
|
+
*/
|
|
942
|
+
declare function buildColumnMap(df: DataFrame): Record<string, ColumnMapEntry>;
|
|
943
|
+
/**
|
|
944
|
+
* Builds a column map for joined data (with in_a/in_b columns)
|
|
945
|
+
*
|
|
946
|
+
* NOTE: Backend now guarantees in_a/in_b are always lowercase,
|
|
947
|
+
* so we only need to register them as-is.
|
|
948
|
+
*
|
|
949
|
+
* @throws {Error} If required in_a or in_b columns are missing
|
|
950
|
+
*/
|
|
951
|
+
declare function buildJoinedColumnMap(df: DataFrame): Record<string, ColumnMapEntry>;
|
|
952
|
+
/**
|
|
953
|
+
* Builds a merged column map from two DataFrames
|
|
954
|
+
* Tracks status (added/removed/unchanged) for each column
|
|
955
|
+
*/
|
|
956
|
+
declare function buildMergedColumnMap(base: DataFrame, current: DataFrame): Record<string, MergeColumnMapEntry>;
|
|
957
|
+
/**
|
|
958
|
+
* Validates that all primary keys exist in the columns (exact matching)
|
|
959
|
+
*/
|
|
960
|
+
declare function validatePrimaryKeys(columns: DataFrame["columns"], primaryKeys: string[]): string[];
|
|
961
|
+
/**
|
|
962
|
+
* Generates a unique key string from primary key values in a row (exact matching)
|
|
963
|
+
*/
|
|
964
|
+
declare function getPrimaryKeyValue(columns: DataFrame["columns"], primaryKeys: string[], row: RowObjectType): string;
|
|
965
|
+
/**
|
|
966
|
+
* Determines the status of a row (added/removed/modified/unchanged)
|
|
967
|
+
*
|
|
968
|
+
* Supports two modes:
|
|
969
|
+
* 1. Separate rows: baseRow and currentRow are different objects
|
|
970
|
+
* 2. Merged rows: baseRow === currentRow, with values stored as base__key and current__key
|
|
971
|
+
*/
|
|
972
|
+
declare function determineRowStatus(baseRow: RowObjectType | undefined, currentRow: RowObjectType | undefined, columnMap: Record<string, ColumnMapEntry>, primaryKeys: string[]): "added" | "removed" | "modified" | undefined;
|
|
973
|
+
/**
|
|
974
|
+
* Formats a numeric value based on render mode
|
|
975
|
+
*
|
|
976
|
+
* Handles special values:
|
|
977
|
+
* - NaN: Returns "NaN" (no formatting applied)
|
|
978
|
+
* - Infinity: Returns "∞" or "-∞" (no formatting applied)
|
|
979
|
+
*/
|
|
980
|
+
/**
|
|
981
|
+
* Formats a number with up to maxDecimals decimal places, without trailing zeros
|
|
982
|
+
* Uses banker's rounding (round half to even) for unbiased rounding.
|
|
983
|
+
*
|
|
984
|
+
* e.g., formatSmartDecimal(123, 2) => "123"
|
|
985
|
+
* formatSmartDecimal(123.4, 2) => "123.4"
|
|
986
|
+
* formatSmartDecimal(123.456, 2) => "123.46"
|
|
987
|
+
* formatSmartDecimal(123.445, 2) => "123.44" (banker's rounding)
|
|
988
|
+
*/
|
|
989
|
+
declare function formatSmartDecimal(value: number, maxDecimals?: number): string;
|
|
990
|
+
declare function columnRenderedValue(value: number, renderMode?: ColumnRenderMode): string;
|
|
991
|
+
/**
|
|
992
|
+
* Converts a row value to a rendered string with gray-out indicator
|
|
993
|
+
*/
|
|
994
|
+
declare function toRenderedValue(row: RowObjectType, key: string, columnType?: ColumnType, columnRenderMode?: ColumnRenderMode): [string, boolean];
|
|
995
|
+
/**
|
|
996
|
+
* Gets the CSS class for a cell based on row and column status
|
|
997
|
+
*/
|
|
998
|
+
declare function getCellClass(row: RowObjectType, columnStatus: string | undefined, columnKey: string, isBase: boolean): string | undefined;
|
|
999
|
+
/**
|
|
1000
|
+
* Gets the CSS class for a header cell based on column status
|
|
1001
|
+
*/
|
|
1002
|
+
declare function getHeaderCellClass(columnStatus: string | undefined): string | undefined;
|
|
1003
|
+
//#endregion
|
|
1004
|
+
//#region src/utils/dataGrid/rowBuilders.d.ts
|
|
1005
|
+
/**
|
|
1006
|
+
* Union type for column map entries (supports both querydiff and valuediff)
|
|
1007
|
+
*/
|
|
1008
|
+
type DiffColumnMapEntry = ColumnMapEntry | MergeColumnMapEntry;
|
|
1009
|
+
/**
|
|
1010
|
+
* Configuration for building diff rows
|
|
1011
|
+
*/
|
|
1012
|
+
interface BuildDiffRowsConfig {
|
|
1013
|
+
/**
|
|
1014
|
+
* Map of primary key values to base row data
|
|
1015
|
+
* Keys should already be normalized (e.g., lowercased if case-insensitive)
|
|
1016
|
+
*/
|
|
1017
|
+
baseMap: Record<string, RowObjectType | undefined>;
|
|
1018
|
+
/**
|
|
1019
|
+
* Map of primary key values to current row data
|
|
1020
|
+
* Keys should already be normalized (e.g., lowercased if case-insensitive)
|
|
1021
|
+
*/
|
|
1022
|
+
currentMap: Record<string, RowObjectType | undefined>;
|
|
1023
|
+
/**
|
|
1024
|
+
* Column definitions for base data
|
|
1025
|
+
* Used to iterate and extract values from base rows
|
|
1026
|
+
*/
|
|
1027
|
+
baseColumns: DataFrame["columns"];
|
|
1028
|
+
/**
|
|
1029
|
+
* Column definitions for current data
|
|
1030
|
+
* Used to iterate and extract values from current rows
|
|
1031
|
+
* For joined data (valuediff), this is the same as baseColumns
|
|
1032
|
+
*/
|
|
1033
|
+
currentColumns: DataFrame["columns"];
|
|
1034
|
+
/**
|
|
1035
|
+
* Column map for tracking column metadata and status
|
|
1036
|
+
* This object WILL BE MUTATED to update column.status when modifications are detected
|
|
1037
|
+
*/
|
|
1038
|
+
columnMap: Record<string, DiffColumnMapEntry>;
|
|
1039
|
+
/**
|
|
1040
|
+
* List of primary key column names
|
|
1041
|
+
* These columns are stored directly on the row (not prefixed with base__/current__)
|
|
1042
|
+
*/
|
|
1043
|
+
primaryKeys: string[];
|
|
1044
|
+
/**
|
|
1045
|
+
* Whether to filter out unchanged rows
|
|
1046
|
+
* When true, only rows with status "added", "removed", or "modified" are returned
|
|
1047
|
+
*/
|
|
1048
|
+
changedOnly?: boolean;
|
|
1049
|
+
}
|
|
1050
|
+
/**
|
|
1051
|
+
* Result from building diff rows
|
|
1052
|
+
*/
|
|
1053
|
+
interface BuildDiffRowsResult {
|
|
1054
|
+
/** The generated rows with __status and prefixed column values */
|
|
1055
|
+
rows: RowObjectType[];
|
|
1056
|
+
/** Statistics about row changes */
|
|
1057
|
+
rowStats: RowStats;
|
|
1058
|
+
}
|
|
1059
|
+
/**
|
|
1060
|
+
* Builds diff rows from base and current row maps
|
|
1061
|
+
*
|
|
1062
|
+
* @description This function unifies the row generation logic from both
|
|
1063
|
+
* `toDataDiffGrid` (querydiff) and `toValueDiffGrid` (valuediff).
|
|
1064
|
+
*
|
|
1065
|
+
* Key behaviors:
|
|
1066
|
+
* - Merges base and current row keys to determine all unique rows
|
|
1067
|
+
* - Creates row objects with `_index` and `__status` fields
|
|
1068
|
+
* - Prefixes non-PK columns with `base__` or `current__` (lowercased)
|
|
1069
|
+
* - Stores PK columns directly without prefix
|
|
1070
|
+
* - Detects added/removed/modified status
|
|
1071
|
+
* - Mutates columnMap to mark modified columns
|
|
1072
|
+
* - Optionally filters to changed rows only
|
|
1073
|
+
*
|
|
1074
|
+
* @example
|
|
1075
|
+
* ```typescript
|
|
1076
|
+
* // For querydiff (two separate DataFrames)
|
|
1077
|
+
* const result = buildDiffRows({
|
|
1078
|
+
* baseMap,
|
|
1079
|
+
* currentMap,
|
|
1080
|
+
* baseColumns: base.columns,
|
|
1081
|
+
* currentColumns: current.columns,
|
|
1082
|
+
* columnMap: mergedColumnMap,
|
|
1083
|
+
* primaryKeys: ["id"],
|
|
1084
|
+
* changedOnly: false,
|
|
1085
|
+
* });
|
|
1086
|
+
*
|
|
1087
|
+
* // For valuediff (joined DataFrame)
|
|
1088
|
+
* const result = buildDiffRows({
|
|
1089
|
+
* baseMap,
|
|
1090
|
+
* currentMap,
|
|
1091
|
+
* baseColumns: df.columns,
|
|
1092
|
+
* currentColumns: df.columns, // Same columns for both
|
|
1093
|
+
* columnMap: joinedColumnMap,
|
|
1094
|
+
* primaryKeys: ["id"],
|
|
1095
|
+
* changedOnly: true,
|
|
1096
|
+
* });
|
|
1097
|
+
* ```
|
|
1098
|
+
*/
|
|
1099
|
+
declare function buildDiffRows(config: BuildDiffRowsConfig): BuildDiffRowsResult;
|
|
1100
|
+
//#endregion
|
|
1101
|
+
//#region src/utils/dataGrid/rowCountUtils.d.ts
|
|
1102
|
+
/**
|
|
1103
|
+
* Extended row data for row count diff grid
|
|
1104
|
+
*/
|
|
1105
|
+
interface RowCountDiffRowData {
|
|
1106
|
+
name: string;
|
|
1107
|
+
base: number | null;
|
|
1108
|
+
current: number | null;
|
|
1109
|
+
delta: string;
|
|
1110
|
+
}
|
|
1111
|
+
/**
|
|
1112
|
+
* Extended row data for row count grid (single env)
|
|
1113
|
+
*/
|
|
1114
|
+
interface RowCountRowData {
|
|
1115
|
+
name: string;
|
|
1116
|
+
current: number | null;
|
|
1117
|
+
}
|
|
1118
|
+
/**
|
|
1119
|
+
* Calculates the delta string for row count comparison
|
|
1120
|
+
*/
|
|
1121
|
+
declare function calculateDelta(base: number | null, current: number | null): string;
|
|
1122
|
+
/**
|
|
1123
|
+
* Converts RowCountDiffResult to DataFrame format
|
|
1124
|
+
*
|
|
1125
|
+
* @param result - The row count diff result from the backend
|
|
1126
|
+
* @returns DataFrame with name, base, current, and delta columns
|
|
1127
|
+
*/
|
|
1128
|
+
declare function rowCountDiffResultToDataFrame(result: RowCountDiffResult): DataFrame;
|
|
1129
|
+
/**
|
|
1130
|
+
* Converts RowCountResult to DataFrame format
|
|
1131
|
+
*
|
|
1132
|
+
* @param result - The row count result from the backend
|
|
1133
|
+
* @returns DataFrame with name and current columns
|
|
1134
|
+
*/
|
|
1135
|
+
declare function rowCountResultToDataFrame(result: RowCountResult): DataFrame;
|
|
1136
|
+
/**
|
|
1137
|
+
* Determines the diff status for a row count entry
|
|
1138
|
+
*
|
|
1139
|
+
* @param base - Base row count (null if not present)
|
|
1140
|
+
* @param current - Current row count (null if not present)
|
|
1141
|
+
* @returns Status string: "added" | "removed" | "modified" | undefined
|
|
1142
|
+
*/
|
|
1143
|
+
declare function getRowCountDiffStatus(base: number | null, current: number | null): "added" | "removed" | "modified" | undefined;
|
|
1144
|
+
//#endregion
|
|
1145
|
+
//#region src/utils/dataGrid/validation.d.ts
|
|
1146
|
+
/**
|
|
1147
|
+
* Custom error class for data grid validation failures.
|
|
1148
|
+
* Provides structured error information for debugging.
|
|
1149
|
+
*/
|
|
1150
|
+
declare class DataGridValidationError extends Error {
|
|
1151
|
+
readonly context?: string | undefined;
|
|
1152
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
1153
|
+
constructor(message: string, context?: string | undefined, details?: Record<string, unknown> | undefined);
|
|
1154
|
+
}
|
|
1155
|
+
/**
|
|
1156
|
+
* Validates that a DataFrame has the required structure.
|
|
1157
|
+
* Does NOT throw for undefined/null - those are valid (represent empty data).
|
|
1158
|
+
*
|
|
1159
|
+
* @param df - The DataFrame to validate
|
|
1160
|
+
* @param name - Name for error messages (e.g., "base", "current")
|
|
1161
|
+
* @throws DataGridValidationError if structure is invalid
|
|
1162
|
+
*/
|
|
1163
|
+
declare function validateDataFrame(df: DataFrame | undefined | null, name?: string): void;
|
|
1164
|
+
/**
|
|
1165
|
+
* Validates that columns have required properties.
|
|
1166
|
+
*
|
|
1167
|
+
* @param columns - Array of column definitions
|
|
1168
|
+
* @param context - Context for error messages
|
|
1169
|
+
* @throws DataGridValidationError if any column is malformed
|
|
1170
|
+
*/
|
|
1171
|
+
declare function validateColumns(columns: DataFrame["columns"], context?: string): void;
|
|
1172
|
+
/**
|
|
1173
|
+
* Validates that data rows match column count.
|
|
1174
|
+
*
|
|
1175
|
+
* @param df - The DataFrame to validate
|
|
1176
|
+
* @param context - Context for error messages
|
|
1177
|
+
* @throws DataGridValidationError if misalignment detected
|
|
1178
|
+
*/
|
|
1179
|
+
declare function validateColumnDataAlignment(df: DataFrame, context?: string): void;
|
|
1180
|
+
/**
|
|
1181
|
+
* Validates primary key configuration.
|
|
1182
|
+
*
|
|
1183
|
+
* @param primaryKeys - Array of primary key column names
|
|
1184
|
+
* @param columns - Available columns to check against
|
|
1185
|
+
* @param options - Validation options
|
|
1186
|
+
* @throws DataGridValidationError if validation fails
|
|
1187
|
+
*/
|
|
1188
|
+
declare function validatePrimaryKeyConfig(primaryKeys: string[] | undefined, columns: DataFrame["columns"], options?: {
|
|
1189
|
+
required?: boolean;
|
|
1190
|
+
caseInsensitive?: boolean;
|
|
1191
|
+
context?: string;
|
|
1192
|
+
}): void;
|
|
1193
|
+
/**
|
|
1194
|
+
* Validates inputs for toDataGrid (single DataFrame).
|
|
1195
|
+
*/
|
|
1196
|
+
declare function validateToDataGridInputs(df: DataFrame | undefined, options?: {
|
|
1197
|
+
primaryKeys?: string[];
|
|
1198
|
+
}): void;
|
|
1199
|
+
/**
|
|
1200
|
+
* Validates inputs for toDataDiffGrid (base + current DataFrames).
|
|
1201
|
+
*/
|
|
1202
|
+
declare function validateToDataDiffGridInputs(base: DataFrame | undefined, current: DataFrame | undefined, options?: {
|
|
1203
|
+
primaryKeys?: string[];
|
|
1204
|
+
}): void;
|
|
1205
|
+
/**
|
|
1206
|
+
* Validates inputs for toValueDiffGrid
|
|
1207
|
+
*
|
|
1208
|
+
* @throws {DataGridValidationError} If validation fails
|
|
1209
|
+
*/
|
|
1210
|
+
declare function validateToValueDiffGridInputs(df: DataFrame | undefined, primaryKeys: string[]): void;
|
|
1211
|
+
//#endregion
|
|
1212
|
+
//#region src/utils/delta.d.ts
|
|
1213
|
+
/**
|
|
1214
|
+
* @file delta.ts
|
|
1215
|
+
* @description Utility functions for calculating and formatting delta percentages
|
|
1216
|
+
*
|
|
1217
|
+
* These utilities are used to display percentage changes between base and current values
|
|
1218
|
+
* in data comparison views (row counts, value diffs, etc.)
|
|
1219
|
+
*/
|
|
1220
|
+
/**
|
|
1221
|
+
* Calculate and format the percentage change between two values.
|
|
1222
|
+
*
|
|
1223
|
+
* @param base - The baseline value (denominator for percentage calculation)
|
|
1224
|
+
* @param current - The current value to compare against baseline
|
|
1225
|
+
* @returns Formatted percentage string with sign (+/-) or special values for edge cases
|
|
1226
|
+
*
|
|
1227
|
+
* @example
|
|
1228
|
+
* deltaPercentageString(100, 110) // "+10.0%"
|
|
1229
|
+
* deltaPercentageString(100, 90) // "-10.0%"
|
|
1230
|
+
* deltaPercentageString(100, 100) // "0"
|
|
1231
|
+
* deltaPercentageString(0, 100) // "N/A" (division by zero)
|
|
1232
|
+
* deltaPercentageString(1000, 1000.5) // "+ <0.1 %" (very small change)
|
|
1233
|
+
*/
|
|
1234
|
+
declare function deltaPercentageString(base: number, current: number): string;
|
|
1235
|
+
//#endregion
|
|
1236
|
+
//#region src/utils/envUtils.d.ts
|
|
1237
|
+
/**
|
|
1238
|
+
* Extract unique schema names from the lineage graph.
|
|
1239
|
+
*
|
|
1240
|
+
* Iterates through all nodes in the lineage graph and collects
|
|
1241
|
+
* unique schema names from both base and current environments.
|
|
1242
|
+
*
|
|
1243
|
+
* @param lineageGraph - The lineage graph data
|
|
1244
|
+
* @returns Tuple of [baseSchemas, currentSchemas] as Sets
|
|
1245
|
+
*
|
|
1246
|
+
* @example
|
|
1247
|
+
* ```ts
|
|
1248
|
+
* const { lineageGraph } = useLineageGraphContext();
|
|
1249
|
+
* const [baseSchemas, currentSchemas] = extractSchemas(lineageGraph);
|
|
1250
|
+
*
|
|
1251
|
+
* console.log(baseSchemas); // Set { "schema_v1", "public" }
|
|
1252
|
+
* console.log(currentSchemas); // Set { "schema_v2", "public" }
|
|
1253
|
+
* ```
|
|
1254
|
+
*/
|
|
1255
|
+
declare function extractSchemas(lineageGraph: LineageGraph | undefined): [Set<string>, Set<string>];
|
|
1256
|
+
//#endregion
|
|
1257
|
+
//#region src/utils/formatSelect.d.ts
|
|
1258
|
+
/**
|
|
1259
|
+
* @file formatSelect.ts
|
|
1260
|
+
* @description Column format selection utilities for SQL SELECT statements
|
|
1261
|
+
*/
|
|
1262
|
+
/**
|
|
1263
|
+
* Formats merged columns with (Added)/(Removed) annotations for SQL SELECT.
|
|
1264
|
+
* Adds trailing commas except for the last actual column.
|
|
1265
|
+
*
|
|
1266
|
+
* @param baseColumns - Columns from the base environment
|
|
1267
|
+
* @param currentColumns - Columns from the current environment
|
|
1268
|
+
* @returns Array of formatted column strings with annotations and commas
|
|
1269
|
+
*/
|
|
1270
|
+
declare function formatSelectColumns(baseColumns: string[], currentColumns: string[]): string[];
|
|
1271
|
+
//#endregion
|
|
1272
|
+
//#region src/utils/formatTime.d.ts
|
|
1273
|
+
/**
|
|
1274
|
+
* @file formatTime.ts
|
|
1275
|
+
* @description Time formatting utilities for duration and timestamp display
|
|
1276
|
+
*/
|
|
1277
|
+
type TimeFormatStyle = "compact" | "verbose";
|
|
1278
|
+
/**
|
|
1279
|
+
* Format seconds into human-readable time string
|
|
1280
|
+
*
|
|
1281
|
+
* @param totalSeconds - Total seconds to format
|
|
1282
|
+
* @param style - "compact" for MM:SS, "verbose" for human-readable
|
|
1283
|
+
*/
|
|
1284
|
+
declare function formatDuration(totalSeconds: number, style?: TimeFormatStyle): string;
|
|
1285
|
+
/**
|
|
1286
|
+
* Format an ISO timestamp string to a consistent date-time format.
|
|
1287
|
+
*
|
|
1288
|
+
* @param timestamp - ISO 8601 timestamp string
|
|
1289
|
+
* @returns Formatted string in "yyyy-MM-dd'T'HH:mm:ss" format
|
|
1290
|
+
*
|
|
1291
|
+
* @example
|
|
1292
|
+
* ```ts
|
|
1293
|
+
* formatTimestamp("2024-01-15T10:30:00Z")
|
|
1294
|
+
* // Returns: "2024-01-15T10:30:00"
|
|
1295
|
+
* ```
|
|
1296
|
+
*/
|
|
1297
|
+
declare function formatTimestamp(timestamp: string): string;
|
|
1298
|
+
/**
|
|
1299
|
+
* Format an ISO timestamp as a relative time string (e.g., "2 hours ago").
|
|
1300
|
+
*
|
|
1301
|
+
* @param timestamp - ISO 8601 timestamp string
|
|
1302
|
+
* @returns Human-readable relative time string
|
|
1303
|
+
*
|
|
1304
|
+
* @example
|
|
1305
|
+
* ```ts
|
|
1306
|
+
* formatTimeToNow("2024-01-15T10:30:00Z")
|
|
1307
|
+
* // Returns: "2 hours ago" (depending on current time)
|
|
1308
|
+
* ```
|
|
1309
|
+
*/
|
|
1310
|
+
declare function formatTimeToNow(timestamp: string): string;
|
|
1311
|
+
//#endregion
|
|
1312
|
+
//#region src/utils/formatters.d.ts
|
|
1313
|
+
/**
|
|
1314
|
+
* "Formatters" -- these are your data formatting that returns a formatted value for UI presentation (e.g. number, string, falsey)
|
|
1315
|
+
*/
|
|
1316
|
+
/**
|
|
1317
|
+
*
|
|
1318
|
+
* @param num number type input
|
|
1319
|
+
* @param locales locale string
|
|
1320
|
+
* @param options
|
|
1321
|
+
* @returns a formatted string number, based on locale & options
|
|
1322
|
+
*/
|
|
1323
|
+
declare function formatNumber(num: number | string | undefined, locales?: string, options?: Intl.NumberFormatOptions): string | undefined;
|
|
1324
|
+
/**
|
|
1325
|
+
* @param num fractional number type input
|
|
1326
|
+
* @returns a formatted percentage string, based on its percentage proximity to either ends (<0.1% and >99.9%)
|
|
1327
|
+
*/
|
|
1328
|
+
declare function formatIntervalMinMax(num: number): string | undefined;
|
|
1329
|
+
/**
|
|
1330
|
+
* base < -2 => 2dp, scientific (small decimals)
|
|
1331
|
+
* base < 0 => 3dp (big decimals)
|
|
1332
|
+
* base < 3 => 2dp (ones, tens, hundreds)
|
|
1333
|
+
* base < 6 => 1dp, K (thousands)
|
|
1334
|
+
* base < 9 => 1dp, M (millions)
|
|
1335
|
+
* base < 12 => 1dp, T (trillions)
|
|
1336
|
+
* base < 15 => 1dp, B (billions)
|
|
1337
|
+
* base >= 15 => 0dp, B (billions)
|
|
1338
|
+
* @param input
|
|
1339
|
+
* @returns a formatted number by abbreviation, based on its order of magnitude
|
|
1340
|
+
*/
|
|
1341
|
+
declare function formatAsAbbreviatedNumber(input: number | string): string;
|
|
1342
|
+
//#endregion
|
|
1343
|
+
//#region src/utils/mergeKeys.d.ts
|
|
1344
|
+
/**
|
|
1345
|
+
* @file mergeKeys.ts
|
|
1346
|
+
* @description Utilities for merging column arrays while detecting renames/additions/removals
|
|
1347
|
+
*/
|
|
1348
|
+
/**
|
|
1349
|
+
* Merge keys from base and current tables.
|
|
1350
|
+
* Unlike default union, it preserves the order for column rename, added, removed cases.
|
|
1351
|
+
*/
|
|
1352
|
+
declare function mergeKeys(_base: string[], _curr: string[]): string[];
|
|
1353
|
+
type MergeStatus = "added" | "removed" | "reordered" | undefined;
|
|
1354
|
+
/**
|
|
1355
|
+
* Merge keys from base and current tables, returning status for each key.
|
|
1356
|
+
* Status indicates whether the key was added, removed, reordered, or unchanged.
|
|
1357
|
+
*/
|
|
1358
|
+
declare function mergeKeysWithStatus(_base: string[], _curr: string[]): Record<string, MergeStatus>;
|
|
1359
|
+
//#endregion
|
|
1360
|
+
//#region src/utils/schemaDiff.d.ts
|
|
1361
|
+
/**
|
|
1362
|
+
* Checks if a schema has changed between base and current environments.
|
|
1363
|
+
*
|
|
1364
|
+
* Detects the following types of changes:
|
|
1365
|
+
* - Column additions or removals (different key counts)
|
|
1366
|
+
* - Column reordering (same keys but different order)
|
|
1367
|
+
* - Type modifications (column exists in both but type differs)
|
|
1368
|
+
*
|
|
1369
|
+
* @param baseSchema - The base environment schema columns
|
|
1370
|
+
* @param currSchema - The current environment schema columns
|
|
1371
|
+
* @returns `true` if schema changed, `false` if unchanged, `undefined` if either schema is missing
|
|
1372
|
+
*
|
|
1373
|
+
* @example
|
|
1374
|
+
* ```typescript
|
|
1375
|
+
* import { isSchemaChanged } from '@datarecce/ui';
|
|
1376
|
+
*
|
|
1377
|
+
* const base = { id: { type: 'integer' }, name: { type: 'string' } };
|
|
1378
|
+
* const curr = { id: { type: 'integer' }, name: { type: 'varchar' } };
|
|
1379
|
+
*
|
|
1380
|
+
* isSchemaChanged(base, curr); // true (type modified)
|
|
1381
|
+
* ```
|
|
1382
|
+
*/
|
|
1383
|
+
declare function isSchemaChanged(baseSchema: NodeData["columns"], currSchema: NodeData["columns"]): boolean | undefined;
|
|
1384
|
+
//#endregion
|
|
1385
|
+
//#region src/utils/transforms.d.ts
|
|
1386
|
+
/**
|
|
1387
|
+
* Converts a DataFrame to an array of row objects.
|
|
1388
|
+
*
|
|
1389
|
+
* Each row becomes an object with column keys as properties,
|
|
1390
|
+
* plus __status (undefined) and _index (1-based) fields.
|
|
1391
|
+
*
|
|
1392
|
+
* @param dataFrame - The DataFrame to convert
|
|
1393
|
+
* @returns Array of row objects with column values and metadata
|
|
1394
|
+
*
|
|
1395
|
+
* @example
|
|
1396
|
+
* ```ts
|
|
1397
|
+
* const df = {
|
|
1398
|
+
* columns: [{ key: 'name' }, { key: 'age' }],
|
|
1399
|
+
* data: [['Alice', 30], ['Bob', 25]]
|
|
1400
|
+
* };
|
|
1401
|
+
* const rows = dataFrameToRowObjects(df);
|
|
1402
|
+
* // [
|
|
1403
|
+
* // { name: 'Alice', age: 30, __status: undefined, _index: 1 },
|
|
1404
|
+
* // { name: 'Bob', age: 25, __status: undefined, _index: 2 }
|
|
1405
|
+
* // ]
|
|
1406
|
+
* ```
|
|
1407
|
+
*/
|
|
1408
|
+
declare function dataFrameToRowObjects(dataFrame: DataFrame): RowObjectType[];
|
|
1409
|
+
/**
|
|
1410
|
+
* Converts a key string to a number.
|
|
1411
|
+
*
|
|
1412
|
+
* If the key is a valid number, it is parsed and returned.
|
|
1413
|
+
* Otherwise, the string is hashed to a stable numeric value.
|
|
1414
|
+
*
|
|
1415
|
+
* @param key - The key to convert
|
|
1416
|
+
* @returns A numeric representation of the key
|
|
1417
|
+
*
|
|
1418
|
+
* @example
|
|
1419
|
+
* ```ts
|
|
1420
|
+
* keyToNumber('123') // 123
|
|
1421
|
+
* keyToNumber('abc') // stable hash value
|
|
1422
|
+
* keyToNumber('-45.6') // -45.6
|
|
1423
|
+
* ```
|
|
1424
|
+
*/
|
|
1425
|
+
declare function keyToNumber(key: string): number;
|
|
1426
|
+
/**
|
|
1427
|
+
* Hashes a string to a stable numeric value.
|
|
1428
|
+
*
|
|
1429
|
+
* Uses a simple hash algorithm based on Java's String.hashCode().
|
|
1430
|
+
* Always returns a non-negative integer.
|
|
1431
|
+
*
|
|
1432
|
+
* @param str - The string to hash
|
|
1433
|
+
* @returns A non-negative integer hash value
|
|
1434
|
+
*
|
|
1435
|
+
* @example
|
|
1436
|
+
* ```ts
|
|
1437
|
+
* hashStringToNumber('hello') // same value every time
|
|
1438
|
+
* hashStringToNumber('') // 0
|
|
1439
|
+
* ```
|
|
1440
|
+
*/
|
|
1441
|
+
declare function hashStringToNumber(str: string): number;
|
|
1442
|
+
/**
|
|
1443
|
+
* Gets a property value from an object using case-insensitive key matching.
|
|
1444
|
+
*
|
|
1445
|
+
* First tries lowercase match, then falls back to case-insensitive search.
|
|
1446
|
+
*
|
|
1447
|
+
* @param obj - The object to search
|
|
1448
|
+
* @param key - The property key (case-insensitive)
|
|
1449
|
+
* @returns The property value, or undefined if not found
|
|
1450
|
+
*
|
|
1451
|
+
* @example
|
|
1452
|
+
* ```ts
|
|
1453
|
+
* const obj = { Name: 'Alice', AGE: 30 };
|
|
1454
|
+
* getCaseInsensitive(obj, 'name') // 'Alice'
|
|
1455
|
+
* getCaseInsensitive(obj, 'age') // 30
|
|
1456
|
+
* getCaseInsensitive(obj, 'foo') // undefined
|
|
1457
|
+
* ```
|
|
1458
|
+
*/
|
|
1459
|
+
declare function getCaseInsensitive<T extends RowObjectType>(obj: T, key: string): T[keyof T] | undefined;
|
|
1460
|
+
/**
|
|
1461
|
+
* Gets a value from an object at a given path, with case-insensitive matching.
|
|
1462
|
+
*
|
|
1463
|
+
* Tries lowercase, then uppercase, then exact match.
|
|
1464
|
+
*
|
|
1465
|
+
* @param obj - The object to search
|
|
1466
|
+
* @param path - The property path (case-insensitive)
|
|
1467
|
+
* @returns The value at the path, or undefined if not found
|
|
1468
|
+
*
|
|
1469
|
+
* @example
|
|
1470
|
+
* ```ts
|
|
1471
|
+
* const obj = { Name: 'Alice', AGE: 30 };
|
|
1472
|
+
* getValueAtPath(obj, 'name') // 'Alice'
|
|
1473
|
+
* getValueAtPath(obj, 'AGE') // 30
|
|
1474
|
+
* getValueAtPath(obj, 'foo') // undefined
|
|
1475
|
+
* ```
|
|
1476
|
+
*/
|
|
1477
|
+
declare function getValueAtPath<T = RowDataTypes>(obj: Record<string, T | undefined>, path: string): T | undefined;
|
|
1478
|
+
//#endregion
|
|
1479
|
+
//#region src/utils/urls.d.ts
|
|
1480
|
+
/**
|
|
1481
|
+
* Generate the settings URL based on instance info.
|
|
1482
|
+
*
|
|
1483
|
+
* @param instanceInfo - Recce instance information containing web_url and organization_name
|
|
1484
|
+
* @param fallbackUrl - URL to use when not in cloud environment (e.g., calendar booking)
|
|
1485
|
+
* @returns Absolute URL to settings page or the fallback URL
|
|
1486
|
+
*
|
|
1487
|
+
* @example
|
|
1488
|
+
* ```typescript
|
|
1489
|
+
* // With cloud instance info
|
|
1490
|
+
* getSettingsUrl(instanceInfo, "https://cal.com/team/recce/chat");
|
|
1491
|
+
* // Returns: "https://cloud.recce.io/organizations/my-org/settings"
|
|
1492
|
+
*
|
|
1493
|
+
* // Without cloud instance info
|
|
1494
|
+
* getSettingsUrl(undefined, "https://cal.com/team/recce/chat");
|
|
1495
|
+
* // Returns: "https://cal.com/team/recce/chat"
|
|
1496
|
+
* ```
|
|
1497
|
+
*/
|
|
1498
|
+
declare function getSettingsUrl(instanceInfo: RecceInstanceInfo | undefined, fallbackUrl: string): string;
|
|
1499
|
+
//#endregion
|
|
1500
|
+
export { RowCountDiffDataGridResult as $, isExcludedColumn as $t, RowCountRowData as A, BuildDiffColumnDefinitionsResult as At, MergeColumnMapEntry as B, ColumnRenderComponents as Bt, validateColumns as C, SimpleColumnDefinition as Ct, validateToDataGridInputs as D, ToDataDiffGridConfig as Dt, validateToDataDiffGridInputs as E, QueryDataDiffGridOptions as Et, BuildDiffRowsConfig as F, RecceColumnContext as Ft, columnRenderedValue as G, ColumnPrecisionOption as Gt, buildColumnMap as H, DataFrameColumnHeaderProps as Ht, BuildDiffRowsResult as I, createCellClassBase as It, getCellClass as J, ColumnOrderConfig as Jt, determineRowStatus as K, columnPrecisionSelectOptions as Kt, DiffColumnMapEntry as L, createCellClassCurrent as Lt, getRowCountDiffStatus as M, buildDiffColumnDefinitions as Mt, rowCountDiffResultToDataFrame as N, DiffColumnConfig as Nt, validateToValueDiffGridInputs as O, toDataDiffGrid as Ot, rowCountResultToDataFrame as P, DiffColumnResult as Pt, validatePrimaryKeys as Q, getSimpleDisplayColumns as Qt, buildDiffRows as R, toDiffColumn as Rt, validateColumnDataAlignment as S, BuildSimpleColumnDefinitionsResult as St, validatePrimaryKeyConfig as T, DataDiffGridResult as Tt, buildJoinedColumnMap as U, DiffColumnRenderComponents as Ut, RowStats as V, DataFrameColumnGroupHeaderProps as Vt, buildMergedColumnMap as W, SimpleColumnRenderComponents as Wt, getPrimaryKeyValue as X, buildColumnOrder as Xt, getHeaderCellClass as Y, GridColumnsConfig as Yt, toRenderedValue as Z, getDisplayColumns as Zt, formatTimestamp as _, DataGridResult as _t, hashStringToNumber as a, toCSV as an, DiffColumnConfigConfigured as at, deltaPercentageString as b, toDataGrid as bt, MergeStatus as c, extractCSVData as cn, defaultRenderComponents as ct, formatAsAbbreviatedNumber as d, downloadCSV as dn, toDataGridConfigured as dt, isPinnedColumn as en, toRowCountDiffDataGrid as et, formatIntervalMinMax as f, toDiffColumnConfigured as ft, formatTimeToNow as g, toValueDiffGrid as gt, formatDuration as h, ValueDiffGridResult as ht, getValueAtPath as i, generateTimestamp as in, BuildSimpleColumnDefinitionsConfigConfigured as it, calculateDelta as j, DiffColumnDefinition as jt, RowCountDiffRowData as k, BuildDiffColumnDefinitionsConfig as kt, mergeKeys as l, supportsCSVExport as ln, defaultSimpleRenderComponents as lt, TimeFormatStyle as m, ToValueDiffGridConfig as mt, dataFrameToRowObjects as n, shouldIncludeColumn as nn, toRowCountDataGrid as nt, keyToNumber as o, CSVData as on, buildDiffColumnDefinitionsConfigured as ot, formatNumber as p, toValueDiffGridConfigured as pt, formatSmartDecimal as q, ColumnConfig as qt, getCaseInsensitive as r, generateCSVFilename as rn, BuildDiffColumnDefinitionsConfigConfigured as rt, isSchemaChanged as s, CSVExportOptions as sn, buildSimpleColumnDefinitionsConfigured as st, getSettingsUrl as t, isPrimaryKeyColumn as tn, RowCountDataGridResult as tt, mergeKeysWithStatus as u, copyCSVToClipboard as un, toDataDiffGridConfigured as ut, formatSelectColumns as v, QueryDataGridOptions as vt, validateDataFrame as w, buildSimpleColumnDefinitions as wt, DataGridValidationError as x, BuildSimpleColumnDefinitionsConfig as xt, extractSchemas as y, ToDataGridConfig as yt, ColumnMapEntry as z, CellRendererFunction as zt };
|
|
1501
|
+
//# sourceMappingURL=index-h_fw6R9U.d.ts.map
|